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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) hide show
  1. package/inboxsdk.js +1 -1
  2. package/inboxsdk.js.map +1 -1
  3. package/package.json +5 -1
  4. package/src/build/exec.js +26 -0
  5. package/src/build/spawn.js +17 -0
  6. package/src/common/ajax.js +90 -0
  7. package/src/common/cachebust-url.js +10 -0
  8. package/src/common/censorHTMLstring.js +37 -0
  9. package/src/common/censorHTMLtree.js +28 -0
  10. package/src/common/censorJSONTree.js +15 -0
  11. package/src/common/connectivity-test.js +21 -0
  12. package/src/common/defer.js +11 -0
  13. package/src/common/find-parent.js +10 -0
  14. package/src/common/get-extension-id.js +7 -0
  15. package/src/common/get-or-fail.js +8 -0
  16. package/src/common/get-session-id.js +14 -0
  17. package/src/common/get-stack-trace.js +6 -0
  18. package/src/common/html-to-text.js +7 -0
  19. package/src/common/isElementVisible.js +6 -0
  20. package/src/common/load-script.js +127 -0
  21. package/src/common/log-error.js +191 -0
  22. package/src/common/quoted-split.js +18 -0
  23. package/src/common/rate-limit-queuer.js +57 -0
  24. package/src/common/rate-limit.js +14 -0
  25. package/src/common/version.js +6 -0
  26. package/src/inboxsdk-js/check-requirements.js +7 -3
  27. package/src/inboxsdk-js/header.js +1 -0
  28. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.js +5 -6
  29. package/src/inboxsdk-js/inboxsdk-NONREMOTE.js +4 -3
  30. package/src/inboxsdk-js/inboxsdk-REMOTE.js +3 -1
  31. package/src/inboxsdk-js/inboxsdk-TEST.js +4 -3
  32. package/src/inboxsdk-js/inboxsdk.js +33 -39
  33. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.js +15 -18
  34. package/src/inboxsdk-js/loading/platform-implementation-loader.js +27 -0
  35. package/src/injected-js/gmail/constants.js +2 -0
  36. package/src/injected-js/gmail/modify-suggestions.js +106 -0
  37. package/src/injected-js/gmail/modify-suggestions.test.js +8 -9
  38. package/src/injected-js/gmail/setup-gmail-interceptor.js +340 -579
  39. package/src/injected-js/gmail/setup-gmonkey-handler.js +49 -0
  40. package/src/injected-js/gmail/sync-compose-processor-20220909.js +298 -0
  41. package/src/injected-js/gmail/sync-compose-processor.js +55 -0
  42. package/src/injected-js/gmail/sync-compose-request-processor.js +110 -0
  43. package/src/injected-js/gmail/sync-compose-request-processor.test.js +39 -49
  44. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +20 -33
  45. package/src/injected-js/gmail/thread-identifier/index.js +57 -93
  46. package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +22 -31
  47. package/src/injected-js/gmail/thread-identifier/thread-row-parser.test.js +12 -28
  48. package/src/injected-js/inbox/setupAjaxInterceptor.js +64 -121
  49. package/src/injected-js/inbox/setupClickAndGetNewIframeSrc.js +53 -66
  50. package/src/injected-js/inbox/setupComposeViewDraftIDFinder.js +20 -36
  51. package/src/injected-js/inbox/setupInboxFakeWindowResizeListener.js +13 -13
  52. package/src/injected-js/injected-logger.js +50 -0
  53. package/src/injected-js/main.js +11 -24
  54. package/src/injected-js/message-metadata-holder.js +52 -82
  55. package/src/injected-js/setup-data-exposer.js +89 -148
  56. package/src/injected-js/setup-error-silencer.js +21 -21
  57. package/src/injected-js/setup-event-reemitter.js +30 -22
  58. package/src/injected-js/setupCustomViewEventAssassin.js +90 -0
  59. package/src/injected-js/setupInboxCustomViewLinkFixer.js +24 -29
  60. package/src/injected-js/setupPushStateListener.js +18 -11
  61. package/src/injected-js/xhr-helper.js +62 -65
  62. package/src/injected-js/xhr-proxy-factory.js +195 -445
  63. package/src/injected-js/xhr-proxy-factory.test.js +824 -991
  64. package/src/platform-implementation-js/constants/nav-item-types.js +19 -0
  65. package/src/platform-implementation-js/constants/router.js +14 -9
  66. package/src/platform-implementation-js/constants/toolbars.js +8 -3
  67. package/src/platform-implementation-js/dom-driver/gmail/custom-style.js +13 -13
  68. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +115 -136
  69. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.js +21 -0
  70. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.js +28 -0
  71. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.js +98 -0
  72. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.js +4 -0
  73. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +13 -14
  74. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +27 -48
  75. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.js +8 -0
  76. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +31 -42
  77. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +30 -40
  78. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.js +12 -0
  79. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.js +33 -0
  80. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +10 -18
  81. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +21 -28
  82. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +33 -45
  83. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +31 -49
  84. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +58 -65
  85. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.js +4 -0
  86. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +40 -124
  87. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +17 -22
  88. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.js +44 -0
  89. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.test.js +10 -11
  90. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +44 -80
  91. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +19 -26
  92. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +71 -147
  93. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +91 -148
  94. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +150 -166
  95. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.test.js +70 -120
  96. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +15 -15
  97. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +44 -67
  98. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +230 -379
  99. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.test.js +121 -307
  100. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +17 -24
  101. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +41 -49
  102. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +30 -40
  103. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +28 -60
  104. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +61 -133
  105. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.js +95 -0
  106. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +30 -42
  107. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.test.js +52 -46
  108. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +354 -694
  109. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.js +38 -0
  110. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.js +12 -0
  111. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.js +253 -0
  112. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.js +200 -0
  113. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.js +533 -0
  114. package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.js +289 -0
  115. package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.js +21 -0
  116. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +77 -93
  117. package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.js +28 -0
  118. package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.js +19 -0
  119. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.js +126 -0
  120. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +35 -82
  121. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.test.js +44 -94
  122. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +12 -19
  123. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +17 -29
  124. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.js +26 -26
  125. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +391 -797
  126. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +7 -9
  127. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +60 -109
  128. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +95 -135
  129. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +103 -211
  130. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.test.js +61 -61
  131. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +17 -17
  132. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +188 -541
  133. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +67 -135
  134. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +27 -49
  135. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-inner-sidebar.js +7 -13
  136. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-outer-sidebar.js +9 -22
  137. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +36 -63
  138. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.js +101 -0
  139. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +38 -113
  140. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.js +38 -0
  141. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +11 -16
  142. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +11 -17
  143. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +8 -11
  144. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +27 -47
  145. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +11 -24
  146. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +59 -111
  147. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.js +28 -0
  148. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +15 -14
  149. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +11 -17
  150. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +18 -24
  151. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.js +22 -0
  152. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +19 -23
  153. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.js +233 -0
  154. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +11 -19
  155. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +141 -376
  156. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +17 -28
  157. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +34 -70
  158. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.js +223 -0
  159. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +10 -17
  160. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.js +157 -0
  161. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.js +109 -0
  162. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +83 -137
  163. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +10 -19
  164. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +632 -1190
  165. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.js +5 -0
  166. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +29 -38
  167. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +327 -617
  168. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.js +759 -0
  169. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +26 -49
  170. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +188 -380
  171. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +104 -194
  172. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.js +84 -0
  173. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +382 -811
  174. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view/add-icon-area.js +34 -58
  175. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.js +330 -581
  176. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.test.js +123 -277
  177. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +15 -35
  178. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +216 -571
  179. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +152 -336
  180. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +87 -211
  181. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.js +33 -0
  182. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.js +325 -0
  183. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.js +58 -0
  184. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.js +55 -0
  185. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +10 -11
  186. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.js +96 -0
  187. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.js +30 -0
  188. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.js +10 -0
  189. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +20 -29
  190. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.js +22 -0
  191. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +41 -76
  192. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +45 -99
  193. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +76 -128
  194. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +128 -319
  195. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +45 -78
  196. package/src/platform-implementation-js/dom-driver/inbox/__mocks__/getSidebarClassnames.js +8 -4
  197. package/src/platform-implementation-js/dom-driver/inbox/addNavItem.js +36 -54
  198. package/src/platform-implementation-js/dom-driver/inbox/addRecipientRow.js +35 -53
  199. package/src/platform-implementation-js/dom-driver/inbox/createLink.js +13 -15
  200. package/src/platform-implementation-js/dom-driver/inbox/createLink.test.js +15 -18
  201. package/src/platform-implementation-js/dom-driver/inbox/custom-style.js +14 -13
  202. package/src/platform-implementation-js/dom-driver/inbox/detection/appToolbarLocation/parser.js +14 -20
  203. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentCard/parser.js +14 -13
  204. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentOverlay/parser.js +35 -67
  205. package/src/platform-implementation-js/dom-driver/inbox/detection/chatSidebar/parser.js +16 -18
  206. package/src/platform-implementation-js/dom-driver/inbox/detection/compose/parser.js +68 -185
  207. package/src/platform-implementation-js/dom-driver/inbox/detection/message/parser.js +28 -56
  208. package/src/platform-implementation-js/dom-driver/inbox/detection/nativeDrawer/parser.js +12 -10
  209. package/src/platform-implementation-js/dom-driver/inbox/detection/searchBar/parser.js +16 -16
  210. package/src/platform-implementation-js/dom-driver/inbox/detection/thread/parser.js +24 -35
  211. package/src/platform-implementation-js/dom-driver/inbox/detection/thread-row/parser.js +37 -89
  212. package/src/platform-implementation-js/dom-driver/inbox/getComposeViewDriverLiveSet.js +56 -78
  213. package/src/platform-implementation-js/dom-driver/inbox/getInboxMessageIdForInboxThreadId.js +26 -32
  214. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.js +52 -109
  215. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.test.js +7 -8
  216. package/src/platform-implementation-js/dom-driver/inbox/gotoView.js +16 -20
  217. package/src/platform-implementation-js/dom-driver/inbox/gotoView.test.js +15 -16
  218. package/src/platform-implementation-js/dom-driver/inbox/inbox-butter-bar-driver.js +75 -83
  219. package/src/platform-implementation-js/dom-driver/inbox/inbox-driver.js +530 -822
  220. package/src/platform-implementation-js/dom-driver/inbox/inbox-page-communicator.js +48 -61
  221. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.js +9 -12
  222. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.test.js +12 -19
  223. package/src/platform-implementation-js/dom-driver/inbox/makePageParserTree.js +24 -33
  224. package/src/platform-implementation-js/dom-driver/inbox/pageParserOptions.js +201 -388
  225. package/src/platform-implementation-js/dom-driver/inbox/registerSearchSuggestionsProvider.js +249 -265
  226. package/src/platform-implementation-js/dom-driver/inbox/setupCustomAutocompleteSelectionHandling.js +84 -152
  227. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.js +55 -67
  228. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.test.js +43 -65
  229. package/src/platform-implementation-js/dom-driver/inbox/views/InboxLabelView.js +31 -56
  230. package/src/platform-implementation-js/dom-driver/inbox/views/InboxMoleViewDriver.js +191 -294
  231. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarButtonView.js +32 -45
  232. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarView.js +21 -39
  233. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-sidebar-view.js +153 -240
  234. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-button-view.js +75 -150
  235. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-tooltip-view.js +20 -37
  236. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-card-view.js +60 -114
  237. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-overlay-view.js +47 -65
  238. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +41 -52
  239. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-chat-sidebar-view.js +27 -36
  240. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-button-view.js +52 -80
  241. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-view.js +465 -649
  242. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.js +37 -58
  243. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.test.js +14 -26
  244. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +118 -235
  245. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dropdown-view.js +10 -11
  246. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dummy-route-view.js +28 -46
  247. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-message-view.js +131 -202
  248. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-modal-view.js +40 -80
  249. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-route-view.js +35 -61
  250. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-row-view.js +124 -221
  251. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.js +125 -213
  252. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.test.js +104 -126
  253. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-tooltip-view.js +36 -51
  254. package/src/platform-implementation-js/dom-driver/inbox/views/inboxNavItemView.js +158 -297
  255. package/src/platform-implementation-js/dom-driver/inbox/waitForAnimationClickBlockerGone.js +21 -35
  256. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +24 -43
  257. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +39 -68
  258. package/src/platform-implementation-js/driver-common/getAccountUrlPart.js +17 -0
  259. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +14 -19
  260. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +27 -35
  261. package/src/platform-implementation-js/driver-common/getOriginalMessagePage.js +33 -0
  262. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +16 -22
  263. package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.js +49 -0
  264. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +14 -14
  265. package/src/platform-implementation-js/driver-common/gmailAjax.js +65 -0
  266. package/src/platform-implementation-js/driver-common/inboxAjax.js +12 -7
  267. package/src/platform-implementation-js/driver-common/render-custom-icon.js +16 -0
  268. package/src/platform-implementation-js/driver-common/requestGmailThread.js +19 -20
  269. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +197 -306
  270. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +113 -161
  271. package/src/platform-implementation-js/driver-common/update-icon.js +90 -0
  272. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +1 -114
  273. package/src/platform-implementation-js/driver-interfaces/driver.js +1 -131
  274. package/src/platform-implementation-js/driver-interfaces/message-view-driver.js +4 -48
  275. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +1 -29
  276. package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +1 -32
  277. package/src/platform-implementation-js/driver-interfaces/thread-row-view-driver.js +1 -11
  278. package/src/platform-implementation-js/lib/ErrorCollector.js +47 -0
  279. package/src/platform-implementation-js/lib/Membrane.js +22 -0
  280. package/src/platform-implementation-js/lib/ScrollableContainByScreen.js +30 -0
  281. package/src/platform-implementation-js/lib/array-to-lifetimes.js +43 -41
  282. package/src/platform-implementation-js/lib/array-to-lifetimes.test.js +139 -155
  283. package/src/platform-implementation-js/lib/attemptWithRetries.js +16 -0
  284. package/src/platform-implementation-js/lib/common-page-communicator.js +137 -0
  285. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +19 -38
  286. package/src/platform-implementation-js/lib/css-selector-escape.js +7 -3
  287. package/src/platform-implementation-js/lib/delay-asap.js +12 -0
  288. package/src/platform-implementation-js/lib/delay-idle.js +16 -0
  289. package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.js +36 -0
  290. package/src/platform-implementation-js/lib/dom/element-view-mapper.js +8 -11
  291. package/src/platform-implementation-js/lib/dom/generic-button-view.js +39 -0
  292. package/src/platform-implementation-js/lib/dom/get-insert-before-element.js +39 -0
  293. package/src/platform-implementation-js/lib/dom/get-selection.js +23 -52
  294. package/src/platform-implementation-js/lib/dom/insert-element-in-order.js +38 -0
  295. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +69 -101
  296. package/src/platform-implementation-js/lib/dom/is-node-in-range.js +8 -10
  297. package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.js +12 -0
  298. package/src/platform-implementation-js/lib/dom/make-element-child-stream.js +79 -0
  299. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.js +28 -0
  300. package/src/platform-implementation-js/lib/dom/make-element-view-stream.js +15 -0
  301. package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.js +15 -0
  302. package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.js +5 -0
  303. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +15 -17
  304. package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.js +39 -0
  305. package/src/platform-implementation-js/lib/dom/parentNodes.js +8 -0
  306. package/src/platform-implementation-js/lib/dom/querySelectorOne.js +8 -11
  307. package/src/platform-implementation-js/lib/dom/querySelectorOrFail.js +6 -0
  308. package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.js +22 -0
  309. package/src/platform-implementation-js/lib/dom/set-css.js +7 -3
  310. package/src/platform-implementation-js/lib/dom/set-value-and-dispatch-event.js +9 -11
  311. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +32 -33
  312. package/src/platform-implementation-js/lib/dom/simulate-key.js +46 -0
  313. package/src/platform-implementation-js/lib/dom/simulate-mouse-event.js +16 -0
  314. package/src/platform-implementation-js/lib/dom/trigger-relay-event.js +7 -0
  315. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.js +25 -0
  316. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.test.js +23 -26
  317. package/src/platform-implementation-js/lib/fake-window-resize.js +5 -0
  318. package/src/platform-implementation-js/lib/from-event-target-capture.js +12 -0
  319. package/src/platform-implementation-js/lib/fromEventsWithOptions.js +10 -0
  320. package/src/platform-implementation-js/lib/handle-compose-link-chips.js +86 -149
  321. package/src/platform-implementation-js/lib/handler-registry.js +67 -0
  322. package/src/platform-implementation-js/lib/idMap.js +45 -0
  323. package/src/platform-implementation-js/lib/imageRequest.js +8 -0
  324. package/src/platform-implementation-js/lib/incrementName.js +7 -0
  325. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.js +14 -0
  326. package/src/platform-implementation-js/lib/inject-script.js +33 -0
  327. package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +42 -57
  328. package/src/platform-implementation-js/lib/is-valid-app-id.js +27 -0
  329. package/src/platform-implementation-js/lib/is-valid-email.js +14 -0
  330. package/src/platform-implementation-js/lib/isNotNil.js +5 -0
  331. package/src/platform-implementation-js/lib/isStreakAppId.js +11 -0
  332. package/src/platform-implementation-js/lib/logger.js +441 -0
  333. package/src/platform-implementation-js/lib/make-revocable-function.js +19 -21
  334. package/src/platform-implementation-js/lib/make-revocable-function.test.js +20 -22
  335. package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +15 -17
  336. package/src/platform-implementation-js/lib/parseParamsFromRouteID.test.js +9 -18
  337. package/src/platform-implementation-js/lib/persistent-queue.js +107 -0
  338. package/src/platform-implementation-js/lib/populateRouteID.js +8 -9
  339. package/src/platform-implementation-js/lib/populateRouteID.test.js +20 -19
  340. package/src/platform-implementation-js/lib/react/ElementContainer.js +23 -20
  341. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.js +10 -9
  342. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.test.js +13 -20
  343. package/src/platform-implementation-js/lib/routeIDmatchesHash.js +13 -18
  344. package/src/platform-implementation-js/lib/routeIDmatchesHash.test.js +11 -17
  345. package/src/platform-implementation-js/lib/safe-event-emitter.js +17 -0
  346. package/src/platform-implementation-js/lib/shared-style.js +14 -13
  347. package/src/platform-implementation-js/lib/stopper-pool.js +41 -0
  348. package/src/platform-implementation-js/lib/stream-wait-for.js +30 -0
  349. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +18 -17
  350. package/src/platform-implementation-js/lib/toLiveSet.js +17 -15
  351. package/src/platform-implementation-js/lib/wait-for.js +28 -0
  352. package/src/platform-implementation-js/lib/waitForAsync.js +19 -0
  353. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +6 -5
  354. package/src/platform-implementation-js/main.js +9 -24
  355. package/src/platform-implementation-js/namespaces/app-menu.d.ts.map +1 -1
  356. package/src/platform-implementation-js/namespaces/app-menu.js +31 -0
  357. package/src/platform-implementation-js/namespaces/butter-bar.js +163 -0
  358. package/src/platform-implementation-js/namespaces/compose.js +37 -60
  359. package/src/platform-implementation-js/namespaces/conversations.js +52 -124
  360. package/src/platform-implementation-js/namespaces/global.js +27 -39
  361. package/src/platform-implementation-js/namespaces/keyboard.js +29 -33
  362. package/src/platform-implementation-js/namespaces/lists.js +25 -31
  363. package/src/platform-implementation-js/namespaces/modal.js +34 -28
  364. package/src/platform-implementation-js/namespaces/nav-menu.js +30 -45
  365. package/src/platform-implementation-js/namespaces/router.js +70 -137
  366. package/src/platform-implementation-js/namespaces/search.js +19 -17
  367. package/src/platform-implementation-js/namespaces/toolbars.js +71 -117
  368. package/src/platform-implementation-js/namespaces/user.js +36 -37
  369. package/src/platform-implementation-js/namespaces/widgets.js +54 -61
  370. package/src/platform-implementation-js/platform-implementation.js +98 -229
  371. package/src/platform-implementation-js/views/SimpleElementView.js +16 -0
  372. package/src/platform-implementation-js/views/app-menu-item-view.js +257 -0
  373. package/src/platform-implementation-js/views/app-toolbar-button-view.js +26 -47
  374. package/src/platform-implementation-js/views/collapsible-panel-view.js +222 -0
  375. package/src/platform-implementation-js/views/collapsible-section-view.js +66 -63
  376. package/src/platform-implementation-js/views/compose-button-view.js +45 -0
  377. package/src/platform-implementation-js/views/compose-view.js +312 -0
  378. package/src/platform-implementation-js/views/content-panel-view.js +28 -30
  379. package/src/platform-implementation-js/views/conversations/attachment-card-view.js +21 -44
  380. package/src/platform-implementation-js/views/conversations/custom-message-view.js +44 -104
  381. package/src/platform-implementation-js/views/conversations/message-view.js +131 -202
  382. package/src/platform-implementation-js/views/conversations/thread-view.js +75 -127
  383. package/src/platform-implementation-js/views/keyboard-shortcut-handle.js +14 -0
  384. package/src/platform-implementation-js/views/native-nav-item-view.js +32 -65
  385. package/src/platform-implementation-js/views/nav-item-view.js +51 -115
  386. package/src/platform-implementation-js/views/route-view/custom-route-view.js +25 -20
  387. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +18 -18
  388. package/src/platform-implementation-js/views/route-view/list-route-view.js +30 -52
  389. package/src/platform-implementation-js/views/route-view/route-view.js +24 -35
  390. package/src/platform-implementation-js/views/section-view.js +60 -52
  391. package/src/platform-implementation-js/views/thread-row-view.js +49 -74
  392. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.js +39 -0
  393. package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.js +98 -0
  394. package/src/platform-implementation-js/widgets/buttons/dropdown-view.js +122 -0
  395. package/src/platform-implementation-js/widgets/drawer-view.js +29 -36
  396. package/src/platform-implementation-js/widgets/modal-view.js +39 -68
  397. package/src/platform-implementation-js/widgets/mole-view.js +22 -22
  398. package/src/platform-implementation-js/widgets/top-message-bar-view.js +13 -10
@@ -1,71 +1,55 @@
1
- /* @flow */
2
-
3
- import find from 'lodash/find';
4
- import Kefir from 'kefir';
5
- import kefirStopper from 'kefir-stopper';
6
- import util from 'util';
7
- import autoHtml from 'auto-html';
8
- import { defn } from 'ud';
9
- import type GmailDriver from '../gmail-driver';
10
-
11
- import type GmailMessageView from './gmail-message-view';
12
- import fromEventTargetCapture from '../../../lib/from-event-target-capture';
13
- import querySelector from '../../../lib/dom/querySelectorOrFail';
14
- import ButtonView from '../widgets/buttons/button-view';
15
- import BasicButtonViewController from '../../../widgets/buttons/basic-button-view-controller';
16
-
17
- import { simulateClick } from '../../../lib/dom/simulate-mouse-event';
18
- import waitFor from '../../../lib/wait-for';
19
- import streamWaitFor from '../../../lib/stream-wait-for';
20
-
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _find = _interopRequireDefault(require("lodash/find"));
10
+ var _kefir = _interopRequireDefault(require("kefir"));
11
+ var _kefirStopper = _interopRequireDefault(require("kefir-stopper"));
12
+ var _util = _interopRequireDefault(require("util"));
13
+ var _autoHtml = _interopRequireDefault(require("auto-html"));
14
+ var _ud = require("ud");
15
+ var _fromEventTargetCapture = _interopRequireDefault(require("../../../lib/from-event-target-capture"));
16
+ var _querySelectorOrFail = _interopRequireDefault(require("../../../lib/dom/querySelectorOrFail"));
17
+ var _buttonView = _interopRequireDefault(require("../widgets/buttons/button-view"));
18
+ var _basicButtonViewController = _interopRequireDefault(require("../../../widgets/buttons/basic-button-view-controller"));
19
+ var _simulateMouseEvent = require("../../../lib/dom/simulate-mouse-event");
20
+ var _waitFor = _interopRequireDefault(require("../../../lib/wait-for"));
21
+ var _streamWaitFor = _interopRequireDefault(require("../../../lib/stream-wait-for"));
21
22
  class GmailAttachmentCardView {
22
- _element: HTMLElement;
23
- _driver: GmailDriver;
24
- _messageViewDriver: ?GmailMessageView;
25
- _cachedType: any;
26
- _stopper: Kefir.Observable<null> & { destroy(): void } = kefirStopper();
27
- _previewClicks = Kefir.pool();
28
-
29
- constructor(
30
- options: Object,
31
- driver: GmailDriver,
32
- messageViewDriver: ?GmailMessageView
33
- ) {
23
+ constructor(options, driver, messageViewDriver) {
24
+ (0, _defineProperty2.default)(this, "_stopper", (0, _kefirStopper.default)());
25
+ (0, _defineProperty2.default)(this, "_previewClicks", _kefir.default.pool());
34
26
  this._driver = driver;
35
27
  this._messageViewDriver = messageViewDriver;
36
-
37
28
  if (options.element) {
38
29
  this._element = options.element;
39
30
  } else {
40
31
  this._createNewElement(options);
41
32
  }
42
33
  }
43
-
44
34
  destroy() {
45
35
  this._stopper.destroy();
46
36
  }
47
-
48
- getElement(): HTMLElement {
37
+ getElement() {
49
38
  return this._element;
50
39
  }
51
-
52
40
  getMessageViewDriver() {
53
41
  return this._messageViewDriver;
54
42
  }
55
-
56
- getStopper(): Kefir.Observable<null> {
43
+ getStopper() {
57
44
  return this._stopper;
58
45
  }
59
-
60
- getPreviewClicks(): Kefir.Observable<Event> {
46
+ getPreviewClicks() {
61
47
  return this._previewClicks.takeUntilBy(this._stopper);
62
48
  }
63
-
64
- _isStandardAttachment(): boolean {
49
+ _isStandardAttachment() {
65
50
  return this.getAttachmentType() === 'FILE';
66
51
  }
67
-
68
- getAttachmentType(): string {
52
+ getAttachmentType() {
69
53
  if (this._cachedType) {
70
54
  return this._cachedType;
71
55
  }
@@ -75,16 +59,12 @@ class GmailAttachmentCardView {
75
59
  }
76
60
  return type;
77
61
  }
78
-
79
- _readAttachmentType(): string {
62
+ _readAttachmentType() {
80
63
  if (this._element.classList.contains('inboxsdk__attachmentCard')) {
81
64
  return 'CUSTOM';
82
65
  }
83
66
  // FILE attachment cards are never in unloaded state.
84
- if (
85
- this._element.children.length === 1 &&
86
- this._element.children[0].children.length === 0
87
- ) {
67
+ if (this._element.children.length === 1 && this._element.children[0].children.length === 0) {
88
68
  return 'UNLOADED';
89
69
  }
90
70
  const link = this._getDownloadLink();
@@ -97,35 +77,29 @@ class GmailAttachmentCardView {
97
77
  }
98
78
  return 'UNKNOWN';
99
79
  }
100
-
101
- addButton(options: Object) {
102
- var buttonView = new ButtonView({
80
+ addButton(options) {
81
+ var buttonView = new _buttonView.default({
103
82
  iconUrl: options.iconUrl,
104
- tooltip: options.tooltip,
83
+ tooltip: options.tooltip
105
84
  });
106
-
107
- var basicButtonViewController = new BasicButtonViewController({
85
+ var basicButtonViewController = new _basicButtonViewController.default({
108
86
  activateFunction: () => {
109
87
  if (options.onClick) {
110
88
  options.onClick({
111
- getDownloadURL: () => this.getDownloadURL(),
89
+ getDownloadURL: () => this.getDownloadURL()
112
90
  });
113
91
  }
114
92
  },
115
- buttonView: buttonView,
93
+ buttonView: buttonView
116
94
  });
117
-
118
95
  this._addButton(buttonView);
119
96
  }
120
-
121
- getTitle(): string {
97
+ getTitle() {
122
98
  const title = this._element.querySelector('span .aV3');
123
99
  return title ? title.textContent : '';
124
100
  }
125
-
126
- _getDownloadLink(): ?string {
127
- const firstChild: ?HTMLAnchorElement = (this._element
128
- .firstElementChild: any);
101
+ _getDownloadLink() {
102
+ const firstChild = this._element.firstElementChild;
129
103
  if (!firstChild) throw new Error('Failed to find link');
130
104
  if (firstChild.tagName !== 'A' || !firstChild.href) {
131
105
  const download_url = this._element.getAttribute('download_url');
@@ -136,33 +110,24 @@ class GmailAttachmentCardView {
136
110
  } else {
137
111
  const firstChildHref = firstChild.href;
138
112
  if (firstChildHref) {
139
- return firstChildHref.replace(
140
- /([?&])disp=inline(?=&|$)/,
141
- '$1disp=safe'
142
- );
113
+ return firstChildHref.replace(/([?&])disp=inline(?=&|$)/, '$1disp=safe');
143
114
  }
144
115
  return firstChildHref;
145
116
  }
146
117
  }
147
118
 
148
119
  // Resolves the short-lived cookie-less download URL
149
- async getDownloadURL(): Promise<?string> {
120
+ async getDownloadURL() {
150
121
  try {
151
122
  if (this._isStandardAttachment()) {
152
- const downloadUrl = await waitFor(() => this._getDownloadLink());
123
+ const downloadUrl = await (0, _waitFor.default)(() => this._getDownloadLink());
153
124
  if (!downloadUrl) return null;
154
- const finalUrl: string = await this._driver.resolveUrlRedirects(
155
- downloadUrl
156
- );
157
- if (
158
- !/^https:\/\/mail-attachment\.googleusercontent\.com\/attachment\//.test(
159
- finalUrl
160
- )
161
- ) {
125
+ const finalUrl = await this._driver.resolveUrlRedirects(downloadUrl);
126
+ if (!/^https:\/\/mail-attachment\.googleusercontent\.com\/attachment\//.test(finalUrl)) {
162
127
  console.error('getDownloadURL returned unexpected url', finalUrl); //eslint-disable-line
163
128
  const err = new Error('getDownloadURL returned unexpected url');
164
129
  this._driver.getLogger().error(err, {
165
- finalUrlCensored: finalUrl.replace(/\?[^/]+$/, '?[...]'),
130
+ finalUrlCensored: finalUrl.replace(/\?[^/]+$/, '?[...]')
166
131
  });
167
132
  if (/^https:\/\/mail\.google\.com\//.test(finalUrl)) {
168
133
  // This URL definitely isn't right: these URLs generally require
@@ -172,58 +137,43 @@ class GmailAttachmentCardView {
172
137
  // Otherwise, don't throw; only log. Maybe Gmail has changed the URL
173
138
  // structure and things will just work.
174
139
  }
140
+
175
141
  return finalUrl;
176
142
  } else {
177
- const downloadButton = this._element.querySelector(
178
- '[data-inboxsdk-download-url]'
179
- );
180
- return downloadButton
181
- ? downloadButton.getAttribute('data-inboxsdk-download-url')
182
- : null;
143
+ const downloadButton = this._element.querySelector('[data-inboxsdk-download-url]');
144
+ return downloadButton ? downloadButton.getAttribute('data-inboxsdk-download-url') : null;
183
145
  }
184
146
  } catch (err) {
185
147
  this._driver.getLogger().error(err);
186
148
  throw err;
187
149
  }
188
150
  }
189
-
190
- _extractFileNameFromElement(): string {
191
- return querySelector(this._element, '.aQA > span').textContent;
151
+ _extractFileNameFromElement() {
152
+ return (0, _querySelectorOrFail.default)(this._element, '.aQA > span').textContent;
192
153
  }
193
-
194
- _createNewElement(options: Object) {
154
+ _createNewElement(options) {
195
155
  this._element = document.createElement('span');
196
156
  this._element.classList.add('aZo');
197
157
  this._element.classList.add('inboxsdk__attachmentCard');
198
-
199
- var htmlArray = [
200
- autoHtml`
158
+ var htmlArray = [(0, _autoHtml.default)`
201
159
  <a target="_blank" role="link" class="aQy e" href="">
202
160
  <div aria-hidden="true">
203
161
  <div class="aSG"></div>
204
162
  <div class="aVY aZn">
205
163
  <div class="aZm"></div>
206
164
  </div>
207
- <div class="aSH">`,
208
- ];
209
-
165
+ <div class="aSH">`];
210
166
  if (options.iconThumbnailUrl) {
211
- htmlArray = htmlArray.concat([
212
- autoHtml`
167
+ htmlArray = htmlArray.concat([(0, _autoHtml.default)`
213
168
  <div class="aYv">
214
169
  <img class="aZG aYw" src="${options.iconThumbnailUrl}">
215
- </div>`,
216
- ]);
170
+ </div>`]);
217
171
  } else {
218
- htmlArray = htmlArray.concat([
219
- autoHtml`
172
+ htmlArray = htmlArray.concat([(0, _autoHtml.default)`
220
173
  <img class="aQG aYB inboxsdk__attachmentCard_previewThumbnailUrl"
221
- src="${options.previewThumbnailUrl}">`,
222
- ]);
174
+ src="${options.previewThumbnailUrl}">`]);
223
175
  }
224
-
225
- htmlArray = htmlArray.concat([
226
- autoHtml`
176
+ htmlArray = htmlArray.concat([(0, _autoHtml.default)`
227
177
  <div class="aYy">
228
178
  <div class="aYA">
229
179
  <img class="aSM" src="${options.fileIconImageUrl}">
@@ -245,178 +195,120 @@ class GmailAttachmentCardView {
245
195
  </div>
246
196
  </div>
247
197
  </a>
248
- <div class="aQw"></div>`,
249
- ]);
250
-
198
+ <div class="aQw"></div>`]);
251
199
  this._element.innerHTML = htmlArray.join('');
252
-
253
- (this._element.children[0]: any).href = options.previewUrl;
254
-
200
+ this._element.children[0].href = options.previewUrl;
255
201
  if (options.mimeType && options.mimeType.split('/')[0] === 'image') {
256
202
  this._element.children[0].classList.add('aZI');
257
203
  }
258
-
259
- querySelector(this._element, 'span .aV3').textContent = options.title;
260
- querySelector(this._element, 'div.aYp > span').textContent =
261
- options.description || '';
262
- querySelector(this._element, 'div.aSJ').style.borderColor =
263
- options.foldColor;
264
-
204
+ (0, _querySelectorOrFail.default)(this._element, 'span .aV3').textContent = options.title;
205
+ (0, _querySelectorOrFail.default)(this._element, 'div.aYp > span').textContent = options.description || '';
206
+ (0, _querySelectorOrFail.default)(this._element, 'div.aSJ').style.borderColor = options.foldColor;
265
207
  this._addHoverEvents();
266
-
267
208
  if (options.buttons) {
268
- const downloadButton = find(options.buttons, function (button) {
209
+ const downloadButton = (0, _find.default)(options.buttons, function (button) {
269
210
  return button.downloadUrl;
270
211
  });
271
-
272
212
  if (downloadButton) {
273
213
  this._addDownloadButton(downloadButton);
274
214
  }
275
-
276
215
  this._addMoreButtons(options.buttons);
277
216
  }
278
-
279
217
  var self = this;
280
218
  // :any to work around https://github.com/facebook/flow/issues/1155
281
- this._previewClicks.plug(
282
- Kefir.fromEvents(this._element, 'click').map((event) => ({
283
- preventDefault: () => event.preventDefault(),
284
- }))
285
- );
286
-
219
+ this._previewClicks.plug(_kefir.default.fromEvents(this._element, 'click').map(event => ({
220
+ preventDefault: () => event.preventDefault()
221
+ })));
287
222
  if (options.previewThumbnailUrl && options.failoverPreviewIconUrl) {
288
- const previewThumbnailUrlImage = querySelector(
289
- this._element,
290
- '.inboxsdk__attachmentCard_previewThumbnailUrl'
291
- );
292
- previewThumbnailUrlImage.onerror = (e) => {
223
+ const previewThumbnailUrlImage = (0, _querySelectorOrFail.default)(this._element, '.inboxsdk__attachmentCard_previewThumbnailUrl');
224
+ previewThumbnailUrlImage.onerror = e => {
293
225
  var iconDiv = document.createElement('div');
294
226
  iconDiv.classList.add('aYv');
295
- iconDiv.innerHTML =
296
- '<img class="aZG aYw" src="' + options.failoverPreviewIconUrl + '">';
227
+ iconDiv.innerHTML = '<img class="aZG aYw" src="' + options.failoverPreviewIconUrl + '">';
297
228
  const parent = previewThumbnailUrlImage.parentElement;
298
229
  if (!parent) throw new Error('Could not find parent element');
299
- parent.insertBefore(
300
- iconDiv,
301
- previewThumbnailUrlImage.nextElementSibling
302
- );
303
-
230
+ parent.insertBefore(iconDiv, previewThumbnailUrlImage.nextElementSibling);
304
231
  previewThumbnailUrlImage.remove();
305
232
  };
306
233
  }
307
234
  }
308
-
309
235
  _addHoverEvents() {
310
- Kefir.merge([
311
- Kefir.fromEvents(this._element, 'mouseenter'),
312
- fromEventTargetCapture(this._element, 'focus'),
313
- ]).onValue(() => {
236
+ _kefir.default.merge([_kefir.default.fromEvents(this._element, 'mouseenter'), (0, _fromEventTargetCapture.default)(this._element, 'focus')]).onValue(() => {
314
237
  this._element.classList.add('aZp');
315
238
  });
316
-
317
- Kefir.merge([
318
- Kefir.fromEvents(this._element, 'mouseleave'),
319
- fromEventTargetCapture(this._element, 'blur'),
320
- ]).onValue(() => {
239
+ _kefir.default.merge([_kefir.default.fromEvents(this._element, 'mouseleave'), (0, _fromEventTargetCapture.default)(this._element, 'blur')]).onValue(() => {
321
240
  this._element.classList.remove('aZp');
322
241
  });
323
-
324
- const anchor = querySelector(this._element, 'a');
325
- Kefir.fromEvents(anchor, 'focus').onValue(() => {
242
+ const anchor = (0, _querySelectorOrFail.default)(this._element, 'a');
243
+ _kefir.default.fromEvents(anchor, 'focus').onValue(() => {
326
244
  anchor.classList.add('a1U');
327
245
  });
328
- Kefir.fromEvents(anchor, 'blur').onValue(() => {
246
+ _kefir.default.fromEvents(anchor, 'blur').onValue(() => {
329
247
  anchor.classList.remove('a1U');
330
248
  });
331
249
  }
332
-
333
- _addDownloadButton(options: Object) {
334
- const buttonView = new ButtonView({
250
+ _addDownloadButton(options) {
251
+ const buttonView = new _buttonView.default({
335
252
  tooltip: 'Download',
336
- iconClass: 'aSK J-J5-Ji aYr',
253
+ iconClass: 'aSK J-J5-Ji aYr'
337
254
  });
338
-
339
- buttonView
340
- .getElement()
341
- .setAttribute('data-inboxsdk-download-url', options.downloadUrl);
342
-
343
- const basicButtonViewController = new BasicButtonViewController({
255
+ buttonView.getElement().setAttribute('data-inboxsdk-download-url', options.downloadUrl);
256
+ const basicButtonViewController = new _basicButtonViewController.default({
344
257
  activateFunction: function () {
345
258
  let prevented = false;
346
-
347
259
  if (options.onClick) {
348
260
  options.onClick({
349
261
  preventDefault: function () {
350
262
  prevented = true;
351
- },
263
+ }
352
264
  });
353
265
  }
354
-
355
266
  if (prevented) {
356
267
  return;
357
268
  }
358
-
359
269
  const downloadLink = document.createElement('a');
360
270
  downloadLink.href = options.downloadUrl;
361
271
  if (options.downloadFilename) {
362
272
  downloadLink.download = options.downloadFilename;
363
273
  }
364
-
365
- downloadLink.addEventListener(
366
- 'click',
367
- function (e: MouseEvent) {
368
- e.stopPropagation();
369
- },
370
- true
371
- );
372
-
274
+ downloadLink.addEventListener('click', function (e) {
275
+ e.stopPropagation();
276
+ }, true);
373
277
  if (options.openInNewTab) {
374
278
  downloadLink.setAttribute('target', '_blank');
375
279
  }
376
-
377
- ((document.body: any): HTMLElement).appendChild(downloadLink);
378
-
379
- simulateClick(downloadLink);
280
+ document.body.appendChild(downloadLink);
281
+ (0, _simulateMouseEvent.simulateClick)(downloadLink);
380
282
  downloadLink.remove();
381
283
  },
382
- buttonView: buttonView,
284
+ buttonView: buttonView
383
285
  });
384
-
385
286
  this._addButton(buttonView);
386
287
  }
387
-
388
- _addMoreButtons(buttonDescriptors: ?(Object[])) {
389
- (buttonDescriptors || [])
390
- .filter(function (buttonDescriptor) {
391
- return !buttonDescriptor.downloadUrl;
392
- })
393
- .forEach((desc) => {
394
- this.addButton(desc);
395
- });
288
+ _addMoreButtons(buttonDescriptors) {
289
+ (buttonDescriptors || []).filter(function (buttonDescriptor) {
290
+ return !buttonDescriptor.downloadUrl;
291
+ }).forEach(desc => {
292
+ this.addButton(desc);
293
+ });
396
294
  }
397
-
398
- _addButton(buttonView: ButtonView) {
295
+ _addButton(buttonView) {
399
296
  buttonView.addClass('aQv');
400
-
401
297
  this._getButtonContainerElement().appendChild(buttonView.getElement());
402
298
  }
403
-
404
- _getPreviewImageUrl(): ?string {
299
+ _getPreviewImageUrl() {
405
300
  var previewImage = this._getPreviewImage();
406
301
  if (!previewImage) {
407
302
  return null;
408
303
  }
409
-
410
304
  return previewImage.src;
411
305
  }
412
-
413
- _getPreviewImage(): HTMLImageElement {
414
- return (this._element.querySelector('img.aQG'): any);
306
+ _getPreviewImage() {
307
+ return this._element.querySelector('img.aQG');
415
308
  }
416
-
417
- _getButtonContainerElement(): HTMLElement {
418
- return querySelector(this._element, '.aQw');
309
+ _getButtonContainerElement() {
310
+ return (0, _querySelectorOrFail.default)(this._element, '.aQw');
419
311
  }
420
312
  }
421
-
422
- export default defn(module, GmailAttachmentCardView);
313
+ var _default = (0, _ud.defn)(module, GmailAttachmentCardView);
314
+ exports.default = _default;