@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,25 +1,21 @@
1
- /* @flow */
2
-
3
- import { defn } from 'ud';
4
- import udKefir from 'ud-kefir';
5
- import Kefir from 'kefir';
6
- import kefirStopper from 'kefir-stopper';
7
- import GmailAppSidebarPrimary from './primary';
8
- import ContentPanelViewDriver from '../../../../driver-common/sidebar/ContentPanelViewDriver';
9
- import type GmailDriver from '../../gmail-driver';
10
- import type GmailThreadView from '../gmail-thread-view';
11
-
12
- const updates: Kefir.Observable<null> = udKefir(module, null);
1
+ "use strict";
13
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _ud = require("ud");
10
+ var _udKefir = _interopRequireDefault(require("ud-kefir"));
11
+ var _kefir = _interopRequireDefault(require("kefir"));
12
+ var _kefirStopper = _interopRequireDefault(require("kefir-stopper"));
13
+ var _primary = _interopRequireDefault(require("./primary"));
14
+ var _ContentPanelViewDriver = _interopRequireDefault(require("../../../../driver-common/sidebar/ContentPanelViewDriver"));
15
+ const updates = (0, _udKefir.default)(module, null);
14
16
  class GmailAppSidebarView {
15
- _stopper = kefirStopper();
16
- _driver: GmailDriver;
17
- _instanceId: string;
18
-
19
- constructor(
20
- driver: GmailDriver,
21
- companionSidebarContentContainerElement: HTMLElement
22
- ) {
17
+ constructor(driver, companionSidebarContentContainerElement) {
18
+ (0, _defineProperty2.default)(this, "_stopper", (0, _kefirStopper.default)());
23
19
  this._driver = driver;
24
20
 
25
21
  // We need to be able to cooperate with other apps/extensions that are
@@ -29,52 +25,33 @@ class GmailAppSidebarView {
29
25
  // GmailAppSidebarView is instantiated, we check the element for an
30
26
  // attribute to see whether a previous extension's GmailAppSidebarView has
31
27
  // already set up the sidebar or not.
32
- const instanceId = companionSidebarContentContainerElement.getAttribute(
33
- 'data-sdk-sidebar-instance-id'
34
- );
28
+ const instanceId = companionSidebarContentContainerElement.getAttribute('data-sdk-sidebar-instance-id');
35
29
  if (instanceId != null) {
36
30
  this._instanceId = instanceId;
37
31
  } else {
38
- let primary = new GmailAppSidebarPrimary(
39
- driver,
40
- companionSidebarContentContainerElement
41
- );
32
+ let primary = new _primary.default(driver, companionSidebarContentContainerElement);
42
33
  this._instanceId = primary.getInstanceId();
43
34
 
44
35
  // hot reloading support. Not perfect; this will break any existing panels.
45
36
  updates.changes().onValue(() => {
46
37
  primary.destroy();
47
- primary = new GmailAppSidebarPrimary(
48
- driver,
49
- companionSidebarContentContainerElement
50
- );
38
+ primary = new _primary.default(driver, companionSidebarContentContainerElement);
51
39
  this._instanceId = primary.getInstanceId();
52
40
  });
53
41
  }
54
42
  }
55
-
56
43
  destroy() {
57
44
  this._stopper.destroy();
58
45
  }
59
-
60
- getStopper(): Kefir.Observable<*> {
46
+ getStopper() {
61
47
  return this._stopper;
62
48
  }
63
-
64
- _getShouldThreadAppSidebarOpen(): boolean {
65
- return (
66
- global.localStorage.getItem(
67
- 'inboxsdk__thread_app_sidebar_should_open'
68
- ) !== 'false'
69
- );
49
+ _getShouldThreadAppSidebarOpen() {
50
+ return global.localStorage.getItem('inboxsdk__thread_app_sidebar_should_open') !== 'false';
70
51
  }
71
-
72
- _setShouldThreadAppSidebarOpen(open: boolean) {
52
+ _setShouldThreadAppSidebarOpen(open) {
73
53
  try {
74
- global.localStorage.setItem(
75
- 'inboxsdk__thread_app_sidebar_should_open',
76
- String(open)
77
- );
54
+ global.localStorage.setItem('inboxsdk__thread_app_sidebar_should_open', String(open));
78
55
  } catch (err) {
79
56
  console.error('error saving', err); //eslint-disable-line no-console
80
57
  }
@@ -83,51 +60,27 @@ class GmailAppSidebarView {
83
60
  // This value controls whether the app sidebar should automatically open
84
61
  // itself when available when the chat sidebar isn't present. It's only set
85
62
  // if the user interacts with the app sidebar button.
86
- _getShouldGlobalAppSidebarOpen(): boolean {
87
- return (
88
- global.localStorage.getItem(
89
- 'inboxsdk__global_app_sidebar_should_open'
90
- ) === 'true'
91
- );
63
+ _getShouldGlobalAppSidebarOpen() {
64
+ return global.localStorage.getItem('inboxsdk__global_app_sidebar_should_open') === 'true';
92
65
  }
93
-
94
- _setShouldGlobalAppSidebarOpen(open: boolean) {
66
+ _setShouldGlobalAppSidebarOpen(open) {
95
67
  try {
96
- global.localStorage.setItem(
97
- 'inboxsdk__global_app_sidebar_should_open',
98
- String(open)
99
- );
68
+ global.localStorage.setItem('inboxsdk__global_app_sidebar_should_open', String(open));
100
69
  } catch (err) {
101
70
  console.error('error saving', err); //eslint-disable-line no-console
102
71
  }
103
72
  }
104
73
 
105
- addThreadSidebarContentPanel(
106
- descriptor: Kefir.Observable<Object>,
107
- threadView: GmailThreadView
108
- ) {
109
- const panel = new ContentPanelViewDriver(
110
- this._driver,
111
- descriptor,
112
- this._instanceId
113
- );
114
- Kefir.merge([threadView.getStopper(), this._stopper])
115
- .take(1)
116
- .takeUntilBy(panel.getStopper())
117
- .onValue(() => panel.remove());
74
+ addThreadSidebarContentPanel(descriptor, threadView) {
75
+ const panel = new _ContentPanelViewDriver.default(this._driver, descriptor, this._instanceId);
76
+ _kefir.default.merge([threadView.getStopper(), this._stopper]).take(1).takeUntilBy(panel.getStopper()).onValue(() => panel.remove());
118
77
  return panel;
119
78
  }
120
-
121
- addGlobalSidebarContentPanel(descriptor: Kefir.Observable<Object>) {
122
- const panel = new ContentPanelViewDriver(
123
- this._driver,
124
- descriptor,
125
- this._instanceId,
126
- true
127
- );
79
+ addGlobalSidebarContentPanel(descriptor) {
80
+ const panel = new _ContentPanelViewDriver.default(this._driver, descriptor, this._instanceId, true);
128
81
  this._stopper.takeUntilBy(panel.getStopper()).onValue(() => panel.remove());
129
82
  return panel;
130
83
  }
131
84
  }
132
-
133
- export default defn(module, GmailAppSidebarView);
85
+ var _default = (0, _ud.defn)(module, GmailAppSidebarView);
86
+ exports.default = _default;
@@ -1,162 +1,112 @@
1
- /* @flow */
2
-
3
- import _ from 'lodash';
4
- import Kefir from 'kefir';
5
- import kefirBus from 'kefir-bus';
6
- import kefirStopper from 'kefir-stopper';
7
- import delay from 'pdelay';
8
- import fs from 'fs';
9
- import idMap from '../../../../lib/idMap';
10
- import GmailAppSidebarView from './index';
11
- import ContentPanelViewDriver from '../../../../driver-common/sidebar/ContentPanelViewDriver';
12
- import MockWebStorage from 'mock-webstorage';
13
-
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _lodash = _interopRequireDefault(require("lodash"));
5
+ var _kefir = _interopRequireDefault(require("kefir"));
6
+ var _kefirBus = _interopRequireDefault(require("kefir-bus"));
7
+ var _kefirStopper = _interopRequireDefault(require("kefir-stopper"));
8
+ var _pdelay = _interopRequireDefault(require("pdelay"));
9
+ var _fs = _interopRequireDefault(require("fs"));
10
+ var _idMap = _interopRequireDefault(require("../../../../lib/idMap"));
11
+ var _index = _interopRequireDefault(require("./index"));
12
+ var _ContentPanelViewDriver = _interopRequireDefault(require("../../../../driver-common/sidebar/ContentPanelViewDriver"));
13
+ var _mockWebstorage = _interopRequireDefault(require("mock-webstorage"));
14
14
  jest.mock('../../../../lib/dom/make-element-child-stream', () => {
15
15
  return () => require('kefir-bus')();
16
16
  });
17
-
18
17
  jest.mock('../../../../lib/dom/make-mutation-observer-chunked-stream', () => {
19
18
  return () => require('kefir-bus')();
20
19
  });
21
-
22
- global.localStorage = new MockWebStorage();
20
+ global.localStorage = new _mockWebstorage.default();
23
21
  global._APP_SIDEBAR_TEST = true;
24
-
25
22
  describe('GmailAppSidebarView Primary', function () {
26
23
  beforeEach(() => {
27
24
  makeSidebarContainerElement();
28
25
  });
29
-
30
26
  afterEach(() => {
31
27
  removeSidebarContainerElement();
32
28
  });
33
-
34
29
  it('construction works', () => {
35
- const gmailAppSidebarView = new GmailAppSidebarView(
36
- makeDriver(),
37
- makeContentContainerElement()
38
- );
30
+ const gmailAppSidebarView = new _index.default(makeDriver(), makeContentContainerElement());
39
31
  });
40
-
41
32
  it('sidebar is added', async () => {
42
33
  const container = makeContentContainerElement();
43
- const gmailAppSidebarView = new GmailAppSidebarView(
44
- makeDriver(),
45
- container
46
- );
47
-
48
- const descriptor = Kefir.constant({
34
+ const gmailAppSidebarView = new _index.default(makeDriver(), container);
35
+ const descriptor = _kefir.default.constant({
49
36
  title: 'foo',
50
37
  iconUrl: '/bar.png',
51
- el: document.createElement('div'),
38
+ el: document.createElement('div')
52
39
  });
53
-
54
- const fakeThreadView: Object = {
55
- getStopper: _.constant(kefirStopper()),
40
+ const fakeThreadView = {
41
+ getStopper: _lodash.default.constant((0, _kefirStopper.default)())
56
42
  };
57
-
58
- const panel = gmailAppSidebarView.addThreadSidebarContentPanel(
59
- descriptor,
60
- fakeThreadView
61
- );
62
-
63
- await delay(0);
64
- expect(
65
- container.querySelectorAll('.' + idMap('app_sidebar_content_panel'))
66
- .length
67
- ).toBe(1);
68
-
43
+ const panel = gmailAppSidebarView.addThreadSidebarContentPanel(descriptor, fakeThreadView);
44
+ await (0, _pdelay.default)(0);
45
+ expect(container.querySelectorAll('.' + (0, _idMap.default)('app_sidebar_content_panel')).length).toBe(1);
69
46
  panel.remove();
70
- expect(
71
- container.querySelectorAll('.' + idMap('app_sidebar_content_panel'))
72
- .length
73
- ).toBe(0);
47
+ expect(container.querySelectorAll('.' + (0, _idMap.default)('app_sidebar_content_panel')).length).toBe(0);
74
48
  });
75
-
76
49
  it('multiple sidebars can be added', async () => {
77
50
  const container = makeContentContainerElement();
78
- const gmailAppSidebarView = new GmailAppSidebarView(
79
- makeDriver(),
80
- container
81
- );
82
-
83
- const descriptor1 = Kefir.constant({
51
+ const gmailAppSidebarView = new _index.default(makeDriver(), container);
52
+ const descriptor1 = _kefir.default.constant({
84
53
  title: 'foo1',
85
54
  iconUrl: '/bar.png',
86
- el: document.createElement('div'),
55
+ el: document.createElement('div')
87
56
  });
88
-
89
- const descriptor2 = Kefir.constant({
57
+ const descriptor2 = _kefir.default.constant({
90
58
  title: 'foo2',
91
59
  iconUrl: '/bar.png',
92
- el: document.createElement('div'),
60
+ el: document.createElement('div')
93
61
  });
94
-
95
- const fakeThreadView: Object = {
96
- getStopper: _.constant(kefirStopper()),
62
+ const fakeThreadView = {
63
+ getStopper: _lodash.default.constant((0, _kefirStopper.default)())
97
64
  };
98
-
99
- gmailAppSidebarView.addThreadSidebarContentPanel(
100
- descriptor1,
101
- fakeThreadView
102
- );
103
-
104
- gmailAppSidebarView.addThreadSidebarContentPanel(
105
- descriptor2,
106
- fakeThreadView
107
- );
108
-
109
- await delay(0);
110
- expect(
111
- container.querySelectorAll('.' + idMap('app_sidebar_content_panel'))
112
- .length
113
- ).toBe(2);
65
+ gmailAppSidebarView.addThreadSidebarContentPanel(descriptor1, fakeThreadView);
66
+ gmailAppSidebarView.addThreadSidebarContentPanel(descriptor2, fakeThreadView);
67
+ await (0, _pdelay.default)(0);
68
+ expect(container.querySelectorAll('.' + (0, _idMap.default)('app_sidebar_content_panel')).length).toBe(2);
114
69
  });
115
70
  });
116
-
117
- function makeDriver(appId, opts): any {
71
+ function makeDriver(appId, opts) {
118
72
  return {
119
73
  getAppId: () => appId || 'test',
120
- getOpts: () => opts || { appName: 'Test', appIconUrl: 'testImage.png' },
74
+ getOpts: () => opts || {
75
+ appName: 'Test',
76
+ appIconUrl: 'testImage.png'
77
+ },
121
78
  getLogger() {
122
79
  return {
123
80
  eventSdkPassive() {},
124
81
  error(err, details) {
125
82
  console.error('logger.error called:', err, details); //eslint-disable-line no-console
126
83
  throw err;
127
- },
84
+ }
128
85
  };
129
- },
86
+ }
130
87
  };
131
88
  }
132
-
133
89
  function makeSidebarContainerElement() {
134
90
  const newDiv = document.createElement('div');
135
91
  newDiv.className = 'brC-aT5-aOt-Jw';
136
-
137
92
  const sidebar = document.createElement('div');
138
93
  sidebar.className = 'J-KU-Jg';
139
94
  sidebar.setAttribute('role', 'tablist');
140
-
141
95
  const separator = document.createElement('div');
142
96
  separator.setAttribute('role', 'separator');
143
-
144
97
  sidebar.appendChild(separator);
145
98
  newDiv.appendChild(sidebar);
146
-
147
99
  document.body && document.body.appendChild(newDiv);
148
100
  }
149
-
150
101
  function removeSidebarContainerElement() {
151
102
  const oldDivs = Array.from(document.getElementsByClassName('brC-aT5-aOt-Jw'));
152
- oldDivs.forEach((oldDiv) => {
103
+ oldDivs.forEach(oldDiv => {
153
104
  const parent = oldDiv.parentNode;
154
105
  parent && parent.removeChild(oldDiv);
155
106
  });
156
107
  }
157
-
158
108
  function makeContentContainerElement() {
159
109
  const contentContainerElement = document.createElement('div');
160
110
  contentContainerElement.className = 'bq9';
161
111
  return contentContainerElement;
162
- }
112
+ }
@@ -1,10 +1,12 @@
1
- /* @flow */
2
-
3
- import { defn } from 'ud';
4
-
5
- import querySelector from '../../../../../lib/dom/querySelectorOrFail';
6
- import type Logger from '../../../../../lib/logger';
1
+ "use strict";
7
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 _ud = require("ud");
9
+ var _querySelectorOrFail = _interopRequireDefault(require("../../../../../lib/dom/querySelectorOrFail"));
8
10
  /*
9
11
  As of Feb 6th, 2018.
10
12
  div.brC-aT5-aOt-Jw - the container for native global icons and sidebar icons
@@ -12,17 +14,9 @@ As of Feb 6th, 2018.
12
14
  div.brC-aT5-aOt-ato-Kp-Jw - container for sidebar icons
13
15
  div.bvq - matches the structure in regular add-on icon sidebar
14
16
  */
15
-
16
17
  const GLOBAL_ICON_AREA_SELECTOR = '.brC-aT5-aOt-bsf-Jw';
17
-
18
- function addCompanionGlobalIconArea(
19
- logger: Logger,
20
- iconArea: HTMLElement,
21
- companionSidebarIconContainerEl: HTMLElement
22
- ) {
23
- const sidebarIconArea = companionSidebarIconContainerEl.querySelector(
24
- GLOBAL_ICON_AREA_SELECTOR
25
- );
18
+ function addCompanionGlobalIconArea(logger, iconArea, companionSidebarIconContainerEl) {
19
+ const sidebarIconArea = companionSidebarIconContainerEl.querySelector(GLOBAL_ICON_AREA_SELECTOR);
26
20
  if (!sidebarIconArea) {
27
21
  logger.error(new Error('addCompanionGlobalIconArea: no sidebarIconArea'));
28
22
  return;
@@ -32,8 +26,7 @@ function addCompanionGlobalIconArea(
32
26
  logger.error(new Error('addCompanionGlobalIconArea: no nativeIconArea'));
33
27
  return;
34
28
  }
35
-
36
29
  nativeIconArea.insertAdjacentElement('beforebegin', iconArea);
37
30
  }
38
-
39
- export default defn(module, addCompanionGlobalIconArea);
31
+ var _default = (0, _ud.defn)(module, addCompanionGlobalIconArea);
32
+ exports.default = _default;
@@ -1,47 +1,35 @@
1
- /* @flow */
2
-
3
- import { defn } from 'ud';
4
-
5
- import Kefir from 'kefir';
6
- import makeMutationObserverChunkedStream from '../../../../../lib/dom/make-mutation-observer-chunked-stream';
7
- import querySelector from '../../../../../lib/dom/querySelectorOrFail';
8
- import type Logger from '../../../../../lib/logger';
1
+ "use strict";
9
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 _ud = require("ud");
9
+ var _kefir = _interopRequireDefault(require("kefir"));
10
+ var _makeMutationObserverChunkedStream = _interopRequireDefault(require("../../../../../lib/dom/make-mutation-observer-chunked-stream"));
11
+ var _querySelectorOrFail = _interopRequireDefault(require("../../../../../lib/dom/querySelectorOrFail"));
10
12
  /*
11
13
  As of Feb 6th, 2018.
12
14
  div.brC-aT5-aOt-Jw - the container for native global icons and sidebar icons
13
15
  div.brC-aT5-aOt-bsf-Jw - container for sdk global sidebar icons
14
16
  [role=tablist] - container for native and sdk thread sidebar icons
15
17
  */
16
-
17
18
  const TAB_LIST_SELECTOR = '[role=tablist],.J-KU-Jg';
18
-
19
- function addCompanionThreadIconArea(
20
- logger: Logger,
21
- iconArea: HTMLElement,
22
- companionSidebarIconContainerEl: HTMLElement
23
- ) {
24
- const tabList =
25
- companionSidebarIconContainerEl.querySelector(TAB_LIST_SELECTOR);
19
+ function addCompanionThreadIconArea(logger, iconArea, companionSidebarIconContainerEl) {
20
+ const tabList = companionSidebarIconContainerEl.querySelector(TAB_LIST_SELECTOR);
26
21
  if (!tabList) {
27
22
  logger.error(new Error('addCompanionThreadIconArea: no tablist'));
28
23
  return;
29
24
  }
30
-
31
- const separator =
32
- companionSidebarIconContainerEl.querySelector('[role=separator]');
25
+ const separator = companionSidebarIconContainerEl.querySelector('[role=separator]');
33
26
  if (!separator) {
34
- logger.error(
35
- new Error('addCompanionThreadIconArea: failed to find separator')
36
- );
27
+ logger.error(new Error('addCompanionThreadIconArea: failed to find separator'));
37
28
  tabList.insertAdjacentElement('beforebegin', iconArea);
38
29
  } else {
39
30
  if (!separator.parentElement) throw new Error();
40
- separator.parentElement.insertBefore(
41
- iconArea,
42
- separator.nextElementSibling
43
- );
31
+ separator.parentElement.insertBefore(iconArea, separator.nextElementSibling);
44
32
  }
45
33
  }
46
-
47
- export default defn(module, addCompanionThreadIconArea);
34
+ var _default = (0, _ud.defn)(module, addCompanionThreadIconArea);
35
+ exports.default = _default;
@@ -1,33 +1,33 @@
1
- /* @flow */
1
+ "use strict";
2
2
 
3
- import type OrderManager from 'order-manager';
4
- import { defn } from 'ud';
5
- import findIndex from 'lodash/findIndex';
6
-
7
- import insertElementInOrder from '../../../../../lib/dom/insert-element-in-order';
8
-
9
- function addToIconArea(
10
- orderManager: OrderManager<*>,
11
- appName: string,
12
- container: HTMLElement,
13
- iconArea: HTMLElement
14
- ) {
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _ud = require("ud");
9
+ var _findIndex = _interopRequireDefault(require("lodash/findIndex"));
10
+ var _insertElementInOrder = _interopRequireDefault(require("../../../../../lib/dom/insert-element-in-order"));
11
+ function addToIconArea(orderManager, appName, container, iconArea) {
15
12
  //first set icon order hints
16
- [...iconArea.querySelectorAll('[data-app-name]')].forEach((el) => {
13
+ [...iconArea.querySelectorAll('[data-app-name]')].forEach(el => {
17
14
  const elAppName = el.getAttribute('data-app-name');
18
- const index = findIndex(
19
- orderManager.getOrderedItems(),
20
- ({ value }) => value.appName === elAppName
21
- );
15
+ const index = (0, _findIndex.default)(orderManager.getOrderedItems(), _ref => {
16
+ let {
17
+ value
18
+ } = _ref;
19
+ return value.appName === elAppName;
20
+ });
22
21
  el.setAttribute('data-order-hint', index);
23
22
  });
24
-
25
- const index = findIndex(
26
- orderManager.getOrderedItems(),
27
- ({ value }) => value.appName === appName
28
- );
23
+ const index = (0, _findIndex.default)(orderManager.getOrderedItems(), _ref2 => {
24
+ let {
25
+ value
26
+ } = _ref2;
27
+ return value.appName === appName;
28
+ });
29
29
  if (index > -1) container.setAttribute('data-order-hint', index);
30
- insertElementInOrder(iconArea, container, ['data-order-hint']);
30
+ (0, _insertElementInOrder.default)(iconArea, container, ['data-order-hint']);
31
31
  }
32
-
33
- export default defn(module, addToIconArea);
32
+ var _default = (0, _ud.defn)(module, addToIconArea);
33
+ exports.default = _default;