@inboxsdk/core 0.2.28-alpha.4 → 0.2.28-alpha.6

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 (264) 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/inboxsdk.d.ts +2 -0
  12. package/src/injected-js/gmail/modify-suggestions.test.js +8 -9
  13. package/src/injected-js/gmail/setup-gmail-interceptor.js +340 -579
  14. package/src/injected-js/gmail/sync-compose-request-processor.test.js +39 -49
  15. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +20 -33
  16. package/src/injected-js/gmail/thread-identifier/index.js +57 -93
  17. package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +22 -31
  18. package/src/injected-js/gmail/thread-identifier/thread-row-parser.test.js +12 -28
  19. package/src/injected-js/inbox/setupAjaxInterceptor.js +64 -121
  20. package/src/injected-js/inbox/setupClickAndGetNewIframeSrc.js +53 -66
  21. package/src/injected-js/inbox/setupComposeViewDraftIDFinder.js +20 -36
  22. package/src/injected-js/inbox/setupInboxFakeWindowResizeListener.js +13 -13
  23. package/src/injected-js/main.js +11 -24
  24. package/src/injected-js/message-metadata-holder.js +52 -82
  25. package/src/injected-js/setup-data-exposer.js +89 -148
  26. package/src/injected-js/setup-error-silencer.js +21 -21
  27. package/src/injected-js/setup-event-reemitter.js +30 -22
  28. package/src/injected-js/setupInboxCustomViewLinkFixer.js +24 -29
  29. package/src/injected-js/setupPushStateListener.js +18 -11
  30. package/src/injected-js/xhr-helper.js +62 -65
  31. package/src/injected-js/xhr-proxy-factory.js +195 -445
  32. package/src/injected-js/xhr-proxy-factory.test.js +824 -991
  33. package/src/platform-implementation-js/constants/router.js +14 -9
  34. package/src/platform-implementation-js/constants/toolbars.js +8 -3
  35. package/src/platform-implementation-js/dom-driver/gmail/custom-style.js +13 -13
  36. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +115 -136
  37. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +13 -14
  38. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +27 -48
  39. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +31 -42
  40. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +30 -40
  41. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +10 -18
  42. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +21 -28
  43. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +33 -45
  44. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +31 -49
  45. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +58 -65
  46. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +40 -124
  47. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +17 -22
  48. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.test.js +10 -11
  49. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +44 -80
  50. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +19 -26
  51. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +71 -147
  52. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +91 -148
  53. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +150 -166
  54. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.test.js +70 -120
  55. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +15 -15
  56. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +44 -67
  57. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +230 -379
  58. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.test.js +121 -307
  59. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +17 -24
  60. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +41 -49
  61. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +30 -40
  62. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +28 -60
  63. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +61 -133
  64. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +30 -42
  65. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.test.js +52 -46
  66. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +354 -694
  67. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +77 -93
  68. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +35 -82
  69. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.test.js +44 -94
  70. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +12 -19
  71. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +17 -29
  72. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.js +26 -26
  73. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +391 -797
  74. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +7 -9
  75. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +60 -109
  76. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +95 -135
  77. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +103 -211
  78. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.test.js +61 -61
  79. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +17 -17
  80. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +188 -541
  81. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +67 -135
  82. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +27 -49
  83. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-inner-sidebar.js +7 -13
  84. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-outer-sidebar.js +9 -22
  85. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +36 -63
  86. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +38 -113
  87. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +11 -16
  88. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +11 -17
  89. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +8 -11
  90. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +27 -47
  91. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +11 -24
  92. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +59 -111
  93. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +15 -14
  94. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +11 -17
  95. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +18 -24
  96. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +19 -23
  97. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +11 -19
  98. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +141 -376
  99. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +17 -28
  100. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +34 -70
  101. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +10 -17
  102. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +83 -137
  103. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +10 -19
  104. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +632 -1190
  105. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +29 -38
  106. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +327 -617
  107. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +26 -49
  108. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +188 -380
  109. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +104 -194
  110. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +382 -811
  111. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view/add-icon-area.js +34 -58
  112. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.js +330 -581
  113. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.test.js +123 -277
  114. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +15 -35
  115. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +216 -571
  116. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +152 -336
  117. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +87 -211
  118. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +10 -11
  119. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +20 -29
  120. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +41 -76
  121. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +45 -99
  122. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +76 -128
  123. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +128 -319
  124. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +45 -78
  125. package/src/platform-implementation-js/dom-driver/inbox/__mocks__/getSidebarClassnames.js +8 -4
  126. package/src/platform-implementation-js/dom-driver/inbox/addNavItem.js +36 -54
  127. package/src/platform-implementation-js/dom-driver/inbox/addRecipientRow.js +35 -53
  128. package/src/platform-implementation-js/dom-driver/inbox/createLink.js +13 -15
  129. package/src/platform-implementation-js/dom-driver/inbox/createLink.test.js +15 -18
  130. package/src/platform-implementation-js/dom-driver/inbox/custom-style.js +14 -13
  131. package/src/platform-implementation-js/dom-driver/inbox/detection/appToolbarLocation/parser.js +14 -20
  132. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentCard/parser.js +14 -13
  133. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentOverlay/parser.js +35 -67
  134. package/src/platform-implementation-js/dom-driver/inbox/detection/chatSidebar/parser.js +16 -18
  135. package/src/platform-implementation-js/dom-driver/inbox/detection/compose/parser.js +68 -185
  136. package/src/platform-implementation-js/dom-driver/inbox/detection/message/parser.js +28 -56
  137. package/src/platform-implementation-js/dom-driver/inbox/detection/nativeDrawer/parser.js +12 -10
  138. package/src/platform-implementation-js/dom-driver/inbox/detection/searchBar/parser.js +16 -16
  139. package/src/platform-implementation-js/dom-driver/inbox/detection/thread/parser.js +24 -35
  140. package/src/platform-implementation-js/dom-driver/inbox/detection/thread-row/parser.js +37 -89
  141. package/src/platform-implementation-js/dom-driver/inbox/getComposeViewDriverLiveSet.js +56 -78
  142. package/src/platform-implementation-js/dom-driver/inbox/getInboxMessageIdForInboxThreadId.js +26 -32
  143. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.js +52 -109
  144. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.test.js +7 -8
  145. package/src/platform-implementation-js/dom-driver/inbox/gotoView.js +16 -20
  146. package/src/platform-implementation-js/dom-driver/inbox/gotoView.test.js +15 -16
  147. package/src/platform-implementation-js/dom-driver/inbox/inbox-butter-bar-driver.js +75 -83
  148. package/src/platform-implementation-js/dom-driver/inbox/inbox-driver.js +530 -822
  149. package/src/platform-implementation-js/dom-driver/inbox/inbox-page-communicator.js +48 -61
  150. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.js +9 -12
  151. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.test.js +12 -19
  152. package/src/platform-implementation-js/dom-driver/inbox/makePageParserTree.js +24 -33
  153. package/src/platform-implementation-js/dom-driver/inbox/pageParserOptions.js +201 -388
  154. package/src/platform-implementation-js/dom-driver/inbox/registerSearchSuggestionsProvider.js +249 -265
  155. package/src/platform-implementation-js/dom-driver/inbox/setupCustomAutocompleteSelectionHandling.js +84 -152
  156. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.js +55 -67
  157. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.test.js +43 -65
  158. package/src/platform-implementation-js/dom-driver/inbox/views/InboxLabelView.js +31 -56
  159. package/src/platform-implementation-js/dom-driver/inbox/views/InboxMoleViewDriver.js +191 -294
  160. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarButtonView.js +32 -45
  161. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarView.js +21 -39
  162. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-sidebar-view.js +153 -240
  163. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-button-view.js +75 -150
  164. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-tooltip-view.js +20 -37
  165. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-card-view.js +60 -114
  166. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-overlay-view.js +47 -65
  167. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +41 -52
  168. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-chat-sidebar-view.js +27 -36
  169. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-button-view.js +52 -80
  170. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-view.js +465 -649
  171. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.js +37 -58
  172. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.test.js +14 -26
  173. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +118 -235
  174. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dropdown-view.js +10 -11
  175. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dummy-route-view.js +28 -46
  176. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-message-view.js +131 -202
  177. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-modal-view.js +40 -80
  178. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-route-view.js +35 -61
  179. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-row-view.js +124 -221
  180. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.js +125 -213
  181. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.test.js +104 -126
  182. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-tooltip-view.js +36 -51
  183. package/src/platform-implementation-js/dom-driver/inbox/views/inboxNavItemView.js +158 -297
  184. package/src/platform-implementation-js/dom-driver/inbox/waitForAnimationClickBlockerGone.js +21 -35
  185. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +24 -43
  186. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +39 -68
  187. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +14 -19
  188. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +27 -35
  189. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +16 -22
  190. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +14 -14
  191. package/src/platform-implementation-js/driver-common/inboxAjax.js +12 -7
  192. package/src/platform-implementation-js/driver-common/requestGmailThread.js +19 -20
  193. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +197 -306
  194. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +113 -161
  195. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +1 -114
  196. package/src/platform-implementation-js/driver-interfaces/driver.js +1 -131
  197. package/src/platform-implementation-js/driver-interfaces/message-view-driver.js +4 -48
  198. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +1 -29
  199. package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +1 -32
  200. package/src/platform-implementation-js/driver-interfaces/thread-row-view-driver.js +1 -11
  201. package/src/platform-implementation-js/lib/array-to-lifetimes.js +43 -41
  202. package/src/platform-implementation-js/lib/array-to-lifetimes.test.js +139 -155
  203. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +19 -38
  204. package/src/platform-implementation-js/lib/css-selector-escape.js +7 -3
  205. package/src/platform-implementation-js/lib/dom/element-view-mapper.js +8 -11
  206. package/src/platform-implementation-js/lib/dom/get-selection.js +23 -52
  207. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +69 -101
  208. package/src/platform-implementation-js/lib/dom/is-node-in-range.js +8 -10
  209. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +15 -17
  210. package/src/platform-implementation-js/lib/dom/querySelectorOne.js +8 -11
  211. package/src/platform-implementation-js/lib/dom/set-css.js +7 -3
  212. package/src/platform-implementation-js/lib/dom/set-value-and-dispatch-event.js +9 -11
  213. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +32 -33
  214. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.test.js +23 -26
  215. package/src/platform-implementation-js/lib/handle-compose-link-chips.js +86 -149
  216. package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +42 -57
  217. package/src/platform-implementation-js/lib/make-revocable-function.js +19 -21
  218. package/src/platform-implementation-js/lib/make-revocable-function.test.js +20 -22
  219. package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +15 -17
  220. package/src/platform-implementation-js/lib/parseParamsFromRouteID.test.js +9 -18
  221. package/src/platform-implementation-js/lib/populateRouteID.js +8 -9
  222. package/src/platform-implementation-js/lib/populateRouteID.test.js +20 -19
  223. package/src/platform-implementation-js/lib/react/ElementContainer.js +23 -20
  224. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.js +10 -9
  225. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.test.js +13 -20
  226. package/src/platform-implementation-js/lib/routeIDmatchesHash.js +13 -18
  227. package/src/platform-implementation-js/lib/routeIDmatchesHash.test.js +11 -17
  228. package/src/platform-implementation-js/lib/shared-style.js +14 -13
  229. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +18 -17
  230. package/src/platform-implementation-js/lib/toLiveSet.js +17 -15
  231. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +6 -5
  232. package/src/platform-implementation-js/main.js +9 -24
  233. package/src/platform-implementation-js/namespaces/compose.js +37 -60
  234. package/src/platform-implementation-js/namespaces/conversations.js +52 -124
  235. package/src/platform-implementation-js/namespaces/global.js +27 -39
  236. package/src/platform-implementation-js/namespaces/keyboard.js +29 -33
  237. package/src/platform-implementation-js/namespaces/lists.js +25 -31
  238. package/src/platform-implementation-js/namespaces/modal.js +34 -28
  239. package/src/platform-implementation-js/namespaces/nav-menu.js +30 -45
  240. package/src/platform-implementation-js/namespaces/router.js +70 -137
  241. package/src/platform-implementation-js/namespaces/search.js +19 -17
  242. package/src/platform-implementation-js/namespaces/toolbars.js +71 -117
  243. package/src/platform-implementation-js/namespaces/user.js +36 -37
  244. package/src/platform-implementation-js/namespaces/widgets.js +54 -61
  245. package/src/platform-implementation-js/platform-implementation.js +98 -229
  246. package/src/platform-implementation-js/views/app-toolbar-button-view.js +26 -47
  247. package/src/platform-implementation-js/views/collapsible-section-view.js +66 -63
  248. package/src/platform-implementation-js/views/content-panel-view.js +28 -30
  249. package/src/platform-implementation-js/views/conversations/attachment-card-view.js +21 -44
  250. package/src/platform-implementation-js/views/conversations/custom-message-view.js +44 -104
  251. package/src/platform-implementation-js/views/conversations/message-view.js +131 -202
  252. package/src/platform-implementation-js/views/conversations/thread-view.js +75 -127
  253. package/src/platform-implementation-js/views/native-nav-item-view.js +32 -65
  254. package/src/platform-implementation-js/views/nav-item-view.js +51 -115
  255. package/src/platform-implementation-js/views/route-view/custom-route-view.js +25 -20
  256. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +18 -18
  257. package/src/platform-implementation-js/views/route-view/list-route-view.js +30 -52
  258. package/src/platform-implementation-js/views/route-view/route-view.js +24 -35
  259. package/src/platform-implementation-js/views/section-view.js +60 -52
  260. package/src/platform-implementation-js/views/thread-row-view.js +49 -74
  261. package/src/platform-implementation-js/widgets/drawer-view.js +29 -36
  262. package/src/platform-implementation-js/widgets/modal-view.js +39 -68
  263. package/src/platform-implementation-js/widgets/mole-view.js +22 -22
  264. package/src/platform-implementation-js/widgets/top-message-bar-view.js +13 -10
@@ -1,73 +1,55 @@
1
- /* @flow */
2
-
3
- import includes from 'lodash/includes';
4
- import { defn } from 'ud';
5
- import autoHtml from 'auto-html';
6
- import Kefir from 'kefir';
7
- import kefirBus from 'kefir-bus';
8
- import kefirStopper from 'kefir-stopper';
9
- import findParent from '../../../../common/find-parent';
10
- import querySelector from '../../../lib/dom/querySelectorOrFail';
11
- import type InboxDriver from '../inbox-driver';
12
- import type InboxMessageView from './inbox-message-view';
13
- import type InboxAttachmentOverlayView from './inbox-attachment-overlay-view';
14
-
15
- import type { Parsed } from '../detection/attachmentCard/parser';
16
-
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 _includes = _interopRequireDefault(require("lodash/includes"));
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 _findParent = _interopRequireDefault(require("../../../../common/find-parent"));
16
+ var _querySelectorOrFail = _interopRequireDefault(require("../../../lib/dom/querySelectorOrFail"));
17
17
  class InboxAttachmentCardView {
18
- _stopper = kefirStopper();
19
- _previewClicks = Kefir.pool();
20
- _element: HTMLElement;
21
- _driver: InboxDriver;
22
- _type: string;
23
- _p: ?Parsed; // This is only present for native cards
24
- _messageViewDriver: ?InboxMessageView;
25
- _addedButtonDescriptors: Object[] = [];
26
- _overlayView: ?InboxAttachmentOverlayView = null;
27
-
28
- constructor(options: Object, driver: InboxDriver) {
18
+ constructor(options, driver) {
19
+ (0, _defineProperty2.default)(this, "_stopper", (0, _kefirStopper.default)());
20
+ (0, _defineProperty2.default)(this, "_previewClicks", _kefir.default.pool());
21
+ (0, _defineProperty2.default)(this, "_addedButtonDescriptors", []);
22
+ (0, _defineProperty2.default)(this, "_overlayView", null);
29
23
  this._driver = driver;
30
24
  if (options.element) {
31
25
  this._element = options.element;
32
26
  this._p = options.parsed;
33
27
  this._type = options.parsed.attributes.type;
34
-
35
- Kefir.merge([
36
- Kefir.fromEvents(this._element, 'click'),
37
- Kefir.fromEvents(this._element, 'keydown'),
38
- ])
39
- .takeUntilBy(this._stopper)
40
- .onValue(() => {
41
- this._driver.setLastInteractedAttachmentCardView(this);
42
- });
28
+ _kefir.default.merge([_kefir.default.fromEvents(this._element, 'click'), _kefir.default.fromEvents(this._element, 'keydown')]).takeUntilBy(this._stopper).onValue(() => {
29
+ this._driver.setLastInteractedAttachmentCardView(this);
30
+ });
43
31
  } else {
44
32
  this._type = 'CUSTOM';
45
33
  this._createNewElement(options);
46
34
  }
47
-
48
35
  this._messageViewDriver = this._findMessageView();
49
36
  if (this._messageViewDriver) {
50
37
  this._messageViewDriver.addAttachmentCardViewDriver(this);
51
38
  }
52
39
  }
53
-
54
40
  destroy() {
55
41
  if (!this._p) {
56
42
  this._element.remove();
57
43
  }
58
44
  this._stopper.destroy();
59
45
  }
60
-
61
- _findMessageView(): ?InboxMessageView {
46
+ _findMessageView() {
62
47
  const map = this._driver.getMessageViewElementsMap();
63
- const messageViewElement = findParent(this._element, (el) =>
64
- map.has((el: any))
65
- );
48
+ const messageViewElement = (0, _findParent.default)(this._element, el => map.has(el));
66
49
  if (!messageViewElement) return null;
67
50
  return map.get(messageViewElement);
68
51
  }
69
-
70
- _createNewElement(options: Object) {
52
+ _createNewElement(options) {
71
53
  if (options.previewUrl) {
72
54
  this._element = document.createElement('a');
73
55
  this._element.href = options.previewUrl;
@@ -76,12 +58,10 @@ class InboxAttachmentCardView {
76
58
  this._element.tabIndex = 0;
77
59
  }
78
60
  this._element.title = options.title;
79
-
80
- const setupInnerHtml = (options) => {
61
+ const setupInnerHtml = options => {
81
62
  if (options.previewThumbnailUrl) {
82
- this._element.className =
83
- 'inboxsdk__attachment_card inboxsdk__attachment_card_with_preview';
84
- this._element.innerHTML = autoHtml`
63
+ this._element.className = 'inboxsdk__attachment_card inboxsdk__attachment_card_with_preview';
64
+ this._element.innerHTML = (0, _autoHtml.default)`
85
65
  <img alt="" aria-hidden="true"
86
66
  style="width: 100%"
87
67
  src="${options.previewThumbnailUrl}"
@@ -92,20 +72,17 @@ class InboxAttachmentCardView {
92
72
  </div>
93
73
  `;
94
74
  if (options.failoverPreviewIconUrl) {
95
- Kefir.fromEvents(querySelector(this._element, 'img'), 'error')
96
- .take(1)
97
- .takeUntilBy(this._stopper)
98
- .onValue(() => {
99
- setupInnerHtml({
100
- ...options,
101
- previewThumbnailUrl: null,
102
- iconThumbnailUrl: options.failoverPreviewIconUrl,
103
- });
75
+ _kefir.default.fromEvents((0, _querySelectorOrFail.default)(this._element, 'img'), 'error').take(1).takeUntilBy(this._stopper).onValue(() => {
76
+ setupInnerHtml({
77
+ ...options,
78
+ previewThumbnailUrl: null,
79
+ iconThumbnailUrl: options.failoverPreviewIconUrl
104
80
  });
81
+ });
105
82
  }
106
83
  } else {
107
84
  this._element.className = 'inboxsdk__attachment_card';
108
- this._element.innerHTML = autoHtml`
85
+ this._element.innerHTML = (0, _autoHtml.default)`
109
86
  <div class="inboxsdk__attachment_card_nohover">
110
87
  <div class="inboxsdk__attachment_card_title">${options.title}</div>
111
88
  <div class="inboxsdk__attachment_card_description">
@@ -119,62 +96,43 @@ class InboxAttachmentCardView {
119
96
  </div>
120
97
  `;
121
98
  }
122
-
123
- options.buttons.forEach((button) => {
99
+ options.buttons.forEach(button => {
124
100
  this.addButton(button);
125
101
  });
126
102
  };
127
103
  setupInnerHtml(options);
128
- this._previewClicks.plug(
129
- Kefir.merge([
130
- Kefir.fromEvents(this._element, 'click'),
131
- Kefir.fromEvents(this._element, 'keypress').filter((e) =>
132
- includes([32 /*space*/, 13 /*enter*/], e.which)
133
- ),
134
- ])
135
- );
136
-
104
+ this._previewClicks.plug(_kefir.default.merge([_kefir.default.fromEvents(this._element, 'click'), _kefir.default.fromEvents(this._element, 'keypress').filter(e => (0, _includes.default)([32 /*space*/, 13 /*enter*/], e.which))]));
137
105
  options.container.appendChild(this._element);
138
106
  }
139
-
140
107
  getElement() {
141
108
  return this._element;
142
109
  }
143
-
144
110
  getMessageViewDriver() {
145
111
  return this._messageViewDriver;
146
112
  }
147
-
148
- getStopper(): Kefir.Observable<null> {
113
+ getStopper() {
149
114
  return this._stopper;
150
115
  }
151
-
152
- getPreviewClicks(): Kefir.Observable<Event> {
116
+ getPreviewClicks() {
153
117
  return this._previewClicks.takeUntilBy(this._stopper);
154
118
  }
155
-
156
- getAttachmentType(): string {
119
+ getAttachmentType() {
157
120
  return this._type;
158
121
  }
159
-
160
122
  getAddedButtonDescriptors() {
161
123
  return this._addedButtonDescriptors;
162
124
  }
163
-
164
- addButton(button: Object): void {
125
+ addButton(button) {
165
126
  this._addedButtonDescriptors.push(button);
166
127
  if (!this._p) {
167
128
  // artificial SDK-added card. Native cards don't have their added buttons
168
129
  // processed here. They're added in InboxAttachmentOverlayView.
169
- const buttonContainer = querySelector(
170
- this._element,
171
- '.inboxsdk__attachment_card_buttons'
172
- );
130
+ const buttonContainer = (0, _querySelectorOrFail.default)(this._element, '.inboxsdk__attachment_card_buttons');
173
131
  const el = document.createElement('button');
174
132
  el.className = 'inboxsdk__attachment_card_button';
175
133
  if (button.downloadUrl) {
176
134
  el.setAttribute('data-inboxsdk-download-url', button.downloadUrl);
177
- (el: any).addEventListener('click', (event: MouseEvent) => {
135
+ el.addEventListener('click', event => {
178
136
  event.stopPropagation();
179
137
  event.preventDefault();
180
138
  let prevented = false;
@@ -182,7 +140,7 @@ class InboxAttachmentCardView {
182
140
  button.onClick({
183
141
  preventDefault() {
184
142
  prevented = true;
185
- },
143
+ }
186
144
  });
187
145
  }
188
146
  if (prevented) return;
@@ -191,17 +149,13 @@ class InboxAttachmentCardView {
191
149
  if (button.downloadFilename) {
192
150
  downloadLink.download = button.downloadFilename;
193
151
  }
194
- downloadLink.addEventListener(
195
- 'click',
196
- function (e: MouseEvent) {
197
- e.stopPropagation();
198
- },
199
- true
200
- );
152
+ downloadLink.addEventListener('click', function (e) {
153
+ e.stopPropagation();
154
+ }, true);
201
155
  if (button.openInNewTab) {
202
156
  downloadLink.setAttribute('target', '_blank');
203
157
  }
204
- ((document.body: any): HTMLElement).appendChild(downloadLink);
158
+ document.body.appendChild(downloadLink);
205
159
  downloadLink.click();
206
160
  downloadLink.remove();
207
161
  });
@@ -209,20 +163,18 @@ class InboxAttachmentCardView {
209
163
  <div style="background: no-repeat url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAYElEQVQ4y+2UMQ6AQAgEwfhQnnJP4adjc4UxB0ehhXqbULE7BRAUkLu1yQP6OXQveEab1DXTD0O9b53kIui+QReicnJ5lM2gArQA2LLcDCqAXYA2y1SgZ7BV/Lr+6TugB0K2GxxDXjEZAAAAAElFTkSuQmCC)"></div>
210
164
  `;
211
165
  } else {
212
- el.addEventListener('click', (event: MouseEvent) => {
166
+ el.addEventListener('click', event => {
213
167
  event.stopPropagation();
214
168
  event.preventDefault();
215
169
  if (button.onClick) {
216
170
  button.onClick({
217
171
  getDownloadURL() {
218
- throw new Error(
219
- 'not implemented for artificial sdk-added cardViews!'
220
- );
221
- },
172
+ throw new Error('not implemented for artificial sdk-added cardViews!');
173
+ }
222
174
  });
223
175
  }
224
176
  });
225
- el.innerHTML = autoHtml`
177
+ el.innerHTML = (0, _autoHtml.default)`
226
178
  <img src="${button.iconUrl}">
227
179
  `;
228
180
  el.title = button.tooltip;
@@ -230,23 +182,17 @@ class InboxAttachmentCardView {
230
182
  buttonContainer.appendChild(el);
231
183
  }
232
184
  }
233
-
234
- getTitle(): string {
185
+ getTitle() {
235
186
  return this._element.title;
236
187
  }
237
-
238
- async getDownloadURL(): Promise<?string> {
188
+ async getDownloadURL() {
239
189
  const overlayView = this._overlayView;
240
- if (!overlayView)
241
- throw new Error(
242
- 'This method only works during a button onClick callback in Inbox'
243
- );
190
+ if (!overlayView) throw new Error('This method only works during a button onClick callback in Inbox');
244
191
  return overlayView.getDownloadURL();
245
192
  }
246
-
247
- setOverlay(overlayView: ?InboxAttachmentOverlayView) {
193
+ setOverlay(overlayView) {
248
194
  this._overlayView = overlayView;
249
195
  }
250
196
  }
251
-
252
- export default defn(module, InboxAttachmentCardView);
197
+ var _default = (0, _ud.defn)(module, InboxAttachmentCardView);
198
+ exports.default = _default;
@@ -1,108 +1,90 @@
1
- /* @flow */
2
-
3
- import { defn } from 'ud';
4
- import Kefir from 'kefir';
5
- import kefirStopper from 'kefir-stopper';
6
- import autoHtml from 'auto-html';
7
-
8
- import sharedStyle from '../../../lib/shared-style';
9
- import customStyle from '../../../dom-driver/inbox/custom-style';
10
- import { simulateClick } from '../../../lib/dom/simulate-mouse-event';
11
- import ajax from '../../../../common/ajax';
12
-
13
- import type InboxDriver from '../inbox-driver';
14
- import type { Parsed } from '../detection/attachmentOverlay/parser';
15
- import type InboxAttachmentCardView from './inbox-attachment-card-view';
1
+ "use strict";
16
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _ud = require("ud");
10
+ var _kefir = _interopRequireDefault(require("kefir"));
11
+ var _kefirStopper = _interopRequireDefault(require("kefir-stopper"));
12
+ var _autoHtml = _interopRequireDefault(require("auto-html"));
13
+ var _sharedStyle = _interopRequireDefault(require("../../../lib/shared-style"));
14
+ var _customStyle = _interopRequireDefault(require("../../../dom-driver/inbox/custom-style"));
15
+ var _simulateMouseEvent = require("../../../lib/dom/simulate-mouse-event");
16
+ var _ajax = _interopRequireDefault(require("../../../../common/ajax"));
17
17
  class InboxAttachmentOverlayView {
18
- _driver: InboxDriver;
19
- _el: HTMLElement;
20
- _p: Parsed;
21
- _cardView: InboxAttachmentCardView;
22
- _stopper: Kefir.Observable<null> & { destroy(): void } = kefirStopper();
23
-
24
- constructor(
25
- driver: InboxDriver,
26
- el: HTMLElement,
27
- parsed: Parsed,
28
- cardView: InboxAttachmentCardView
29
- ) {
18
+ constructor(driver, el, parsed, cardView) {
19
+ (0, _defineProperty2.default)(this, "_stopper", (0, _kefirStopper.default)());
30
20
  this._driver = driver;
31
21
  this._el = el;
32
22
  this._p = parsed;
33
23
  this._cardView = cardView;
34
24
 
35
25
  // The element is within a same-origin iframe
36
- sharedStyle(el.ownerDocument);
37
- customStyle(el.ownerDocument);
38
-
26
+ (0, _sharedStyle.default)(el.ownerDocument);
27
+ (0, _customStyle.default)(el.ownerDocument);
39
28
  this._cardView.setOverlay(this);
40
-
41
- this._cardView.getAddedButtonDescriptors().forEach((button) => {
29
+ this._cardView.getAddedButtonDescriptors().forEach(button => {
42
30
  this.addButton(button);
43
31
  });
44
32
  }
45
-
46
33
  destroy() {
47
34
  this._cardView.setOverlay(null);
48
35
  this._stopper.destroy();
49
36
  }
50
-
51
- getStopper(): Kefir.Observable<null> {
37
+ getStopper() {
52
38
  return this._stopper;
53
39
  }
54
-
55
- addButton(button: Object) {
56
- const { downloadButton, buttonContainer } = this._p.elements;
57
- if (!buttonContainer)
58
- throw new Error('Missing buttonContainer, can not add button');
59
-
40
+ addButton(button) {
41
+ const {
42
+ downloadButton,
43
+ buttonContainer
44
+ } = this._p.elements;
45
+ if (!buttonContainer) throw new Error('Missing buttonContainer, can not add button');
60
46
  const el = document.createElement('button');
61
47
  el.className = 'inboxsdk__attachment_overlay_button';
62
- el.addEventListener('click', (event: MouseEvent) => {
48
+ el.addEventListener('click', event => {
63
49
  event.stopPropagation();
64
50
  event.preventDefault();
65
51
  if (button.onClick) {
66
52
  button.onClick({
67
- getDownloadURL: () => this.getDownloadURL(),
53
+ getDownloadURL: () => this.getDownloadURL()
68
54
  });
69
55
  }
70
56
  });
71
- el.innerHTML = autoHtml`
57
+ el.innerHTML = (0, _autoHtml.default)`
72
58
  <img src="${button.iconUrl}">
73
59
  `;
74
60
  el.setAttribute('data-tooltip-delay', '500');
75
61
  el.setAttribute('data-tooltip-unhoverable', 'true');
76
62
  if (downloadButton) {
77
- el.setAttribute(
78
- 'data-tooltip-class',
79
- downloadButton.getAttribute('data-tooltip-class') || ''
80
- );
81
- el.setAttribute(
82
- 'data-tooltip-align',
83
- downloadButton.getAttribute('data-tooltip-align') || ''
84
- );
63
+ el.setAttribute('data-tooltip-class', downloadButton.getAttribute('data-tooltip-class') || '');
64
+ el.setAttribute('data-tooltip-align', downloadButton.getAttribute('data-tooltip-align') || '');
85
65
  }
86
66
  el.setAttribute('aria-label', button.tooltip);
87
67
  el.setAttribute('data-tooltip', button.tooltip);
88
-
89
68
  buttonContainer.insertBefore(el, buttonContainer.lastElementChild);
90
69
  this._stopper.onValue(() => {
91
70
  el.remove();
92
71
  });
93
72
  }
94
-
95
- async getDownloadURL(): Promise<?string> {
96
- const { downloadButton } = this._p.elements;
97
- if (!downloadButton)
98
- throw new Error('Could not find download button element');
99
- const src = await this._driver
100
- .getPageCommunicator()
101
- .clickAndGetNewIframeSrc(downloadButton);
102
- const { xhr } = await ajax({ url: src, method: 'HEAD' });
103
- const url = (xhr: any).responseURL;
73
+ async getDownloadURL() {
74
+ const {
75
+ downloadButton
76
+ } = this._p.elements;
77
+ if (!downloadButton) throw new Error('Could not find download button element');
78
+ const src = await this._driver.getPageCommunicator().clickAndGetNewIframeSrc(downloadButton);
79
+ const {
80
+ xhr
81
+ } = await (0, _ajax.default)({
82
+ url: src,
83
+ method: 'HEAD'
84
+ });
85
+ const url = xhr.responseURL;
104
86
  return url;
105
87
  }
106
88
  }
107
-
108
- export default defn(module, InboxAttachmentOverlayView);
89
+ var _default = (0, _ud.defn)(module, InboxAttachmentOverlayView);
90
+ exports.default = _default;
@@ -1,74 +1,63 @@
1
- /* @flow */
2
-
3
- import { defn } from 'ud';
4
- import Kefir from 'kefir';
5
- import kefirBus from 'kefir-bus';
6
- import type { Bus } from 'kefir-bus';
7
- import kefirStopper from 'kefir-stopper';
8
-
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _ud = require("ud");
10
+ var _kefir = _interopRequireDefault(require("kefir"));
11
+ var _kefirBus = _interopRequireDefault(require("kefir-bus"));
12
+ var _kefirStopper = _interopRequireDefault(require("kefir-stopper"));
9
13
  class InboxBackdrop {
10
- _preAutoCloseStream: Bus<Object> = kefirBus();
11
- _stopper: Kefir.Observable<null> & { destroy(): void } = kefirStopper();
12
- _el: HTMLElement;
13
-
14
- constructor(
15
- zIndex: number = 500,
16
- target: HTMLElement = (document.body: any)
17
- ) {
18
- const el = (this._el = document.createElement('div'));
14
+ constructor() {
15
+ let zIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 500;
16
+ let target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.body;
17
+ (0, _defineProperty2.default)(this, "_preAutoCloseStream", (0, _kefirBus.default)());
18
+ (0, _defineProperty2.default)(this, "_stopper", (0, _kefirStopper.default)());
19
+ const el = this._el = document.createElement('div');
19
20
  el.className = 'inboxsdk__inbox_backdrop';
20
21
  el.style.zIndex = String(zIndex);
21
-
22
- Kefir.fromEvents(el, 'click')
23
- .filter((event) => {
24
- let isCanceled = false;
25
- const appEvent = {
26
- type: 'outsideInteraction',
27
- cause: event,
28
- cancel: () => {
29
- isCanceled = true;
30
- },
31
- };
32
- this._preAutoCloseStream.emit(appEvent);
33
- return !isCanceled;
34
- })
35
- .onValue((e: MouseEvent) => {
36
- this.destroy();
37
- });
38
-
22
+ _kefir.default.fromEvents(el, 'click').filter(event => {
23
+ let isCanceled = false;
24
+ const appEvent = {
25
+ type: 'outsideInteraction',
26
+ cause: event,
27
+ cancel: () => {
28
+ isCanceled = true;
29
+ }
30
+ };
31
+ this._preAutoCloseStream.emit(appEvent);
32
+ return !isCanceled;
33
+ }).onValue(e => {
34
+ this.destroy();
35
+ });
39
36
  if (!target) throw new Error('no target');
40
37
  target.appendChild(el);
41
-
42
38
  this._stopper.onValue(() => {
43
39
  el.classList.remove('inboxsdk__active');
44
- Kefir.fromEvents(el, 'transitionend')
45
- .merge(Kefir.later(200)) // transition might not finish if element is hidden
46
- .take(1)
47
- .onValue(() => {
48
- el.remove();
49
- });
40
+ _kefir.default.fromEvents(el, 'transitionend').merge(_kefir.default.later(200)) // transition might not finish if element is hidden
41
+ .take(1).onValue(() => {
42
+ el.remove();
43
+ });
50
44
  });
51
-
52
45
  el.offsetHeight; // force layout so that adding this class does a transition.
53
46
  el.classList.add('inboxsdk__active');
54
47
  }
55
-
56
- getElement(): HTMLElement {
48
+ getElement() {
57
49
  return this._el;
58
50
  }
59
-
60
- getPreAutoCloseStream(): Kefir.Observable<Object> {
51
+ getPreAutoCloseStream() {
61
52
  return this._preAutoCloseStream;
62
53
  }
63
-
64
- getStopper(): Kefir.Observable<null> {
54
+ getStopper() {
65
55
  return this._stopper;
66
56
  }
67
-
68
57
  destroy() {
69
58
  this._preAutoCloseStream.end();
70
59
  this._stopper.destroy();
71
60
  }
72
61
  }
73
-
74
- export default defn(module, InboxBackdrop);
62
+ var _default = (0, _ud.defn)(module, InboxBackdrop);
63
+ exports.default = _default;
@@ -1,34 +1,37 @@
1
- /* @flow */
2
-
3
- import { defn } from 'ud';
4
- import once from 'lodash/once';
5
- import Kefir from 'kefir';
6
- import kefirStopper from 'kefir-stopper';
7
- import type { Parsed } from '../detection/chatSidebar/parser';
8
- import makeMutationObserverChunkedStream from '../../../lib/dom/make-mutation-observer-chunked-stream';
9
-
10
- export type Mode = 'HIDDEN' | 'DROPDOWN' | 'SIDEBAR';
11
-
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _ud = require("ud");
10
+ var _once = _interopRequireDefault(require("lodash/once"));
11
+ var _kefir = _interopRequireDefault(require("kefir"));
12
+ var _kefirStopper = _interopRequireDefault(require("kefir-stopper"));
13
+ var _makeMutationObserverChunkedStream = _interopRequireDefault(require("../../../lib/dom/make-mutation-observer-chunked-stream"));
12
14
  class InboxChatSidebarView {
13
- _el: HTMLElement;
14
- _p: Parsed;
15
- _stopper = kefirStopper();
16
-
17
- constructor(el: HTMLElement, p: Parsed) {
15
+ constructor(el, p) {
16
+ (0, _defineProperty2.default)(this, "_stopper", (0, _kefirStopper.default)());
17
+ (0, _defineProperty2.default)(this, "getModeStream", (0, _once.default)(() => {
18
+ const parent = this._el.parentElement;
19
+ return (0, _makeMutationObserverChunkedStream.default)(parent, {
20
+ attributes: true,
21
+ attributeFilter: ['class']
22
+ }).toProperty(() => null).map(() => this.getMode()).skipDuplicates().takeUntilBy(this._stopper);
23
+ }));
18
24
  this._el = el;
19
25
  this._p = p;
20
26
  }
21
-
22
- getStopper(): Kefir.Observable<null> {
27
+ getStopper() {
23
28
  return this._stopper;
24
29
  }
25
-
26
30
  destroy() {
27
31
  this._stopper.destroy();
28
32
  }
29
-
30
- getMode(): Mode {
31
- const parent: HTMLElement = (this._el.parentElement: any);
33
+ getMode() {
34
+ const parent = this._el.parentElement;
32
35
  const parentComputedStyle = window.getComputedStyle(parent);
33
36
  if (parseInt(parentComputedStyle.bottom) === 0) {
34
37
  return 'SIDEBAR';
@@ -38,18 +41,6 @@ class InboxChatSidebarView {
38
41
  }
39
42
  return 'HIDDEN';
40
43
  }
41
-
42
- getModeStream: () => Kefir.Observable<Mode> = once(() => {
43
- const parent: HTMLElement = (this._el.parentElement: any);
44
- return makeMutationObserverChunkedStream(parent, {
45
- attributes: true,
46
- attributeFilter: ['class'],
47
- })
48
- .toProperty(() => null)
49
- .map(() => this.getMode())
50
- .skipDuplicates()
51
- .takeUntilBy(this._stopper);
52
- });
53
44
  }
54
-
55
- export default defn(module, InboxChatSidebarView);
45
+ var _default = (0, _ud.defn)(module, InboxChatSidebarView);
46
+ exports.default = _default;