@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,179 +1,116 @@
1
- /* @flow */
2
-
3
- import once from 'lodash/once';
4
- import Kefir from 'kefir';
5
- import { defn } from 'ud';
6
- import querySelector from './dom/querySelectorOrFail';
7
- import makeMutationObserverChunkedStream from './dom/make-mutation-observer-chunked-stream';
8
- import type { ComposeViewDriver } from '../driver-interfaces/compose-view-driver';
9
-
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 _once = _interopRequireDefault(require("lodash/once"));
9
+ var _kefir = _interopRequireDefault(require("kefir"));
10
+ var _ud = require("ud");
11
+ var _querySelectorOrFail = _interopRequireDefault(require("./dom/querySelectorOrFail"));
12
+ var _makeMutationObserverChunkedStream = _interopRequireDefault(require("./dom/make-mutation-observer-chunked-stream"));
10
13
  const extId = '' + Math.random();
11
-
12
14
  const Z_SPACE_CHAR = '\u200b';
13
15
  const X_URL = 'https://ssl.gstatic.com/ui/v1/icons/common/x_8px.png';
14
-
15
- const handleComposeLinkChips = defn(
16
- module,
17
- function (composeView: ComposeViewDriver) {
18
- // Abort if we're missing elements we'll need.
19
- try {
20
- composeView.getBodyElement();
21
- } catch (err) {
22
- return;
23
- }
24
-
25
- const mainElement = composeView.getElement();
26
- _waitToClaim(mainElement)
27
- .takeUntilBy(composeView.getStopper())
28
- .onValue(() => {
29
- mainElement.classList.add('inboxsdk__ensure_link_active');
30
- composeView.getStopper().onValue(() => {
31
- mainElement.classList.remove('inboxsdk__ensure_link_active');
32
- });
33
-
34
- composeView
35
- .getEventStream()
36
- .filter((event) => event.eventName === 'bodyChanged')
37
- .toProperty(() => null)
38
- .debounce(100, { immediate: true })
39
- .takeUntilBy(composeView.getStopper())
40
- .onValue(() => {
41
- doFixing(composeView);
42
- });
43
-
44
- composeView
45
- .getEventStream()
46
- .filter((event) => event.eventName === 'presending')
47
- .onValue(() => {
48
- doPresendFixing(composeView);
49
- });
50
- });
16
+ const handleComposeLinkChips = (0, _ud.defn)(module, function (composeView) {
17
+ // Abort if we're missing elements we'll need.
18
+ try {
19
+ composeView.getBodyElement();
20
+ } catch (err) {
21
+ return;
51
22
  }
52
- );
53
- export default handleComposeLinkChips;
54
-
55
- const doFixing = defn(
56
- module,
57
- function (composeView: ComposeViewDriver) {
58
- const bodyElement = composeView.getBodyElement();
59
- const chips = _getChipElements(bodyElement);
60
-
61
- chips.filter(_isNotEnhanced).forEach(_addEnhancements);
62
- },
63
- 'doFixing'
64
- );
65
-
66
- const doPresendFixing = defn(
67
- module,
68
- function (composeView: ComposeViewDriver) {
69
- const bodyElement = composeView.getBodyElement();
70
- const chips = _getChipElements(bodyElement);
71
- chips.filter(_isOurEnhanced).forEach((chip) => {
72
- const xBtn = chip.querySelector(`img[src="${X_URL}"]`);
73
- if (xBtn) {
74
- xBtn.remove();
75
- }
76
- const title = chip.querySelector('a > span');
77
- if (title) {
78
- title.style.textDecoration = 'none';
79
- }
23
+ const mainElement = composeView.getElement();
24
+ _waitToClaim(mainElement).takeUntilBy(composeView.getStopper()).onValue(() => {
25
+ mainElement.classList.add('inboxsdk__ensure_link_active');
26
+ composeView.getStopper().onValue(() => {
27
+ mainElement.classList.remove('inboxsdk__ensure_link_active');
80
28
  });
81
- },
82
- 'doPresendFixing'
83
- );
84
-
85
- function _getChipElements(bodyElement: HTMLElement): HTMLElement[] {
29
+ composeView.getEventStream().filter(event => event.eventName === 'bodyChanged').toProperty(() => null).debounce(100, {
30
+ immediate: true
31
+ }).takeUntilBy(composeView.getStopper()).onValue(() => {
32
+ doFixing(composeView);
33
+ });
34
+ composeView.getEventStream().filter(event => event.eventName === 'presending').onValue(() => {
35
+ doPresendFixing(composeView);
36
+ });
37
+ });
38
+ });
39
+ var _default = handleComposeLinkChips;
40
+ exports.default = _default;
41
+ const doFixing = (0, _ud.defn)(module, function (composeView) {
42
+ const bodyElement = composeView.getBodyElement();
43
+ const chips = _getChipElements(bodyElement);
44
+ chips.filter(_isNotEnhanced).forEach(_addEnhancements);
45
+ }, 'doFixing');
46
+ const doPresendFixing = (0, _ud.defn)(module, function (composeView) {
47
+ const bodyElement = composeView.getBodyElement();
48
+ const chips = _getChipElements(bodyElement);
49
+ chips.filter(_isOurEnhanced).forEach(chip => {
50
+ const xBtn = chip.querySelector(`img[src="${X_URL}"]`);
51
+ if (xBtn) {
52
+ xBtn.remove();
53
+ }
54
+ const title = chip.querySelector('a > span');
55
+ if (title) {
56
+ title.style.textDecoration = 'none';
57
+ }
58
+ });
59
+ }, 'doPresendFixing');
60
+ function _getChipElements(bodyElement) {
86
61
  const chipInnerEls = bodyElement.querySelectorAll('[hspace=inboxsdk__chip]');
87
- return [
88
- ...Array.from(chipInnerEls).map((x) => (x.parentElement: any)),
89
- ...Array.from(bodyElement.querySelectorAll('[hspace=inboxsdk__chip_main]')),
90
- ];
62
+ return [...Array.from(chipInnerEls).map(x => x.parentElement), ...Array.from(bodyElement.querySelectorAll('[hspace=inboxsdk__chip_main]'))];
91
63
  }
92
-
93
- function _waitToClaim(el: HTMLElement): Kefir.Observable<boolean> {
94
- return Kefir.later(0)
95
- .merge(
96
- makeMutationObserverChunkedStream(el, {
97
- attributes: true,
98
- attributeFilter: ['class'],
99
- })
100
- )
101
- .map(() => !el.classList.contains('inboxsdk__ensure_link_active'))
102
- .filter(Boolean)
103
- .take(1);
64
+ function _waitToClaim(el) {
65
+ return _kefir.default.later(0).merge((0, _makeMutationObserverChunkedStream.default)(el, {
66
+ attributes: true,
67
+ attributeFilter: ['class']
68
+ })).map(() => !el.classList.contains('inboxsdk__ensure_link_active')).filter(Boolean).take(1);
104
69
  }
105
-
106
- function _isNotEnhanced(chipElement: HTMLElement): boolean {
70
+ function _isNotEnhanced(chipElement) {
107
71
  var claim = chipElement.getAttribute('data-sdk-linkchip-claimed');
108
72
  if (extId === claim) {
109
- return !(chipElement: any)._linkChipEnhancedByThisExtension;
73
+ return !chipElement._linkChipEnhancedByThisExtension;
110
74
  }
111
75
  return claim == null;
112
76
  }
113
77
 
114
78
  // Returns whether the chip is enhanced specifically by this extension
115
- function _isOurEnhanced(chipElement: HTMLElement): boolean {
116
- return !!(chipElement: any)._linkChipEnhancedByThisExtension;
79
+ function _isOurEnhanced(chipElement) {
80
+ return !!chipElement._linkChipEnhancedByThisExtension;
117
81
  }
118
-
119
- function _addEnhancements(chipElement: HTMLElement) {
82
+ function _addEnhancements(chipElement) {
120
83
  const anchor = chipElement.querySelector('a');
121
84
  if (anchor) {
122
- anchor.addEventListener(
123
- 'mousedown',
124
- function (e: MouseEvent) {
125
- e.stopImmediatePropagation();
126
- },
127
- true
128
- );
129
- anchor.addEventListener(
130
- 'click',
131
- function (e: MouseEvent) {
132
- e.stopImmediatePropagation();
133
- },
134
- true
135
- );
85
+ anchor.addEventListener('mousedown', function (e) {
86
+ e.stopImmediatePropagation();
87
+ }, true);
88
+ anchor.addEventListener('click', function (e) {
89
+ e.stopImmediatePropagation();
90
+ }, true);
136
91
  }
137
-
138
92
  const xElement = document.createElement('img');
139
93
  xElement.src = X_URL;
140
- xElement.setAttribute(
141
- 'style',
142
- 'opacity: 0.55; cursor: pointer; float: right; position: relative; top: -1px;'
143
- );
144
-
145
- xElement.addEventListener(
146
- 'mousedown',
147
- function (e: MouseEvent) {
148
- chipElement.remove();
149
- },
150
- true
151
- );
152
-
153
- xElement.addEventListener(
154
- 'click',
155
- function (e: MouseEvent) {
156
- e.stopImmediatePropagation();
157
- e.preventDefault();
158
- },
159
- true
160
- );
161
-
94
+ xElement.setAttribute('style', 'opacity: 0.55; cursor: pointer; float: right; position: relative; top: -1px;');
95
+ xElement.addEventListener('mousedown', function (e) {
96
+ chipElement.remove();
97
+ }, true);
98
+ xElement.addEventListener('click', function (e) {
99
+ e.stopImmediatePropagation();
100
+ e.preventDefault();
101
+ }, true);
162
102
  chipElement.addEventListener('mouseenter', function () {
163
103
  chipElement.appendChild(xElement);
164
- querySelector(chipElement, 'a > span').style.textDecoration = 'underline';
104
+ (0, _querySelectorOrFail.default)(chipElement, 'a > span').style.textDecoration = 'underline';
165
105
  });
166
-
167
106
  chipElement.addEventListener('mouseleave', function () {
168
- (xElement: any).remove();
169
- querySelector(chipElement, 'a > span').style.textDecoration = 'none';
107
+ xElement.remove();
108
+ (0, _querySelectorOrFail.default)(chipElement, 'a > span').style.textDecoration = 'none';
170
109
  });
171
-
172
- chipElement.addEventListener('mousedown', function (e: MouseEvent) {
110
+ chipElement.addEventListener('mousedown', function (e) {
173
111
  e.preventDefault();
174
112
  });
175
-
176
113
  chipElement.contentEditable = 'false';
177
114
  chipElement.setAttribute('data-sdk-linkchip-claimed', extId);
178
- (chipElement: any)._linkChipEnhancedByThisExtension = true;
179
- }
115
+ chipElement._linkChipEnhancedByThisExtension = true;
116
+ }
@@ -1,66 +1,51 @@
1
- /* @flow */
2
-
3
- import * as ud from 'ud';
4
- import type { ComposeViewDriver } from '../driver-interfaces/compose-view-driver';
5
- import autoHtml from 'auto-html';
6
-
7
- var insertLinkChipIntoBody = ud.defn(
8
- module,
9
- function (
10
- composeViewDriver: ComposeViewDriver,
11
- options: Object
12
- ): HTMLElement {
13
- composeViewDriver.focus();
14
-
15
- var chipElement = _getChipElement(options);
16
-
17
- // Gmail compose treats text directly bordering the chipElement weirdly in
18
- // regards to cursor movement, so surround the chip with newlines which
19
- // makes Gmail act up a little less.
20
- var frag = (document: any).createDocumentFragment();
21
- frag.appendChild(document.createTextNode('\u200b'));
22
- frag.appendChild(chipElement);
23
- frag.appendChild(document.createTextNode('\u200b'));
24
-
25
- composeViewDriver.insertBodyHTMLAtCursor(frag);
26
-
27
- if (
28
- !composeViewDriver.isFullscreen() &&
29
- !composeViewDriver.isInlineReplyForm() &&
30
- document.activeElement !== composeViewDriver.getBodyElement()
31
- ) {
32
- composeViewDriver.setMinimized(true);
33
- composeViewDriver.setMinimized(false);
34
- }
35
-
36
- composeViewDriver.focus();
37
-
38
- return chipElement;
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 ud = _interopRequireWildcard(require("ud"));
9
+ var _autoHtml = _interopRequireDefault(require("auto-html"));
10
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
11
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12
+ var insertLinkChipIntoBody = ud.defn(module, function (composeViewDriver, options) {
13
+ composeViewDriver.focus();
14
+ var chipElement = _getChipElement(options);
15
+
16
+ // Gmail compose treats text directly bordering the chipElement weirdly in
17
+ // regards to cursor movement, so surround the chip with newlines which
18
+ // makes Gmail act up a little less.
19
+ var frag = document.createDocumentFragment();
20
+ frag.appendChild(document.createTextNode('\u200b'));
21
+ frag.appendChild(chipElement);
22
+ frag.appendChild(document.createTextNode('\u200b'));
23
+ composeViewDriver.insertBodyHTMLAtCursor(frag);
24
+ if (!composeViewDriver.isFullscreen() && !composeViewDriver.isInlineReplyForm() && document.activeElement !== composeViewDriver.getBodyElement()) {
25
+ composeViewDriver.setMinimized(true);
26
+ composeViewDriver.setMinimized(false);
39
27
  }
40
- );
41
- export default insertLinkChipIntoBody;
42
-
43
- function _getChipElement(options: Object): HTMLElement {
28
+ composeViewDriver.focus();
29
+ return chipElement;
30
+ });
31
+ var _default = insertLinkChipIntoBody;
32
+ exports.default = _default;
33
+ function _getChipElement(options) {
44
34
  var chipElement = document.createElement('div');
45
-
46
- var iconHtml: string = options.iconUrl
47
- ? autoHtml`
35
+ var iconHtml = options.iconUrl ? (0, _autoHtml.default)`
48
36
  <img style="height:16px; width:16px; vertical-align: bottom; border: none;" height="16px" width="16px" src="${options.iconUrl}">&nbsp;
49
- `
50
- : '';
51
- var chipHTML: string = autoHtml`
37
+ ` : '';
38
+ var chipHTML = (0, _autoHtml.default)`
52
39
  <div contenteditable="false" class="inboxsdk__compose_linkChip"
53
40
  style="width: 396px; height: 18px; max-height: 18px; padding: 5px; color: rgb(34, 34, 34); font-family: arial; font-style: normal; font-weight: bold; font-size: 13px; cursor: default; border: 1px solid rgb(221, 221, 221); line-height: 1; background-color: rgb(245, 245, 245);" hspace="inboxsdk__chip_main">
54
- <a href="${
55
- options.url
56
- }" target="_blank" style=" display:inline-block; max-width: 366px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-height: 1.2em; text-decoration: none; cursor: pointer; padding: 1px 0; border: none; ">
57
- ${{ __html: iconHtml }}
58
- <span dir="ltr" style="color: rgb(17, 85, 204); text-decoration: none; vertical-align: bottom;">${
59
- options.text
60
- }</span>
41
+ <a href="${options.url}" target="_blank" style=" display:inline-block; max-width: 366px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-height: 1.2em; text-decoration: none; cursor: pointer; padding: 1px 0; border: none; ">
42
+ ${{
43
+ __html: iconHtml
44
+ }}
45
+ <span dir="ltr" style="color: rgb(17, 85, 204); text-decoration: none; vertical-align: bottom;">${options.text}</span>
61
46
  </a>
62
47
  </div>
63
48
  `;
64
49
  chipElement.innerHTML = chipHTML;
65
- return (chipElement.children[0]: any);
66
- }
50
+ return chipElement.children[0];
51
+ }
@@ -1,40 +1,38 @@
1
- /* @flow */
1
+ "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = makeRevocableFunction;
8
+ var _once = _interopRequireDefault(require("lodash/once"));
9
+ var _noop = _interopRequireDefault(require("lodash/noop"));
3
10
  // Takes an input function, and returns {fn, revoke}.
4
11
  // Before revoke is called, calling fn is equivalent to calling the input
5
12
  // function.
6
13
  // After revoke is called, calling fn is a no-op, and fn no longer holds a
7
14
  // reference to inputFn.
8
15
  // The revoke function does not hold a reference to inputFn or revokedFn ever.
9
-
10
16
  // The optional second parameter revokedFn is a function to make fn call after
11
17
  // it has been revoked.
12
-
13
- import once from 'lodash/once';
14
- import noop from 'lodash/noop';
15
-
16
- export default function makeRevocableFunction<F: Function>(
17
- inputFn: F,
18
- revokedFn: Function = noop
19
- ): { fn: F, revoke: () => void } {
18
+ function makeRevocableFunction(inputFn) {
19
+ let revokedFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _noop.default;
20
20
  let key = {};
21
-
22
21
  return {
23
- fn: (function () {
22
+ fn: function () {
24
23
  if (!key) {
25
24
  throw new Error('Should not happen');
26
25
  }
27
26
  const _revokedFn = revokedFn;
28
27
  const wm = new WeakMap();
29
28
  wm.set(key, inputFn);
30
- inputFn = revokedFn = (null: any);
31
-
32
- return (function () {
33
- return ((key ? wm.get(key) : _revokedFn): any).apply(this, arguments);
34
- }: any);
35
- })(),
36
- revoke: once(function () {
29
+ inputFn = revokedFn = null;
30
+ return function () {
31
+ return (key ? wm.get(key) : _revokedFn).apply(this, arguments);
32
+ };
33
+ }(),
34
+ revoke: (0, _once.default)(function () {
37
35
  key = null;
38
- }),
36
+ })
39
37
  };
40
- }
38
+ }
@@ -1,63 +1,61 @@
1
- /* @flow */
2
-
3
- import makeRevocableFunction from './make-revocable-function';
1
+ "use strict";
4
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _makeRevocableFunction = _interopRequireDefault(require("./make-revocable-function"));
5
5
  it('works', () => {
6
6
  const adder = {
7
7
  value: 0,
8
- add: (x, y = 0) => {
8
+ add: function (x) {
9
+ let y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
9
10
  adder.value += x + y;
10
11
  return adder.value;
11
- },
12
+ }
12
13
  };
13
-
14
- const { fn, revoke } = makeRevocableFunction(adder.add);
14
+ const {
15
+ fn,
16
+ revoke
17
+ } = (0, _makeRevocableFunction.default)(adder.add);
15
18
  adder.add = fn;
16
-
17
19
  expect(adder.add(5)).toBe(5);
18
20
  expect(adder.add(2, 1)).toBe(8);
19
21
  expect(adder.add(3)).toBe(11);
20
22
  expect(adder.value).toBe(11);
21
-
22
23
  revoke();
23
-
24
24
  expect(adder.add(3)).toBe(undefined);
25
25
  expect(adder.value).toBe(11);
26
-
27
26
  revoke(); // should be no-op
28
27
 
29
28
  expect(adder.add(3)).toBe(undefined);
30
29
  expect(adder.value).toBe(11);
31
30
  });
32
-
33
31
  it('revokedFn parameter works', () => {
34
32
  const adder = {
35
33
  value: 0,
36
- add: (x, y = 0) => {
34
+ add: function (x) {
35
+ let y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
37
36
  adder.value += x + y;
38
37
  return adder.value;
39
38
  },
40
- subtract: (x, y = 0) => {
39
+ subtract: function (x) {
40
+ let y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
41
41
  adder.value -= x + y;
42
42
  return adder.value;
43
- },
43
+ }
44
44
  };
45
-
46
- const { fn, revoke } = makeRevocableFunction(adder.add, adder.subtract);
45
+ const {
46
+ fn,
47
+ revoke
48
+ } = (0, _makeRevocableFunction.default)(adder.add, adder.subtract);
47
49
  adder.add = fn;
48
-
49
50
  expect(adder.add(5)).toBe(5);
50
51
  expect(adder.add(2, 1)).toBe(8);
51
52
  expect(adder.add(3)).toBe(11);
52
53
  expect(adder.value).toBe(11);
53
-
54
54
  revoke();
55
-
56
55
  expect(adder.add(3)).toBe(8);
57
56
  expect(adder.value).toBe(8);
58
-
59
57
  revoke(); // should be no-op
60
58
 
61
59
  expect(adder.add(3)).toBe(5);
62
60
  expect(adder.value).toBe(5);
63
- });
61
+ });
@@ -1,20 +1,18 @@
1
- /* @flow */
1
+ "use strict";
2
2
 
3
- import zip from 'lodash/zip';
4
-
5
- export default function parseParamsFromRouteID(
6
- routeID: string,
7
- hash: string
8
- ): { [ix: string]: string } {
9
- const params: { [ix: string]: string } = (Object.create(null): any);
10
- zip(routeID.split('/'), hash.split('/')).forEach(
11
- ([routePart, hashPart], i) => {
12
- if (routePart[0] === ':') {
13
- params[routePart.slice(1)] = decodeURIComponent(
14
- hashPart.replace(/\+/g, ' ')
15
- );
16
- }
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = parseParamsFromRouteID;
8
+ var _zip = _interopRequireDefault(require("lodash/zip"));
9
+ function parseParamsFromRouteID(routeID, hash) {
10
+ const params = Object.create(null);
11
+ (0, _zip.default)(routeID.split('/'), hash.split('/')).forEach((_ref, i) => {
12
+ let [routePart, hashPart] = _ref;
13
+ if (routePart[0] === ':') {
14
+ params[routePart.slice(1)] = decodeURIComponent(hashPart.replace(/\+/g, ' '));
17
15
  }
18
- );
16
+ });
19
17
  return Object.freeze(params);
20
- }
18
+ }
@@ -1,28 +1,19 @@
1
- /* @flow */
2
-
3
- import parseParamsFromRouteID from './parseParamsFromRouteID';
1
+ "use strict";
4
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _parseParamsFromRouteID = _interopRequireDefault(require("./parseParamsFromRouteID"));
5
5
  test('empty', () => {
6
- expect(parseParamsFromRouteID('test', 'test')).toEqual({});
6
+ expect((0, _parseParamsFromRouteID.default)('test', 'test')).toEqual({});
7
7
  });
8
-
9
8
  test('works', () => {
10
- expect(
11
- parseParamsFromRouteID('test/:id/blah/:foo', 'test/123/blah/456')
12
- ).toEqual({
9
+ expect((0, _parseParamsFromRouteID.default)('test/:id/blah/:foo', 'test/123/blah/456')).toEqual({
13
10
  id: '123',
14
- foo: '456',
11
+ foo: '456'
15
12
  });
16
13
  });
17
-
18
14
  test('decodes URI component', () => {
19
- expect(
20
- parseParamsFromRouteID(
21
- 'test/:id/blah/:foo',
22
- "test/123/blah/test+%3C%3E%2B%22'%26%20_"
23
- )
24
- ).toEqual({
15
+ expect((0, _parseParamsFromRouteID.default)('test/:id/blah/:foo', "test/123/blah/test+%3C%3E%2B%22'%26%20_")).toEqual({
25
16
  id: '123',
26
- foo: 'test <>+"\'& _',
17
+ foo: 'test <>+"\'& _'
27
18
  });
28
- });
19
+ });
@@ -1,14 +1,13 @@
1
- /* @flow */
1
+ "use strict";
2
2
 
3
- import type { RouteParams } from '../namespaces/router';
4
-
5
- export default function populateRouteID(
6
- routeID: string,
7
- params: ?RouteParams
8
- ): string {
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = populateRouteID;
7
+ function populateRouteID(routeID, params) {
9
8
  const paramsObject = params || {};
10
9
  const usedParams = new Set();
11
- const result = routeID.replace(/:([^/]+)/g, (whole: string, term: string) => {
10
+ const result = routeID.replace(/:([^/]+)/g, (whole, term) => {
12
11
  if (term in paramsObject) {
13
12
  usedParams.add(term);
14
13
  return encodeURIComponent(String(paramsObject[term]));
@@ -20,4 +19,4 @@ export default function populateRouteID(
20
19
  throw new Error('Extra parameters given');
21
20
  }
22
21
  return result;
23
- }
22
+ }