@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,112 +1,83 @@
1
- /* @flow */
2
-
3
- import find from 'lodash/find';
4
- import intersection from 'lodash/intersection';
5
- import { defn, defonce } from 'ud';
6
-
7
- import HandlerRegistry from '../lib/handler-registry';
8
- import get from '../../common/get-or-fail';
9
- import RouteView from '../views/route-view/route-view';
10
- import ListRouteView from '../views/route-view/list-route-view';
11
- import CustomRouteView from '../views/route-view/custom-route-view';
12
- import DummyRouteViewDriver from '../views/route-view/dummy-route-view-driver';
13
- import type Membrane from '../lib/Membrane';
14
- import {
15
- NATIVE_ROUTE_IDS,
16
- NATIVE_LIST_ROUTE_IDS,
17
- ROUTE_TYPES,
18
- } from '../constants/router';
19
-
20
- import type { Driver } from '../driver-interfaces/driver';
21
- import type { Handler } from '../lib/handler-registry';
22
-
23
- export type RouteParams = { [ix: string]: string | number };
24
-
25
- const memberMap = defonce(module, () => new WeakMap());
26
-
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _find = _interopRequireDefault(require("lodash/find"));
10
+ var _intersection = _interopRequireDefault(require("lodash/intersection"));
11
+ var _ud = require("ud");
12
+ var _handlerRegistry = _interopRequireDefault(require("../lib/handler-registry"));
13
+ var _getOrFail = _interopRequireDefault(require("../../common/get-or-fail"));
14
+ var _routeView = _interopRequireDefault(require("../views/route-view/route-view"));
15
+ var _listRouteView = _interopRequireDefault(require("../views/route-view/list-route-view"));
16
+ var _customRouteView = _interopRequireDefault(require("../views/route-view/custom-route-view"));
17
+ var _dummyRouteViewDriver = _interopRequireDefault(require("../views/route-view/dummy-route-view-driver"));
18
+ var _router = require("../constants/router");
19
+ const memberMap = (0, _ud.defonce)(module, () => new WeakMap());
27
20
  const SAMPLE_RATE = 0.01;
28
21
 
29
22
  // documented in src/docs/
30
23
  class Router {
31
- NativeRouteIDs = NATIVE_ROUTE_IDS;
32
- NativeListRouteIDs = NATIVE_LIST_ROUTE_IDS;
33
- RouteTypes = ROUTE_TYPES;
34
-
35
- constructor(appId: string, driver: Driver, membrane: Membrane) {
24
+ constructor(appId, driver, membrane) {
25
+ (0, _defineProperty2.default)(this, "NativeRouteIDs", _router.NATIVE_ROUTE_IDS);
26
+ (0, _defineProperty2.default)(this, "NativeListRouteIDs", _router.NATIVE_LIST_ROUTE_IDS);
27
+ (0, _defineProperty2.default)(this, "RouteTypes", _router.ROUTE_TYPES);
36
28
  const members = {
37
29
  appId,
38
30
  driver,
39
- currentRouteViewDriver: new DummyRouteViewDriver(),
40
- allRoutesHandlerRegistry: new HandlerRegistry(),
31
+ currentRouteViewDriver: new _dummyRouteViewDriver.default(),
32
+ allRoutesHandlerRegistry: new _handlerRegistry.default(),
41
33
  customRoutes: [],
42
34
  membrane,
43
- listRouteHandlerRegistries: {},
35
+ listRouteHandlerRegistries: {}
44
36
  };
45
- Object.values(NATIVE_LIST_ROUTE_IDS).forEach((value: any) => {
46
- members.listRouteHandlerRegistries[value] = new HandlerRegistry();
37
+ Object.values(_router.NATIVE_LIST_ROUTE_IDS).forEach(value => {
38
+ members.listRouteHandlerRegistries[value] = new _handlerRegistry.default();
47
39
  });
48
40
  memberMap.set(this, members);
49
-
50
- driver.getRouteViewDriverStream().onValue((routeViewDriver) => {
51
- driver
52
- .getLogger()
53
- .trackFunctionPerformance(
54
- () => _handleRouteViewChange(this, members, routeViewDriver),
55
- SAMPLE_RATE,
56
- {
57
- type: 'handleRouteViewChange',
58
- routeID: routeViewDriver.getRouteID(),
59
- }
60
- );
41
+ driver.getRouteViewDriverStream().onValue(routeViewDriver => {
42
+ driver.getLogger().trackFunctionPerformance(() => _handleRouteViewChange(this, members, routeViewDriver), SAMPLE_RATE, {
43
+ type: 'handleRouteViewChange',
44
+ routeID: routeViewDriver.getRouteID()
45
+ });
61
46
  });
62
-
63
47
  driver.getStopper().onValue(function () {
64
48
  members.allRoutesHandlerRegistry.dumpHandlers();
65
- Object.values(members.listRouteHandlerRegistries).forEach((reg: any) => {
49
+ Object.values(members.listRouteHandlerRegistries).forEach(reg => {
66
50
  reg.dumpHandlers();
67
51
  });
68
52
  });
69
53
  }
70
-
71
- createLink(routeID: string, params?: ?RouteParams | string): string {
72
- return get(memberMap, this).driver.createLink(routeID, params);
54
+ createLink(routeID, params) {
55
+ return (0, _getOrFail.default)(memberMap, this).driver.createLink(routeID, params);
73
56
  }
74
-
75
- goto(routeID: string, params?: ?RouteParams | string): Promise<void> {
57
+ goto(routeID, params) {
76
58
  if (typeof routeID !== 'string') {
77
59
  throw new Error('routeID must be a string');
78
60
  }
79
- const { driver } = get(memberMap, this);
80
- if (typeof params === 'string') {
61
+ const {
81
62
  driver
82
- .getLogger()
83
- .deprecationWarning(
84
- 'Router.goto param string',
85
- 'param object (e.g. {param: value})'
86
- );
63
+ } = (0, _getOrFail.default)(memberMap, this);
64
+ if (typeof params === 'string') {
65
+ driver.getLogger().deprecationWarning('Router.goto param string', 'param object (e.g. {param: value})');
87
66
  }
88
67
  return driver.goto(routeID, params);
89
68
  }
90
-
91
- handleCustomRoute(
92
- routeID: string,
93
- handler: HandlerRegistry<CustomRouteView>
94
- ): () => void {
69
+ handleCustomRoute(routeID, handler) {
95
70
  const customRouteDescriptor = {
96
71
  routeID: routeID,
97
- onActivate: handler,
72
+ onActivate: handler
98
73
  };
99
-
100
- const removeCustomRouteFromDriver = get(
101
- memberMap,
102
- this
103
- ).driver.addCustomRouteID(routeID);
104
- const { customRoutes, driver } = get(memberMap, this);
105
-
74
+ const removeCustomRouteFromDriver = (0, _getOrFail.default)(memberMap, this).driver.addCustomRouteID(routeID);
75
+ const {
76
+ customRoutes,
77
+ driver
78
+ } = (0, _getOrFail.default)(memberMap, this);
106
79
  customRoutes.push(customRouteDescriptor);
107
-
108
80
  driver.getLogger().eventSdkPassive('Router.handleCustomRoute');
109
-
110
81
  return function () {
111
82
  removeCustomRouteFromDriver();
112
83
  const index = customRoutes.indexOf(customRouteDescriptor);
@@ -115,85 +86,52 @@ class Router {
115
86
  }
116
87
  };
117
88
  }
118
-
119
- handleAllRoutes(handler: Handler<any>): () => void {
120
- return get(memberMap, this).allRoutesHandlerRegistry.registerHandler(
121
- handler
122
- );
89
+ handleAllRoutes(handler) {
90
+ return (0, _getOrFail.default)(memberMap, this).allRoutesHandlerRegistry.registerHandler(handler);
123
91
  }
124
-
125
- handleListRoute(
126
- routeID: string,
127
- handler: Handler<ListRouteView>
128
- ): () => void {
129
- const { listRouteHandlerRegistries } = get(memberMap, this);
92
+ handleListRoute(routeID, handler) {
93
+ const {
94
+ listRouteHandlerRegistries
95
+ } = (0, _getOrFail.default)(memberMap, this);
130
96
  if (!listRouteHandlerRegistries[routeID]) {
131
97
  throw new Error('Invalid routeID specified');
132
98
  }
133
-
134
99
  return listRouteHandlerRegistries[routeID].registerHandler(handler);
135
100
  }
136
-
137
- handleCustomListRoute(routeID: string, handler: Function): () => void {
138
- return get(memberMap, this).driver.addCustomListRouteID(routeID, handler);
101
+ handleCustomListRoute(routeID, handler) {
102
+ return (0, _getOrFail.default)(memberMap, this).driver.addCustomListRouteID(routeID, handler);
139
103
  }
140
-
141
- getCurrentRouteView(): RouteView {
142
- const members = get(memberMap, this);
104
+ getCurrentRouteView() {
105
+ const members = (0, _getOrFail.default)(memberMap, this);
143
106
  return members.membrane.get(members.currentRouteViewDriver);
144
107
  }
145
108
  }
146
-
147
109
  function _handleRouteViewChange(router, members, routeViewDriver) {
148
- if (members.currentRouteViewDriver instanceof DummyRouteViewDriver) {
110
+ if (members.currentRouteViewDriver instanceof _dummyRouteViewDriver.default) {
149
111
  members.currentRouteViewDriver.destroy();
150
112
  }
151
-
152
113
  members.currentRouteViewDriver = routeViewDriver;
153
114
  const routeView = members.membrane.get(routeViewDriver);
154
-
155
115
  _updateNavMenu(members, routeViewDriver);
156
-
157
- if (routeView.getRouteType() === ROUTE_TYPES.CUSTOM) {
116
+ if (routeView.getRouteType() === _router.ROUTE_TYPES.CUSTOM) {
158
117
  _informRelevantCustomRoutes(members, routeViewDriver, routeView);
159
118
  }
160
-
161
119
  members.allRoutesHandlerRegistry.addTarget(routeView);
162
-
163
- if (routeView.getRouteType() === ROUTE_TYPES.LIST) {
164
- const listRouteView = new ListRouteView(
165
- routeViewDriver,
166
- members.driver,
167
- members.appId
168
- );
169
-
170
- const listRouteHandlerRegistry =
171
- members.listRouteHandlerRegistries[routeView.getRouteID()];
120
+ if (routeView.getRouteType() === _router.ROUTE_TYPES.LIST) {
121
+ const listRouteView = new _listRouteView.default(routeViewDriver, members.driver, members.appId);
122
+ const listRouteHandlerRegistry = members.listRouteHandlerRegistries[routeView.getRouteID()];
172
123
  if (listRouteHandlerRegistry) {
173
124
  listRouteHandlerRegistry.addTarget(listRouteView);
174
125
  }
175
- members.listRouteHandlerRegistries[NATIVE_ROUTE_IDS.ANY_LIST].addTarget(
176
- listRouteView
177
- );
126
+ members.listRouteHandlerRegistries[_router.NATIVE_ROUTE_IDS.ANY_LIST].addTarget(listRouteView);
178
127
  }
179
128
  }
180
-
181
129
  function _informRelevantCustomRoutes(members, routeViewDriver, routeView) {
182
130
  const routeID = routeView.getRouteID();
183
131
  const routeIDArray = Array.isArray(routeID) ? routeID : [routeID];
184
- const relevantCustomRoute = find(
185
- members.customRoutes,
186
- (customRoute) =>
187
- intersection(
188
- Array.isArray(customRoute.routeID)
189
- ? customRoute.routeID
190
- : [customRoute.routeID],
191
- routeIDArray
192
- ).length
193
- );
194
-
132
+ const relevantCustomRoute = (0, _find.default)(members.customRoutes, customRoute => (0, _intersection.default)(Array.isArray(customRoute.routeID) ? customRoute.routeID : [customRoute.routeID], routeIDArray).length);
195
133
  if (relevantCustomRoute) {
196
- const customRouteView = new CustomRouteView(routeViewDriver);
134
+ const customRouteView = new _customRouteView.default(routeViewDriver);
197
135
  const customViewElement = routeViewDriver.getCustomViewElement();
198
136
  if (!customViewElement) throw new Error('should not happen');
199
137
  members.driver.showCustomRouteView(customViewElement);
@@ -204,14 +142,9 @@ function _informRelevantCustomRoutes(members, routeViewDriver, routeView) {
204
142
  }
205
143
  }
206
144
  }
207
-
208
145
  function _updateNavMenu(members, newRouteViewDriver) {
209
- members.driver.setShowNativeNavMarker(
210
- newRouteViewDriver.getType() !== ROUTE_TYPES.CUSTOM
211
- );
212
- members.driver.setShowNativeAddonSidebar(
213
- newRouteViewDriver.getType() !== ROUTE_TYPES.CUSTOM
214
- );
146
+ members.driver.setShowNativeNavMarker(newRouteViewDriver.getType() !== _router.ROUTE_TYPES.CUSTOM);
147
+ members.driver.setShowNativeAddonSidebar(newRouteViewDriver.getType() !== _router.ROUTE_TYPES.CUSTOM);
215
148
  }
216
-
217
- export default defn(module, Router);
149
+ var _default = (0, _ud.defn)(module, Router);
150
+ exports.default = _default;
@@ -1,36 +1,38 @@
1
- /* @flow */
2
-
3
- import get from '../../common/get-or-fail';
4
- import type { Driver } from '../driver-interfaces/driver';
1
+ "use strict";
5
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 _getOrFail = _interopRequireDefault(require("../../common/get-or-fail"));
6
9
  const memberMap = new WeakMap();
7
10
 
8
11
  // documented in src/docs/
9
- export default class Search {
10
- constructor(appId: string, driver: Driver) {
11
- const members = { appId, driver };
12
+ class Search {
13
+ constructor(appId, driver) {
14
+ const members = {
15
+ appId,
16
+ driver
17
+ };
12
18
  memberMap.set(this, members);
13
19
  }
14
-
15
- registerSearchSuggestionsProvider(handler: Function) {
20
+ registerSearchSuggestionsProvider(handler) {
16
21
  if (typeof handler != 'function') {
17
22
  throw new Error('Incorrect arguments');
18
23
  }
19
- const members = get(memberMap, this);
24
+ const members = (0, _getOrFail.default)(memberMap, this);
20
25
  members.driver.registerSearchSuggestionsProvider(handler);
21
26
  }
22
-
23
- registerSearchQueryRewriter(rewriter: Object) {
24
- if (
25
- typeof rewriter.termReplacer != 'function' ||
26
- typeof rewriter.term != 'string'
27
- ) {
27
+ registerSearchQueryRewriter(rewriter) {
28
+ if (typeof rewriter.termReplacer != 'function' || typeof rewriter.term != 'string') {
28
29
  throw new Error('Incorrect arguments');
29
30
  }
30
31
  if (!rewriter.term.match(/^(app|has):/)) {
31
32
  throw new Error("Custom search term must begin with 'app:'");
32
33
  }
33
- const members = get(memberMap, this);
34
+ const members = (0, _getOrFail.default)(memberMap, this);
34
35
  members.driver.registerSearchQueryRewriter(rewriter);
35
36
  }
36
37
  }
38
+ exports.default = Search;
@@ -1,105 +1,78 @@
1
- /* @flow */
2
-
3
- import Kefir from 'kefir';
4
- import kefirCast from 'kefir-cast';
5
- import kefirStopper from 'kefir-stopper';
6
- import EventEmitter from '../lib/safe-event-emitter';
7
- import type { Driver } from '../driver-interfaces/driver';
8
- import type { PiOpts } from '../platform-implementation';
9
- import type Membrane from '../lib/Membrane';
10
- import get from '../../common/get-or-fail';
11
- import AppToolbarButtonView from '../views/app-toolbar-button-view';
12
- import { SECTION_NAMES } from '../constants/toolbars';
13
-
14
- type Members = {|
15
- appId: string,
16
- driver: Driver,
17
- membrane: Membrane,
18
- piOpts: PiOpts,
19
- |};
20
-
21
- const memberMap: WeakMap<Toolbars, Members> = 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 _kefir = _interopRequireDefault(require("kefir"));
10
+ var _kefirCast = _interopRequireDefault(require("kefir-cast"));
11
+ var _kefirStopper = _interopRequireDefault(require("kefir-stopper"));
12
+ var _safeEventEmitter = _interopRequireDefault(require("../lib/safe-event-emitter"));
13
+ var _getOrFail = _interopRequireDefault(require("../../common/get-or-fail"));
14
+ var _appToolbarButtonView = _interopRequireDefault(require("../views/app-toolbar-button-view"));
15
+ var _toolbars = require("../constants/toolbars");
16
+ const memberMap = new WeakMap();
22
17
 
23
18
  // documented in src/docs/
24
- export default class Toolbars extends EventEmitter {
25
- SectionNames = SECTION_NAMES;
26
-
27
- constructor(
28
- appId: string,
29
- driver: Driver,
30
- membrane: Membrane,
31
- piOpts: PiOpts
32
- ) {
19
+ class Toolbars extends _safeEventEmitter.default {
20
+ constructor(appId, driver, membrane, piOpts) {
33
21
  super();
22
+ (0, _defineProperty2.default)(this, "SectionNames", _toolbars.SECTION_NAMES);
34
23
  const members = {
35
24
  appId,
36
25
  driver,
37
26
  membrane,
38
- piOpts,
27
+ piOpts
39
28
  };
40
29
  memberMap.set(this, members);
41
30
  }
42
-
43
- registerThreadButton(buttonDescriptor: Object) {
44
- const members = get(memberMap, this);
45
-
46
- if (
47
- (buttonDescriptor.listSection === 'OTHER' ||
48
- buttonDescriptor.threadSection === 'OTHER') &&
49
- buttonDescriptor.hasDropdown
50
- ) {
51
- members.driver
52
- .getLogger()
53
- .errorApp(
54
- new Error(
55
- 'registerThreadButton does not support listSection=OTHER or threadSection=OTHER and hasDropdown=true together'
56
- )
57
- );
58
- buttonDescriptor = { ...buttonDescriptor, hasDropdown: false };
31
+ registerThreadButton(buttonDescriptor) {
32
+ const members = (0, _getOrFail.default)(memberMap, this);
33
+ if ((buttonDescriptor.listSection === 'OTHER' || buttonDescriptor.threadSection === 'OTHER') && buttonDescriptor.hasDropdown) {
34
+ members.driver.getLogger().errorApp(new Error('registerThreadButton does not support listSection=OTHER or threadSection=OTHER and hasDropdown=true together'));
35
+ buttonDescriptor = {
36
+ ...buttonDescriptor,
37
+ hasDropdown: false
38
+ };
59
39
  }
60
-
61
- const { hideFor, ..._buttonDescriptor } = buttonDescriptor;
62
-
40
+ const {
41
+ hideFor,
42
+ ..._buttonDescriptor
43
+ } = buttonDescriptor;
63
44
  const registerThreadButton = () => {
64
45
  return members.driver.registerThreadButton({
65
46
  ..._buttonDescriptor,
66
- onClick: (event) => {
47
+ onClick: event => {
67
48
  if (!_buttonDescriptor.onClick) return;
68
49
  _buttonDescriptor.onClick({
69
50
  position: event.position,
70
51
  dropdown: event.dropdown,
71
- selectedThreadViews: event.selectedThreadViewDrivers.map((x) =>
72
- members.membrane.get(x)
73
- ),
74
- selectedThreadRowViews: event.selectedThreadRowViewDrivers.map(
75
- (x) => members.membrane.get(x)
76
- ),
52
+ selectedThreadViews: event.selectedThreadViewDrivers.map(x => members.membrane.get(x)),
53
+ selectedThreadRowViews: event.selectedThreadRowViewDrivers.map(x => members.membrane.get(x))
77
54
  });
78
- },
55
+ }
79
56
  });
80
57
  };
81
-
82
58
  if (!hideFor) {
83
59
  return registerThreadButton();
84
60
  } else {
85
- const stopper = kefirStopper();
61
+ const stopper = (0, _kefirStopper.default)();
86
62
  let currentRemover = null;
87
- const sub = members.driver
88
- .getRouteViewDriverStream()
89
- .takeUntilBy(stopper)
90
- .onValue((routeViewDriver) => {
91
- const routeView = members.membrane.get(routeViewDriver);
92
- if (hideFor(routeView)) {
93
- if (currentRemover) {
94
- currentRemover();
95
- currentRemover = null;
96
- }
97
- } else {
98
- if (!currentRemover) {
99
- currentRemover = registerThreadButton();
100
- }
63
+ const sub = members.driver.getRouteViewDriverStream().takeUntilBy(stopper).onValue(routeViewDriver => {
64
+ const routeView = members.membrane.get(routeViewDriver);
65
+ if (hideFor(routeView)) {
66
+ if (currentRemover) {
67
+ currentRemover();
68
+ currentRemover = null;
101
69
  }
102
- });
70
+ } else {
71
+ if (!currentRemover) {
72
+ currentRemover = registerThreadButton();
73
+ }
74
+ }
75
+ });
103
76
  return () => {
104
77
  stopper.destroy();
105
78
  if (currentRemover) {
@@ -109,87 +82,68 @@ export default class Toolbars extends EventEmitter {
109
82
  };
110
83
  }
111
84
  }
112
-
113
- registerToolbarButtonForList(buttonDescriptor: Object) {
114
- const members = get(memberMap, this);
85
+ registerToolbarButtonForList(buttonDescriptor) {
86
+ const members = (0, _getOrFail.default)(memberMap, this);
115
87
  return this.registerThreadButton({
116
88
  positions: ['LIST'],
117
89
  listSection: buttonDescriptor.section,
118
-
119
90
  title: buttonDescriptor.title,
120
91
  iconUrl: buttonDescriptor.iconUrl,
121
92
  iconClass: buttonDescriptor.iconClass,
122
- onClick: (event) => {
93
+ onClick: event => {
123
94
  if (!buttonDescriptor.onClick) return;
124
95
  buttonDescriptor.onClick({
125
96
  dropdown: event.dropdown,
126
97
  selectedThreadRowViews: event.selectedThreadRowViews,
127
98
  get threadRowViews() {
128
- members.driver
129
- .getLogger()
130
- .deprecationWarning(
131
- 'Toolbars.registerToolbarButtonForList onClick event.threadRowViews'
132
- );
99
+ members.driver.getLogger().deprecationWarning('Toolbars.registerToolbarButtonForList onClick event.threadRowViews');
133
100
  return event.selectedThreadRowViews;
134
- },
101
+ }
135
102
  });
136
103
  },
137
104
  hasDropdown: buttonDescriptor.hasDropdown,
138
105
  orderHint: buttonDescriptor.orderHint,
139
106
  hideFor: buttonDescriptor.hideFor,
140
- keyboardShortcutHandle: buttonDescriptor.keyboardShortcutHandle,
107
+ keyboardShortcutHandle: buttonDescriptor.keyboardShortcutHandle
141
108
  });
142
109
  }
143
-
144
- registerToolbarButtonForThreadView(buttonDescriptor: Object) {
110
+ registerToolbarButtonForThreadView(buttonDescriptor) {
145
111
  return this.registerThreadButton({
146
112
  positions: ['THREAD'],
147
113
  threadSection: buttonDescriptor.section,
148
-
149
114
  title: buttonDescriptor.title,
150
115
  iconUrl: buttonDescriptor.iconUrl,
151
116
  iconClass: buttonDescriptor.iconClass,
152
- onClick: (event) => {
153
- if (event.selectedThreadViews.length !== 1)
154
- throw new Error('should not happen');
117
+ onClick: event => {
118
+ if (event.selectedThreadViews.length !== 1) throw new Error('should not happen');
155
119
  if (!buttonDescriptor.onClick) return;
156
120
  buttonDescriptor.onClick({
157
121
  dropdown: event.dropdown,
158
- threadView: event.selectedThreadViews[0],
122
+ threadView: event.selectedThreadViews[0]
159
123
  });
160
124
  },
161
125
  hasDropdown: buttonDescriptor.hasDropdown,
162
126
  orderHint: buttonDescriptor.orderHint,
163
127
  hideFor: buttonDescriptor.hideFor,
164
- keyboardShortcutHandle: buttonDescriptor.keyboardShortcutHandle,
128
+ keyboardShortcutHandle: buttonDescriptor.keyboardShortcutHandle
165
129
  });
166
130
  }
167
-
168
- setAppToolbarButton(appToolbarButtonDescriptor: Object) {
169
- const { driver, piOpts } = get(memberMap, this);
170
- driver
171
- .getLogger()
172
- .deprecationWarning(
173
- 'Toolbars.setAppToolbarButton',
174
- 'Toolbars.addToolbarButtonForApp'
175
- );
131
+ setAppToolbarButton(appToolbarButtonDescriptor) {
132
+ const {
133
+ driver,
134
+ piOpts
135
+ } = (0, _getOrFail.default)(memberMap, this);
136
+ driver.getLogger().deprecationWarning('Toolbars.setAppToolbarButton', 'Toolbars.addToolbarButtonForApp');
176
137
  if (piOpts.REQUESTED_API_VERSION !== 1) {
177
138
  throw new Error('This method was discontinued after API version 1');
178
139
  }
179
140
  return this.addToolbarButtonForApp(appToolbarButtonDescriptor);
180
141
  }
181
-
182
- addToolbarButtonForApp(buttonDescriptor: Object) {
183
- const buttonDescriptorStream = kefirCast(Kefir, buttonDescriptor);
184
- const appToolbarButtonViewDriverPromise = get(
185
- memberMap,
186
- this
187
- ).driver.addToolbarButtonForApp(buttonDescriptorStream);
188
- const appToolbarButtonView = new AppToolbarButtonView(
189
- get(memberMap, this).driver,
190
- appToolbarButtonViewDriverPromise
191
- );
192
-
142
+ addToolbarButtonForApp(buttonDescriptor) {
143
+ const buttonDescriptorStream = (0, _kefirCast.default)(_kefir.default, buttonDescriptor);
144
+ const appToolbarButtonViewDriverPromise = (0, _getOrFail.default)(memberMap, this).driver.addToolbarButtonForApp(buttonDescriptorStream);
145
+ const appToolbarButtonView = new _appToolbarButtonView.default((0, _getOrFail.default)(memberMap, this).driver, appToolbarButtonViewDriverPromise);
193
146
  return appToolbarButtonView;
194
147
  }
195
148
  }
149
+ exports.default = Toolbars;