@inboxsdk/core 1.1.5 → 1.1.7

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 (483) hide show
  1. package/background.js +1 -0
  2. package/inboxsdk.js +31 -36
  3. package/inboxsdk.js.map +1 -1
  4. package/package.json +1 -1
  5. package/pageWorld.js +1 -1
  6. package/pageWorld.js.map +1 -1
  7. package/src/inboxsdk-js/header.d.ts +19 -0
  8. package/src/inboxsdk-js/header.d.ts.map +1 -0
  9. package/src/inboxsdk-js/header.js +1 -1
  10. package/src/inboxsdk.d.ts +10 -10
  11. package/src/injected-js/gmail/constants.d.ts +1 -1
  12. package/src/injected-js/gmail/constants.d.ts.map +1 -1
  13. package/src/injected-js/gmail/setup-gmail-interceptor.d.ts +3 -4
  14. package/src/injected-js/gmail/setup-gmail-interceptor.d.ts.map +1 -0
  15. package/src/injected-js/gmail/setup-gmail-interceptor.js +896 -896
  16. package/src/injected-js/gmail/sync-compose-processor-20220909.d.ts +1 -1
  17. package/src/injected-js/gmail/sync-compose-processor-20220909.d.ts.map +1 -1
  18. package/src/injected-js/gmail/sync-compose-processor.d.ts +3 -3
  19. package/src/injected-js/gmail/sync-compose-request-processor.d.ts.map +1 -1
  20. package/src/injected-js/gmail/sync-compose-request-processor.js +0 -1
  21. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.d.ts +2 -0
  22. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.d.ts.map +1 -0
  23. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +66 -78
  24. package/src/injected-js/gmail/thread-identifier/index.d.ts +3 -0
  25. package/src/injected-js/gmail/thread-identifier/index.d.ts.map +1 -0
  26. package/src/injected-js/gmail/thread-identifier/index.js +100 -98
  27. package/src/injected-js/gmail/thread-identifier/thread-row-parser.d.ts +7 -0
  28. package/src/injected-js/gmail/thread-identifier/thread-row-parser.d.ts.map +1 -0
  29. package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +51 -61
  30. package/src/injected-js/main.d.ts +2 -0
  31. package/src/injected-js/main.d.ts.map +1 -0
  32. package/src/injected-js/main.js +44 -43
  33. package/src/injected-js/message-metadata-holder.d.ts +7 -0
  34. package/src/injected-js/message-metadata-holder.d.ts.map +1 -0
  35. package/src/injected-js/message-metadata-holder.js +89 -97
  36. package/src/injected-js/setup-data-exposer.d.ts +2 -0
  37. package/src/injected-js/setup-data-exposer.d.ts.map +1 -0
  38. package/src/injected-js/setup-data-exposer.js +126 -118
  39. package/src/injected-js/setup-error-silencer.d.ts +2 -0
  40. package/src/injected-js/setup-error-silencer.d.ts.map +1 -0
  41. package/src/injected-js/setup-error-silencer.js +16 -24
  42. package/src/injected-js/setup-event-reemitter.d.ts +2 -0
  43. package/src/injected-js/setup-event-reemitter.d.ts.map +1 -0
  44. package/src/injected-js/setup-event-reemitter.js +46 -59
  45. package/src/injected-js/setupInboxCustomViewLinkFixer.d.ts +2 -0
  46. package/src/injected-js/setupInboxCustomViewLinkFixer.d.ts.map +1 -0
  47. package/src/injected-js/setupInboxCustomViewLinkFixer.js +24 -26
  48. package/src/injected-js/setupPushStateListener.d.ts +2 -0
  49. package/src/injected-js/setupPushStateListener.d.ts.map +1 -0
  50. package/src/injected-js/setupPushStateListener.js +14 -23
  51. package/src/injected-js/xhr-helper.d.ts +2 -0
  52. package/src/injected-js/xhr-helper.d.ts.map +1 -0
  53. package/src/injected-js/xhr-helper.js +73 -83
  54. package/src/injected-js/xhr-proxy-factory.d.ts +97 -0
  55. package/src/injected-js/xhr-proxy-factory.d.ts.map +1 -0
  56. package/src/injected-js/xhr-proxy-factory.js +503 -451
  57. package/src/platform-implementation-js/constants/router.d.ts +37 -5
  58. package/src/platform-implementation-js/constants/router.d.ts.map +1 -0
  59. package/src/platform-implementation-js/constants/router.js +57 -60
  60. package/src/platform-implementation-js/constants/toolbars.d.ts +2 -0
  61. package/src/platform-implementation-js/constants/toolbars.d.ts.map +1 -0
  62. package/src/platform-implementation-js/constants/toolbars.js +4 -11
  63. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.d.ts.map +1 -1
  64. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +0 -1
  65. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.d.ts.map +1 -1
  66. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +0 -1
  67. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.d.ts.map +1 -1
  68. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +0 -1
  69. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.d.ts +4 -6
  70. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.d.ts.map +1 -0
  71. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +55 -62
  72. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.d.ts.map +1 -1
  73. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +0 -1
  74. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.d.ts.map +1 -1
  75. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +0 -1
  76. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.d.ts.map +1 -1
  77. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +4 -5
  78. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.d.ts.map +1 -1
  79. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +4 -9
  80. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.d.ts.map +1 -1
  81. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +1 -0
  82. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.d.ts +2 -1
  83. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.d.ts.map +1 -1
  84. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +1 -1
  85. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts +4 -3
  86. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts.map +1 -1
  87. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.d.ts.map +1 -1
  88. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +0 -1
  89. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.d.ts +19 -6
  90. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.d.ts.map +1 -0
  91. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +75 -80
  92. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.d.ts +5 -0
  93. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.d.ts.map +1 -0
  94. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +13 -22
  95. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.d.ts +5 -0
  96. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.d.ts.map +1 -0
  97. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +18 -26
  98. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.d.ts +5 -0
  99. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.d.ts.map +1 -0
  100. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.js +13 -30
  101. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.d.ts +44 -0
  102. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.d.ts.map +1 -0
  103. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +681 -601
  104. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.d.ts +2 -0
  105. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.d.ts.map +1 -0
  106. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +23 -24
  107. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.d.ts +19 -3
  108. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.d.ts.map +1 -0
  109. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +156 -150
  110. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.d.ts +20 -0
  111. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.d.ts.map +1 -0
  112. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +101 -96
  113. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.d.ts +40 -0
  114. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.d.ts.map +1 -0
  115. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +287 -265
  116. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.d.ts +61 -0
  117. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.d.ts.map +1 -0
  118. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +689 -524
  119. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.d.ts +5 -0
  120. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.d.ts.map +1 -0
  121. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +124 -118
  122. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.d.ts +15 -0
  123. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.d.ts.map +1 -0
  124. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +47 -51
  125. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-inner-sidebar.d.ts +8 -0
  126. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-inner-sidebar.d.ts.map +1 -0
  127. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-inner-sidebar.js +8 -16
  128. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-outer-sidebar.d.ts +8 -0
  129. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-outer-sidebar.d.ts.map +1 -0
  130. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-outer-sidebar.js +23 -31
  131. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.d.ts +4 -0
  132. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.d.ts.map +1 -0
  133. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +61 -66
  134. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.d.ts +6 -0
  135. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.d.ts.map +1 -0
  136. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +64 -48
  137. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.d.ts +2 -0
  138. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.d.ts.map +1 -0
  139. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +10 -17
  140. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.d.ts +2 -0
  141. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.d.ts.map +1 -0
  142. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +14 -23
  143. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.d.ts +3 -0
  144. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.d.ts.map +1 -0
  145. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +13 -16
  146. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.d.ts +7 -0
  147. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.d.ts.map +1 -0
  148. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +57 -59
  149. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.d.ts +3 -0
  150. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.d.ts.map +1 -0
  151. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +49 -49
  152. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.d.ts +4 -0
  153. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.d.ts.map +1 -0
  154. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +89 -89
  155. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.d.ts +1 -1
  156. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.d.ts.map +1 -1
  157. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.d.ts +4 -0
  158. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.d.ts.map +1 -0
  159. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +13 -21
  160. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.d.ts +3 -0
  161. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.d.ts.map +1 -0
  162. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +16 -23
  163. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.d.ts +4 -0
  164. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.d.ts.map +1 -0
  165. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +14 -22
  166. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.d.ts +1 -1
  167. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.d.ts.map +1 -1
  168. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.d.ts +4 -0
  169. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.d.ts.map +1 -0
  170. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +23 -29
  171. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.d.ts +3 -0
  172. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.d.ts.map +1 -0
  173. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +17 -25
  174. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.d.ts +4 -0
  175. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.d.ts.map +1 -0
  176. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +317 -252
  177. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.d.ts +3 -0
  178. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.d.ts.map +1 -0
  179. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +22 -18
  180. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.d.ts +4 -0
  181. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.d.ts.map +1 -0
  182. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +57 -50
  183. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.d.ts +3 -0
  184. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.d.ts.map +1 -0
  185. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +18 -20
  186. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.d.ts +3 -0
  187. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.d.ts.map +1 -0
  188. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +114 -113
  189. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.d.ts +3 -0
  190. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.d.ts.map +1 -0
  191. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +15 -18
  192. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.d.ts +189 -118
  193. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.d.ts.map +1 -0
  194. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +1480 -1333
  195. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.d.ts +1 -2
  196. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.d.ts.map +1 -1
  197. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.js +1 -2
  198. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.d.ts +3 -0
  199. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.d.ts.map +1 -0
  200. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +69 -70
  201. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.d.ts +67 -6
  202. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.d.ts.map +1 -0
  203. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +715 -637
  204. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.d.ts +44 -6
  205. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.d.ts.map +1 -0
  206. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +100 -101
  207. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.d.ts +72 -3
  208. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.d.ts.map +1 -0
  209. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +502 -438
  210. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.d.ts +39 -8
  211. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.d.ts.map +1 -0
  212. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +229 -211
  213. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.d.ts +117 -5
  214. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.d.ts.map +1 -0
  215. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +938 -821
  216. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view/add-icon-area.d.ts +5 -0
  217. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view/add-icon-area.d.ts.map +1 -0
  218. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view/add-icon-area.js +66 -61
  219. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.d.ts +18 -0
  220. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.d.ts.map +1 -0
  221. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.js +520 -457
  222. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.d.ts +7 -0
  223. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.d.ts.map +1 -0
  224. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +24 -27
  225. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.d.ts +69 -7
  226. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.d.ts.map +1 -0
  227. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +646 -523
  228. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.d.ts +58 -11
  229. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.d.ts.map +1 -0
  230. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +436 -383
  231. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.d.ts +35 -7
  232. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.d.ts.map +1 -0
  233. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +265 -235
  234. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.d.ts +2 -0
  235. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.d.ts.map +1 -1
  236. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.js +4 -0
  237. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.d.ts +2 -0
  238. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.d.ts.map +1 -1
  239. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.js +4 -0
  240. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.d.ts +7 -0
  241. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.d.ts.map +1 -0
  242. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +22 -30
  243. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.d.ts +4 -0
  244. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.d.ts.map +1 -1
  245. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.js +6 -0
  246. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.d.ts +11 -0
  247. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.d.ts.map +1 -0
  248. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +35 -41
  249. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.d.ts +18 -0
  250. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.d.ts.map +1 -0
  251. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +96 -97
  252. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.d.ts +18 -15
  253. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.d.ts.map +1 -0
  254. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +170 -170
  255. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.d.ts +47 -0
  256. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.d.ts.map +1 -0
  257. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +325 -279
  258. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.d.ts +16 -0
  259. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.d.ts.map +1 -0
  260. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +56 -61
  261. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.d.ts +31 -3
  262. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.d.ts.map +1 -0
  263. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +275 -252
  264. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.d.ts +6 -0
  265. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.d.ts.map +1 -0
  266. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +27 -32
  267. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.d.ts +7 -0
  268. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.d.ts.map +1 -0
  269. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +45 -43
  270. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.d.ts +5 -6
  271. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.d.ts.map +1 -0
  272. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +11 -19
  273. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.d.ts +5 -6
  274. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.d.ts.map +1 -0
  275. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +39 -48
  276. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.d.ts +5 -0
  277. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.d.ts.map +1 -0
  278. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +12 -20
  279. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.d.ts +5 -0
  280. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.d.ts.map +1 -0
  281. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +11 -19
  282. package/src/platform-implementation-js/driver-common/inboxAjax.d.ts +4 -0
  283. package/src/platform-implementation-js/driver-common/inboxAjax.d.ts.map +1 -0
  284. package/src/platform-implementation-js/driver-common/inboxAjax.js +5 -13
  285. package/src/platform-implementation-js/driver-common/requestGmailThread.d.ts +4 -0
  286. package/src/platform-implementation-js/driver-common/requestGmailThread.d.ts.map +1 -0
  287. package/src/platform-implementation-js/driver-common/requestGmailThread.js +22 -32
  288. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.d.ts +50 -0
  289. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.d.ts.map +1 -0
  290. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +228 -279
  291. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.d.ts +25 -1
  292. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.d.ts.map +1 -0
  293. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +142 -147
  294. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.d.ts +106 -133
  295. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.d.ts.map +1 -0
  296. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +1 -1
  297. package/src/platform-implementation-js/driver-interfaces/driver.d.ts +31 -139
  298. package/src/platform-implementation-js/driver-interfaces/driver.d.ts.map +1 -0
  299. package/src/platform-implementation-js/driver-interfaces/driver.js +1 -1
  300. package/src/platform-implementation-js/driver-interfaces/message-view-driver.d.ts +44 -0
  301. package/src/platform-implementation-js/driver-interfaces/message-view-driver.d.ts.map +1 -0
  302. package/src/platform-implementation-js/driver-interfaces/message-view-driver.js +1 -5
  303. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.d.ts +18 -20
  304. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.d.ts.map +1 -0
  305. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +1 -1
  306. package/src/platform-implementation-js/driver-interfaces/route-view-driver.d.ts +19 -0
  307. package/src/platform-implementation-js/driver-interfaces/route-view-driver.d.ts.map +1 -0
  308. package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +1 -1
  309. package/src/platform-implementation-js/driver-interfaces/thread-row-view-driver.d.ts +11 -0
  310. package/src/platform-implementation-js/driver-interfaces/thread-row-view-driver.d.ts.map +1 -0
  311. package/src/platform-implementation-js/driver-interfaces/thread-row-view-driver.js +1 -1
  312. package/src/platform-implementation-js/lib/css-selector-escape.d.ts +2 -0
  313. package/src/platform-implementation-js/lib/css-selector-escape.d.ts.map +1 -0
  314. package/src/platform-implementation-js/lib/css-selector-escape.js +6 -12
  315. package/src/platform-implementation-js/lib/delay-asap.d.ts +1 -1
  316. package/src/platform-implementation-js/lib/delay-asap.d.ts.map +1 -1
  317. package/src/platform-implementation-js/lib/delay-asap.js +0 -2
  318. package/src/platform-implementation-js/lib/dom/get-selection.d.ts +3 -0
  319. package/src/platform-implementation-js/lib/dom/get-selection.d.ts.map +1 -0
  320. package/src/platform-implementation-js/lib/dom/get-selection.js +22 -24
  321. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.d.ts +3 -0
  322. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.d.ts.map +1 -0
  323. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +78 -75
  324. package/src/platform-implementation-js/lib/dom/is-node-in-range.d.ts +2 -0
  325. package/src/platform-implementation-js/lib/dom/is-node-in-range.d.ts.map +1 -0
  326. package/src/platform-implementation-js/lib/dom/is-node-in-range.js +12 -17
  327. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.d.ts.map +1 -1
  328. package/src/platform-implementation-js/lib/dom/set-css.d.ts +2 -0
  329. package/src/platform-implementation-js/lib/dom/set-css.d.ts.map +1 -0
  330. package/src/platform-implementation-js/lib/dom/set-css.js +18 -23
  331. package/src/platform-implementation-js/lib/dom/set-value-and-dispatch-event.d.ts +2 -0
  332. package/src/platform-implementation-js/lib/dom/set-value-and-dispatch-event.d.ts.map +1 -0
  333. package/src/platform-implementation-js/lib/dom/set-value-and-dispatch-event.js +6 -12
  334. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.d.ts +4 -0
  335. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.d.ts.map +1 -0
  336. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +84 -93
  337. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.d.ts +1 -1
  338. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.d.ts.map +1 -1
  339. package/src/platform-implementation-js/lib/handle-compose-link-chips.d.ts +4 -0
  340. package/src/platform-implementation-js/lib/handle-compose-link-chips.d.ts.map +1 -0
  341. package/src/platform-implementation-js/lib/handle-compose-link-chips.js +106 -97
  342. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.d.ts.map +1 -1
  343. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.js +1 -1
  344. package/src/platform-implementation-js/lib/insert-link-chip-into-body.d.ts +4 -0
  345. package/src/platform-implementation-js/lib/insert-link-chip-into-body.d.ts.map +1 -0
  346. package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +32 -39
  347. package/src/platform-implementation-js/lib/logger.d.ts +1 -0
  348. package/src/platform-implementation-js/lib/logger.d.ts.map +1 -1
  349. package/src/platform-implementation-js/lib/parseParamsFromRouteID.d.ts +2 -0
  350. package/src/platform-implementation-js/lib/parseParamsFromRouteID.d.ts.map +1 -0
  351. package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +12 -18
  352. package/src/platform-implementation-js/lib/populateRouteID.d.ts +2 -5
  353. package/src/platform-implementation-js/lib/populateRouteID.d.ts.map +1 -0
  354. package/src/platform-implementation-js/lib/populateRouteID.js +16 -21
  355. package/src/platform-implementation-js/lib/react/ElementContainer.d.ts +15 -0
  356. package/src/platform-implementation-js/lib/react/ElementContainer.d.ts.map +1 -0
  357. package/src/platform-implementation-js/lib/react/ElementContainer.js +24 -36
  358. package/src/platform-implementation-js/lib/routeIDmatchesHash.d.ts +2 -4
  359. package/src/platform-implementation-js/lib/routeIDmatchesHash.d.ts.map +1 -0
  360. package/src/platform-implementation-js/lib/routeIDmatchesHash.js +8 -15
  361. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.d.ts +2 -4
  362. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.d.ts.map +1 -0
  363. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +12 -19
  364. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +1 -1
  365. package/src/platform-implementation-js/main.d.ts.map +1 -1
  366. package/src/platform-implementation-js/main.js +1 -4
  367. package/src/platform-implementation-js/namespaces/compose.d.ts +13 -0
  368. package/src/platform-implementation-js/namespaces/compose.d.ts.map +1 -0
  369. package/src/platform-implementation-js/namespaces/compose.js +56 -61
  370. package/src/platform-implementation-js/namespaces/conversations.d.ts +24 -0
  371. package/src/platform-implementation-js/namespaces/conversations.d.ts.map +1 -0
  372. package/src/platform-implementation-js/namespaces/conversations.js +79 -78
  373. package/src/platform-implementation-js/namespaces/global.d.ts +11 -0
  374. package/src/platform-implementation-js/namespaces/global.d.ts.map +1 -0
  375. package/src/platform-implementation-js/namespaces/global.js +28 -36
  376. package/src/platform-implementation-js/namespaces/keyboard.d.ts +11 -0
  377. package/src/platform-implementation-js/namespaces/keyboard.d.ts.map +1 -0
  378. package/src/platform-implementation-js/namespaces/keyboard.js +27 -40
  379. package/src/platform-implementation-js/namespaces/lists.d.ts +14 -0
  380. package/src/platform-implementation-js/namespaces/lists.d.ts.map +1 -0
  381. package/src/platform-implementation-js/namespaces/lists.js +38 -50
  382. package/src/platform-implementation-js/namespaces/modal.d.ts +10 -0
  383. package/src/platform-implementation-js/namespaces/modal.d.ts.map +1 -0
  384. package/src/platform-implementation-js/namespaces/modal.js +40 -48
  385. package/src/platform-implementation-js/namespaces/nav-menu.d.ts +16 -0
  386. package/src/platform-implementation-js/namespaces/nav-menu.d.ts.map +1 -0
  387. package/src/platform-implementation-js/namespaces/nav-menu.js +29 -36
  388. package/src/platform-implementation-js/namespaces/router.d.ts +50 -1
  389. package/src/platform-implementation-js/namespaces/router.d.ts.map +1 -0
  390. package/src/platform-implementation-js/namespaces/router.js +126 -137
  391. package/src/platform-implementation-js/namespaces/search.d.ts +7 -0
  392. package/src/platform-implementation-js/namespaces/search.d.ts.map +1 -0
  393. package/src/platform-implementation-js/namespaces/search.js +25 -34
  394. package/src/platform-implementation-js/namespaces/toolbars.d.ts +15 -0
  395. package/src/platform-implementation-js/namespaces/toolbars.d.ts.map +1 -0
  396. package/src/platform-implementation-js/namespaces/toolbars.js +138 -140
  397. package/src/platform-implementation-js/namespaces/user.d.ts +13 -0
  398. package/src/platform-implementation-js/namespaces/user.d.ts.map +1 -0
  399. package/src/platform-implementation-js/namespaces/user.js +53 -62
  400. package/src/platform-implementation-js/namespaces/widgets.d.ts +16 -0
  401. package/src/platform-implementation-js/namespaces/widgets.d.ts.map +1 -0
  402. package/src/platform-implementation-js/namespaces/widgets.js +68 -77
  403. package/src/platform-implementation-js/platform-implementation.d.ts +54 -126
  404. package/src/platform-implementation-js/platform-implementation.d.ts.map +1 -0
  405. package/src/platform-implementation-js/platform-implementation.js +176 -147
  406. package/src/platform-implementation-js/views/app-toolbar-button-view.d.ts +11 -0
  407. package/src/platform-implementation-js/views/app-toolbar-button-view.d.ts.map +1 -0
  408. package/src/platform-implementation-js/views/app-toolbar-button-view.js +42 -51
  409. package/src/platform-implementation-js/views/collapsible-section-view.d.ts +12 -0
  410. package/src/platform-implementation-js/views/collapsible-section-view.d.ts.map +1 -0
  411. package/src/platform-implementation-js/views/collapsible-section-view.js +58 -86
  412. package/src/platform-implementation-js/views/compose-view.d.ts +2 -1
  413. package/src/platform-implementation-js/views/compose-view.d.ts.map +1 -1
  414. package/src/platform-implementation-js/views/content-panel-view.d.ts +12 -0
  415. package/src/platform-implementation-js/views/content-panel-view.d.ts.map +1 -0
  416. package/src/platform-implementation-js/views/content-panel-view.js +35 -50
  417. package/src/platform-implementation-js/views/conversations/attachment-card-view.d.ts +18 -0
  418. package/src/platform-implementation-js/views/conversations/attachment-card-view.d.ts.map +1 -0
  419. package/src/platform-implementation-js/views/conversations/attachment-card-view.js +39 -44
  420. package/src/platform-implementation-js/views/conversations/custom-message-view.d.ts +28 -0
  421. package/src/platform-implementation-js/views/conversations/custom-message-view.d.ts.map +1 -0
  422. package/src/platform-implementation-js/views/conversations/custom-message-view.js +115 -103
  423. package/src/platform-implementation-js/views/conversations/message-view.d.ts +34 -0
  424. package/src/platform-implementation-js/views/conversations/message-view.d.ts.map +1 -0
  425. package/src/platform-implementation-js/views/conversations/message-view.js +197 -209
  426. package/src/platform-implementation-js/views/conversations/thread-view.d.ts +23 -0
  427. package/src/platform-implementation-js/views/conversations/thread-view.d.ts.map +1 -0
  428. package/src/platform-implementation-js/views/conversations/thread-view.js +93 -100
  429. package/src/platform-implementation-js/views/native-nav-item-view.d.ts +11 -0
  430. package/src/platform-implementation-js/views/native-nav-item-view.d.ts.map +1 -0
  431. package/src/platform-implementation-js/views/native-nav-item-view.js +56 -62
  432. package/src/platform-implementation-js/views/nav-item-view.d.ts +12 -22
  433. package/src/platform-implementation-js/views/nav-item-view.d.ts.map +1 -0
  434. package/src/platform-implementation-js/views/nav-item-view.js +123 -124
  435. package/src/platform-implementation-js/views/route-view/custom-route-view.d.ts +9 -0
  436. package/src/platform-implementation-js/views/route-view/custom-route-view.d.ts.map +1 -0
  437. package/src/platform-implementation-js/views/route-view/custom-route-view.js +24 -36
  438. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.d.ts +14 -0
  439. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.d.ts.map +1 -0
  440. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +27 -38
  441. package/src/platform-implementation-js/views/route-view/list-route-view.d.ts +13 -0
  442. package/src/platform-implementation-js/views/route-view/list-route-view.d.ts.map +1 -0
  443. package/src/platform-implementation-js/views/route-view/list-route-view.js +41 -51
  444. package/src/platform-implementation-js/views/route-view/route-view.d.ts +11 -0
  445. package/src/platform-implementation-js/views/route-view/route-view.d.ts.map +1 -0
  446. package/src/platform-implementation-js/views/route-view/route-view.js +41 -51
  447. package/src/platform-implementation-js/views/section-view.d.ts +11 -0
  448. package/src/platform-implementation-js/views/section-view.d.ts.map +1 -0
  449. package/src/platform-implementation-js/views/section-view.js +56 -81
  450. package/src/platform-implementation-js/views/thread-row-view.d.ts +27 -0
  451. package/src/platform-implementation-js/views/thread-row-view.d.ts.map +1 -0
  452. package/src/platform-implementation-js/views/thread-row-view.js +87 -94
  453. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.d.ts +4 -0
  454. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.d.ts.map +1 -1
  455. package/src/platform-implementation-js/widgets/drawer-view.d.ts +13 -0
  456. package/src/platform-implementation-js/widgets/drawer-view.d.ts.map +1 -0
  457. package/src/platform-implementation-js/widgets/drawer-view.js +46 -53
  458. package/src/platform-implementation-js/widgets/modal-view.d.ts +18 -0
  459. package/src/platform-implementation-js/widgets/modal-view.d.ts.map +1 -0
  460. package/src/platform-implementation-js/widgets/modal-view.js +95 -91
  461. package/src/platform-implementation-js/widgets/mole-view.d.ts +12 -0
  462. package/src/platform-implementation-js/widgets/mole-view.d.ts.map +1 -0
  463. package/src/platform-implementation-js/widgets/mole-view.js +37 -46
  464. package/src/platform-implementation-js/widgets/top-message-bar-view.d.ts +8 -0
  465. package/src/platform-implementation-js/widgets/top-message-bar-view.d.ts.map +1 -0
  466. package/src/platform-implementation-js/widgets/top-message-bar-view.js +13 -21
  467. package/src/injected-js/gmail/modify-suggestions.test.js +0 -20
  468. package/src/injected-js/gmail/sync-compose-request-processor.test.js +0 -80
  469. package/src/injected-js/gmail/thread-identifier/thread-row-parser.test.js +0 -41
  470. package/src/injected-js/xhr-proxy-factory.test.js +0 -1052
  471. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.test.js +0 -22
  472. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.test.js +0 -125
  473. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.test.js +0 -141
  474. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.test.js +0 -209
  475. package/src/platform-implementation-js/lib/array-to-lifetimes.js +0 -69
  476. package/src/platform-implementation-js/lib/array-to-lifetimes.test.js +0 -155
  477. package/src/platform-implementation-js/lib/dom/querySelectorOne.js +0 -13
  478. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.test.js +0 -39
  479. package/src/platform-implementation-js/lib/make-revocable-function.js +0 -38
  480. package/src/platform-implementation-js/lib/make-revocable-function.test.js +0 -61
  481. package/src/platform-implementation-js/lib/parseParamsFromRouteID.test.js +0 -19
  482. package/src/platform-implementation-js/lib/populateRouteID.test.js +0 -32
  483. package/src/platform-implementation-js/lib/routeIDmatchesHash.test.js +0 -17
@@ -1,492 +1,555 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _findIndex = _interopRequireDefault(require("lodash/findIndex"));
10
- var _asap = _interopRequireDefault(require("asap"));
11
- var _ud = require("ud");
12
- var _autoHtml = _interopRequireDefault(require("auto-html"));
13
- var _kefir = _interopRequireDefault(require("kefir"));
14
- var _kefirStopper = _interopRequireDefault(require("kefir-stopper"));
15
- var _kefirBus = _interopRequireDefault(require("kefir-bus"));
16
- var _react = _interopRequireDefault(require("react"));
17
- var _reactDom = _interopRequireDefault(require("react-dom"));
18
- var _findParent = _interopRequireDefault(require("../../../../common/find-parent"));
19
- var _delayAsap = _interopRequireDefault(require("../../../lib/delay-asap"));
20
- var _fromEventTargetCapture = _interopRequireDefault(require("../../../lib/from-event-target-capture"));
21
- var _orderManager = _interopRequireDefault(require("order-manager"));
22
- var _idMap = _interopRequireDefault(require("../../../lib/idMap"));
23
- var _incrementName = _interopRequireDefault(require("../../../lib/incrementName"));
24
- var _querySelectorOrFail = _interopRequireDefault(require("../../../lib/dom/querySelectorOrFail"));
25
- var _makeMutationObserverChunkedStream = _interopRequireDefault(require("../../../lib/dom/make-mutation-observer-chunked-stream"));
26
- var _makeElementChildStream = _interopRequireDefault(require("../../../lib/dom/make-element-child-stream"));
27
- var _simulateMouseEvent = require("../../../lib/dom/simulate-mouse-event");
28
- var _fakeWindowResize = _interopRequireDefault(require("../../../lib/fake-window-resize"));
29
- var _AppSidebar = _interopRequireDefault(require("../../../driver-common/sidebar/AppSidebar"));
30
- var _ContentPanelViewDriver = _interopRequireDefault(require("../../../driver-common/sidebar/ContentPanelViewDriver"));
31
- var _gmailElementGetter = _interopRequireDefault(require("../gmail-element-getter"));
32
- var _addIconArea = _interopRequireDefault(require("./gmail-thread-sidebar-view/add-icon-area"));
33
- var _addToIconArea = _interopRequireDefault(require("./gmail-app-sidebar-view/primary/add-to-icon-area"));
34
- var _classnames = _interopRequireDefault(require("classnames"));
35
- var _constants = require("../../../driver-common/sidebar/constants");
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
36
2
  /*
37
3
  This is used for PRE MATERIAL GMAIL, when sidebar only existed on threads.
38
4
  If you're reading this in the future, do you remember a time when there wasn't a global sidebar?
39
5
  It was a strange world, can you believe who the President of the United States was?
40
6
 
41
7
  */
8
+ import findIndex from 'lodash/findIndex';
9
+ import asap from 'asap';
10
+ import autoHtml from 'auto-html';
11
+ import * as Kefir from 'kefir';
12
+ import kefirStopper from 'kefir-stopper';
13
+ import kefirBus from 'kefir-bus';
14
+ import React from 'react';
15
+ import ReactDOM from 'react-dom';
16
+ import findParent from '../../../../common/find-parent';
17
+ import OrderManager from 'order-manager';
18
+ import idMap from '../../../lib/idMap';
19
+ import incrementName from '../../../lib/incrementName';
20
+ import querySelector from '../../../lib/dom/querySelectorOrFail';
21
+ import makeMutationObserverChunkedStream from '../../../lib/dom/make-mutation-observer-chunked-stream';
22
+ import makeElementChildStream from '../../../lib/dom/make-element-child-stream';
23
+ import { simulateClick } from '../../../lib/dom/simulate-mouse-event';
24
+ import fakeWindowResize from '../../../lib/fake-window-resize';
25
+ import AppSidebar from '../../../driver-common/sidebar/AppSidebar';
26
+ import ContentPanelViewDriver from '../../../driver-common/sidebar/ContentPanelViewDriver';
27
+ import GmailElementGetter from '../gmail-element-getter';
28
+ import addIconArea from './gmail-thread-sidebar-view/add-icon-area';
29
+ import addToIconArea from './gmail-app-sidebar-view/primary/add-to-icon-area';
30
+ import cx from 'classnames';
42
31
  const ADD_ON_SIDEBAR_CONTENT_SELECTOR = '.J-KU-Jz';
43
32
  const ACTIVE_ADD_ON_ICON_SELECTOR = '.J-KU-KO';
33
+ import { sidebarWaitingPlatformSelector, sidebarWaitingPlatformClassName, } from '../../../driver-common/sidebar/constants';
44
34
  class GmailAppSidebarView {
45
- constructor(driver, sidebarContainerEl, addonSidebarElement, widthManager) {
46
- (0, _defineProperty2.default)(this, "_stopper", (0, _kefirStopper.default)());
47
- this._driver = driver;
48
-
49
- // We need to be able to cooperate with other apps/extensions that are
50
- // sharing the app sidebar. We store some properties as attributes in the
51
- // shared DOM instead of as class properties; class properties are mostly
52
- // restricted to being used for references to DOM nodes. When
53
- // GmailAppSidebarView is instantiated, we check the element for an
54
- // attribute to see whether a previous extension's GmailAppSidebarView has
55
- // already set up the sidebar or not.
56
- const idElement = addonSidebarElement || sidebarContainerEl;
57
- if (!idElement) throw new Error('should not happen');
58
- const instanceId = idElement.getAttribute('data-sdk-sidebar-instance-id');
59
- if (instanceId != null) {
60
- this._instanceId = instanceId;
61
- } else {
62
- this._createElement(sidebarContainerEl, addonSidebarElement, widthManager);
63
- }
64
- }
65
- destroy() {
66
- this._stopper.destroy();
67
- }
68
- getStopper() {
69
- return this._stopper;
70
- }
71
-
72
- // This value controls whether the app sidebar should automatically open
73
- // itself when available when the chat sidebar isn't present. It's only set
74
- // if the user interacts with the app sidebar button.
75
- _getShouldAppSidebarOpen() {
76
- return global.localStorage.getItem('inboxsdk__app_sidebar_should_open') !== 'false';
77
- }
78
- _setShouldAppSidebarOpen(open) {
79
- try {
80
- global.localStorage.setItem('inboxsdk__app_sidebar_should_open', String(open));
81
- } catch (err) {
82
- console.error('error saving', err);
83
- }
84
- }
85
- _createElement(_sidebarContainerEl, _addonSidebarContainerEl, widthManager) {
86
- let container, iconArea;
87
- let component;
88
- this._instanceId = `${Date.now()}-${Math.random()}`;
89
- {
90
- const idElement = _addonSidebarContainerEl || _sidebarContainerEl;
91
- if (!idElement) throw new Error('should not happen');
92
- idElement.setAttribute('data-sdk-sidebar-instance-id', this._instanceId);
93
- this._stopper.onValue(() => {
94
- idElement.removeAttribute('data-sdk-sidebar-instance-id');
95
- });
96
- }
97
- const el = document.createElement('div');
98
- el.className = (0, _idMap.default)('app_sidebar_container');
99
- const buttonContainers = new Map();
100
- let activatedWhileLoading = false;
101
- let contentContainer;
102
- let usedAddonsSidebar = false;
103
- const updateHighlightedAppIconBus = (0, _kefirBus.default)();
104
- this._stopper.onEnd(() => {
105
- updateHighlightedAppIconBus.end();
106
- });
107
- if (_addonSidebarContainerEl) {
108
- const mainContentBodyContainerElement = _gmailElementGetter.default.getMainContentBodyContainerElement();
109
- if (mainContentBodyContainerElement) {
110
- contentContainer = mainContentBodyContainerElement.parentElement;
111
- if (!contentContainer) throw new Error('should not happen');
112
- contentContainer.classList.add('container_app_sidebar_in_use');
113
- (0, _querySelectorOrFail.default)(_addonSidebarContainerEl, ADD_ON_SIDEBAR_CONTENT_SELECTOR).insertAdjacentElement('beforebegin', el);
114
-
115
- // See if the element is visible.
116
- // Give it some content temporarily to check if it becomes sized to show it.
117
- _addonSidebarContainerEl.classList.add('app_sidebar_visible');
118
- _addonSidebarContainerEl.classList.add((0, _idMap.default)('app_sidebar_in_use'));
119
- contentContainer.classList.add('container_app_sidebar_visible');
120
- el.textContent = 'x';
121
- const elRect = el.getBoundingClientRect();
122
- el.textContent = '';
123
- // This gets re-added later once the panel has some content to show
124
- _addonSidebarContainerEl.classList.remove('app_sidebar_visible');
125
- contentContainer.classList.remove('container_app_sidebar_visible');
126
- const supportedScreenSize = window.innerWidth >= 1024 && window.innerHeight >= 600;
127
- if (!global._APP_SIDEBAR_TEST && (elRect.width == 0 || elRect.height == 0 || supportedScreenSize && Math.floor(elRect.right) > Math.floor(window.innerWidth))) {
128
- this._driver.getLogger().error(new Error('SDK sidebar inserted into add-ons sidebar was not visible'), {
129
- rect: {
130
- // rect's properties aren't enumerable so we have to do this
131
- top: elRect.top,
132
- bottom: elRect.bottom,
133
- left: elRect.left,
134
- right: elRect.right,
135
- width: elRect.width,
136
- height: elRect.height
137
- },
138
- window: {
139
- innerWidth: window.innerWidth,
140
- innerHeight: window.innerHeight
141
- }
142
- });
143
- } else {
144
- usedAddonsSidebar = true;
35
+ _stopper = kefirStopper();
36
+ _driver;
37
+ _instanceId;
38
+ constructor(driver, sidebarContainerEl, addonSidebarElement, widthManager) {
39
+ this._driver = driver;
40
+ // We need to be able to cooperate with other apps/extensions that are
41
+ // sharing the app sidebar. We store some properties as attributes in the
42
+ // shared DOM instead of as class properties; class properties are mostly
43
+ // restricted to being used for references to DOM nodes. When
44
+ // GmailAppSidebarView is instantiated, we check the element for an
45
+ // attribute to see whether a previous extension's GmailAppSidebarView has
46
+ // already set up the sidebar or not.
47
+ const idElement = addonSidebarElement || sidebarContainerEl;
48
+ if (!idElement)
49
+ throw new Error('should not happen');
50
+ const instanceId = idElement.getAttribute('data-sdk-sidebar-instance-id');
51
+ if (instanceId != null) {
52
+ this._instanceId = instanceId;
145
53
  }
146
- if (!usedAddonsSidebar) {
147
- if (contentContainer) contentContainer.classList.remove('container_app_sidebar_in_use');
148
- _addonSidebarContainerEl.classList.remove((0, _idMap.default)('app_sidebar_in_use'));
54
+ else {
55
+ this._createElement(sidebarContainerEl, addonSidebarElement, widthManager);
149
56
  }
150
- }
151
57
  }
152
- const addonSidebarContainerEl = usedAddonsSidebar ? _addonSidebarContainerEl : null;
153
- const sidebarContainerEl = usedAddonsSidebar ? _addonSidebarContainerEl : _sidebarContainerEl;
154
- if (!sidebarContainerEl) throw new Error('should not happen');
155
- if (!usedAddonsSidebar) {
156
- sidebarContainerEl.insertBefore(el, sidebarContainerEl.firstElementChild);
157
- sidebarContainerEl.classList.add((0, _idMap.default)('app_sidebar_in_use'));
58
+ destroy() {
59
+ this._stopper.destroy();
158
60
  }
159
- if (!document.body.querySelector(_constants.sidebarWaitingPlatformSelector)) {
160
- const waitingPlatform = document.createElement('div');
161
- waitingPlatform.className = (0, _classnames.default)(_constants.sidebarWaitingPlatformClassName, (0, _idMap.default)('app_sidebar_waiting_platform'));
162
- document.body.appendChild(waitingPlatform);
61
+ getStopper() {
62
+ return this._stopper;
163
63
  }
164
- if (addonSidebarContainerEl) {
165
- container = () => el;
166
- el.classList.add('addon_sidebar');
167
- } else {
168
- const containerEl = (0, _findParent.default)(sidebarContainerEl, el => window.getComputedStyle(el).overflowY !== 'visible');
169
- container = containerEl ? () => containerEl : undefined;
64
+ // This value controls whether the app sidebar should automatically open
65
+ // itself when available when the chat sidebar isn't present. It's only set
66
+ // if the user interacts with the app sidebar button.
67
+ _getShouldAppSidebarOpen() {
68
+ return (global.localStorage.getItem('inboxsdk__app_sidebar_should_open') !==
69
+ 'false');
170
70
  }
171
- const currentIds = new Set();
172
- const orderManager = new _orderManager.default({
173
- get() {
71
+ _setShouldAppSidebarOpen(open) {
174
72
  try {
175
- return JSON.parse(global.localStorage.getItem('inboxsdk__sidebar_ordering') || 'null');
176
- } catch (err) {
177
- console.error('failed to read sidebar order data', err);
73
+ global.localStorage.setItem('inboxsdk__app_sidebar_should_open', String(open));
178
74
  }
179
- },
180
- set(data) {
181
- try {
182
- global.localStorage.setItem('inboxsdk__sidebar_ordering', JSON.stringify(data));
183
- } catch (err) {
184
- console.error('failed to set sidebar order data', err);
75
+ catch (err) {
76
+ console.error('error saving', err);
185
77
  }
186
- }
187
- });
188
- updateHighlightedAppIconBus.bufferWithTimeOrCount(150, 100).filter(events => events.length > 0).takeUntilBy(this._stopper).onValue(() => {
189
- const elBoundingBox = el.getBoundingClientRect();
190
- const boundingTop = elBoundingBox.top + el.scrollTop;
191
- const boundingBottom = boundingTop + elBoundingBox.height;
192
- const titleBars = Array.from(el.querySelectorAll(`.${(0, _idMap.default)('app_sidebar_content_panel')}.${(0, _idMap.default)('expanded')} .${(0, _idMap.default)('app_sidebar_content_panel_top_line')}`));
193
- const titleBar = titleBars.find(t => {
194
- const tBoundingBox = t.getBoundingClientRect();
195
- return tBoundingBox.bottom > boundingTop && tBoundingBox.bottom < boundingBottom;
196
- });
197
- if (titleBar) {
198
- const instanceId = titleBar.getAttribute('data-instance-id');
199
- const appName = titleBar.getAttribute('data-app-name');
200
- if (!appName) return;
201
- const appButton = buttonContainers.get(appName);
202
- if (!appButton || !iconArea) return;
203
- const activeButtonContainer = iconArea.querySelector('.sidebar_button_container_active');
204
- if (activeButtonContainer) {
205
- activeButtonContainer.classList.remove('sidebar_button_container_active');
78
+ }
79
+ _createElement(_sidebarContainerEl, _addonSidebarContainerEl, widthManager) {
80
+ let container, iconArea;
81
+ let component;
82
+ this._instanceId = `${Date.now()}-${Math.random()}`;
83
+ {
84
+ const idElement = _addonSidebarContainerEl || _sidebarContainerEl;
85
+ if (!idElement)
86
+ throw new Error('should not happen');
87
+ idElement.setAttribute('data-sdk-sidebar-instance-id', this._instanceId);
88
+ this._stopper.onValue(() => {
89
+ idElement.removeAttribute('data-sdk-sidebar-instance-id');
90
+ });
206
91
  }
207
- appButton.classList.add('sidebar_button_container_active');
208
- }
209
- });
210
- const _appSidebarRefSetter = threadSidebarComponent => {
211
- if (threadSidebarComponent) {
212
- component = threadSidebarComponent;
213
- }
214
- };
215
- const render = () => {
216
- _reactDom.default.render( /*#__PURE__*/_react.default.createElement(_AppSidebar.default, {
217
- ref: _appSidebarRefSetter,
218
- panels: orderManager.getOrderedItems().map(x => x.value),
219
- onMoveEnd: (newList, movedItem, oldIndex, newIndex) => {
220
- orderManager.moveItem(oldIndex, newIndex);
221
- render();
222
- },
223
- onExpandedToggle: () => {
224
- updateHighlightedAppIconBus.emit(null);
225
- },
226
- container: container
227
- }), el, () => {
228
- updateHighlightedAppIconBus.emit(null);
229
- });
230
- };
231
- render();
232
- _kefir.default.fromEvents(window, 'storage').filter(e => e.key === 'inboxsdk__sidebar_ordering').takeUntilBy(this._stopper).onValue(() => {
233
- orderManager.reload();
234
- render();
235
- });
236
- this._stopper.onValue(() => {
237
- _reactDom.default.unmountComponentAtNode(el);
238
- el.remove();
239
- sidebarContainerEl.classList.remove((0, _idMap.default)('app_sidebar_in_use'));
240
- sidebarContainerEl.classList.remove('app_sidebar_visible');
241
- if (iconArea) iconArea.remove();
242
- const mainContentBodyContainerElement = _gmailElementGetter.default.getMainContentBodyContainerElement();
243
- if (mainContentBodyContainerElement) {
244
- contentContainer = mainContentBodyContainerElement.parentElement;
245
- if (contentContainer) {
246
- contentContainer.classList.remove('container_app_sidebar_in_use');
247
- contentContainer.classList.remove('container_app_sidebar_visible');
92
+ const el = document.createElement('div');
93
+ el.className = idMap('app_sidebar_container');
94
+ const buttonContainers = new Map();
95
+ let activatedWhileLoading = false;
96
+ let contentContainer;
97
+ let usedAddonsSidebar = false;
98
+ const updateHighlightedAppIconBus = kefirBus();
99
+ this._stopper.onEnd(() => {
100
+ updateHighlightedAppIconBus.end();
101
+ });
102
+ if (_addonSidebarContainerEl) {
103
+ const mainContentBodyContainerElement = GmailElementGetter.getMainContentBodyContainerElement();
104
+ if (mainContentBodyContainerElement) {
105
+ contentContainer = mainContentBodyContainerElement.parentElement;
106
+ if (!contentContainer)
107
+ throw new Error('should not happen');
108
+ contentContainer.classList.add('container_app_sidebar_in_use');
109
+ querySelector(_addonSidebarContainerEl, ADD_ON_SIDEBAR_CONTENT_SELECTOR).insertAdjacentElement('beforebegin', el);
110
+ // See if the element is visible.
111
+ // Give it some content temporarily to check if it becomes sized to show it.
112
+ _addonSidebarContainerEl.classList.add('app_sidebar_visible');
113
+ _addonSidebarContainerEl.classList.add(idMap('app_sidebar_in_use'));
114
+ contentContainer.classList.add('container_app_sidebar_visible');
115
+ el.textContent = 'x';
116
+ const elRect = el.getBoundingClientRect();
117
+ el.textContent = '';
118
+ // This gets re-added later once the panel has some content to show
119
+ _addonSidebarContainerEl.classList.remove('app_sidebar_visible');
120
+ contentContainer.classList.remove('container_app_sidebar_visible');
121
+ const supportedScreenSize = window.innerWidth >= 1024 && window.innerHeight >= 600;
122
+ if (!global._APP_SIDEBAR_TEST &&
123
+ (elRect.width == 0 ||
124
+ elRect.height == 0 ||
125
+ (supportedScreenSize &&
126
+ Math.floor(elRect.right) > Math.floor(window.innerWidth)))) {
127
+ this._driver
128
+ .getLogger()
129
+ .error(new Error('SDK sidebar inserted into add-ons sidebar was not visible'), {
130
+ rect: {
131
+ // rect's properties aren't enumerable so we have to do this
132
+ top: elRect.top,
133
+ bottom: elRect.bottom,
134
+ left: elRect.left,
135
+ right: elRect.right,
136
+ width: elRect.width,
137
+ height: elRect.height,
138
+ },
139
+ window: {
140
+ innerWidth: window.innerWidth,
141
+ innerHeight: window.innerHeight,
142
+ },
143
+ });
144
+ }
145
+ else {
146
+ usedAddonsSidebar = true;
147
+ }
148
+ if (!usedAddonsSidebar) {
149
+ if (contentContainer)
150
+ contentContainer.classList.remove('container_app_sidebar_in_use');
151
+ _addonSidebarContainerEl.classList.remove(idMap('app_sidebar_in_use'));
152
+ }
153
+ }
248
154
  }
249
- }
250
- });
251
- _kefir.default.fromEvents(document.body, 'inboxsdkNewSidebarPanel').filter(e => e.detail.sidebarId === this._instanceId).takeUntilBy(this._stopper).onValue(event => {
252
- let id = event.detail.id;
253
- while (currentIds.has(id)) {
254
- id = (0, _incrementName.default)(id);
255
- }
256
- currentIds.add(id);
257
- const appName = event.detail.appName;
258
- orderManager.addItem({
259
- groupId: event.detail.appId,
260
- id,
261
- orderHint: event.detail.orderHint,
262
- value: {
263
- id,
264
- appName,
265
- appId: event.detail.appId,
266
- instanceId: event.detail.instanceId,
267
- title: event.detail.title,
268
- iconClass: event.detail.iconClass,
269
- iconUrl: event.detail.iconUrl,
270
- hideTitleBar: event.detail.hideTitleBar,
271
- el: event.target
155
+ const addonSidebarContainerEl = usedAddonsSidebar
156
+ ? _addonSidebarContainerEl
157
+ : null;
158
+ const sidebarContainerEl = usedAddonsSidebar
159
+ ? _addonSidebarContainerEl
160
+ : _sidebarContainerEl;
161
+ if (!sidebarContainerEl)
162
+ throw new Error('should not happen');
163
+ if (!usedAddonsSidebar) {
164
+ sidebarContainerEl.insertBefore(el, sidebarContainerEl.firstElementChild);
165
+ sidebarContainerEl.classList.add(idMap('app_sidebar_in_use'));
272
166
  }
273
- });
274
- render();
275
- if (!addonSidebarContainerEl) return;
276
- iconArea = addonSidebarContainerEl.querySelector('.' + (0, _idMap.default)('sidebar_iconArea'));
277
- if (!iconArea) {
278
- iconArea = document.createElement('div');
279
- iconArea.className = (0, _idMap.default)('sidebar_iconArea');
280
- (0, _addIconArea.default)(iconArea, addonSidebarContainerEl, this._stopper);
281
- }
282
-
283
- // we put adding the content panel icon in the iconArea in an asap so that we
284
- // get consistent ordering. The ordering of the icons is based on the position of the FIRST
285
- // panel with that app name. This means we need to wait for all the panels for a particular appName
286
- // to be added first, and then we can get the correct position
287
- (0, _asap.default)(() => {
288
- if (!iconArea) throw new Error('should not happen');
289
- const instanceId = event.detail.instanceId;
290
- const appIconUrl = event.detail.appIconUrl;
291
-
292
- // If there's an existing button for the app, then just increment its
293
- // data-count attribute instead of adding a new button.
294
- const existingButtonContainer = buttonContainers.get(appName);
295
- let buttonContainer;
296
- if (existingButtonContainer) {
297
- const currentCount = Number(existingButtonContainer.getAttribute('data-count')) || 1;
298
- existingButtonContainer.setAttribute('data-count', String(currentCount + 1));
299
- buttonContainer = existingButtonContainer;
300
- } else {
301
- buttonContainer = document.createElement('div');
302
- buttonContainer.className = (0, _idMap.default)('sidebar_button_container');
303
- buttonContainer.setAttribute('data-app-name', appName);
304
- buttonContainer.setAttribute('data-count', String(1));
305
- buttonContainer.innerHTML = (0, _autoHtml.default)`
167
+ if (!document.body.querySelector(sidebarWaitingPlatformSelector)) {
168
+ const waitingPlatform = document.createElement('div');
169
+ waitingPlatform.className = cx(sidebarWaitingPlatformClassName, idMap('app_sidebar_waiting_platform'));
170
+ document.body.appendChild(waitingPlatform);
171
+ }
172
+ if (addonSidebarContainerEl) {
173
+ container = () => el;
174
+ el.classList.add('addon_sidebar');
175
+ }
176
+ else {
177
+ const containerEl = findParent(sidebarContainerEl, (el) => window.getComputedStyle(el).overflowY !== 'visible');
178
+ container = containerEl ? () => containerEl : undefined;
179
+ }
180
+ const currentIds = new Set();
181
+ const orderManager = new OrderManager({
182
+ get() {
183
+ try {
184
+ return JSON.parse(global.localStorage.getItem('inboxsdk__sidebar_ordering') || 'null');
185
+ }
186
+ catch (err) {
187
+ console.error('failed to read sidebar order data', err);
188
+ }
189
+ },
190
+ set(data) {
191
+ try {
192
+ global.localStorage.setItem('inboxsdk__sidebar_ordering', JSON.stringify(data));
193
+ }
194
+ catch (err) {
195
+ console.error('failed to set sidebar order data', err);
196
+ }
197
+ },
198
+ });
199
+ updateHighlightedAppIconBus
200
+ .bufferWithTimeOrCount(150, 100)
201
+ .filter((events) => events.length > 0)
202
+ .takeUntilBy(this._stopper)
203
+ .onValue(() => {
204
+ const elBoundingBox = el.getBoundingClientRect();
205
+ const boundingTop = elBoundingBox.top + el.scrollTop;
206
+ const boundingBottom = boundingTop + elBoundingBox.height;
207
+ const titleBars = Array.from(el.querySelectorAll(`.${idMap('app_sidebar_content_panel')}.${idMap('expanded')} .${idMap('app_sidebar_content_panel_top_line')}`));
208
+ const titleBar = titleBars.find((t) => {
209
+ const tBoundingBox = t.getBoundingClientRect();
210
+ return (tBoundingBox.bottom > boundingTop &&
211
+ tBoundingBox.bottom < boundingBottom);
212
+ });
213
+ if (titleBar) {
214
+ const instanceId = titleBar.getAttribute('data-instance-id');
215
+ const appName = titleBar.getAttribute('data-app-name');
216
+ if (!appName)
217
+ return;
218
+ const appButton = buttonContainers.get(appName);
219
+ if (!appButton || !iconArea)
220
+ return;
221
+ const activeButtonContainer = iconArea.querySelector('.sidebar_button_container_active');
222
+ if (activeButtonContainer) {
223
+ activeButtonContainer.classList.remove('sidebar_button_container_active');
224
+ }
225
+ appButton.classList.add('sidebar_button_container_active');
226
+ }
227
+ });
228
+ const _appSidebarRefSetter = (threadSidebarComponent) => {
229
+ if (threadSidebarComponent) {
230
+ component = threadSidebarComponent;
231
+ }
232
+ };
233
+ const render = () => {
234
+ ReactDOM.render(React.createElement(AppSidebar, { ref: _appSidebarRefSetter, panels: orderManager.getOrderedItems().map((x) => x.value), onMoveEnd: (newList, movedItem, oldIndex, newIndex) => {
235
+ orderManager.moveItem(oldIndex, newIndex);
236
+ render();
237
+ }, onExpandedToggle: () => {
238
+ updateHighlightedAppIconBus.emit(null);
239
+ }, container: container }), el, () => {
240
+ updateHighlightedAppIconBus.emit(null);
241
+ });
242
+ };
243
+ render();
244
+ Kefir.fromEvents(window, 'storage')
245
+ .filter((e) => e.key === 'inboxsdk__sidebar_ordering')
246
+ .takeUntilBy(this._stopper)
247
+ .onValue(() => {
248
+ orderManager.reload();
249
+ render();
250
+ });
251
+ this._stopper.onValue(() => {
252
+ ReactDOM.unmountComponentAtNode(el);
253
+ el.remove();
254
+ sidebarContainerEl.classList.remove(idMap('app_sidebar_in_use'));
255
+ sidebarContainerEl.classList.remove('app_sidebar_visible');
256
+ if (iconArea)
257
+ iconArea.remove();
258
+ const mainContentBodyContainerElement = GmailElementGetter.getMainContentBodyContainerElement();
259
+ if (mainContentBodyContainerElement) {
260
+ contentContainer = mainContentBodyContainerElement.parentElement;
261
+ if (contentContainer) {
262
+ contentContainer.classList.remove('container_app_sidebar_in_use');
263
+ contentContainer.classList.remove('container_app_sidebar_visible');
264
+ }
265
+ }
266
+ });
267
+ Kefir.fromEvents(document.body, 'inboxsdkNewSidebarPanel')
268
+ .filter((e) => e.detail.sidebarId === this._instanceId)
269
+ .takeUntilBy(this._stopper)
270
+ .onValue((event) => {
271
+ let id = event.detail.id;
272
+ while (currentIds.has(id)) {
273
+ id = incrementName(id);
274
+ }
275
+ currentIds.add(id);
276
+ const appName = event.detail.appName;
277
+ orderManager.addItem({
278
+ groupId: event.detail.appId,
279
+ id,
280
+ orderHint: event.detail.orderHint,
281
+ value: {
282
+ id,
283
+ appName,
284
+ appId: event.detail.appId,
285
+ instanceId: event.detail.instanceId,
286
+ title: event.detail.title,
287
+ iconClass: event.detail.iconClass,
288
+ iconUrl: event.detail.iconUrl,
289
+ hideTitleBar: event.detail.hideTitleBar,
290
+ el: event.target,
291
+ },
292
+ });
293
+ render();
294
+ if (!addonSidebarContainerEl)
295
+ return;
296
+ iconArea = addonSidebarContainerEl.querySelector('.' + idMap('sidebar_iconArea'));
297
+ if (!iconArea) {
298
+ iconArea = document.createElement('div');
299
+ iconArea.className = idMap('sidebar_iconArea');
300
+ addIconArea(iconArea, addonSidebarContainerEl, this._stopper);
301
+ }
302
+ // we put adding the content panel icon in the iconArea in an asap so that we
303
+ // get consistent ordering. The ordering of the icons is based on the position of the FIRST
304
+ // panel with that app name. This means we need to wait for all the panels for a particular appName
305
+ // to be added first, and then we can get the correct position
306
+ asap(() => {
307
+ if (!iconArea)
308
+ throw new Error('should not happen');
309
+ const instanceId = event.detail.instanceId;
310
+ const appIconUrl = event.detail.appIconUrl;
311
+ // If there's an existing button for the app, then just increment its
312
+ // data-count attribute instead of adding a new button.
313
+ const existingButtonContainer = buttonContainers.get(appName);
314
+ let buttonContainer;
315
+ if (existingButtonContainer) {
316
+ const currentCount = Number(existingButtonContainer.getAttribute('data-count')) || 1;
317
+ existingButtonContainer.setAttribute('data-count', String(currentCount + 1));
318
+ buttonContainer = existingButtonContainer;
319
+ }
320
+ else {
321
+ buttonContainer = document.createElement('div');
322
+ buttonContainer.className = idMap('sidebar_button_container');
323
+ buttonContainer.setAttribute('data-app-name', appName);
324
+ buttonContainer.setAttribute('data-count', String(1));
325
+ buttonContainer.innerHTML = autoHtml `
306
326
  <button class="inboxsdk__button_icon" type="button" data-tooltip="${appName}">
307
327
  <img class="inboxsdk__button_iconImg" src="${appIconUrl}">
308
328
  </button>
309
329
  <div class="inboxsdk__button_selectedIndicator"></div>
310
330
  `;
311
- if (event.detail.primaryColor) {
312
- (0, _querySelectorOrFail.default)(buttonContainer, '.inboxsdk__button_selectedIndicator').style.backgroundColor = event.detail.primaryColor;
313
- }
314
- buttonContainers.set(appName, buttonContainer);
315
- (0, _querySelectorOrFail.default)(buttonContainer, 'button').addEventListener('click', event => {
316
- event.stopPropagation();
317
- const activeButtonContainer = iconArea ? iconArea.querySelector('.sidebar_button_container_active') : null;
318
- if (activeButtonContainer) {
319
- activeButtonContainer.classList.remove('sidebar_button_container_active');
320
- }
321
- if (activeButtonContainer === buttonContainer) {
322
- if (addonSidebarContainerEl) addonSidebarContainerEl.classList.remove('app_sidebar_visible');
323
- if (contentContainer) contentContainer.classList.remove('container_app_sidebar_visible');
324
- this._setShouldAppSidebarOpen(false);
325
- } else {
326
- if (addonSidebarContainerEl) addonSidebarContainerEl.classList.add('app_sidebar_visible');
327
- buttonContainer.classList.add('sidebar_button_container_active');
328
- if (contentContainer) contentContainer.classList.add('container_app_sidebar_visible');
329
- this._setShouldAppSidebarOpen(true);
330
- if (addonSidebarContainerEl) {
331
- // check and deactivate add-on sidebar
332
- const activeAddOnIcon = addonSidebarContainerEl.querySelector(ACTIVE_ADD_ON_ICON_SELECTOR);
333
- if (activeAddOnIcon) (0, _simulateMouseEvent.simulateClick)(activeAddOnIcon);
334
-
335
- //fake resize to get gmail to fix any heights that are messed up
336
- (0, _fakeWindowResize.default)();
337
-
338
- // if the tabList is still loading then handle the case where the user
339
- // clicks on an SDK icon to bring up an SDK app when Gmail thinks that it needs
340
- // to bring up an Add-On sidebar (since that was last visible from Gmail's perspective)
341
- // so we need to suppress Gmail bringing up their sidebar. This handles the flag of if we
342
- // need to suppress
343
- const nativeIconArea = addonSidebarContainerEl.firstElementChild;
344
- if (!nativeIconArea) return;
345
- const loadingHolderAsAny = nativeIconArea.firstElementChild;
346
- const loadingHolder = loadingHolderAsAny;
347
- if (!loadingHolder) return;
348
- if (loadingHolder.style.display !== 'none') {
349
- activatedWhileLoading = true;
350
- (0, _makeMutationObserverChunkedStream.default)(loadingHolder, {
351
- attributes: true,
352
- attributeFilter: ['style']
353
- }).toProperty(() => null).map(() => loadingHolder.style.display === 'none').filter(Boolean).take(1).delay(150).takeUntilBy(this._stopper).onValue(() => {
354
- activatedWhileLoading = false;
355
- });
331
+ if (event.detail.primaryColor) {
332
+ querySelector(buttonContainer, '.inboxsdk__button_selectedIndicator').style.backgroundColor = event.detail.primaryColor;
333
+ }
334
+ buttonContainers.set(appName, buttonContainer);
335
+ querySelector(buttonContainer, 'button').addEventListener('click', (event) => {
336
+ event.stopPropagation();
337
+ const activeButtonContainer = iconArea
338
+ ? iconArea.querySelector('.sidebar_button_container_active')
339
+ : null;
340
+ if (activeButtonContainer) {
341
+ activeButtonContainer.classList.remove('sidebar_button_container_active');
342
+ }
343
+ if (activeButtonContainer === buttonContainer) {
344
+ if (addonSidebarContainerEl)
345
+ addonSidebarContainerEl.classList.remove('app_sidebar_visible');
346
+ if (contentContainer)
347
+ contentContainer.classList.remove('container_app_sidebar_visible');
348
+ this._setShouldAppSidebarOpen(false);
349
+ }
350
+ else {
351
+ if (addonSidebarContainerEl)
352
+ addonSidebarContainerEl.classList.add('app_sidebar_visible');
353
+ buttonContainer.classList.add('sidebar_button_container_active');
354
+ if (contentContainer)
355
+ contentContainer.classList.add('container_app_sidebar_visible');
356
+ this._setShouldAppSidebarOpen(true);
357
+ if (addonSidebarContainerEl) {
358
+ // check and deactivate add-on sidebar
359
+ const activeAddOnIcon = addonSidebarContainerEl.querySelector(ACTIVE_ADD_ON_ICON_SELECTOR);
360
+ if (activeAddOnIcon)
361
+ simulateClick(activeAddOnIcon);
362
+ //fake resize to get gmail to fix any heights that are messed up
363
+ fakeWindowResize();
364
+ // if the tabList is still loading then handle the case where the user
365
+ // clicks on an SDK icon to bring up an SDK app when Gmail thinks that it needs
366
+ // to bring up an Add-On sidebar (since that was last visible from Gmail's perspective)
367
+ // so we need to suppress Gmail bringing up their sidebar. This handles the flag of if we
368
+ // need to suppress
369
+ const nativeIconArea = addonSidebarContainerEl.firstElementChild;
370
+ if (!nativeIconArea)
371
+ return;
372
+ const loadingHolderAsAny = nativeIconArea.firstElementChild;
373
+ const loadingHolder = loadingHolderAsAny;
374
+ if (!loadingHolder)
375
+ return;
376
+ if (loadingHolder.style.display !== 'none') {
377
+ activatedWhileLoading = true;
378
+ makeMutationObserverChunkedStream(loadingHolder, {
379
+ attributes: true,
380
+ attributeFilter: ['style'],
381
+ })
382
+ .toProperty(() => null)
383
+ .map(() => loadingHolder.style.display === 'none')
384
+ .filter(Boolean)
385
+ .take(1)
386
+ .delay(150)
387
+ .takeUntilBy(this._stopper)
388
+ .onValue(() => {
389
+ activatedWhileLoading = false;
390
+ });
391
+ }
392
+ }
393
+ component.openPanel(instanceId);
394
+ component.scrollPanelIntoView(instanceId, true);
395
+ }
396
+ }, true);
397
+ if (iconArea)
398
+ addToIconArea(orderManager, appName, buttonContainer, iconArea);
399
+ if (widthManager)
400
+ widthManager.fixWidths();
401
+ if (this._getShouldAppSidebarOpen()) {
402
+ // if we last had an SDK sidebar open then bring up the SDK sidebar when the first
403
+ // panel gets added
404
+ const activeButtonContainer = iconArea.querySelector('.sidebar_button_container_active');
405
+ if (!activeButtonContainer) {
406
+ buttonContainer.classList.add('sidebar_button_container_active');
407
+ if (addonSidebarContainerEl)
408
+ addonSidebarContainerEl.classList.add('app_sidebar_visible');
409
+ if (contentContainer)
410
+ contentContainer.classList.add('container_app_sidebar_visible');
411
+ //fake resize to get gmail to fix any heights that are messed up
412
+ fakeWindowResize();
413
+ }
414
+ }
356
415
  }
357
- }
358
- component.openPanel(instanceId);
359
- component.scrollPanelIntoView(instanceId, true);
416
+ });
417
+ });
418
+ Kefir.fromEvents(document.body, 'inboxsdkUpdateSidebarPanel')
419
+ .filter((e) => e.detail.sidebarId === this._instanceId)
420
+ .takeUntilBy(this._stopper)
421
+ .onValue((event) => {
422
+ const orderedItems = orderManager.getOrderedItems();
423
+ const index = findIndex(orderedItems, (x) => x.value.instanceId === event.detail.instanceId);
424
+ if (index === -1)
425
+ throw new Error('should not happen: failed to find orderItem');
426
+ orderManager.updateItemValueByIndex(index, {
427
+ id: orderedItems[index].value.id,
428
+ appId: event.detail.appId,
429
+ appName: event.detail.appName || event.detail.title,
430
+ instanceId: event.detail.instanceId,
431
+ title: event.detail.title,
432
+ iconClass: event.detail.iconClass,
433
+ iconUrl: event.detail.iconUrl,
434
+ hideTitleBar: event.detail.hideTitleBar,
435
+ el: event.target,
436
+ });
437
+ render();
438
+ });
439
+ Kefir.fromEvents(document.body, 'inboxsdkRemoveSidebarPanel')
440
+ .filter((e) => e.detail.sidebarId === this._instanceId)
441
+ .takeUntilBy(this._stopper)
442
+ .onValue((event) => {
443
+ const orderedItems = orderManager.getOrderedItems();
444
+ const index = findIndex(orderedItems, (x) => x.value.instanceId === event.detail.instanceId);
445
+ if (index === -1)
446
+ throw new Error('should not happen: failed to find orderItem');
447
+ currentIds.delete(orderedItems[index].id);
448
+ orderManager.removeItemByIndex(index);
449
+ if (orderManager.getOrderedItems().length === 0) {
450
+ this.destroy();
360
451
  }
361
- }, true);
362
- if (iconArea) (0, _addToIconArea.default)(orderManager, appName, buttonContainer, iconArea);
363
- if (widthManager) widthManager.fixWidths();
364
- if (this._getShouldAppSidebarOpen()) {
365
- // if we last had an SDK sidebar open then bring up the SDK sidebar when the first
366
- // panel gets added
367
- const activeButtonContainer = iconArea.querySelector('.sidebar_button_container_active');
368
- if (!activeButtonContainer) {
369
- buttonContainer.classList.add('sidebar_button_container_active');
370
- if (addonSidebarContainerEl) addonSidebarContainerEl.classList.add('app_sidebar_visible');
371
- if (contentContainer) contentContainer.classList.add('container_app_sidebar_visible');
372
-
373
- //fake resize to get gmail to fix any heights that are messed up
374
- (0, _fakeWindowResize.default)();
452
+ else {
453
+ render();
375
454
  }
376
- }
377
- }
378
- });
379
- });
380
- _kefir.default.fromEvents(document.body, 'inboxsdkUpdateSidebarPanel').filter(e => e.detail.sidebarId === this._instanceId).takeUntilBy(this._stopper).onValue(event => {
381
- const orderedItems = orderManager.getOrderedItems();
382
- const index = (0, _findIndex.default)(orderedItems, x => x.value.instanceId === event.detail.instanceId);
383
- if (index === -1) throw new Error('should not happen: failed to find orderItem');
384
- orderManager.updateItemValueByIndex(index, {
385
- id: orderedItems[index].value.id,
386
- appId: event.detail.appId,
387
- appName: event.detail.appName || event.detail.title,
388
- instanceId: event.detail.instanceId,
389
- title: event.detail.title,
390
- iconClass: event.detail.iconClass,
391
- iconUrl: event.detail.iconUrl,
392
- hideTitleBar: event.detail.hideTitleBar,
393
- el: event.target
394
- });
395
- render();
396
- });
397
- _kefir.default.fromEvents(document.body, 'inboxsdkRemoveSidebarPanel').filter(e => e.detail.sidebarId === this._instanceId).takeUntilBy(this._stopper).onValue(event => {
398
- const orderedItems = orderManager.getOrderedItems();
399
- const index = (0, _findIndex.default)(orderedItems, x => x.value.instanceId === event.detail.instanceId);
400
- if (index === -1) throw new Error('should not happen: failed to find orderItem');
401
- currentIds.delete(orderedItems[index].id);
402
- orderManager.removeItemByIndex(index);
403
- if (orderManager.getOrderedItems().length === 0) {
404
- this.destroy();
405
- } else {
406
- render();
407
- }
408
- if (!addonSidebarContainerEl) return;
409
- iconArea = addonSidebarContainerEl.querySelector('.' + (0, _idMap.default)('sidebar_iconArea'));
410
- if (!iconArea) return;
411
- if (widthManager) widthManager.fixWidths();
412
- const appName = event.detail.appName;
413
- const container = buttonContainers.get(appName);
414
- if (container) {
415
- const currentCount = Number(container.getAttribute('data-count'));
416
- if (currentCount <= 1) {
417
- const activeButtonContainer = el.querySelector('.sidebar_button_container_active');
418
- container.remove();
419
- buttonContainers.delete(appName);
420
- if (container === activeButtonContainer) {
421
- if (addonSidebarContainerEl) {
422
- addonSidebarContainerEl.classList.remove('app_sidebar_visible');
423
- if (contentContainer) contentContainer.classList.remove('container_app_sidebar_visible');
455
+ if (!addonSidebarContainerEl)
456
+ return;
457
+ iconArea = addonSidebarContainerEl.querySelector('.' + idMap('sidebar_iconArea'));
458
+ if (!iconArea)
459
+ return;
460
+ if (widthManager)
461
+ widthManager.fixWidths();
462
+ const appName = event.detail.appName;
463
+ const container = buttonContainers.get(appName);
464
+ if (container) {
465
+ const currentCount = Number(container.getAttribute('data-count'));
466
+ if (currentCount <= 1) {
467
+ const activeButtonContainer = el.querySelector('.sidebar_button_container_active');
468
+ container.remove();
469
+ buttonContainers.delete(appName);
470
+ if (container === activeButtonContainer) {
471
+ if (addonSidebarContainerEl) {
472
+ addonSidebarContainerEl.classList.remove('app_sidebar_visible');
473
+ if (contentContainer)
474
+ contentContainer.classList.remove('container_app_sidebar_visible');
475
+ }
476
+ this._setShouldAppSidebarOpen(false);
477
+ }
478
+ }
479
+ else if (currentCount === 2) {
480
+ container.removeAttribute('data-count');
481
+ }
482
+ else {
483
+ container.setAttribute('data-count', String(currentCount - 1));
484
+ }
424
485
  }
425
- this._setShouldAppSidebarOpen(false);
426
- }
427
- } else if (currentCount === 2) {
428
- container.removeAttribute('data-count');
429
- } else {
430
- container.setAttribute('data-count', String(currentCount - 1));
486
+ });
487
+ Kefir.fromEvents(document.body, 'inboxsdkSidebarPanelScrollIntoView')
488
+ .takeUntilBy(this._stopper)
489
+ .onValue((event) => {
490
+ component.scrollPanelIntoView(event.detail.instanceId);
491
+ });
492
+ Kefir.fromEvents(document.body, 'inboxsdkSidebarPanelClose')
493
+ .takeUntilBy(this._stopper)
494
+ .onValue((event) => {
495
+ component.closePanel(event.detail.instanceId);
496
+ });
497
+ if (addonSidebarContainerEl) {
498
+ // listen for add-on sidebar contents to become visible which can happen in 1 of two cases
499
+ // 1. user clicks on an Add-Icon icon
500
+ // 2. Gmail automatically opens an Add-on sidebar because it was last open in previous thread
501
+ const addonSidebarContentContainerElement = querySelector(addonSidebarContainerEl, ADD_ON_SIDEBAR_CONTENT_SELECTOR);
502
+ makeElementChildStream(addonSidebarContentContainerElement)
503
+ .flatMap(({ el, removalStream }) => makeMutationObserverChunkedStream(el, {
504
+ attributes: true,
505
+ attributeFilter: ['style'],
506
+ })
507
+ .toProperty(() => null)
508
+ .map(() => el.style.display !== 'none'))
509
+ .takeUntilBy(this._stopper)
510
+ .onValue((isDisplayingGmailAddonSidebar) => {
511
+ if (isDisplayingGmailAddonSidebar) {
512
+ if (contentContainer)
513
+ contentContainer.classList.add('container_addon_sidebar_visible');
514
+ // we need to suppress this sidebar from loading
515
+ if (activatedWhileLoading) {
516
+ const activeAddOnIcon = addonSidebarContainerEl.querySelector(ACTIVE_ADD_ON_ICON_SELECTOR);
517
+ if (activeAddOnIcon)
518
+ simulateClick(activeAddOnIcon);
519
+ return;
520
+ }
521
+ this._setShouldAppSidebarOpen(false);
522
+ const activeButtonContainer = iconArea
523
+ ? iconArea.querySelector('.sidebar_button_container_active')
524
+ : null;
525
+ if (activeButtonContainer) {
526
+ addonSidebarContainerEl.classList.remove('app_sidebar_visible');
527
+ activeButtonContainer.classList.remove('sidebar_button_container_active');
528
+ if (contentContainer)
529
+ contentContainer.classList.remove('container_app_sidebar_visible');
530
+ }
531
+ }
532
+ else {
533
+ if (contentContainer)
534
+ contentContainer.classList.remove('container_addon_sidebar_visible');
535
+ }
536
+ });
431
537
  }
432
- }
433
- });
434
- _kefir.default.fromEvents(document.body, 'inboxsdkSidebarPanelScrollIntoView').takeUntilBy(this._stopper).onValue(event => {
435
- component.scrollPanelIntoView(event.detail.instanceId);
436
- });
437
- _kefir.default.fromEvents(document.body, 'inboxsdkSidebarPanelClose').takeUntilBy(this._stopper).onValue(event => {
438
- component.closePanel(event.detail.instanceId);
439
- });
440
- if (addonSidebarContainerEl) {
441
- // listen for add-on sidebar contents to become visible which can happen in 1 of two cases
442
- // 1. user clicks on an Add-Icon icon
443
- // 2. Gmail automatically opens an Add-on sidebar because it was last open in previous thread
444
- const addonSidebarContentContainerElement = (0, _querySelectorOrFail.default)(addonSidebarContainerEl, ADD_ON_SIDEBAR_CONTENT_SELECTOR);
445
- (0, _makeElementChildStream.default)(addonSidebarContentContainerElement).flatMap(_ref => {
446
- let {
447
- el,
448
- removalStream
449
- } = _ref;
450
- return (0, _makeMutationObserverChunkedStream.default)(el, {
451
- attributes: true,
452
- attributeFilter: ['style']
453
- }).toProperty(() => null).map(() => el.style.display !== 'none');
454
- }).takeUntilBy(this._stopper).onValue(isDisplayingGmailAddonSidebar => {
455
- if (isDisplayingGmailAddonSidebar) {
456
- if (contentContainer) contentContainer.classList.add('container_addon_sidebar_visible');
457
-
458
- // we need to suppress this sidebar from loading
459
- if (activatedWhileLoading) {
460
- const activeAddOnIcon = addonSidebarContainerEl.querySelector(ACTIVE_ADD_ON_ICON_SELECTOR);
461
- if (activeAddOnIcon) (0, _simulateMouseEvent.simulateClick)(activeAddOnIcon);
462
- return;
463
- }
464
- this._setShouldAppSidebarOpen(false);
465
- const activeButtonContainer = iconArea ? iconArea.querySelector('.sidebar_button_container_active') : null;
466
- if (activeButtonContainer) {
467
- addonSidebarContainerEl.classList.remove('app_sidebar_visible');
468
- activeButtonContainer.classList.remove('sidebar_button_container_active');
469
- if (contentContainer) contentContainer.classList.remove('container_app_sidebar_visible');
470
- }
471
- } else {
472
- if (contentContainer) contentContainer.classList.remove('container_addon_sidebar_visible');
538
+ if (addonSidebarContainerEl) {
539
+ //listen for scroll and update active icon if needed
540
+ Kefir.fromEvents(el, 'scroll')
541
+ .takeUntilBy(this._stopper)
542
+ .onValue(() => {
543
+ updateHighlightedAppIconBus.emit(null);
544
+ });
473
545
  }
474
- });
475
546
  }
476
- if (addonSidebarContainerEl) {
477
- //listen for scroll and update active icon if needed
478
- _kefir.default.fromEvents(el, 'scroll').takeUntilBy(this._stopper).onValue(() => {
479
- updateHighlightedAppIconBus.emit(null);
480
- });
547
+ addSidebarContentPanel(descriptor) {
548
+ const panel = new ContentPanelViewDriver(this._driver, descriptor, this._instanceId);
549
+ this._stopper.takeUntilBy(panel.getStopper()).onValue(() => {
550
+ panel.remove();
551
+ });
552
+ return panel;
481
553
  }
482
- }
483
- addSidebarContentPanel(descriptor) {
484
- const panel = new _ContentPanelViewDriver.default(this._driver, descriptor, this._instanceId);
485
- this._stopper.takeUntilBy(panel.getStopper()).onValue(() => {
486
- panel.remove();
487
- });
488
- return panel;
489
- }
490
554
  }
491
- var _default = (0, _ud.defn)(module, GmailAppSidebarView);
492
- exports.default = _default;
555
+ export default GmailAppSidebarView;