@inboxsdk/core 1.2.5 → 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 (328) hide show
  1. package/inboxsdk.js +4462 -456
  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/inboxsdk.d.ts +29 -0
  7. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts +2 -2
  8. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts.map +1 -1
  9. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts +6 -1
  10. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts.map +1 -1
  11. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts +2 -2
  12. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts.map +1 -1
  13. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts +5 -0
  14. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts.map +1 -1
  15. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.d.ts +13 -5
  16. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.d.ts.map +1 -1
  17. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts +1 -1
  18. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts.map +1 -1
  19. package/src/platform-implementation-js/namespaces/conversations.d.ts +7 -0
  20. package/src/platform-implementation-js/namespaces/conversations.d.ts.map +1 -1
  21. package/src/platform-implementation-js/namespaces/nav-menu.d.ts +4 -2
  22. package/src/platform-implementation-js/namespaces/nav-menu.d.ts.map +1 -1
  23. package/src/platform-implementation-js/views/conversations/attachment-card-view.d.ts +12 -5
  24. package/src/platform-implementation-js/views/conversations/attachment-card-view.d.ts.map +1 -1
  25. package/src/platform-implementation-js/views/native-nav-item-view.d.ts +2 -1
  26. package/src/platform-implementation-js/views/native-nav-item-view.d.ts.map +1 -1
  27. package/src/build/exec.js +0 -26
  28. package/src/build/spawn.js +0 -17
  29. package/src/common/ajax.js +0 -90
  30. package/src/common/cachebust-url.js +0 -10
  31. package/src/common/censorHTMLstring.js +0 -37
  32. package/src/common/censorHTMLtree.js +0 -28
  33. package/src/common/censorJSONTree.js +0 -15
  34. package/src/common/connectivity-test.js +0 -21
  35. package/src/common/defer.js +0 -11
  36. package/src/common/find-parent.js +0 -10
  37. package/src/common/get-extension-id.js +0 -7
  38. package/src/common/get-or-fail.js +0 -8
  39. package/src/common/get-session-id.js +0 -14
  40. package/src/common/get-stack-trace.js +0 -6
  41. package/src/common/html-to-text.js +0 -7
  42. package/src/common/isElementVisible.js +0 -6
  43. package/src/common/load-script.js +0 -126
  44. package/src/common/log-error.js +0 -185
  45. package/src/common/quoted-split.js +0 -18
  46. package/src/common/rate-limit-queuer.js +0 -57
  47. package/src/common/rate-limit.js +0 -14
  48. package/src/common/version.js +0 -8
  49. package/src/inboxsdk-js/header.js +0 -19
  50. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.js +0 -4
  51. package/src/inboxsdk-js/inboxsdk-NONREMOTE.js +0 -4
  52. package/src/inboxsdk-js/inboxsdk-REMOTE.js +0 -2
  53. package/src/inboxsdk-js/inboxsdk-TEST.js +0 -5
  54. package/src/inboxsdk-js/inboxsdk.js +0 -23
  55. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.js +0 -14
  56. package/src/inboxsdk-js/loading/platform-implementation-loader.js +0 -28
  57. package/src/injected-js/gmail/constants.js +0 -2
  58. package/src/injected-js/gmail/modify-suggestions.js +0 -106
  59. package/src/injected-js/gmail/setup-gmail-interceptor.js +0 -936
  60. package/src/injected-js/gmail/setup-gmonkey-handler.js +0 -49
  61. package/src/injected-js/gmail/sync-compose-processor-20220909.js +0 -298
  62. package/src/injected-js/gmail/sync-compose-processor.js +0 -55
  63. package/src/injected-js/gmail/sync-compose-request-processor.js +0 -109
  64. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +0 -71
  65. package/src/injected-js/gmail/thread-identifier/index.js +0 -133
  66. package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +0 -61
  67. package/src/injected-js/injected-logger.js +0 -50
  68. package/src/injected-js/main.js +0 -49
  69. package/src/injected-js/message-metadata-holder.js +0 -103
  70. package/src/injected-js/setup-data-exposer.js +0 -135
  71. package/src/injected-js/setup-error-silencer.js +0 -15
  72. package/src/injected-js/setup-event-reemitter.js +0 -47
  73. package/src/injected-js/setupCustomViewEventAssassin.js +0 -90
  74. package/src/injected-js/setupInboxCustomViewLinkFixer.js +0 -24
  75. package/src/injected-js/setupPushStateListener.js +0 -14
  76. package/src/injected-js/xhr-helper.js +0 -43
  77. package/src/injected-js/xhr-proxy-factory.js +0 -537
  78. package/src/platform-implementation-js/constants/nav-item-types.js +0 -19
  79. package/src/platform-implementation-js/constants/router.js +0 -60
  80. package/src/platform-implementation-js/constants/toolbars.js +0 -5
  81. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +0 -158
  82. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.js +0 -20
  83. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.js +0 -38
  84. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.js +0 -98
  85. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.js +0 -4
  86. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +0 -14
  87. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +0 -60
  88. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.js +0 -8
  89. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +0 -47
  90. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +0 -31
  91. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.js +0 -12
  92. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.js +0 -33
  93. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +0 -22
  94. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +0 -18
  95. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +0 -57
  96. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +0 -40
  97. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +0 -55
  98. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.js +0 -14
  99. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +0 -177
  100. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +0 -17
  101. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.js +0 -44
  102. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +0 -49
  103. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +0 -18
  104. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +0 -138
  105. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +0 -112
  106. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +0 -152
  107. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +0 -21
  108. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +0 -48
  109. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +0 -357
  110. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +0 -19
  111. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +0 -36
  112. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +0 -36
  113. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +0 -85
  114. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +0 -142
  115. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.js +0 -115
  116. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +0 -50
  117. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +0 -723
  118. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.js +0 -38
  119. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.js +0 -12
  120. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.js +0 -264
  121. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.js +0 -201
  122. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.js +0 -532
  123. package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.js +0 -300
  124. package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.js +0 -21
  125. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +0 -92
  126. package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.js +0 -28
  127. package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.js +0 -19
  128. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.js +0 -129
  129. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +0 -80
  130. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +0 -23
  131. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +0 -26
  132. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.js +0 -16
  133. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +0 -723
  134. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +0 -24
  135. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +0 -172
  136. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +0 -106
  137. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +0 -338
  138. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +0 -22
  139. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +0 -720
  140. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +0 -135
  141. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +0 -50
  142. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +0 -65
  143. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.js +0 -101
  144. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +0 -66
  145. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.js +0 -38
  146. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +0 -10
  147. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +0 -14
  148. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +0 -13
  149. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +0 -60
  150. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +0 -54
  151. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +0 -98
  152. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.js +0 -28
  153. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +0 -13
  154. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +0 -18
  155. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +0 -16
  156. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.js +0 -22
  157. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +0 -23
  158. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.js +0 -233
  159. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +0 -19
  160. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +0 -355
  161. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +0 -21
  162. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +0 -63
  163. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.js +0 -223
  164. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +0 -19
  165. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.js +0 -157
  166. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.js +0 -109
  167. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +0 -123
  168. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +0 -16
  169. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +0 -1542
  170. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.js +0 -4
  171. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +0 -75
  172. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +0 -737
  173. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.js +0 -763
  174. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +0 -103
  175. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +0 -508
  176. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +0 -236
  177. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.js +0 -84
  178. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +0 -986
  179. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +0 -26
  180. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +0 -658
  181. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +0 -459
  182. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +0 -265
  183. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.js +0 -33
  184. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.js +0 -325
  185. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.js +0 -61
  186. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.js +0 -58
  187. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +0 -23
  188. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.js +0 -101
  189. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.js +0 -30
  190. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.js +0 -10
  191. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +0 -42
  192. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.js +0 -22
  193. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +0 -112
  194. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +0 -122
  195. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +0 -194
  196. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +0 -352
  197. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +0 -76
  198. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +0 -57
  199. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +0 -291
  200. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +0 -28
  201. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +0 -46
  202. package/src/platform-implementation-js/driver-common/getAccountUrlPart.js +0 -17
  203. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +0 -17
  204. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +0 -44
  205. package/src/platform-implementation-js/driver-common/getOriginalMessagePage.js +0 -33
  206. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +0 -18
  207. package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.js +0 -49
  208. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +0 -13
  209. package/src/platform-implementation-js/driver-common/gmailAjax.js +0 -65
  210. package/src/platform-implementation-js/driver-common/inboxAjax.js +0 -5
  211. package/src/platform-implementation-js/driver-common/render-custom-icon.js +0 -16
  212. package/src/platform-implementation-js/driver-common/requestGmailThread.js +0 -24
  213. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +0 -245
  214. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +0 -144
  215. package/src/platform-implementation-js/driver-common/sidebar/constants.js +0 -26
  216. package/src/platform-implementation-js/driver-common/update-icon.js +0 -90
  217. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +0 -1
  218. package/src/platform-implementation-js/driver-interfaces/driver.js +0 -1
  219. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +0 -1
  220. package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +0 -1
  221. package/src/platform-implementation-js/lib/ErrorCollector.js +0 -47
  222. package/src/platform-implementation-js/lib/Membrane.js +0 -22
  223. package/src/platform-implementation-js/lib/ScrollableContainByScreen.js +0 -30
  224. package/src/platform-implementation-js/lib/attemptWithRetries.js +0 -16
  225. package/src/platform-implementation-js/lib/common-page-communicator.js +0 -137
  226. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +0 -35
  227. package/src/platform-implementation-js/lib/css-selector-escape.js +0 -6
  228. package/src/platform-implementation-js/lib/delay-asap.js +0 -10
  229. package/src/platform-implementation-js/lib/delay-idle.js +0 -16
  230. package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.js +0 -36
  231. package/src/platform-implementation-js/lib/dom/custom-events.js +0 -5
  232. package/src/platform-implementation-js/lib/dom/element-view-mapper.js +0 -9
  233. package/src/platform-implementation-js/lib/dom/generic-button-view.js +0 -39
  234. package/src/platform-implementation-js/lib/dom/get-insert-before-element.js +0 -39
  235. package/src/platform-implementation-js/lib/dom/get-selection.js +0 -30
  236. package/src/platform-implementation-js/lib/dom/insert-element-in-order.js +0 -38
  237. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +0 -83
  238. package/src/platform-implementation-js/lib/dom/is-node-in-range.js +0 -12
  239. package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.js +0 -12
  240. package/src/platform-implementation-js/lib/dom/make-element-child-stream.js +0 -79
  241. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.js +0 -27
  242. package/src/platform-implementation-js/lib/dom/make-element-view-stream.js +0 -15
  243. package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.js +0 -15
  244. package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.js +0 -5
  245. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +0 -8
  246. package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.js +0 -38
  247. package/src/platform-implementation-js/lib/dom/parentNodes.js +0 -8
  248. package/src/platform-implementation-js/lib/dom/querySelectorOrFail.js +0 -6
  249. package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.js +0 -22
  250. package/src/platform-implementation-js/lib/dom/set-css.js +0 -20
  251. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +0 -88
  252. package/src/platform-implementation-js/lib/dom/simulate-key.js +0 -46
  253. package/src/platform-implementation-js/lib/dom/simulate-mouse-event.js +0 -16
  254. package/src/platform-implementation-js/lib/dom/trigger-relay-event.js +0 -7
  255. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.js +0 -25
  256. package/src/platform-implementation-js/lib/fake-window-resize.js +0 -5
  257. package/src/platform-implementation-js/lib/from-event-target-capture.js +0 -12
  258. package/src/platform-implementation-js/lib/fromEventsWithOptions.js +0 -10
  259. package/src/platform-implementation-js/lib/handle-compose-link-chips.js +0 -124
  260. package/src/platform-implementation-js/lib/handler-registry.js +0 -67
  261. package/src/platform-implementation-js/lib/idMap.js +0 -40
  262. package/src/platform-implementation-js/lib/imageRequest.js +0 -8
  263. package/src/platform-implementation-js/lib/incrementName.js +0 -7
  264. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.js +0 -13
  265. package/src/platform-implementation-js/lib/inject-script.js +0 -33
  266. package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +0 -44
  267. package/src/platform-implementation-js/lib/is-valid-app-id.js +0 -27
  268. package/src/platform-implementation-js/lib/is-valid-email.js +0 -14
  269. package/src/platform-implementation-js/lib/isNotNil.js +0 -5
  270. package/src/platform-implementation-js/lib/isStreakAppId.js +0 -11
  271. package/src/platform-implementation-js/lib/logger.js +0 -439
  272. package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +0 -10
  273. package/src/platform-implementation-js/lib/persistent-queue.js +0 -107
  274. package/src/platform-implementation-js/lib/populateRouteID.js +0 -17
  275. package/src/platform-implementation-js/lib/react/ElementContainer.js +0 -26
  276. package/src/platform-implementation-js/lib/routeIDmatchesHash.js +0 -8
  277. package/src/platform-implementation-js/lib/safe-event-emitter.js +0 -16
  278. package/src/platform-implementation-js/lib/stopper-pool.js +0 -41
  279. package/src/platform-implementation-js/lib/stream-wait-for.js +0 -30
  280. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +0 -12
  281. package/src/platform-implementation-js/lib/toLiveSet.js +0 -22
  282. package/src/platform-implementation-js/lib/wait-for.js +0 -38
  283. package/src/platform-implementation-js/lib/waitForAsync.js +0 -18
  284. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +0 -5
  285. package/src/platform-implementation-js/main.js +0 -42
  286. package/src/platform-implementation-js/namespaces/app-menu.js +0 -81
  287. package/src/platform-implementation-js/namespaces/butter-bar.js +0 -163
  288. package/src/platform-implementation-js/namespaces/compose.js +0 -59
  289. package/src/platform-implementation-js/namespaces/conversations.js +0 -83
  290. package/src/platform-implementation-js/namespaces/global.js +0 -30
  291. package/src/platform-implementation-js/namespaces/keyboard.js +0 -30
  292. package/src/platform-implementation-js/namespaces/lists.js +0 -40
  293. package/src/platform-implementation-js/namespaces/modal.js +0 -43
  294. package/src/platform-implementation-js/namespaces/nav-menu.js +0 -33
  295. package/src/platform-implementation-js/namespaces/router.js +0 -139
  296. package/src/platform-implementation-js/namespaces/search.js +0 -29
  297. package/src/platform-implementation-js/namespaces/toolbars.js +0 -147
  298. package/src/platform-implementation-js/namespaces/user.js +0 -57
  299. package/src/platform-implementation-js/namespaces/widgets.js +0 -73
  300. package/src/platform-implementation-js/platform-implementation.js +0 -178
  301. package/src/platform-implementation-js/views/SimpleElementView.js +0 -16
  302. package/src/platform-implementation-js/views/app-menu-item-view.js +0 -442
  303. package/src/platform-implementation-js/views/app-toolbar-button-view.js +0 -43
  304. package/src/platform-implementation-js/views/collapsible-panel-view.js +0 -256
  305. package/src/platform-implementation-js/views/collapsible-section-view.js +0 -63
  306. package/src/platform-implementation-js/views/compose-button-view.js +0 -45
  307. package/src/platform-implementation-js/views/compose-view.js +0 -310
  308. package/src/platform-implementation-js/views/content-panel-view.js +0 -36
  309. package/src/platform-implementation-js/views/conversations/attachment-card-view.js +0 -41
  310. package/src/platform-implementation-js/views/conversations/custom-message-view.js +0 -117
  311. package/src/platform-implementation-js/views/conversations/message-view.js +0 -203
  312. package/src/platform-implementation-js/views/conversations/thread-view.js +0 -97
  313. package/src/platform-implementation-js/views/keyboard-shortcut-handle.js +0 -14
  314. package/src/platform-implementation-js/views/native-nav-item-view.js +0 -60
  315. package/src/platform-implementation-js/views/nav-item-view.js +0 -130
  316. package/src/platform-implementation-js/views/route-view/custom-route-view.js +0 -25
  317. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +0 -29
  318. package/src/platform-implementation-js/views/route-view/list-route-view.js +0 -46
  319. package/src/platform-implementation-js/views/route-view/route-view.js +0 -47
  320. package/src/platform-implementation-js/views/section-view.js +0 -60
  321. package/src/platform-implementation-js/views/thread-row-view.js +0 -90
  322. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.js +0 -39
  323. package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.js +0 -98
  324. package/src/platform-implementation-js/widgets/buttons/dropdown-view.js +0 -121
  325. package/src/platform-implementation-js/widgets/drawer-view.js +0 -46
  326. package/src/platform-implementation-js/widgets/modal-view.js +0 -108
  327. package/src/platform-implementation-js/widgets/mole-view.js +0 -38
  328. package/src/platform-implementation-js/widgets/top-message-bar-view.js +0 -15
@@ -1,763 +0,0 @@
1
- import autoHtml from 'auto-html';
2
- import * as Kefir from 'kefir';
3
- import kefirBus from 'kefir-bus';
4
- import GmailElementGetter from '../gmail-element-getter';
5
- import getInsertBeforeElement from '../../../lib/dom/get-insert-before-element';
6
- import querySelector from '../../../lib/dom/querySelectorOrFail';
7
- import makeMutationObserverChunkedStream from '../../../lib/dom/make-mutation-observer-chunked-stream';
8
- import ButtonView from '../widgets/buttons/button-view';
9
- import MoreDropdownButtonView from '../widgets/buttons/more-dropdown-button-view';
10
- import MoreParentDropdownButtonView from '../widgets/buttons/more-parent-accessory-button-view';
11
- import CreateAccessoryButtonView from '../widgets/buttons/create-accessory-button-view';
12
- import CreateParentAccessoryButtonView from '../widgets/buttons/create-parent-accessory-button-view';
13
- import GmailDropdownView from '../widgets/gmail-dropdown-view';
14
- import DropdownButtonViewController from '../../../widgets/buttons/dropdown-button-view-controller';
15
- import BasicButtonViewController from '../../../widgets/buttons/basic-button-view-controller';
16
- import updateIcon from '../../../driver-common/update-icon';
17
- import renderCustomIcon from '../../../driver-common/render-custom-icon';
18
- import NAV_ITEM_TYPES from '../../../constants/nav-item-types';
19
- let NUMBER_OF_GMAIL_NAV_ITEM_VIEWS_CREATED = 0;
20
- const GMAIL_V2_LEFT_INDENTATION_PADDING = 12;
21
- // TODO could we recreate this with React? There's so much statefulness that it's
22
- export default class GmailNavItemView {
23
- _accessory = null;
24
- _accessoryViewController = null;
25
- _driver;
26
- _element;
27
- _eventStream;
28
- _expandoElement = null;
29
- _iconSettings = {};
30
- _isActive = false;
31
- _isCollapsed = false;
32
- _itemContainerElement = null;
33
- _level;
34
- _name = '';
35
- _navItemDescriptor;
36
- _navItemNumber;
37
- _orderGroup;
38
- _orderHint;
39
- _type = null;
40
- _collapseKey = null;
41
- // delete after new left nav is fully launched, use this._level === 1 instead
42
- _isNewLeftNavParent;
43
- constructor(driver, orderGroup, level) {
44
- this._driver = driver;
45
- this._eventStream = kefirBus();
46
- this._level = level || 0;
47
- this._navItemNumber = ++NUMBER_OF_GMAIL_NAV_ITEM_VIEWS_CREATED;
48
- this._orderGroup = orderGroup;
49
- this._isNewLeftNavParent =
50
- !GmailElementGetter.shouldAddNavItemsInline() && this._level === 1;
51
- if (this._isNewLeftNavParent) {
52
- this._element = this._setupParentElement();
53
- }
54
- else {
55
- this._element = this._setupChildElement();
56
- }
57
- }
58
- addNavItem(orderGroup, navItemDescriptor) {
59
- const nestedNavItemLevel = this._type === NAV_ITEM_TYPES.GROUPER ? this._level : this._level + 1;
60
- const gmailNavItemView = new GmailNavItemView(this._driver, orderGroup, nestedNavItemLevel);
61
- gmailNavItemView
62
- .getEventStream()
63
- .filter((event) => event.eventName === 'orderChanged')
64
- .onValue(() => this._addNavItemElement(gmailNavItemView));
65
- gmailNavItemView.setNavItemDescriptor(navItemDescriptor);
66
- if (this._isNewLeftNavParent) {
67
- this._createExpandoParent();
68
- }
69
- return gmailNavItemView;
70
- }
71
- destroy() {
72
- this._element.remove();
73
- if (this._accessoryViewController)
74
- this._accessoryViewController.destroy();
75
- if (this._eventStream)
76
- this._eventStream.end();
77
- if (this._expandoElement)
78
- this._expandoElement.remove();
79
- if (this._itemContainerElement)
80
- this._itemContainerElement.remove();
81
- }
82
- getElement() {
83
- return this._element;
84
- }
85
- getEventStream() {
86
- return this._eventStream;
87
- }
88
- getNavItemDescriptor() {
89
- return this._navItemDescriptor;
90
- }
91
- getOrderGroup() {
92
- return this._orderGroup;
93
- }
94
- getOrderHint() {
95
- return this._orderHint;
96
- }
97
- getName() {
98
- return this._name;
99
- }
100
- isCollapsed() {
101
- return this._isCollapsed;
102
- }
103
- remove() {
104
- this.destroy();
105
- }
106
- setActive(value) {
107
- if (!this._element ||
108
- this._type === NAV_ITEM_TYPES.LINK ||
109
- this._type === NAV_ITEM_TYPES.MANAGE ||
110
- this._isActive === value ||
111
- this._isNewLeftNavParent) {
112
- return;
113
- }
114
- const toElement = querySelector(this._element, '.TO');
115
- if (value) {
116
- this._element.classList.add('ain');
117
- toElement.classList.add('nZ');
118
- toElement.classList.add('aiq');
119
- }
120
- else {
121
- this._element.classList.remove('ain');
122
- toElement.classList.remove('nZ');
123
- toElement.classList.remove('aiq');
124
- }
125
- this._setHeights();
126
- this._isActive = value;
127
- }
128
- setCollapsed(value) {
129
- this._isCollapsed = value;
130
- if (this._isCollapsible()) {
131
- if (value) {
132
- this._collapse();
133
- }
134
- else {
135
- this._expand();
136
- }
137
- }
138
- try {
139
- const storageKey = 'inboxsdk__navitem_collapsed__' + this._collapseKey;
140
- if (this._isCollapsed) {
141
- localStorage.setItem(storageKey, 'true');
142
- }
143
- else {
144
- localStorage.removeItem(storageKey);
145
- }
146
- }
147
- catch (e) {
148
- console.error('Caught error', e);
149
- }
150
- }
151
- setNavItemDescriptor(navItemDescriptorPropertyStream) {
152
- navItemDescriptorPropertyStream
153
- .takeUntilBy(this._eventStream.filter(() => false).beforeEnd(() => null))
154
- .onValue((x) => this._updateValues(x));
155
- }
156
- toggleCollapse() {
157
- this.setCollapsed(!this._isCollapsed);
158
- }
159
- // TODO this method is only called on orderChanged? is that right?
160
- _addNavItemElement(gmailNavItemView) {
161
- const itemContainerElement = this._getItemContainerElement();
162
- const insertBeforeElement = getInsertBeforeElement(gmailNavItemView.getElement(), itemContainerElement.children, ['data-group-order-hint', 'data-order-hint', 'data-insertion-order-hint']);
163
- itemContainerElement.insertBefore(gmailNavItemView.getElement(), insertBeforeElement);
164
- // If the current nav-item is of type GROUPER and we are in Gmailv2, then any nested nav-items
165
- // should be at the same indentation as the current nav-item. Somewhat confusingly, this._level
166
- // is normally the indentationFactor for the nested children of the current nav-item, so we
167
- // actually use this._level - 1 as the indentationFactor if we don't want to further indent the
168
- // nested items (i.e. the current item is of type GROUPER and we're in Gmailv2).
169
- const indentationFactor = this._type === NAV_ITEM_TYPES.GROUPER || this._isNewLeftNavParent
170
- ? this._level - 1
171
- : this._level;
172
- const element = gmailNavItemView.getElement();
173
- if (!GmailElementGetter.shouldAddNavItemsInline()) {
174
- querySelector(element, '.TN').style.marginLeft =
175
- 6 * indentationFactor + 'px';
176
- }
177
- else {
178
- querySelector(element, '.TN').style.marginLeft =
179
- getLeftIndentationPaddingValue() * indentationFactor + 'px';
180
- }
181
- this._setHeights();
182
- }
183
- _collapse() {
184
- this._isCollapsed = true;
185
- if (this._isNewLeftNavParent) {
186
- this._element.classList.remove('Xr');
187
- }
188
- else {
189
- const expandoElement = this._expandoElement;
190
- if (expandoElement) {
191
- expandoElement.classList.remove('aih');
192
- expandoElement.classList.add('aii');
193
- }
194
- else if (this._type === NAV_ITEM_TYPES.GROUPER) {
195
- const navItemElement = this._element.firstElementChild;
196
- if (navItemElement)
197
- navItemElement.classList.remove('air');
198
- }
199
- if (this._itemContainerElement)
200
- this._itemContainerElement.style.display = 'none';
201
- this._setHeights();
202
- }
203
- this._eventStream.emit({
204
- eventName: 'collapsed',
205
- });
206
- }
207
- _createAccessory(accessoryDescriptor) {
208
- switch (accessoryDescriptor.type) {
209
- case 'CREATE':
210
- this._createCreateAccessory(accessoryDescriptor);
211
- break;
212
- case 'ICON_BUTTON':
213
- this._createIconButtonAccessory(accessoryDescriptor);
214
- break;
215
- case 'DROPDOWN_BUTTON':
216
- this._createDropdownButtonAccessory(accessoryDescriptor);
217
- break;
218
- case 'SETTINGS_BUTTON':
219
- this._driver
220
- .getLogger()
221
- .deprecationWarning('SettingsButtonAccessoryDescriptor', 'DropdownButtonAccessoryDescriptor');
222
- this._createDropdownButtonAccessory({
223
- ...accessoryDescriptor,
224
- type: 'DROPDOWN_BUTTON',
225
- });
226
- break;
227
- }
228
- }
229
- _createCreateAccessory(accessoryDescriptor) {
230
- this._createPlusButtonAccessory(accessoryDescriptor);
231
- }
232
- _createDropdownButtonAccessory(accessoryDescriptor) {
233
- if (this._isNewLeftNavParent) {
234
- const buttonOptions = { ...accessoryDescriptor };
235
- buttonOptions.buttonView = new MoreParentDropdownButtonView();
236
- buttonOptions.dropdownViewDriverClass = GmailDropdownView;
237
- buttonOptions.dropdownPositionOptions = {
238
- position: 'right',
239
- hAlign: 'left',
240
- vAlign: 'top',
241
- };
242
- buttonOptions.dropdownShowFunction = ({ dropdown }) => {
243
- dropdown.el.style.marginLeft = '24px';
244
- buttonOptions.onClick({ dropdown });
245
- };
246
- const accessoryViewController = new DropdownButtonViewController(buttonOptions);
247
- this._accessoryViewController = accessoryViewController;
248
- const accessoryEl = querySelector(this._element, '.Yh');
249
- const parentNode = accessoryEl.parentNode;
250
- if (parentNode) {
251
- buttonOptions.buttonView
252
- .getElement()
253
- .classList.add(...accessoryEl.classList);
254
- parentNode.replaceChild(buttonOptions.buttonView.getElement(), accessoryEl);
255
- this._iconSettings.iconElement = null;
256
- }
257
- return;
258
- }
259
- // child dropdown button accessory
260
- const buttonOptions = { ...accessoryDescriptor };
261
- buttonOptions.buttonView = new MoreDropdownButtonView();
262
- buttonOptions.dropdownViewDriverClass = GmailDropdownView;
263
- buttonOptions.dropdownPositionOptions = {
264
- position: 'bottom',
265
- hAlign: 'left',
266
- vAlign: 'top',
267
- };
268
- const container = GmailElementGetter.getLeftNavContainerElement();
269
- if (!container)
270
- throw new Error('leftNavContainer not found');
271
- buttonOptions.dropdownShowFunction = (event) => {
272
- // bhZ is the class to indicate the left nav is collapsible mode
273
- // bym is class to show expanded when the left nav is collapsible
274
- if (container.classList.contains('bhZ')) {
275
- const stopper = Kefir.fromEvents(event.dropdown, 'destroy');
276
- // monitor class on the container and keep re-adding bym until dropdown closes
277
- makeMutationObserverChunkedStream(container, {
278
- attributes: true,
279
- attributeFilter: ['class'],
280
- })
281
- .takeUntilBy(stopper)
282
- .toProperty(() => null)
283
- .onValue(() => {
284
- if (!container.classList.contains('bym'))
285
- container.classList.add('bym');
286
- });
287
- stopper.onValue(() => {
288
- container.classList.remove('bym');
289
- });
290
- }
291
- buttonOptions.onClick(event);
292
- event.dropdown.on('destroy', () => {
293
- buttonOptions.buttonView.deactivate();
294
- });
295
- };
296
- const accessoryViewController = new DropdownButtonViewController(buttonOptions);
297
- this._accessoryViewController = accessoryViewController;
298
- const innerElement = querySelector(this._element, '.TO');
299
- innerElement.addEventListener('mouseenter', () => innerElement.classList.add('inboxsdk__navItem_hover'));
300
- innerElement.addEventListener('mouseleave', () => innerElement.classList.remove('inboxsdk__navItem_hover'));
301
- const insertionPoint = querySelector(this._element, '.TN');
302
- insertionPoint.appendChild(buttonOptions.buttonView.getElement());
303
- this._setupContextClickHandler(accessoryViewController);
304
- }
305
- _createExpando() {
306
- if (this._type === NAV_ITEM_TYPES.GROUPER) {
307
- return;
308
- }
309
- const expandoElement = (this._expandoElement =
310
- document.createElement('div'));
311
- expandoElement.setAttribute('class', 'TH aih J-J5-Ji inboxsdk__expando');
312
- expandoElement.setAttribute('role', 'link');
313
- expandoElement.title = `Expand ${this._name || ''}`;
314
- expandoElement.addEventListener('click', (e) => {
315
- this.toggleCollapse();
316
- e.stopPropagation();
317
- });
318
- const insertionPoint = this._element.querySelector('.TN.aik');
319
- if (insertionPoint)
320
- insertionPoint.insertAdjacentElement('afterbegin', expandoElement);
321
- if (this._isCollapsed) {
322
- this._collapse();
323
- }
324
- else {
325
- this._expand();
326
- }
327
- }
328
- _createExpandoParent() {
329
- const parentExpandoElement = querySelector(this._element, '.XR');
330
- parentExpandoElement.style.visibility = 'visible';
331
- this._expandoElement = parentExpandoElement;
332
- if (this._isCollapsed) {
333
- this._collapse();
334
- }
335
- else {
336
- this._expand();
337
- }
338
- }
339
- _createIconButtonAccessory(accessoryDescriptor) {
340
- this._driver
341
- .getLogger()
342
- .deprecationWarning('IconButtonAccessoryDescriptor accessory for a parent level NavItemView', 'CreateAccessoryDescriptor or DropdownButtonAccessoryDescriptor');
343
- if (this._isNewLeftNavParent) {
344
- return;
345
- }
346
- const buttonOptions = {
347
- ...accessoryDescriptor,
348
- buttonColor: 'pureIcon',
349
- };
350
- buttonOptions.buttonView = new ButtonView(buttonOptions);
351
- this._accessoryViewController = new BasicButtonViewController(buttonOptions);
352
- const insertionPoint = querySelector(this._element, '.TN');
353
- insertionPoint.appendChild(buttonOptions.buttonView.getElement());
354
- }
355
- _createItemContainerElement() {
356
- const itemContainerElement = (this._itemContainerElement =
357
- document.createElement('div'));
358
- itemContainerElement.classList.add('inboxsdk__navItem_container');
359
- this._element.appendChild(itemContainerElement);
360
- // If this is a collapsible nav-item, run collapse or expand to set the container styling
361
- if (this._isCollapsible()) {
362
- if (this._isCollapsed)
363
- this._collapse();
364
- else
365
- this._expand();
366
- }
367
- return itemContainerElement;
368
- }
369
- _createLinkButtonAccessory(accessoryDescriptor) {
370
- const linkDiv = document.createElement('div');
371
- const linkDivClassName = 'inboxsdk__navItem_link';
372
- linkDiv.setAttribute('class', linkDivClassName);
373
- const anchor = document.createElement('a');
374
- anchor.classList.add('CK');
375
- anchor.textContent = accessoryDescriptor.name;
376
- linkDiv.appendChild(anchor);
377
- anchor.href = '#';
378
- anchor.addEventListener('click', (e) => {
379
- e.stopPropagation();
380
- e.preventDefault();
381
- accessoryDescriptor.onClick();
382
- });
383
- querySelector(this._element, '.aio').appendChild(linkDiv);
384
- }
385
- _createPlusButtonAccessory(accessoryDescriptor) {
386
- if (this._isNewLeftNavParent) {
387
- const buttonOptions = { ...accessoryDescriptor };
388
- buttonOptions.buttonView = new CreateParentAccessoryButtonView();
389
- // TODO: new Gmail left nav parent accessory opens a dropdown which would be a breaking
390
- // change if we were to also create a dropdown view bc existing users would have to manually
391
- // close the dropdown if they only wanted a click callback. We could have a "hasDropdown"
392
- // prop to conditionally render the dropdown, but when is enough enough?
393
- // buttonOptions.dropdownViewDriverClass = GmailDropdownView;
394
- // buttonOptions.dropdownPositionOptions = {
395
- // position: 'right',
396
- // hAlign: 'left',
397
- // vAlign: 'top'
398
- // };
399
- // buttonOptions.dropdownShowFunction = ({ dropdown }) => {
400
- // dropdown.el.style.marginLeft = '24px';
401
- // buttonOptions.onClick({ dropdown });
402
- // };
403
- this._accessoryViewController = new BasicButtonViewController(buttonOptions);
404
- const accessoryEl = querySelector(this._element, '.Yh');
405
- const parentNode = accessoryEl.parentNode;
406
- if (parentNode) {
407
- buttonOptions.buttonView
408
- .getElement()
409
- .classList.add(...accessoryEl.classList);
410
- parentNode.replaceChild(buttonOptions.buttonView.getElement(), accessoryEl);
411
- this._iconSettings.iconElement = null;
412
- }
413
- return;
414
- }
415
- // child create button accessory
416
- const buttonOptions = { ...accessoryDescriptor };
417
- buttonOptions.buttonView = new CreateAccessoryButtonView();
418
- this._accessoryViewController = new BasicButtonViewController(buttonOptions);
419
- const insertionPoint = querySelector(this._element, '.TN');
420
- insertionPoint.appendChild(buttonOptions.buttonView.getElement());
421
- }
422
- _expand() {
423
- if (this._isNewLeftNavParent) {
424
- this._element.classList.add('Xr');
425
- }
426
- else {
427
- const expandoElement = this._expandoElement;
428
- if (expandoElement) {
429
- expandoElement.classList.add('aih');
430
- expandoElement.classList.remove('aii');
431
- }
432
- else if (this._type === NAV_ITEM_TYPES.GROUPER) {
433
- const navItemElement = this._element.firstElementChild;
434
- if (navItemElement) {
435
- navItemElement.classList.add('air');
436
- }
437
- }
438
- if (this._itemContainerElement) {
439
- this._itemContainerElement.style.display = '';
440
- }
441
- this._setHeights();
442
- }
443
- this._isCollapsed = false;
444
- this._eventStream.emit({
445
- eventName: 'expanded',
446
- });
447
- }
448
- _getItemContainerElement() {
449
- if (this._isNewLeftNavParent) {
450
- return querySelector(this._element, '.TK');
451
- }
452
- else {
453
- let itemContainerElement = this._itemContainerElement;
454
- if (!itemContainerElement) {
455
- itemContainerElement = this._createItemContainerElement();
456
- this._createExpando();
457
- }
458
- return itemContainerElement;
459
- }
460
- }
461
- _isCollapsible() {
462
- return (Boolean(this._expandoElement) || this._type === NAV_ITEM_TYPES.GROUPER);
463
- }
464
- _makeEventMapper(eventName) {
465
- return function (domEvent) {
466
- domEvent.stopPropagation();
467
- domEvent.preventDefault();
468
- return {
469
- eventName,
470
- domEvent,
471
- };
472
- };
473
- }
474
- _setHeights() {
475
- if (this._level == 1) {
476
- return;
477
- }
478
- const toElement = querySelector(this._element, '.TO');
479
- if (this._element.classList.contains('ain') && this._itemContainerElement) {
480
- this._element.style.height = '';
481
- const totalHeight = this._element.clientHeight;
482
- const itemHeight = toElement.clientHeight;
483
- this._element.style.height = itemHeight + 'px';
484
- this._element.style.overflow = 'visible';
485
- this._element.style.marginBottom = totalHeight - itemHeight + 'px';
486
- }
487
- else {
488
- this._element.style.height = '';
489
- this._element.style.overflow = '';
490
- this._element.style.marginBottom = '';
491
- }
492
- }
493
- _setHighlight(value) {
494
- if (!this._element ||
495
- this._type === NAV_ITEM_TYPES.LINK ||
496
- this._type === NAV_ITEM_TYPES.MANAGE) {
497
- return;
498
- }
499
- if (value) {
500
- querySelector(this._element, '.TO').classList.add('NQ');
501
- }
502
- else {
503
- querySelector(this._element, '.TO').classList.remove('NQ');
504
- }
505
- }
506
- _setupContextClickHandler(accessoryViewController) {
507
- Kefir.fromEvents(this._element, 'contextmenu')
508
- .takeWhile(() => this._accessoryViewController === accessoryViewController)
509
- .onValue((domEvent) => {
510
- domEvent.stopPropagation();
511
- domEvent.preventDefault();
512
- accessoryViewController.showDropdown();
513
- });
514
- }
515
- _setupChildElement() {
516
- const element = document.createElement('div');
517
- element.setAttribute('class', 'aim inboxsdk__navItem');
518
- element.innerHTML = [
519
- '<div class="TO">',
520
- '<div class="TN aik">',
521
- // This element needs a style attribute defined on it as there is a Gmail css rule of
522
- // selecting for "gj[style]" the sets the opacity to 1 rather than 0.6.
523
- '<div class="qj" style="">',
524
- '</div>',
525
- '<div class="aio aip">',
526
- '<span class="nU" role="link">',
527
- '</span>',
528
- // This bsU element is the container "subtitle" text.
529
- '<span class="bsU">',
530
- '</span>',
531
- '</div>',
532
- '</div>',
533
- '</div>',
534
- ].join('');
535
- const innerElement = querySelector(element, '.TO');
536
- Kefir.merge([
537
- Kefir.fromEvents(innerElement, 'mouseenter').map(this._makeEventMapper('mouseenter')),
538
- Kefir.fromEvents(innerElement, 'mouseleave').map(this._makeEventMapper('mouseleave')),
539
- ]).onValue((event) => {
540
- this._updateHighlight(event);
541
- });
542
- this._eventStream.plug(Kefir.fromEvents(innerElement, 'click').map(this._makeEventMapper('click')));
543
- return element;
544
- }
545
- _setupParentElement() {
546
- const element = document.createElement('div');
547
- element.className = 'Xa wT W8 XJ inboxsdk__navItem';
548
- element.innerHTML = [
549
- '<div class="V6 CL Y2">',
550
- '<div class="XR" role="button" tabindex="0" type="button" style="visibility: hidden">',
551
- '</div>',
552
- '<span class="XS">',
553
- '<span class="WW inboxsdk__navItem_name" role="heading" aria-level="2">',
554
- '</span>',
555
- '<span class="XU" aria-hidden="true" style="display: none">',
556
- '</span>',
557
- '</span>',
558
- '<div class="Yh">',
559
- '</div>',
560
- '</div>',
561
- '<div class="V3 ada">',
562
- '<div class="wT">',
563
- '<div class="TK">',
564
- '</div>',
565
- '</div>',
566
- '</div>',
567
- ].join('');
568
- // adds shadow rule to nav item container
569
- const scrollContainer = querySelector(element, '.V3');
570
- Kefir.fromEvents(scrollContainer, 'scroll')
571
- .debounce(10)
572
- .onValue(() => {
573
- if (scrollContainer.scrollTop > 0) {
574
- scrollContainer.classList.add('adh');
575
- }
576
- else {
577
- scrollContainer.classList.remove('adh');
578
- }
579
- });
580
- const expandoElement = querySelector(element, '.XR');
581
- Kefir.fromEvents(expandoElement, 'click')
582
- .map(this._makeEventMapper('click'))
583
- .onValue(() => {
584
- this.toggleCollapse();
585
- });
586
- const innerElement = querySelector(element, '.V6.CL');
587
- this._eventStream.plug(Kefir.fromEvents(innerElement, 'click').map(this._makeEventMapper('click')));
588
- return element;
589
- }
590
- _setupGrouper() {
591
- const navItemElement = this._element
592
- .firstElementChild;
593
- if (navItemElement) {
594
- navItemElement.classList.add('n4');
595
- navItemElement.addEventListener('click', (e) => {
596
- e.stopPropagation();
597
- this.toggleCollapse();
598
- });
599
- if (this._isCollapsed) {
600
- this._collapse();
601
- }
602
- else {
603
- this._expand();
604
- }
605
- }
606
- const iconContainerElement = querySelector(this._element, '.qj');
607
- iconContainerElement.innerHTML =
608
- '<div class="G-asx T-I-J3 J-J5-Ji">&nbsp;</div>';
609
- }
610
- _updateAccessory(accessory) {
611
- if (this._accessory === accessory) {
612
- return;
613
- }
614
- if (this._accessoryViewController) {
615
- this._accessoryViewController.destroy();
616
- this._accessoryViewController = null;
617
- }
618
- if (accessory) {
619
- this._createAccessory(accessory);
620
- }
621
- this._accessory = accessory;
622
- }
623
- _updateClickability(navItemDescriptor) {
624
- if (navItemDescriptor.type === NAV_ITEM_TYPES.LINK ||
625
- navItemDescriptor.type === NAV_ITEM_TYPES.MANAGE) {
626
- this._element.classList.add('inboxsdk__navItem_nonClickable');
627
- }
628
- else {
629
- this._element.classList.remove('inboxsdk__navItem_nonClickable');
630
- }
631
- }
632
- _updateHighlight({ eventName }) {
633
- switch (eventName) {
634
- case 'mouseenter':
635
- this._setHighlight(true);
636
- break;
637
- case 'mouseleave':
638
- this._setHighlight(false);
639
- break;
640
- }
641
- }
642
- _updateIcon(navItemDescriptor) {
643
- const iconContainerElement = this._isNewLeftNavParent
644
- ? querySelector(this._element, '.Yh')
645
- : querySelector(this._element, '.qj');
646
- // render custom icon
647
- if (navItemDescriptor.iconElement) {
648
- renderCustomIcon(iconContainerElement, navItemDescriptor.iconElement, navItemDescriptor.iconPosition !== 'BEFORE_NAME');
649
- return;
650
- }
651
- updateIcon(this._iconSettings, iconContainerElement, navItemDescriptor.iconPosition !== 'BEFORE_NAME', navItemDescriptor.iconClass, navItemDescriptor.iconUrl);
652
- // Setting the border-color of the icon container element while in Gmailv2 will trigger an SDK
653
- // css rule that will render a circle of border-color if the icon container element has no
654
- // children i.e. if no iconUrl or iconClass is defined on navItemDescriptor.
655
- if (navItemDescriptor.backgroundColor) {
656
- const circleColor = navItemDescriptor.backgroundColor;
657
- iconContainerElement.style.borderColor = circleColor;
658
- }
659
- }
660
- _updateName(name) {
661
- if (this._name === name) {
662
- return;
663
- }
664
- const navItemNameElement = querySelector(this._element, '.inboxsdk__navItem_name');
665
- navItemNameElement.textContent = name;
666
- navItemNameElement.setAttribute('title', name);
667
- if (this._expandoElement) {
668
- this._expandoElement.title = `Expand ${name}`;
669
- }
670
- if (this._navItemDescriptor?.tooltipAlignment) {
671
- const align = this._navItemDescriptor?.tooltipAlignment[0];
672
- this._element.firstElementChild?.setAttribute('data-tooltip', name);
673
- this._element.firstElementChild?.setAttribute('data-tooltip-align', align);
674
- }
675
- this._name = name;
676
- }
677
- _updateOrder(navItemDescriptor) {
678
- this._element.setAttribute('data-group-order-hint', '' + this._orderGroup);
679
- this._element.setAttribute('data-insertion-order-hint', '' + this._navItemNumber);
680
- navItemDescriptor.orderHint =
681
- navItemDescriptor.orderHint || navItemDescriptor.orderHint === 0
682
- ? navItemDescriptor.orderHint
683
- : Number.MAX_SAFE_INTEGER;
684
- if (navItemDescriptor.orderHint !== this._orderHint) {
685
- this._element.setAttribute('data-order-hint', '' + navItemDescriptor.orderHint);
686
- this._eventStream.emit({
687
- eventName: 'orderChanged',
688
- });
689
- }
690
- this._orderHint = navItemDescriptor.orderHint;
691
- }
692
- _updateRole(routeID) {
693
- const roleElement = querySelector(this._element, '.V6.CL');
694
- if (routeID) {
695
- roleElement.setAttribute('role', 'link');
696
- }
697
- else {
698
- roleElement.setAttribute('role', 'group');
699
- roleElement.classList.add('X9');
700
- }
701
- }
702
- _updateSubtitle(navItemDescriptor) {
703
- if (this._isNewLeftNavParent) {
704
- return;
705
- }
706
- if (navItemDescriptor.accessory &&
707
- !['SETTINGS_BUTTON', 'DROPDOWN_BUTTON'].includes(navItemDescriptor.accessory.type) &&
708
- navItemDescriptor.type !== NAV_ITEM_TYPES.GROUPER) {
709
- return;
710
- }
711
- querySelector(this._element, '.bsU').innerHTML = autoHtml `${navItemDescriptor.subtitle || ''}`;
712
- }
713
- _updateType(type = NAV_ITEM_TYPES.NAVIGATION) {
714
- if (!this._element) {
715
- return;
716
- }
717
- type = type || NAV_ITEM_TYPES.NAVIGATION;
718
- if (this._type === type) {
719
- return;
720
- }
721
- const nameElement = this._element.querySelector('.inboxsdk__navItem_name');
722
- switch (type) {
723
- case NAV_ITEM_TYPES.GROUPER:
724
- case NAV_ITEM_TYPES.NAVIGATION:
725
- if (!nameElement || nameElement.tagName !== 'SPAN') {
726
- querySelector(this._element, '.nU').innerHTML += autoHtml `<span class="inboxsdk__navItem_name">${this._name}</span>`;
727
- }
728
- break;
729
- case NAV_ITEM_TYPES.LINK:
730
- case NAV_ITEM_TYPES.MANAGE:
731
- if (!nameElement || nameElement.tagName !== 'A') {
732
- querySelector(this._element, '.nU').innerHTML += autoHtml `<a href="#" class="CK inboxsdk__navItem_name">${this._name}</a>`;
733
- }
734
- break;
735
- }
736
- this._type = type;
737
- }
738
- _updateValues(navItemDescriptor) {
739
- this._navItemDescriptor = navItemDescriptor;
740
- if (this._collapseKey == null) {
741
- this._collapseKey = navItemDescriptor.key || `${navItemDescriptor.name}`;
742
- this._isCollapsed =
743
- localStorage.getItem('inboxsdk__navitem_collapsed__' + this._collapseKey) === 'true';
744
- }
745
- this._updateType(navItemDescriptor.type);
746
- this._updateName(navItemDescriptor.name);
747
- this._updateSubtitle(navItemDescriptor);
748
- this._updateOrder(navItemDescriptor);
749
- if (this._isNewLeftNavParent) {
750
- this._updateRole(navItemDescriptor.routeID);
751
- }
752
- if (this._type === NAV_ITEM_TYPES.GROUPER) {
753
- this._setupGrouper();
754
- return;
755
- }
756
- this._updateAccessory(navItemDescriptor.accessory);
757
- this._updateIcon(navItemDescriptor);
758
- this._updateClickability(navItemDescriptor);
759
- }
760
- }
761
- export function getLeftIndentationPaddingValue() {
762
- return GMAIL_V2_LEFT_INDENTATION_PADDING;
763
- }