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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/inboxsdk.js +1 -1
  2. package/package.json +5 -1
  3. package/src/inboxsdk-js/check-requirements.js +7 -3
  4. package/src/inboxsdk-js/header.js +1 -0
  5. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.js +5 -6
  6. package/src/inboxsdk-js/inboxsdk-NONREMOTE.js +4 -3
  7. package/src/inboxsdk-js/inboxsdk-REMOTE.js +3 -1
  8. package/src/inboxsdk-js/inboxsdk-TEST.js +4 -3
  9. package/src/inboxsdk-js/inboxsdk.js +33 -39
  10. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.js +15 -18
  11. package/src/inboxsdk.d.ts +2 -0
  12. package/src/injected-js/gmail/modify-suggestions.test.js +8 -9
  13. package/src/injected-js/gmail/setup-gmail-interceptor.js +340 -579
  14. package/src/injected-js/gmail/sync-compose-request-processor.test.js +39 -49
  15. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +20 -33
  16. package/src/injected-js/gmail/thread-identifier/index.js +57 -93
  17. package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +22 -31
  18. package/src/injected-js/gmail/thread-identifier/thread-row-parser.test.js +12 -28
  19. package/src/injected-js/inbox/setupAjaxInterceptor.js +64 -121
  20. package/src/injected-js/inbox/setupClickAndGetNewIframeSrc.js +53 -66
  21. package/src/injected-js/inbox/setupComposeViewDraftIDFinder.js +20 -36
  22. package/src/injected-js/inbox/setupInboxFakeWindowResizeListener.js +13 -13
  23. package/src/injected-js/main.js +11 -24
  24. package/src/injected-js/message-metadata-holder.js +52 -82
  25. package/src/injected-js/setup-data-exposer.js +89 -148
  26. package/src/injected-js/setup-error-silencer.js +21 -21
  27. package/src/injected-js/setup-event-reemitter.js +30 -22
  28. package/src/injected-js/setupInboxCustomViewLinkFixer.js +24 -29
  29. package/src/injected-js/setupPushStateListener.js +18 -11
  30. package/src/injected-js/xhr-helper.js +62 -65
  31. package/src/injected-js/xhr-proxy-factory.js +195 -445
  32. package/src/injected-js/xhr-proxy-factory.test.js +824 -991
  33. package/src/platform-implementation-js/constants/router.js +14 -9
  34. package/src/platform-implementation-js/constants/toolbars.js +8 -3
  35. package/src/platform-implementation-js/dom-driver/gmail/custom-style.js +13 -13
  36. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +115 -136
  37. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +13 -14
  38. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +27 -48
  39. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +31 -42
  40. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +30 -40
  41. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +10 -18
  42. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +21 -28
  43. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +33 -45
  44. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +31 -49
  45. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +58 -65
  46. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +40 -124
  47. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +17 -22
  48. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.test.js +10 -11
  49. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +44 -80
  50. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +19 -26
  51. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +71 -147
  52. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +91 -148
  53. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +150 -166
  54. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.test.js +70 -120
  55. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +15 -15
  56. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +44 -67
  57. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +230 -379
  58. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.test.js +121 -307
  59. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +17 -24
  60. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +41 -49
  61. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +30 -40
  62. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +28 -60
  63. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +61 -133
  64. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +30 -42
  65. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.test.js +52 -46
  66. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +354 -694
  67. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +77 -93
  68. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +35 -82
  69. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.test.js +44 -94
  70. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +12 -19
  71. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +17 -29
  72. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.js +26 -26
  73. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +391 -797
  74. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +7 -9
  75. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +60 -109
  76. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +95 -135
  77. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +103 -211
  78. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.test.js +61 -61
  79. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +17 -17
  80. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +188 -541
  81. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +67 -135
  82. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +27 -49
  83. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-inner-sidebar.js +7 -13
  84. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-outer-sidebar.js +9 -22
  85. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +36 -63
  86. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +38 -113
  87. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +11 -16
  88. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +11 -17
  89. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +8 -11
  90. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +27 -47
  91. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +11 -24
  92. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +59 -111
  93. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +15 -14
  94. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +11 -17
  95. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +18 -24
  96. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +19 -23
  97. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +11 -19
  98. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +141 -376
  99. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +17 -28
  100. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +34 -70
  101. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +10 -17
  102. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +83 -137
  103. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +10 -19
  104. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +632 -1190
  105. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +29 -38
  106. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +327 -617
  107. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +26 -49
  108. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +188 -380
  109. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +104 -194
  110. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +382 -811
  111. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view/add-icon-area.js +34 -58
  112. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.js +330 -581
  113. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.test.js +123 -277
  114. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +15 -35
  115. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +216 -571
  116. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +152 -336
  117. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +87 -211
  118. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +10 -11
  119. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +20 -29
  120. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +41 -76
  121. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +45 -99
  122. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +76 -128
  123. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +128 -319
  124. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +45 -78
  125. package/src/platform-implementation-js/dom-driver/inbox/__mocks__/getSidebarClassnames.js +8 -4
  126. package/src/platform-implementation-js/dom-driver/inbox/addNavItem.js +36 -54
  127. package/src/platform-implementation-js/dom-driver/inbox/addRecipientRow.js +35 -53
  128. package/src/platform-implementation-js/dom-driver/inbox/createLink.js +13 -15
  129. package/src/platform-implementation-js/dom-driver/inbox/createLink.test.js +15 -18
  130. package/src/platform-implementation-js/dom-driver/inbox/custom-style.js +14 -13
  131. package/src/platform-implementation-js/dom-driver/inbox/detection/appToolbarLocation/parser.js +14 -20
  132. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentCard/parser.js +14 -13
  133. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentOverlay/parser.js +35 -67
  134. package/src/platform-implementation-js/dom-driver/inbox/detection/chatSidebar/parser.js +16 -18
  135. package/src/platform-implementation-js/dom-driver/inbox/detection/compose/parser.js +68 -185
  136. package/src/platform-implementation-js/dom-driver/inbox/detection/message/parser.js +28 -56
  137. package/src/platform-implementation-js/dom-driver/inbox/detection/nativeDrawer/parser.js +12 -10
  138. package/src/platform-implementation-js/dom-driver/inbox/detection/searchBar/parser.js +16 -16
  139. package/src/platform-implementation-js/dom-driver/inbox/detection/thread/parser.js +24 -35
  140. package/src/platform-implementation-js/dom-driver/inbox/detection/thread-row/parser.js +37 -89
  141. package/src/platform-implementation-js/dom-driver/inbox/getComposeViewDriverLiveSet.js +56 -78
  142. package/src/platform-implementation-js/dom-driver/inbox/getInboxMessageIdForInboxThreadId.js +26 -32
  143. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.js +52 -109
  144. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.test.js +7 -8
  145. package/src/platform-implementation-js/dom-driver/inbox/gotoView.js +16 -20
  146. package/src/platform-implementation-js/dom-driver/inbox/gotoView.test.js +15 -16
  147. package/src/platform-implementation-js/dom-driver/inbox/inbox-butter-bar-driver.js +75 -83
  148. package/src/platform-implementation-js/dom-driver/inbox/inbox-driver.js +530 -822
  149. package/src/platform-implementation-js/dom-driver/inbox/inbox-page-communicator.js +48 -61
  150. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.js +9 -12
  151. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.test.js +12 -19
  152. package/src/platform-implementation-js/dom-driver/inbox/makePageParserTree.js +24 -33
  153. package/src/platform-implementation-js/dom-driver/inbox/pageParserOptions.js +201 -388
  154. package/src/platform-implementation-js/dom-driver/inbox/registerSearchSuggestionsProvider.js +249 -265
  155. package/src/platform-implementation-js/dom-driver/inbox/setupCustomAutocompleteSelectionHandling.js +84 -152
  156. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.js +55 -67
  157. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.test.js +43 -65
  158. package/src/platform-implementation-js/dom-driver/inbox/views/InboxLabelView.js +31 -56
  159. package/src/platform-implementation-js/dom-driver/inbox/views/InboxMoleViewDriver.js +191 -294
  160. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarButtonView.js +32 -45
  161. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarView.js +21 -39
  162. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-sidebar-view.js +153 -240
  163. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-button-view.js +75 -150
  164. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-tooltip-view.js +20 -37
  165. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-card-view.js +60 -114
  166. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-overlay-view.js +47 -65
  167. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +41 -52
  168. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-chat-sidebar-view.js +27 -36
  169. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-button-view.js +52 -80
  170. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-view.js +465 -649
  171. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.js +37 -58
  172. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.test.js +14 -26
  173. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +118 -235
  174. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dropdown-view.js +10 -11
  175. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dummy-route-view.js +28 -46
  176. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-message-view.js +131 -202
  177. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-modal-view.js +40 -80
  178. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-route-view.js +35 -61
  179. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-row-view.js +124 -221
  180. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.js +125 -213
  181. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.test.js +104 -126
  182. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-tooltip-view.js +36 -51
  183. package/src/platform-implementation-js/dom-driver/inbox/views/inboxNavItemView.js +158 -297
  184. package/src/platform-implementation-js/dom-driver/inbox/waitForAnimationClickBlockerGone.js +21 -35
  185. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +24 -43
  186. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +39 -68
  187. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +14 -19
  188. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +27 -35
  189. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +16 -22
  190. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +14 -14
  191. package/src/platform-implementation-js/driver-common/inboxAjax.js +12 -7
  192. package/src/platform-implementation-js/driver-common/requestGmailThread.js +19 -20
  193. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +197 -306
  194. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +113 -161
  195. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +1 -114
  196. package/src/platform-implementation-js/driver-interfaces/driver.js +1 -131
  197. package/src/platform-implementation-js/driver-interfaces/message-view-driver.js +4 -48
  198. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +1 -29
  199. package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +1 -32
  200. package/src/platform-implementation-js/driver-interfaces/thread-row-view-driver.js +1 -11
  201. package/src/platform-implementation-js/lib/array-to-lifetimes.js +43 -41
  202. package/src/platform-implementation-js/lib/array-to-lifetimes.test.js +139 -155
  203. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +19 -38
  204. package/src/platform-implementation-js/lib/css-selector-escape.js +7 -3
  205. package/src/platform-implementation-js/lib/dom/element-view-mapper.js +8 -11
  206. package/src/platform-implementation-js/lib/dom/get-selection.js +23 -52
  207. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +69 -101
  208. package/src/platform-implementation-js/lib/dom/is-node-in-range.js +8 -10
  209. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +15 -17
  210. package/src/platform-implementation-js/lib/dom/querySelectorOne.js +8 -11
  211. package/src/platform-implementation-js/lib/dom/set-css.js +7 -3
  212. package/src/platform-implementation-js/lib/dom/set-value-and-dispatch-event.js +9 -11
  213. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +32 -33
  214. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.test.js +23 -26
  215. package/src/platform-implementation-js/lib/handle-compose-link-chips.js +86 -149
  216. package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +42 -57
  217. package/src/platform-implementation-js/lib/make-revocable-function.js +19 -21
  218. package/src/platform-implementation-js/lib/make-revocable-function.test.js +20 -22
  219. package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +15 -17
  220. package/src/platform-implementation-js/lib/parseParamsFromRouteID.test.js +9 -18
  221. package/src/platform-implementation-js/lib/populateRouteID.js +8 -9
  222. package/src/platform-implementation-js/lib/populateRouteID.test.js +20 -19
  223. package/src/platform-implementation-js/lib/react/ElementContainer.js +23 -20
  224. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.js +10 -9
  225. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.test.js +13 -20
  226. package/src/platform-implementation-js/lib/routeIDmatchesHash.js +13 -18
  227. package/src/platform-implementation-js/lib/routeIDmatchesHash.test.js +11 -17
  228. package/src/platform-implementation-js/lib/shared-style.js +14 -13
  229. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +18 -17
  230. package/src/platform-implementation-js/lib/toLiveSet.js +17 -15
  231. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +6 -5
  232. package/src/platform-implementation-js/main.js +9 -24
  233. package/src/platform-implementation-js/namespaces/compose.js +37 -60
  234. package/src/platform-implementation-js/namespaces/conversations.js +52 -124
  235. package/src/platform-implementation-js/namespaces/global.js +27 -39
  236. package/src/platform-implementation-js/namespaces/keyboard.js +29 -33
  237. package/src/platform-implementation-js/namespaces/lists.js +25 -31
  238. package/src/platform-implementation-js/namespaces/modal.js +34 -28
  239. package/src/platform-implementation-js/namespaces/nav-menu.js +30 -45
  240. package/src/platform-implementation-js/namespaces/router.js +70 -137
  241. package/src/platform-implementation-js/namespaces/search.js +19 -17
  242. package/src/platform-implementation-js/namespaces/toolbars.js +71 -117
  243. package/src/platform-implementation-js/namespaces/user.js +36 -37
  244. package/src/platform-implementation-js/namespaces/widgets.js +54 -61
  245. package/src/platform-implementation-js/platform-implementation.js +98 -229
  246. package/src/platform-implementation-js/views/app-toolbar-button-view.js +26 -47
  247. package/src/platform-implementation-js/views/collapsible-section-view.js +66 -63
  248. package/src/platform-implementation-js/views/content-panel-view.js +28 -30
  249. package/src/platform-implementation-js/views/conversations/attachment-card-view.js +21 -44
  250. package/src/platform-implementation-js/views/conversations/custom-message-view.js +44 -104
  251. package/src/platform-implementation-js/views/conversations/message-view.js +131 -202
  252. package/src/platform-implementation-js/views/conversations/thread-view.js +75 -127
  253. package/src/platform-implementation-js/views/native-nav-item-view.js +32 -65
  254. package/src/platform-implementation-js/views/nav-item-view.js +51 -115
  255. package/src/platform-implementation-js/views/route-view/custom-route-view.js +25 -20
  256. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +18 -18
  257. package/src/platform-implementation-js/views/route-view/list-route-view.js +30 -52
  258. package/src/platform-implementation-js/views/route-view/route-view.js +24 -35
  259. package/src/platform-implementation-js/views/section-view.js +60 -52
  260. package/src/platform-implementation-js/views/thread-row-view.js +49 -74
  261. package/src/platform-implementation-js/widgets/drawer-view.js +29 -36
  262. package/src/platform-implementation-js/widgets/modal-view.js +39 -68
  263. package/src/platform-implementation-js/widgets/mole-view.js +22 -22
  264. package/src/platform-implementation-js/widgets/top-message-bar-view.js +13 -10
@@ -1,6 +1,10 @@
1
- /* @flow */
1
+ "use strict";
2
2
 
3
- export const NATIVE_ROUTE_IDS: { [k: string]: string } = Object.freeze({
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ROUTE_TYPES = exports.NATIVE_ROUTE_IDS = exports.NATIVE_LIST_ROUTE_IDS = void 0;
7
+ const NATIVE_ROUTE_IDS = Object.freeze({
4
8
  INBOX: 'inbox/:page',
5
9
  ALL_MAIL: 'all/:page',
6
10
  SENT: 'sent/:page',
@@ -23,10 +27,10 @@ export const NATIVE_ROUTE_IDS: { [k: string]: string } = Object.freeze({
23
27
  CHAT_WELCOME: 'chat/welcome',
24
28
  SPACES: 'rooms/welcome',
25
29
  MEET: 'calls',
26
- ANY_LIST: '*',
30
+ ANY_LIST: '*'
27
31
  });
28
-
29
- export const NATIVE_LIST_ROUTE_IDS: { [k: string]: string } = Object.freeze({
32
+ exports.NATIVE_ROUTE_IDS = NATIVE_ROUTE_IDS;
33
+ const NATIVE_LIST_ROUTE_IDS = Object.freeze({
30
34
  INBOX: NATIVE_ROUTE_IDS.INBOX,
31
35
  ALL_MAIL: NATIVE_ROUTE_IDS.ALL_MAIL,
32
36
  SENT: NATIVE_ROUTE_IDS.SENT,
@@ -40,14 +44,15 @@ export const NATIVE_LIST_ROUTE_IDS: { [k: string]: string } = Object.freeze({
40
44
  SPAM: NATIVE_ROUTE_IDS.SPAM,
41
45
  IMPORTANT: NATIVE_ROUTE_IDS.IMPORTANT,
42
46
  SEARCH: NATIVE_ROUTE_IDS.SEARCH,
43
- ANY_LIST: NATIVE_ROUTE_IDS.ANY_LIST,
47
+ ANY_LIST: NATIVE_ROUTE_IDS.ANY_LIST
44
48
  });
45
-
46
- export const ROUTE_TYPES: { [k: string]: string } = Object.freeze({
49
+ exports.NATIVE_LIST_ROUTE_IDS = NATIVE_LIST_ROUTE_IDS;
50
+ const ROUTE_TYPES = Object.freeze({
47
51
  LIST: 'LIST',
48
52
  THREAD: 'THREAD',
49
53
  SETTINGS: 'SETTINGS',
50
54
  CHAT: 'CHAT',
51
55
  CUSTOM: 'CUSTOM',
52
- UNKNOWN: 'UNKNOWN',
56
+ UNKNOWN: 'UNKNOWN'
53
57
  });
58
+ exports.ROUTE_TYPES = ROUTE_TYPES;
@@ -1,7 +1,12 @@
1
- /* @flow */
1
+ "use strict";
2
2
 
3
- export const SECTION_NAMES: { [k: string]: string } = Object.freeze({
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SECTION_NAMES = void 0;
7
+ const SECTION_NAMES = Object.freeze({
4
8
  INBOX_STATE: 'INBOX_STATE',
5
9
  METADATA_STATE: 'METADATA_STATE',
6
- OTHER: 'OTHER',
10
+ OTHER: 'OTHER'
7
11
  });
12
+ exports.SECTION_NAMES = SECTION_NAMES;
@@ -1,22 +1,22 @@
1
- /* @flow */
1
+ "use strict";
2
2
 
3
- import type Kefir from 'kefir';
4
- import udKefir from 'ud-kefir';
5
- import rewriteCssWithIdMap from '../../lib/rewriteCssWithIdMap';
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = customStyle;
8
+ var _udKefir = _interopRequireDefault(require("ud-kefir"));
9
+ var _rewriteCssWithIdMap = _interopRequireDefault(require("../../lib/rewriteCssWithIdMap"));
6
10
  var fs = require('fs');
7
- var cssContent: Kefir.Observable<string> = udKefir(
8
- module,
9
- fs.readFileSync(__dirname + '/../../style/gmail.css', 'utf8')
10
- );
11
-
12
- export default function customStyle() {
11
+ var cssContent = (0, _udKefir.default)(module, fs.readFileSync(__dirname + '/../../style/gmail.css', 'utf8'));
12
+ function customStyle() {
13
13
  if (!document.getElementById('inboxsdk__style')) {
14
14
  var style = document.createElement('style');
15
15
  style.id = 'inboxsdk__style';
16
- cssContent.onValue((css) => {
17
- style.textContent = rewriteCssWithIdMap(css);
16
+ cssContent.onValue(css => {
17
+ style.textContent = (0, _rewriteCssWithIdMap.default)(css);
18
18
  });
19
19
  if (!document.head) throw new Error('missing head');
20
20
  document.head.appendChild(style);
21
21
  }
22
- }
22
+ }
@@ -1,81 +1,69 @@
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.body: any): HTMLElement).querySelector('div.b8[role="alert"]')
11
- )
12
- .map((noticeContainer: HTMLElement) => {
13
- const googleNotice = querySelector(
14
- noticeContainer,
15
- '.vh:not(.inboxsdk__butterbar)'
16
- );
17
- let sdkNotice = noticeContainer.querySelector('.vh.inboxsdk__butterbar');
18
- if (!sdkNotice) {
19
- sdkNotice = document.createElement('div');
20
- sdkNotice.classList.add('vh', 'inboxsdk__butterbar');
21
- sdkNotice.style.display = 'none';
22
-
23
- const textAndButtonsContainer = document.createElement('span');
24
- textAndButtonsContainer.classList.add('aT');
25
-
26
- const textContainer = document.createElement('span');
27
- textContainer.classList.add('inboxsdk__butterbar-text', 'bAq');
28
-
29
- const buttonsContainer = document.createElement('span');
30
- buttonsContainer.classList.add('inboxsdk__butterbar-buttons', 'bAo');
31
- buttonsContainer.innerHTML = '&nbsp;&nbsp;';
32
-
33
- const noticeCloseButton = document.createElement('div');
34
- noticeCloseButton.classList.add('inboxsdk__butterbar-close', 'bBe');
35
- noticeCloseButton.innerHTML = '<div class="bBf"></div>';
36
- noticeCloseButton.setAttribute('role', 'button');
37
- noticeCloseButton.tabIndex = 0;
38
-
39
- textAndButtonsContainer.appendChild(textContainer);
40
- textAndButtonsContainer.appendChild(buttonsContainer);
41
-
42
- sdkNotice.appendChild(textAndButtonsContainer);
43
- sdkNotice.appendChild(noticeCloseButton);
44
-
45
- const parentNode = googleNotice.parentNode;
46
- if (!parentNode) {
47
- throw new Error('parentNode not found');
48
- }
49
- parentNode.insertBefore(sdkNotice, googleNotice.nextSibling);
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.body.querySelector('div.b8[role="alert"]')).map(noticeContainer => {
13
+ const googleNotice = (0, _querySelectorOrFail.default)(noticeContainer, '.vh:not(.inboxsdk__butterbar)');
14
+ let sdkNotice = noticeContainer.querySelector('.vh.inboxsdk__butterbar');
15
+ if (!sdkNotice) {
16
+ sdkNotice = document.createElement('div');
17
+ sdkNotice.classList.add('vh', 'inboxsdk__butterbar');
18
+ sdkNotice.style.display = 'none';
19
+ const textAndButtonsContainer = document.createElement('span');
20
+ textAndButtonsContainer.classList.add('aT');
21
+ const textContainer = document.createElement('span');
22
+ textContainer.classList.add('inboxsdk__butterbar-text', 'bAq');
23
+ const buttonsContainer = document.createElement('span');
24
+ buttonsContainer.classList.add('inboxsdk__butterbar-buttons', 'bAo');
25
+ buttonsContainer.innerHTML = '&nbsp;&nbsp;';
26
+ const noticeCloseButton = document.createElement('div');
27
+ noticeCloseButton.classList.add('inboxsdk__butterbar-close', 'bBe');
28
+ noticeCloseButton.innerHTML = '<div class="bBf"></div>';
29
+ noticeCloseButton.setAttribute('role', 'button');
30
+ noticeCloseButton.tabIndex = 0;
31
+ textAndButtonsContainer.appendChild(textContainer);
32
+ textAndButtonsContainer.appendChild(buttonsContainer);
33
+ sdkNotice.appendChild(textAndButtonsContainer);
34
+ sdkNotice.appendChild(noticeCloseButton);
35
+ const parentNode = googleNotice.parentNode;
36
+ if (!parentNode) {
37
+ throw new Error('parentNode not found');
50
38
  }
51
- return { noticeContainer, googleNotice, sdkNotice };
52
- })
53
- .toProperty();
54
-
55
- const googleNoticeMutationChunks = elements.flatMapLatest(({ googleNotice }) =>
56
- makeMutationObserverChunkedStream(googleNotice, { childList: true })
57
- );
58
- const googleAddedNotice = googleNoticeMutationChunks.filter((mutations) =>
59
- mutations.some((m) => m.addedNodes.length > 0)
60
- );
61
- const googleRemovedNotice = googleNoticeMutationChunks.filter(
62
- (mutations) => !mutations.some((m) => m.addedNodes.length > 0)
63
- );
64
-
65
- const sdkRemovedNotice = elements
66
- .flatMapLatest(({ sdkNotice }) =>
67
- makeMutationObserverChunkedStream(sdkNotice, {
68
- attributes: true,
69
- attributeFilter: ['data-inboxsdk-id'],
70
- }).map(() => sdkNotice.getAttribute('data-inboxsdk-id'))
71
- )
72
- .filter((id) => id == null);
73
-
74
- const noticeAvailableStream = Kefir.merge([
75
- googleRemovedNotice,
76
- sdkRemovedNotice,
77
- ]);
78
-
39
+ parentNode.insertBefore(sdkNotice, googleNotice.nextSibling);
40
+ }
41
+ return {
42
+ noticeContainer,
43
+ googleNotice,
44
+ sdkNotice
45
+ };
46
+ }).toProperty();
47
+ const googleNoticeMutationChunks = elements.flatMapLatest(_ref => {
48
+ let {
49
+ googleNotice
50
+ } = _ref;
51
+ return (0, _makeMutationObserverChunkedStream.default)(googleNotice, {
52
+ childList: true
53
+ });
54
+ });
55
+ const googleAddedNotice = googleNoticeMutationChunks.filter(mutations => mutations.some(m => m.addedNodes.length > 0));
56
+ const googleRemovedNotice = googleNoticeMutationChunks.filter(mutations => !mutations.some(m => m.addedNodes.length > 0));
57
+ const sdkRemovedNotice = elements.flatMapLatest(_ref2 => {
58
+ let {
59
+ sdkNotice
60
+ } = _ref2;
61
+ return (0, _makeMutationObserverChunkedStream.default)(sdkNotice, {
62
+ attributes: true,
63
+ attributeFilter: ['data-inboxsdk-id']
64
+ }).map(() => sdkNotice.getAttribute('data-inboxsdk-id'));
65
+ }).filter(id => id == null);
66
+ const noticeAvailableStream = _kefir.default.merge([googleRemovedNotice, sdkRemovedNotice]);
79
67
  function hideMessage(noticeContainer, googleNotice, sdkNotice) {
80
68
  googleNotice.style.display = '';
81
69
  noticeContainer.style.top = '-10000px';
@@ -84,57 +72,59 @@ function hideMessage(noticeContainer, googleNotice, sdkNotice) {
84
72
  sdkNotice.style.display = 'none';
85
73
  sdkNotice.removeAttribute('data-inboxsdk-id');
86
74
  }
87
-
88
- export default class GmailButterBarDriver {
75
+ class GmailButterBarDriver {
89
76
  constructor() {
90
- Kefir.combine([elements, googleAddedNotice]).onValue(
91
- ([{ googleNotice, sdkNotice }]) => {
92
- googleNotice.style.display = '';
93
- sdkNotice.style.display = 'none';
94
- sdkNotice.setAttribute('data-inboxsdk-id', 'gmail');
95
- }
96
- );
77
+ _kefir.default.combine([elements, googleAddedNotice]).onValue(_ref3 => {
78
+ let [{
79
+ googleNotice,
80
+ sdkNotice
81
+ }] = _ref3;
82
+ googleNotice.style.display = '';
83
+ sdkNotice.style.display = 'none';
84
+ sdkNotice.setAttribute('data-inboxsdk-id', 'gmail');
85
+ });
97
86
 
98
87
  // Force stream to be in active state. sdkRemovedNotice is prone to missing
99
88
  // events if it only becomes active once a message has started.
100
89
  noticeAvailableStream.onValue(() => {});
101
90
  }
102
-
103
- getNoticeAvailableStream(): Kefir.Observable<any> {
91
+ getNoticeAvailableStream() {
104
92
  return noticeAvailableStream;
105
93
  }
106
-
107
- getSharedMessageQueue(): Array<Object> {
108
- const attr = (document.head: any).getAttribute(
109
- 'data-inboxsdk-butterbar-queue'
110
- );
94
+ getSharedMessageQueue() {
95
+ const attr = document.head.getAttribute('data-inboxsdk-butterbar-queue');
111
96
  return attr ? JSON.parse(attr) : [];
112
97
  }
113
-
114
- setSharedMessageQueue(queue: Object) {
98
+ setSharedMessageQueue(queue) {
115
99
  const attr = JSON.stringify(queue);
116
- (document.head: any).setAttribute('data-inboxsdk-butterbar-queue', attr);
100
+ document.head.setAttribute('data-inboxsdk-butterbar-queue', attr);
117
101
  }
118
102
 
119
103
  // Immediately displays the message, overriding anything else on the screen.
120
104
  // Priority and queuing logic is handled by butter-bar.js above this.
121
- showMessage(rawOptions: Object): { destroy(): void } {
105
+ showMessage(rawOptions) {
122
106
  const instanceId = Date.now() + '-' + Math.random();
123
-
124
107
  const destroy = () => {
125
- elements
126
- .take(1)
127
- .onValue(({ noticeContainer, googleNotice, sdkNotice }) => {
128
- if (sdkNotice.getAttribute('data-inboxsdk-id') === instanceId) {
129
- if (rawOptions.className) {
130
- sdkNotice.classList.remove(rawOptions.className);
131
- }
132
- hideMessage(noticeContainer, googleNotice, sdkNotice);
108
+ elements.take(1).onValue(_ref4 => {
109
+ let {
110
+ noticeContainer,
111
+ googleNotice,
112
+ sdkNotice
113
+ } = _ref4;
114
+ if (sdkNotice.getAttribute('data-inboxsdk-id') === instanceId) {
115
+ if (rawOptions.className) {
116
+ sdkNotice.classList.remove(rawOptions.className);
133
117
  }
134
- });
118
+ hideMessage(noticeContainer, googleNotice, sdkNotice);
119
+ }
120
+ });
135
121
  };
136
-
137
- elements.take(1).onValue(({ noticeContainer, googleNotice, sdkNotice }) => {
122
+ elements.take(1).onValue(_ref5 => {
123
+ let {
124
+ noticeContainer,
125
+ googleNotice,
126
+ sdkNotice
127
+ } = _ref5;
138
128
  noticeContainer.style.visibility = 'visible';
139
129
  noticeContainer.style.top = '';
140
130
  // The bAp css class is added to noticeContainer whenever a native butter is active in
@@ -144,27 +134,17 @@ export default class GmailButterBarDriver {
144
134
  // The bAp class also causes butters to be styled and positioned as Snack Bars instead
145
135
  // (as opposed to butters).
146
136
  noticeContainer.classList.add('bAp');
147
-
148
137
  googleNotice.style.display = 'none';
149
138
  sdkNotice.className = googleNotice.className;
150
139
  sdkNotice.classList.add('inboxsdk__butterbar');
151
-
152
- const textContainer = querySelector(
153
- sdkNotice,
154
- '.inboxsdk__butterbar-text'
155
- );
140
+ const textContainer = (0, _querySelectorOrFail.default)(sdkNotice, '.inboxsdk__butterbar-text');
156
141
  while (textContainer.firstChild) {
157
142
  textContainer.removeChild(textContainer.firstChild);
158
143
  }
159
-
160
- const buttonsContainer = querySelector(
161
- sdkNotice,
162
- '.inboxsdk__butterbar-buttons'
163
- );
144
+ const buttonsContainer = (0, _querySelectorOrFail.default)(sdkNotice, '.inboxsdk__butterbar-buttons');
164
145
  while (buttonsContainer.firstChild) {
165
146
  buttonsContainer.removeChild(buttonsContainer.firstChild);
166
147
  }
167
-
168
148
  if (rawOptions.html) {
169
149
  textContainer.innerHTML = rawOptions.html;
170
150
  } else if (rawOptions.el) {
@@ -172,43 +152,42 @@ export default class GmailButterBarDriver {
172
152
  } else {
173
153
  textContainer.textContent = rawOptions.text;
174
154
  }
175
-
176
155
  if (rawOptions.buttons) {
177
- rawOptions.buttons.forEach((buttonDescriptor) => {
156
+ rawOptions.buttons.forEach(buttonDescriptor => {
178
157
  const button = document.createElement('span');
179
158
  button.classList.add('ag', 'a8k');
180
- button.onclick = (e) => buttonDescriptor.onClick(e);
159
+ button.onclick = e => buttonDescriptor.onClick(e);
181
160
  button.setAttribute('role', 'button');
182
161
  button.tabIndex = 0;
183
162
  button.textContent = buttonDescriptor.title;
184
163
  buttonsContainer.appendChild(button);
185
164
  });
186
165
  }
187
-
188
- const closeButton = querySelector(
189
- sdkNotice,
190
- '.inboxsdk__butterbar-close'
191
- );
166
+ const closeButton = (0, _querySelectorOrFail.default)(sdkNotice, '.inboxsdk__butterbar-close');
192
167
  if (closeButton) {
193
- Kefir.fromEvents(closeButton, 'click').take(1).onValue(destroy);
168
+ _kefir.default.fromEvents(closeButton, 'click').take(1).onValue(destroy);
194
169
  }
195
-
196
170
  if (rawOptions.className) {
197
171
  sdkNotice.classList.add(rawOptions.className);
198
172
  }
199
-
200
173
  sdkNotice.style.display = '';
201
174
  sdkNotice.setAttribute('data-inboxsdk-id', instanceId);
202
175
  });
203
-
204
- return { destroy };
176
+ return {
177
+ destroy
178
+ };
205
179
  }
206
-
207
180
  hideGmailMessage() {
208
- elements.take(1).onValue(({ noticeContainer, googleNotice, sdkNotice }) => {
181
+ elements.take(1).onValue(_ref6 => {
182
+ let {
183
+ noticeContainer,
184
+ googleNotice,
185
+ sdkNotice
186
+ } = _ref6;
209
187
  if (sdkNotice.getAttribute('data-inboxsdk-id') === 'gmail') {
210
188
  hideMessage(noticeContainer, googleNotice, sdkNotice);
211
189
  }
212
190
  });
213
191
  }
214
192
  }
193
+ exports.default = GmailButterBarDriver;
@@ -1,21 +1,20 @@
1
- /* @flow */
1
+ "use strict";
2
2
 
3
- import type Kefir from 'kefir';
4
- import GmailElementGetter from '../gmail-element-getter';
5
- import GmailAppToolbarButtonView from '../views/gmail-app-toolbar-button-view';
6
- import type GmailDriver from '../gmail-driver';
7
-
8
- export default function addToolbarButtonForApp(
9
- gmailDriver: GmailDriver,
10
- buttonDescriptor: Kefir.Observable<Object>
11
- ): Promise<GmailAppToolbarButtonView> {
12
- return GmailElementGetter.waitForGmailModeToSettle().then(() => {
13
- if (GmailElementGetter.isStandalone()) {
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = addToolbarButtonForApp;
8
+ var _gmailElementGetter = _interopRequireDefault(require("../gmail-element-getter"));
9
+ var _gmailAppToolbarButtonView = _interopRequireDefault(require("../views/gmail-app-toolbar-button-view"));
10
+ function addToolbarButtonForApp(gmailDriver, buttonDescriptor) {
11
+ return _gmailElementGetter.default.waitForGmailModeToSettle().then(() => {
12
+ if (_gmailElementGetter.default.isStandalone()) {
14
13
  return new Promise((resolve, reject) => {
15
14
  //never complete
16
15
  });
17
16
  } else {
18
- return new GmailAppToolbarButtonView(gmailDriver, buttonDescriptor);
17
+ return new _gmailAppToolbarButtonView.default(gmailDriver, buttonDescriptor);
19
18
  }
20
19
  });
21
- }
20
+ }
@@ -1,24 +1,15 @@
1
- /* @flow */
2
-
3
- import populateRouteID from '../../../lib/populateRouteID';
4
- import Logger from '../../../lib/logger';
5
-
6
- import type { RouteParams } from '../../../namespaces/router';
7
- import type GmailRouteProcessor from '../views/gmail-route-view/gmail-route-processor';
8
-
9
- export default function createLink(
10
- GmailRouteProcessor: GmailRouteProcessor,
11
- routeID: string,
12
- params: ?RouteParams | string
13
- ): string {
14
- params =
15
- typeof params === 'string'
16
- ? params
17
- : params
18
- ? Object.assign({}, params)
19
- : {};
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = createLink;
8
+ var _populateRouteID = _interopRequireDefault(require("../../../lib/populateRouteID"));
9
+ var _logger = _interopRequireDefault(require("../../../lib/logger"));
10
+ function createLink(GmailRouteProcessor, routeID, params) {
11
+ params = typeof params === 'string' ? params : params ? Object.assign({}, params) : {};
20
12
  routeID = GmailRouteProcessor.getCompatibleRouteID(routeID);
21
-
22
13
  if (typeof params === 'string') {
23
14
  var matches = routeID.match(/:/g);
24
15
  if (matches && matches.length === 1) {
@@ -29,50 +20,38 @@ export default function createLink(
29
20
  params = {};
30
21
  }
31
22
  }
32
-
33
23
  const hasPageParam = routeID.match(/:page(?:\/|$)/);
34
24
  if (hasPageParam && !params.page) {
35
25
  params.page = 0;
36
26
  }
37
-
38
27
  const parts = routeID.split('/');
39
28
 
40
29
  // attempt to use new, more strict populateRouteID fn, if that fails
41
30
  // log an error and fallback to older, more permissive approach.
42
31
  // intent is to retire the old approach once we understand the consequences.
43
- let processedRoute: string;
32
+ let processedRoute;
44
33
  try {
45
- processedRoute = populateRouteID(routeID, params);
34
+ processedRoute = (0, _populateRouteID.default)(routeID, params);
46
35
  } catch (error) {
47
- Logger.error(error, {
36
+ _logger.default.error(error, {
48
37
  routeID,
49
- paramsKey: Object.keys(params),
38
+ paramsKey: Object.keys(params)
50
39
  });
51
-
52
- processedRoute = parts
53
- .map(function (part) {
54
- if (part.indexOf(':') === -1) {
55
- return part;
56
- }
57
-
58
- const colonParts = part.split(':');
59
- if (params && typeof params[colonParts[1]] !== 'undefined') {
60
- return colonParts[0] + params[colonParts[1]];
61
- }
62
-
63
- return colonParts[0];
64
- })
65
- .map(encodeURIComponent)
66
- .join('/');
40
+ processedRoute = parts.map(function (part) {
41
+ if (part.indexOf(':') === -1) {
42
+ return part;
43
+ }
44
+ const colonParts = part.split(':');
45
+ if (params && typeof params[colonParts[1]] !== 'undefined') {
46
+ return colonParts[0] + params[colonParts[1]];
47
+ }
48
+ return colonParts[0];
49
+ }).map(encodeURIComponent).join('/');
67
50
  }
68
51
 
69
52
  //check if link is of the form inbox/p0 or search/blah/p0
70
- if (
71
- GmailRouteProcessor.isListRouteName(parts[0]) &&
72
- processedRoute.indexOf('p0') === processedRoute.length - 2
73
- ) {
53
+ if (GmailRouteProcessor.isListRouteName(parts[0]) && processedRoute.indexOf('p0') === processedRoute.length - 2) {
74
54
  processedRoute = processedRoute.substring(0, processedRoute.length - 3);
75
55
  }
76
-
77
56
  return '#' + processedRoute;
78
- }
57
+ }