@inboxsdk/core 0.2.28-alpha.4 → 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 (263) 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/injected-js/gmail/modify-suggestions.test.js +8 -9
  12. package/src/injected-js/gmail/setup-gmail-interceptor.js +340 -579
  13. package/src/injected-js/gmail/sync-compose-request-processor.test.js +39 -49
  14. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +20 -33
  15. package/src/injected-js/gmail/thread-identifier/index.js +57 -93
  16. package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +22 -31
  17. package/src/injected-js/gmail/thread-identifier/thread-row-parser.test.js +12 -28
  18. package/src/injected-js/inbox/setupAjaxInterceptor.js +64 -121
  19. package/src/injected-js/inbox/setupClickAndGetNewIframeSrc.js +53 -66
  20. package/src/injected-js/inbox/setupComposeViewDraftIDFinder.js +20 -36
  21. package/src/injected-js/inbox/setupInboxFakeWindowResizeListener.js +13 -13
  22. package/src/injected-js/main.js +11 -24
  23. package/src/injected-js/message-metadata-holder.js +52 -82
  24. package/src/injected-js/setup-data-exposer.js +89 -148
  25. package/src/injected-js/setup-error-silencer.js +21 -21
  26. package/src/injected-js/setup-event-reemitter.js +30 -22
  27. package/src/injected-js/setupInboxCustomViewLinkFixer.js +24 -29
  28. package/src/injected-js/setupPushStateListener.js +18 -11
  29. package/src/injected-js/xhr-helper.js +62 -65
  30. package/src/injected-js/xhr-proxy-factory.js +195 -445
  31. package/src/injected-js/xhr-proxy-factory.test.js +824 -991
  32. package/src/platform-implementation-js/constants/router.js +14 -9
  33. package/src/platform-implementation-js/constants/toolbars.js +8 -3
  34. package/src/platform-implementation-js/dom-driver/gmail/custom-style.js +13 -13
  35. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +115 -136
  36. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +13 -14
  37. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +27 -48
  38. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +31 -42
  39. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +30 -40
  40. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +10 -18
  41. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +21 -28
  42. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +33 -45
  43. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +31 -49
  44. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +58 -65
  45. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +40 -124
  46. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +17 -22
  47. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.test.js +10 -11
  48. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +44 -80
  49. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +19 -26
  50. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +71 -147
  51. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +91 -148
  52. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +150 -166
  53. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.test.js +70 -120
  54. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +15 -15
  55. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +44 -67
  56. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +230 -379
  57. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.test.js +121 -307
  58. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +17 -24
  59. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +41 -49
  60. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +30 -40
  61. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +28 -60
  62. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +61 -133
  63. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +30 -42
  64. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.test.js +52 -46
  65. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +354 -694
  66. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +77 -93
  67. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +35 -82
  68. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.test.js +44 -94
  69. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +12 -19
  70. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +17 -29
  71. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.js +26 -26
  72. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +391 -797
  73. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +7 -9
  74. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +60 -109
  75. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +95 -135
  76. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +103 -211
  77. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.test.js +61 -61
  78. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +17 -17
  79. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +188 -541
  80. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +67 -135
  81. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +27 -49
  82. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-inner-sidebar.js +7 -13
  83. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-outer-sidebar.js +9 -22
  84. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +36 -63
  85. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +38 -113
  86. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +11 -16
  87. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +11 -17
  88. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +8 -11
  89. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +27 -47
  90. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +11 -24
  91. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +59 -111
  92. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +15 -14
  93. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +11 -17
  94. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +18 -24
  95. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +19 -23
  96. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +11 -19
  97. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +141 -376
  98. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +17 -28
  99. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +34 -70
  100. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +10 -17
  101. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +83 -137
  102. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +10 -19
  103. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +632 -1190
  104. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +29 -38
  105. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +327 -617
  106. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +26 -49
  107. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +188 -380
  108. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +104 -194
  109. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +382 -811
  110. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view/add-icon-area.js +34 -58
  111. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.js +330 -581
  112. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.test.js +123 -277
  113. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +15 -35
  114. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +216 -571
  115. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +152 -336
  116. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +87 -211
  117. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +10 -11
  118. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +20 -29
  119. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +41 -76
  120. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +45 -99
  121. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +76 -128
  122. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +128 -319
  123. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +45 -78
  124. package/src/platform-implementation-js/dom-driver/inbox/__mocks__/getSidebarClassnames.js +8 -4
  125. package/src/platform-implementation-js/dom-driver/inbox/addNavItem.js +36 -54
  126. package/src/platform-implementation-js/dom-driver/inbox/addRecipientRow.js +35 -53
  127. package/src/platform-implementation-js/dom-driver/inbox/createLink.js +13 -15
  128. package/src/platform-implementation-js/dom-driver/inbox/createLink.test.js +15 -18
  129. package/src/platform-implementation-js/dom-driver/inbox/custom-style.js +14 -13
  130. package/src/platform-implementation-js/dom-driver/inbox/detection/appToolbarLocation/parser.js +14 -20
  131. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentCard/parser.js +14 -13
  132. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentOverlay/parser.js +35 -67
  133. package/src/platform-implementation-js/dom-driver/inbox/detection/chatSidebar/parser.js +16 -18
  134. package/src/platform-implementation-js/dom-driver/inbox/detection/compose/parser.js +68 -185
  135. package/src/platform-implementation-js/dom-driver/inbox/detection/message/parser.js +28 -56
  136. package/src/platform-implementation-js/dom-driver/inbox/detection/nativeDrawer/parser.js +12 -10
  137. package/src/platform-implementation-js/dom-driver/inbox/detection/searchBar/parser.js +16 -16
  138. package/src/platform-implementation-js/dom-driver/inbox/detection/thread/parser.js +24 -35
  139. package/src/platform-implementation-js/dom-driver/inbox/detection/thread-row/parser.js +37 -89
  140. package/src/platform-implementation-js/dom-driver/inbox/getComposeViewDriverLiveSet.js +56 -78
  141. package/src/platform-implementation-js/dom-driver/inbox/getInboxMessageIdForInboxThreadId.js +26 -32
  142. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.js +52 -109
  143. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.test.js +7 -8
  144. package/src/platform-implementation-js/dom-driver/inbox/gotoView.js +16 -20
  145. package/src/platform-implementation-js/dom-driver/inbox/gotoView.test.js +15 -16
  146. package/src/platform-implementation-js/dom-driver/inbox/inbox-butter-bar-driver.js +75 -83
  147. package/src/platform-implementation-js/dom-driver/inbox/inbox-driver.js +530 -822
  148. package/src/platform-implementation-js/dom-driver/inbox/inbox-page-communicator.js +48 -61
  149. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.js +9 -12
  150. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.test.js +12 -19
  151. package/src/platform-implementation-js/dom-driver/inbox/makePageParserTree.js +24 -33
  152. package/src/platform-implementation-js/dom-driver/inbox/pageParserOptions.js +201 -388
  153. package/src/platform-implementation-js/dom-driver/inbox/registerSearchSuggestionsProvider.js +249 -265
  154. package/src/platform-implementation-js/dom-driver/inbox/setupCustomAutocompleteSelectionHandling.js +84 -152
  155. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.js +55 -67
  156. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.test.js +43 -65
  157. package/src/platform-implementation-js/dom-driver/inbox/views/InboxLabelView.js +31 -56
  158. package/src/platform-implementation-js/dom-driver/inbox/views/InboxMoleViewDriver.js +191 -294
  159. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarButtonView.js +32 -45
  160. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarView.js +21 -39
  161. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-sidebar-view.js +153 -240
  162. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-button-view.js +75 -150
  163. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-tooltip-view.js +20 -37
  164. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-card-view.js +60 -114
  165. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-overlay-view.js +47 -65
  166. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +41 -52
  167. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-chat-sidebar-view.js +27 -36
  168. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-button-view.js +52 -80
  169. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-view.js +465 -649
  170. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.js +37 -58
  171. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.test.js +14 -26
  172. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +118 -235
  173. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dropdown-view.js +10 -11
  174. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dummy-route-view.js +28 -46
  175. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-message-view.js +131 -202
  176. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-modal-view.js +40 -80
  177. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-route-view.js +35 -61
  178. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-row-view.js +124 -221
  179. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.js +125 -213
  180. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.test.js +104 -126
  181. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-tooltip-view.js +36 -51
  182. package/src/platform-implementation-js/dom-driver/inbox/views/inboxNavItemView.js +158 -297
  183. package/src/platform-implementation-js/dom-driver/inbox/waitForAnimationClickBlockerGone.js +21 -35
  184. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +24 -43
  185. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +39 -68
  186. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +14 -19
  187. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +27 -35
  188. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +16 -22
  189. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +14 -14
  190. package/src/platform-implementation-js/driver-common/inboxAjax.js +12 -7
  191. package/src/platform-implementation-js/driver-common/requestGmailThread.js +19 -20
  192. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +197 -306
  193. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +113 -161
  194. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +1 -114
  195. package/src/platform-implementation-js/driver-interfaces/driver.js +1 -131
  196. package/src/platform-implementation-js/driver-interfaces/message-view-driver.js +4 -48
  197. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +1 -29
  198. package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +1 -32
  199. package/src/platform-implementation-js/driver-interfaces/thread-row-view-driver.js +1 -11
  200. package/src/platform-implementation-js/lib/array-to-lifetimes.js +43 -41
  201. package/src/platform-implementation-js/lib/array-to-lifetimes.test.js +139 -155
  202. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +19 -38
  203. package/src/platform-implementation-js/lib/css-selector-escape.js +7 -3
  204. package/src/platform-implementation-js/lib/dom/element-view-mapper.js +8 -11
  205. package/src/platform-implementation-js/lib/dom/get-selection.js +23 -52
  206. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +69 -101
  207. package/src/platform-implementation-js/lib/dom/is-node-in-range.js +8 -10
  208. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +15 -17
  209. package/src/platform-implementation-js/lib/dom/querySelectorOne.js +8 -11
  210. package/src/platform-implementation-js/lib/dom/set-css.js +7 -3
  211. package/src/platform-implementation-js/lib/dom/set-value-and-dispatch-event.js +9 -11
  212. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +32 -33
  213. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.test.js +23 -26
  214. package/src/platform-implementation-js/lib/handle-compose-link-chips.js +86 -149
  215. package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +42 -57
  216. package/src/platform-implementation-js/lib/make-revocable-function.js +19 -21
  217. package/src/platform-implementation-js/lib/make-revocable-function.test.js +20 -22
  218. package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +15 -17
  219. package/src/platform-implementation-js/lib/parseParamsFromRouteID.test.js +9 -18
  220. package/src/platform-implementation-js/lib/populateRouteID.js +8 -9
  221. package/src/platform-implementation-js/lib/populateRouteID.test.js +20 -19
  222. package/src/platform-implementation-js/lib/react/ElementContainer.js +23 -20
  223. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.js +10 -9
  224. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.test.js +13 -20
  225. package/src/platform-implementation-js/lib/routeIDmatchesHash.js +13 -18
  226. package/src/platform-implementation-js/lib/routeIDmatchesHash.test.js +11 -17
  227. package/src/platform-implementation-js/lib/shared-style.js +14 -13
  228. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +18 -17
  229. package/src/platform-implementation-js/lib/toLiveSet.js +17 -15
  230. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +6 -5
  231. package/src/platform-implementation-js/main.js +9 -24
  232. package/src/platform-implementation-js/namespaces/compose.js +37 -60
  233. package/src/platform-implementation-js/namespaces/conversations.js +52 -124
  234. package/src/platform-implementation-js/namespaces/global.js +27 -39
  235. package/src/platform-implementation-js/namespaces/keyboard.js +29 -33
  236. package/src/platform-implementation-js/namespaces/lists.js +25 -31
  237. package/src/platform-implementation-js/namespaces/modal.js +34 -28
  238. package/src/platform-implementation-js/namespaces/nav-menu.js +30 -45
  239. package/src/platform-implementation-js/namespaces/router.js +70 -137
  240. package/src/platform-implementation-js/namespaces/search.js +19 -17
  241. package/src/platform-implementation-js/namespaces/toolbars.js +71 -117
  242. package/src/platform-implementation-js/namespaces/user.js +36 -37
  243. package/src/platform-implementation-js/namespaces/widgets.js +54 -61
  244. package/src/platform-implementation-js/platform-implementation.js +98 -229
  245. package/src/platform-implementation-js/views/app-toolbar-button-view.js +26 -47
  246. package/src/platform-implementation-js/views/collapsible-section-view.js +66 -63
  247. package/src/platform-implementation-js/views/content-panel-view.js +28 -30
  248. package/src/platform-implementation-js/views/conversations/attachment-card-view.js +21 -44
  249. package/src/platform-implementation-js/views/conversations/custom-message-view.js +44 -104
  250. package/src/platform-implementation-js/views/conversations/message-view.js +131 -202
  251. package/src/platform-implementation-js/views/conversations/thread-view.js +75 -127
  252. package/src/platform-implementation-js/views/native-nav-item-view.js +32 -65
  253. package/src/platform-implementation-js/views/nav-item-view.js +51 -115
  254. package/src/platform-implementation-js/views/route-view/custom-route-view.js +25 -20
  255. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +18 -18
  256. package/src/platform-implementation-js/views/route-view/list-route-view.js +30 -52
  257. package/src/platform-implementation-js/views/route-view/route-view.js +24 -35
  258. package/src/platform-implementation-js/views/section-view.js +60 -52
  259. package/src/platform-implementation-js/views/thread-row-view.js +49 -74
  260. package/src/platform-implementation-js/widgets/drawer-view.js +29 -36
  261. package/src/platform-implementation-js/widgets/modal-view.js +39 -68
  262. package/src/platform-implementation-js/widgets/mole-view.js +22 -22
  263. package/src/platform-implementation-js/widgets/top-message-bar-view.js +13 -10
@@ -1,105 +1,94 @@
1
- /* @flow */
2
-
3
- import includes from 'lodash/includes';
4
- import last from 'lodash/last';
5
- import once from 'lodash/once';
6
- import Kefir from 'kefir';
7
- import kefirStopper from 'kefir-stopper';
8
- import kefirBus from 'kefir-bus';
9
- import type { Bus } from 'kefir-bus';
10
- import { parse } from 'querystring';
11
-
12
- import asap from 'asap';
13
- import { defn } from 'ud';
14
-
15
- import makeElementChildStream from '../../../../lib/dom/make-element-child-stream';
16
- import makeElementViewStream from '../../../../lib/dom/make-element-view-stream';
17
- import makeMutationObserverChunkedStream from '../../../../lib/dom/make-mutation-observer-chunked-stream';
18
- import getInsertBeforeElement from '../../../../lib/dom/get-insert-before-element';
19
- import type { RouteViewDriver } from '../../../../driver-interfaces/route-view-driver';
20
- import GmailRowListView from '../gmail-row-list-view';
21
- import GmailThreadView from '../gmail-thread-view';
22
- import GmailCollapsibleSectionView from '../gmail-collapsible-section-view';
23
- import GmailElementGetter from '../../gmail-element-getter';
24
-
25
- import { simulateClick } from '../../../../lib/dom/simulate-mouse-event';
26
- import querySelector from '../../../../lib/dom/querySelectorOrFail';
27
-
28
- import type GmailDriver from '../../gmail-driver';
29
- import type GmailRouteProcessor from '../gmail-route-view/gmail-route-processor';
30
- import type GmailPageCommunicator from '../../gmail-page-communicator';
31
-
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 _includes = _interopRequireDefault(require("lodash/includes"));
10
+ var _last = _interopRequireDefault(require("lodash/last"));
11
+ var _once = _interopRequireDefault(require("lodash/once"));
12
+ var _kefir = _interopRequireDefault(require("kefir"));
13
+ var _kefirStopper = _interopRequireDefault(require("kefir-stopper"));
14
+ var _kefirBus = _interopRequireDefault(require("kefir-bus"));
15
+ var _querystring = require("querystring");
16
+ var _asap = _interopRequireDefault(require("asap"));
17
+ var _ud = require("ud");
18
+ var _makeElementChildStream = _interopRequireDefault(require("../../../../lib/dom/make-element-child-stream"));
19
+ var _makeElementViewStream = _interopRequireDefault(require("../../../../lib/dom/make-element-view-stream"));
20
+ var _makeMutationObserverChunkedStream = _interopRequireDefault(require("../../../../lib/dom/make-mutation-observer-chunked-stream"));
21
+ var _getInsertBeforeElement = _interopRequireDefault(require("../../../../lib/dom/get-insert-before-element"));
22
+ var _gmailRowListView = _interopRequireDefault(require("../gmail-row-list-view"));
23
+ var _gmailThreadView = _interopRequireDefault(require("../gmail-thread-view"));
24
+ var _gmailCollapsibleSectionView = _interopRequireDefault(require("../gmail-collapsible-section-view"));
25
+ var _gmailElementGetter = _interopRequireDefault(require("../../gmail-element-getter"));
26
+ var _simulateMouseEvent = require("../../../../lib/dom/simulate-mouse-event");
27
+ var _querySelectorOrFail = _interopRequireDefault(require("../../../../lib/dom/querySelectorOrFail"));
32
28
  class GmailRouteView {
33
- _type: string;
34
- _hash: string;
35
- _name: string;
36
- _paramsArray: string[];
37
- _customRouteID: ?string;
38
- _stopper = kefirStopper();
39
- _rowListViews: GmailRowListView[];
40
- _gmailRouteProcessor: GmailRouteProcessor;
41
- _driver: GmailDriver;
42
- _eventStream: Bus<any>;
43
- _customViewElement: ?HTMLElement;
44
- _threadView: ?GmailThreadView;
45
- _sectionsContainer: ?HTMLElement;
46
- _hasAddedCollapsibleSection: boolean;
47
- _cachedRouteData: Object;
48
-
49
- constructor(
50
- { urlObject, type, routeID, cachedRouteData }: Object,
51
- gmailRouteProcessor: GmailRouteProcessor,
52
- driver: GmailDriver
53
- ) {
29
+ constructor(_ref, gmailRouteProcessor, driver) {
30
+ let {
31
+ urlObject,
32
+ type,
33
+ routeID: _routeID,
34
+ cachedRouteData
35
+ } = _ref;
36
+ (0, _defineProperty2.default)(this, "_stopper", (0, _kefirStopper.default)());
37
+ (0, _defineProperty2.default)(this, "getParams", (0, _once.default)(() => {
38
+ let params;
39
+ if (this._customRouteID) {
40
+ params = this._getCustomParams();
41
+ } else {
42
+ params = this._getNativeParams();
43
+ const routeID = this.getRouteID();
44
+ if (routeID) {
45
+ const routeIDParams = this._extractParamKeysFromRouteID(routeID);
46
+ const routeParams = {};
47
+ routeIDParams.forEach(function (param) {
48
+ if (params[param]) {
49
+ routeParams[param] = params[param];
50
+ }
51
+ });
52
+ params = routeParams;
53
+ }
54
+ }
55
+ return Object.freeze(params);
56
+ }));
57
+ (0, _defineProperty2.default)(this, "_getThreadContainerElement", (0, _once.default)(() => {
58
+ return _gmailElementGetter.default.getThreadContainerElement();
59
+ }));
54
60
  // Check we implement interface
55
- (this: RouteViewDriver);
56
-
61
+ this;
57
62
  this._type = type;
58
63
  this._hash = urlObject.hash;
59
64
  this._name = urlObject.name;
60
65
  this._paramsArray = urlObject.params;
61
- this._customRouteID = routeID;
66
+ this._customRouteID = _routeID;
62
67
  this._cachedRouteData = cachedRouteData;
63
-
64
- this._stopper = kefirStopper();
68
+ this._stopper = (0, _kefirStopper.default)();
65
69
  this._rowListViews = [];
66
-
67
70
  this._gmailRouteProcessor = gmailRouteProcessor;
68
71
  this._driver = driver;
69
-
70
- this._eventStream = kefirBus();
71
-
72
+ this._eventStream = (0, _kefirBus.default)();
72
73
  this._hasAddedCollapsibleSection = false;
73
-
74
74
  if (this._type === 'CUSTOM') {
75
75
  this._setupCustomViewElement();
76
- driver
77
- .getStopper()
78
- .takeUntilBy(this._stopper.delay(0))
79
- .onValue(() => {
80
- driver.showNativeRouteView();
81
- window.location.hash = '#inbox';
82
- });
83
- } else if (includes(['NATIVE', 'CUSTOM_LIST'], this._type)) {
76
+ driver.getStopper().takeUntilBy(this._stopper.delay(0)).onValue(() => {
77
+ driver.showNativeRouteView();
78
+ window.location.hash = '#inbox';
79
+ });
80
+ } else if ((0, _includes.default)(['NATIVE', 'CUSTOM_LIST'], this._type)) {
84
81
  this._setupSubViews();
85
82
  }
86
-
87
83
  if (this._type === 'CUSTOM_LIST') {
88
- Kefir.later(500)
89
- .takeUntilBy(this._stopper)
90
- .onValue(() => {
91
- var last = driver.getLastCustomThreadListActivity();
92
- if (
93
- !last ||
94
- last.customRouteID !== this._customRouteID ||
95
- Date.now() - last.timestamp > 5000
96
- ) {
97
- this.refresh();
98
- }
99
- });
84
+ _kefir.default.later(500).takeUntilBy(this._stopper).onValue(() => {
85
+ var last = driver.getLastCustomThreadListActivity();
86
+ if (!last || last.customRouteID !== this._customRouteID || Date.now() - last.timestamp > 5000) {
87
+ this.refresh();
88
+ }
89
+ });
100
90
  }
101
91
  }
102
-
103
92
  destroy() {
104
93
  this._stopper.destroy();
105
94
  this._eventStream.end();
@@ -108,7 +97,7 @@ class GmailRouteView {
108
97
  }
109
98
  var rowListViews = this._rowListViews;
110
99
  this._rowListViews = [];
111
- rowListViews.forEach((view) => {
100
+ rowListViews.forEach(view => {
112
101
  view.destroy();
113
102
  });
114
103
  if (this._threadView) {
@@ -116,322 +105,180 @@ class GmailRouteView {
116
105
  this._threadView = null;
117
106
  }
118
107
  }
119
-
120
- getHash(): string {
108
+ getHash() {
121
109
  return this._hash;
122
110
  }
123
- getEventStream(): Kefir.Observable<Object> {
111
+ getEventStream() {
124
112
  return this._eventStream;
125
113
  }
126
- getStopper(): Kefir.Observable<null> {
114
+ getStopper() {
127
115
  return this._stopper;
128
116
  }
129
- getCustomViewElement(): ?HTMLElement {
117
+ getCustomViewElement() {
130
118
  return this._customViewElement;
131
119
  }
132
- getRowListViews(): GmailRowListView[] {
120
+ getRowListViews() {
133
121
  return this._rowListViews;
134
122
  }
135
- getThreadView(): ?GmailThreadView {
123
+ getThreadView() {
136
124
  return this._threadView;
137
125
  }
138
-
139
- getType(): string {
126
+ getType() {
140
127
  if (this._type === 'OTHER_APP_CUSTOM') {
141
128
  return 'CUSTOM';
142
129
  } else {
143
130
  return this._type;
144
131
  }
145
132
  }
146
-
147
- isCustomRouteBelongingToApp(): boolean {
133
+ isCustomRouteBelongingToApp() {
148
134
  return this._type === 'CUSTOM';
149
135
  }
150
-
151
- getParams: () => { [ix: string]: string } = once(() => {
152
- let params;
153
- if (this._customRouteID) {
154
- params = this._getCustomParams();
155
- } else {
156
- params = this._getNativeParams();
157
- const routeID = this.getRouteID();
158
- if (routeID) {
159
- const routeIDParams = this._extractParamKeysFromRouteID(routeID);
160
- const routeParams = {};
161
- routeIDParams.forEach(function (param) {
162
- if (params[param]) {
163
- routeParams[param] = params[param];
164
- }
165
- });
166
-
167
- params = routeParams;
168
- }
169
- }
170
-
171
- return Object.freeze(params);
172
- });
173
-
174
- addCollapsibleSection(
175
- sectionDescriptorProperty: Kefir.Observable<?Object>,
176
- groupOrderHint: any
177
- ): GmailCollapsibleSectionView {
178
- return this._addCollapsibleSection(
179
- sectionDescriptorProperty,
180
- groupOrderHint,
181
- true
182
- );
136
+ addCollapsibleSection(sectionDescriptorProperty, groupOrderHint) {
137
+ return this._addCollapsibleSection(sectionDescriptorProperty, groupOrderHint, true);
183
138
  }
184
-
185
- addSection(
186
- sectionDescriptorProperty: Kefir.Observable<?Object>,
187
- groupOrderHint: any
188
- ): GmailCollapsibleSectionView {
189
- return this._addCollapsibleSection(
190
- sectionDescriptorProperty,
191
- groupOrderHint,
192
- false
193
- );
139
+ addSection(sectionDescriptorProperty, groupOrderHint) {
140
+ return this._addCollapsibleSection(sectionDescriptorProperty, groupOrderHint, false);
194
141
  }
195
-
196
- _addCollapsibleSection(
197
- collapsibleSectionDescriptorProperty: Object,
198
- groupOrderHint: any,
199
- isCollapsible: boolean
200
- ): GmailCollapsibleSectionView {
142
+ _addCollapsibleSection(collapsibleSectionDescriptorProperty, groupOrderHint, isCollapsible) {
201
143
  this._hasAddedCollapsibleSection = true;
202
-
203
- var gmailResultsSectionView = new GmailCollapsibleSectionView(
204
- this._driver,
205
- groupOrderHint,
206
- this.getRouteID() === this._gmailRouteProcessor.NativeRouteIDs.SEARCH,
207
- isCollapsible
208
- );
209
-
144
+ var gmailResultsSectionView = new _gmailCollapsibleSectionView.default(this._driver, groupOrderHint, this.getRouteID() === this._gmailRouteProcessor.NativeRouteIDs.SEARCH, isCollapsible);
210
145
  var sectionsContainer = this._getSectionsContainer();
211
- gmailResultsSectionView
212
- .getEventStream()
213
- .filter(function (event) {
214
- return event.type === 'update' && event.property === 'orderHint';
215
- })
216
- .onValue(function () {
217
- var children = sectionsContainer.children;
218
- var insertBeforeElement = getInsertBeforeElement(
219
- gmailResultsSectionView.getElement(),
220
- children,
221
- ['data-group-order-hint', 'data-order-hint']
222
- );
223
- if (insertBeforeElement) {
224
- sectionsContainer.insertBefore(
225
- gmailResultsSectionView.getElement(),
226
- insertBeforeElement
227
- );
228
- } else {
229
- sectionsContainer.appendChild(gmailResultsSectionView.getElement());
230
- }
231
- });
232
-
233
- gmailResultsSectionView.setCollapsibleSectionDescriptorProperty(
234
- collapsibleSectionDescriptorProperty
235
- );
236
-
146
+ gmailResultsSectionView.getEventStream().filter(function (event) {
147
+ return event.type === 'update' && event.property === 'orderHint';
148
+ }).onValue(function () {
149
+ var children = sectionsContainer.children;
150
+ var insertBeforeElement = (0, _getInsertBeforeElement.default)(gmailResultsSectionView.getElement(), children, ['data-group-order-hint', 'data-order-hint']);
151
+ if (insertBeforeElement) {
152
+ sectionsContainer.insertBefore(gmailResultsSectionView.getElement(), insertBeforeElement);
153
+ } else {
154
+ sectionsContainer.appendChild(gmailResultsSectionView.getElement());
155
+ }
156
+ });
157
+ gmailResultsSectionView.setCollapsibleSectionDescriptorProperty(collapsibleSectionDescriptorProperty);
237
158
  return gmailResultsSectionView;
238
159
  }
239
-
240
160
  _setupCustomViewElement() {
241
161
  this._customViewElement = document.createElement('div');
242
162
  this._customViewElement.classList.add('inboxsdk__custom_view_element');
243
-
244
163
  this._monitorLeftNavHeight();
245
164
  this._setCustomViewElementHeight();
246
165
  }
247
-
248
166
  _monitorLeftNavHeight() {
249
- var leftNav = GmailElementGetter.getLeftNavHeightElement();
250
-
167
+ var leftNav = _gmailElementGetter.default.getLeftNavHeightElement();
251
168
  if (!leftNav) {
252
169
  return;
253
170
  }
254
-
255
- makeMutationObserverChunkedStream(leftNav, {
171
+ (0, _makeMutationObserverChunkedStream.default)(leftNav, {
256
172
  attributes: true,
257
- attributeFilter: ['style'],
258
- })
259
- .takeUntilBy(this._stopper)
260
- .onValue(() => {
261
- this._setCustomViewElementHeight();
262
- });
173
+ attributeFilter: ['style']
174
+ }).takeUntilBy(this._stopper).onValue(() => {
175
+ this._setCustomViewElementHeight();
176
+ });
263
177
  }
264
-
265
178
  _setCustomViewElementHeight() {
266
- const leftNav = GmailElementGetter.getLeftNavHeightElement();
267
- const gtalkButtons = GmailElementGetter.getGtalkButtons();
179
+ const leftNav = _gmailElementGetter.default.getLeftNavHeightElement();
180
+ const gtalkButtons = _gmailElementGetter.default.getGtalkButtons();
268
181
  const customViewEl = this._customViewElement;
269
182
  if (!leftNav || !customViewEl) throw new Error('Should not happen');
270
- customViewEl.style.height = `${
271
- parseInt(leftNav.style.height, 10) +
272
- (gtalkButtons ? gtalkButtons.offsetHeight : 0)
273
- }px`;
183
+ customViewEl.style.height = `${parseInt(leftNav.style.height, 10) + (gtalkButtons ? gtalkButtons.offsetHeight : 0)}px`;
274
184
  }
275
-
276
185
  _setupSubViews() {
277
- asap(() => {
186
+ (0, _asap.default)(() => {
278
187
  if (!this._eventStream) return;
279
-
280
188
  this._setupRowListViews();
281
189
  this._setupContentAndSidebarView();
282
190
  this._setupScrollStream();
283
191
  });
284
192
  }
285
-
286
193
  _setupRowListViews() {
287
- var rowListElements = GmailElementGetter.getRowListElements();
288
-
289
- Array.prototype.forEach.call(rowListElements, (rowListElement) => {
194
+ var rowListElements = _gmailElementGetter.default.getRowListElements();
195
+ Array.prototype.forEach.call(rowListElements, rowListElement => {
290
196
  this._processRowListElement(rowListElement);
291
197
  });
292
198
  }
293
-
294
- _processRowListElement(rowListElement: HTMLElement) {
199
+ _processRowListElement(rowListElement) {
295
200
  var rootElement = rowListElement.parentElement;
296
201
  if (!rootElement) throw new Error('no rootElement');
297
- var gmailRowListView = new GmailRowListView(
298
- (rootElement: any),
299
- this,
300
- this._driver
301
- );
302
-
202
+ var gmailRowListView = new _gmailRowListView.default(rootElement, this, this._driver);
303
203
  this._rowListViews.push(gmailRowListView);
304
-
305
204
  this._eventStream.emit({
306
205
  eventName: 'newGmailRowListView',
307
- view: gmailRowListView,
206
+ view: gmailRowListView
308
207
  });
309
208
  }
310
-
311
209
  _setupContentAndSidebarView() {
312
210
  const threadContainerElement = this._getThreadContainerElement();
313
211
  if (threadContainerElement) {
314
- var gmailThreadView = new GmailThreadView(
315
- threadContainerElement,
316
- this,
317
- this._driver
318
- );
319
-
212
+ var gmailThreadView = new _gmailThreadView.default(threadContainerElement, this, this._driver);
320
213
  this._threadView = gmailThreadView;
321
-
322
214
  this._eventStream.emit({
323
215
  eventName: 'newGmailThreadView',
324
- view: gmailThreadView,
216
+ view: gmailThreadView
325
217
  });
326
218
  } else {
327
219
  // This element is always present in thread lists, but it only has contents
328
220
  // when in preview pane mode. We want to monitor it in either case
329
221
  // because the user could switch into preview pane mode.
330
- const previewPaneContainer = document.querySelector(
331
- 'div[role=main] .aia'
332
- );
222
+ const previewPaneContainer = document.querySelector('div[role=main] .aia');
333
223
  if (previewPaneContainer) {
334
224
  this._startMonitoringPreviewPaneForThread(previewPaneContainer);
335
225
  }
336
226
  }
337
227
  }
338
-
339
228
  _setupScrollStream() {
340
229
  const SCROLL_DEBOUNCE_MS = 100;
341
- const scrollContainer = GmailElementGetter.getScrollContainer();
342
- const { scrollTop: cachedScrollTop } = this._cachedRouteData;
230
+ const scrollContainer = _gmailElementGetter.default.getScrollContainer();
231
+ const {
232
+ scrollTop: cachedScrollTop
233
+ } = this._cachedRouteData;
343
234
  if (scrollContainer && this._hasAddedCollapsibleSection) {
344
235
  if (cachedScrollTop) {
345
236
  scrollContainer.scrollTop = cachedScrollTop;
346
237
  }
347
- Kefir.fromEvents(scrollContainer, 'scroll')
348
- .throttle(SCROLL_DEBOUNCE_MS)
349
- .map((e) => e.target.scrollTop)
350
- .takeUntilBy(this._stopper)
351
- .onValue((scrollTop) => {
352
- this._cachedRouteData.scrollTop = scrollTop;
353
- });
238
+ _kefir.default.fromEvents(scrollContainer, 'scroll').throttle(SCROLL_DEBOUNCE_MS).map(e => e.target.scrollTop).takeUntilBy(this._stopper).onValue(scrollTop => {
239
+ this._cachedRouteData.scrollTop = scrollTop;
240
+ });
354
241
  }
355
242
  }
356
-
357
- _startMonitoringPreviewPaneForThread(previewPaneContainer: HTMLElement) {
358
- const threadContainerTableElement = querySelector(
359
- previewPaneContainer,
360
- 'table.Bs > tr'
361
- );
362
-
363
- const elementStream = makeElementChildStream(
364
- threadContainerTableElement
365
- ).filter(
366
- (event) =>
367
- !!event.el.querySelector('.if') ||
368
- !!event.el.querySelector('.PeIF1d') ||
369
- !!event.el.querySelector('.a98.iY')
370
- );
371
-
372
- this._eventStream.plug(
373
- elementStream
374
- .flatMap(
375
- makeElementViewStream(
376
- (element) =>
377
- new (GmailThreadView: any)(element, this, this._driver, true)
378
- )
379
- )
380
- .map((view) => {
381
- this._threadView = view;
382
- return {
383
- eventName: 'newGmailThreadView',
384
- view: view,
385
- };
386
- })
387
- );
243
+ _startMonitoringPreviewPaneForThread(previewPaneContainer) {
244
+ const threadContainerTableElement = (0, _querySelectorOrFail.default)(previewPaneContainer, 'table.Bs > tr');
245
+ const elementStream = (0, _makeElementChildStream.default)(threadContainerTableElement).filter(event => !!event.el.querySelector('.if') || !!event.el.querySelector('.PeIF1d') || !!event.el.querySelector('.a98.iY'));
246
+ this._eventStream.plug(elementStream.flatMap((0, _makeElementViewStream.default)(element => new _gmailThreadView.default(element, this, this._driver, true))).map(view => {
247
+ this._threadView = view;
248
+ return {
249
+ eventName: 'newGmailThreadView',
250
+ view: view
251
+ };
252
+ }));
388
253
  }
389
-
390
- _getSectionsContainer(): HTMLElement {
254
+ _getSectionsContainer() {
391
255
  const main = document.querySelector("div[role='main']");
392
256
  if (!main) throw new Error('should not happen');
393
257
  let sectionsContainer = main.querySelector('.inboxsdk__custom_sections');
394
258
  if (!sectionsContainer) {
395
- sectionsContainer = this._sectionsContainer =
396
- document.createElement('div');
259
+ sectionsContainer = this._sectionsContainer = document.createElement('div');
397
260
  sectionsContainer.classList.add('inboxsdk__custom_sections');
398
-
399
261
  main.insertBefore(sectionsContainer, main.firstChild);
400
- } else if (
401
- sectionsContainer.classList.contains('Wc') &&
402
- !this._isSearchRoute()
403
- ) {
262
+ } else if (sectionsContainer.classList.contains('Wc') && !this._isSearchRoute()) {
404
263
  sectionsContainer.classList.remove('Wc');
405
264
  }
406
-
407
265
  return sectionsContainer;
408
266
  }
409
-
410
- _getCustomParams(): Object {
411
- var params: Object = Object.create(null);
412
-
413
- if (!this._customRouteID)
414
- throw new Error(
415
- "Should not happen, can't get custom params for non-custom view"
416
- );
417
- this._customRouteID
418
- .split('/')
419
- .slice(1)
420
- .forEach((part, index) => {
421
- if (part[0] !== ':') {
422
- return;
423
- }
424
- part = part.substring(1);
425
-
426
- if (this._paramsArray[index]) {
427
- params[part] = this._paramsArray[index];
428
- }
429
- });
430
-
267
+ _getCustomParams() {
268
+ var params = Object.create(null);
269
+ if (!this._customRouteID) throw new Error("Should not happen, can't get custom params for non-custom view");
270
+ this._customRouteID.split('/').slice(1).forEach((part, index) => {
271
+ if (part[0] !== ':') {
272
+ return;
273
+ }
274
+ part = part.substring(1);
275
+ if (this._paramsArray[index]) {
276
+ params[part] = this._paramsArray[index];
277
+ }
278
+ });
431
279
  return params;
432
280
  }
433
-
434
- _getNativeParams(): Object {
281
+ _getNativeParams() {
435
282
  if (this._isSearchRoute()) {
436
283
  return this._getSearchRouteParams();
437
284
  } else if (this._isListRoute()) {
@@ -443,15 +290,11 @@ class GmailRouteView {
443
290
  }
444
291
  return {};
445
292
  }
446
-
447
- _isSearchRoute(): boolean {
448
- return (
449
- this.getRouteID() === this._gmailRouteProcessor.NativeRouteIDs.SEARCH
450
- );
293
+ _isSearchRoute() {
294
+ return this.getRouteID() === this._gmailRouteProcessor.NativeRouteIDs.SEARCH;
451
295
  }
452
-
453
- getRouteType(): string {
454
- if (includes(['CUSTOM', 'OTHER_APP_CUSTOM'], this._type)) {
296
+ getRouteType() {
297
+ if ((0, _includes.default)(['CUSTOM', 'OTHER_APP_CUSTOM'], this._type)) {
455
298
  return this._gmailRouteProcessor.RouteTypes.CUSTOM;
456
299
  } else if (this._isListRoute()) {
457
300
  return this._gmailRouteProcessor.RouteTypes.LIST;
@@ -460,103 +303,77 @@ class GmailRouteView {
460
303
  } else if (this._isSettingsRoute()) {
461
304
  return this._gmailRouteProcessor.RouteTypes.SETTINGS;
462
305
  }
463
-
464
306
  return this._gmailRouteProcessor.RouteTypes.UNKNOWN;
465
307
  }
466
-
467
- _isThreadRoute(): boolean {
308
+ _isThreadRoute() {
468
309
  return !!this._getThreadContainerElement();
469
310
  }
470
-
471
- _isListRoute(): boolean {
472
- var rowListElements = GmailElementGetter.getRowListElements();
473
-
474
- return (
475
- (this._type === 'CUSTOM_LIST' ||
476
- this._gmailRouteProcessor.isListRouteName(this._name)) &&
477
- rowListElements &&
478
- rowListElements.length > 0
479
- );
311
+ _isListRoute() {
312
+ var rowListElements = _gmailElementGetter.default.getRowListElements();
313
+ return (this._type === 'CUSTOM_LIST' || this._gmailRouteProcessor.isListRouteName(this._name)) && rowListElements && rowListElements.length > 0;
480
314
  }
481
-
482
- _isSettingsRoute(): boolean {
315
+ _isSettingsRoute() {
483
316
  return this._gmailRouteProcessor.isSettingsRouteName(this._name);
484
317
  }
485
-
486
- _getSearchRouteParams(): Object {
318
+ _getSearchRouteParams() {
487
319
  return {
488
320
  query: this._paramsArray[0],
489
321
  includesDriveResults: this._name === 'apps',
490
- page: this._getPageParam(),
322
+ page: this._getPageParam()
491
323
  };
492
324
  }
493
-
494
- _getListRouteParams(): Object {
495
- var params: Object = {
496
- page: this._getPageParam(),
325
+ _getListRouteParams() {
326
+ var params = {
327
+ page: this._getPageParam()
497
328
  };
498
-
499
- if (
500
- this.getRouteID() === this._gmailRouteProcessor.NativeRouteIDs.LABEL &&
501
- this._paramsArray[0]
502
- ) {
329
+ if (this.getRouteID() === this._gmailRouteProcessor.NativeRouteIDs.LABEL && this._paramsArray[0]) {
503
330
  params.labelName = this._paramsArray[0];
504
331
  }
505
-
506
332
  return params;
507
333
  }
508
-
509
- _getThreadRouteParams(): Object {
334
+ _getThreadRouteParams() {
510
335
  if (this._paramsArray && this._paramsArray.length > 0) {
511
- const threadID = last(this._paramsArray);
512
-
513
- if (
514
- threadID &&
515
- (threadID.length === 16 || //for old hex style
516
- threadID[0] === '#') //new sync style thread id
336
+ const threadID = (0, _last.default)(this._paramsArray);
337
+ if (threadID && (threadID.length === 16 ||
338
+ //for old hex style
339
+ threadID[0] === '#') //new sync style thread id
517
340
  ) {
518
341
  return {
519
- threadID: threadID.replace('#', ''),
342
+ threadID: threadID.replace('#', '')
520
343
  };
521
344
  }
522
345
  }
523
-
524
346
  const threadContainerElement = this._getThreadContainerElement();
525
347
  let threadID;
526
348
  if (threadContainerElement) {
527
349
  try {
528
- threadID = this._driver
529
- .getPageCommunicator()
530
- .getCurrentThreadID(threadContainerElement);
350
+ threadID = this._driver.getPageCommunicator().getCurrentThreadID(threadContainerElement);
531
351
  } catch (err) {
532
352
  // leave threadID null to be set below
533
353
  }
534
354
  }
535
355
  if (!threadID) {
536
356
  // Happens if gmonkey isn't available, like on a standalone thread page.
537
- threadID = parse(document.location.search, null, null).th || '';
357
+ threadID = (0, _querystring.parse)(document.location.search, null, null).th || '';
538
358
  }
539
-
540
- return { threadID };
359
+ return {
360
+ threadID
361
+ };
541
362
  }
542
-
543
- _getSettingsRouteParams(): Object {
363
+ _getSettingsRouteParams() {
544
364
  return {
545
- tabName: this._paramsArray[0],
365
+ tabName: this._paramsArray[0]
546
366
  };
547
367
  }
548
-
549
- _getPageParam(): number {
368
+ _getPageParam() {
550
369
  for (var ii = 1; ii < this._paramsArray.length; ii++) {
551
370
  if (this._paramsArray[ii].match(/p\d+/)) {
552
371
  return parseInt(this._paramsArray[ii].replace(/[a-zA-Z]/, ''), 10);
553
372
  }
554
373
  }
555
-
556
374
  return 1;
557
375
  }
558
-
559
- getRouteID(): string {
376
+ getRouteID() {
560
377
  if (this._customRouteID) {
561
378
  return this._customRouteID;
562
379
  } else if (this._isThreadRoute()) {
@@ -568,11 +385,11 @@ class GmailRouteView {
568
385
 
569
386
  // Used to click gmail refresh button in thread lists
570
387
  refresh() {
571
- var el = GmailElementGetter.getToolbarElement().querySelector('div.T-I.nu');
388
+ var el = _gmailElementGetter.default.getToolbarElement().querySelector('div.T-I.nu');
572
389
  if (el) {
573
390
  var prevActive = document.activeElement;
574
391
  var prevClassName = el.className;
575
- simulateClick(el);
392
+ (0, _simulateMouseEvent.simulateClick)(el);
576
393
  el.className = prevClassName; // remove the gmail focus class
577
394
  if (prevActive) {
578
395
  prevActive.focus();
@@ -581,21 +398,12 @@ class GmailRouteView {
581
398
  }
582
399
  }
583
400
  }
584
-
585
- setFullWidth(fullWidth: boolean) {
401
+ setFullWidth(fullWidth) {
586
402
  // The setFullWidth method does not do anything in Gmail
587
403
  }
588
-
589
- _extractParamKeysFromRouteID(routeID: string): string[] {
590
- return routeID
591
- .split('/')
592
- .filter((part) => part[0] === ':')
593
- .map((part) => part.substring(1));
404
+ _extractParamKeysFromRouteID(routeID) {
405
+ return routeID.split('/').filter(part => part[0] === ':').map(part => part.substring(1));
594
406
  }
595
-
596
- _getThreadContainerElement: () => ?HTMLElement = once(() => {
597
- return GmailElementGetter.getThreadContainerElement();
598
- });
599
407
  }
600
-
601
- export default defn(module, GmailRouteView);
408
+ var _default = (0, _ud.defn)(module, GmailRouteView);
409
+ exports.default = _default;