@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,15 +1,19 @@
1
- /* @flow */
1
+ "use strict";
2
2
 
3
- import difference from 'lodash/difference';
4
- import once from 'lodash/once';
5
- import flatMap from 'lodash/flatMap';
6
- import last from 'lodash/last';
7
- import t from 'transducers.js';
8
- import cssParser from 'postcss-selector-parser';
9
- import Logger from '../../lib/logger';
10
- import querySelector from '../../lib/dom/querySelectorOrFail';
11
-
12
- const cssProcessor = cssParser();
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _difference = _interopRequireDefault(require("lodash/difference"));
9
+ var _once = _interopRequireDefault(require("lodash/once"));
10
+ var _flatMap = _interopRequireDefault(require("lodash/flatMap"));
11
+ var _last = _interopRequireDefault(require("lodash/last"));
12
+ var _transducers = _interopRequireDefault(require("transducers.js"));
13
+ var _postcssSelectorParser = _interopRequireDefault(require("postcss-selector-parser"));
14
+ var _logger = _interopRequireDefault(require("../../lib/logger"));
15
+ var _querySelectorOrFail = _interopRequireDefault(require("../../lib/dom/querySelectorOrFail"));
16
+ const cssProcessor = (0, _postcssSelectorParser.default)();
13
17
 
14
18
  // There are specific classnames which are added when the chat or nav sidebars
15
19
  // are open which affect the layout of the page. We need to be able to activate
@@ -20,11 +24,7 @@ const cssProcessor = cssParser();
20
24
  // applied to it depending on the current page width and sidebar settings to
21
25
  // keep it lined up with the search bar.
22
26
 
23
- const getSidebarClassnames: () => {
24
- chat: ?string,
25
- nav: ?string,
26
- centerList: ?string,
27
- } = once(() => {
27
+ const getSidebarClassnames = (0, _once.default)(() => {
28
28
  // We know that the page has a CSS rule which looks like
29
29
  // .blah.chat .foo { margin-right: bigger number; margin-left: smaller number; }
30
30
  // where .chat is the chat sidebar classname that we want to know, and .foo
@@ -41,131 +41,74 @@ const getSidebarClassnames: () => {
41
41
 
42
42
  // So first we find all the classnames on the [role=application] and make a
43
43
  // regex for each one.
44
- const classRegexes: RegExp[] = Array.from(
45
- (querySelector(document, '[role=application]').classList: any)
46
- ).map((x) => new RegExp('\\.' + x + '\\b'));
44
+ const classRegexes = Array.from((0, _querySelectorOrFail.default)(document, '[role=application]').classList).map(x => new RegExp('\\.' + x + '\\b'));
47
45
  if (classRegexes.length === 0) throw new Error('no class names on element');
48
46
 
49
47
  // rules will contain both the chat and nav sidebar rules.
50
- const rules = t.toArray(
51
- Array.prototype.slice.call(document.styleSheets),
52
- t.compose(
53
- t.filter((sheet) => {
54
- try {
55
- return sheet.cssRules && sheet.cssRules.length;
56
- } catch (err) {
57
- // ignore. Sometimes pages have stylesheets that don't permit their
58
- // rules to be enumerated. Possibly caused by other extensions including
59
- // a css file from another domain?
60
- return false;
61
- }
62
- }),
63
- t.mapcat((sheet) => Array.prototype.slice.call(sheet.cssRules || [])),
64
- t.mapcat(rulesToStyleRules),
65
- // We have all page rules. Filter it down to just rules mentioning one of
66
- // [role=application]'s classnames.
67
- t.filter((rule) => classRegexes.some((r) => r.test(rule.selectorText))),
68
- // Now just the rules that contain both margin-left and -right rules.
69
- t.filter(
70
- (rule) => rule.style['margin-left'] && rule.style['margin-right']
71
- )
72
- )
73
- );
74
-
75
- const onlyNavSidebarRule = t.toArray(
76
- Array.prototype.slice.call(rules),
77
- t.compose(
78
- t.filter(
79
- (rule) =>
80
- parseFloat(rule.style['margin-left']) >
81
- parseFloat(rule.style['margin-right'])
82
- ),
83
- t.take(1)
84
- )
85
- )[0];
86
- const onlyChatSidebarRule = t.toArray(
87
- Array.prototype.slice.call(rules),
88
- t.compose(
89
- t.filter(
90
- (rule) =>
91
- parseFloat(rule.style['margin-left']) <
92
- parseFloat(rule.style['margin-right'])
93
- ),
94
- t.take(1)
95
- )
96
- )[0];
48
+ const rules = _transducers.default.toArray(Array.prototype.slice.call(document.styleSheets), _transducers.default.compose(_transducers.default.filter(sheet => {
49
+ try {
50
+ return sheet.cssRules && sheet.cssRules.length;
51
+ } catch (err) {
52
+ // ignore. Sometimes pages have stylesheets that don't permit their
53
+ // rules to be enumerated. Possibly caused by other extensions including
54
+ // a css file from another domain?
55
+ return false;
56
+ }
57
+ }), _transducers.default.mapcat(sheet => Array.prototype.slice.call(sheet.cssRules || [])), _transducers.default.mapcat(rulesToStyleRules),
58
+ // We have all page rules. Filter it down to just rules mentioning one of
59
+ // [role=application]'s classnames.
60
+ _transducers.default.filter(rule => classRegexes.some(r => r.test(rule.selectorText))),
61
+ // Now just the rules that contain both margin-left and -right rules.
62
+ _transducers.default.filter(rule => rule.style['margin-left'] && rule.style['margin-right'])));
63
+ const onlyNavSidebarRule = _transducers.default.toArray(Array.prototype.slice.call(rules), _transducers.default.compose(_transducers.default.filter(rule => parseFloat(rule.style['margin-left']) > parseFloat(rule.style['margin-right'])), _transducers.default.take(1)))[0];
64
+ const onlyChatSidebarRule = _transducers.default.toArray(Array.prototype.slice.call(rules), _transducers.default.compose(_transducers.default.filter(rule => parseFloat(rule.style['margin-left']) < parseFloat(rule.style['margin-right'])), _transducers.default.take(1)))[0];
97
65
  if (!onlyNavSidebarRule || !onlyChatSidebarRule) {
98
66
  const err = new Error('Failed to parse element CSS rules');
99
- Logger.error(err, {
67
+ _logger.default.error(err, {
100
68
  rulesCount: rules.length,
101
69
  hasOnlyNavSidebarRule: !!onlyNavSidebarRule,
102
- hasOnlyChatSidebarRule: !!onlyChatSidebarRule,
70
+ hasOnlyChatSidebarRule: !!onlyChatSidebarRule
103
71
  });
104
72
  throw err;
105
73
  }
106
-
107
- function getMentionedClassNames(node): string[] {
74
+ function getMentionedClassNames(node) {
108
75
  switch (node.type) {
109
76
  case 'root':
110
77
  case 'selector':
111
- return flatMap(node.nodes, getMentionedClassNames);
78
+ return (0, _flatMap.default)(node.nodes, getMentionedClassNames);
112
79
  case 'class':
113
80
  return [node.value];
114
81
  default:
115
82
  return [];
116
83
  }
117
84
  }
118
-
119
- const onlyNavSidebarRuleClassNames: string[] = getMentionedClassNames(
120
- cssProcessor.process(onlyNavSidebarRule.selectorText).res
121
- );
122
- const onlyChatSidebarRuleClassNames: string[] = getMentionedClassNames(
123
- cssProcessor.process(onlyChatSidebarRule.selectorText).res
124
- );
125
-
126
- const chatSidebarClassNames: string[] = difference(
127
- onlyChatSidebarRuleClassNames,
128
- onlyNavSidebarRuleClassNames
129
- );
130
-
131
- const navSidebarClassNames: string[] = difference(
132
- onlyNavSidebarRuleClassNames,
133
- onlyChatSidebarRuleClassNames
134
- );
135
-
136
- const centerListClassName: ?string =
137
- last(onlyNavSidebarRuleClassNames) === last(onlyChatSidebarRuleClassNames)
138
- ? last(onlyNavSidebarRuleClassNames)
139
- : null;
140
-
141
- if (
142
- chatSidebarClassNames.length !== 1 ||
143
- navSidebarClassNames.length !== 1 ||
144
- !centerListClassName
145
- ) {
146
- Logger.error(new Error('Failed to find sidebar classnames'), {
85
+ const onlyNavSidebarRuleClassNames = getMentionedClassNames(cssProcessor.process(onlyNavSidebarRule.selectorText).res);
86
+ const onlyChatSidebarRuleClassNames = getMentionedClassNames(cssProcessor.process(onlyChatSidebarRule.selectorText).res);
87
+ const chatSidebarClassNames = (0, _difference.default)(onlyChatSidebarRuleClassNames, onlyNavSidebarRuleClassNames);
88
+ const navSidebarClassNames = (0, _difference.default)(onlyNavSidebarRuleClassNames, onlyChatSidebarRuleClassNames);
89
+ const centerListClassName = (0, _last.default)(onlyNavSidebarRuleClassNames) === (0, _last.default)(onlyChatSidebarRuleClassNames) ? (0, _last.default)(onlyNavSidebarRuleClassNames) : null;
90
+ if (chatSidebarClassNames.length !== 1 || navSidebarClassNames.length !== 1 || !centerListClassName) {
91
+ _logger.default.error(new Error('Failed to find sidebar classnames'), {
147
92
  onlyNavSidebarRuleClassNames,
148
93
  onlyChatSidebarRuleClassNames,
149
94
  chatSidebarClassNames,
150
95
  navSidebarClassNames,
151
- centerListClassName,
96
+ centerListClassName
152
97
  });
153
98
  }
154
-
155
99
  return {
156
100
  chat: chatSidebarClassNames[0],
157
101
  nav: navSidebarClassNames[0],
158
- centerList: centerListClassName,
102
+ centerList: centerListClassName
159
103
  };
160
104
  });
161
-
162
- export default getSidebarClassnames;
163
-
164
- function rulesToStyleRules(rule: CSSRule): Object[] {
105
+ var _default = getSidebarClassnames;
106
+ exports.default = _default;
107
+ function rulesToStyleRules(rule) {
165
108
  if (rule instanceof window.CSSMediaRule) {
166
- return flatMap(rule.cssRules, rulesToStyleRules);
109
+ return (0, _flatMap.default)(rule.cssRules, rulesToStyleRules);
167
110
  } else if (rule instanceof window.CSSStyleRule) {
168
111
  return [rule];
169
112
  }
170
113
  return [];
171
- }
114
+ }
@@ -1,8 +1,8 @@
1
- /* @flow */
1
+ "use strict";
2
2
 
3
- import getSidebarClassnames from './getSidebarClassnames';
4
-
5
- (document.documentElement: any).innerHTML = `
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _getSidebarClassnames = _interopRequireDefault(require("./getSidebarClassnames"));
5
+ document.documentElement.innerHTML = `
6
6
  <head>
7
7
  <style type="text/css">
8
8
  .blah {
@@ -64,11 +64,10 @@ import getSidebarClassnames from './getSidebarClassnames';
64
64
  </div>
65
65
  </body>
66
66
  `;
67
-
68
67
  test('works', () => {
69
- expect(getSidebarClassnames()).toEqual({
68
+ expect((0, _getSidebarClassnames.default)()).toEqual({
70
69
  chat: 'm',
71
70
  nav: 'M',
72
- centerList: 'bz',
71
+ centerList: 'bz'
73
72
  });
74
- });
73
+ });
@@ -1,18 +1,16 @@
1
- /* @flow */
1
+ "use strict";
2
2
 
3
- import includes from 'lodash/includes';
4
- import type InboxDriver from './inbox-driver';
5
- import populateRouteID from '../../lib/populateRouteID';
6
- import type { RouteParams } from '../../namespaces/router';
7
- import routeIDmatchesHash from '../../lib/routeIDmatchesHash';
8
- import { NATIVE_ROUTE_IDS } from '../../constants/router';
9
-
10
- export default function gotoView(
11
- driver: InboxDriver,
12
- routeID: string,
13
- params: ?RouteParams
14
- ): void {
15
- if (includes(Object.values(NATIVE_ROUTE_IDS), routeID)) {
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = gotoView;
8
+ var _includes = _interopRequireDefault(require("lodash/includes"));
9
+ var _populateRouteID = _interopRequireDefault(require("../../lib/populateRouteID"));
10
+ var _routeIDmatchesHash = _interopRequireDefault(require("../../lib/routeIDmatchesHash"));
11
+ var _router = require("../../constants/router");
12
+ function gotoView(driver, routeID, params) {
13
+ if ((0, _includes.default)(Object.values(_router.NATIVE_ROUTE_IDS), routeID)) {
16
14
  throw new Error('NativeRouteIDs are not currently supported in Inbox');
17
15
  }
18
16
  if (!driver.getCustomRouteIDs().has(routeID)) {
@@ -24,7 +22,7 @@ export default function gotoView(
24
22
  if (!params) {
25
23
  // If params were given, then we don't assume it was a resolved/populated URL
26
24
  for (let routeIDs of driver.getCustomRouteIDs()) {
27
- if (routeIDmatchesHash(routeIDs, routeID)) {
25
+ if ((0, _routeIDmatchesHash.default)(routeIDs, routeID)) {
28
26
  foundRouteID = true;
29
27
  break;
30
28
  }
@@ -34,10 +32,8 @@ export default function gotoView(
34
32
  throw new Error(`Invalid routeID: ${routeID}`);
35
33
  }
36
34
  if (!startedWithHash) {
37
- driver
38
- .getLogger()
39
- .deprecationWarning('Router.goto resolved routeID without "#" prefix');
35
+ driver.getLogger().deprecationWarning('Router.goto resolved routeID without "#" prefix');
40
36
  }
41
37
  }
42
- document.location.hash = populateRouteID(routeID, params);
43
- }
38
+ document.location.hash = (0, _populateRouteID.default)(routeID, params);
39
+ }
@@ -1,29 +1,28 @@
1
- /* @flow */
1
+ "use strict";
2
2
 
3
- import gotoView from './gotoView';
4
-
5
- function makeDriver(): any {
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _gotoView = _interopRequireDefault(require("./gotoView"));
5
+ function makeDriver() {
6
6
  const customRouteIDs = new Set();
7
7
  return {
8
- getCustomRouteIDs: () => customRouteIDs,
8
+ getCustomRouteIDs: () => customRouteIDs
9
9
  };
10
10
  }
11
-
12
11
  test('works for custom view', () => {
13
12
  const driver = makeDriver();
14
13
  driver.getCustomRouteIDs().add('example/:bar');
15
- gotoView(driver, 'example/:bar', { bar: 'foo' });
14
+ (0, _gotoView.default)(driver, 'example/:bar', {
15
+ bar: 'foo'
16
+ });
16
17
  expect(document.location.hash).toBe('#example/foo');
17
18
  });
18
-
19
19
  test('fails for unknown route id', () => {
20
- expect(() =>
21
- gotoView(makeDriver(), 'example/:bar', { bar: 'foo' })
22
- ).toThrowError('Invalid routeID: example/:bar');
20
+ expect(() => (0, _gotoView.default)(makeDriver(), 'example/:bar', {
21
+ bar: 'foo'
22
+ })).toThrowError('Invalid routeID: example/:bar');
23
23
  });
24
-
25
24
  test('fails for native route ids', () => {
26
- expect(() =>
27
- gotoView(makeDriver(), 'inbox/:threadID', { threadID: 'abc' })
28
- ).toThrowError('NativeRouteIDs are not currently supported in Inbox');
29
- });
25
+ expect(() => (0, _gotoView.default)(makeDriver(), 'inbox/:threadID', {
26
+ threadID: 'abc'
27
+ })).toThrowError('NativeRouteIDs are not currently supported in Inbox');
28
+ });
@@ -1,94 +1,90 @@
1
- /* @flow */
2
-
3
- import Kefir from 'kefir';
4
-
5
- import streamWaitFor from '../../lib/stream-wait-for';
6
- import querySelector from '../../lib/dom/querySelectorOrFail';
7
- import makeMutationObserverChunkedStream from '../../lib/dom/make-mutation-observer-chunked-stream';
8
-
9
- const elements = streamWaitFor(() =>
10
- document.querySelector(
11
- 'body > div[id][jsaction] > div[id] > div[class][jsaction][aria-hidden]'
12
- )
13
- )
14
- .map((googleNotice: HTMLElement) => {
15
- const noticeContainer = googleNotice.parentElement;
16
- if (!noticeContainer) throw new Error('Should not happen');
17
- let sdkNotice = noticeContainer.querySelector('.inboxsdk__butterbar');
18
- if (!sdkNotice) {
19
- sdkNotice = document.createElement('div');
20
- sdkNotice.className = googleNotice.className + ' inboxsdk__butterbar';
21
- sdkNotice.style.display = 'none';
22
- noticeContainer.insertBefore(sdkNotice, googleNotice.nextSibling);
23
- }
24
- return { noticeContainer, googleNotice, sdkNotice };
25
- })
26
- .toProperty();
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 _kefir = _interopRequireDefault(require("kefir"));
9
+ var _streamWaitFor = _interopRequireDefault(require("../../lib/stream-wait-for"));
10
+ var _querySelectorOrFail = _interopRequireDefault(require("../../lib/dom/querySelectorOrFail"));
11
+ var _makeMutationObserverChunkedStream = _interopRequireDefault(require("../../lib/dom/make-mutation-observer-chunked-stream"));
12
+ const elements = (0, _streamWaitFor.default)(() => document.querySelector('body > div[id][jsaction] > div[id] > div[class][jsaction][aria-hidden]')).map(googleNotice => {
13
+ const noticeContainer = googleNotice.parentElement;
14
+ if (!noticeContainer) throw new Error('Should not happen');
15
+ let sdkNotice = noticeContainer.querySelector('.inboxsdk__butterbar');
16
+ if (!sdkNotice) {
17
+ sdkNotice = document.createElement('div');
18
+ sdkNotice.className = googleNotice.className + ' inboxsdk__butterbar';
19
+ sdkNotice.style.display = 'none';
20
+ noticeContainer.insertBefore(sdkNotice, googleNotice.nextSibling);
21
+ }
22
+ return {
23
+ noticeContainer,
24
+ googleNotice,
25
+ sdkNotice
26
+ };
27
+ }).toProperty();
27
28
 
28
29
  // We queue our notices separately from the native ones in Inbox.
29
30
 
30
- const sdkNoticeIdChanges = elements.flatMapLatest(({ sdkNotice }) =>
31
- makeMutationObserverChunkedStream(sdkNotice, {
31
+ const sdkNoticeIdChanges = elements.flatMapLatest(_ref => {
32
+ let {
33
+ sdkNotice
34
+ } = _ref;
35
+ return (0, _makeMutationObserverChunkedStream.default)(sdkNotice, {
32
36
  attributes: true,
33
- attributeFilter: ['data-inboxsdk-id'],
34
- }).map(() => sdkNotice.getAttribute('data-inboxsdk-id'))
35
- );
36
-
37
- const sdkRemovedNotice = sdkNoticeIdChanges.filter((id) => id == null);
38
-
37
+ attributeFilter: ['data-inboxsdk-id']
38
+ }).map(() => sdkNotice.getAttribute('data-inboxsdk-id'));
39
+ });
40
+ const sdkRemovedNotice = sdkNoticeIdChanges.filter(id => id == null);
39
41
  const noticeAvailableStream = sdkRemovedNotice;
40
-
41
42
  function hideMessage(noticeContainer, googleNotice, sdkNotice) {
42
43
  Object.assign(sdkNotice.style, {
43
44
  opacity: '0',
44
45
  transform: '',
45
- transition: 'opacity 100ms',
46
+ transition: 'opacity 100ms'
46
47
  });
47
48
  sdkNotice.removeAttribute('data-inboxsdk-id');
48
- Kefir.fromEvents(sdkNotice, 'transitionend')
49
- .merge(Kefir.later(200)) // transition might not finish if element is hidden
50
- .takeUntilBy(sdkNoticeIdChanges.filter((id) => id != null))
51
- .onValue(() => {
52
- Object.assign(sdkNotice.style, {
53
- display: 'none',
54
- opacity: '',
55
- transition: '',
56
- });
49
+ _kefir.default.fromEvents(sdkNotice, 'transitionend').merge(_kefir.default.later(200)) // transition might not finish if element is hidden
50
+ .takeUntilBy(sdkNoticeIdChanges.filter(id => id != null)).onValue(() => {
51
+ Object.assign(sdkNotice.style, {
52
+ display: 'none',
53
+ opacity: '',
54
+ transition: ''
57
55
  });
56
+ });
58
57
  }
59
-
60
- export default class InboxButterBarDriver {
58
+ class InboxButterBarDriver {
61
59
  constructor() {
62
60
  // Force stream to be in active state. sdkRemovedNotice is prone to missing
63
61
  // events if it only becomes active once a message has started.
64
62
  noticeAvailableStream.onValue(() => {});
65
63
  }
66
-
67
- getNoticeAvailableStream(): Kefir.Observable<any> {
64
+ getNoticeAvailableStream() {
68
65
  return noticeAvailableStream;
69
66
  }
70
-
71
- getSharedMessageQueue(): Array<Object> {
72
- const attr = (document.head: any).getAttribute(
73
- 'data-inboxsdk-butterbar-queue'
74
- );
67
+ getSharedMessageQueue() {
68
+ const attr = document.head.getAttribute('data-inboxsdk-butterbar-queue');
75
69
  return attr ? JSON.parse(attr) : [];
76
70
  }
77
-
78
- setSharedMessageQueue(queue: Object) {
71
+ setSharedMessageQueue(queue) {
79
72
  const attr = JSON.stringify(queue);
80
- (document.head: any).setAttribute('data-inboxsdk-butterbar-queue', attr);
73
+ document.head.setAttribute('data-inboxsdk-butterbar-queue', attr);
81
74
  }
82
75
 
83
76
  // Immediately displays the message, overriding anything else on the screen.
84
77
  // Priority and queuing logic is handled by butter-bar.js above this.
85
- showMessage(rawOptions: Object): { destroy(): void } {
78
+ showMessage(rawOptions) {
86
79
  const instanceId = Date.now() + '-' + Math.random();
87
-
88
- elements.take(1).onValue(({ noticeContainer, googleNotice, sdkNotice }) => {
80
+ elements.take(1).onValue(_ref2 => {
81
+ let {
82
+ noticeContainer,
83
+ googleNotice,
84
+ sdkNotice
85
+ } = _ref2;
89
86
  sdkNotice.className = googleNotice.className;
90
87
  sdkNotice.classList.add('inboxsdk__butterbar');
91
-
92
88
  if (rawOptions.html) {
93
89
  sdkNotice.innerHTML = rawOptions.html;
94
90
  } else if (rawOptions.el) {
@@ -97,60 +93,56 @@ export default class InboxButterBarDriver {
97
93
  } else {
98
94
  sdkNotice.textContent = rawOptions.text;
99
95
  }
100
-
101
96
  if (rawOptions.className) {
102
97
  sdkNotice.classList.add(rawOptions.className);
103
98
  }
104
99
 
105
100
  // If the sdkNotice is already up, just flash it out and in instead of
106
101
  // animating it up into position.
107
- if (
108
- sdkNotice.style.display === 'block' &&
109
- getComputedStyle(sdkNotice).opacity === '1'
110
- ) {
102
+ if (sdkNotice.style.display === 'block' && getComputedStyle(sdkNotice).opacity === '1') {
111
103
  Object.assign(sdkNotice.style, {
112
104
  opacity: '0',
113
105
  transform: 'none',
114
- transition: 'none',
106
+ transition: 'none'
115
107
  });
116
108
  sdkNotice.offsetHeight; // force relayout
117
109
  Object.assign(sdkNotice.style, {
118
110
  opacity: '1',
119
- transition: '',
111
+ transition: ''
120
112
  });
121
113
  } else {
122
114
  Object.assign(sdkNotice.style, {
123
115
  opacity: '0',
124
116
  transform: '',
125
117
  transition: '',
126
- display: 'block',
118
+ display: 'block'
127
119
  });
128
120
  sdkNotice.offsetHeight; // force relayout
129
121
  Object.assign(sdkNotice.style, {
130
122
  opacity: '1',
131
- transform: 'none',
123
+ transform: 'none'
132
124
  });
133
125
  }
134
-
135
126
  sdkNotice.setAttribute('data-inboxsdk-id', instanceId);
136
127
  });
137
-
138
128
  return {
139
129
  destroy() {
140
- elements
141
- .take(1)
142
- .onValue(({ noticeContainer, googleNotice, sdkNotice }) => {
143
- if (sdkNotice.getAttribute('data-inboxsdk-id') === instanceId) {
144
- if (rawOptions.className)
145
- sdkNotice.classList.remove(rawOptions.className);
146
- hideMessage(noticeContainer, googleNotice, sdkNotice);
147
- }
148
- });
149
- },
130
+ elements.take(1).onValue(_ref3 => {
131
+ let {
132
+ noticeContainer,
133
+ googleNotice,
134
+ sdkNotice
135
+ } = _ref3;
136
+ if (sdkNotice.getAttribute('data-inboxsdk-id') === instanceId) {
137
+ if (rawOptions.className) sdkNotice.classList.remove(rawOptions.className);
138
+ hideMessage(noticeContainer, googleNotice, sdkNotice);
139
+ }
140
+ });
141
+ }
150
142
  };
151
143
  }
152
-
153
144
  hideGmailMessage() {
154
145
  // No-op in Inbox because we don't touch the native messages
155
146
  }
156
147
  }
148
+ exports.default = InboxButterBarDriver;