@inboxsdk/core 1.2.4 → 1.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (332) hide show
  1. package/inboxsdk.js +4474 -463
  2. package/inboxsdk.js.map +1 -1
  3. package/package.json +1 -1
  4. package/pageWorld.js +1 -1
  5. package/pageWorld.js.map +1 -1
  6. package/src/common/load-script.d.ts +0 -6
  7. package/src/common/load-script.d.ts.map +1 -1
  8. package/src/inboxsdk-js/loading/platform-implementation-loader.d.ts.map +1 -1
  9. package/src/inboxsdk.d.ts +29 -0
  10. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts +2 -2
  11. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts.map +1 -1
  12. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts +6 -1
  13. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts.map +1 -1
  14. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts +2 -2
  15. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts.map +1 -1
  16. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts +5 -0
  17. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts.map +1 -1
  18. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.d.ts +13 -5
  19. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.d.ts.map +1 -1
  20. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts +1 -1
  21. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts.map +1 -1
  22. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.d.ts.map +1 -1
  23. package/src/platform-implementation-js/namespaces/conversations.d.ts +7 -0
  24. package/src/platform-implementation-js/namespaces/conversations.d.ts.map +1 -1
  25. package/src/platform-implementation-js/namespaces/nav-menu.d.ts +4 -2
  26. package/src/platform-implementation-js/namespaces/nav-menu.d.ts.map +1 -1
  27. package/src/platform-implementation-js/views/conversations/attachment-card-view.d.ts +12 -5
  28. package/src/platform-implementation-js/views/conversations/attachment-card-view.d.ts.map +1 -1
  29. package/src/platform-implementation-js/views/native-nav-item-view.d.ts +2 -1
  30. package/src/platform-implementation-js/views/native-nav-item-view.d.ts.map +1 -1
  31. package/src/build/exec.js +0 -26
  32. package/src/build/spawn.js +0 -17
  33. package/src/common/ajax.js +0 -90
  34. package/src/common/cachebust-url.js +0 -10
  35. package/src/common/censorHTMLstring.js +0 -37
  36. package/src/common/censorHTMLtree.js +0 -28
  37. package/src/common/censorJSONTree.js +0 -15
  38. package/src/common/connectivity-test.js +0 -21
  39. package/src/common/defer.js +0 -11
  40. package/src/common/find-parent.js +0 -10
  41. package/src/common/get-extension-id.js +0 -7
  42. package/src/common/get-or-fail.js +0 -8
  43. package/src/common/get-session-id.js +0 -14
  44. package/src/common/get-stack-trace.js +0 -6
  45. package/src/common/html-to-text.js +0 -7
  46. package/src/common/isElementVisible.js +0 -6
  47. package/src/common/load-script.js +0 -128
  48. package/src/common/log-error.js +0 -185
  49. package/src/common/quoted-split.js +0 -18
  50. package/src/common/rate-limit-queuer.js +0 -57
  51. package/src/common/rate-limit.js +0 -14
  52. package/src/common/version.js +0 -8
  53. package/src/inboxsdk-js/header.js +0 -19
  54. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.js +0 -4
  55. package/src/inboxsdk-js/inboxsdk-NONREMOTE.js +0 -4
  56. package/src/inboxsdk-js/inboxsdk-REMOTE.js +0 -2
  57. package/src/inboxsdk-js/inboxsdk-TEST.js +0 -5
  58. package/src/inboxsdk-js/inboxsdk.js +0 -23
  59. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.js +0 -14
  60. package/src/inboxsdk-js/loading/platform-implementation-loader.js +0 -31
  61. package/src/injected-js/gmail/constants.js +0 -2
  62. package/src/injected-js/gmail/modify-suggestions.js +0 -106
  63. package/src/injected-js/gmail/setup-gmail-interceptor.js +0 -936
  64. package/src/injected-js/gmail/setup-gmonkey-handler.js +0 -49
  65. package/src/injected-js/gmail/sync-compose-processor-20220909.js +0 -298
  66. package/src/injected-js/gmail/sync-compose-processor.js +0 -55
  67. package/src/injected-js/gmail/sync-compose-request-processor.js +0 -109
  68. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +0 -71
  69. package/src/injected-js/gmail/thread-identifier/index.js +0 -133
  70. package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +0 -61
  71. package/src/injected-js/injected-logger.js +0 -50
  72. package/src/injected-js/main.js +0 -49
  73. package/src/injected-js/message-metadata-holder.js +0 -103
  74. package/src/injected-js/setup-data-exposer.js +0 -135
  75. package/src/injected-js/setup-error-silencer.js +0 -15
  76. package/src/injected-js/setup-event-reemitter.js +0 -47
  77. package/src/injected-js/setupCustomViewEventAssassin.js +0 -90
  78. package/src/injected-js/setupInboxCustomViewLinkFixer.js +0 -24
  79. package/src/injected-js/setupPushStateListener.js +0 -14
  80. package/src/injected-js/xhr-helper.js +0 -43
  81. package/src/injected-js/xhr-proxy-factory.js +0 -537
  82. package/src/platform-implementation-js/constants/nav-item-types.js +0 -19
  83. package/src/platform-implementation-js/constants/router.js +0 -60
  84. package/src/platform-implementation-js/constants/toolbars.js +0 -5
  85. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +0 -158
  86. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.js +0 -20
  87. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.js +0 -38
  88. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.js +0 -98
  89. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.js +0 -4
  90. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +0 -14
  91. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +0 -60
  92. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.js +0 -8
  93. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +0 -47
  94. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +0 -31
  95. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.js +0 -12
  96. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.js +0 -33
  97. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +0 -22
  98. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +0 -18
  99. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +0 -57
  100. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +0 -40
  101. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +0 -55
  102. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.js +0 -14
  103. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +0 -177
  104. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +0 -17
  105. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.js +0 -44
  106. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +0 -49
  107. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +0 -18
  108. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +0 -138
  109. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +0 -112
  110. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +0 -152
  111. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +0 -21
  112. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +0 -48
  113. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +0 -357
  114. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +0 -19
  115. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +0 -36
  116. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +0 -36
  117. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +0 -85
  118. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +0 -142
  119. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.js +0 -115
  120. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +0 -50
  121. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +0 -723
  122. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.js +0 -38
  123. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.js +0 -12
  124. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.js +0 -264
  125. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.js +0 -201
  126. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.js +0 -532
  127. package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.js +0 -300
  128. package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.js +0 -21
  129. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +0 -92
  130. package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.js +0 -28
  131. package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.js +0 -19
  132. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.js +0 -129
  133. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +0 -80
  134. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +0 -23
  135. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +0 -26
  136. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.js +0 -16
  137. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +0 -723
  138. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +0 -24
  139. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +0 -172
  140. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +0 -106
  141. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +0 -328
  142. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +0 -22
  143. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +0 -720
  144. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +0 -135
  145. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +0 -50
  146. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +0 -65
  147. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.js +0 -101
  148. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +0 -66
  149. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.js +0 -38
  150. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +0 -10
  151. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +0 -14
  152. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +0 -13
  153. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +0 -60
  154. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +0 -54
  155. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +0 -98
  156. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.js +0 -28
  157. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +0 -13
  158. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +0 -18
  159. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +0 -16
  160. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.js +0 -22
  161. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +0 -23
  162. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.js +0 -233
  163. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +0 -19
  164. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +0 -355
  165. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +0 -21
  166. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +0 -63
  167. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.js +0 -223
  168. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +0 -19
  169. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.js +0 -157
  170. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.js +0 -109
  171. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +0 -123
  172. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +0 -16
  173. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +0 -1542
  174. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.js +0 -4
  175. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +0 -75
  176. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +0 -737
  177. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.js +0 -763
  178. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +0 -103
  179. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +0 -508
  180. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +0 -236
  181. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.js +0 -84
  182. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +0 -986
  183. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +0 -26
  184. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +0 -658
  185. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +0 -459
  186. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +0 -265
  187. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.js +0 -33
  188. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.js +0 -325
  189. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.js +0 -61
  190. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.js +0 -58
  191. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +0 -23
  192. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.js +0 -101
  193. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.js +0 -30
  194. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.js +0 -10
  195. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +0 -42
  196. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.js +0 -22
  197. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +0 -112
  198. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +0 -122
  199. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +0 -194
  200. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +0 -352
  201. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +0 -76
  202. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +0 -57
  203. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +0 -291
  204. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +0 -28
  205. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +0 -46
  206. package/src/platform-implementation-js/driver-common/getAccountUrlPart.js +0 -17
  207. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +0 -17
  208. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +0 -44
  209. package/src/platform-implementation-js/driver-common/getOriginalMessagePage.js +0 -33
  210. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +0 -18
  211. package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.js +0 -49
  212. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +0 -13
  213. package/src/platform-implementation-js/driver-common/gmailAjax.js +0 -65
  214. package/src/platform-implementation-js/driver-common/inboxAjax.js +0 -5
  215. package/src/platform-implementation-js/driver-common/render-custom-icon.js +0 -16
  216. package/src/platform-implementation-js/driver-common/requestGmailThread.js +0 -24
  217. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +0 -245
  218. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +0 -144
  219. package/src/platform-implementation-js/driver-common/sidebar/constants.js +0 -26
  220. package/src/platform-implementation-js/driver-common/update-icon.js +0 -90
  221. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +0 -1
  222. package/src/platform-implementation-js/driver-interfaces/driver.js +0 -1
  223. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +0 -1
  224. package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +0 -1
  225. package/src/platform-implementation-js/lib/ErrorCollector.js +0 -47
  226. package/src/platform-implementation-js/lib/Membrane.js +0 -22
  227. package/src/platform-implementation-js/lib/ScrollableContainByScreen.js +0 -30
  228. package/src/platform-implementation-js/lib/attemptWithRetries.js +0 -16
  229. package/src/platform-implementation-js/lib/common-page-communicator.js +0 -137
  230. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +0 -35
  231. package/src/platform-implementation-js/lib/css-selector-escape.js +0 -6
  232. package/src/platform-implementation-js/lib/delay-asap.js +0 -10
  233. package/src/platform-implementation-js/lib/delay-idle.js +0 -16
  234. package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.js +0 -36
  235. package/src/platform-implementation-js/lib/dom/custom-events.js +0 -5
  236. package/src/platform-implementation-js/lib/dom/element-view-mapper.js +0 -9
  237. package/src/platform-implementation-js/lib/dom/generic-button-view.js +0 -39
  238. package/src/platform-implementation-js/lib/dom/get-insert-before-element.js +0 -39
  239. package/src/platform-implementation-js/lib/dom/get-selection.js +0 -30
  240. package/src/platform-implementation-js/lib/dom/insert-element-in-order.js +0 -38
  241. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +0 -83
  242. package/src/platform-implementation-js/lib/dom/is-node-in-range.js +0 -12
  243. package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.js +0 -12
  244. package/src/platform-implementation-js/lib/dom/make-element-child-stream.js +0 -79
  245. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.js +0 -27
  246. package/src/platform-implementation-js/lib/dom/make-element-view-stream.js +0 -15
  247. package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.js +0 -15
  248. package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.js +0 -5
  249. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +0 -8
  250. package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.js +0 -38
  251. package/src/platform-implementation-js/lib/dom/parentNodes.js +0 -8
  252. package/src/platform-implementation-js/lib/dom/querySelectorOrFail.js +0 -6
  253. package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.js +0 -22
  254. package/src/platform-implementation-js/lib/dom/set-css.js +0 -20
  255. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +0 -88
  256. package/src/platform-implementation-js/lib/dom/simulate-key.js +0 -46
  257. package/src/platform-implementation-js/lib/dom/simulate-mouse-event.js +0 -16
  258. package/src/platform-implementation-js/lib/dom/trigger-relay-event.js +0 -7
  259. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.js +0 -25
  260. package/src/platform-implementation-js/lib/fake-window-resize.js +0 -5
  261. package/src/platform-implementation-js/lib/from-event-target-capture.js +0 -12
  262. package/src/platform-implementation-js/lib/fromEventsWithOptions.js +0 -10
  263. package/src/platform-implementation-js/lib/handle-compose-link-chips.js +0 -124
  264. package/src/platform-implementation-js/lib/handler-registry.js +0 -67
  265. package/src/platform-implementation-js/lib/idMap.js +0 -40
  266. package/src/platform-implementation-js/lib/imageRequest.js +0 -8
  267. package/src/platform-implementation-js/lib/incrementName.js +0 -7
  268. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.js +0 -8
  269. package/src/platform-implementation-js/lib/inject-script.js +0 -33
  270. package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +0 -44
  271. package/src/platform-implementation-js/lib/is-valid-app-id.js +0 -27
  272. package/src/platform-implementation-js/lib/is-valid-email.js +0 -14
  273. package/src/platform-implementation-js/lib/isNotNil.js +0 -5
  274. package/src/platform-implementation-js/lib/isStreakAppId.js +0 -11
  275. package/src/platform-implementation-js/lib/logger.js +0 -439
  276. package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +0 -10
  277. package/src/platform-implementation-js/lib/persistent-queue.js +0 -107
  278. package/src/platform-implementation-js/lib/populateRouteID.js +0 -17
  279. package/src/platform-implementation-js/lib/react/ElementContainer.js +0 -26
  280. package/src/platform-implementation-js/lib/routeIDmatchesHash.js +0 -8
  281. package/src/platform-implementation-js/lib/safe-event-emitter.js +0 -16
  282. package/src/platform-implementation-js/lib/stopper-pool.js +0 -41
  283. package/src/platform-implementation-js/lib/stream-wait-for.js +0 -30
  284. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +0 -12
  285. package/src/platform-implementation-js/lib/toLiveSet.js +0 -22
  286. package/src/platform-implementation-js/lib/wait-for.js +0 -38
  287. package/src/platform-implementation-js/lib/waitForAsync.js +0 -18
  288. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +0 -5
  289. package/src/platform-implementation-js/main.js +0 -42
  290. package/src/platform-implementation-js/namespaces/app-menu.js +0 -81
  291. package/src/platform-implementation-js/namespaces/butter-bar.js +0 -163
  292. package/src/platform-implementation-js/namespaces/compose.js +0 -59
  293. package/src/platform-implementation-js/namespaces/conversations.js +0 -83
  294. package/src/platform-implementation-js/namespaces/global.js +0 -30
  295. package/src/platform-implementation-js/namespaces/keyboard.js +0 -30
  296. package/src/platform-implementation-js/namespaces/lists.js +0 -40
  297. package/src/platform-implementation-js/namespaces/modal.js +0 -43
  298. package/src/platform-implementation-js/namespaces/nav-menu.js +0 -33
  299. package/src/platform-implementation-js/namespaces/router.js +0 -139
  300. package/src/platform-implementation-js/namespaces/search.js +0 -29
  301. package/src/platform-implementation-js/namespaces/toolbars.js +0 -147
  302. package/src/platform-implementation-js/namespaces/user.js +0 -57
  303. package/src/platform-implementation-js/namespaces/widgets.js +0 -73
  304. package/src/platform-implementation-js/platform-implementation.js +0 -178
  305. package/src/platform-implementation-js/views/SimpleElementView.js +0 -16
  306. package/src/platform-implementation-js/views/app-menu-item-view.js +0 -442
  307. package/src/platform-implementation-js/views/app-toolbar-button-view.js +0 -43
  308. package/src/platform-implementation-js/views/collapsible-panel-view.js +0 -256
  309. package/src/platform-implementation-js/views/collapsible-section-view.js +0 -63
  310. package/src/platform-implementation-js/views/compose-button-view.js +0 -45
  311. package/src/platform-implementation-js/views/compose-view.js +0 -310
  312. package/src/platform-implementation-js/views/content-panel-view.js +0 -36
  313. package/src/platform-implementation-js/views/conversations/attachment-card-view.js +0 -41
  314. package/src/platform-implementation-js/views/conversations/custom-message-view.js +0 -117
  315. package/src/platform-implementation-js/views/conversations/message-view.js +0 -203
  316. package/src/platform-implementation-js/views/conversations/thread-view.js +0 -97
  317. package/src/platform-implementation-js/views/keyboard-shortcut-handle.js +0 -14
  318. package/src/platform-implementation-js/views/native-nav-item-view.js +0 -60
  319. package/src/platform-implementation-js/views/nav-item-view.js +0 -130
  320. package/src/platform-implementation-js/views/route-view/custom-route-view.js +0 -25
  321. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +0 -29
  322. package/src/platform-implementation-js/views/route-view/list-route-view.js +0 -46
  323. package/src/platform-implementation-js/views/route-view/route-view.js +0 -47
  324. package/src/platform-implementation-js/views/section-view.js +0 -60
  325. package/src/platform-implementation-js/views/thread-row-view.js +0 -90
  326. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.js +0 -39
  327. package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.js +0 -98
  328. package/src/platform-implementation-js/widgets/buttons/dropdown-view.js +0 -121
  329. package/src/platform-implementation-js/widgets/drawer-view.js +0 -46
  330. package/src/platform-implementation-js/widgets/modal-view.js +0 -108
  331. package/src/platform-implementation-js/widgets/mole-view.js +0 -38
  332. package/src/platform-implementation-js/widgets/top-message-bar-view.js +0 -15
@@ -1,720 +0,0 @@
1
- import escape from 'lodash/escape';
2
- import * as Kefir from 'kefir';
3
- import kefirBus from 'kefir-bus';
4
- import defer from '../../../../common/defer';
5
- import autoHtml from 'auto-html';
6
- import querySelector from '../../../lib/dom/querySelectorOrFail';
7
- import InboxDropdownButtonView from '../widgets/buttons/inbox-dropdown-button-view';
8
- import GmailDropdownView from '../widgets/gmail-dropdown-view';
9
- import DropdownButtonViewController from '../../../widgets/buttons/dropdown-button-view-controller';
10
- class GmailCollapsibleSectionView {
11
- _driver;
12
- _groupOrderHint;
13
- _isReadyDeferred;
14
- _isCollapsible;
15
- _collapsibleSectionDescriptor = {};
16
- _isSearch;
17
- _element = null;
18
- _headerElement = null;
19
- _titleElement = null;
20
- _bodyElement = null;
21
- _contentElement = null;
22
- _tableBodyElement = null;
23
- _collapsedContainer = null;
24
- _messageElement = null;
25
- _footerElement = null;
26
- _eventStream;
27
- _isCollapsed = false;
28
- _inboxDropdownButtonView = null;
29
- _dropdownViewController = null;
30
- constructor(driver, groupOrderHint, isSearch, isCollapsible) {
31
- this._driver = driver;
32
- this._isSearch = isSearch;
33
- this._groupOrderHint = groupOrderHint;
34
- this._isCollapsible = isCollapsible;
35
- this._eventStream = kefirBus();
36
- this._isReadyDeferred = new defer();
37
- }
38
- destroy() {
39
- if (this._element)
40
- this._element.remove();
41
- if (this._eventStream)
42
- this._eventStream.end();
43
- if (this._headerElement)
44
- this._headerElement.remove();
45
- if (this._titleElement)
46
- this._titleElement.remove();
47
- if (this._bodyElement)
48
- this._bodyElement.remove();
49
- if (this._contentElement)
50
- this._contentElement.remove();
51
- if (this._tableBodyElement)
52
- this._tableBodyElement.remove();
53
- if (this._collapsedContainer)
54
- this._collapsedContainer.remove();
55
- if (this._messageElement)
56
- this._messageElement.remove();
57
- if (this._inboxDropdownButtonView)
58
- this._inboxDropdownButtonView.destroy();
59
- if (this._dropdownViewController)
60
- this._dropdownViewController.destroy();
61
- }
62
- getElement() {
63
- const element = this._element;
64
- if (!element)
65
- throw new Error('tried to access element that does not exist');
66
- return element;
67
- }
68
- getEventStream() {
69
- return this._eventStream;
70
- }
71
- setCollapsibleSectionDescriptorProperty(collapsibleSectionDescriptorProperty) {
72
- const stoppedProperty = collapsibleSectionDescriptorProperty.takeUntilBy(this._eventStream.filter(() => false).beforeEnd(() => null));
73
- stoppedProperty.onValue((x) => this._updateValues(x));
74
- stoppedProperty.take(1).onValue(() => this._isReadyDeferred.resolve(this));
75
- }
76
- setCollapsed(value) {
77
- if (!this._isCollapsible) {
78
- return;
79
- }
80
- this._isReadyDeferred.promise.then(() => {
81
- if (value)
82
- this._collapse();
83
- else
84
- this._expand();
85
- });
86
- }
87
- _updateValues(collapsibleSectionDescriptor) {
88
- const element = this._element;
89
- if (!collapsibleSectionDescriptor) {
90
- if (element) {
91
- element.style.display = 'none';
92
- }
93
- return;
94
- }
95
- else if (element) {
96
- element.style.display = '';
97
- }
98
- if (!element) {
99
- this._setupElement(collapsibleSectionDescriptor);
100
- this._showLoadingMessage();
101
- }
102
- else {
103
- this._updateElement(collapsibleSectionDescriptor);
104
- }
105
- this._updateHeader(collapsibleSectionDescriptor);
106
- this._updateTitle(collapsibleSectionDescriptor);
107
- this._updateSubtitle(collapsibleSectionDescriptor);
108
- this._updateSummaryText(collapsibleSectionDescriptor);
109
- this._updateDropdown(collapsibleSectionDescriptor);
110
- this._updateContentElement(collapsibleSectionDescriptor);
111
- this._updateTableRows(collapsibleSectionDescriptor);
112
- this._updateMessageElement(collapsibleSectionDescriptor);
113
- this._updateFooter(collapsibleSectionDescriptor);
114
- this._collapsibleSectionDescriptor = collapsibleSectionDescriptor;
115
- }
116
- _setupElement(collapsibleSectionDescriptor) {
117
- const element = (this._element = document.createElement('div'));
118
- element.setAttribute('class', 'inboxsdk__resultsSection');
119
- element.setAttribute('data-group-order-hint', String(this._groupOrderHint));
120
- element.setAttribute('data-order-hint', String(typeof collapsibleSectionDescriptor.orderHint === 'number'
121
- ? collapsibleSectionDescriptor.orderHint
122
- : 0));
123
- if (!this._isCollapsible)
124
- element.classList.add('inboxsdk__resultsSection_nonCollapsible');
125
- this._setupHeader(collapsibleSectionDescriptor);
126
- const bodyElement = (this._bodyElement = document.createElement('div'));
127
- const bodyContentsElement = document.createElement('div');
128
- bodyContentsElement.classList.add('zE');
129
- bodyElement.appendChild(bodyContentsElement);
130
- element.appendChild(bodyElement);
131
- const contentElement = (this._contentElement =
132
- document.createElement('div'));
133
- bodyContentsElement.appendChild(contentElement);
134
- const messageElement = (this._messageElement =
135
- document.createElement('div'));
136
- bodyContentsElement.appendChild(messageElement);
137
- const tableBodyElement = (this._tableBodyElement =
138
- document.createElement('div'));
139
- bodyContentsElement.appendChild(tableBodyElement);
140
- this._setupFooter();
141
- if (this._isCollapsible && this._titleElement) {
142
- Kefir.fromEvents(this._titleElement, 'click').onValue(() => this._toggleCollapseState());
143
- }
144
- Kefir.fromEvents(element, 'removeCollapsedContainer').onValue(() => this._destroyCollapsedContainer());
145
- Kefir.fromEvents(element, 'readdToCollapsedContainer').onValue(() => this._addToCollapsedContainer());
146
- this._eventStream.emit({
147
- type: 'update',
148
- property: 'orderHint',
149
- sectionDescriptor: collapsibleSectionDescriptor,
150
- });
151
- }
152
- _setupHeader(collapsibleSectionDescriptor) {
153
- const headerElement = (this._headerElement = document.createElement('div'));
154
- headerElement.classList.add('inboxsdk__resultsSection_header', 'Wg');
155
- this._setupGmailv2Header(headerElement, collapsibleSectionDescriptor);
156
- if (this._element)
157
- this._element.appendChild(headerElement);
158
- }
159
- _setupGmailv2Header(headerElement, collapsibleSectionDescriptor) {
160
- const titleElement = (this._titleElement = document.createElement('div'));
161
- titleElement.setAttribute('class', 'inboxsdk__resultsSection_title');
162
- titleElement.innerHTML = [
163
- '<h3 class="Wr iR">',
164
- '<img alt="" src="//ssl.gstatic.com/ui/v1/icons/mail/images/cleardot.gif" class="qi Wp Wq">',
165
- '<div class="Wn">',
166
- escape(collapsibleSectionDescriptor.title),
167
- '</div>',
168
- '</h3>',
169
- ].join('');
170
- const floatRightElement = document.createElement('div');
171
- floatRightElement.classList.add('Cr');
172
- if (this._isSearch)
173
- floatRightElement.classList.add('Wg');
174
- headerElement.appendChild(titleElement);
175
- headerElement.appendChild(floatRightElement);
176
- }
177
- _setupFooter() {
178
- const footerElement = (this._footerElement = document.createElement('div'));
179
- footerElement.classList.add('inboxsdk__resultsSection_footer');
180
- if (this._bodyElement)
181
- this._bodyElement.appendChild(footerElement);
182
- }
183
- _updateElement(collapsibleSectionDescriptor) {
184
- if (this._collapsibleSectionDescriptor.orderHint !==
185
- collapsibleSectionDescriptor.orderHint) {
186
- const element = this._element;
187
- if (element)
188
- element.setAttribute('data-order-hint', '' +
189
- (typeof collapsibleSectionDescriptor.orderHint === 'number'
190
- ? collapsibleSectionDescriptor.orderHint
191
- : 0));
192
- this._eventStream.emit({
193
- type: 'update',
194
- property: 'orderHint',
195
- });
196
- }
197
- }
198
- _updateHeader(collapsibleSectionDescriptor) {
199
- if (this._isCollapsible ||
200
- collapsibleSectionDescriptor.title ||
201
- collapsibleSectionDescriptor.subtitle ||
202
- collapsibleSectionDescriptor.titleLinkText ||
203
- collapsibleSectionDescriptor.hasDropdown) {
204
- if (this._headerElement)
205
- this._headerElement.style.display = '';
206
- }
207
- else {
208
- if (this._headerElement)
209
- this._headerElement.style.display = 'none';
210
- }
211
- }
212
- _updateTitle(collapsibleSectionDescriptor) {
213
- if (this._collapsibleSectionDescriptor.title !==
214
- collapsibleSectionDescriptor.title) {
215
- const selector = 'h3 > .Wn';
216
- if (this._titleElement) {
217
- querySelector(this._titleElement, selector).textContent =
218
- collapsibleSectionDescriptor.title;
219
- }
220
- }
221
- }
222
- _updateSubtitle(collapsibleSectionDescriptor) {
223
- const titleElement = this._titleElement;
224
- if (!titleElement)
225
- return;
226
- let subtitleElement = titleElement.querySelector('.inboxsdk__resultsSection_title_subtitle');
227
- if (!collapsibleSectionDescriptor.subtitle) {
228
- if (subtitleElement) {
229
- subtitleElement.remove();
230
- }
231
- }
232
- else if (this._collapsibleSectionDescriptor.subtitle !==
233
- collapsibleSectionDescriptor.subtitle) {
234
- if (!subtitleElement) {
235
- subtitleElement = document.createElement('span');
236
- if (subtitleElement && titleElement) {
237
- subtitleElement.classList.add('inboxsdk__resultsSection_title_subtitle');
238
- const insertionPoint = titleElement.querySelector('.Wn');
239
- if (insertionPoint) {
240
- subtitleElement.classList.add('aw5');
241
- insertionPoint.appendChild(subtitleElement);
242
- }
243
- }
244
- }
245
- subtitleElement.textContent =
246
- '(' + collapsibleSectionDescriptor.subtitle + ')';
247
- }
248
- }
249
- _updateSummaryText(collapsibleSectionDescriptor) {
250
- const headerElement = this._headerElement;
251
- if (!headerElement)
252
- return;
253
- let summaryTextElement = headerElement.querySelector('.inboxsdk__resultsSection_header_summaryText');
254
- if (!collapsibleSectionDescriptor.titleLinkText) {
255
- if (summaryTextElement) {
256
- summaryTextElement.remove();
257
- }
258
- }
259
- else if (collapsibleSectionDescriptor.titleLinkText !==
260
- this._collapsibleSectionDescriptor.titleLinkText) {
261
- if (!summaryTextElement) {
262
- summaryTextElement = document.createElement('div');
263
- summaryTextElement.setAttribute('class', 'inboxsdk__resultsSection_header_summaryText Wm');
264
- summaryTextElement.innerHTML = [
265
- '<span class="Di">&nbsp;',
266
- '<div class="J-J5-Ji amH">',
267
- '<span class="Dj">',
268
- '<span></span>',
269
- '</span>',
270
- '&nbsp;',
271
- '</div>',
272
- '</span>',
273
- ].join('');
274
- this._eventStream.plug(Kefir.fromEvents(summaryTextElement, 'click').map(() => ({
275
- eventName: 'titleLinkClicked',
276
- sectionDescriptor: this._collapsibleSectionDescriptor,
277
- })));
278
- const _summaryTextElement = summaryTextElement;
279
- summaryTextElement.addEventListener('mouseenter', function () {
280
- _summaryTextElement.classList.add('aqi');
281
- });
282
- summaryTextElement.addEventListener('mouseleave', function () {
283
- _summaryTextElement.classList.remove('aqi');
284
- });
285
- const insertionPoint = headerElement.querySelector('.Cr');
286
- if (insertionPoint)
287
- insertionPoint.insertAdjacentElement('afterbegin', summaryTextElement);
288
- }
289
- querySelector(summaryTextElement, '.Dj > *').textContent =
290
- collapsibleSectionDescriptor.titleLinkText;
291
- }
292
- }
293
- _updateDropdown(collapsibleSectionDescriptor) {
294
- if (!collapsibleSectionDescriptor.hasDropdown ||
295
- !collapsibleSectionDescriptor.onDropdownClick) {
296
- if (this._inboxDropdownButtonView)
297
- this._inboxDropdownButtonView.destroy();
298
- if (this._dropdownViewController)
299
- this._dropdownViewController.destroy();
300
- }
301
- else if (collapsibleSectionDescriptor.hasDropdown &&
302
- collapsibleSectionDescriptor.onDropdownClick) {
303
- if (!this._inboxDropdownButtonView || !this._dropdownViewController) {
304
- const inboxDropdownButtonView = (this._inboxDropdownButtonView =
305
- new InboxDropdownButtonView());
306
- this._dropdownViewController = new DropdownButtonViewController({
307
- buttonView: inboxDropdownButtonView,
308
- dropdownViewDriverClass: GmailDropdownView,
309
- dropdownShowFunction: collapsibleSectionDescriptor.onDropdownClick,
310
- });
311
- const headerElement = this._headerElement;
312
- if (headerElement) {
313
- const childElement = headerElement.querySelector('.Cr');
314
- if (childElement)
315
- childElement.appendChild(inboxDropdownButtonView.getElement());
316
- }
317
- }
318
- else if (collapsibleSectionDescriptor.onDropdownClick !==
319
- this._collapsibleSectionDescriptor.onDropdownClick) {
320
- if (this._dropdownViewController)
321
- this._dropdownViewController.setDropdownShowFunction(collapsibleSectionDescriptor.onDropdownClick);
322
- }
323
- }
324
- }
325
- _updateContentElement(collapsibleSectionDescriptor) {
326
- const contentElement = this._contentElement;
327
- if (!contentElement)
328
- return;
329
- contentElement.innerHTML = '';
330
- if (collapsibleSectionDescriptor.contentElement) {
331
- contentElement.style.display = '';
332
- contentElement.appendChild(collapsibleSectionDescriptor.contentElement);
333
- }
334
- else {
335
- contentElement.style.display = 'none';
336
- }
337
- }
338
- _updateTableRows(collapsibleSectionDescriptor) {
339
- const { tableRows } = collapsibleSectionDescriptor;
340
- const tableBodyElement = this._tableBodyElement;
341
- if (!tableBodyElement)
342
- return;
343
- tableBodyElement.innerHTML = '';
344
- if (!tableRows || tableRows.length === 0) {
345
- tableBodyElement.style.display = 'none';
346
- }
347
- else {
348
- tableBodyElement.style.display = '';
349
- this._renderTable(tableRows);
350
- }
351
- }
352
- _renderTable(tableRows) {
353
- const tableElement = document.createElement('table');
354
- tableElement.setAttribute('class', 'F cf zt');
355
- tableElement.innerHTML = _getTableHTML();
356
- if (this._tableBodyElement)
357
- this._tableBodyElement.appendChild(tableElement);
358
- const tbody = tableElement.querySelector('tbody');
359
- const eventStream = this._eventStream;
360
- tableRows.forEach((result) => {
361
- const rowElement = document.createElement('tr');
362
- rowElement.setAttribute('class', 'inboxsdk__resultsSection_tableRow zA ' + (result.isRead ? 'yO' : 'zE'));
363
- rowElement.innerHTML = _getRowHTML(result);
364
- if (!tbody)
365
- throw new Error('should not happen');
366
- tbody.appendChild(rowElement);
367
- eventStream.plug(Kefir.fromEvents(rowElement, 'click').map(() => ({
368
- eventName: 'rowClicked',
369
- rowDescriptor: result,
370
- })));
371
- });
372
- }
373
- _updateMessageElement(collapsibleSectionDescriptor) {
374
- const messageElement = this._messageElement;
375
- if ((collapsibleSectionDescriptor.tableRows &&
376
- collapsibleSectionDescriptor.tableRows.length > 0) ||
377
- collapsibleSectionDescriptor.contentElement) {
378
- if (messageElement) {
379
- messageElement.innerHTML = '';
380
- messageElement.style.display = 'none';
381
- }
382
- }
383
- else if (collapsibleSectionDescriptor.tableRows &&
384
- collapsibleSectionDescriptor.tableRows.length === 0 &&
385
- !collapsibleSectionDescriptor.contentElement) {
386
- this._showEmptyMessage();
387
- }
388
- }
389
- _showLoadingMessage() {
390
- const messageElement = this._messageElement;
391
- if (messageElement) {
392
- messageElement.setAttribute('class', 'TB TC inboxsdk__resultsSection_loading');
393
- messageElement.innerHTML = 'loading...'; //TODO: localize
394
- messageElement.style.display = '';
395
- }
396
- }
397
- _showEmptyMessage() {
398
- const messageElement = this._messageElement;
399
- if (messageElement) {
400
- messageElement.setAttribute('class', 'TB TC');
401
- messageElement.innerHTML = 'No results found'; //TODO: localize
402
- messageElement.style.display = '';
403
- }
404
- }
405
- _updateFooter(collapsibleSectionDescriptor) {
406
- const footerElement = this._footerElement;
407
- if (!footerElement)
408
- return;
409
- footerElement.innerHTML = '';
410
- if (!collapsibleSectionDescriptor.footerLinkText &&
411
- !collapsibleSectionDescriptor.footerLinkIconUrl &&
412
- !collapsibleSectionDescriptor.footerLinkIconClass) {
413
- footerElement.style.display = 'none';
414
- }
415
- else {
416
- footerElement.style.display = '';
417
- const footerLinkElement = document.createElement('span');
418
- footerLinkElement.setAttribute('class', 'e Wb');
419
- footerLinkElement.textContent =
420
- collapsibleSectionDescriptor.footerLinkText;
421
- this._eventStream.plug(Kefir.fromEvents(footerLinkElement, 'click').map(() => {
422
- return {
423
- eventName: 'footerClicked',
424
- sectionDescriptor: this._collapsibleSectionDescriptor,
425
- };
426
- }));
427
- footerElement.appendChild(footerLinkElement);
428
- footerElement.insertAdjacentHTML('beforeend', '<br style="clear:both;">');
429
- }
430
- }
431
- _toggleCollapseState() {
432
- if (this._isCollapsed) {
433
- this._expand();
434
- }
435
- else {
436
- this._collapse();
437
- }
438
- }
439
- _collapse() {
440
- const element = this._element;
441
- if (!element) {
442
- return;
443
- }
444
- element.classList.add('inboxsdk__resultsSection_collapsed');
445
- if (!this._isSearch) {
446
- this._addToCollapsedContainer();
447
- }
448
- const selector = 'h3 > img.Wp';
449
- if (this._titleElement) {
450
- const arrowSpan = querySelector(this._titleElement, selector);
451
- if (arrowSpan) {
452
- arrowSpan.classList.remove('Wq');
453
- arrowSpan.classList.add('Wo');
454
- }
455
- }
456
- if (this._bodyElement)
457
- this._bodyElement.style.display = 'none';
458
- this._isCollapsed = true;
459
- this._eventStream.emit({
460
- eventName: 'collapsed',
461
- });
462
- }
463
- _expand() {
464
- const element = this._element;
465
- if (!element) {
466
- return;
467
- }
468
- element.classList.remove('inboxsdk__resultsSection_collapsed');
469
- if (!this._isSearch) {
470
- this._removeFromCollapsedContainer();
471
- }
472
- const selector = 'h3 > img.Wp';
473
- if (this._titleElement) {
474
- const arrowSpan = querySelector(this._titleElement, selector);
475
- if (arrowSpan) {
476
- arrowSpan.classList.remove('Wo');
477
- arrowSpan.classList.add('Wq');
478
- }
479
- }
480
- if (this._bodyElement)
481
- this._bodyElement.style.display = '';
482
- this._isCollapsed = false;
483
- this._eventStream.emit({
484
- eventName: 'expanded',
485
- });
486
- }
487
- _addToCollapsedContainer() {
488
- const element = this._element;
489
- if (!element)
490
- return;
491
- if (this._headerElement)
492
- this._headerElement.classList.remove('Wg');
493
- if (this._isCollapsedContainer(element.previousElementSibling) &&
494
- this._isCollapsedContainer(element.nextElementSibling)) {
495
- //we are surrounded by collapse containers, let's favor our previous sibling
496
- const otherCollapseContainer = element.nextElementSibling;
497
- const previousSibling = element.previousElementSibling;
498
- if (!previousSibling)
499
- throw new Error('previousSibling does not exist');
500
- if (!otherCollapseContainer)
501
- throw new Error('otherCollapseContainer does not exist');
502
- previousSibling.children[0].appendChild(element);
503
- //now we need to "merge" the two collapse containers. This can be done by taking all the result sections out of the collapsed container
504
- //and calling our "recollapse" helper function on them
505
- const elementsToRecollapse = Array.from(otherCollapseContainer.children[0].children).concat(Array.from(otherCollapseContainer.children[1].children));
506
- if (otherCollapseContainer)
507
- this._pulloutSectionsFromCollapsedContainer(otherCollapseContainer);
508
- this._recollapse(elementsToRecollapse);
509
- }
510
- else {
511
- this._readdToCollapsedContainer();
512
- }
513
- }
514
- _removeFromCollapsedContainer() {
515
- if (this._headerElement)
516
- this._headerElement.classList.add('Wg');
517
- const element = this._element;
518
- if (!element)
519
- return;
520
- const parentElement = element.parentElement;
521
- if (!parentElement)
522
- return;
523
- const container = parentElement.parentElement;
524
- if (!container ||
525
- !container.classList.contains('inboxsdk__results_collapsedContainer')) {
526
- return;
527
- }
528
- const elementsToRecollapse = Array.from(container.children[0].children).concat(Array.from(container.children[1].children));
529
- this._pulloutSectionsFromCollapsedContainer(container);
530
- this._destroyCollapsedContainer();
531
- this._recollapse(elementsToRecollapse.filter((child) => child !== element));
532
- }
533
- _pulloutSectionsFromCollapsedContainer(container) {
534
- const prependedChildren = Array.from(container.children[0].children);
535
- prependedChildren.forEach((child) => container.insertAdjacentElement('beforebegin', child));
536
- const appendedChildren = Array.from(container.children[1].children).reverse();
537
- appendedChildren.forEach((child) => container.insertAdjacentElement('afterend', child));
538
- }
539
- _readdToCollapsedContainer() {
540
- const element = this._element;
541
- if (!element)
542
- return;
543
- if (this._collapsedContainer) {
544
- this._collapsedContainer.children[0].insertBefore(element, this._collapsedContainer.children[1].firstElementChild);
545
- return;
546
- }
547
- let collapsedContainer;
548
- let isPrepend;
549
- if (this._isCollapsedContainer(element.previousElementSibling)) {
550
- isPrepend = false;
551
- collapsedContainer = element.previousElementSibling;
552
- }
553
- else if (this._isCollapsedContainer(element.nextElementSibling)) {
554
- isPrepend = true;
555
- collapsedContainer = element.nextElementSibling;
556
- }
557
- else {
558
- isPrepend = true;
559
- this._createCollapsedContainer();
560
- collapsedContainer = this._collapsedContainer;
561
- }
562
- if (isPrepend && collapsedContainer) {
563
- collapsedContainer.children[0].insertBefore(element, collapsedContainer.children[0].firstElementChild);
564
- }
565
- else if (collapsedContainer) {
566
- collapsedContainer.children[0].appendChild(element);
567
- }
568
- }
569
- _isCollapsedContainer(element) {
570
- return (element &&
571
- element.classList.contains('inboxsdk__results_collapsedContainer'));
572
- }
573
- _recollapse(children) {
574
- children.forEach((child) => {
575
- const removeEvent = document.createEvent('CustomEvent');
576
- removeEvent.initCustomEvent('removeCollapsedContainer', false, false, null);
577
- child.dispatchEvent(removeEvent);
578
- const readdEvent = document.createEvent('CustomEvent');
579
- readdEvent.initCustomEvent('readdToCollapsedContainer', false, false, null);
580
- child.dispatchEvent(readdEvent);
581
- });
582
- }
583
- _createCollapsedContainer() {
584
- const collapsedContainer = (this._collapsedContainer =
585
- document.createElement('div'));
586
- collapsedContainer.setAttribute('class', 'inboxsdk__results_collapsedContainer Wg');
587
- collapsedContainer.innerHTML =
588
- '<div class="inboxsdk__results_collapsedContainer_prepend"></div><div class="inboxsdk__results_collapsedContainer_append"></div>';
589
- const element = this._element;
590
- if (element)
591
- element.insertAdjacentElement('afterend', collapsedContainer);
592
- }
593
- _destroyCollapsedContainer() {
594
- if (this._collapsedContainer) {
595
- this._collapsedContainer.remove();
596
- this._collapsedContainer = null;
597
- }
598
- }
599
- }
600
- function _getTableHTML() {
601
- return [
602
- '<colgroup>',
603
- '<col class="k0vOLb">',
604
- '<col class="Ci">',
605
- '<col class="y5">',
606
- '<col class="WA">',
607
- '<col class="yY">',
608
- '<col>',
609
- '<col class="xX">',
610
- '</colgroup>',
611
- '<tbody>',
612
- '</tbody>',
613
- ].join('');
614
- }
615
- function _getRowHTML(result) {
616
- let iconHtml = '';
617
- if (result.iconHtml != null) {
618
- iconHtml = autoHtml `<div class="inboxsdk__resultsSection_result_icon inboxsdk__resultsSection_result_iconHtml">
619
- ${{
620
- __html: result.iconHtml,
621
- }}
622
- </div>`;
623
- }
624
- else if (result.iconUrl) {
625
- iconHtml = autoHtml `<img class="inboxsdk__resultsSection_result_icon ${result.iconClass || ''}" src="${result.iconUrl}">`;
626
- }
627
- else if (result.iconClass)
628
- iconHtml = autoHtml `<div class="${result.iconClass}"></div>`;
629
- const labelsHtml = Array.isArray(result.labels)
630
- ? result.labels.map(_getLabelHTML).join('')
631
- : '';
632
- const rowArr = [
633
- '<td class="xY PF"></td>',
634
- '<td class="xY oZ-x3"></td>',
635
- '<td class="xY WA">',
636
- iconHtml,
637
- '</td>',
638
- '<td class="xY WA"></td>',
639
- '<td class="xY yX inboxsdk__resultsSection_result_title">',
640
- '<div class="yW">',
641
- '<span ' + (result.isRead ? '' : 'class="zF"') + '>',
642
- escape(result.title),
643
- '</span>',
644
- '</div>',
645
- '</td>',
646
- '<td class="xY a4W">',
647
- '<div class="xS">',
648
- '<div class="xT">',
649
- '<div class="yi">',
650
- labelsHtml,
651
- '</div>',
652
- '<div class="y6">',
653
- '<span class="bog">',
654
- result.isRead ? '' : '<b>',
655
- escape(result.body || ''),
656
- result.isRead ? '' : '</b>',
657
- '</span>',
658
- '</div>',
659
- '</div>',
660
- '</div>',
661
- '</td>',
662
- '<td class="xY xW">',
663
- '<span' + (result.isRead ? '' : ' class="bq3"') + '>',
664
- escape(result.shortDetailText || ''),
665
- '</span>',
666
- '</td>',
667
- ];
668
- return rowArr.join('');
669
- }
670
- function _getLabelHTML(label) {
671
- const backgroundColor = label.backgroundColor || 'rgb(194, 194, 194)'; //grey
672
- const foregroundColor = label.foregroundColor || 'rgb(255, 255, 255)'; //white
673
- const maxWidth = label.maxWidth || '90px';
674
- const retArray = [
675
- autoHtml `<div class="ar as" data-tooltip="${label.title}">
676
- <div class="at" style="background-color: ${backgroundColor}; border-color: ${backgroundColor};">
677
- <div class="au" style="border-color: ${backgroundColor};">`,
678
- ];
679
- const styleHtml = label.iconBackgroundColor
680
- ? autoHtml `style="background-color: ${label.iconBackgroundColor}"`
681
- : '';
682
- if (label.iconHtml != null) {
683
- retArray.push(autoHtml `<div class="inboxsdk__resultsSection_label_icon inboxsdk__resultsSection_label_iconHtml"
684
- ${{
685
- __html: styleHtml,
686
- }}
687
- >
688
- ${{
689
- __html: label.iconHtml,
690
- }}
691
- </div>`);
692
- }
693
- else if (label.iconClass) {
694
- retArray.push(autoHtml `<div
695
- class="inboxsdk__resultsSection_label_icon ${label.iconClass || ''}"
696
- ${{
697
- __html: styleHtml,
698
- }}
699
- >
700
- </div>`);
701
- }
702
- else if (label.iconUrl) {
703
- retArray.push(autoHtml `<img
704
- class="inboxsdk__resultsSection_label_icon"
705
- ${{
706
- __html: styleHtml,
707
- }}
708
- src="${label.iconUrl}" />`);
709
- }
710
- retArray.push(autoHtml `
711
- <div class="av" style="color: ${foregroundColor}; max-width: ${maxWidth}">
712
- ${label.title}
713
- </div>
714
- </div>
715
- </div>
716
- </div>
717
- `);
718
- return retArray.join('');
719
- }
720
- export default GmailCollapsibleSectionView;