@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,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
+ }