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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/inboxsdk.js +1 -1
  2. package/package.json +5 -1
  3. package/src/inboxsdk-js/check-requirements.js +7 -3
  4. package/src/inboxsdk-js/header.js +1 -0
  5. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.js +5 -6
  6. package/src/inboxsdk-js/inboxsdk-NONREMOTE.js +4 -3
  7. package/src/inboxsdk-js/inboxsdk-REMOTE.js +3 -1
  8. package/src/inboxsdk-js/inboxsdk-TEST.js +4 -3
  9. package/src/inboxsdk-js/inboxsdk.js +33 -39
  10. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.js +15 -18
  11. package/src/injected-js/gmail/modify-suggestions.test.js +8 -9
  12. package/src/injected-js/gmail/setup-gmail-interceptor.js +340 -579
  13. package/src/injected-js/gmail/sync-compose-request-processor.test.js +39 -49
  14. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +20 -33
  15. package/src/injected-js/gmail/thread-identifier/index.js +57 -93
  16. package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +22 -31
  17. package/src/injected-js/gmail/thread-identifier/thread-row-parser.test.js +12 -28
  18. package/src/injected-js/inbox/setupAjaxInterceptor.js +64 -121
  19. package/src/injected-js/inbox/setupClickAndGetNewIframeSrc.js +53 -66
  20. package/src/injected-js/inbox/setupComposeViewDraftIDFinder.js +20 -36
  21. package/src/injected-js/inbox/setupInboxFakeWindowResizeListener.js +13 -13
  22. package/src/injected-js/main.js +11 -24
  23. package/src/injected-js/message-metadata-holder.js +52 -82
  24. package/src/injected-js/setup-data-exposer.js +89 -148
  25. package/src/injected-js/setup-error-silencer.js +21 -21
  26. package/src/injected-js/setup-event-reemitter.js +30 -22
  27. package/src/injected-js/setupInboxCustomViewLinkFixer.js +24 -29
  28. package/src/injected-js/setupPushStateListener.js +18 -11
  29. package/src/injected-js/xhr-helper.js +62 -65
  30. package/src/injected-js/xhr-proxy-factory.js +195 -445
  31. package/src/injected-js/xhr-proxy-factory.test.js +824 -991
  32. package/src/platform-implementation-js/constants/router.js +14 -9
  33. package/src/platform-implementation-js/constants/toolbars.js +8 -3
  34. package/src/platform-implementation-js/dom-driver/gmail/custom-style.js +13 -13
  35. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +115 -136
  36. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +13 -14
  37. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +27 -48
  38. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +31 -42
  39. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +30 -40
  40. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +10 -18
  41. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +21 -28
  42. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +33 -45
  43. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +31 -49
  44. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +58 -65
  45. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +40 -124
  46. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +17 -22
  47. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.test.js +10 -11
  48. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +44 -80
  49. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +19 -26
  50. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +71 -147
  51. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +91 -148
  52. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +150 -166
  53. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.test.js +70 -120
  54. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +15 -15
  55. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +44 -67
  56. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +230 -379
  57. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.test.js +121 -307
  58. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +17 -24
  59. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +41 -49
  60. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +30 -40
  61. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +28 -60
  62. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +61 -133
  63. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +30 -42
  64. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.test.js +52 -46
  65. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +354 -694
  66. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +77 -93
  67. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +35 -82
  68. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.test.js +44 -94
  69. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +12 -19
  70. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +17 -29
  71. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.js +26 -26
  72. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +391 -797
  73. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +7 -9
  74. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +60 -109
  75. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +95 -135
  76. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +103 -211
  77. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.test.js +61 -61
  78. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +17 -17
  79. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +188 -541
  80. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +67 -135
  81. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +27 -49
  82. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-inner-sidebar.js +7 -13
  83. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-outer-sidebar.js +9 -22
  84. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +36 -63
  85. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +38 -113
  86. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +11 -16
  87. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +11 -17
  88. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +8 -11
  89. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +27 -47
  90. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +11 -24
  91. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +59 -111
  92. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +15 -14
  93. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +11 -17
  94. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +18 -24
  95. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +19 -23
  96. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +11 -19
  97. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +141 -376
  98. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +17 -28
  99. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +34 -70
  100. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +10 -17
  101. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +83 -137
  102. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +10 -19
  103. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +632 -1190
  104. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +29 -38
  105. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +327 -617
  106. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +26 -49
  107. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +188 -380
  108. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +104 -194
  109. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +382 -811
  110. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view/add-icon-area.js +34 -58
  111. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.js +330 -581
  112. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.test.js +123 -277
  113. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +15 -35
  114. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +216 -571
  115. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +152 -336
  116. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +87 -211
  117. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +10 -11
  118. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +20 -29
  119. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +41 -76
  120. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +45 -99
  121. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +76 -128
  122. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +128 -319
  123. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +45 -78
  124. package/src/platform-implementation-js/dom-driver/inbox/__mocks__/getSidebarClassnames.js +8 -4
  125. package/src/platform-implementation-js/dom-driver/inbox/addNavItem.js +36 -54
  126. package/src/platform-implementation-js/dom-driver/inbox/addRecipientRow.js +35 -53
  127. package/src/platform-implementation-js/dom-driver/inbox/createLink.js +13 -15
  128. package/src/platform-implementation-js/dom-driver/inbox/createLink.test.js +15 -18
  129. package/src/platform-implementation-js/dom-driver/inbox/custom-style.js +14 -13
  130. package/src/platform-implementation-js/dom-driver/inbox/detection/appToolbarLocation/parser.js +14 -20
  131. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentCard/parser.js +14 -13
  132. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentOverlay/parser.js +35 -67
  133. package/src/platform-implementation-js/dom-driver/inbox/detection/chatSidebar/parser.js +16 -18
  134. package/src/platform-implementation-js/dom-driver/inbox/detection/compose/parser.js +68 -185
  135. package/src/platform-implementation-js/dom-driver/inbox/detection/message/parser.js +28 -56
  136. package/src/platform-implementation-js/dom-driver/inbox/detection/nativeDrawer/parser.js +12 -10
  137. package/src/platform-implementation-js/dom-driver/inbox/detection/searchBar/parser.js +16 -16
  138. package/src/platform-implementation-js/dom-driver/inbox/detection/thread/parser.js +24 -35
  139. package/src/platform-implementation-js/dom-driver/inbox/detection/thread-row/parser.js +37 -89
  140. package/src/platform-implementation-js/dom-driver/inbox/getComposeViewDriverLiveSet.js +56 -78
  141. package/src/platform-implementation-js/dom-driver/inbox/getInboxMessageIdForInboxThreadId.js +26 -32
  142. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.js +52 -109
  143. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.test.js +7 -8
  144. package/src/platform-implementation-js/dom-driver/inbox/gotoView.js +16 -20
  145. package/src/platform-implementation-js/dom-driver/inbox/gotoView.test.js +15 -16
  146. package/src/platform-implementation-js/dom-driver/inbox/inbox-butter-bar-driver.js +75 -83
  147. package/src/platform-implementation-js/dom-driver/inbox/inbox-driver.js +530 -822
  148. package/src/platform-implementation-js/dom-driver/inbox/inbox-page-communicator.js +48 -61
  149. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.js +9 -12
  150. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.test.js +12 -19
  151. package/src/platform-implementation-js/dom-driver/inbox/makePageParserTree.js +24 -33
  152. package/src/platform-implementation-js/dom-driver/inbox/pageParserOptions.js +201 -388
  153. package/src/platform-implementation-js/dom-driver/inbox/registerSearchSuggestionsProvider.js +249 -265
  154. package/src/platform-implementation-js/dom-driver/inbox/setupCustomAutocompleteSelectionHandling.js +84 -152
  155. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.js +55 -67
  156. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.test.js +43 -65
  157. package/src/platform-implementation-js/dom-driver/inbox/views/InboxLabelView.js +31 -56
  158. package/src/platform-implementation-js/dom-driver/inbox/views/InboxMoleViewDriver.js +191 -294
  159. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarButtonView.js +32 -45
  160. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarView.js +21 -39
  161. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-sidebar-view.js +153 -240
  162. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-button-view.js +75 -150
  163. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-tooltip-view.js +20 -37
  164. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-card-view.js +60 -114
  165. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-overlay-view.js +47 -65
  166. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +41 -52
  167. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-chat-sidebar-view.js +27 -36
  168. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-button-view.js +52 -80
  169. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-view.js +465 -649
  170. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.js +37 -58
  171. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.test.js +14 -26
  172. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +118 -235
  173. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dropdown-view.js +10 -11
  174. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dummy-route-view.js +28 -46
  175. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-message-view.js +131 -202
  176. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-modal-view.js +40 -80
  177. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-route-view.js +35 -61
  178. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-row-view.js +124 -221
  179. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.js +125 -213
  180. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.test.js +104 -126
  181. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-tooltip-view.js +36 -51
  182. package/src/platform-implementation-js/dom-driver/inbox/views/inboxNavItemView.js +158 -297
  183. package/src/platform-implementation-js/dom-driver/inbox/waitForAnimationClickBlockerGone.js +21 -35
  184. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +24 -43
  185. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +39 -68
  186. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +14 -19
  187. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +27 -35
  188. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +16 -22
  189. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +14 -14
  190. package/src/platform-implementation-js/driver-common/inboxAjax.js +12 -7
  191. package/src/platform-implementation-js/driver-common/requestGmailThread.js +19 -20
  192. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +197 -306
  193. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +113 -161
  194. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +1 -114
  195. package/src/platform-implementation-js/driver-interfaces/driver.js +1 -131
  196. package/src/platform-implementation-js/driver-interfaces/message-view-driver.js +4 -48
  197. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +1 -29
  198. package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +1 -32
  199. package/src/platform-implementation-js/driver-interfaces/thread-row-view-driver.js +1 -11
  200. package/src/platform-implementation-js/lib/array-to-lifetimes.js +43 -41
  201. package/src/platform-implementation-js/lib/array-to-lifetimes.test.js +139 -155
  202. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +19 -38
  203. package/src/platform-implementation-js/lib/css-selector-escape.js +7 -3
  204. package/src/platform-implementation-js/lib/dom/element-view-mapper.js +8 -11
  205. package/src/platform-implementation-js/lib/dom/get-selection.js +23 -52
  206. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +69 -101
  207. package/src/platform-implementation-js/lib/dom/is-node-in-range.js +8 -10
  208. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +15 -17
  209. package/src/platform-implementation-js/lib/dom/querySelectorOne.js +8 -11
  210. package/src/platform-implementation-js/lib/dom/set-css.js +7 -3
  211. package/src/platform-implementation-js/lib/dom/set-value-and-dispatch-event.js +9 -11
  212. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +32 -33
  213. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.test.js +23 -26
  214. package/src/platform-implementation-js/lib/handle-compose-link-chips.js +86 -149
  215. package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +42 -57
  216. package/src/platform-implementation-js/lib/make-revocable-function.js +19 -21
  217. package/src/platform-implementation-js/lib/make-revocable-function.test.js +20 -22
  218. package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +15 -17
  219. package/src/platform-implementation-js/lib/parseParamsFromRouteID.test.js +9 -18
  220. package/src/platform-implementation-js/lib/populateRouteID.js +8 -9
  221. package/src/platform-implementation-js/lib/populateRouteID.test.js +20 -19
  222. package/src/platform-implementation-js/lib/react/ElementContainer.js +23 -20
  223. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.js +10 -9
  224. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.test.js +13 -20
  225. package/src/platform-implementation-js/lib/routeIDmatchesHash.js +13 -18
  226. package/src/platform-implementation-js/lib/routeIDmatchesHash.test.js +11 -17
  227. package/src/platform-implementation-js/lib/shared-style.js +14 -13
  228. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +18 -17
  229. package/src/platform-implementation-js/lib/toLiveSet.js +17 -15
  230. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +6 -5
  231. package/src/platform-implementation-js/main.js +9 -24
  232. package/src/platform-implementation-js/namespaces/compose.js +37 -60
  233. package/src/platform-implementation-js/namespaces/conversations.js +52 -124
  234. package/src/platform-implementation-js/namespaces/global.js +27 -39
  235. package/src/platform-implementation-js/namespaces/keyboard.js +29 -33
  236. package/src/platform-implementation-js/namespaces/lists.js +25 -31
  237. package/src/platform-implementation-js/namespaces/modal.js +34 -28
  238. package/src/platform-implementation-js/namespaces/nav-menu.js +30 -45
  239. package/src/platform-implementation-js/namespaces/router.js +70 -137
  240. package/src/platform-implementation-js/namespaces/search.js +19 -17
  241. package/src/platform-implementation-js/namespaces/toolbars.js +71 -117
  242. package/src/platform-implementation-js/namespaces/user.js +36 -37
  243. package/src/platform-implementation-js/namespaces/widgets.js +54 -61
  244. package/src/platform-implementation-js/platform-implementation.js +98 -229
  245. package/src/platform-implementation-js/views/app-toolbar-button-view.js +26 -47
  246. package/src/platform-implementation-js/views/collapsible-section-view.js +66 -63
  247. package/src/platform-implementation-js/views/content-panel-view.js +28 -30
  248. package/src/platform-implementation-js/views/conversations/attachment-card-view.js +21 -44
  249. package/src/platform-implementation-js/views/conversations/custom-message-view.js +44 -104
  250. package/src/platform-implementation-js/views/conversations/message-view.js +131 -202
  251. package/src/platform-implementation-js/views/conversations/thread-view.js +75 -127
  252. package/src/platform-implementation-js/views/native-nav-item-view.js +32 -65
  253. package/src/platform-implementation-js/views/nav-item-view.js +51 -115
  254. package/src/platform-implementation-js/views/route-view/custom-route-view.js +25 -20
  255. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +18 -18
  256. package/src/platform-implementation-js/views/route-view/list-route-view.js +30 -52
  257. package/src/platform-implementation-js/views/route-view/route-view.js +24 -35
  258. package/src/platform-implementation-js/views/section-view.js +60 -52
  259. package/src/platform-implementation-js/views/thread-row-view.js +49 -74
  260. package/src/platform-implementation-js/widgets/drawer-view.js +29 -36
  261. package/src/platform-implementation-js/widgets/modal-view.js +39 -68
  262. package/src/platform-implementation-js/widgets/mole-view.js +22 -22
  263. package/src/platform-implementation-js/widgets/top-message-bar-view.js +13 -10
@@ -1,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
+ }