@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,56 +1,36 @@
1
- /* @flow */
2
-
3
- import uniq from 'lodash/uniq';
4
- import escape from 'lodash/escape';
5
- import asap from 'asap';
6
- import { defn } from 'ud';
7
- import Kefir from 'kefir';
8
- import kefirStopper from 'kefir-stopper';
9
- import type { Stopper } from 'kefir-stopper';
10
-
11
- import streamWaitFor from '../../../lib/stream-wait-for';
12
- import makeMutationObserverStream from '../../../lib/dom/make-mutation-observer-stream';
13
- import insertElementInOrder from '../../../lib/dom/insert-element-in-order';
14
- import isElementVisible from '../../../../common/isElementVisible';
15
-
16
- import GmailElementGetter from '../gmail-element-getter';
17
-
18
- import ButtonView from '../widgets/buttons/button-view';
19
- import GmailDropdownView from '../widgets/gmail-dropdown-view';
20
- import BasicButtonViewController from '../../../widgets/buttons/basic-button-view-controller';
21
- import DropdownButtonViewController from '../../../widgets/buttons/dropdown-button-view-controller';
22
- import GmailThreadView from './gmail-thread-view';
23
- import GmailRowListView from './gmail-row-list-view';
24
-
25
- import { SECTION_NAMES } from '../../../constants/toolbars';
26
-
27
- import type GmailDriver from '../gmail-driver';
28
- import type { RouteViewDriver } from '../../../driver-interfaces/route-view-driver';
29
-
30
- import Logger from '../../../lib/logger';
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 _uniq = _interopRequireDefault(require("lodash/uniq"));
10
+ var _escape = _interopRequireDefault(require("lodash/escape"));
11
+ var _asap = _interopRequireDefault(require("asap"));
12
+ var _ud = require("ud");
13
+ var _kefir = _interopRequireDefault(require("kefir"));
14
+ var _kefirStopper = _interopRequireDefault(require("kefir-stopper"));
15
+ var _streamWaitFor = _interopRequireDefault(require("../../../lib/stream-wait-for"));
16
+ var _makeMutationObserverStream = _interopRequireDefault(require("../../../lib/dom/make-mutation-observer-stream"));
17
+ var _insertElementInOrder = _interopRequireDefault(require("../../../lib/dom/insert-element-in-order"));
18
+ var _isElementVisible = _interopRequireDefault(require("../../../../common/isElementVisible"));
19
+ var _gmailElementGetter = _interopRequireDefault(require("../gmail-element-getter"));
20
+ var _buttonView = _interopRequireDefault(require("../widgets/buttons/button-view"));
21
+ var _gmailDropdownView = _interopRequireDefault(require("../widgets/gmail-dropdown-view"));
22
+ var _basicButtonViewController = _interopRequireDefault(require("../../../widgets/buttons/basic-button-view-controller"));
23
+ var _dropdownButtonViewController = _interopRequireDefault(require("../../../widgets/buttons/dropdown-button-view-controller"));
24
+ var _gmailThreadView = _interopRequireDefault(require("./gmail-thread-view"));
25
+ var _gmailRowListView = _interopRequireDefault(require("./gmail-row-list-view"));
26
+ var _toolbars = require("../../../constants/toolbars");
27
+ var _logger = _interopRequireDefault(require("../../../lib/logger"));
32
28
  class GmailToolbarView {
33
- _element: HTMLElement;
34
- _driver: GmailDriver;
35
- _ready: Kefir.Observable<GmailToolbarView>;
36
- _stopper: Stopper;
37
- _routeViewDriver: RouteViewDriver;
38
- _buttonViewControllers: Set<
39
- DropdownButtonViewController | BasicButtonViewController
40
- > = new Set();
41
- _moreMenuItems: Array<{ buttonDescriptor: Object }> = [];
42
- _toolbarState: ?string;
43
- _threadViewDriver: ?GmailThreadView;
44
- _rowListViewDriver: ?GmailRowListView;
45
- _isUpdateButtonClassesScheduled: boolean = false;
46
- _moreMenuItemsContainer: ?HTMLElement = null;
47
-
48
- constructor(
49
- element: HTMLElement,
50
- driver: GmailDriver,
51
- routeViewDriver: RouteViewDriver,
52
- parent: GmailThreadView | GmailRowListView
53
- ) {
29
+ constructor(element, driver, routeViewDriver, parent) {
30
+ (0, _defineProperty2.default)(this, "_buttonViewControllers", new Set());
31
+ (0, _defineProperty2.default)(this, "_moreMenuItems", []);
32
+ (0, _defineProperty2.default)(this, "_isUpdateButtonClassesScheduled", false);
33
+ (0, _defineProperty2.default)(this, "_moreMenuItemsContainer", null);
54
34
  // Important: Multiple GmailToolbarViews will be created for the same
55
35
  // toolbar element in preview pane mode! When a GmailToolbarView is
56
36
  // created, it adds some attributes to the element corresponding to the
@@ -60,31 +40,25 @@ class GmailToolbarView {
60
40
  // element.
61
41
  this._element = element;
62
42
  this._driver = driver;
63
- this._stopper = kefirStopper();
43
+ this._stopper = (0, _kefirStopper.default)();
64
44
  this._routeViewDriver = routeViewDriver;
65
-
66
45
  if (this._getMoveSectionElement()) {
67
- this._ready = Kefir.constant(this);
46
+ this._ready = _kefir.default.constant(this);
68
47
  } else {
69
- this._ready = streamWaitFor(() => !!this._getMoveSectionElement())
70
- .takeUntilBy(this._stopper)
71
- .map(() => this)
72
- .toProperty();
48
+ this._ready = (0, _streamWaitFor.default)(() => !!this._getMoveSectionElement()).takeUntilBy(this._stopper).map(() => this).toProperty();
73
49
  }
74
-
75
50
  this._ready.onValue(() => {
76
51
  this._startMonitoringMoreMenu();
77
52
  this._determineToolbarState();
78
53
  this._determineToolbarIconMode();
79
54
  this._setupToolbarStateMonitoring();
80
55
  });
81
-
82
- if (parent instanceof GmailThreadView) {
56
+ if (parent instanceof _gmailThreadView.default) {
83
57
  this._threadViewDriver = parent;
84
58
  this._ready.onValue(() => {
85
59
  this._element.setAttribute('data-thread-toolbar', 'true');
86
60
  });
87
- } else if (parent instanceof GmailRowListView) {
61
+ } else if (parent instanceof _gmailRowListView.default) {
88
62
  this._rowListViewDriver = parent;
89
63
  this._ready.onValue(() => {
90
64
  this._element.setAttribute('data-rowlist-toolbar', 'true');
@@ -93,29 +67,24 @@ class GmailToolbarView {
93
67
  throw new Error('Invalid parent');
94
68
  }
95
69
  }
96
-
97
- getStopper(): Kefir.Observable<null> {
70
+ getStopper() {
98
71
  return this._stopper;
99
72
  }
100
- getElement(): HTMLElement {
73
+ getElement() {
101
74
  return this._element;
102
75
  }
103
- getRouteViewDriver(): RouteViewDriver {
76
+ getRouteViewDriver() {
104
77
  return this._routeViewDriver;
105
78
  }
106
-
107
79
  getThreadViewDriver() {
108
80
  return this._threadViewDriver;
109
81
  }
110
-
111
- isForRowList(): boolean {
82
+ isForRowList() {
112
83
  return this._rowListViewDriver != null;
113
84
  }
114
-
115
- isForThread(): boolean {
85
+ isForThread() {
116
86
  return this._threadViewDriver != null;
117
87
  }
118
-
119
88
  getThreadRowViewDrivers() {
120
89
  if (!this._rowListViewDriver) {
121
90
  console.error('missing this._rowListViewDriver'); //eslint-disable-line no-console
@@ -123,38 +92,28 @@ class GmailToolbarView {
123
92
  }
124
93
  return this._rowListViewDriver.getThreadRowViewDrivers();
125
94
  }
126
-
127
- addButton(
128
- buttonDescriptor: Object,
129
- id?: string
130
- ): { getStopper(): Kefir.Observable<null>, destroy(): void } {
131
- const buttonStopper = kefirStopper();
132
-
95
+ addButton(buttonDescriptor, id) {
96
+ const buttonStopper = (0, _kefirStopper.default)();
133
97
  this._stopper.takeUntilBy(buttonStopper).onValue(() => {
134
98
  buttonStopper.destroy();
135
99
  });
136
-
137
100
  const appId = this._driver.getAppId();
138
- const toolbarSections = SECTION_NAMES;
101
+ const toolbarSections = _toolbars.SECTION_NAMES;
139
102
  this._ready.takeUntilBy(buttonStopper).onValue(() => {
140
103
  if (buttonDescriptor.section === toolbarSections.OTHER) {
141
- const entry = { buttonDescriptor };
104
+ const entry = {
105
+ buttonDescriptor
106
+ };
142
107
  this._moreMenuItems.push(entry);
143
108
  this._addToOpenMoreMenu(buttonDescriptor);
144
109
  buttonStopper.onValue(() => {
145
- this._moreMenuItems = this._moreMenuItems.filter(
146
- (_entry) => _entry !== entry
147
- );
110
+ this._moreMenuItems = this._moreMenuItems.filter(_entry => _entry !== entry);
148
111
  this._addMoreItems();
149
112
  });
150
113
  } else {
151
- const sectionElement = this._getSectionElement(
152
- buttonDescriptor.section,
153
- toolbarSections
154
- );
114
+ const sectionElement = this._getSectionElement(buttonDescriptor.section, toolbarSections);
155
115
  if (sectionElement) {
156
- const buttonViewController =
157
- this._createButtonViewController(buttonDescriptor);
116
+ const buttonViewController = this._createButtonViewController(buttonDescriptor);
158
117
  this._buttonViewControllers.add(buttonViewController);
159
118
  buttonStopper.onValue(() => {
160
119
  this._buttonViewControllers.delete(buttonViewController);
@@ -162,282 +121,184 @@ class GmailToolbarView {
162
121
  });
163
122
 
164
123
  // Debugging code to track our duplicate toolbar button issue.
165
- (buttonViewController
166
- .getView()
167
- .getElement(): any).__addButton_ownedByExtension = true;
168
- buttonViewController
169
- .getView()
170
- .getElement()
171
- .setAttribute(
172
- 'data-add-button-debug',
173
- JSON.stringify({
174
- id,
175
- title: buttonDescriptor.title,
176
- hasThreadViewDriver: this.isForThread(),
177
- hasRowListViewDriver: this.isForRowList(),
178
- })
179
- );
180
-
181
- buttonViewController
182
- .getView()
183
- .getElement()
184
- .setAttribute(
185
- 'data-order-hint',
186
- String(buttonDescriptor.orderHint || 0)
187
- );
188
- insertElementInOrder(
189
- sectionElement,
190
- buttonViewController.getView().getElement()
191
- );
192
-
193
- Kefir.merge([Kefir.constant(-1), Kefir.later(1000, 1000)])
194
- .map((delay) => {
195
- const duplicates: Object[] = Array.from(sectionElement.children)
196
- .filter(
197
- (el) =>
198
- buttonViewController
199
- .getView()
200
- .getElement()
201
- .getAttribute('data-rowlist-toolbar') ===
202
- el.getAttribute('data-rowlist-toolbar') &&
203
- buttonViewController
204
- .getView()
205
- .getElement()
206
- .getAttribute('data-toolbar-expanded') ===
207
- el.getAttribute('data-toolbar-expanded')
208
- )
209
- .filter((el) => el.hasAttribute('data-add-button-debug'))
210
- .map((el) =>
211
- Object.assign(
212
- {
213
- ownedByExtension: !!(el: any)
214
- .__addButton_ownedByExtension,
215
- },
216
- JSON.parse(
217
- el.getAttribute('data-add-button-debug') || 'null'
218
- )
219
- )
220
- )
221
- .filter(({ title }) => title === buttonDescriptor.title);
222
- return { delay, duplicates };
223
- })
224
- .filter(({ duplicates }) => duplicates.length > 1)
225
- .take(1)
226
- .takeUntilBy(this._stopper)
227
- .onValue(({ delay, duplicates }) => {
228
- Logger.error(new Error('Duplicate toolbar button'), {
229
- delay,
230
- duplicates,
231
- dataThreadToolbar: this._element.getAttribute(
232
- 'data-thread-toolbar'
233
- ),
234
- dataRowlistToolbar: this._element.getAttribute(
235
- 'data-rowlist-toolbar'
236
- ),
237
- });
124
+ buttonViewController.getView().getElement().__addButton_ownedByExtension = true;
125
+ buttonViewController.getView().getElement().setAttribute('data-add-button-debug', JSON.stringify({
126
+ id,
127
+ title: buttonDescriptor.title,
128
+ hasThreadViewDriver: this.isForThread(),
129
+ hasRowListViewDriver: this.isForRowList()
130
+ }));
131
+ buttonViewController.getView().getElement().setAttribute('data-order-hint', String(buttonDescriptor.orderHint || 0));
132
+ (0, _insertElementInOrder.default)(sectionElement, buttonViewController.getView().getElement());
133
+ _kefir.default.merge([_kefir.default.constant(-1), _kefir.default.later(1000, 1000)]).map(delay => {
134
+ const duplicates = Array.from(sectionElement.children).filter(el => buttonViewController.getView().getElement().getAttribute('data-rowlist-toolbar') === el.getAttribute('data-rowlist-toolbar') && buttonViewController.getView().getElement().getAttribute('data-toolbar-expanded') === el.getAttribute('data-toolbar-expanded')).filter(el => el.hasAttribute('data-add-button-debug')).map(el => Object.assign({
135
+ ownedByExtension: !!el.__addButton_ownedByExtension
136
+ }, JSON.parse(el.getAttribute('data-add-button-debug') || 'null'))).filter(_ref => {
137
+ let {
138
+ title
139
+ } = _ref;
140
+ return title === buttonDescriptor.title;
238
141
  });
239
-
142
+ return {
143
+ delay,
144
+ duplicates
145
+ };
146
+ }).filter(_ref2 => {
147
+ let {
148
+ duplicates
149
+ } = _ref2;
150
+ return duplicates.length > 1;
151
+ }).take(1).takeUntilBy(this._stopper).onValue(_ref3 => {
152
+ let {
153
+ delay,
154
+ duplicates
155
+ } = _ref3;
156
+ _logger.default.error(new Error('Duplicate toolbar button'), {
157
+ delay,
158
+ duplicates,
159
+ dataThreadToolbar: this._element.getAttribute('data-thread-toolbar'),
160
+ dataRowlistToolbar: this._element.getAttribute('data-rowlist-toolbar')
161
+ });
162
+ });
240
163
  this._updateButtonClasses(this._element);
241
- buttonViewController
242
- .getView()
243
- .setEnabled(this._toolbarState === 'EXPANDED');
164
+ buttonViewController.getView().setEnabled(this._toolbarState === 'EXPANDED');
244
165
  }
245
166
  }
246
167
  });
247
-
248
168
  return {
249
169
  getStopper: () => buttonStopper,
250
170
  destroy: () => {
251
171
  buttonStopper.destroy();
252
- },
172
+ }
253
173
  };
254
174
  }
255
-
256
- waitForReady(): Kefir.Observable<GmailToolbarView> {
175
+ waitForReady() {
257
176
  return this._ready;
258
177
  }
259
-
260
- _createButtonViewController(
261
- buttonDescriptor: Object
262
- ): DropdownButtonViewController | BasicButtonViewController {
178
+ _createButtonViewController(buttonDescriptor) {
263
179
  const buttonView = this._getButtonView(buttonDescriptor);
264
180
  buttonDescriptor.buttonView = buttonView;
265
-
266
181
  let buttonViewController = null;
267
182
  if (buttonDescriptor.hasDropdown) {
268
- buttonViewController = new DropdownButtonViewController({
183
+ buttonViewController = new _dropdownButtonViewController.default({
269
184
  buttonView: buttonView,
270
- dropdownViewDriverClass: GmailDropdownView,
185
+ dropdownViewDriverClass: _gmailDropdownView.default,
271
186
  dropdownShowFunction: buttonDescriptor.onClick,
272
187
  dropdownPositionOptions: {
273
188
  position: 'bottom',
274
- hAlign: 'left',
275
- },
189
+ hAlign: 'left'
190
+ }
276
191
  });
277
192
  } else {
278
- buttonViewController = new BasicButtonViewController(buttonDescriptor);
193
+ buttonViewController = new _basicButtonViewController.default(buttonDescriptor);
279
194
  }
280
-
281
195
  return buttonViewController;
282
196
  }
283
-
284
- _getButtonView(buttonDescriptor: Object): Object {
285
- const buttonView = new ButtonView({
197
+ _getButtonView(buttonDescriptor) {
198
+ const buttonView = new _buttonView.default({
286
199
  ...buttonDescriptor,
287
- noArrow: true,
200
+ noArrow: true
288
201
  });
289
-
290
202
  if (this._rowListViewDriver) {
291
203
  buttonView.getElement().setAttribute('data-rowlist-toolbar', 'true');
292
204
  buttonView.getElement().setAttribute('data-toolbar-expanded', 'true');
293
205
  } else if (this._threadViewDriver) {
294
206
  buttonView.getElement().setAttribute('data-thread-toolbar', 'true');
295
207
  }
296
-
297
208
  buttonView.getElement().setAttribute('role', 'button');
298
-
299
209
  return buttonView;
300
210
  }
301
-
302
211
  _startMonitoringMoreMenu() {
303
212
  const moreButtonElement = this._element.querySelector('.nf[role=button]');
304
213
  if (!moreButtonElement) {
305
214
  return;
306
215
  }
307
-
308
- makeMutationObserverStream(moreButtonElement, {
216
+ (0, _makeMutationObserverStream.default)(moreButtonElement, {
309
217
  attributes: true,
310
- attributeFilter: ['aria-expanded'],
311
- })
312
- .toProperty(() => null)
313
- .takeUntilBy(this._stopper)
314
- .map(() => moreButtonElement.getAttribute('aria-expanded'))
315
- .onValue((ariaExpanded) => {
316
- if (ariaExpanded !== 'true') {
317
- this._clearMoreItems();
318
- } else {
319
- this._addMoreItems();
320
- }
321
- });
218
+ attributeFilter: ['aria-expanded']
219
+ }).toProperty(() => null).takeUntilBy(this._stopper).map(() => moreButtonElement.getAttribute('aria-expanded')).onValue(ariaExpanded => {
220
+ if (ariaExpanded !== 'true') {
221
+ this._clearMoreItems();
222
+ } else {
223
+ this._addMoreItems();
224
+ }
225
+ });
322
226
  }
323
-
324
227
  _determineToolbarState() {
325
228
  const moveSectionElement = this._getMoveSectionElement();
326
229
  if (!moveSectionElement) throw new Error('No move section element');
327
-
328
230
  if (moveSectionElement.style.display === 'none') {
329
231
  this._toolbarState = 'COLLAPSED';
330
232
  } else {
331
233
  this._toolbarState = 'EXPANDED';
332
234
  }
333
235
  }
334
-
335
236
  _determineToolbarIconMode() {
336
237
  const moveSectionElement = this._getMoveSectionElement();
337
238
  if (!moveSectionElement) throw new Error('No move section element');
338
- const isIconMode = Array.from(
339
- moveSectionElement.querySelectorAll(
340
- '[role=button]:not(.inboxsdk__button)'
341
- )
342
- ).some(
343
- (buttonElement) =>
344
- buttonElement.hasAttribute('title') ||
345
- buttonElement.hasAttribute('data-tooltip')
346
- );
347
- this._element.setAttribute(
348
- 'data-toolbar-icononly',
349
- isIconMode ? 'true' : 'false'
350
- );
239
+ const isIconMode = Array.from(moveSectionElement.querySelectorAll('[role=button]:not(.inboxsdk__button)')).some(buttonElement => buttonElement.hasAttribute('title') || buttonElement.hasAttribute('data-tooltip'));
240
+ this._element.setAttribute('data-toolbar-icononly', isIconMode ? 'true' : 'false');
351
241
  }
352
-
353
242
  _setupToolbarStateMonitoring() {
354
243
  const moveSectionElement = this._getMoveSectionElement();
355
244
  if (!moveSectionElement) throw new Error('No move section element');
356
- makeMutationObserverStream(moveSectionElement, {
245
+ (0, _makeMutationObserverStream.default)(moveSectionElement, {
357
246
  attributes: true,
358
- attributeFilter: ['style'],
359
- })
360
- .takeUntilBy(this._stopper)
361
- .onValue((mutation) => {
362
- if (
363
- mutation.target instanceof HTMLElement &&
364
- mutation.target.style.display === 'none'
365
- ) {
366
- this._toolbarState = 'COLLAPSED';
367
- } else {
368
- this._toolbarState = 'EXPANDED';
369
- }
370
-
371
- this._updateButtonClasses(this._element);
372
- this._updateButtonEnabledState();
373
- });
247
+ attributeFilter: ['style']
248
+ }).takeUntilBy(this._stopper).onValue(mutation => {
249
+ if (mutation.target instanceof HTMLElement && mutation.target.style.display === 'none') {
250
+ this._toolbarState = 'COLLAPSED';
251
+ } else {
252
+ this._toolbarState = 'EXPANDED';
253
+ }
254
+ this._updateButtonClasses(this._element);
255
+ this._updateButtonEnabledState();
256
+ });
374
257
  }
375
-
376
- _getSectionElement(
377
- sectionName: string,
378
- toolbarSections: Object
379
- ): ?HTMLElement {
258
+ _getSectionElement(sectionName, toolbarSections) {
380
259
  switch (sectionName) {
381
260
  case toolbarSections.INBOX_STATE:
382
261
  return this._getArchiveSectionElement();
383
-
384
262
  case toolbarSections.METADATA_STATE:
385
263
  return this._getMoveSectionElement();
386
-
387
264
  default:
388
265
  return null;
389
266
  }
390
267
  }
391
-
392
- _getArchiveSectionElement(): ?HTMLElement {
393
- return this._getSectionElementForButtonSelector(
394
- '.ar9, .aFh, .aFj, .lR, .nN, .nX, .aFk'
395
- );
268
+ _getArchiveSectionElement() {
269
+ return this._getSectionElementForButtonSelector('.ar9, .aFh, .aFj, .lR, .nN, .nX, .aFk');
396
270
  }
397
-
398
- _getCheckboxSectionElement(): ?HTMLElement {
271
+ _getCheckboxSectionElement() {
399
272
  return this._getSectionElementForButtonSelector('.T-Jo-auh');
400
273
  }
401
-
402
- _getMoveSectionElement(): ?HTMLElement {
274
+ _getMoveSectionElement() {
403
275
  return this._getSectionElementForButtonSelector('.asb, .ase, .ns, .mw');
404
276
  }
405
-
406
- _getSectionElementForButtonSelector(buttonSelector: string): ?HTMLElement {
277
+ _getSectionElementForButtonSelector(buttonSelector) {
407
278
  const sectionElements = this._element.querySelectorAll('.G-Ni');
408
-
409
279
  for (let ii = 0; ii < sectionElements.length; ii++) {
410
280
  if (sectionElements[ii].querySelector(buttonSelector)) {
411
281
  return sectionElements[ii];
412
282
  }
413
283
  }
414
-
415
284
  return null;
416
285
  }
417
-
418
- _updateButtonClasses(element: HTMLElement) {
286
+ _updateButtonClasses(element) {
419
287
  if (this._isUpdateButtonClassesScheduled) return;
420
-
421
288
  this._isUpdateButtonClassesScheduled = true;
422
- asap(() => {
289
+ (0, _asap.default)(() => {
423
290
  if (this._toolbarState === 'EXPANDED') {
424
291
  element.setAttribute('data-toolbar-expanded', 'true');
425
292
  } else if (this._toolbarState === 'COLLAPSED') {
426
293
  element.setAttribute('data-toolbar-expanded', 'false');
427
294
  }
428
-
429
295
  const buttons = element.querySelectorAll('.G-Ni > [role=button]');
430
-
431
- Array.prototype.forEach.call(buttons, (button) => {
296
+ Array.prototype.forEach.call(buttons, button => {
432
297
  let current = button;
433
298
  for (let ii = 0; ii < 100000; ii++) {
434
299
  if (current.previousElementSibling) {
435
- if (
436
- current.previousElementSibling.classList.contains(
437
- 'inboxsdk__button'
438
- )
439
- ) {
440
- if (isElementVisible(current.previousElementSibling)) {
300
+ if (current.previousElementSibling.classList.contains('inboxsdk__button')) {
301
+ if ((0, _isElementVisible.default)(current.previousElementSibling)) {
441
302
  button.classList.add('T-I-Js-Gs');
442
303
  break;
443
304
  } else {
@@ -452,14 +313,11 @@ class GmailToolbarView {
452
313
  break;
453
314
  }
454
315
  }
455
-
456
316
  current = button;
457
317
  for (let ii = 0; ii < 100000; ii++) {
458
318
  if (current.nextElementSibling) {
459
- if (
460
- current.nextElementSibling.classList.contains('inboxsdk__button')
461
- ) {
462
- if (isElementVisible(current.nextElementSibling)) {
319
+ if (current.nextElementSibling.classList.contains('inboxsdk__button')) {
320
+ if ((0, _isElementVisible.default)(current.nextElementSibling)) {
463
321
  button.classList.add('T-I-Js-IF');
464
322
  break;
465
323
  } else {
@@ -475,117 +333,75 @@ class GmailToolbarView {
475
333
  }
476
334
  }
477
335
  });
478
-
479
336
  this._isUpdateButtonClassesScheduled = false;
480
337
  });
481
338
  }
482
-
483
339
  _updateButtonEnabledState() {
484
340
  const enabled = this._toolbarState === 'EXPANDED';
485
- this._buttonViewControllers.forEach((buttonViewController) => {
341
+ this._buttonViewControllers.forEach(buttonViewController => {
486
342
  buttonViewController.getView().setEnabled(enabled);
487
343
  });
488
344
  }
489
-
490
345
  _addMoreItems() {
491
346
  this._clearMoreItems();
492
-
493
347
  if (this._toolbarState !== 'EXPANDED') {
494
348
  return;
495
349
  }
496
-
497
- this._moreMenuItems.forEach((item) => {
350
+ this._moreMenuItems.forEach(item => {
498
351
  this._addToOpenMoreMenu(item.buttonDescriptor);
499
352
  });
500
353
  }
501
-
502
354
  _clearMoreItems() {
503
355
  if (this._moreMenuItemsContainer) {
504
356
  this._moreMenuItemsContainer.remove();
505
357
  this._moreMenuItemsContainer = null;
506
358
  }
507
359
  }
508
-
509
- _addToOpenMoreMenu(buttonDescriptor: Object) {
510
- const moreMenu = GmailElementGetter.getActiveMoreMenu();
360
+ _addToOpenMoreMenu(buttonDescriptor) {
361
+ const moreMenu = _gmailElementGetter.default.getActiveMoreMenu();
511
362
  if (!moreMenu) {
512
363
  return;
513
364
  }
514
-
515
365
  const appDiv = this._getMoreMenuItemsContainer(moreMenu);
516
366
  const menuItemElement = this._getMoreMenuItemElement(buttonDescriptor);
517
-
518
- insertElementInOrder(appDiv, menuItemElement);
367
+ (0, _insertElementInOrder.default)(appDiv, menuItemElement);
519
368
  }
520
-
521
- _getMoreMenuItemsContainer(moreMenu: HTMLElement): HTMLElement {
369
+ _getMoreMenuItemsContainer(moreMenu) {
522
370
  if (this._moreMenuItemsContainer) {
523
371
  return this._moreMenuItemsContainer;
524
372
  }
525
-
526
- const container = (this._moreMenuItemsContainer =
527
- document.createElement('div'));
373
+ const container = this._moreMenuItemsContainer = document.createElement('div');
528
374
  container.setAttribute('data-group-order-hint', this._driver.getAppId());
529
375
  container.innerHTML = '<div class="J-Kh"></div>';
530
-
531
- insertElementInOrder(moreMenu, container);
532
-
376
+ (0, _insertElementInOrder.default)(moreMenu, container);
533
377
  return container;
534
378
  }
535
-
536
- _getMoreMenuItemElement(buttonDescriptor: Object): HTMLElement {
379
+ _getMoreMenuItemElement(buttonDescriptor) {
537
380
  const itemElement = document.createElement('div');
538
381
  itemElement.setAttribute('class', 'J-N inboxsdk__menuItem');
539
382
  itemElement.setAttribute('role', 'menuitem');
540
- itemElement.setAttribute(
541
- 'data-order-hint',
542
- String(buttonDescriptor.orderHint || 0)
543
- );
544
-
545
- itemElement.innerHTML = [
546
- '<div class="J-N-Jz" style="-webkit-user-select: none;">',
547
- buttonDescriptor.iconUrl
548
- ? '<img class="J-N-JX" src="' +
549
- escape(buttonDescriptor.iconUrl) +
550
- '" />'
551
- : '',
552
- buttonDescriptor.iconClass
553
- ? '<span class="inboxsdk__icon J-N-JX ' +
554
- escape(buttonDescriptor.iconClass) +
555
- '"></span>'
556
- : '',
557
- escape(buttonDescriptor.title),
558
- '</div>',
559
- ].join('');
560
-
561
- itemElement.addEventListener('mouseenter', (e: MouseEvent) =>
562
- itemElement.classList.add('J-N-JT')
563
- );
564
- itemElement.addEventListener('mouseleave', (e: MouseEvent) =>
565
- itemElement.classList.remove('J-N-JT')
566
- );
567
- itemElement.addEventListener('click', (e: MouseEvent) => {
383
+ itemElement.setAttribute('data-order-hint', String(buttonDescriptor.orderHint || 0));
384
+ itemElement.innerHTML = ['<div class="J-N-Jz" style="-webkit-user-select: none;">', buttonDescriptor.iconUrl ? '<img class="J-N-JX" src="' + (0, _escape.default)(buttonDescriptor.iconUrl) + '" />' : '', buttonDescriptor.iconClass ? '<span class="inboxsdk__icon J-N-JX ' + (0, _escape.default)(buttonDescriptor.iconClass) + '"></span>' : '', (0, _escape.default)(buttonDescriptor.title), '</div>'].join('');
385
+ itemElement.addEventListener('mouseenter', e => itemElement.classList.add('J-N-JT'));
386
+ itemElement.addEventListener('mouseleave', e => itemElement.classList.remove('J-N-JT'));
387
+ itemElement.addEventListener('click', e => {
568
388
  if (buttonDescriptor.onClick) {
569
389
  buttonDescriptor.onClick({});
570
390
  }
571
391
  });
572
-
573
392
  return itemElement;
574
393
  }
575
-
576
394
  destroy() {
577
395
  const element = this._element;
578
-
579
396
  if (this._threadViewDriver) {
580
397
  this._element.removeAttribute('data-thread-toolbar');
581
398
  } else if (this._rowListViewDriver) {
582
399
  this._element.removeAttribute('data-rowlist-toolbar');
583
400
  }
584
-
585
401
  this._clearMoreItems();
586
402
  this._stopper.destroy();
587
403
  this._updateButtonClasses(element);
588
404
  }
589
405
  }
590
-
591
- export default defn(module, GmailToolbarView);
406
+ var _default = (0, _ud.defn)(module, GmailToolbarView);
407
+ exports.default = _default;