@inboxsdk/core 1.1.6 → 1.1.8

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 +8 -3
  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,407 +1,460 @@
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 _uniq = _interopRequireDefault(require("lodash/uniq"));
10
- var _escape = _interopRequireDefault(require("lodash/escape"));
11
- var _asap = _interopRequireDefault(require("asap"));
12
- var _ud = require("ud");
13
- var _kefir = _interopRequireDefault(require("kefir"));
14
- var _kefirStopper = _interopRequireDefault(require("kefir-stopper"));
15
- var _streamWaitFor = _interopRequireDefault(require("../../../lib/stream-wait-for"));
16
- var _makeMutationObserverStream = _interopRequireDefault(require("../../../lib/dom/make-mutation-observer-stream"));
17
- var _insertElementInOrder = _interopRequireDefault(require("../../../lib/dom/insert-element-in-order"));
18
- var _isElementVisible = _interopRequireDefault(require("../../../../common/isElementVisible"));
19
- var _gmailElementGetter = _interopRequireDefault(require("../gmail-element-getter"));
20
- var _buttonView = _interopRequireDefault(require("../widgets/buttons/button-view"));
21
- var _gmailDropdownView = _interopRequireDefault(require("../widgets/gmail-dropdown-view"));
22
- var _basicButtonViewController = _interopRequireDefault(require("../../../widgets/buttons/basic-button-view-controller"));
23
- var _dropdownButtonViewController = _interopRequireDefault(require("../../../widgets/buttons/dropdown-button-view-controller"));
24
- var _gmailThreadView = _interopRequireDefault(require("./gmail-thread-view"));
25
- var _gmailRowListView = _interopRequireDefault(require("./gmail-row-list-view"));
26
- var _toolbars = require("../../../constants/toolbars");
27
- var _logger = _interopRequireDefault(require("../../../lib/logger"));
1
+ import escape from 'lodash/escape';
2
+ import asap from 'asap';
3
+ import * as Kefir from 'kefir';
4
+ import kefirStopper from 'kefir-stopper';
5
+ import streamWaitFor from '../../../lib/stream-wait-for';
6
+ import makeMutationObserverStream from '../../../lib/dom/make-mutation-observer-stream';
7
+ import insertElementInOrder from '../../../lib/dom/insert-element-in-order';
8
+ import isElementVisible from '../../../../common/isElementVisible';
9
+ import GmailElementGetter from '../gmail-element-getter';
10
+ import ButtonView from '../widgets/buttons/button-view';
11
+ import GmailDropdownView from '../widgets/gmail-dropdown-view';
12
+ import BasicButtonViewController from '../../../widgets/buttons/basic-button-view-controller';
13
+ import DropdownButtonViewController from '../../../widgets/buttons/dropdown-button-view-controller';
14
+ import GmailThreadView from './gmail-thread-view';
15
+ import GmailRowListView from './gmail-row-list-view';
16
+ import { SECTION_NAMES } from '../../../constants/toolbars';
17
+ import Logger from '../../../lib/logger';
28
18
  class GmailToolbarView {
29
- constructor(element, driver, routeViewDriver, parent) {
30
- (0, _defineProperty2.default)(this, "_buttonViewControllers", new Set());
31
- (0, _defineProperty2.default)(this, "_moreMenuItems", []);
32
- (0, _defineProperty2.default)(this, "_isUpdateButtonClassesScheduled", false);
33
- (0, _defineProperty2.default)(this, "_moreMenuItemsContainer", null);
34
- // Important: Multiple GmailToolbarViews will be created for the same
35
- // toolbar element in preview pane mode! When a GmailToolbarView is
36
- // created, it adds some attributes to the element corresponding to the
37
- // GmailToolbarView's type. When addButton is called, the buttons get the
38
- // same attributes as the GmailToolbarView added. CSS rules are used to
39
- // hide the buttons with attributes that don't currently match the toolbar
40
- // element.
41
- this._element = element;
42
- this._driver = driver;
43
- this._stopper = (0, _kefirStopper.default)();
44
- this._routeViewDriver = routeViewDriver;
45
- if (this._getMoveSectionElement()) {
46
- this._ready = _kefir.default.constant(this);
47
- } else {
48
- this._ready = (0, _streamWaitFor.default)(() => !!this._getMoveSectionElement()).takeUntilBy(this._stopper).map(() => this).toProperty();
19
+ _element;
20
+ _driver;
21
+ _ready;
22
+ _stopper;
23
+ _routeViewDriver;
24
+ _buttonViewControllers = new Set();
25
+ _moreMenuItems = [];
26
+ _toolbarState;
27
+ _threadViewDriver;
28
+ _rowListViewDriver;
29
+ _isUpdateButtonClassesScheduled = false;
30
+ _moreMenuItemsContainer = null;
31
+ constructor(element, driver, routeViewDriver, parent) {
32
+ // Important: Multiple GmailToolbarViews will be created for the same
33
+ // toolbar element in preview pane mode! When a GmailToolbarView is
34
+ // created, it adds some attributes to the element corresponding to the
35
+ // GmailToolbarView's type. When addButton is called, the buttons get the
36
+ // same attributes as the GmailToolbarView added. CSS rules are used to
37
+ // hide the buttons with attributes that don't currently match the toolbar
38
+ // element.
39
+ this._element = element;
40
+ this._driver = driver;
41
+ this._stopper = kefirStopper();
42
+ this._routeViewDriver = routeViewDriver;
43
+ if (this._getMoveSectionElement()) {
44
+ this._ready = Kefir.constant(this);
45
+ }
46
+ else {
47
+ this._ready = streamWaitFor(() => !!this._getMoveSectionElement())
48
+ .takeUntilBy(this._stopper)
49
+ .map(() => this)
50
+ .toProperty();
51
+ }
52
+ this._ready.onValue(() => {
53
+ this._startMonitoringMoreMenu();
54
+ this._determineToolbarState();
55
+ this._determineToolbarIconMode();
56
+ this._setupToolbarStateMonitoring();
57
+ });
58
+ if (parent instanceof GmailThreadView) {
59
+ this._threadViewDriver = parent;
60
+ this._ready.onValue(() => {
61
+ this._element.setAttribute('data-thread-toolbar', 'true');
62
+ });
63
+ }
64
+ else if (parent instanceof GmailRowListView) {
65
+ this._rowListViewDriver = parent;
66
+ this._ready.onValue(() => {
67
+ this._element.setAttribute('data-rowlist-toolbar', 'true');
68
+ });
69
+ }
70
+ else {
71
+ throw new Error('Invalid parent');
72
+ }
49
73
  }
50
- this._ready.onValue(() => {
51
- this._startMonitoringMoreMenu();
52
- this._determineToolbarState();
53
- this._determineToolbarIconMode();
54
- this._setupToolbarStateMonitoring();
55
- });
56
- if (parent instanceof _gmailThreadView.default) {
57
- this._threadViewDriver = parent;
58
- this._ready.onValue(() => {
59
- this._element.setAttribute('data-thread-toolbar', 'true');
60
- });
61
- } else if (parent instanceof _gmailRowListView.default) {
62
- this._rowListViewDriver = parent;
63
- this._ready.onValue(() => {
64
- this._element.setAttribute('data-rowlist-toolbar', 'true');
65
- });
66
- } else {
67
- throw new Error('Invalid parent');
74
+ getStopper() {
75
+ return this._stopper;
68
76
  }
69
- }
70
- getStopper() {
71
- return this._stopper;
72
- }
73
- getElement() {
74
- return this._element;
75
- }
76
- getRouteViewDriver() {
77
- return this._routeViewDriver;
78
- }
79
- getThreadViewDriver() {
80
- return this._threadViewDriver;
81
- }
82
- isForRowList() {
83
- return this._rowListViewDriver != null;
84
- }
85
- isForThread() {
86
- return this._threadViewDriver != null;
87
- }
88
- getThreadRowViewDrivers() {
89
- if (!this._rowListViewDriver) {
90
- console.error('missing this._rowListViewDriver');
91
- return new Set();
77
+ getElement() {
78
+ return this._element;
92
79
  }
93
- return this._rowListViewDriver.getThreadRowViewDrivers();
94
- }
95
- addButton(buttonDescriptor, id) {
96
- const buttonStopper = (0, _kefirStopper.default)();
97
- this._stopper.takeUntilBy(buttonStopper).onValue(() => {
98
- buttonStopper.destroy();
99
- });
100
- const appId = this._driver.getAppId();
101
- const toolbarSections = _toolbars.SECTION_NAMES;
102
- this._ready.takeUntilBy(buttonStopper).onValue(() => {
103
- if (buttonDescriptor.section === toolbarSections.OTHER) {
104
- const entry = {
105
- buttonDescriptor
106
- };
107
- this._moreMenuItems.push(entry);
108
- this._addToOpenMoreMenu(buttonDescriptor);
109
- buttonStopper.onValue(() => {
110
- this._moreMenuItems = this._moreMenuItems.filter(_entry => _entry !== entry);
111
- this._addMoreItems();
80
+ getRouteViewDriver() {
81
+ return this._routeViewDriver;
82
+ }
83
+ getThreadViewDriver() {
84
+ return this._threadViewDriver;
85
+ }
86
+ isForRowList() {
87
+ return this._rowListViewDriver != null;
88
+ }
89
+ isForThread() {
90
+ return this._threadViewDriver != null;
91
+ }
92
+ getThreadRowViewDrivers() {
93
+ if (!this._rowListViewDriver) {
94
+ console.error('missing this._rowListViewDriver');
95
+ return new Set();
96
+ }
97
+ return this._rowListViewDriver.getThreadRowViewDrivers();
98
+ }
99
+ addButton(buttonDescriptor, id) {
100
+ const buttonStopper = kefirStopper();
101
+ this._stopper.takeUntilBy(buttonStopper).onValue(() => {
102
+ buttonStopper.destroy();
112
103
  });
113
- } else {
114
- const sectionElement = this._getSectionElement(buttonDescriptor.section, toolbarSections);
115
- if (sectionElement) {
116
- const buttonViewController = this._createButtonViewController(buttonDescriptor);
117
- this._buttonViewControllers.add(buttonViewController);
118
- buttonStopper.onValue(() => {
119
- this._buttonViewControllers.delete(buttonViewController);
120
- buttonViewController.destroy();
121
- });
122
-
123
- // Debugging code to track our duplicate toolbar button issue.
124
- buttonViewController.getView().getElement().__addButton_ownedByExtension = true;
125
- buttonViewController.getView().getElement().setAttribute('data-add-button-debug', JSON.stringify({
126
- id,
127
- title: buttonDescriptor.title,
128
- hasThreadViewDriver: this.isForThread(),
129
- hasRowListViewDriver: this.isForRowList()
130
- }));
131
- buttonViewController.getView().getElement().setAttribute('data-order-hint', String(buttonDescriptor.orderHint || 0));
132
- (0, _insertElementInOrder.default)(sectionElement, buttonViewController.getView().getElement());
133
- _kefir.default.merge([_kefir.default.constant(-1), _kefir.default.later(1000, 1000)]).map(delay => {
134
- const duplicates = Array.from(sectionElement.children).filter(el => buttonViewController.getView().getElement().getAttribute('data-rowlist-toolbar') === el.getAttribute('data-rowlist-toolbar') && buttonViewController.getView().getElement().getAttribute('data-toolbar-expanded') === el.getAttribute('data-toolbar-expanded')).filter(el => el.hasAttribute('data-add-button-debug')).map(el => Object.assign({
135
- ownedByExtension: !!el.__addButton_ownedByExtension
136
- }, JSON.parse(el.getAttribute('data-add-button-debug') || 'null'))).filter(_ref => {
137
- let {
138
- title
139
- } = _ref;
140
- return title === buttonDescriptor.title;
141
- });
142
- return {
143
- delay,
144
- duplicates
145
- };
146
- }).filter(_ref2 => {
147
- let {
148
- duplicates
149
- } = _ref2;
150
- return duplicates.length > 1;
151
- }).take(1).takeUntilBy(this._stopper).onValue(_ref3 => {
152
- let {
153
- delay,
154
- duplicates
155
- } = _ref3;
156
- _logger.default.error(new Error('Duplicate toolbar button'), {
157
- delay,
158
- duplicates,
159
- dataThreadToolbar: this._element.getAttribute('data-thread-toolbar'),
160
- dataRowlistToolbar: this._element.getAttribute('data-rowlist-toolbar')
104
+ const appId = this._driver.getAppId();
105
+ const toolbarSections = SECTION_NAMES;
106
+ this._ready.takeUntilBy(buttonStopper).onValue(() => {
107
+ if (buttonDescriptor.section === toolbarSections.OTHER) {
108
+ const entry = {
109
+ buttonDescriptor,
110
+ };
111
+ this._moreMenuItems.push(entry);
112
+ this._addToOpenMoreMenu(buttonDescriptor);
113
+ buttonStopper.onValue(() => {
114
+ this._moreMenuItems = this._moreMenuItems.filter((_entry) => _entry !== entry);
115
+ this._addMoreItems();
116
+ });
117
+ }
118
+ else {
119
+ const sectionElement = this._getSectionElement(buttonDescriptor.section, toolbarSections);
120
+ if (sectionElement) {
121
+ const buttonViewController = this._createButtonViewController(buttonDescriptor);
122
+ this._buttonViewControllers.add(buttonViewController);
123
+ buttonStopper.onValue(() => {
124
+ this._buttonViewControllers.delete(buttonViewController);
125
+ buttonViewController.destroy();
126
+ });
127
+ // Debugging code to track our duplicate toolbar button issue.
128
+ buttonViewController.getView().getElement().__addButton_ownedByExtension = true;
129
+ buttonViewController
130
+ .getView()
131
+ .getElement()
132
+ .setAttribute('data-add-button-debug', JSON.stringify({
133
+ id,
134
+ title: buttonDescriptor.title,
135
+ hasThreadViewDriver: this.isForThread(),
136
+ hasRowListViewDriver: this.isForRowList(),
137
+ }));
138
+ buttonViewController
139
+ .getView()
140
+ .getElement()
141
+ .setAttribute('data-order-hint', String(buttonDescriptor.orderHint || 0));
142
+ insertElementInOrder(sectionElement, buttonViewController.getView().getElement());
143
+ Kefir.merge([Kefir.constant(-1), Kefir.later(1000, 1000)])
144
+ .map((delay) => {
145
+ const duplicates = Array.from(sectionElement.children)
146
+ .filter((el) => buttonViewController
147
+ .getView()
148
+ .getElement()
149
+ .getAttribute('data-rowlist-toolbar') ===
150
+ el.getAttribute('data-rowlist-toolbar') &&
151
+ buttonViewController
152
+ .getView()
153
+ .getElement()
154
+ .getAttribute('data-toolbar-expanded') ===
155
+ el.getAttribute('data-toolbar-expanded'))
156
+ .filter((el) => el.hasAttribute('data-add-button-debug'))
157
+ .map((el) => Object.assign({
158
+ ownedByExtension: !!el
159
+ .__addButton_ownedByExtension,
160
+ }, JSON.parse(el.getAttribute('data-add-button-debug') || 'null')))
161
+ .filter(({ title }) => title === buttonDescriptor.title);
162
+ return {
163
+ delay,
164
+ duplicates,
165
+ };
166
+ })
167
+ .filter(({ duplicates }) => duplicates.length > 1)
168
+ .take(1)
169
+ .takeUntilBy(this._stopper)
170
+ .onValue(({ delay, duplicates }) => {
171
+ Logger.error(new Error('Duplicate toolbar button'), {
172
+ delay,
173
+ duplicates,
174
+ dataThreadToolbar: this._element.getAttribute('data-thread-toolbar'),
175
+ dataRowlistToolbar: this._element.getAttribute('data-rowlist-toolbar'),
176
+ });
177
+ });
178
+ this._updateButtonClasses(this._element);
179
+ buttonViewController
180
+ .getView()
181
+ .setEnabled(this._toolbarState === 'EXPANDED');
182
+ }
183
+ }
184
+ });
185
+ return {
186
+ getStopper: () => buttonStopper,
187
+ destroy: () => {
188
+ buttonStopper.destroy();
189
+ },
190
+ };
191
+ }
192
+ waitForReady() {
193
+ return this._ready;
194
+ }
195
+ _createButtonViewController(buttonDescriptor) {
196
+ const buttonView = this._getButtonView(buttonDescriptor);
197
+ buttonDescriptor.buttonView = buttonView;
198
+ let buttonViewController = null;
199
+ if (buttonDescriptor.hasDropdown) {
200
+ buttonViewController = new DropdownButtonViewController({
201
+ buttonView: buttonView,
202
+ dropdownViewDriverClass: GmailDropdownView,
203
+ dropdownShowFunction: buttonDescriptor.onClick,
204
+ dropdownPositionOptions: {
205
+ position: 'bottom',
206
+ hAlign: 'left',
207
+ },
161
208
  });
162
- });
163
- this._updateButtonClasses(this._element);
164
- buttonViewController.getView().setEnabled(this._toolbarState === 'EXPANDED');
165
209
  }
166
- }
167
- });
168
- return {
169
- getStopper: () => buttonStopper,
170
- destroy: () => {
171
- buttonStopper.destroy();
172
- }
173
- };
174
- }
175
- waitForReady() {
176
- return this._ready;
177
- }
178
- _createButtonViewController(buttonDescriptor) {
179
- const buttonView = this._getButtonView(buttonDescriptor);
180
- buttonDescriptor.buttonView = buttonView;
181
- let buttonViewController = null;
182
- if (buttonDescriptor.hasDropdown) {
183
- buttonViewController = new _dropdownButtonViewController.default({
184
- buttonView: buttonView,
185
- dropdownViewDriverClass: _gmailDropdownView.default,
186
- dropdownShowFunction: buttonDescriptor.onClick,
187
- dropdownPositionOptions: {
188
- position: 'bottom',
189
- hAlign: 'left'
210
+ else {
211
+ buttonViewController = new BasicButtonViewController(buttonDescriptor);
190
212
  }
191
- });
192
- } else {
193
- buttonViewController = new _basicButtonViewController.default(buttonDescriptor);
213
+ return buttonViewController;
194
214
  }
195
- return buttonViewController;
196
- }
197
- _getButtonView(buttonDescriptor) {
198
- const buttonView = new _buttonView.default({
199
- ...buttonDescriptor,
200
- noArrow: true
201
- });
202
- if (this._rowListViewDriver) {
203
- buttonView.getElement().setAttribute('data-rowlist-toolbar', 'true');
204
- buttonView.getElement().setAttribute('data-toolbar-expanded', 'true');
205
- } else if (this._threadViewDriver) {
206
- buttonView.getElement().setAttribute('data-thread-toolbar', 'true');
215
+ _getButtonView(buttonDescriptor) {
216
+ const buttonView = new ButtonView({ ...buttonDescriptor, noArrow: true });
217
+ if (this._rowListViewDriver) {
218
+ buttonView.getElement().setAttribute('data-rowlist-toolbar', 'true');
219
+ buttonView.getElement().setAttribute('data-toolbar-expanded', 'true');
220
+ }
221
+ else if (this._threadViewDriver) {
222
+ buttonView.getElement().setAttribute('data-thread-toolbar', 'true');
223
+ }
224
+ buttonView.getElement().setAttribute('role', 'button');
225
+ return buttonView;
207
226
  }
208
- buttonView.getElement().setAttribute('role', 'button');
209
- return buttonView;
210
- }
211
- _startMonitoringMoreMenu() {
212
- const moreButtonElement = this._element.querySelector('.nf[role=button]');
213
- if (!moreButtonElement) {
214
- return;
227
+ _startMonitoringMoreMenu() {
228
+ const moreButtonElement = this._element.querySelector('.nf[role=button]');
229
+ if (!moreButtonElement) {
230
+ return;
231
+ }
232
+ makeMutationObserverStream(moreButtonElement, {
233
+ attributes: true,
234
+ attributeFilter: ['aria-expanded'],
235
+ })
236
+ .toProperty(() => null)
237
+ .takeUntilBy(this._stopper)
238
+ .map(() => moreButtonElement.getAttribute('aria-expanded'))
239
+ .onValue((ariaExpanded) => {
240
+ if (ariaExpanded !== 'true') {
241
+ this._clearMoreItems();
242
+ }
243
+ else {
244
+ this._addMoreItems();
245
+ }
246
+ });
215
247
  }
216
- (0, _makeMutationObserverStream.default)(moreButtonElement, {
217
- attributes: true,
218
- attributeFilter: ['aria-expanded']
219
- }).toProperty(() => null).takeUntilBy(this._stopper).map(() => moreButtonElement.getAttribute('aria-expanded')).onValue(ariaExpanded => {
220
- if (ariaExpanded !== 'true') {
221
- this._clearMoreItems();
222
- } else {
223
- this._addMoreItems();
224
- }
225
- });
226
- }
227
- _determineToolbarState() {
228
- const moveSectionElement = this._getMoveSectionElement();
229
- if (!moveSectionElement) throw new Error('No move section element');
230
- if (moveSectionElement.style.display === 'none') {
231
- this._toolbarState = 'COLLAPSED';
232
- } else {
233
- this._toolbarState = 'EXPANDED';
248
+ _determineToolbarState() {
249
+ const moveSectionElement = this._getMoveSectionElement();
250
+ if (!moveSectionElement)
251
+ throw new Error('No move section element');
252
+ if (moveSectionElement.style.display === 'none') {
253
+ this._toolbarState = 'COLLAPSED';
254
+ }
255
+ else {
256
+ this._toolbarState = 'EXPANDED';
257
+ }
234
258
  }
235
- }
236
- _determineToolbarIconMode() {
237
- const moveSectionElement = this._getMoveSectionElement();
238
- if (!moveSectionElement) throw new Error('No move section element');
239
- const isIconMode = Array.from(moveSectionElement.querySelectorAll('[role=button]:not(.inboxsdk__button)')).some(buttonElement => buttonElement.hasAttribute('title') || buttonElement.hasAttribute('data-tooltip'));
240
- this._element.setAttribute('data-toolbar-icononly', isIconMode ? 'true' : 'false');
241
- }
242
- _setupToolbarStateMonitoring() {
243
- const moveSectionElement = this._getMoveSectionElement();
244
- if (!moveSectionElement) throw new Error('No move section element');
245
- (0, _makeMutationObserverStream.default)(moveSectionElement, {
246
- attributes: true,
247
- attributeFilter: ['style']
248
- }).takeUntilBy(this._stopper).onValue(mutation => {
249
- if (mutation.target instanceof HTMLElement && mutation.target.style.display === 'none') {
250
- this._toolbarState = 'COLLAPSED';
251
- } else {
252
- this._toolbarState = 'EXPANDED';
253
- }
254
- this._updateButtonClasses(this._element);
255
- this._updateButtonEnabledState();
256
- });
257
- }
258
- _getSectionElement(sectionName, toolbarSections) {
259
- switch (sectionName) {
260
- case toolbarSections.INBOX_STATE:
261
- return this._getArchiveSectionElement();
262
- case toolbarSections.METADATA_STATE:
263
- return this._getMoveSectionElement();
264
- default:
265
- return null;
259
+ _determineToolbarIconMode() {
260
+ const moveSectionElement = this._getMoveSectionElement();
261
+ if (!moveSectionElement)
262
+ throw new Error('No move section element');
263
+ const isIconMode = Array.from(moveSectionElement.querySelectorAll('[role=button]:not(.inboxsdk__button)')).some((buttonElement) => buttonElement.hasAttribute('title') ||
264
+ buttonElement.hasAttribute('data-tooltip'));
265
+ this._element.setAttribute('data-toolbar-icononly', isIconMode ? 'true' : 'false');
266
+ }
267
+ _setupToolbarStateMonitoring() {
268
+ const moveSectionElement = this._getMoveSectionElement();
269
+ if (!moveSectionElement)
270
+ throw new Error('No move section element');
271
+ makeMutationObserverStream(moveSectionElement, {
272
+ attributes: true,
273
+ attributeFilter: ['style'],
274
+ })
275
+ .takeUntilBy(this._stopper)
276
+ .onValue((mutation) => {
277
+ if (mutation.target instanceof HTMLElement &&
278
+ mutation.target.style.display === 'none') {
279
+ this._toolbarState = 'COLLAPSED';
280
+ }
281
+ else {
282
+ this._toolbarState = 'EXPANDED';
283
+ }
284
+ this._updateButtonClasses(this._element);
285
+ this._updateButtonEnabledState();
286
+ });
287
+ }
288
+ _getSectionElement(sectionName, toolbarSections) {
289
+ switch (sectionName) {
290
+ case toolbarSections.INBOX_STATE:
291
+ return this._getArchiveSectionElement();
292
+ case toolbarSections.METADATA_STATE:
293
+ return this._getMoveSectionElement();
294
+ default:
295
+ return null;
296
+ }
266
297
  }
267
- }
268
- _getArchiveSectionElement() {
269
- return this._getSectionElementForButtonSelector('.ar9, .aFh, .aFj, .lR, .nN, .nX, .aFk');
270
- }
271
- _getCheckboxSectionElement() {
272
- return this._getSectionElementForButtonSelector('.T-Jo-auh');
273
- }
274
- _getMoveSectionElement() {
275
- return this._getSectionElementForButtonSelector('.asb, .ase, .ns, .mw');
276
- }
277
- _getSectionElementForButtonSelector(buttonSelector) {
278
- const sectionElements = this._element.querySelectorAll('.G-Ni');
279
- for (let ii = 0; ii < sectionElements.length; ii++) {
280
- if (sectionElements[ii].querySelector(buttonSelector)) {
281
- return sectionElements[ii];
282
- }
298
+ _getArchiveSectionElement() {
299
+ return this._getSectionElementForButtonSelector('.ar9, .aFh, .aFj, .lR, .nN, .nX, .aFk');
283
300
  }
284
- return null;
285
- }
286
- _updateButtonClasses(element) {
287
- if (this._isUpdateButtonClassesScheduled) return;
288
- this._isUpdateButtonClassesScheduled = true;
289
- (0, _asap.default)(() => {
290
- if (this._toolbarState === 'EXPANDED') {
291
- element.setAttribute('data-toolbar-expanded', 'true');
292
- } else if (this._toolbarState === 'COLLAPSED') {
293
- element.setAttribute('data-toolbar-expanded', 'false');
294
- }
295
- const buttons = element.querySelectorAll('.G-Ni > [role=button]');
296
- Array.prototype.forEach.call(buttons, button => {
297
- let current = button;
298
- for (let ii = 0; ii < 100000; ii++) {
299
- if (current.previousElementSibling) {
300
- if (current.previousElementSibling.classList.contains('inboxsdk__button')) {
301
- if ((0, _isElementVisible.default)(current.previousElementSibling)) {
302
- button.classList.add('T-I-Js-Gs');
303
- break;
304
- } else {
305
- current = current.previousElementSibling;
306
- }
307
- } else {
308
- button.classList.add('T-I-Js-Gs');
309
- break;
301
+ _getCheckboxSectionElement() {
302
+ return this._getSectionElementForButtonSelector('.T-Jo-auh');
303
+ }
304
+ _getMoveSectionElement() {
305
+ return this._getSectionElementForButtonSelector('.asb, .ase, .ns, .mw');
306
+ }
307
+ _getSectionElementForButtonSelector(buttonSelector) {
308
+ const sectionElements = this._element.querySelectorAll('.G-Ni');
309
+ for (let ii = 0; ii < sectionElements.length; ii++) {
310
+ if (sectionElements[ii].querySelector(buttonSelector)) {
311
+ return sectionElements[ii];
310
312
  }
311
- } else {
312
- button.classList.remove('T-I-Js-Gs');
313
- break;
314
- }
315
313
  }
316
- current = button;
317
- for (let ii = 0; ii < 100000; ii++) {
318
- if (current.nextElementSibling) {
319
- if (current.nextElementSibling.classList.contains('inboxsdk__button')) {
320
- if ((0, _isElementVisible.default)(current.nextElementSibling)) {
321
- button.classList.add('T-I-Js-IF');
322
- break;
323
- } else {
324
- current = current.nextElementSibling;
325
- }
326
- } else {
327
- button.classList.add('T-I-Js-IF');
328
- break;
314
+ return null;
315
+ }
316
+ _updateButtonClasses(element) {
317
+ if (this._isUpdateButtonClassesScheduled)
318
+ return;
319
+ this._isUpdateButtonClassesScheduled = true;
320
+ asap(() => {
321
+ if (this._toolbarState === 'EXPANDED') {
322
+ element.setAttribute('data-toolbar-expanded', 'true');
329
323
  }
330
- } else {
331
- button.classList.remove('T-I-Js-IF');
332
- break;
333
- }
324
+ else if (this._toolbarState === 'COLLAPSED') {
325
+ element.setAttribute('data-toolbar-expanded', 'false');
326
+ }
327
+ const buttons = element.querySelectorAll('.G-Ni > [role=button]');
328
+ Array.prototype.forEach.call(buttons, (button) => {
329
+ let current = button;
330
+ for (let ii = 0; ii < 100000; ii++) {
331
+ if (current.previousElementSibling) {
332
+ if (current.previousElementSibling.classList.contains('inboxsdk__button')) {
333
+ if (isElementVisible(current.previousElementSibling)) {
334
+ button.classList.add('T-I-Js-Gs');
335
+ break;
336
+ }
337
+ else {
338
+ current = current.previousElementSibling;
339
+ }
340
+ }
341
+ else {
342
+ button.classList.add('T-I-Js-Gs');
343
+ break;
344
+ }
345
+ }
346
+ else {
347
+ button.classList.remove('T-I-Js-Gs');
348
+ break;
349
+ }
350
+ }
351
+ current = button;
352
+ for (let ii = 0; ii < 100000; ii++) {
353
+ if (current.nextElementSibling) {
354
+ if (current.nextElementSibling.classList.contains('inboxsdk__button')) {
355
+ if (isElementVisible(current.nextElementSibling)) {
356
+ button.classList.add('T-I-Js-IF');
357
+ break;
358
+ }
359
+ else {
360
+ current = current.nextElementSibling;
361
+ }
362
+ }
363
+ else {
364
+ button.classList.add('T-I-Js-IF');
365
+ break;
366
+ }
367
+ }
368
+ else {
369
+ button.classList.remove('T-I-Js-IF');
370
+ break;
371
+ }
372
+ }
373
+ });
374
+ this._isUpdateButtonClassesScheduled = false;
375
+ });
376
+ }
377
+ _updateButtonEnabledState() {
378
+ const enabled = this._toolbarState === 'EXPANDED';
379
+ this._buttonViewControllers.forEach((buttonViewController) => {
380
+ buttonViewController.getView().setEnabled(enabled);
381
+ });
382
+ }
383
+ _addMoreItems() {
384
+ this._clearMoreItems();
385
+ if (this._toolbarState !== 'EXPANDED') {
386
+ return;
387
+ }
388
+ this._moreMenuItems.forEach((item) => {
389
+ this._addToOpenMoreMenu(item.buttonDescriptor);
390
+ });
391
+ }
392
+ _clearMoreItems() {
393
+ if (this._moreMenuItemsContainer) {
394
+ this._moreMenuItemsContainer.remove();
395
+ this._moreMenuItemsContainer = null;
334
396
  }
335
- });
336
- this._isUpdateButtonClassesScheduled = false;
337
- });
338
- }
339
- _updateButtonEnabledState() {
340
- const enabled = this._toolbarState === 'EXPANDED';
341
- this._buttonViewControllers.forEach(buttonViewController => {
342
- buttonViewController.getView().setEnabled(enabled);
343
- });
344
- }
345
- _addMoreItems() {
346
- this._clearMoreItems();
347
- if (this._toolbarState !== 'EXPANDED') {
348
- return;
349
397
  }
350
- this._moreMenuItems.forEach(item => {
351
- this._addToOpenMoreMenu(item.buttonDescriptor);
352
- });
353
- }
354
- _clearMoreItems() {
355
- if (this._moreMenuItemsContainer) {
356
- this._moreMenuItemsContainer.remove();
357
- this._moreMenuItemsContainer = null;
398
+ _addToOpenMoreMenu(buttonDescriptor) {
399
+ const moreMenu = GmailElementGetter.getActiveMoreMenu();
400
+ if (!moreMenu) {
401
+ return;
402
+ }
403
+ const appDiv = this._getMoreMenuItemsContainer(moreMenu);
404
+ const menuItemElement = this._getMoreMenuItemElement(buttonDescriptor);
405
+ insertElementInOrder(appDiv, menuItemElement);
358
406
  }
359
- }
360
- _addToOpenMoreMenu(buttonDescriptor) {
361
- const moreMenu = _gmailElementGetter.default.getActiveMoreMenu();
362
- if (!moreMenu) {
363
- return;
407
+ _getMoreMenuItemsContainer(moreMenu) {
408
+ if (this._moreMenuItemsContainer) {
409
+ return this._moreMenuItemsContainer;
410
+ }
411
+ const container = (this._moreMenuItemsContainer =
412
+ document.createElement('div'));
413
+ container.setAttribute('data-group-order-hint', this._driver.getAppId());
414
+ container.innerHTML = '<div class="J-Kh"></div>';
415
+ insertElementInOrder(moreMenu, container);
416
+ return container;
364
417
  }
365
- const appDiv = this._getMoreMenuItemsContainer(moreMenu);
366
- const menuItemElement = this._getMoreMenuItemElement(buttonDescriptor);
367
- (0, _insertElementInOrder.default)(appDiv, menuItemElement);
368
- }
369
- _getMoreMenuItemsContainer(moreMenu) {
370
- if (this._moreMenuItemsContainer) {
371
- return this._moreMenuItemsContainer;
418
+ _getMoreMenuItemElement(buttonDescriptor) {
419
+ const itemElement = document.createElement('div');
420
+ itemElement.setAttribute('class', 'J-N inboxsdk__menuItem');
421
+ itemElement.setAttribute('role', 'menuitem');
422
+ itemElement.setAttribute('data-order-hint', String(buttonDescriptor.orderHint || 0));
423
+ itemElement.innerHTML = [
424
+ '<div class="J-N-Jz" style="-webkit-user-select: none;">',
425
+ buttonDescriptor.iconUrl
426
+ ? '<img class="J-N-JX" src="' +
427
+ escape(buttonDescriptor.iconUrl) +
428
+ '" />'
429
+ : '',
430
+ buttonDescriptor.iconClass
431
+ ? '<span class="inboxsdk__icon J-N-JX ' +
432
+ escape(buttonDescriptor.iconClass) +
433
+ '"></span>'
434
+ : '',
435
+ escape(buttonDescriptor.title),
436
+ '</div>',
437
+ ].join('');
438
+ itemElement.addEventListener('mouseenter', (e) => itemElement.classList.add('J-N-JT'));
439
+ itemElement.addEventListener('mouseleave', (e) => itemElement.classList.remove('J-N-JT'));
440
+ itemElement.addEventListener('click', (e) => {
441
+ if (buttonDescriptor.onClick) {
442
+ buttonDescriptor.onClick({});
443
+ }
444
+ });
445
+ return itemElement;
372
446
  }
373
- const container = this._moreMenuItemsContainer = document.createElement('div');
374
- container.setAttribute('data-group-order-hint', this._driver.getAppId());
375
- container.innerHTML = '<div class="J-Kh"></div>';
376
- (0, _insertElementInOrder.default)(moreMenu, container);
377
- return container;
378
- }
379
- _getMoreMenuItemElement(buttonDescriptor) {
380
- const itemElement = document.createElement('div');
381
- itemElement.setAttribute('class', 'J-N inboxsdk__menuItem');
382
- itemElement.setAttribute('role', 'menuitem');
383
- itemElement.setAttribute('data-order-hint', String(buttonDescriptor.orderHint || 0));
384
- itemElement.innerHTML = ['<div class="J-N-Jz" style="-webkit-user-select: none;">', buttonDescriptor.iconUrl ? '<img class="J-N-JX" src="' + (0, _escape.default)(buttonDescriptor.iconUrl) + '" />' : '', buttonDescriptor.iconClass ? '<span class="inboxsdk__icon J-N-JX ' + (0, _escape.default)(buttonDescriptor.iconClass) + '"></span>' : '', (0, _escape.default)(buttonDescriptor.title), '</div>'].join('');
385
- itemElement.addEventListener('mouseenter', e => itemElement.classList.add('J-N-JT'));
386
- itemElement.addEventListener('mouseleave', e => itemElement.classList.remove('J-N-JT'));
387
- itemElement.addEventListener('click', e => {
388
- if (buttonDescriptor.onClick) {
389
- buttonDescriptor.onClick({});
390
- }
391
- });
392
- return itemElement;
393
- }
394
- destroy() {
395
- const element = this._element;
396
- if (this._threadViewDriver) {
397
- this._element.removeAttribute('data-thread-toolbar');
398
- } else if (this._rowListViewDriver) {
399
- this._element.removeAttribute('data-rowlist-toolbar');
447
+ destroy() {
448
+ const element = this._element;
449
+ if (this._threadViewDriver) {
450
+ this._element.removeAttribute('data-thread-toolbar');
451
+ }
452
+ else if (this._rowListViewDriver) {
453
+ this._element.removeAttribute('data-rowlist-toolbar');
454
+ }
455
+ this._clearMoreItems();
456
+ this._stopper.destroy();
457
+ this._updateButtonClasses(element);
400
458
  }
401
- this._clearMoreItems();
402
- this._stopper.destroy();
403
- this._updateButtonClasses(element);
404
- }
405
459
  }
406
- var _default = (0, _ud.defn)(module, GmailToolbarView);
407
- exports.default = _default;
460
+ export default GmailToolbarView;