@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,548 +1,714 @@
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 _ud = require("ud");
10
- var _escape = _interopRequireDefault(require("lodash/escape"));
11
- var _kefir = _interopRequireDefault(require("kefir"));
12
- var _kefirBus = _interopRequireDefault(require("kefir-bus"));
13
- var _defer = _interopRequireDefault(require("../../../../common/defer"));
14
- var _autoHtml = _interopRequireDefault(require("auto-html"));
15
- var _querySelectorOrFail = _interopRequireDefault(require("../../../lib/dom/querySelectorOrFail"));
16
- var _inboxDropdownButtonView = _interopRequireDefault(require("../widgets/buttons/inbox-dropdown-button-view"));
17
- var _gmailDropdownView = _interopRequireDefault(require("../widgets/gmail-dropdown-view"));
18
- var _dropdownButtonViewController = _interopRequireDefault(require("../../../widgets/buttons/dropdown-button-view-controller"));
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ import escape from 'lodash/escape';
3
+ import * as Kefir from 'kefir';
4
+ import kefirBus from 'kefir-bus';
5
+ import defer from '../../../../common/defer';
6
+ import autoHtml from 'auto-html';
7
+ import querySelector from '../../../lib/dom/querySelectorOrFail';
8
+ import InboxDropdownButtonView from '../widgets/buttons/inbox-dropdown-button-view';
9
+ import GmailDropdownView from '../widgets/gmail-dropdown-view';
10
+ import DropdownButtonViewController from '../../../widgets/buttons/dropdown-button-view-controller';
19
11
  class GmailCollapsibleSectionView {
20
- constructor(driver, groupOrderHint, isSearch, isCollapsible) {
21
- (0, _defineProperty2.default)(this, "_collapsibleSectionDescriptor", {});
22
- (0, _defineProperty2.default)(this, "_element", null);
23
- (0, _defineProperty2.default)(this, "_headerElement", null);
24
- (0, _defineProperty2.default)(this, "_titleElement", null);
25
- (0, _defineProperty2.default)(this, "_bodyElement", null);
26
- (0, _defineProperty2.default)(this, "_contentElement", null);
27
- (0, _defineProperty2.default)(this, "_tableBodyElement", null);
28
- (0, _defineProperty2.default)(this, "_collapsedContainer", null);
29
- (0, _defineProperty2.default)(this, "_messageElement", null);
30
- (0, _defineProperty2.default)(this, "_footerElement", null);
31
- (0, _defineProperty2.default)(this, "_isCollapsed", false);
32
- (0, _defineProperty2.default)(this, "_inboxDropdownButtonView", null);
33
- (0, _defineProperty2.default)(this, "_dropdownViewController", null);
34
- this._driver = driver;
35
- this._isSearch = isSearch;
36
- this._groupOrderHint = groupOrderHint;
37
- this._isCollapsible = isCollapsible;
38
- this._eventStream = (0, _kefirBus.default)();
39
- this._isReadyDeferred = new _defer.default();
40
- }
41
- destroy() {
42
- if (this._element) this._element.remove();
43
- if (this._eventStream) this._eventStream.end();
44
- if (this._headerElement) this._headerElement.remove();
45
- if (this._titleElement) this._titleElement.remove();
46
- if (this._bodyElement) this._bodyElement.remove();
47
- if (this._contentElement) this._contentElement.remove();
48
- if (this._tableBodyElement) this._tableBodyElement.remove();
49
- if (this._collapsedContainer) this._collapsedContainer.remove();
50
- if (this._messageElement) this._messageElement.remove();
51
- if (this._inboxDropdownButtonView) this._inboxDropdownButtonView.destroy();
52
- if (this._dropdownViewController) this._dropdownViewController.destroy();
53
- }
54
- getElement() {
55
- const element = this._element;
56
- if (!element) throw new Error('tried to access element that does not exist');
57
- return element;
58
- }
59
- getEventStream() {
60
- return this._eventStream;
61
- }
62
- setCollapsibleSectionDescriptorProperty(collapsibleSectionDescriptorProperty) {
63
- const stoppedProperty = collapsibleSectionDescriptorProperty.takeUntilBy(this._eventStream.filter(() => false).beforeEnd(() => null));
64
- stoppedProperty.onValue(x => this._updateValues(x));
65
- stoppedProperty.take(1).onValue(x => this._isReadyDeferred.resolve(this));
66
- }
67
- setCollapsed(value) {
68
- if (!this._isCollapsible) {
69
- return;
70
- }
71
- this._isReadyDeferred.promise.then(() => {
72
- if (value) this._collapse();else this._expand();
73
- });
74
- }
75
- _updateValues(collapsibleSectionDescriptor) {
76
- const element = this._element;
77
- if (!collapsibleSectionDescriptor) {
78
- if (element) {
79
- element.style.display = 'none';
80
- }
81
- return;
82
- } else if (element) {
83
- element.style.display = '';
84
- }
85
- if (!element) {
86
- this._setupElement(collapsibleSectionDescriptor);
87
- this._showLoadingMessage();
88
- } else {
89
- this._updateElement(collapsibleSectionDescriptor);
90
- }
91
- this._updateHeader(collapsibleSectionDescriptor);
92
- this._updateTitle(collapsibleSectionDescriptor);
93
- this._updateSubtitle(collapsibleSectionDescriptor);
94
- this._updateSummaryText(collapsibleSectionDescriptor);
95
- this._updateDropdown(collapsibleSectionDescriptor);
96
- this._updateContentElement(collapsibleSectionDescriptor);
97
- this._updateTableRows(collapsibleSectionDescriptor);
98
- this._updateMessageElement(collapsibleSectionDescriptor);
99
- this._updateFooter(collapsibleSectionDescriptor);
100
- this._collapsibleSectionDescriptor = collapsibleSectionDescriptor;
101
- }
102
- _setupElement(collapsibleSectionDescriptor) {
103
- const element = this._element = document.createElement('div');
104
- element.setAttribute('class', 'inboxsdk__resultsSection');
105
- element.setAttribute('data-group-order-hint', String(this._groupOrderHint));
106
- element.setAttribute('data-order-hint', String(typeof collapsibleSectionDescriptor.orderHint === 'number' ? collapsibleSectionDescriptor.orderHint : 0));
107
- if (!this._isCollapsible) element.classList.add('inboxsdk__resultsSection_nonCollapsible');
108
- this._setupHeader(collapsibleSectionDescriptor);
109
- const bodyElement = this._bodyElement = document.createElement('div');
110
- const bodyContentsElement = document.createElement('div');
111
- bodyContentsElement.classList.add('zE');
112
- bodyElement.appendChild(bodyContentsElement);
113
- element.appendChild(bodyElement);
114
- const contentElement = this._contentElement = document.createElement('div');
115
- bodyContentsElement.appendChild(contentElement);
116
- const messageElement = this._messageElement = document.createElement('div');
117
- bodyContentsElement.appendChild(messageElement);
118
- const tableBodyElement = this._tableBodyElement = document.createElement('div');
119
- bodyContentsElement.appendChild(tableBodyElement);
120
- this._setupFooter(collapsibleSectionDescriptor);
121
- if (this._isCollapsible && this._titleElement) {
122
- _kefir.default.fromEvents(this._titleElement, 'click').onValue(() => this._toggleCollapseState());
123
- }
124
- _kefir.default.fromEvents(element, 'removeCollapsedContainer').onValue(() => this._destroyCollapsedContainer());
125
- _kefir.default.fromEvents(element, 'readdToCollapsedContainer').onValue(() => this._addToCollapsedContainer());
126
- this._eventStream.emit({
127
- type: 'update',
128
- property: 'orderHint',
129
- sectionDescriptor: collapsibleSectionDescriptor
130
- });
131
- }
132
- _setupHeader(collapsibleSectionDescriptor) {
133
- const headerElement = this._headerElement = document.createElement('div');
134
- headerElement.classList.add('inboxsdk__resultsSection_header', 'Wg');
135
- this._setupGmailv2Header(headerElement, collapsibleSectionDescriptor);
136
- if (this._element) this._element.appendChild(headerElement);
137
- }
138
- _setupGmailv2Header(headerElement, collapsibleSectionDescriptor) {
139
- const titleElement = this._titleElement = document.createElement('div');
140
- titleElement.setAttribute('class', 'inboxsdk__resultsSection_title');
141
- titleElement.innerHTML = ['<h3 class="Wr iR">', '<img alt="" src="//ssl.gstatic.com/ui/v1/icons/mail/images/cleardot.gif" class="qi Wp Wq">', '<div class="Wn">', (0, _escape.default)(collapsibleSectionDescriptor.title), '</div>', '</h3>'].join('');
142
- const floatRightElement = document.createElement('div');
143
- floatRightElement.classList.add('Cr');
144
- if (this._isSearch) floatRightElement.classList.add('Wg');
145
- headerElement.appendChild(titleElement);
146
- headerElement.appendChild(floatRightElement);
147
- }
148
- _setupFooter(collapsibleSectionDescriptor) {
149
- const footerElement = this._footerElement = document.createElement('div');
150
- footerElement.classList.add('inboxsdk__resultsSection_footer');
151
- if (this._bodyElement) this._bodyElement.appendChild(footerElement);
152
- }
153
- _updateElement(collapsibleSectionDescriptor) {
154
- if (this._collapsibleSectionDescriptor.orderHint !== collapsibleSectionDescriptor.orderHint) {
155
- const element = this._element;
156
- if (element) element.setAttribute('data-order-hint', '' + (typeof collapsibleSectionDescriptor.orderHint === 'number' ? collapsibleSectionDescriptor.orderHint : 0));
157
- this._eventStream.emit({
158
- type: 'update',
159
- property: 'orderHint'
160
- });
161
- }
162
- }
163
- _updateHeader(collapsibleSectionDescriptor) {
164
- if (this._isCollapsible || collapsibleSectionDescriptor.title || collapsibleSectionDescriptor.subtitle || collapsibleSectionDescriptor.titleLinkText || collapsibleSectionDescriptor.hasDropdown) {
165
- if (this._headerElement) this._headerElement.style.display = '';
166
- } else {
167
- if (this._headerElement) this._headerElement.style.display = 'none';
168
- }
169
- }
170
- _updateTitle(collapsibleSectionDescriptor) {
171
- if (this._collapsibleSectionDescriptor.title !== collapsibleSectionDescriptor.title) {
172
- const selector = 'h3 > .Wn';
173
- if (this._titleElement) {
174
- (0, _querySelectorOrFail.default)(this._titleElement, selector).textContent = collapsibleSectionDescriptor.title;
175
- }
176
- }
177
- }
178
- _updateSubtitle(collapsibleSectionDescriptor) {
179
- const titleElement = this._titleElement;
180
- if (!titleElement) return;
181
- let subtitleElement = titleElement.querySelector('.inboxsdk__resultsSection_title_subtitle');
182
- if (!collapsibleSectionDescriptor.subtitle) {
183
- if (subtitleElement) {
184
- subtitleElement.remove();
185
- }
186
- } else if (this._collapsibleSectionDescriptor.subtitle !== collapsibleSectionDescriptor.subtitle) {
187
- if (!subtitleElement) {
188
- subtitleElement = document.createElement('span');
189
- if (subtitleElement && titleElement) {
190
- subtitleElement.classList.add('inboxsdk__resultsSection_title_subtitle');
191
- const insertionPoint = titleElement.querySelector('.Wn');
192
- if (insertionPoint) {
193
- subtitleElement.classList.add('aw5');
194
- insertionPoint.appendChild(subtitleElement);
195
- }
196
- }
197
- }
198
- subtitleElement.textContent = '(' + collapsibleSectionDescriptor.subtitle + ')';
199
- }
200
- }
201
- _updateSummaryText(collapsibleSectionDescriptor) {
202
- const headerElement = this._headerElement;
203
- if (!headerElement) return;
204
- let summaryTextElement = headerElement.querySelector('.inboxsdk__resultsSection_header_summaryText');
205
- if (!collapsibleSectionDescriptor.titleLinkText) {
206
- if (summaryTextElement) {
207
- summaryTextElement.remove();
208
- }
209
- } else if (collapsibleSectionDescriptor.titleLinkText !== this._collapsibleSectionDescriptor.titleLinkText) {
210
- if (!summaryTextElement) {
211
- summaryTextElement = document.createElement('div');
212
- summaryTextElement.setAttribute('class', 'inboxsdk__resultsSection_header_summaryText Wm');
213
- summaryTextElement.innerHTML = ['<span class="Di">&nbsp;', '<div class="J-J5-Ji amH">', '<span class="Dj">', '<span></span>', '</span>', '&nbsp;', '</div>', '</span>'].join('');
214
- this._eventStream.plug(_kefir.default.fromEvents(summaryTextElement, 'click').map(() => ({
215
- eventName: 'titleLinkClicked',
216
- sectionDescriptor: this._collapsibleSectionDescriptor
217
- })));
218
- const _summaryTextElement = summaryTextElement;
219
- summaryTextElement.addEventListener('mouseenter', function () {
220
- _summaryTextElement.classList.add('aqi');
221
- });
222
- summaryTextElement.addEventListener('mouseleave', function () {
223
- _summaryTextElement.classList.remove('aqi');
12
+ _driver;
13
+ _groupOrderHint;
14
+ _isReadyDeferred;
15
+ _isCollapsible;
16
+ _collapsibleSectionDescriptor = {};
17
+ _isSearch;
18
+ _element = null;
19
+ _headerElement = null;
20
+ _titleElement = null;
21
+ _bodyElement = null;
22
+ _contentElement = null;
23
+ _tableBodyElement = null;
24
+ _collapsedContainer = null;
25
+ _messageElement = null;
26
+ _footerElement = null;
27
+ _eventStream;
28
+ _isCollapsed = false;
29
+ _inboxDropdownButtonView = null;
30
+ _dropdownViewController = null;
31
+ constructor(driver, groupOrderHint, isSearch, isCollapsible) {
32
+ this._driver = driver;
33
+ this._isSearch = isSearch;
34
+ this._groupOrderHint = groupOrderHint;
35
+ this._isCollapsible = isCollapsible;
36
+ this._eventStream = kefirBus();
37
+ this._isReadyDeferred = new defer();
38
+ }
39
+ destroy() {
40
+ if (this._element)
41
+ this._element.remove();
42
+ if (this._eventStream)
43
+ this._eventStream.end();
44
+ if (this._headerElement)
45
+ this._headerElement.remove();
46
+ if (this._titleElement)
47
+ this._titleElement.remove();
48
+ if (this._bodyElement)
49
+ this._bodyElement.remove();
50
+ if (this._contentElement)
51
+ this._contentElement.remove();
52
+ if (this._tableBodyElement)
53
+ this._tableBodyElement.remove();
54
+ if (this._collapsedContainer)
55
+ this._collapsedContainer.remove();
56
+ if (this._messageElement)
57
+ this._messageElement.remove();
58
+ if (this._inboxDropdownButtonView)
59
+ this._inboxDropdownButtonView.destroy();
60
+ if (this._dropdownViewController)
61
+ this._dropdownViewController.destroy();
62
+ }
63
+ getElement() {
64
+ const element = this._element;
65
+ if (!element)
66
+ throw new Error('tried to access element that does not exist');
67
+ return element;
68
+ }
69
+ getEventStream() {
70
+ return this._eventStream;
71
+ }
72
+ setCollapsibleSectionDescriptorProperty(collapsibleSectionDescriptorProperty) {
73
+ const stoppedProperty = collapsibleSectionDescriptorProperty.takeUntilBy(this._eventStream.filter(() => false).beforeEnd(() => null));
74
+ stoppedProperty.onValue((x) => this._updateValues(x));
75
+ stoppedProperty.take(1).onValue((x) => this._isReadyDeferred.resolve(this));
76
+ }
77
+ setCollapsed(value) {
78
+ if (!this._isCollapsible) {
79
+ return;
80
+ }
81
+ this._isReadyDeferred.promise.then(() => {
82
+ if (value)
83
+ this._collapse();
84
+ else
85
+ this._expand();
224
86
  });
225
- const insertionPoint = headerElement.querySelector('.Cr');
226
- if (insertionPoint) insertionPoint.insertAdjacentElement('afterbegin', summaryTextElement);
227
- }
228
- (0, _querySelectorOrFail.default)(summaryTextElement, '.Dj > *').textContent = collapsibleSectionDescriptor.titleLinkText;
229
- }
230
- }
231
- _updateDropdown(collapsibleSectionDescriptor) {
232
- if (!collapsibleSectionDescriptor.hasDropdown || !collapsibleSectionDescriptor.onDropdownClick) {
233
- if (this._inboxDropdownButtonView) this._inboxDropdownButtonView.destroy();
234
- if (this._dropdownViewController) this._dropdownViewController.destroy();
235
- } else if (collapsibleSectionDescriptor.hasDropdown && collapsibleSectionDescriptor.onDropdownClick) {
236
- if (!this._inboxDropdownButtonView || !this._dropdownViewController) {
237
- const inboxDropdownButtonView = this._inboxDropdownButtonView = new _inboxDropdownButtonView.default();
238
- this._dropdownViewController = new _dropdownButtonViewController.default({
239
- buttonView: inboxDropdownButtonView,
240
- dropdownViewDriverClass: _gmailDropdownView.default,
241
- dropdownShowFunction: collapsibleSectionDescriptor.onDropdownClick
87
+ }
88
+ _updateValues(collapsibleSectionDescriptor) {
89
+ const element = this._element;
90
+ if (!collapsibleSectionDescriptor) {
91
+ if (element) {
92
+ element.style.display = 'none';
93
+ }
94
+ return;
95
+ }
96
+ else if (element) {
97
+ element.style.display = '';
98
+ }
99
+ if (!element) {
100
+ this._setupElement(collapsibleSectionDescriptor);
101
+ this._showLoadingMessage();
102
+ }
103
+ else {
104
+ this._updateElement(collapsibleSectionDescriptor);
105
+ }
106
+ this._updateHeader(collapsibleSectionDescriptor);
107
+ this._updateTitle(collapsibleSectionDescriptor);
108
+ this._updateSubtitle(collapsibleSectionDescriptor);
109
+ this._updateSummaryText(collapsibleSectionDescriptor);
110
+ this._updateDropdown(collapsibleSectionDescriptor);
111
+ this._updateContentElement(collapsibleSectionDescriptor);
112
+ this._updateTableRows(collapsibleSectionDescriptor);
113
+ this._updateMessageElement(collapsibleSectionDescriptor);
114
+ this._updateFooter(collapsibleSectionDescriptor);
115
+ this._collapsibleSectionDescriptor = collapsibleSectionDescriptor;
116
+ }
117
+ _setupElement(collapsibleSectionDescriptor) {
118
+ const element = (this._element = document.createElement('div'));
119
+ element.setAttribute('class', 'inboxsdk__resultsSection');
120
+ element.setAttribute('data-group-order-hint', String(this._groupOrderHint));
121
+ element.setAttribute('data-order-hint', String(typeof collapsibleSectionDescriptor.orderHint === 'number'
122
+ ? collapsibleSectionDescriptor.orderHint
123
+ : 0));
124
+ if (!this._isCollapsible)
125
+ element.classList.add('inboxsdk__resultsSection_nonCollapsible');
126
+ this._setupHeader(collapsibleSectionDescriptor);
127
+ const bodyElement = (this._bodyElement = document.createElement('div'));
128
+ const bodyContentsElement = document.createElement('div');
129
+ bodyContentsElement.classList.add('zE');
130
+ bodyElement.appendChild(bodyContentsElement);
131
+ element.appendChild(bodyElement);
132
+ const contentElement = (this._contentElement =
133
+ document.createElement('div'));
134
+ bodyContentsElement.appendChild(contentElement);
135
+ const messageElement = (this._messageElement =
136
+ document.createElement('div'));
137
+ bodyContentsElement.appendChild(messageElement);
138
+ const tableBodyElement = (this._tableBodyElement =
139
+ document.createElement('div'));
140
+ bodyContentsElement.appendChild(tableBodyElement);
141
+ this._setupFooter(collapsibleSectionDescriptor);
142
+ if (this._isCollapsible && this._titleElement) {
143
+ Kefir.fromEvents(this._titleElement, 'click').onValue(() => this._toggleCollapseState());
144
+ }
145
+ Kefir.fromEvents(element, 'removeCollapsedContainer').onValue(() => this._destroyCollapsedContainer());
146
+ Kefir.fromEvents(element, 'readdToCollapsedContainer').onValue(() => this._addToCollapsedContainer());
147
+ this._eventStream.emit({
148
+ type: 'update',
149
+ property: 'orderHint',
150
+ sectionDescriptor: collapsibleSectionDescriptor,
242
151
  });
152
+ }
153
+ _setupHeader(collapsibleSectionDescriptor) {
154
+ const headerElement = (this._headerElement = document.createElement('div'));
155
+ headerElement.classList.add('inboxsdk__resultsSection_header', 'Wg');
156
+ this._setupGmailv2Header(headerElement, collapsibleSectionDescriptor);
157
+ if (this._element)
158
+ this._element.appendChild(headerElement);
159
+ }
160
+ _setupGmailv2Header(headerElement, collapsibleSectionDescriptor) {
161
+ const titleElement = (this._titleElement = document.createElement('div'));
162
+ titleElement.setAttribute('class', 'inboxsdk__resultsSection_title');
163
+ titleElement.innerHTML = [
164
+ '<h3 class="Wr iR">',
165
+ '<img alt="" src="//ssl.gstatic.com/ui/v1/icons/mail/images/cleardot.gif" class="qi Wp Wq">',
166
+ '<div class="Wn">',
167
+ escape(collapsibleSectionDescriptor.title),
168
+ '</div>',
169
+ '</h3>',
170
+ ].join('');
171
+ const floatRightElement = document.createElement('div');
172
+ floatRightElement.classList.add('Cr');
173
+ if (this._isSearch)
174
+ floatRightElement.classList.add('Wg');
175
+ headerElement.appendChild(titleElement);
176
+ headerElement.appendChild(floatRightElement);
177
+ }
178
+ _setupFooter(collapsibleSectionDescriptor) {
179
+ const footerElement = (this._footerElement = document.createElement('div'));
180
+ footerElement.classList.add('inboxsdk__resultsSection_footer');
181
+ if (this._bodyElement)
182
+ this._bodyElement.appendChild(footerElement);
183
+ }
184
+ _updateElement(collapsibleSectionDescriptor) {
185
+ if (this._collapsibleSectionDescriptor.orderHint !==
186
+ collapsibleSectionDescriptor.orderHint) {
187
+ const element = this._element;
188
+ if (element)
189
+ element.setAttribute('data-order-hint', '' +
190
+ (typeof collapsibleSectionDescriptor.orderHint === 'number'
191
+ ? collapsibleSectionDescriptor.orderHint
192
+ : 0));
193
+ this._eventStream.emit({
194
+ type: 'update',
195
+ property: 'orderHint',
196
+ });
197
+ }
198
+ }
199
+ _updateHeader(collapsibleSectionDescriptor) {
200
+ if (this._isCollapsible ||
201
+ collapsibleSectionDescriptor.title ||
202
+ collapsibleSectionDescriptor.subtitle ||
203
+ collapsibleSectionDescriptor.titleLinkText ||
204
+ collapsibleSectionDescriptor.hasDropdown) {
205
+ if (this._headerElement)
206
+ this._headerElement.style.display = '';
207
+ }
208
+ else {
209
+ if (this._headerElement)
210
+ this._headerElement.style.display = 'none';
211
+ }
212
+ }
213
+ _updateTitle(collapsibleSectionDescriptor) {
214
+ if (this._collapsibleSectionDescriptor.title !==
215
+ collapsibleSectionDescriptor.title) {
216
+ const selector = 'h3 > .Wn';
217
+ if (this._titleElement) {
218
+ querySelector(this._titleElement, selector).textContent =
219
+ collapsibleSectionDescriptor.title;
220
+ }
221
+ }
222
+ }
223
+ _updateSubtitle(collapsibleSectionDescriptor) {
224
+ const titleElement = this._titleElement;
225
+ if (!titleElement)
226
+ return;
227
+ let subtitleElement = titleElement.querySelector('.inboxsdk__resultsSection_title_subtitle');
228
+ if (!collapsibleSectionDescriptor.subtitle) {
229
+ if (subtitleElement) {
230
+ subtitleElement.remove();
231
+ }
232
+ }
233
+ else if (this._collapsibleSectionDescriptor.subtitle !==
234
+ collapsibleSectionDescriptor.subtitle) {
235
+ if (!subtitleElement) {
236
+ subtitleElement = document.createElement('span');
237
+ if (subtitleElement && titleElement) {
238
+ subtitleElement.classList.add('inboxsdk__resultsSection_title_subtitle');
239
+ const insertionPoint = titleElement.querySelector('.Wn');
240
+ if (insertionPoint) {
241
+ subtitleElement.classList.add('aw5');
242
+ insertionPoint.appendChild(subtitleElement);
243
+ }
244
+ }
245
+ }
246
+ subtitleElement.textContent =
247
+ '(' + collapsibleSectionDescriptor.subtitle + ')';
248
+ }
249
+ }
250
+ _updateSummaryText(collapsibleSectionDescriptor) {
243
251
  const headerElement = this._headerElement;
244
- if (headerElement) {
245
- const childElement = headerElement.querySelector('.Cr');
246
- if (childElement) childElement.appendChild(inboxDropdownButtonView.getElement());
247
- }
248
- } else if (collapsibleSectionDescriptor.onDropdownClick !== this._collapsibleSectionDescriptor.onDropdownClick) {
249
- if (this._dropdownViewController) this._dropdownViewController.setDropdownShowFunction(collapsibleSectionDescriptor.onDropdownClick);
250
- }
251
- }
252
- }
253
- _updateContentElement(collapsibleSectionDescriptor) {
254
- const contentElement = this._contentElement;
255
- if (!contentElement) return;
256
- contentElement.innerHTML = '';
257
- if (collapsibleSectionDescriptor.contentElement) {
258
- contentElement.style.display = '';
259
- contentElement.appendChild(collapsibleSectionDescriptor.contentElement);
260
- } else {
261
- contentElement.style.display = 'none';
262
- }
263
- }
264
- _updateTableRows(collapsibleSectionDescriptor) {
265
- const {
266
- tableRows
267
- } = collapsibleSectionDescriptor;
268
- const tableBodyElement = this._tableBodyElement;
269
- if (!tableBodyElement) return;
270
- tableBodyElement.innerHTML = '';
271
- if (!tableRows || tableRows.length === 0) {
272
- tableBodyElement.style.display = 'none';
273
- } else {
274
- tableBodyElement.style.display = '';
275
- this._renderTable(tableRows);
276
- }
277
- }
278
- _renderTable(tableRows) {
279
- const tableElement = document.createElement('table');
280
- tableElement.setAttribute('class', 'F cf zt');
281
- tableElement.innerHTML = _getTableHTML();
282
- if (this._tableBodyElement) this._tableBodyElement.appendChild(tableElement);
283
- const tbody = tableElement.querySelector('tbody');
284
- const eventStream = this._eventStream;
285
- tableRows.forEach(result => {
286
- const rowElement = document.createElement('tr');
287
- rowElement.setAttribute('class', 'inboxsdk__resultsSection_tableRow zA ' + (result.isRead ? 'yO' : 'zE'));
288
- rowElement.innerHTML = _getRowHTML(result);
289
- if (!tbody) throw new Error('should not happen');
290
- tbody.appendChild(rowElement);
291
- eventStream.plug(_kefir.default.fromEvents(rowElement, 'click').map(() => ({
292
- eventName: 'rowClicked',
293
- rowDescriptor: result
294
- })));
295
- });
296
- }
297
- _updateMessageElement(collapsibleSectionDescriptor) {
298
- const messageElement = this._messageElement;
299
- if (collapsibleSectionDescriptor.tableRows && collapsibleSectionDescriptor.tableRows.length > 0 || collapsibleSectionDescriptor.contentElement) {
300
- if (messageElement) {
301
- messageElement.innerHTML = '';
302
- messageElement.style.display = 'none';
303
- }
304
- } else if (collapsibleSectionDescriptor.tableRows && collapsibleSectionDescriptor.tableRows.length === 0 && !collapsibleSectionDescriptor.contentElement) {
305
- this._showEmptyMessage();
306
- }
307
- }
308
- _showLoadingMessage() {
309
- const messageElement = this._messageElement;
310
- if (messageElement) {
311
- messageElement.setAttribute('class', 'TB TC inboxsdk__resultsSection_loading');
312
- messageElement.innerHTML = 'loading...'; //TODO: localize
313
- messageElement.style.display = '';
314
- }
315
- }
316
- _showEmptyMessage() {
317
- const messageElement = this._messageElement;
318
- if (messageElement) {
319
- messageElement.setAttribute('class', 'TB TC');
320
- messageElement.innerHTML = 'No results found'; //TODO: localize
321
- messageElement.style.display = '';
322
- }
323
- }
324
- _updateFooter(collapsibleSectionDescriptor) {
325
- const footerElement = this._footerElement;
326
- if (!footerElement) return;
327
- footerElement.innerHTML = '';
328
- if (!collapsibleSectionDescriptor.footerLinkText && !collapsibleSectionDescriptor.footerLinkIconUrl && !collapsibleSectionDescriptor.footerLinkIconClass) {
329
- footerElement.style.display = 'none';
330
- } else {
331
- footerElement.style.display = '';
332
- const footerLinkElement = document.createElement('span');
333
- footerLinkElement.setAttribute('class', 'e Wb');
334
- footerLinkElement.textContent = collapsibleSectionDescriptor.footerLinkText;
335
- this._eventStream.plug(_kefir.default.fromEvents(footerLinkElement, 'click').map(() => {
336
- return {
337
- eventName: 'footerClicked',
338
- sectionDescriptor: this._collapsibleSectionDescriptor
339
- };
340
- }));
341
- footerElement.appendChild(footerLinkElement);
342
- footerElement.insertAdjacentHTML('beforeend', '<br style="clear:both;">');
343
- }
344
- }
345
- _toggleCollapseState() {
346
- if (this._isCollapsed) {
347
- this._expand();
348
- } else {
349
- this._collapse();
350
- }
351
- }
352
- _collapse() {
353
- const element = this._element;
354
- if (!element) {
355
- return;
356
- }
357
- element.classList.add('inboxsdk__resultsSection_collapsed');
358
- if (!this._isSearch) {
359
- this._addToCollapsedContainer();
360
- }
361
- const selector = 'h3 > img.Wp';
362
- if (this._titleElement) {
363
- const arrowSpan = (0, _querySelectorOrFail.default)(this._titleElement, selector);
364
- if (arrowSpan) {
365
- arrowSpan.classList.remove('Wq');
366
- arrowSpan.classList.add('Wo');
367
- }
368
- }
369
- if (this._bodyElement) this._bodyElement.style.display = 'none';
370
- this._isCollapsed = true;
371
- this._eventStream.emit({
372
- eventName: 'collapsed'
373
- });
374
- }
375
- _expand() {
376
- const element = this._element;
377
- if (!element) {
378
- return;
379
- }
380
- element.classList.remove('inboxsdk__resultsSection_collapsed');
381
- if (!this._isSearch) {
382
- this._removeFromCollapsedContainer();
383
- }
384
- const selector = 'h3 > img.Wp';
385
- if (this._titleElement) {
386
- const arrowSpan = (0, _querySelectorOrFail.default)(this._titleElement, selector);
387
- if (arrowSpan) {
388
- arrowSpan.classList.remove('Wo');
389
- arrowSpan.classList.add('Wq');
390
- }
391
- }
392
- if (this._bodyElement) this._bodyElement.style.display = '';
393
- this._isCollapsed = false;
394
- this._eventStream.emit({
395
- eventName: 'expanded'
396
- });
397
- }
398
- _addToCollapsedContainer() {
399
- const element = this._element;
400
- if (!element) return;
401
- if (this._headerElement) this._headerElement.classList.remove('Wg');
402
- if (this._isCollapsedContainer(element.previousElementSibling) && this._isCollapsedContainer(element.nextElementSibling)) {
403
- //we are surrounded by collapse containers, let's favor our previous sibling
404
- const otherCollapseContainer = element.nextElementSibling;
405
- const previousSibling = element.previousElementSibling;
406
- if (!previousSibling) throw new Error('previousSibling does not exist');
407
- if (!otherCollapseContainer) throw new Error('otherCollapseContainer does not exist');
408
- const anchor = previousSibling.children[0].appendChild(element);
409
-
410
- //now we need to "merge" the two collapse containers. This can be done by taking all the result sections out of the collapsed container
411
- //and calling our "recollapse" helper function on them
412
- const elementsToRecollapse = Array.from(otherCollapseContainer.children[0].children).concat(Array.from(otherCollapseContainer.children[1].children));
413
- if (otherCollapseContainer) this._pulloutSectionsFromCollapsedContainer(otherCollapseContainer);
414
- this._recollapse(elementsToRecollapse);
415
- } else {
416
- this._readdToCollapsedContainer();
417
- }
418
- }
419
- _removeFromCollapsedContainer() {
420
- if (this._headerElement) this._headerElement.classList.add('Wg');
421
- const element = this._element;
422
- if (!element) return;
423
- const parentElement = element.parentElement;
424
- if (!parentElement) return;
425
- const container = parentElement.parentElement;
426
- if (!container || !container.classList.contains('inboxsdk__results_collapsedContainer')) {
427
- return;
428
- }
429
- const elementsToRecollapse = Array.from(container.children[0].children).concat(Array.from(container.children[1].children));
430
- this._pulloutSectionsFromCollapsedContainer(container);
431
- this._destroyCollapsedContainer();
432
- this._recollapse(elementsToRecollapse.filter(child => child !== element));
433
- }
434
- _pulloutSectionsFromCollapsedContainer(container) {
435
- const prependedChildren = Array.from(container.children[0].children);
436
- prependedChildren.forEach(child => container.insertAdjacentElement('beforebegin', child));
437
- const appendedChildren = Array.from(container.children[1].children).reverse();
438
- appendedChildren.forEach(child => container.insertAdjacentElement('afterend', child));
439
- }
440
- _readdToCollapsedContainer() {
441
- const element = this._element;
442
- if (!element) return;
443
- if (this._collapsedContainer) {
444
- this._collapsedContainer.children[0].insertBefore(element, this._collapsedContainer.children[1].firstElementChild);
445
- return;
446
- }
447
- let collapsedContainer;
448
- let isPrepend;
449
- if (this._isCollapsedContainer(element.previousElementSibling)) {
450
- isPrepend = false;
451
- collapsedContainer = element.previousElementSibling;
452
- } else if (this._isCollapsedContainer(element.nextElementSibling)) {
453
- isPrepend = true;
454
- collapsedContainer = element.nextElementSibling;
455
- } else {
456
- isPrepend = true;
457
- this._createCollapsedContainer();
458
- collapsedContainer = this._collapsedContainer;
459
- }
460
- if (isPrepend && collapsedContainer) {
461
- collapsedContainer.children[0].insertBefore(element, collapsedContainer.children[0].firstElementChild);
462
- } else if (collapsedContainer) {
463
- collapsedContainer.children[0].appendChild(element);
464
- }
465
- }
466
- _isCollapsedContainer(element) {
467
- return element && element.classList.contains('inboxsdk__results_collapsedContainer');
468
- }
469
- _recollapse(children) {
470
- children.forEach(child => {
471
- const removeEvent = document.createEvent('CustomEvent');
472
- removeEvent.initCustomEvent('removeCollapsedContainer', false, false, null);
473
- child.dispatchEvent(removeEvent);
474
- const readdEvent = document.createEvent('CustomEvent');
475
- readdEvent.initCustomEvent('readdToCollapsedContainer', false, false, null);
476
- child.dispatchEvent(readdEvent);
477
- });
478
- }
479
- _createCollapsedContainer() {
480
- const collapsedContainer = this._collapsedContainer = document.createElement('div');
481
- collapsedContainer.setAttribute('class', 'inboxsdk__results_collapsedContainer Wg');
482
- collapsedContainer.innerHTML = '<div class="inboxsdk__results_collapsedContainer_prepend"></div><div class="inboxsdk__results_collapsedContainer_append"></div>';
483
- const element = this._element;
484
- if (element) element.insertAdjacentElement('afterend', collapsedContainer);
485
- }
486
- _destroyCollapsedContainer() {
487
- if (this._collapsedContainer) {
488
- this._collapsedContainer.remove();
489
- this._collapsedContainer = null;
490
- }
491
- }
252
+ if (!headerElement)
253
+ return;
254
+ let summaryTextElement = headerElement.querySelector('.inboxsdk__resultsSection_header_summaryText');
255
+ if (!collapsibleSectionDescriptor.titleLinkText) {
256
+ if (summaryTextElement) {
257
+ summaryTextElement.remove();
258
+ }
259
+ }
260
+ else if (collapsibleSectionDescriptor.titleLinkText !==
261
+ this._collapsibleSectionDescriptor.titleLinkText) {
262
+ if (!summaryTextElement) {
263
+ summaryTextElement = document.createElement('div');
264
+ summaryTextElement.setAttribute('class', 'inboxsdk__resultsSection_header_summaryText Wm');
265
+ summaryTextElement.innerHTML = [
266
+ '<span class="Di">&nbsp;',
267
+ '<div class="J-J5-Ji amH">',
268
+ '<span class="Dj">',
269
+ '<span></span>',
270
+ '</span>',
271
+ '&nbsp;',
272
+ '</div>',
273
+ '</span>',
274
+ ].join('');
275
+ this._eventStream.plug(Kefir.fromEvents(summaryTextElement, 'click').map(() => ({
276
+ eventName: 'titleLinkClicked',
277
+ sectionDescriptor: this._collapsibleSectionDescriptor,
278
+ })));
279
+ const _summaryTextElement = summaryTextElement;
280
+ summaryTextElement.addEventListener('mouseenter', function () {
281
+ _summaryTextElement.classList.add('aqi');
282
+ });
283
+ summaryTextElement.addEventListener('mouseleave', function () {
284
+ _summaryTextElement.classList.remove('aqi');
285
+ });
286
+ const insertionPoint = headerElement.querySelector('.Cr');
287
+ if (insertionPoint)
288
+ insertionPoint.insertAdjacentElement('afterbegin', summaryTextElement);
289
+ }
290
+ querySelector(summaryTextElement, '.Dj > *').textContent =
291
+ collapsibleSectionDescriptor.titleLinkText;
292
+ }
293
+ }
294
+ _updateDropdown(collapsibleSectionDescriptor) {
295
+ if (!collapsibleSectionDescriptor.hasDropdown ||
296
+ !collapsibleSectionDescriptor.onDropdownClick) {
297
+ if (this._inboxDropdownButtonView)
298
+ this._inboxDropdownButtonView.destroy();
299
+ if (this._dropdownViewController)
300
+ this._dropdownViewController.destroy();
301
+ }
302
+ else if (collapsibleSectionDescriptor.hasDropdown &&
303
+ collapsibleSectionDescriptor.onDropdownClick) {
304
+ if (!this._inboxDropdownButtonView || !this._dropdownViewController) {
305
+ const inboxDropdownButtonView = (this._inboxDropdownButtonView =
306
+ new InboxDropdownButtonView());
307
+ this._dropdownViewController = new DropdownButtonViewController({
308
+ buttonView: inboxDropdownButtonView,
309
+ dropdownViewDriverClass: GmailDropdownView,
310
+ dropdownShowFunction: collapsibleSectionDescriptor.onDropdownClick,
311
+ });
312
+ const headerElement = this._headerElement;
313
+ if (headerElement) {
314
+ const childElement = headerElement.querySelector('.Cr');
315
+ if (childElement)
316
+ childElement.appendChild(inboxDropdownButtonView.getElement());
317
+ }
318
+ }
319
+ else if (collapsibleSectionDescriptor.onDropdownClick !==
320
+ this._collapsibleSectionDescriptor.onDropdownClick) {
321
+ if (this._dropdownViewController)
322
+ this._dropdownViewController.setDropdownShowFunction(collapsibleSectionDescriptor.onDropdownClick);
323
+ }
324
+ }
325
+ }
326
+ _updateContentElement(collapsibleSectionDescriptor) {
327
+ const contentElement = this._contentElement;
328
+ if (!contentElement)
329
+ return;
330
+ contentElement.innerHTML = '';
331
+ if (collapsibleSectionDescriptor.contentElement) {
332
+ contentElement.style.display = '';
333
+ contentElement.appendChild(collapsibleSectionDescriptor.contentElement);
334
+ }
335
+ else {
336
+ contentElement.style.display = 'none';
337
+ }
338
+ }
339
+ _updateTableRows(collapsibleSectionDescriptor) {
340
+ const { tableRows } = collapsibleSectionDescriptor;
341
+ const tableBodyElement = this._tableBodyElement;
342
+ if (!tableBodyElement)
343
+ return;
344
+ tableBodyElement.innerHTML = '';
345
+ if (!tableRows || tableRows.length === 0) {
346
+ tableBodyElement.style.display = 'none';
347
+ }
348
+ else {
349
+ tableBodyElement.style.display = '';
350
+ this._renderTable(tableRows);
351
+ }
352
+ }
353
+ _renderTable(tableRows) {
354
+ const tableElement = document.createElement('table');
355
+ tableElement.setAttribute('class', 'F cf zt');
356
+ tableElement.innerHTML = _getTableHTML();
357
+ if (this._tableBodyElement)
358
+ this._tableBodyElement.appendChild(tableElement);
359
+ const tbody = tableElement.querySelector('tbody');
360
+ const eventStream = this._eventStream;
361
+ tableRows.forEach((result) => {
362
+ const rowElement = document.createElement('tr');
363
+ rowElement.setAttribute('class', 'inboxsdk__resultsSection_tableRow zA ' + (result.isRead ? 'yO' : 'zE'));
364
+ rowElement.innerHTML = _getRowHTML(result);
365
+ if (!tbody)
366
+ throw new Error('should not happen');
367
+ tbody.appendChild(rowElement);
368
+ eventStream.plug(Kefir.fromEvents(rowElement, 'click').map(() => ({
369
+ eventName: 'rowClicked',
370
+ rowDescriptor: result,
371
+ })));
372
+ });
373
+ }
374
+ _updateMessageElement(collapsibleSectionDescriptor) {
375
+ const messageElement = this._messageElement;
376
+ if ((collapsibleSectionDescriptor.tableRows &&
377
+ collapsibleSectionDescriptor.tableRows.length > 0) ||
378
+ collapsibleSectionDescriptor.contentElement) {
379
+ if (messageElement) {
380
+ messageElement.innerHTML = '';
381
+ messageElement.style.display = 'none';
382
+ }
383
+ }
384
+ else if (collapsibleSectionDescriptor.tableRows &&
385
+ collapsibleSectionDescriptor.tableRows.length === 0 &&
386
+ !collapsibleSectionDescriptor.contentElement) {
387
+ this._showEmptyMessage();
388
+ }
389
+ }
390
+ _showLoadingMessage() {
391
+ const messageElement = this._messageElement;
392
+ if (messageElement) {
393
+ messageElement.setAttribute('class', 'TB TC inboxsdk__resultsSection_loading');
394
+ messageElement.innerHTML = 'loading...'; //TODO: localize
395
+ messageElement.style.display = '';
396
+ }
397
+ }
398
+ _showEmptyMessage() {
399
+ const messageElement = this._messageElement;
400
+ if (messageElement) {
401
+ messageElement.setAttribute('class', 'TB TC');
402
+ messageElement.innerHTML = 'No results found'; //TODO: localize
403
+ messageElement.style.display = '';
404
+ }
405
+ }
406
+ _updateFooter(collapsibleSectionDescriptor) {
407
+ const footerElement = this._footerElement;
408
+ if (!footerElement)
409
+ return;
410
+ footerElement.innerHTML = '';
411
+ if (!collapsibleSectionDescriptor.footerLinkText &&
412
+ !collapsibleSectionDescriptor.footerLinkIconUrl &&
413
+ !collapsibleSectionDescriptor.footerLinkIconClass) {
414
+ footerElement.style.display = 'none';
415
+ }
416
+ else {
417
+ footerElement.style.display = '';
418
+ const footerLinkElement = document.createElement('span');
419
+ footerLinkElement.setAttribute('class', 'e Wb');
420
+ footerLinkElement.textContent =
421
+ collapsibleSectionDescriptor.footerLinkText;
422
+ this._eventStream.plug(Kefir.fromEvents(footerLinkElement, 'click').map(() => {
423
+ return {
424
+ eventName: 'footerClicked',
425
+ sectionDescriptor: this._collapsibleSectionDescriptor,
426
+ };
427
+ }));
428
+ footerElement.appendChild(footerLinkElement);
429
+ footerElement.insertAdjacentHTML('beforeend', '<br style="clear:both;">');
430
+ }
431
+ }
432
+ _toggleCollapseState() {
433
+ if (this._isCollapsed) {
434
+ this._expand();
435
+ }
436
+ else {
437
+ this._collapse();
438
+ }
439
+ }
440
+ _collapse() {
441
+ const element = this._element;
442
+ if (!element) {
443
+ return;
444
+ }
445
+ element.classList.add('inboxsdk__resultsSection_collapsed');
446
+ if (!this._isSearch) {
447
+ this._addToCollapsedContainer();
448
+ }
449
+ const selector = 'h3 > img.Wp';
450
+ if (this._titleElement) {
451
+ const arrowSpan = querySelector(this._titleElement, selector);
452
+ if (arrowSpan) {
453
+ arrowSpan.classList.remove('Wq');
454
+ arrowSpan.classList.add('Wo');
455
+ }
456
+ }
457
+ if (this._bodyElement)
458
+ this._bodyElement.style.display = 'none';
459
+ this._isCollapsed = true;
460
+ this._eventStream.emit({
461
+ eventName: 'collapsed',
462
+ });
463
+ }
464
+ _expand() {
465
+ const element = this._element;
466
+ if (!element) {
467
+ return;
468
+ }
469
+ element.classList.remove('inboxsdk__resultsSection_collapsed');
470
+ if (!this._isSearch) {
471
+ this._removeFromCollapsedContainer();
472
+ }
473
+ const selector = 'h3 > img.Wp';
474
+ if (this._titleElement) {
475
+ const arrowSpan = querySelector(this._titleElement, selector);
476
+ if (arrowSpan) {
477
+ arrowSpan.classList.remove('Wo');
478
+ arrowSpan.classList.add('Wq');
479
+ }
480
+ }
481
+ if (this._bodyElement)
482
+ this._bodyElement.style.display = '';
483
+ this._isCollapsed = false;
484
+ this._eventStream.emit({
485
+ eventName: 'expanded',
486
+ });
487
+ }
488
+ _addToCollapsedContainer() {
489
+ const element = this._element;
490
+ if (!element)
491
+ return;
492
+ if (this._headerElement)
493
+ this._headerElement.classList.remove('Wg');
494
+ if (this._isCollapsedContainer(element.previousElementSibling) &&
495
+ this._isCollapsedContainer(element.nextElementSibling)) {
496
+ //we are surrounded by collapse containers, let's favor our previous sibling
497
+ const otherCollapseContainer = element.nextElementSibling;
498
+ const previousSibling = element.previousElementSibling;
499
+ if (!previousSibling)
500
+ throw new Error('previousSibling does not exist');
501
+ if (!otherCollapseContainer)
502
+ throw new Error('otherCollapseContainer does not exist');
503
+ const anchor = previousSibling.children[0].appendChild(element);
504
+ //now we need to "merge" the two collapse containers. This can be done by taking all the result sections out of the collapsed container
505
+ //and calling our "recollapse" helper function on them
506
+ const elementsToRecollapse = Array.from(otherCollapseContainer.children[0].children).concat(Array.from(otherCollapseContainer.children[1].children));
507
+ if (otherCollapseContainer)
508
+ this._pulloutSectionsFromCollapsedContainer(otherCollapseContainer);
509
+ this._recollapse(elementsToRecollapse);
510
+ }
511
+ else {
512
+ this._readdToCollapsedContainer();
513
+ }
514
+ }
515
+ _removeFromCollapsedContainer() {
516
+ if (this._headerElement)
517
+ this._headerElement.classList.add('Wg');
518
+ const element = this._element;
519
+ if (!element)
520
+ return;
521
+ const parentElement = element.parentElement;
522
+ if (!parentElement)
523
+ return;
524
+ const container = parentElement.parentElement;
525
+ if (!container ||
526
+ !container.classList.contains('inboxsdk__results_collapsedContainer')) {
527
+ return;
528
+ }
529
+ const elementsToRecollapse = Array.from(container.children[0].children).concat(Array.from(container.children[1].children));
530
+ this._pulloutSectionsFromCollapsedContainer(container);
531
+ this._destroyCollapsedContainer();
532
+ this._recollapse(elementsToRecollapse.filter((child) => child !== element));
533
+ }
534
+ _pulloutSectionsFromCollapsedContainer(container) {
535
+ const prependedChildren = Array.from(container.children[0].children);
536
+ prependedChildren.forEach((child) => container.insertAdjacentElement('beforebegin', child));
537
+ const appendedChildren = Array.from(container.children[1].children).reverse();
538
+ appendedChildren.forEach((child) => container.insertAdjacentElement('afterend', child));
539
+ }
540
+ _readdToCollapsedContainer() {
541
+ const element = this._element;
542
+ if (!element)
543
+ return;
544
+ if (this._collapsedContainer) {
545
+ this._collapsedContainer.children[0].insertBefore(element, this._collapsedContainer.children[1].firstElementChild);
546
+ return;
547
+ }
548
+ let collapsedContainer;
549
+ let isPrepend;
550
+ if (this._isCollapsedContainer(element.previousElementSibling)) {
551
+ isPrepend = false;
552
+ collapsedContainer = element.previousElementSibling;
553
+ }
554
+ else if (this._isCollapsedContainer(element.nextElementSibling)) {
555
+ isPrepend = true;
556
+ collapsedContainer = element.nextElementSibling;
557
+ }
558
+ else {
559
+ isPrepend = true;
560
+ this._createCollapsedContainer();
561
+ collapsedContainer = this._collapsedContainer;
562
+ }
563
+ if (isPrepend && collapsedContainer) {
564
+ collapsedContainer.children[0].insertBefore(element, collapsedContainer.children[0].firstElementChild);
565
+ }
566
+ else if (collapsedContainer) {
567
+ collapsedContainer.children[0].appendChild(element);
568
+ }
569
+ }
570
+ _isCollapsedContainer(element) {
571
+ return (element &&
572
+ element.classList.contains('inboxsdk__results_collapsedContainer'));
573
+ }
574
+ _recollapse(children) {
575
+ children.forEach((child) => {
576
+ const removeEvent = document.createEvent('CustomEvent');
577
+ removeEvent.initCustomEvent('removeCollapsedContainer', false, false, null);
578
+ child.dispatchEvent(removeEvent);
579
+ const readdEvent = document.createEvent('CustomEvent');
580
+ readdEvent.initCustomEvent('readdToCollapsedContainer', false, false, null);
581
+ child.dispatchEvent(readdEvent);
582
+ });
583
+ }
584
+ _createCollapsedContainer() {
585
+ const collapsedContainer = (this._collapsedContainer =
586
+ document.createElement('div'));
587
+ collapsedContainer.setAttribute('class', 'inboxsdk__results_collapsedContainer Wg');
588
+ collapsedContainer.innerHTML =
589
+ '<div class="inboxsdk__results_collapsedContainer_prepend"></div><div class="inboxsdk__results_collapsedContainer_append"></div>';
590
+ const element = this._element;
591
+ if (element)
592
+ element.insertAdjacentElement('afterend', collapsedContainer);
593
+ }
594
+ _destroyCollapsedContainer() {
595
+ if (this._collapsedContainer) {
596
+ this._collapsedContainer.remove();
597
+ this._collapsedContainer = null;
598
+ }
599
+ }
492
600
  }
493
601
  function _getTableHTML() {
494
- return ['<colgroup>', '<col class="k0vOLb">', '<col class="Ci">', '<col class="y5">', '<col class="WA">', '<col class="yY">', '<col>', '<col class="xX">', '</colgroup>', '<tbody>', '</tbody>'].join('');
602
+ return [
603
+ '<colgroup>',
604
+ '<col class="k0vOLb">',
605
+ '<col class="Ci">',
606
+ '<col class="y5">',
607
+ '<col class="WA">',
608
+ '<col class="yY">',
609
+ '<col>',
610
+ '<col class="xX">',
611
+ '</colgroup>',
612
+ '<tbody>',
613
+ '</tbody>',
614
+ ].join('');
495
615
  }
496
616
  function _getRowHTML(result) {
497
- let iconHtml = '';
498
- if (result.iconHtml != null) {
499
- iconHtml = (0, _autoHtml.default)`<div class="inboxsdk__resultsSection_result_icon inboxsdk__resultsSection_result_iconHtml">
617
+ let iconHtml = '';
618
+ if (result.iconHtml != null) {
619
+ iconHtml = autoHtml `<div class="inboxsdk__resultsSection_result_icon inboxsdk__resultsSection_result_iconHtml">
500
620
  ${{
501
- __html: result.iconHtml
502
- }}
621
+ __html: result.iconHtml,
622
+ }}
503
623
  </div>`;
504
- } else if (result.iconUrl) {
505
- iconHtml = (0, _autoHtml.default)`<img class="inboxsdk__resultsSection_result_icon ${result.iconClass || ''}" src="${result.iconUrl}">`;
506
- } else if (result.iconClass) iconHtml = (0, _autoHtml.default)`<div class="${result.iconClass}"></div>`;
507
- const labelsHtml = Array.isArray(result.labels) ? result.labels.map(_getLabelHTML).join('') : '';
508
- const rowArr = ['<td class="xY PF"></td>', '<td class="xY oZ-x3"></td>', '<td class="xY WA">', iconHtml, '</td>', '<td class="xY WA"></td>', '<td class="xY yX inboxsdk__resultsSection_result_title">', '<div class="yW">', '<span ' + (result.isRead ? '' : 'class="zF"') + '>', (0, _escape.default)(result.title), '</span>', '</div>', '</td>', '<td class="xY a4W">', '<div class="xS">', '<div class="xT">', '<div class="yi">', labelsHtml, '</div>', '<div class="y6">', '<span class="bog">', result.isRead ? '' : '<b>', (0, _escape.default)(result.body || ''), result.isRead ? '' : '</b>', '</span>', '</div>', '</div>', '</div>', '</td>', '<td class="xY xW">', '<span' + (result.isRead ? '' : ' class="bq3"') + '>', (0, _escape.default)(result.shortDetailText || ''), '</span>', '</td>'];
509
- return rowArr.join('');
624
+ }
625
+ else if (result.iconUrl) {
626
+ iconHtml = autoHtml `<img class="inboxsdk__resultsSection_result_icon ${result.iconClass || ''}" src="${result.iconUrl}">`;
627
+ }
628
+ else if (result.iconClass)
629
+ iconHtml = autoHtml `<div class="${result.iconClass}"></div>`;
630
+ const labelsHtml = Array.isArray(result.labels)
631
+ ? result.labels.map(_getLabelHTML).join('')
632
+ : '';
633
+ const rowArr = [
634
+ '<td class="xY PF"></td>',
635
+ '<td class="xY oZ-x3"></td>',
636
+ '<td class="xY WA">',
637
+ iconHtml,
638
+ '</td>',
639
+ '<td class="xY WA"></td>',
640
+ '<td class="xY yX inboxsdk__resultsSection_result_title">',
641
+ '<div class="yW">',
642
+ '<span ' + (result.isRead ? '' : 'class="zF"') + '>',
643
+ escape(result.title),
644
+ '</span>',
645
+ '</div>',
646
+ '</td>',
647
+ '<td class="xY a4W">',
648
+ '<div class="xS">',
649
+ '<div class="xT">',
650
+ '<div class="yi">',
651
+ labelsHtml,
652
+ '</div>',
653
+ '<div class="y6">',
654
+ '<span class="bog">',
655
+ result.isRead ? '' : '<b>',
656
+ escape(result.body || ''),
657
+ result.isRead ? '' : '</b>',
658
+ '</span>',
659
+ '</div>',
660
+ '</div>',
661
+ '</div>',
662
+ '</td>',
663
+ '<td class="xY xW">',
664
+ '<span' + (result.isRead ? '' : ' class="bq3"') + '>',
665
+ escape(result.shortDetailText || ''),
666
+ '</span>',
667
+ '</td>',
668
+ ];
669
+ return rowArr.join('');
510
670
  }
511
671
  function _getLabelHTML(label) {
512
- const backgroundColor = label.backgroundColor || 'rgb(194, 194, 194)'; //grey
513
- const foregroundColor = label.foregroundColor || 'rgb(255, 255, 255)'; //white
514
- const maxWidth = label.maxWidth || '90px';
515
- const retArray = [(0, _autoHtml.default)`<div class="ar as" data-tooltip="${label.title}">
672
+ const backgroundColor = label.backgroundColor || 'rgb(194, 194, 194)'; //grey
673
+ const foregroundColor = label.foregroundColor || 'rgb(255, 255, 255)'; //white
674
+ const maxWidth = label.maxWidth || '90px';
675
+ const retArray = [
676
+ autoHtml `<div class="ar as" data-tooltip="${label.title}">
516
677
  <div class="at" style="background-color: ${backgroundColor}; border-color: ${backgroundColor};">
517
- <div class="au" style="border-color: ${backgroundColor};">`];
518
- const styleHtml = label.iconBackgroundColor ? (0, _autoHtml.default)`style="background-color: ${label.iconBackgroundColor}"` : '';
519
- if (label.iconHtml != null) {
520
- retArray.push((0, _autoHtml.default)`<div class="inboxsdk__resultsSection_label_icon inboxsdk__resultsSection_label_iconHtml"
678
+ <div class="au" style="border-color: ${backgroundColor};">`,
679
+ ];
680
+ const styleHtml = label.iconBackgroundColor
681
+ ? autoHtml `style="background-color: ${label.iconBackgroundColor}"`
682
+ : '';
683
+ if (label.iconHtml != null) {
684
+ retArray.push(autoHtml `<div class="inboxsdk__resultsSection_label_icon inboxsdk__resultsSection_label_iconHtml"
521
685
  ${{
522
- __html: styleHtml
523
- }}
686
+ __html: styleHtml,
687
+ }}
524
688
  >
525
689
  ${{
526
- __html: label.iconHtml
527
- }}
690
+ __html: label.iconHtml,
691
+ }}
528
692
  </div>`);
529
- } else if (label.iconClass) {
530
- retArray.push((0, _autoHtml.default)`<div
693
+ }
694
+ else if (label.iconClass) {
695
+ retArray.push(autoHtml `<div
531
696
  class="inboxsdk__resultsSection_label_icon ${label.iconClass || ''}"
532
697
  ${{
533
- __html: styleHtml
534
- }}
698
+ __html: styleHtml,
699
+ }}
535
700
  >
536
701
  </div>`);
537
- } else if (label.iconUrl) {
538
- retArray.push((0, _autoHtml.default)`<img
702
+ }
703
+ else if (label.iconUrl) {
704
+ retArray.push(autoHtml `<img
539
705
  class="inboxsdk__resultsSection_label_icon"
540
706
  ${{
541
- __html: styleHtml
542
- }}
707
+ __html: styleHtml,
708
+ }}
543
709
  src="${label.iconUrl}" />`);
544
- }
545
- retArray.push((0, _autoHtml.default)`
710
+ }
711
+ retArray.push(autoHtml `
546
712
  <div class="av" style="color: ${foregroundColor}; max-width: ${maxWidth}">
547
713
  ${label.title}
548
714
  </div>
@@ -550,7 +716,6 @@ function _getLabelHTML(label) {
550
716
  </div>
551
717
  </div>
552
718
  `);
553
- return retArray.join('');
719
+ return retArray.join('');
554
720
  }
555
- var _default = (0, _ud.defn)(module, GmailCollapsibleSectionView);
556
- exports.default = _default;
721
+ export default GmailCollapsibleSectionView;