@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,47 +1,33 @@
1
- /* @flow */
2
-
3
- import Kefir from 'kefir';
4
- import kefirBus from 'kefir-bus';
5
- import kefirStopper from 'kefir-stopper';
6
- import insertElementInOrder from '../../../lib/dom/insert-element-in-order';
7
- import querySelector from '../../../lib/dom/querySelectorOrFail';
8
- import DropdownView from '../../../widgets/buttons/dropdown-view';
9
- import InboxDropdownView from './inbox-dropdown-view';
10
-
11
- import NAV_ITEM_TYPES from '../../../constants/nav-item-types';
12
-
13
- import updateIcon from '../../../driver-common/update-icon';
14
-
15
- import type { Bus } from 'kefir-bus';
16
-
17
- type Destroyable = { destroy: () => void };
18
-
19
- export default class InboxNavItemView {
20
- _eventStream: Bus<any> = kefirBus();
21
- _level: number;
22
- _stopper: Kefir.Observable<null>;
23
- _transitionResetter: Bus<null> = kefirBus();
24
- _navItemDescriptor: ?Object;
25
- _children: number = 0;
26
- _name: string = '';
27
- _type: ?string = null;
28
- _orderHint: number = Number.MAX_SAFE_INTEGER;
29
- _disabled: boolean = false;
30
- _isCollapsed: boolean = false;
31
- _iconSettings: Object = {};
32
- _accessory: ?Object = null;
33
- _accessoryView: ?Destroyable = null;
34
- _elements: {
35
- wrapper: HTMLElement,
36
- expander: HTMLElement,
37
- navItem: HTMLElement,
38
- name: HTMLElement,
39
- subNav: HTMLElement,
40
- subNavInner: HTMLElement,
41
- accessory: HTMLElement,
42
- };
43
-
44
- constructor(navItemDescriptor: Kefir.Observable<Object>, level: number) {
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 _kefirBus = _interopRequireDefault(require("kefir-bus"));
11
+ var _kefirStopper = _interopRequireDefault(require("kefir-stopper"));
12
+ var _insertElementInOrder = _interopRequireDefault(require("../../../lib/dom/insert-element-in-order"));
13
+ var _querySelectorOrFail = _interopRequireDefault(require("../../../lib/dom/querySelectorOrFail"));
14
+ var _dropdownView = _interopRequireDefault(require("../../../widgets/buttons/dropdown-view"));
15
+ var _inboxDropdownView = _interopRequireDefault(require("./inbox-dropdown-view"));
16
+ var _navItemTypes = _interopRequireDefault(require("../../../constants/nav-item-types"));
17
+ var _updateIcon = _interopRequireDefault(require("../../../driver-common/update-icon"));
18
+ class InboxNavItemView {
19
+ constructor(navItemDescriptor, level) {
20
+ (0, _defineProperty2.default)(this, "_eventStream", (0, _kefirBus.default)());
21
+ (0, _defineProperty2.default)(this, "_transitionResetter", (0, _kefirBus.default)());
22
+ (0, _defineProperty2.default)(this, "_children", 0);
23
+ (0, _defineProperty2.default)(this, "_name", '');
24
+ (0, _defineProperty2.default)(this, "_type", null);
25
+ (0, _defineProperty2.default)(this, "_orderHint", Number.MAX_SAFE_INTEGER);
26
+ (0, _defineProperty2.default)(this, "_disabled", false);
27
+ (0, _defineProperty2.default)(this, "_isCollapsed", false);
28
+ (0, _defineProperty2.default)(this, "_iconSettings", {});
29
+ (0, _defineProperty2.default)(this, "_accessory", null);
30
+ (0, _defineProperty2.default)(this, "_accessoryView", null);
45
31
  this._level = level || 0;
46
32
  this._elements = {
47
33
  wrapper: document.createElement('div'),
@@ -50,114 +36,77 @@ export default class InboxNavItemView {
50
36
  name: document.createElement('span'),
51
37
  subNav: document.createElement('div'),
52
38
  subNavInner: document.createElement('div'),
53
- accessory: document.createElement('div'),
39
+ accessory: document.createElement('div')
54
40
  };
55
-
56
41
  if (this._level > 2) {
57
42
  console.warn('Adding NavItems more than 3 levels deep is not supported'); //eslint-disable-line no-console
58
43
  }
59
44
 
60
- this._stopper = this._eventStream
61
- .ignoreValues()
62
- .beforeEnd(() => null)
63
- .toProperty();
64
-
45
+ this._stopper = this._eventStream.ignoreValues().beforeEnd(() => null).toProperty();
65
46
  this._setupElements();
66
-
67
- navItemDescriptor.takeUntilBy(this._stopper).onValue((descriptor) => {
47
+ navItemDescriptor.takeUntilBy(this._stopper).onValue(descriptor => {
68
48
  this._update(descriptor);
69
49
  this._navItemDescriptor = descriptor;
70
50
  });
71
51
  }
72
-
73
- addNavItem(
74
- orderGroup: number | string,
75
- navItemDescriptor: Kefir.Observable<Object>
76
- ): InboxNavItemView {
77
- const childNavItemView = new InboxNavItemView(
78
- navItemDescriptor,
79
- this._level + 1
80
- );
81
-
82
- childNavItemView
83
- .getEventStream()
84
- .filter((event) => event.eventName === 'orderChanged')
85
- .onValue(() =>
86
- insertElementInOrder(
87
- this._elements.subNavInner,
88
- childNavItemView.getElement()
89
- )
90
- );
91
-
92
- insertElementInOrder(
93
- this._elements.subNavInner,
94
- childNavItemView.getElement()
95
- );
96
-
52
+ addNavItem(orderGroup, navItemDescriptor) {
53
+ const childNavItemView = new InboxNavItemView(navItemDescriptor, this._level + 1);
54
+ childNavItemView.getEventStream().filter(event => event.eventName === 'orderChanged').onValue(() => (0, _insertElementInOrder.default)(this._elements.subNavInner, childNavItemView.getElement()));
55
+ (0, _insertElementInOrder.default)(this._elements.subNavInner, childNavItemView.getElement());
97
56
  this._children += 1;
98
-
99
57
  childNavItemView.getStopper().onValue(() => {
100
58
  this._children -= 1;
101
59
  this._updateChildrenClass();
102
60
  this._updateDisabledState(this._navItemDescriptor || {});
103
61
  this._updateAccessory(this._accessory, true);
104
62
  });
105
-
106
63
  this._updateChildrenClass();
107
64
  this._updateDisabledState(this._navItemDescriptor || {});
108
65
  this._updateAccessory(this._accessory, true);
109
-
110
66
  return childNavItemView;
111
67
  }
112
-
113
- setActive(value: boolean) {
68
+ setActive(value) {
114
69
  this._elements.navItem.classList.toggle('inboxsdk__navItem_active', value);
115
70
  }
116
-
117
71
  toggleCollapse() {
118
72
  this._isCollapsed = !this._isCollapsed;
119
-
120
73
  this._isCollapsed ? this._collapse() : this._expand();
121
74
  }
122
-
123
- setCollapsed(value: boolean) {
75
+ setCollapsed(value) {
124
76
  if (this._isCollapsed === value) return;
125
-
126
77
  this._isCollapsed = value;
127
-
128
78
  this._isCollapsed ? this._collapse() : this._expand();
129
79
  }
130
-
131
- isCollapsed(): boolean {
80
+ isCollapsed() {
132
81
  return this._isCollapsed;
133
82
  }
134
-
135
- getElement(): HTMLElement {
83
+ getElement() {
136
84
  return this._elements.wrapper;
137
85
  }
138
-
139
- getEventStream(): Kefir.Observable<Object> {
86
+ getEventStream() {
140
87
  return this._eventStream;
141
88
  }
142
-
143
- getStopper(): Kefir.Observable<null> {
89
+ getStopper() {
144
90
  return this._stopper;
145
91
  }
146
-
147
92
  destroy() {
148
93
  this._eventStream.end();
149
94
  this._elements.wrapper.remove();
150
95
  }
151
-
152
96
  _setupElements() {
153
- const { wrapper, expander, navItem, name, subNav, subNavInner, accessory } =
154
- this._elements;
155
-
97
+ const {
98
+ wrapper,
99
+ expander,
100
+ navItem,
101
+ name,
102
+ subNav,
103
+ subNavInner,
104
+ accessory
105
+ } = this._elements;
156
106
  wrapper.className = `inboxsdk__navItem_wrapper inboxsdk__navItem_level${this._level}`;
157
107
  wrapper.setAttribute('tabindex', '-1');
158
108
  wrapper.setAttribute('data-order-hint', String(this._orderHint));
159
109
  navItem.setAttribute('role', 'menuitem');
160
-
161
110
  expander.classList.add('inboxsdk__navItem_expander');
162
111
  navItem.classList.add('inboxsdk__navItem');
163
112
  name.classList.add('inboxsdk__navItem_name');
@@ -166,183 +115,122 @@ export default class InboxNavItemView {
166
115
  subNavInner.classList.add('inboxsdk__navItem_subNavInner');
167
116
 
168
117
  // Arrow SVG
169
- expander.innerHTML =
170
- '<svg><polygon points="16.59 8.59 12 13.17 7.41 8.59 6 10 12 16 18 10"></polygon></svg>';
171
-
118
+ expander.innerHTML = '<svg><polygon points="16.59 8.59 12 13.17 7.41 8.59 6 10 12 16 18 10"></polygon></svg>';
172
119
  navItem.appendChild(expander);
173
120
  navItem.appendChild(name);
174
121
  navItem.appendChild(accessory);
175
122
  wrapper.appendChild(navItem);
176
-
177
123
  subNav.appendChild(subNavInner);
178
124
  wrapper.appendChild(subNav);
179
-
180
- this._eventStream.plug(
181
- Kefir.fromEvents(navItem, 'click')
182
- .filter(() => !this._disabled)
183
- .map((domEvent: MouseEvent) => {
184
- domEvent.stopPropagation();
185
- domEvent.preventDefault();
186
- return { eventName: 'click', domEvent };
187
- })
188
- );
189
-
190
- Kefir.fromEvents(expander, 'click')
191
- .takeUntilBy(this._stopper)
192
- .filter(() => this._children > 0)
193
- .onValue((domEvent: MouseEvent) => {
194
- this.toggleCollapse();
195
- domEvent.stopPropagation();
196
- });
125
+ this._eventStream.plug(_kefir.default.fromEvents(navItem, 'click').filter(() => !this._disabled).map(domEvent => {
126
+ domEvent.stopPropagation();
127
+ domEvent.preventDefault();
128
+ return {
129
+ eventName: 'click',
130
+ domEvent
131
+ };
132
+ }));
133
+ _kefir.default.fromEvents(expander, 'click').takeUntilBy(this._stopper).filter(() => this._children > 0).onValue(domEvent => {
134
+ this.toggleCollapse();
135
+ domEvent.stopPropagation();
136
+ });
197
137
  }
198
-
199
138
  _collapse() {
200
- const { subNav, subNavInner } = this._elements;
201
-
139
+ const {
140
+ subNav,
141
+ subNavInner
142
+ } = this._elements;
202
143
  this._transitionResetter.emit(null);
203
144
  this._elements.wrapper.classList.add('inboxsdk__navItem_collapsed');
204
-
205
145
  subNav.style.height = `${subNavInner.clientHeight}px`;
206
146
  subNav.clientHeight; // Force layout
207
147
  subNav.style.height = '0';
208
-
209
- Kefir.merge([Kefir.fromEvents(subNav, 'transitionend'), Kefir.later(750)])
210
- .takeUntilBy(this._transitionResetter)
211
- .take(1)
212
- .onValue(() => {
213
- subNav.style.display = 'none';
214
- });
215
-
148
+ _kefir.default.merge([_kefir.default.fromEvents(subNav, 'transitionend'), _kefir.default.later(750)]).takeUntilBy(this._transitionResetter).take(1).onValue(() => {
149
+ subNav.style.display = 'none';
150
+ });
216
151
  this._eventStream.emit({
217
- eventName: 'collapsed',
152
+ eventName: 'collapsed'
218
153
  });
219
154
  }
220
-
221
155
  _expand() {
222
- const { subNav, subNavInner } = this._elements;
223
-
156
+ const {
157
+ subNav,
158
+ subNavInner
159
+ } = this._elements;
224
160
  this._transitionResetter.emit(null);
225
161
  this._elements.wrapper.classList.remove('inboxsdk__navItem_collapsed');
226
-
227
162
  subNav.style.display = '';
228
163
  subNav.style.height = `${subNavInner.clientHeight}px`;
229
-
230
- Kefir.merge([Kefir.fromEvents(subNav, 'transitionend'), Kefir.later(750)])
231
- .takeUntilBy(this._transitionResetter)
232
- .take(1)
233
- .onValue(() => {
234
- subNav.style.height = '';
235
- });
236
-
164
+ _kefir.default.merge([_kefir.default.fromEvents(subNav, 'transitionend'), _kefir.default.later(750)]).takeUntilBy(this._transitionResetter).take(1).onValue(() => {
165
+ subNav.style.height = '';
166
+ });
237
167
  this._eventStream.emit({
238
- eventName: 'expanded',
168
+ eventName: 'expanded'
239
169
  });
240
170
  }
241
-
242
- _update(descriptor: Object) {
171
+ _update(descriptor) {
243
172
  this._updateName(descriptor.name);
244
173
  this._updateType(descriptor.type);
245
174
  this._updateExpander(descriptor);
246
175
  this._updateDisabledState(descriptor);
247
176
  this._updateIcon(descriptor);
248
177
  this._updateAccessory(descriptor.accessory);
249
- this._updateOrder(
250
- descriptor.orderHint || descriptor.orderHint === 0
251
- ? descriptor.orderHint
252
- : Number.MAX_SAFE_INTEGER
253
- );
178
+ this._updateOrder(descriptor.orderHint || descriptor.orderHint === 0 ? descriptor.orderHint : Number.MAX_SAFE_INTEGER);
254
179
  }
255
-
256
- _updateName(name: string) {
180
+ _updateName(name) {
257
181
  if (this._name === name) return;
258
-
259
182
  this._elements.name.textContent = name;
260
183
  this._elements.name.setAttribute('title', name);
261
-
262
184
  this._name = name;
263
185
  }
264
-
265
- _updateType(type: string = NAV_ITEM_TYPES.NAVIGATION) {
186
+ _updateType() {
187
+ let type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _navItemTypes.default.NAVIGATION;
266
188
  if (this._type === type) return;
267
-
268
- this._elements.navItem.classList.toggle(
269
- 'inboxsdk__navItem_link',
270
- type === NAV_ITEM_TYPES.LINK
271
- );
272
-
189
+ this._elements.navItem.classList.toggle('inboxsdk__navItem_link', type === _navItemTypes.default.LINK);
273
190
  this._type = type;
274
191
  }
275
-
276
- _updateExpander({ backgroundColor, expanderForegroundColor }: Object) {
192
+ _updateExpander(_ref) {
193
+ let {
194
+ backgroundColor,
195
+ expanderForegroundColor
196
+ } = _ref;
277
197
  this._elements.expander.style.backgroundColor = backgroundColor || '';
278
-
279
- const arrow = querySelector(this._elements.expander, 'polygon');
280
- (arrow.style: any).fill = expanderForegroundColor || '';
281
-
282
- this._elements.wrapper.classList.toggle(
283
- 'inboxsdk__navItem_hasColor',
284
- typeof backgroundColor === 'string'
285
- );
198
+ const arrow = (0, _querySelectorOrFail.default)(this._elements.expander, 'polygon');
199
+ arrow.style.fill = expanderForegroundColor || '';
200
+ this._elements.wrapper.classList.toggle('inboxsdk__navItem_hasColor', typeof backgroundColor === 'string');
286
201
  }
287
-
288
- _updateIcon(descriptor: Object) {
289
- this._elements.navItem.classList.toggle(
290
- 'inboxsdk__navItem_hasIcon',
291
- (!this._disabled || this._level > 0) &&
292
- Boolean(descriptor.iconUrl || descriptor.iconClass)
293
- );
294
-
295
- updateIcon(
296
- this._iconSettings,
297
- this._elements.navItem,
298
- false,
299
- descriptor.iconClass,
300
- descriptor.iconUrl,
301
- this._elements.name
302
- );
202
+ _updateIcon(descriptor) {
203
+ this._elements.navItem.classList.toggle('inboxsdk__navItem_hasIcon', (!this._disabled || this._level > 0) && Boolean(descriptor.iconUrl || descriptor.iconClass));
204
+ (0, _updateIcon.default)(this._iconSettings, this._elements.navItem, false, descriptor.iconClass, descriptor.iconUrl, this._elements.name);
303
205
  }
304
-
305
- _updateAccessory(accessory: ?Object, forceUpdate: boolean = false) {
206
+ _updateAccessory(accessory) {
207
+ let forceUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
306
208
  if (!forceUpdate && this._accessory === accessory) return;
307
-
308
209
  if (this._accessoryView) {
309
210
  this._accessoryView.destroy();
310
211
  this._accessoryView = null;
311
212
  }
312
-
313
213
  if (accessory && !this._disabled) {
314
214
  this._accessoryView = this._createAccessory(accessory);
315
215
  }
316
-
317
216
  this._accessory = accessory;
318
217
  }
319
-
320
- _updateDisabledState(descriptor: Object) {
321
- this._disabled =
322
- !(descriptor.routeID || descriptor.onClick) ||
323
- (this._level === 0 && this._children > 0);
324
- this._elements.wrapper.classList.toggle(
325
- 'inboxsdk__navItem_disabled',
326
- this._disabled
327
- );
218
+ _updateDisabledState(descriptor) {
219
+ this._disabled = !(descriptor.routeID || descriptor.onClick) || this._level === 0 && this._children > 0;
220
+ this._elements.wrapper.classList.toggle('inboxsdk__navItem_disabled', this._disabled);
328
221
  }
329
-
330
- _updateOrder(orderHint: number) {
222
+ _updateOrder(orderHint) {
331
223
  if (this._orderHint === orderHint) return;
332
-
333
224
  this._elements.wrapper.setAttribute('data-order-hint', String(orderHint));
334
225
  this._orderHint = orderHint;
335
- this._eventStream.emit({ eventName: 'orderChanged' });
226
+ this._eventStream.emit({
227
+ eventName: 'orderChanged'
228
+ });
336
229
  }
337
-
338
230
  _updateChildrenClass() {
339
- this._elements.wrapper.classList.toggle(
340
- 'inboxsdk__navItem_hasChildren',
341
- this._children > 0
342
- );
231
+ this._elements.wrapper.classList.toggle('inboxsdk__navItem_hasChildren', this._children > 0);
343
232
  }
344
-
345
- _createAccessory(accessory: Object): Destroyable {
233
+ _createAccessory(accessory) {
346
234
  switch (accessory.type) {
347
235
  case 'CREATE':
348
236
  return this._createCreateAccessory(accessory);
@@ -354,99 +242,72 @@ export default class InboxNavItemView {
354
242
  throw new Error('A type must be specified for NavItem accessories');
355
243
  }
356
244
  }
357
-
358
- _createCreateAccessory(accessory: Object): Destroyable {
359
- const { onClick } = accessory;
245
+ _createCreateAccessory(accessory) {
246
+ const {
247
+ onClick
248
+ } = accessory;
360
249
  return this._createIconButtonAccessory({
361
250
  onClick,
362
- iconUrl:
363
- '//ssl.gstatic.com/bt/C3341AA7A1A076756462EE2E5CD71C11/2x/ic_add-cluster_24px_g60_r3_2x.png',
251
+ iconUrl: '//ssl.gstatic.com/bt/C3341AA7A1A076756462EE2E5CD71C11/2x/ic_add-cluster_24px_g60_r3_2x.png'
364
252
  });
365
253
  }
366
-
367
- _createDropdownButtonAccessory(accessory: Object): Destroyable {
368
- const { onClick } = accessory;
369
- return this._createIconButtonAccessory(
370
- {
371
- onClick,
372
- iconUrl:
373
- '//www.gstatic.com/images/icons/material/system/2x/settings_black_18dp.png',
374
- },
375
- true
376
- );
254
+ _createDropdownButtonAccessory(accessory) {
255
+ const {
256
+ onClick
257
+ } = accessory;
258
+ return this._createIconButtonAccessory({
259
+ onClick,
260
+ iconUrl: '//www.gstatic.com/images/icons/material/system/2x/settings_black_18dp.png'
261
+ }, true);
377
262
  }
378
-
379
- _createIconButtonAccessory(
380
- accessory: Object,
381
- hasDropdown: boolean = false
382
- ): Destroyable {
263
+ _createIconButtonAccessory(accessory) {
264
+ let hasDropdown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
383
265
  if (!accessory.onClick) throw new Error('An onClick handler is required');
384
-
385
266
  this._elements.wrapper.classList.add('inboxsdk__navItem_hasAccessory');
386
-
387
- updateIcon(
388
- {},
389
- this._elements.accessory,
390
- false,
391
- accessory.iconClass,
392
- accessory.iconUrl
393
- );
394
-
395
- const iconEl = querySelector(
396
- this._elements.accessory,
397
- '.inboxsdk__button_icon'
398
- );
267
+ (0, _updateIcon.default)({}, this._elements.accessory, false, accessory.iconClass, accessory.iconUrl);
268
+ const iconEl = (0, _querySelectorOrFail.default)(this._elements.accessory, '.inboxsdk__button_icon');
399
269
  iconEl.setAttribute('tabindex', '-1');
400
-
401
- const destroyStopper = kefirStopper();
270
+ const destroyStopper = (0, _kefirStopper.default)();
402
271
  let dropdown = null;
403
-
404
- Kefir.fromEvents(this._elements.accessory, 'click')
405
- .takeUntilBy(this._stopper)
406
- .takeUntilBy(destroyStopper)
407
- .onValue((event) => {
408
- event.preventDefault();
409
- event.stopPropagation();
410
- if (hasDropdown) {
411
- if (dropdown) {
412
- dropdown.close();
413
- return;
414
- } else {
415
- iconEl.classList.add('inboxsdk__active');
416
-
417
- dropdown = new DropdownView(
418
- new InboxDropdownView(),
419
- this._elements.accessory
420
- );
421
- dropdown.setPlacementOptions({
422
- position: 'right',
423
- hAlign: 'left',
424
- vAlign: 'top',
425
- buffer: 10,
426
- });
427
- dropdown.on('destroy', () => {
428
- iconEl.classList.remove('inboxsdk__active');
429
- dropdown = null;
430
- });
431
- }
432
- }
433
- accessory.onClick({ dropdown });
434
- });
435
-
436
- Kefir.merge([this._stopper, destroyStopper])
437
- .take(1)
438
- .onValue(() => {
272
+ _kefir.default.fromEvents(this._elements.accessory, 'click').takeUntilBy(this._stopper).takeUntilBy(destroyStopper).onValue(event => {
273
+ event.preventDefault();
274
+ event.stopPropagation();
275
+ if (hasDropdown) {
439
276
  if (dropdown) {
440
277
  dropdown.close();
278
+ return;
279
+ } else {
280
+ iconEl.classList.add('inboxsdk__active');
281
+ dropdown = new _dropdownView.default(new _inboxDropdownView.default(), this._elements.accessory);
282
+ dropdown.setPlacementOptions({
283
+ position: 'right',
284
+ hAlign: 'left',
285
+ vAlign: 'top',
286
+ buffer: 10
287
+ });
288
+ dropdown.on('destroy', () => {
289
+ iconEl.classList.remove('inboxsdk__active');
290
+ dropdown = null;
291
+ });
441
292
  }
293
+ }
294
+ accessory.onClick({
295
+ dropdown
442
296
  });
443
-
297
+ });
298
+ _kefir.default.merge([this._stopper, destroyStopper]).take(1).onValue(() => {
299
+ if (dropdown) {
300
+ dropdown.close();
301
+ }
302
+ });
444
303
  const destroy = () => {
445
304
  this._elements.wrapper.classList.remove('inboxsdk__navItem_hasAccessory');
446
305
  this._elements.accessory.innerHTML = '';
447
306
  destroyStopper.destroy();
448
307
  };
449
-
450
- return { destroy };
308
+ return {
309
+ destroy
310
+ };
451
311
  }
452
312
  }
313
+ exports.default = InboxNavItemView;
@@ -1,40 +1,26 @@
1
- /* @flow */
1
+ "use strict";
2
2
 
3
- import once from 'lodash/once';
4
- import find from 'lodash/find';
5
- import Kefir from 'kefir';
6
-
7
- import makeMutationObserverChunkedStream from '../../lib/dom/make-mutation-observer-chunked-stream';
8
-
9
- const getAnimationClickBlocker: () => HTMLElement = once(() =>
10
- find(((document.body: any): HTMLElement).children, (el) => {
11
- const c = window.getComputedStyle(el);
12
- return (
13
- c.position === 'fixed' &&
14
- parseFloat(c.top) === 0 &&
15
- parseFloat(c.bottom) === 0 &&
16
- parseFloat(c.left) === 0 &&
17
- parseFloat(c.right) === 0
18
- );
19
- })
20
- );
21
-
22
- export default function waitForAnimationClickBlockerGone(): Kefir.Observable<void> {
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = waitForAnimationClickBlockerGone;
8
+ var _once = _interopRequireDefault(require("lodash/once"));
9
+ var _find = _interopRequireDefault(require("lodash/find"));
10
+ var _kefir = _interopRequireDefault(require("kefir"));
11
+ var _makeMutationObserverChunkedStream = _interopRequireDefault(require("../../lib/dom/make-mutation-observer-chunked-stream"));
12
+ const getAnimationClickBlocker = (0, _once.default)(() => (0, _find.default)(document.body.children, el => {
13
+ const c = window.getComputedStyle(el);
14
+ return c.position === 'fixed' && parseFloat(c.top) === 0 && parseFloat(c.bottom) === 0 && parseFloat(c.left) === 0 && parseFloat(c.right) === 0;
15
+ }));
16
+ function waitForAnimationClickBlockerGone() {
23
17
  const el = getAnimationClickBlocker();
24
18
 
25
19
  // Wait for (the animationClickBlocker to appear OR 150 ms to pass), then
26
20
  // wait for the animationClickBlocker to disappear.
27
- return makeMutationObserverChunkedStream(el, { attributes: true })
28
- .toProperty(() => undefined)
29
- .filter(() => window.getComputedStyle(el).display !== 'none')
30
- .merge(Kefir.later(150))
31
- .take(1)
32
- .flatMap(() =>
33
- makeMutationObserverChunkedStream(el, { attributes: true }).toProperty(
34
- () => undefined
35
- )
36
- )
37
- .filter(() => window.getComputedStyle(el).display === 'none')
38
- .map(() => undefined)
39
- .take(1);
40
- }
21
+ return (0, _makeMutationObserverChunkedStream.default)(el, {
22
+ attributes: true
23
+ }).toProperty(() => undefined).filter(() => window.getComputedStyle(el).display !== 'none').merge(_kefir.default.later(150)).take(1).flatMap(() => (0, _makeMutationObserverChunkedStream.default)(el, {
24
+ attributes: true
25
+ }).toProperty(() => undefined)).filter(() => window.getComputedStyle(el).display === 'none').map(() => undefined).take(1);
26
+ }