@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,156 +1,104 @@
1
- /* @flow */
2
-
3
- import { defn, defonce } from 'ud';
4
- import EventEmitter from '../../lib/safe-event-emitter';
5
- import type Membrane from '../../lib/Membrane';
6
- import type SimpleElementView from '../../views/SimpleElementView';
7
- import kefirCast from 'kefir-cast';
8
- import Kefir from 'kefir';
9
- import ContentPanelView from '../content-panel-view';
10
- import get from '../../../common/get-or-fail';
11
- import type MessageView from './message-view';
12
- import type { Driver, ThreadViewDriver } from '../../driver-interfaces/driver';
13
-
14
- import type CustomMessageView, {
15
- CustomMessageDescriptor,
16
- } from '../../views/conversations/custom-message-view';
17
-
18
- const memberMap = defonce(module, () => new WeakMap());
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 _ud = require("ud");
10
+ var _safeEventEmitter = _interopRequireDefault(require("../../lib/safe-event-emitter"));
11
+ var _kefirCast = _interopRequireDefault(require("kefir-cast"));
12
+ var _kefir = _interopRequireDefault(require("kefir"));
13
+ var _contentPanelView = _interopRequireDefault(require("../content-panel-view"));
14
+ var _getOrFail = _interopRequireDefault(require("../../../common/get-or-fail"));
15
+ const memberMap = (0, _ud.defonce)(module, () => new WeakMap());
19
16
 
20
17
  // documented in src/docs/
21
- class ThreadView extends EventEmitter {
22
- destroyed: boolean = false;
23
-
24
- constructor(
25
- threadViewImplementation: ThreadViewDriver,
26
- appId: string,
27
- driver: Driver,
28
- membrane: Membrane
29
- ) {
18
+ class ThreadView extends _safeEventEmitter.default {
19
+ constructor(threadViewImplementation, appId, driver, membrane) {
30
20
  super();
31
-
32
- const members = { threadViewImplementation, appId, driver, membrane };
21
+ (0, _defineProperty2.default)(this, "destroyed", false);
22
+ const members = {
23
+ threadViewImplementation,
24
+ appId,
25
+ driver,
26
+ membrane
27
+ };
33
28
  memberMap.set(this, members);
34
-
35
29
  _bindToStreamEvents(this, threadViewImplementation);
36
30
  }
37
-
38
- addSidebarContentPanel(descriptor: Object): ?ContentPanelView {
39
- const descriptorPropertyStream = kefirCast(
40
- (Kefir: any),
41
- descriptor
42
- ).toProperty();
43
- const members = get(memberMap, this);
44
-
45
- members.driver
46
- .getLogger()
47
- .eventSdkPassive('threadView.addSidebarContentPanel');
48
-
49
- const contentPanelImplementation =
50
- members.threadViewImplementation.addSidebarContentPanel(
51
- descriptorPropertyStream
52
- );
31
+ addSidebarContentPanel(descriptor) {
32
+ const descriptorPropertyStream = (0, _kefirCast.default)(_kefir.default, descriptor).toProperty();
33
+ const members = (0, _getOrFail.default)(memberMap, this);
34
+ members.driver.getLogger().eventSdkPassive('threadView.addSidebarContentPanel');
35
+ const contentPanelImplementation = members.threadViewImplementation.addSidebarContentPanel(descriptorPropertyStream);
53
36
  if (contentPanelImplementation) {
54
- return new ContentPanelView(contentPanelImplementation);
37
+ return new _contentPanelView.default(contentPanelImplementation);
55
38
  }
56
-
57
39
  return null;
58
40
  }
59
-
60
- addNoticeBar(): SimpleElementView {
61
- const members = get(memberMap, this);
41
+ addNoticeBar() {
42
+ const members = (0, _getOrFail.default)(memberMap, this);
62
43
  return members.threadViewImplementation.addNoticeBar();
63
44
  }
64
-
65
- registerHiddenCustomMessageNoticeProvider(
66
- provider: (
67
- numberCustomMessagesHidden: number,
68
- numberNativeMessagesHidden: ?number,
69
- unmountPromise: Promise<void>
70
- ) => HTMLElement
71
- ) {
72
- const members = get(memberMap, this);
73
- return members.threadViewImplementation.registerHiddenCustomMessageNoticeProvider(
74
- provider
75
- );
45
+ registerHiddenCustomMessageNoticeProvider(provider) {
46
+ const members = (0, _getOrFail.default)(memberMap, this);
47
+ return members.threadViewImplementation.registerHiddenCustomMessageNoticeProvider(provider);
76
48
  }
77
-
78
- addCustomMessage(descriptor: Object): CustomMessageView {
79
- const descriptorPropertyStream = kefirCast(
80
- (Kefir: any),
81
- descriptor
82
- ).toProperty();
83
- const members = get(memberMap, this);
84
-
49
+ addCustomMessage(descriptor) {
50
+ const descriptorPropertyStream = (0, _kefirCast.default)(_kefir.default, descriptor).toProperty();
51
+ const members = (0, _getOrFail.default)(memberMap, this);
85
52
  members.driver.getLogger().eventSdkPassive('threadView.addCustomMessage');
86
-
87
- return members.threadViewImplementation.addCustomMessage(
88
- descriptorPropertyStream
89
- );
53
+ return members.threadViewImplementation.addCustomMessage(descriptorPropertyStream);
90
54
  }
91
-
92
- getMessageViews(): Array<MessageView> {
93
- const { threadViewImplementation, membrane } = get(memberMap, this);
94
-
95
- return threadViewImplementation
96
- .getMessageViewDrivers()
97
- .filter((messageViewDriver) => messageViewDriver.isLoaded())
98
- .map((messageViewDriver) => membrane.get(messageViewDriver));
55
+ getMessageViews() {
56
+ const {
57
+ threadViewImplementation,
58
+ membrane
59
+ } = (0, _getOrFail.default)(memberMap, this);
60
+ return threadViewImplementation.getMessageViewDrivers().filter(messageViewDriver => messageViewDriver.isLoaded()).map(messageViewDriver => membrane.get(messageViewDriver));
99
61
  }
100
-
101
- getMessageViewsAll(): Array<MessageView> {
102
- const { threadViewImplementation, membrane } = get(memberMap, this);
103
-
104
- return threadViewImplementation
105
- .getMessageViewDrivers()
106
- .map((messageViewDriver) => membrane.get(messageViewDriver));
62
+ getMessageViewsAll() {
63
+ const {
64
+ threadViewImplementation,
65
+ membrane
66
+ } = (0, _getOrFail.default)(memberMap, this);
67
+ return threadViewImplementation.getMessageViewDrivers().map(messageViewDriver => membrane.get(messageViewDriver));
107
68
  }
108
-
109
- getSubject(): string {
110
- return get(memberMap, this).threadViewImplementation.getSubject();
69
+ getSubject() {
70
+ return (0, _getOrFail.default)(memberMap, this).threadViewImplementation.getSubject();
111
71
  }
112
-
113
- getThreadID(): string {
114
- get(memberMap, this)
115
- .driver.getLogger()
116
- .deprecationWarning(
117
- 'threadView.getThreadID',
118
- 'threadView.getThreadIDAsync'
119
- );
120
- return get(memberMap, this).threadViewImplementation.getThreadID();
72
+ getThreadID() {
73
+ (0, _getOrFail.default)(memberMap, this).driver.getLogger().deprecationWarning('threadView.getThreadID', 'threadView.getThreadIDAsync');
74
+ return (0, _getOrFail.default)(memberMap, this).threadViewImplementation.getThreadID();
121
75
  }
122
-
123
- getThreadIDAsync(): Promise<string> {
124
- return get(memberMap, this).threadViewImplementation.getThreadIDAsync();
76
+ getThreadIDAsync() {
77
+ return (0, _getOrFail.default)(memberMap, this).threadViewImplementation.getThreadIDAsync();
125
78
  }
126
-
127
- addLabel(): SimpleElementView {
128
- return get(memberMap, this).threadViewImplementation.addLabel();
79
+ addLabel() {
80
+ return (0, _getOrFail.default)(memberMap, this).threadViewImplementation.addLabel();
129
81
  }
130
82
  }
131
-
132
- export default defn(module, ThreadView);
133
-
83
+ var _default = (0, _ud.defn)(module, ThreadView);
84
+ exports.default = _default;
134
85
  function _bindToStreamEvents(threadView, threadViewImplementation) {
135
86
  threadViewImplementation.getEventStream().onEnd(function () {
136
87
  threadView.destroyed = true;
137
88
  threadView.emit('destroy');
138
-
139
89
  threadView.removeAllListeners();
140
90
  });
141
-
142
- threadViewImplementation
143
- .getEventStream()
144
- .filter(function (event) {
145
- return event.type !== 'internal' && event.eventName === 'contactHover';
146
- })
147
- .onValue(function (event) {
148
- const { membrane } = get(memberMap, threadView);
149
- threadView.emit(event.eventName, {
150
- contactType: event.contactType,
151
- messageView: membrane.get(event.messageViewDriver),
152
- contact: event.contact,
153
- threadView: threadView,
154
- });
91
+ threadViewImplementation.getEventStream().filter(function (event) {
92
+ return event.type !== 'internal' && event.eventName === 'contactHover';
93
+ }).onValue(function (event) {
94
+ const {
95
+ membrane
96
+ } = (0, _getOrFail.default)(memberMap, threadView);
97
+ threadView.emit(event.eventName, {
98
+ contactType: event.contactType,
99
+ messageView: membrane.get(event.messageViewDriver),
100
+ contact: event.contact,
101
+ threadView: threadView
155
102
  });
156
- }
103
+ });
104
+ }
@@ -0,0 +1,14 @@
1
+ import EventEmitter from '../lib/safe-event-emitter';
2
+ // documented in src/docs/
3
+ export default class KeyboardShortcutHandle extends EventEmitter {
4
+ chord;
5
+ description;
6
+ constructor(chord, description) {
7
+ super();
8
+ this.chord = chord;
9
+ this.description = description;
10
+ }
11
+ remove() {
12
+ this.emit('destroy');
13
+ }
14
+ }
@@ -1,93 +1,60 @@
1
- /* @flow */
2
-
3
- import EventEmitter from '../lib/safe-event-emitter';
4
- import Kefir from 'kefir';
5
- import kefirCast from 'kefir-cast';
6
- import defer from '../../common/defer';
7
- import get from '../../common/get-or-fail';
8
- import NavItemView from './nav-item-view';
9
-
10
- import type { Driver } from '../driver-interfaces/driver';
11
- import type GmailNavItemView from '../dom-driver/gmail/views/gmail-nav-item-view';
1
+ "use strict";
12
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 _safeEventEmitter = _interopRequireDefault(require("../lib/safe-event-emitter"));
9
+ var _kefir = _interopRequireDefault(require("kefir"));
10
+ var _kefirCast = _interopRequireDefault(require("kefir-cast"));
11
+ var _defer = _interopRequireDefault(require("../../common/defer"));
12
+ var _getOrFail = _interopRequireDefault(require("../../common/get-or-fail"));
13
+ var _navItemView = _interopRequireDefault(require("./nav-item-view"));
13
14
  const memberMap = new WeakMap();
14
-
15
- export default class NativeNavItemView extends EventEmitter {
16
- constructor(
17
- appId: string,
18
- driver: Driver,
19
- labelName: string,
20
- navItemViewDriverPromise: Promise<GmailNavItemView>
21
- ) {
15
+ class NativeNavItemView extends _safeEventEmitter.default {
16
+ constructor(appId, driver, labelName, navItemViewDriverPromise) {
22
17
  super();
23
-
24
18
  const members = {
25
19
  appId,
26
20
  driver,
27
21
  labelName,
28
22
  navItemViews: [],
29
- navItemViewDriver: (null: ?GmailNavItemView),
30
- navItemViewDriverPromise,
23
+ navItemViewDriver: null,
24
+ navItemViewDriverPromise
31
25
  };
32
26
  memberMap.set(this, members);
33
-
34
- navItemViewDriverPromise.then((navItemViewDriver) => {
27
+ navItemViewDriverPromise.then(navItemViewDriver => {
35
28
  if (!navItemViewDriver) {
36
29
  return;
37
30
  }
38
31
  members.navItemViewDriver = navItemViewDriver;
39
- navItemViewDriver
40
- .getEventStream()
41
- .onValue((event) => _handleStreamEvent(this, event));
32
+ navItemViewDriver.getEventStream().onValue(event => _handleStreamEvent(this, event));
42
33
  });
43
34
  }
44
-
45
- addNavItem(navItemDescriptor: Object): NavItemView {
46
- const members = get(memberMap, this);
47
-
48
- const navItemDescriptorPropertyStream = kefirCast(
49
- (Kefir: any),
50
- navItemDescriptor
51
- ).toProperty();
52
- const childNavItemView = new NavItemView(
53
- members.appId,
54
- members.driver,
55
- navItemDescriptorPropertyStream,
56
- members.navItemViewDriverPromise.then((navItemViewDriver) => {
57
- const childNavItemViewDriver = navItemViewDriver.addNavItem(
58
- members.appId,
59
- navItemDescriptorPropertyStream
60
- );
61
- return childNavItemViewDriver;
62
- })
63
- );
64
-
35
+ addNavItem(navItemDescriptor) {
36
+ const members = (0, _getOrFail.default)(memberMap, this);
37
+ const navItemDescriptorPropertyStream = (0, _kefirCast.default)(_kefir.default, navItemDescriptor).toProperty();
38
+ const childNavItemView = new _navItemView.default(members.appId, members.driver, navItemDescriptorPropertyStream, members.navItemViewDriverPromise.then(navItemViewDriver => {
39
+ const childNavItemViewDriver = navItemViewDriver.addNavItem(members.appId, navItemDescriptorPropertyStream);
40
+ return childNavItemViewDriver;
41
+ }));
65
42
  members.navItemViews.push(childNavItemView);
66
43
  return childNavItemView;
67
44
  }
68
-
69
- isCollapsed(): boolean {
70
- return (
71
- localStorage.getItem(
72
- 'inboxsdk__nativeNavItem__state_' + get(memberMap, this).labelName
73
- ) === 'collapsed'
74
- );
45
+ isCollapsed() {
46
+ return localStorage.getItem('inboxsdk__nativeNavItem__state_' + (0, _getOrFail.default)(memberMap, this).labelName) === 'collapsed';
75
47
  }
76
-
77
- setCollapsed(collapseValue: boolean) {
78
- const members = get(memberMap, this);
79
-
48
+ setCollapsed(collapseValue) {
49
+ const members = (0, _getOrFail.default)(memberMap, this);
80
50
  if (members.navItemViewDriver) {
81
51
  members.navItemViewDriver.setCollapsed(collapseValue);
82
52
  } else {
83
- localStorage.setItem(
84
- 'inboxsdk__nativeNavItem__state_' + members.labelName,
85
- collapseValue ? 'collapsed' : 'expanded'
86
- );
53
+ localStorage.setItem('inboxsdk__nativeNavItem__state_' + members.labelName, collapseValue ? 'collapsed' : 'expanded');
87
54
  }
88
55
  }
89
56
  }
90
-
57
+ exports.default = NativeNavItemView;
91
58
  function _handleStreamEvent(emitter, event) {
92
59
  switch (event.eventName) {
93
60
  case 'expanded':
@@ -95,4 +62,4 @@ function _handleStreamEvent(emitter, event) {
95
62
  emitter.emit(event.eventName);
96
63
  break;
97
64
  }
98
- }
65
+ }
@@ -1,176 +1,119 @@
1
- /* @flow */
2
-
3
- import isEqual from 'lodash/isEqual';
4
- import Kefir from 'kefir';
5
- import kefirCast from 'kefir-cast';
6
- import defer from '../../common/defer';
7
- import get from '../../common/get-or-fail';
8
- import EventEmitter from '../lib/safe-event-emitter';
9
-
10
- import NAV_ITEM_TYPES from '../constants/nav-item-types';
11
-
12
- import type { Driver } from '../driver-interfaces/driver';
13
- import type GmailNavItemView from '../dom-driver/gmail/views/gmail-nav-item-view';
14
-
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 _isEqual = _interopRequireDefault(require("lodash/isEqual"));
10
+ var _kefir = _interopRequireDefault(require("kefir"));
11
+ var _kefirCast = _interopRequireDefault(require("kefir-cast"));
12
+ var _defer = _interopRequireDefault(require("../../common/defer"));
13
+ var _getOrFail = _interopRequireDefault(require("../../common/get-or-fail"));
14
+ var _safeEventEmitter = _interopRequireDefault(require("../lib/safe-event-emitter"));
15
+ var _navItemTypes = _interopRequireDefault(require("../constants/nav-item-types"));
15
16
  const memberMap = new WeakMap();
16
17
 
17
18
  // documented in src/docs/
18
19
 
19
- export default class NavItemView extends EventEmitter {
20
- destroyed: boolean = false;
21
-
22
- constructor(
23
- appId: string,
24
- driver: Driver,
25
- navItemDescriptorPropertyStream: Object,
26
- navItemViewDriverPromise: Promise<GmailNavItemView>
27
- ) {
20
+ class NavItemView extends _safeEventEmitter.default {
21
+ constructor(appId, driver, navItemDescriptorPropertyStream, navItemViewDriverPromise) {
28
22
  super();
29
-
23
+ (0, _defineProperty2.default)(this, "destroyed", false);
30
24
  const members = {
31
25
  appId,
32
26
  driver,
33
27
  navItemDescriptorPropertyStream,
34
28
  navItemViews: [],
35
- navItemViewDriver: (null: ?GmailNavItemView),
36
- navItemViewDriverPromise,
29
+ navItemViewDriver: null,
30
+ navItemViewDriverPromise
37
31
  };
38
32
  memberMap.set(this, members);
39
-
40
33
  driver.getStopper().onValue(this.remove.bind(this));
41
-
42
- navItemViewDriverPromise.then((navItemViewDriver) => {
34
+ navItemViewDriverPromise.then(navItemViewDriver => {
43
35
  if (this.destroyed || !navItemViewDriver) {
44
36
  return; //we have been removed already
45
37
  }
38
+
46
39
  const driver = members.driver;
47
40
  members.navItemViewDriver = navItemViewDriver;
48
-
49
- members.navItemDescriptorPropertyStream
50
- .sampledBy(navItemViewDriver.getEventStream(), (a, b) => [a, b])
51
- .onValue((navItemDescriptor) =>
52
- _handleViewDriverStreamEvent(
53
- this,
54
- navItemViewDriver,
55
- driver,
56
- navItemDescriptor
57
- )
58
- );
59
-
60
- Kefir.combine([
61
- members.navItemDescriptorPropertyStream,
62
- driver.getRouteViewDriverStream(),
63
- ])
64
- .takeUntilBy(
65
- navItemViewDriver
66
- .getEventStream()
67
- .filter(() => false)
68
- .beforeEnd(() => null)
69
- )
70
- .onValue((x) => {
71
- _handleRouteViewChange(navItemViewDriver, x);
72
- });
41
+ members.navItemDescriptorPropertyStream.sampledBy(navItemViewDriver.getEventStream(), (a, b) => [a, b]).onValue(navItemDescriptor => _handleViewDriverStreamEvent(this, navItemViewDriver, driver, navItemDescriptor));
42
+ _kefir.default.combine([members.navItemDescriptorPropertyStream, driver.getRouteViewDriverStream()]).takeUntilBy(navItemViewDriver.getEventStream().filter(() => false).beforeEnd(() => null)).onValue(x => {
43
+ _handleRouteViewChange(navItemViewDriver, x);
44
+ });
73
45
  });
74
46
  }
75
-
76
- addNavItem(navItemDescriptor: Object): NavItemView {
47
+ addNavItem(navItemDescriptor) {
77
48
  if (this.destroyed) throw new Error('this nav item view does not exist');
78
-
79
- const members = get(memberMap, this);
49
+ const members = (0, _getOrFail.default)(memberMap, this);
80
50
  const driver = members.driver;
81
51
  const appId = members.appId;
82
52
  const navItemViews = members.navItemViews;
83
-
84
- const navItemDescriptorPropertyStream = kefirCast(
85
- Kefir,
86
- navItemDescriptor
87
- ).toProperty();
88
- const childNavItemView = new NavItemView(
89
- appId,
90
- driver,
91
- navItemDescriptorPropertyStream,
92
- members.navItemViewDriverPromise.then((navItemViewDriver) => {
93
- const childNavItemViewDriver = navItemViewDriver.addNavItem(
94
- members.appId,
95
- navItemDescriptorPropertyStream
96
- );
97
- return childNavItemViewDriver;
98
- })
99
- );
100
-
53
+ const navItemDescriptorPropertyStream = (0, _kefirCast.default)(_kefir.default, navItemDescriptor).toProperty();
54
+ const childNavItemView = new NavItemView(appId, driver, navItemDescriptorPropertyStream, members.navItemViewDriverPromise.then(navItemViewDriver => {
55
+ const childNavItemViewDriver = navItemViewDriver.addNavItem(members.appId, navItemDescriptorPropertyStream);
56
+ return childNavItemViewDriver;
57
+ }));
101
58
  navItemViews.push(childNavItemView);
102
59
  return childNavItemView;
103
60
  }
104
-
105
61
  remove() {
106
62
  if (this.destroyed) {
107
63
  return;
108
64
  }
109
- const members = get(memberMap, this);
110
- const { navItemViews } = members;
111
-
65
+ const members = (0, _getOrFail.default)(memberMap, this);
66
+ const {
67
+ navItemViews
68
+ } = members;
112
69
  this.destroyed = true;
113
70
  this.emit('destroy');
114
-
115
71
  navItemViews.forEach(function (navItemView) {
116
72
  navItemView.remove();
117
73
  });
118
-
119
- members.navItemViewDriverPromise.then((navItemViewDriver) => {
74
+ members.navItemViewDriverPromise.then(navItemViewDriver => {
120
75
  navItemViewDriver.destroy();
121
76
  });
122
77
  }
123
-
124
- isCollapsed(): boolean {
125
- const members = get(memberMap, this);
78
+ isCollapsed() {
79
+ const members = (0, _getOrFail.default)(memberMap, this);
126
80
  const navItemViewDriver = members.navItemViewDriver;
127
-
128
81
  if (navItemViewDriver) {
129
82
  return navItemViewDriver.isCollapsed();
130
83
  } else {
131
84
  return false;
132
85
  }
133
86
  }
134
-
135
- setCollapsed(collapseValue: boolean) {
136
- get(memberMap, this).navItemViewDriverPromise.then((navItemViewDriver) => {
87
+ setCollapsed(collapseValue) {
88
+ (0, _getOrFail.default)(memberMap, this).navItemViewDriverPromise.then(navItemViewDriver => {
137
89
  navItemViewDriver.setCollapsed(collapseValue);
138
90
  });
139
91
  }
140
92
  }
141
-
142
- function _handleViewDriverStreamEvent(
143
- eventEmitter,
144
- navItemViewDriver,
145
- driver,
146
- [navItemDescriptor, event]
147
- ) {
93
+ exports.default = NavItemView;
94
+ function _handleViewDriverStreamEvent(eventEmitter, navItemViewDriver, driver, _ref) {
95
+ let [navItemDescriptor, event] = _ref;
148
96
  switch (event.eventName) {
149
97
  case 'click':
150
98
  // When in Gmailv2, we ignore the onClick, routeID, and routeParams options on GROUPER nav-items
151
- if (navItemDescriptor.type === NAV_ITEM_TYPES.GROUPER) return;
152
-
99
+ if (navItemDescriptor.type === _navItemTypes.default.GROUPER) return;
153
100
  if (typeof navItemDescriptor.onClick === 'function') {
154
101
  let defaultPrevented = false;
155
102
  const syntheticEvent = {
156
103
  preventDefault() {
157
104
  defaultPrevented = true;
158
- },
105
+ }
159
106
  };
160
-
161
107
  navItemDescriptor.onClick(syntheticEvent);
162
-
163
108
  if (defaultPrevented) {
164
109
  break;
165
110
  }
166
111
  }
167
-
168
112
  if (navItemDescriptor.routeID) {
169
113
  driver.goto(navItemDescriptor.routeID, navItemDescriptor.routeParams);
170
114
  } else {
171
115
  navItemViewDriver.toggleCollapse();
172
116
  }
173
-
174
117
  break;
175
118
  case 'expanded':
176
119
  case 'collapsed':
@@ -178,14 +121,7 @@ function _handleViewDriverStreamEvent(
178
121
  break;
179
122
  }
180
123
  }
181
-
182
- function _handleRouteViewChange(
183
- navItemViewDriver,
184
- [navItemDescriptor, routeViewDriver]
185
- ) {
186
- navItemViewDriver.setActive(
187
- navItemDescriptor &&
188
- routeViewDriver.getRouteID() === navItemDescriptor.routeID &&
189
- isEqual(navItemDescriptor.routeParams || {}, routeViewDriver.getParams())
190
- );
191
- }
124
+ function _handleRouteViewChange(navItemViewDriver, _ref2) {
125
+ let [navItemDescriptor, routeViewDriver] = _ref2;
126
+ navItemViewDriver.setActive(navItemDescriptor && routeViewDriver.getRouteID() === navItemDescriptor.routeID && (0, _isEqual.default)(navItemDescriptor.routeParams || {}, routeViewDriver.getParams()));
127
+ }