@inboxsdk/core 0.2.28-alpha.4 → 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 (263) hide show
  1. package/inboxsdk.js +1 -1
  2. package/package.json +5 -1
  3. package/src/inboxsdk-js/check-requirements.js +7 -3
  4. package/src/inboxsdk-js/header.js +1 -0
  5. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.js +5 -6
  6. package/src/inboxsdk-js/inboxsdk-NONREMOTE.js +4 -3
  7. package/src/inboxsdk-js/inboxsdk-REMOTE.js +3 -1
  8. package/src/inboxsdk-js/inboxsdk-TEST.js +4 -3
  9. package/src/inboxsdk-js/inboxsdk.js +33 -39
  10. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.js +15 -18
  11. package/src/injected-js/gmail/modify-suggestions.test.js +8 -9
  12. package/src/injected-js/gmail/setup-gmail-interceptor.js +340 -579
  13. package/src/injected-js/gmail/sync-compose-request-processor.test.js +39 -49
  14. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +20 -33
  15. package/src/injected-js/gmail/thread-identifier/index.js +57 -93
  16. package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +22 -31
  17. package/src/injected-js/gmail/thread-identifier/thread-row-parser.test.js +12 -28
  18. package/src/injected-js/inbox/setupAjaxInterceptor.js +64 -121
  19. package/src/injected-js/inbox/setupClickAndGetNewIframeSrc.js +53 -66
  20. package/src/injected-js/inbox/setupComposeViewDraftIDFinder.js +20 -36
  21. package/src/injected-js/inbox/setupInboxFakeWindowResizeListener.js +13 -13
  22. package/src/injected-js/main.js +11 -24
  23. package/src/injected-js/message-metadata-holder.js +52 -82
  24. package/src/injected-js/setup-data-exposer.js +89 -148
  25. package/src/injected-js/setup-error-silencer.js +21 -21
  26. package/src/injected-js/setup-event-reemitter.js +30 -22
  27. package/src/injected-js/setupInboxCustomViewLinkFixer.js +24 -29
  28. package/src/injected-js/setupPushStateListener.js +18 -11
  29. package/src/injected-js/xhr-helper.js +62 -65
  30. package/src/injected-js/xhr-proxy-factory.js +195 -445
  31. package/src/injected-js/xhr-proxy-factory.test.js +824 -991
  32. package/src/platform-implementation-js/constants/router.js +14 -9
  33. package/src/platform-implementation-js/constants/toolbars.js +8 -3
  34. package/src/platform-implementation-js/dom-driver/gmail/custom-style.js +13 -13
  35. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +115 -136
  36. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +13 -14
  37. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +27 -48
  38. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +31 -42
  39. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +30 -40
  40. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +10 -18
  41. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +21 -28
  42. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +33 -45
  43. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +31 -49
  44. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +58 -65
  45. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +40 -124
  46. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +17 -22
  47. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.test.js +10 -11
  48. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +44 -80
  49. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +19 -26
  50. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +71 -147
  51. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +91 -148
  52. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +150 -166
  53. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.test.js +70 -120
  54. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +15 -15
  55. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +44 -67
  56. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +230 -379
  57. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.test.js +121 -307
  58. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +17 -24
  59. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +41 -49
  60. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +30 -40
  61. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +28 -60
  62. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +61 -133
  63. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +30 -42
  64. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.test.js +52 -46
  65. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +354 -694
  66. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +77 -93
  67. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +35 -82
  68. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.test.js +44 -94
  69. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +12 -19
  70. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +17 -29
  71. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.js +26 -26
  72. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +391 -797
  73. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +7 -9
  74. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +60 -109
  75. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +95 -135
  76. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +103 -211
  77. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.test.js +61 -61
  78. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +17 -17
  79. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +188 -541
  80. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +67 -135
  81. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +27 -49
  82. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-inner-sidebar.js +7 -13
  83. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-outer-sidebar.js +9 -22
  84. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +36 -63
  85. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +38 -113
  86. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +11 -16
  87. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +11 -17
  88. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +8 -11
  89. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +27 -47
  90. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +11 -24
  91. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +59 -111
  92. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +15 -14
  93. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +11 -17
  94. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +18 -24
  95. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +19 -23
  96. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +11 -19
  97. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +141 -376
  98. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +17 -28
  99. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +34 -70
  100. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +10 -17
  101. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +83 -137
  102. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +10 -19
  103. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +632 -1190
  104. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +29 -38
  105. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +327 -617
  106. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +26 -49
  107. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +188 -380
  108. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +104 -194
  109. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +382 -811
  110. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view/add-icon-area.js +34 -58
  111. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.js +330 -581
  112. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.test.js +123 -277
  113. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +15 -35
  114. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +216 -571
  115. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +152 -336
  116. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +87 -211
  117. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +10 -11
  118. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +20 -29
  119. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +41 -76
  120. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +45 -99
  121. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +76 -128
  122. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +128 -319
  123. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +45 -78
  124. package/src/platform-implementation-js/dom-driver/inbox/__mocks__/getSidebarClassnames.js +8 -4
  125. package/src/platform-implementation-js/dom-driver/inbox/addNavItem.js +36 -54
  126. package/src/platform-implementation-js/dom-driver/inbox/addRecipientRow.js +35 -53
  127. package/src/platform-implementation-js/dom-driver/inbox/createLink.js +13 -15
  128. package/src/platform-implementation-js/dom-driver/inbox/createLink.test.js +15 -18
  129. package/src/platform-implementation-js/dom-driver/inbox/custom-style.js +14 -13
  130. package/src/platform-implementation-js/dom-driver/inbox/detection/appToolbarLocation/parser.js +14 -20
  131. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentCard/parser.js +14 -13
  132. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentOverlay/parser.js +35 -67
  133. package/src/platform-implementation-js/dom-driver/inbox/detection/chatSidebar/parser.js +16 -18
  134. package/src/platform-implementation-js/dom-driver/inbox/detection/compose/parser.js +68 -185
  135. package/src/platform-implementation-js/dom-driver/inbox/detection/message/parser.js +28 -56
  136. package/src/platform-implementation-js/dom-driver/inbox/detection/nativeDrawer/parser.js +12 -10
  137. package/src/platform-implementation-js/dom-driver/inbox/detection/searchBar/parser.js +16 -16
  138. package/src/platform-implementation-js/dom-driver/inbox/detection/thread/parser.js +24 -35
  139. package/src/platform-implementation-js/dom-driver/inbox/detection/thread-row/parser.js +37 -89
  140. package/src/platform-implementation-js/dom-driver/inbox/getComposeViewDriverLiveSet.js +56 -78
  141. package/src/platform-implementation-js/dom-driver/inbox/getInboxMessageIdForInboxThreadId.js +26 -32
  142. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.js +52 -109
  143. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.test.js +7 -8
  144. package/src/platform-implementation-js/dom-driver/inbox/gotoView.js +16 -20
  145. package/src/platform-implementation-js/dom-driver/inbox/gotoView.test.js +15 -16
  146. package/src/platform-implementation-js/dom-driver/inbox/inbox-butter-bar-driver.js +75 -83
  147. package/src/platform-implementation-js/dom-driver/inbox/inbox-driver.js +530 -822
  148. package/src/platform-implementation-js/dom-driver/inbox/inbox-page-communicator.js +48 -61
  149. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.js +9 -12
  150. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.test.js +12 -19
  151. package/src/platform-implementation-js/dom-driver/inbox/makePageParserTree.js +24 -33
  152. package/src/platform-implementation-js/dom-driver/inbox/pageParserOptions.js +201 -388
  153. package/src/platform-implementation-js/dom-driver/inbox/registerSearchSuggestionsProvider.js +249 -265
  154. package/src/platform-implementation-js/dom-driver/inbox/setupCustomAutocompleteSelectionHandling.js +84 -152
  155. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.js +55 -67
  156. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.test.js +43 -65
  157. package/src/platform-implementation-js/dom-driver/inbox/views/InboxLabelView.js +31 -56
  158. package/src/platform-implementation-js/dom-driver/inbox/views/InboxMoleViewDriver.js +191 -294
  159. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarButtonView.js +32 -45
  160. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarView.js +21 -39
  161. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-sidebar-view.js +153 -240
  162. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-button-view.js +75 -150
  163. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-tooltip-view.js +20 -37
  164. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-card-view.js +60 -114
  165. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-overlay-view.js +47 -65
  166. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +41 -52
  167. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-chat-sidebar-view.js +27 -36
  168. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-button-view.js +52 -80
  169. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-view.js +465 -649
  170. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.js +37 -58
  171. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.test.js +14 -26
  172. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +118 -235
  173. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dropdown-view.js +10 -11
  174. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dummy-route-view.js +28 -46
  175. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-message-view.js +131 -202
  176. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-modal-view.js +40 -80
  177. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-route-view.js +35 -61
  178. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-row-view.js +124 -221
  179. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.js +125 -213
  180. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.test.js +104 -126
  181. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-tooltip-view.js +36 -51
  182. package/src/platform-implementation-js/dom-driver/inbox/views/inboxNavItemView.js +158 -297
  183. package/src/platform-implementation-js/dom-driver/inbox/waitForAnimationClickBlockerGone.js +21 -35
  184. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +24 -43
  185. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +39 -68
  186. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +14 -19
  187. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +27 -35
  188. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +16 -22
  189. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +14 -14
  190. package/src/platform-implementation-js/driver-common/inboxAjax.js +12 -7
  191. package/src/platform-implementation-js/driver-common/requestGmailThread.js +19 -20
  192. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +197 -306
  193. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +113 -161
  194. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +1 -114
  195. package/src/platform-implementation-js/driver-interfaces/driver.js +1 -131
  196. package/src/platform-implementation-js/driver-interfaces/message-view-driver.js +4 -48
  197. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +1 -29
  198. package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +1 -32
  199. package/src/platform-implementation-js/driver-interfaces/thread-row-view-driver.js +1 -11
  200. package/src/platform-implementation-js/lib/array-to-lifetimes.js +43 -41
  201. package/src/platform-implementation-js/lib/array-to-lifetimes.test.js +139 -155
  202. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +19 -38
  203. package/src/platform-implementation-js/lib/css-selector-escape.js +7 -3
  204. package/src/platform-implementation-js/lib/dom/element-view-mapper.js +8 -11
  205. package/src/platform-implementation-js/lib/dom/get-selection.js +23 -52
  206. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +69 -101
  207. package/src/platform-implementation-js/lib/dom/is-node-in-range.js +8 -10
  208. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +15 -17
  209. package/src/platform-implementation-js/lib/dom/querySelectorOne.js +8 -11
  210. package/src/platform-implementation-js/lib/dom/set-css.js +7 -3
  211. package/src/platform-implementation-js/lib/dom/set-value-and-dispatch-event.js +9 -11
  212. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +32 -33
  213. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.test.js +23 -26
  214. package/src/platform-implementation-js/lib/handle-compose-link-chips.js +86 -149
  215. package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +42 -57
  216. package/src/platform-implementation-js/lib/make-revocable-function.js +19 -21
  217. package/src/platform-implementation-js/lib/make-revocable-function.test.js +20 -22
  218. package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +15 -17
  219. package/src/platform-implementation-js/lib/parseParamsFromRouteID.test.js +9 -18
  220. package/src/platform-implementation-js/lib/populateRouteID.js +8 -9
  221. package/src/platform-implementation-js/lib/populateRouteID.test.js +20 -19
  222. package/src/platform-implementation-js/lib/react/ElementContainer.js +23 -20
  223. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.js +10 -9
  224. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.test.js +13 -20
  225. package/src/platform-implementation-js/lib/routeIDmatchesHash.js +13 -18
  226. package/src/platform-implementation-js/lib/routeIDmatchesHash.test.js +11 -17
  227. package/src/platform-implementation-js/lib/shared-style.js +14 -13
  228. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +18 -17
  229. package/src/platform-implementation-js/lib/toLiveSet.js +17 -15
  230. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +6 -5
  231. package/src/platform-implementation-js/main.js +9 -24
  232. package/src/platform-implementation-js/namespaces/compose.js +37 -60
  233. package/src/platform-implementation-js/namespaces/conversations.js +52 -124
  234. package/src/platform-implementation-js/namespaces/global.js +27 -39
  235. package/src/platform-implementation-js/namespaces/keyboard.js +29 -33
  236. package/src/platform-implementation-js/namespaces/lists.js +25 -31
  237. package/src/platform-implementation-js/namespaces/modal.js +34 -28
  238. package/src/platform-implementation-js/namespaces/nav-menu.js +30 -45
  239. package/src/platform-implementation-js/namespaces/router.js +70 -137
  240. package/src/platform-implementation-js/namespaces/search.js +19 -17
  241. package/src/platform-implementation-js/namespaces/toolbars.js +71 -117
  242. package/src/platform-implementation-js/namespaces/user.js +36 -37
  243. package/src/platform-implementation-js/namespaces/widgets.js +54 -61
  244. package/src/platform-implementation-js/platform-implementation.js +98 -229
  245. package/src/platform-implementation-js/views/app-toolbar-button-view.js +26 -47
  246. package/src/platform-implementation-js/views/collapsible-section-view.js +66 -63
  247. package/src/platform-implementation-js/views/content-panel-view.js +28 -30
  248. package/src/platform-implementation-js/views/conversations/attachment-card-view.js +21 -44
  249. package/src/platform-implementation-js/views/conversations/custom-message-view.js +44 -104
  250. package/src/platform-implementation-js/views/conversations/message-view.js +131 -202
  251. package/src/platform-implementation-js/views/conversations/thread-view.js +75 -127
  252. package/src/platform-implementation-js/views/native-nav-item-view.js +32 -65
  253. package/src/platform-implementation-js/views/nav-item-view.js +51 -115
  254. package/src/platform-implementation-js/views/route-view/custom-route-view.js +25 -20
  255. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +18 -18
  256. package/src/platform-implementation-js/views/route-view/list-route-view.js +30 -52
  257. package/src/platform-implementation-js/views/route-view/route-view.js +24 -35
  258. package/src/platform-implementation-js/views/section-view.js +60 -52
  259. package/src/platform-implementation-js/views/thread-row-view.js +49 -74
  260. package/src/platform-implementation-js/widgets/drawer-view.js +29 -36
  261. package/src/platform-implementation-js/widgets/modal-view.js +39 -68
  262. package/src/platform-implementation-js/widgets/mole-view.js +22 -22
  263. package/src/platform-implementation-js/widgets/top-message-bar-view.js +13 -10
@@ -1,136 +1,101 @@
1
- /* @flow */
2
-
3
- import find from 'lodash/find';
4
- import { defn } from 'ud';
5
- import autoHtml from 'auto-html';
6
- import Kefir from 'kefir';
7
- import kefirBus from 'kefir-bus';
8
- import type { Bus } from 'kefir-bus';
9
- import kefirStopper from 'kefir-stopper';
10
- import BigNumber from 'bignumber.js';
11
- import delayAsap from '../../../lib/delay-asap';
12
- import idMap from '../../../lib/idMap';
13
- import querySelector from '../../../lib/dom/querySelectorOrFail';
14
- import makeMutationObserverChunkedStream from '../../../lib/dom/make-mutation-observer-chunked-stream';
15
- import type InboxDriver from '../inbox-driver';
16
- import type InboxMessageView from './inbox-message-view';
17
- import type ContentPanelViewDriver from '../../../driver-common/sidebar/ContentPanelViewDriver';
18
- import SimpleElementView from '../../../views/SimpleElementView';
19
- import CustomMessageView from '../../../views/conversations/custom-message-view';
20
- import parser from '../detection/thread/parser';
21
- import type { Parsed } from '../detection/thread/parser';
22
- import type { CustomMessageDescriptor } from '../../../views/conversations/custom-message-view';
23
-
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 _ud = require("ud");
11
+ var _autoHtml = _interopRequireDefault(require("auto-html"));
12
+ var _kefir = _interopRequireDefault(require("kefir"));
13
+ var _kefirBus = _interopRequireDefault(require("kefir-bus"));
14
+ var _kefirStopper = _interopRequireDefault(require("kefir-stopper"));
15
+ var _bignumber = _interopRequireDefault(require("bignumber.js"));
16
+ var _delayAsap = _interopRequireDefault(require("../../../lib/delay-asap"));
17
+ var _idMap = _interopRequireDefault(require("../../../lib/idMap"));
18
+ var _querySelectorOrFail = _interopRequireDefault(require("../../../lib/dom/querySelectorOrFail"));
19
+ var _makeMutationObserverChunkedStream = _interopRequireDefault(require("../../../lib/dom/make-mutation-observer-chunked-stream"));
20
+ var _SimpleElementView = _interopRequireDefault(require("../../../views/SimpleElementView"));
21
+ var _customMessageView = _interopRequireDefault(require("../../../views/conversations/custom-message-view"));
22
+ var _parser = _interopRequireDefault(require("../detection/thread/parser"));
24
23
  class InboxThreadView {
25
- _element: HTMLElement;
26
- _driver: InboxDriver;
27
- _p: Parsed;
28
- _eventStream: Bus<any> = kefirBus();
29
- _messageViews: InboxMessageView[] = [];
30
- _receivedMessageView = kefirStopper();
31
- _stopper: Kefir.Observable<null>;
32
- _ready: Kefir.Observable<void>;
33
- _sidebarPanels: Set<ContentPanelViewDriver> = new Set();
34
-
35
- constructor(element: HTMLElement, driver: InboxDriver, parsed: Parsed) {
24
+ constructor(element, driver, parsed) {
25
+ (0, _defineProperty2.default)(this, "_eventStream", (0, _kefirBus.default)());
26
+ (0, _defineProperty2.default)(this, "_messageViews", []);
27
+ (0, _defineProperty2.default)(this, "_receivedMessageView", (0, _kefirStopper.default)());
28
+ (0, _defineProperty2.default)(this, "_sidebarPanels", new Set());
36
29
  this._element = element;
37
30
  this._driver = driver;
38
31
  this._p = parsed;
39
-
40
- this._stopper = this._eventStream
41
- .ignoreValues()
42
- .beforeEnd(() => null)
43
- .toProperty();
44
-
32
+ this._stopper = this._eventStream.ignoreValues().beforeEnd(() => null).toProperty();
45
33
  this._driver.getThreadViewElementsMap().set(this._element, this);
46
-
47
- this._ready = this._receivedMessageView
48
- .flatMap(() => delayAsap())
49
- .onValue(() => {
50
- this._p = parser(this._element);
51
- })
52
- .toProperty();
53
-
34
+ this._ready = this._receivedMessageView.flatMap(() => (0, _delayAsap.default)()).onValue(() => {
35
+ this._p = (0, _parser.default)(this._element);
36
+ }).toProperty();
54
37
  if (this.isLoadingStub()) {
55
- makeMutationObserverChunkedStream(this._element, {
38
+ (0, _makeMutationObserverChunkedStream.default)(this._element, {
56
39
  attributes: true,
57
- attributeFilter: ['aria-busy'],
58
- })
59
- .takeUntilBy(this._stopper)
60
- .onValue(() => {
61
- if (!this.isLoadingStub()) {
62
- this.destroy();
63
- }
64
- });
40
+ attributeFilter: ['aria-busy']
41
+ }).takeUntilBy(this._stopper).onValue(() => {
42
+ if (!this.isLoadingStub()) {
43
+ this.destroy();
44
+ }
45
+ });
65
46
  }
66
47
  }
67
-
68
- isLoadingStub(): boolean {
48
+ isLoadingStub() {
69
49
  return this._element.getAttribute('aria-busy') === 'true';
70
50
  }
71
-
72
- getEventStream(): Kefir.Observable<any> {
51
+ getEventStream() {
73
52
  return this._eventStream;
74
53
  }
75
-
76
- getStopper(): Kefir.Observable<null> {
54
+ getStopper() {
77
55
  return this._stopper;
78
56
  }
79
-
80
- addMessageViewDriver(messageView: InboxMessageView) {
57
+ addMessageViewDriver(messageView) {
81
58
  this._messageViews.push(messageView);
82
- this._eventStream.plug(
83
- messageView
84
- .getEventStream()
85
- .filter((event) => event.eventName === 'contactHover')
86
- );
87
- messageView
88
- .getStopper()
89
- .takeUntilBy(this._stopper)
90
- .onValue(() => {
91
- this._messageViews = this._messageViews.filter(
92
- (m) => m !== messageView
93
- );
94
- });
59
+ this._eventStream.plug(messageView.getEventStream().filter(event => event.eventName === 'contactHover'));
60
+ messageView.getStopper().takeUntilBy(this._stopper).onValue(() => {
61
+ this._messageViews = this._messageViews.filter(m => m !== messageView);
62
+ });
95
63
  this._receivedMessageView.destroy();
96
64
  }
97
-
98
65
  getMessageViewDrivers() {
99
66
  return this._messageViews;
100
67
  }
101
-
102
- getToolbarElement(): HTMLElement {
68
+ getToolbarElement() {
103
69
  if (!this._p.elements.toolbar) {
104
70
  throw new Error('Failed to find toolbar');
105
71
  }
106
72
  return this._p.elements.toolbar;
107
73
  }
108
-
109
- getSubject(): string {
74
+ getSubject() {
110
75
  if (!this._p.elements.heading) {
111
76
  throw new Error('Failed to find subject');
112
77
  }
113
78
  return this._p.elements.heading.textContent;
114
79
  }
115
-
116
- getThreadID(): string {
117
- const { inboxThreadId } = this._p.attributes;
80
+ getThreadID() {
81
+ const {
82
+ inboxThreadId
83
+ } = this._p.attributes;
118
84
  if (!inboxThreadId) {
119
85
  throw new Error('Failed to find thread id');
120
86
  }
121
87
  if (/^msg-a:/.test(inboxThreadId)) {
122
88
  // eslint-disable-next-line no-console
123
- console.warn(
124
- 'ThreadView.getThreadID() returned an incorrect thread ID. This method will be deprecated soon. Use getThreadIDAsync() instead which does not have this problem.'
125
- );
89
+ console.warn('ThreadView.getThreadID() returned an incorrect thread ID. This method will be deprecated soon. Use getThreadIDAsync() instead which does not have this problem.');
126
90
  }
127
91
  const m = /\d+$/.exec(inboxThreadId);
128
92
  if (!m) throw new Error('Should not happen');
129
- return new BigNumber(m[0]).toString(16);
93
+ return new _bignumber.default(m[0]).toString(16);
130
94
  }
131
-
132
- async getThreadIDAsync(): Promise<string> {
133
- const { inboxThreadId } = this._p.attributes;
95
+ async getThreadIDAsync() {
96
+ const {
97
+ inboxThreadId
98
+ } = this._p.attributes;
134
99
  if (!inboxThreadId) {
135
100
  throw new Error('Failed to find message id');
136
101
  }
@@ -140,35 +105,21 @@ class InboxThreadView {
140
105
  const firstMessage = this._messageViews[0];
141
106
  if (!firstMessage) throw new Error('Should not happen');
142
107
  const messageId = await firstMessage.getMessageIDAsync();
143
-
144
108
  return await this._driver.getThreadIdFromMessageId(messageId);
145
109
  } else {
146
110
  const m = /\d+$/.exec(inboxThreadId);
147
111
  if (!m) throw new Error('Should not happen');
148
- return new BigNumber(m[0]).toString(16);
112
+ return new _bignumber.default(m[0]).toString(16);
149
113
  }
150
114
  }
151
-
152
- registerHiddenCustomMessageNoticeProvider(
153
- provider: (
154
- numberCustomMessagesHidden: number,
155
- numberNativeMessagesHidden: ?number,
156
- unmountPromise: Promise<void>
157
- ) => HTMLElement
158
- ) {
115
+ registerHiddenCustomMessageNoticeProvider(provider) {
159
116
  throw new Error('not supported');
160
117
  }
161
-
162
- addCustomMessage(
163
- descriptorStream: Kefir.Observable<CustomMessageDescriptor>
164
- ): CustomMessageView {
118
+ addCustomMessage(descriptorStream) {
165
119
  throw new Error('not supported');
166
120
  }
167
-
168
- addSidebarContentPanel(descriptor: Kefir.Observable<Object>) {
169
- const panel = this._driver
170
- .getAppSidebarView()
171
- .addSidebarContentPanel(descriptor);
121
+ addSidebarContentPanel(descriptor) {
122
+ const panel = this._driver.getAppSidebarView().addSidebarContentPanel(descriptor);
172
123
  this._sidebarPanels.add(panel);
173
124
  panel.getStopper().onValue(() => {
174
125
  this._sidebarPanels.delete(panel);
@@ -176,133 +127,94 @@ class InboxThreadView {
176
127
  this._stopper.takeUntilBy(panel.getStopper()).onValue(() => {
177
128
  panel.remove();
178
129
  });
179
-
180
- descriptor
181
- .takeUntilBy(this._stopper)
182
- .takeUntilBy(panel.getStopper())
183
- .take(1)
184
- .onValue((descriptor) => {
185
- const { stickyHeading } = this._p.elements;
186
- if (!stickyHeading) return;
187
-
188
- let iconArea = stickyHeading.querySelector(
189
- '.' + idMap('sidebar_iconArea')
190
- );
191
- if (!iconArea) {
192
- const _iconArea = (iconArea = document.createElement('div'));
193
- iconArea.className = idMap('sidebar_iconArea');
194
-
195
- this._driver
196
- .getAppSidebarView()
197
- .getOpenOrOpeningStream()
198
- .takeUntilBy(this._stopper)
199
- .onValue((open) => {
200
- _iconArea.style.display = open ? 'none' : '';
201
- });
202
-
203
- stickyHeading.appendChild(iconArea);
204
- }
205
-
206
- const appName =
207
- descriptor.appName ||
208
- this._driver.getOpts().appName ||
209
- descriptor.title;
210
- const appIconUrl =
211
- descriptor.appIconUrl ||
212
- this._driver.getOpts().appIconUrl ||
213
- descriptor.iconUrl;
214
-
215
- // If there's an existing button for the app, then just increment its
216
- // data-count attribute instead of adding a new button.
217
- const existingButtonContainer = find(
218
- iconArea.querySelectorAll('.' + idMap('sidebar_button_container')),
219
- (el) => {
220
- const button = el.querySelector('button');
221
- if (!button || button.title !== appName) return false;
222
- const img = button.querySelector('img');
223
- if (!img || img.src !== appIconUrl) return false;
224
- return true;
225
- }
226
- );
227
-
228
- let container;
229
- if (existingButtonContainer) {
230
- const currentCount =
231
- Number(existingButtonContainer.getAttribute('data-count')) || 1;
232
- existingButtonContainer.setAttribute('data-count', currentCount + 1);
233
- container = existingButtonContainer;
234
- } else {
235
- container = document.createElement('div');
236
- container.className = idMap('sidebar_button_container');
237
- container.innerHTML = autoHtml`
130
+ descriptor.takeUntilBy(this._stopper).takeUntilBy(panel.getStopper()).take(1).onValue(descriptor => {
131
+ const {
132
+ stickyHeading
133
+ } = this._p.elements;
134
+ if (!stickyHeading) return;
135
+ let iconArea = stickyHeading.querySelector('.' + (0, _idMap.default)('sidebar_iconArea'));
136
+ if (!iconArea) {
137
+ const _iconArea = iconArea = document.createElement('div');
138
+ iconArea.className = (0, _idMap.default)('sidebar_iconArea');
139
+ this._driver.getAppSidebarView().getOpenOrOpeningStream().takeUntilBy(this._stopper).onValue(open => {
140
+ _iconArea.style.display = open ? 'none' : '';
141
+ });
142
+ stickyHeading.appendChild(iconArea);
143
+ }
144
+ const appName = descriptor.appName || this._driver.getOpts().appName || descriptor.title;
145
+ const appIconUrl = descriptor.appIconUrl || this._driver.getOpts().appIconUrl || descriptor.iconUrl;
146
+
147
+ // If there's an existing button for the app, then just increment its
148
+ // data-count attribute instead of adding a new button.
149
+ const existingButtonContainer = (0, _find.default)(iconArea.querySelectorAll('.' + (0, _idMap.default)('sidebar_button_container')), el => {
150
+ const button = el.querySelector('button');
151
+ if (!button || button.title !== appName) return false;
152
+ const img = button.querySelector('img');
153
+ if (!img || img.src !== appIconUrl) return false;
154
+ return true;
155
+ });
156
+ let container;
157
+ if (existingButtonContainer) {
158
+ const currentCount = Number(existingButtonContainer.getAttribute('data-count')) || 1;
159
+ existingButtonContainer.setAttribute('data-count', currentCount + 1);
160
+ container = existingButtonContainer;
161
+ } else {
162
+ container = document.createElement('div');
163
+ container.className = (0, _idMap.default)('sidebar_button_container');
164
+ container.innerHTML = (0, _autoHtml.default)`
238
165
  <button class="inboxsdk__button_icon" type="button" title="${appName}">
239
166
  <img class="inboxsdk__button_iconImg" src="${appIconUrl}">
240
167
  </button>
241
168
  `;
242
- querySelector(container, 'button').addEventListener(
243
- 'click',
244
- (event: MouseEvent) => {
245
- event.stopPropagation();
246
- this._driver.getAppSidebarView().open();
247
- panel.scrollIntoView();
248
- },
249
- true
250
- );
251
- iconArea.appendChild(container);
169
+ (0, _querySelectorOrFail.default)(container, 'button').addEventListener('click', event => {
170
+ event.stopPropagation();
171
+ this._driver.getAppSidebarView().open();
172
+ panel.scrollIntoView();
173
+ }, true);
174
+ iconArea.appendChild(container);
175
+ }
176
+ panel.getStopper().onValue(() => {
177
+ const currentCount = Number(container.getAttribute('data-count'));
178
+ if (currentCount <= 1) {
179
+ container.remove();
180
+ } else if (currentCount === 2) {
181
+ container.removeAttribute('data-count');
182
+ } else {
183
+ container.setAttribute('data-count', String(currentCount - 1));
252
184
  }
253
-
254
- panel.getStopper().onValue(() => {
255
- const currentCount = Number(container.getAttribute('data-count'));
256
- if (currentCount <= 1) {
257
- container.remove();
258
- } else if (currentCount === 2) {
259
- container.removeAttribute('data-count');
260
- } else {
261
- container.setAttribute('data-count', String(currentCount - 1));
262
- }
263
- });
264
185
  });
265
-
186
+ });
266
187
  return panel;
267
188
  }
268
-
269
189
  removePanels() {
270
- this._sidebarPanels.forEach((panel) => {
190
+ this._sidebarPanels.forEach(panel => {
271
191
  panel.remove();
272
192
  });
273
193
  }
274
-
275
- addNoticeBar(): SimpleElementView {
194
+ addNoticeBar() {
276
195
  const el = document.createElement('div');
277
- el.className = idMap('thread_noticeBar');
278
-
279
- const { heading } = this._p.elements;
196
+ el.className = (0, _idMap.default)('thread_noticeBar');
197
+ const {
198
+ heading
199
+ } = this._p.elements;
280
200
  if (!heading) {
281
201
  throw new Error('Failed to find subject');
282
202
  }
283
-
284
203
  heading.insertAdjacentElement('afterend', el);
285
- const view = new SimpleElementView(el);
286
-
287
- this._stopper
288
- .takeUntilBy(Kefir.fromEvents(view, 'destroy'))
289
- .onValue(() => view.destroy());
290
-
204
+ const view = new _SimpleElementView.default(el);
205
+ this._stopper.takeUntilBy(_kefir.default.fromEvents(view, 'destroy')).onValue(() => view.destroy());
291
206
  return view;
292
207
  }
293
-
294
- addLabel(): SimpleElementView {
208
+ addLabel() {
295
209
  throw new Error('not supported');
296
210
  }
297
-
298
211
  getReadyStream() {
299
212
  return this._ready;
300
213
  }
301
-
302
214
  destroy() {
303
215
  this._driver.getThreadViewElementsMap().delete(this._element);
304
216
  this._eventStream.end();
305
217
  }
306
218
  }
307
-
308
- export default defn(module, InboxThreadView);
219
+ var _default = (0, _ud.defn)(module, InboxThreadView);
220
+ exports.default = _default;