@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.
- package/inboxsdk.js +4474 -463
- package/inboxsdk.js.map +1 -1
- package/package.json +1 -1
- package/pageWorld.js +1 -1
- package/pageWorld.js.map +1 -1
- package/src/common/load-script.d.ts +0 -6
- package/src/common/load-script.d.ts.map +1 -1
- package/src/inboxsdk-js/loading/platform-implementation-loader.d.ts.map +1 -1
- package/src/inboxsdk.d.ts +29 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts +2 -2
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts +6 -1
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts +2 -2
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts +5 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.d.ts +13 -5
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts.map +1 -1
- package/src/platform-implementation-js/lib/inject-script-EMBEDDED.d.ts.map +1 -1
- package/src/platform-implementation-js/namespaces/conversations.d.ts +7 -0
- package/src/platform-implementation-js/namespaces/conversations.d.ts.map +1 -1
- package/src/platform-implementation-js/namespaces/nav-menu.d.ts +4 -2
- package/src/platform-implementation-js/namespaces/nav-menu.d.ts.map +1 -1
- package/src/platform-implementation-js/views/conversations/attachment-card-view.d.ts +12 -5
- package/src/platform-implementation-js/views/conversations/attachment-card-view.d.ts.map +1 -1
- package/src/platform-implementation-js/views/native-nav-item-view.d.ts +2 -1
- package/src/platform-implementation-js/views/native-nav-item-view.d.ts.map +1 -1
- package/src/build/exec.js +0 -26
- package/src/build/spawn.js +0 -17
- package/src/common/ajax.js +0 -90
- package/src/common/cachebust-url.js +0 -10
- package/src/common/censorHTMLstring.js +0 -37
- package/src/common/censorHTMLtree.js +0 -28
- package/src/common/censorJSONTree.js +0 -15
- package/src/common/connectivity-test.js +0 -21
- package/src/common/defer.js +0 -11
- package/src/common/find-parent.js +0 -10
- package/src/common/get-extension-id.js +0 -7
- package/src/common/get-or-fail.js +0 -8
- package/src/common/get-session-id.js +0 -14
- package/src/common/get-stack-trace.js +0 -6
- package/src/common/html-to-text.js +0 -7
- package/src/common/isElementVisible.js +0 -6
- package/src/common/load-script.js +0 -128
- package/src/common/log-error.js +0 -185
- package/src/common/quoted-split.js +0 -18
- package/src/common/rate-limit-queuer.js +0 -57
- package/src/common/rate-limit.js +0 -14
- package/src/common/version.js +0 -8
- package/src/inboxsdk-js/header.js +0 -19
- package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.js +0 -4
- package/src/inboxsdk-js/inboxsdk-NONREMOTE.js +0 -4
- package/src/inboxsdk-js/inboxsdk-REMOTE.js +0 -2
- package/src/inboxsdk-js/inboxsdk-TEST.js +0 -5
- package/src/inboxsdk-js/inboxsdk.js +0 -23
- package/src/inboxsdk-js/loading/load-platform-implementation-DEV.js +0 -14
- package/src/inboxsdk-js/loading/platform-implementation-loader.js +0 -31
- package/src/injected-js/gmail/constants.js +0 -2
- package/src/injected-js/gmail/modify-suggestions.js +0 -106
- package/src/injected-js/gmail/setup-gmail-interceptor.js +0 -936
- package/src/injected-js/gmail/setup-gmonkey-handler.js +0 -49
- package/src/injected-js/gmail/sync-compose-processor-20220909.js +0 -298
- package/src/injected-js/gmail/sync-compose-processor.js +0 -55
- package/src/injected-js/gmail/sync-compose-request-processor.js +0 -109
- package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +0 -71
- package/src/injected-js/gmail/thread-identifier/index.js +0 -133
- package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +0 -61
- package/src/injected-js/injected-logger.js +0 -50
- package/src/injected-js/main.js +0 -49
- package/src/injected-js/message-metadata-holder.js +0 -103
- package/src/injected-js/setup-data-exposer.js +0 -135
- package/src/injected-js/setup-error-silencer.js +0 -15
- package/src/injected-js/setup-event-reemitter.js +0 -47
- package/src/injected-js/setupCustomViewEventAssassin.js +0 -90
- package/src/injected-js/setupInboxCustomViewLinkFixer.js +0 -24
- package/src/injected-js/setupPushStateListener.js +0 -14
- package/src/injected-js/xhr-helper.js +0 -43
- package/src/injected-js/xhr-proxy-factory.js +0 -537
- package/src/platform-implementation-js/constants/nav-item-types.js +0 -19
- package/src/platform-implementation-js/constants/router.js +0 -60
- package/src/platform-implementation-js/constants/toolbars.js +0 -5
- package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +0 -158
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.js +0 -20
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.js +0 -38
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.js +0 -98
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.js +0 -4
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +0 -14
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +0 -60
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.js +0 -8
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +0 -47
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +0 -31
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.js +0 -12
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.js +0 -33
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +0 -22
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +0 -18
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +0 -57
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +0 -40
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +0 -55
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.js +0 -14
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +0 -177
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +0 -17
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.js +0 -44
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +0 -49
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +0 -18
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +0 -138
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +0 -112
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +0 -152
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +0 -21
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +0 -48
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +0 -357
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +0 -19
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +0 -36
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +0 -36
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +0 -85
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +0 -142
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.js +0 -115
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +0 -50
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +0 -723
- package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.js +0 -38
- package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.js +0 -12
- package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.js +0 -264
- package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.js +0 -201
- package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.js +0 -532
- package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.js +0 -300
- package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.js +0 -21
- package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +0 -92
- package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.js +0 -28
- package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.js +0 -19
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.js +0 -129
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +0 -80
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +0 -23
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +0 -26
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.js +0 -16
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +0 -723
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +0 -24
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +0 -172
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +0 -106
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +0 -328
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +0 -22
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +0 -720
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +0 -135
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +0 -50
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +0 -65
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.js +0 -101
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +0 -66
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.js +0 -38
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +0 -10
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +0 -14
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +0 -13
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +0 -60
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +0 -54
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +0 -98
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.js +0 -28
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +0 -13
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +0 -18
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +0 -16
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.js +0 -22
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +0 -23
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.js +0 -233
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +0 -19
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +0 -355
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +0 -21
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +0 -63
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.js +0 -223
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +0 -19
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.js +0 -157
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.js +0 -109
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +0 -123
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +0 -16
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +0 -1542
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.js +0 -4
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +0 -75
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +0 -737
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.js +0 -763
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +0 -103
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +0 -508
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +0 -236
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.js +0 -84
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +0 -986
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +0 -26
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +0 -658
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +0 -459
- package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +0 -265
- package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.js +0 -33
- package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.js +0 -325
- package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.js +0 -61
- package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.js +0 -58
- package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +0 -23
- package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.js +0 -101
- package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.js +0 -30
- package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.js +0 -10
- package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +0 -42
- package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.js +0 -22
- package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +0 -112
- package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +0 -122
- package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +0 -194
- package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +0 -352
- package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +0 -76
- package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +0 -57
- package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +0 -291
- package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +0 -28
- package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +0 -46
- package/src/platform-implementation-js/driver-common/getAccountUrlPart.js +0 -17
- package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +0 -17
- package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +0 -44
- package/src/platform-implementation-js/driver-common/getOriginalMessagePage.js +0 -33
- package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +0 -18
- package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.js +0 -49
- package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +0 -13
- package/src/platform-implementation-js/driver-common/gmailAjax.js +0 -65
- package/src/platform-implementation-js/driver-common/inboxAjax.js +0 -5
- package/src/platform-implementation-js/driver-common/render-custom-icon.js +0 -16
- package/src/platform-implementation-js/driver-common/requestGmailThread.js +0 -24
- package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +0 -245
- package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +0 -144
- package/src/platform-implementation-js/driver-common/sidebar/constants.js +0 -26
- package/src/platform-implementation-js/driver-common/update-icon.js +0 -90
- package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +0 -1
- package/src/platform-implementation-js/driver-interfaces/driver.js +0 -1
- package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +0 -1
- package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +0 -1
- package/src/platform-implementation-js/lib/ErrorCollector.js +0 -47
- package/src/platform-implementation-js/lib/Membrane.js +0 -22
- package/src/platform-implementation-js/lib/ScrollableContainByScreen.js +0 -30
- package/src/platform-implementation-js/lib/attemptWithRetries.js +0 -16
- package/src/platform-implementation-js/lib/common-page-communicator.js +0 -137
- package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +0 -35
- package/src/platform-implementation-js/lib/css-selector-escape.js +0 -6
- package/src/platform-implementation-js/lib/delay-asap.js +0 -10
- package/src/platform-implementation-js/lib/delay-idle.js +0 -16
- package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.js +0 -36
- package/src/platform-implementation-js/lib/dom/custom-events.js +0 -5
- package/src/platform-implementation-js/lib/dom/element-view-mapper.js +0 -9
- package/src/platform-implementation-js/lib/dom/generic-button-view.js +0 -39
- package/src/platform-implementation-js/lib/dom/get-insert-before-element.js +0 -39
- package/src/platform-implementation-js/lib/dom/get-selection.js +0 -30
- package/src/platform-implementation-js/lib/dom/insert-element-in-order.js +0 -38
- package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +0 -83
- package/src/platform-implementation-js/lib/dom/is-node-in-range.js +0 -12
- package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.js +0 -12
- package/src/platform-implementation-js/lib/dom/make-element-child-stream.js +0 -79
- package/src/platform-implementation-js/lib/dom/make-element-stream-merger.js +0 -27
- package/src/platform-implementation-js/lib/dom/make-element-view-stream.js +0 -15
- package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.js +0 -15
- package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.js +0 -5
- package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +0 -8
- package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.js +0 -38
- package/src/platform-implementation-js/lib/dom/parentNodes.js +0 -8
- package/src/platform-implementation-js/lib/dom/querySelectorOrFail.js +0 -6
- package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.js +0 -22
- package/src/platform-implementation-js/lib/dom/set-css.js +0 -20
- package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +0 -88
- package/src/platform-implementation-js/lib/dom/simulate-key.js +0 -46
- package/src/platform-implementation-js/lib/dom/simulate-mouse-event.js +0 -16
- package/src/platform-implementation-js/lib/dom/trigger-relay-event.js +0 -7
- package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.js +0 -25
- package/src/platform-implementation-js/lib/fake-window-resize.js +0 -5
- package/src/platform-implementation-js/lib/from-event-target-capture.js +0 -12
- package/src/platform-implementation-js/lib/fromEventsWithOptions.js +0 -10
- package/src/platform-implementation-js/lib/handle-compose-link-chips.js +0 -124
- package/src/platform-implementation-js/lib/handler-registry.js +0 -67
- package/src/platform-implementation-js/lib/idMap.js +0 -40
- package/src/platform-implementation-js/lib/imageRequest.js +0 -8
- package/src/platform-implementation-js/lib/incrementName.js +0 -7
- package/src/platform-implementation-js/lib/inject-script-EMBEDDED.js +0 -8
- package/src/platform-implementation-js/lib/inject-script.js +0 -33
- package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +0 -44
- package/src/platform-implementation-js/lib/is-valid-app-id.js +0 -27
- package/src/platform-implementation-js/lib/is-valid-email.js +0 -14
- package/src/platform-implementation-js/lib/isNotNil.js +0 -5
- package/src/platform-implementation-js/lib/isStreakAppId.js +0 -11
- package/src/platform-implementation-js/lib/logger.js +0 -439
- package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +0 -10
- package/src/platform-implementation-js/lib/persistent-queue.js +0 -107
- package/src/platform-implementation-js/lib/populateRouteID.js +0 -17
- package/src/platform-implementation-js/lib/react/ElementContainer.js +0 -26
- package/src/platform-implementation-js/lib/routeIDmatchesHash.js +0 -8
- package/src/platform-implementation-js/lib/safe-event-emitter.js +0 -16
- package/src/platform-implementation-js/lib/stopper-pool.js +0 -41
- package/src/platform-implementation-js/lib/stream-wait-for.js +0 -30
- package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +0 -12
- package/src/platform-implementation-js/lib/toLiveSet.js +0 -22
- package/src/platform-implementation-js/lib/wait-for.js +0 -38
- package/src/platform-implementation-js/lib/waitForAsync.js +0 -18
- package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +0 -5
- package/src/platform-implementation-js/main.js +0 -42
- package/src/platform-implementation-js/namespaces/app-menu.js +0 -81
- package/src/platform-implementation-js/namespaces/butter-bar.js +0 -163
- package/src/platform-implementation-js/namespaces/compose.js +0 -59
- package/src/platform-implementation-js/namespaces/conversations.js +0 -83
- package/src/platform-implementation-js/namespaces/global.js +0 -30
- package/src/platform-implementation-js/namespaces/keyboard.js +0 -30
- package/src/platform-implementation-js/namespaces/lists.js +0 -40
- package/src/platform-implementation-js/namespaces/modal.js +0 -43
- package/src/platform-implementation-js/namespaces/nav-menu.js +0 -33
- package/src/platform-implementation-js/namespaces/router.js +0 -139
- package/src/platform-implementation-js/namespaces/search.js +0 -29
- package/src/platform-implementation-js/namespaces/toolbars.js +0 -147
- package/src/platform-implementation-js/namespaces/user.js +0 -57
- package/src/platform-implementation-js/namespaces/widgets.js +0 -73
- package/src/platform-implementation-js/platform-implementation.js +0 -178
- package/src/platform-implementation-js/views/SimpleElementView.js +0 -16
- package/src/platform-implementation-js/views/app-menu-item-view.js +0 -442
- package/src/platform-implementation-js/views/app-toolbar-button-view.js +0 -43
- package/src/platform-implementation-js/views/collapsible-panel-view.js +0 -256
- package/src/platform-implementation-js/views/collapsible-section-view.js +0 -63
- package/src/platform-implementation-js/views/compose-button-view.js +0 -45
- package/src/platform-implementation-js/views/compose-view.js +0 -310
- package/src/platform-implementation-js/views/content-panel-view.js +0 -36
- package/src/platform-implementation-js/views/conversations/attachment-card-view.js +0 -41
- package/src/platform-implementation-js/views/conversations/custom-message-view.js +0 -117
- package/src/platform-implementation-js/views/conversations/message-view.js +0 -203
- package/src/platform-implementation-js/views/conversations/thread-view.js +0 -97
- package/src/platform-implementation-js/views/keyboard-shortcut-handle.js +0 -14
- package/src/platform-implementation-js/views/native-nav-item-view.js +0 -60
- package/src/platform-implementation-js/views/nav-item-view.js +0 -130
- package/src/platform-implementation-js/views/route-view/custom-route-view.js +0 -25
- package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +0 -29
- package/src/platform-implementation-js/views/route-view/list-route-view.js +0 -46
- package/src/platform-implementation-js/views/route-view/route-view.js +0 -47
- package/src/platform-implementation-js/views/section-view.js +0 -60
- package/src/platform-implementation-js/views/thread-row-view.js +0 -90
- package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.js +0 -39
- package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.js +0 -98
- package/src/platform-implementation-js/widgets/buttons/dropdown-view.js +0 -121
- package/src/platform-implementation-js/widgets/drawer-view.js +0 -46
- package/src/platform-implementation-js/widgets/modal-view.js +0 -108
- package/src/platform-implementation-js/widgets/mole-view.js +0 -38
- package/src/platform-implementation-js/widgets/top-message-bar-view.js +0 -15
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import last from 'lodash/last';
|
|
2
|
-
import * as Kefir from 'kefir';
|
|
3
|
-
import streamWaitFor from '../../../lib/stream-wait-for';
|
|
4
|
-
import makeMutationObserverChunkedStream from '../../../lib/dom/make-mutation-observer-chunked-stream';
|
|
5
|
-
import makeElementChildStream from '../../../lib/dom/make-element-child-stream';
|
|
6
|
-
export default function getMainContentElementChangedStream(GmailElementGetter) {
|
|
7
|
-
const s = waitForMainContentContainer(GmailElementGetter)
|
|
8
|
-
.flatMap((mainContentContainer) => makeElementChildStream(mainContentContainer)
|
|
9
|
-
.filter(({ el }) => el.classList.contains('nH'))
|
|
10
|
-
.flatMap(({ el, removalStream }) => makeMutationObserverChunkedStream(el, {
|
|
11
|
-
attributes: true,
|
|
12
|
-
attributeFilter: ['style'],
|
|
13
|
-
})
|
|
14
|
-
.map((x) => last(x))
|
|
15
|
-
.toProperty(() => {
|
|
16
|
-
return { target: el };
|
|
17
|
-
})
|
|
18
|
-
.filter(_isNowVisible)
|
|
19
|
-
.map((e) => e.target)
|
|
20
|
-
.takeUntilBy(removalStream)))
|
|
21
|
-
.toProperty();
|
|
22
|
-
// Make sure we always have a subscriber. The function breaks if it loses all
|
|
23
|
-
// subscribers and then re-gains some.
|
|
24
|
-
s.onValue(() => {
|
|
25
|
-
// ignore, just activate
|
|
26
|
-
});
|
|
27
|
-
return s;
|
|
28
|
-
}
|
|
29
|
-
function waitForMainContentContainer(GmailElementGetter) {
|
|
30
|
-
if (GmailElementGetter.isStandaloneComposeWindow()) {
|
|
31
|
-
return Kefir.never();
|
|
32
|
-
}
|
|
33
|
-
return streamWaitFor(() => GmailElementGetter.getMainContentContainer());
|
|
34
|
-
}
|
|
35
|
-
function _isNowVisible(mutation) {
|
|
36
|
-
const el = mutation.target;
|
|
37
|
-
return el.style.display !== 'none';
|
|
38
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import once from 'lodash/once';
|
|
2
|
-
import makeMutationObserverChunkedStream from '../../../lib/dom/make-mutation-observer-chunked-stream';
|
|
3
|
-
const waitForGmailModeToSettle = once(() => makeMutationObserverChunkedStream(document.body, {
|
|
4
|
-
attributes: true,
|
|
5
|
-
attributeFilter: ['class'],
|
|
6
|
-
})
|
|
7
|
-
.toProperty(() => undefined)
|
|
8
|
-
.filter(() => document.body.classList.length > 0)
|
|
9
|
-
.map(() => undefined)
|
|
10
|
-
.take(1)
|
|
11
|
-
.toProperty());
|
|
12
|
-
export default waitForGmailModeToSettle;
|
|
@@ -1,264 +0,0 @@
|
|
|
1
|
-
import once from 'lodash/once';
|
|
2
|
-
import * as Kefir from 'kefir';
|
|
3
|
-
import makeElementChildStream from '../../lib/dom/make-element-child-stream';
|
|
4
|
-
import querySelector from '../../lib/dom/querySelectorOrFail';
|
|
5
|
-
import waitForGmailModeToSettle from './gmail-element-getter/wait-for-gmail-mode-to-settle';
|
|
6
|
-
import getMainContentElementChangedStream from './gmail-element-getter/get-main-content-element-changed-stream';
|
|
7
|
-
import isIntegratedViewGmail from './gmail-driver/isIntegratedViewGmail';
|
|
8
|
-
import Logger from '../../lib/logger';
|
|
9
|
-
import waitFor from '../../lib/wait-for';
|
|
10
|
-
/**
|
|
11
|
-
* The selector for the new app menu https://support.google.com/mail/answer/11555490 -- FEB 2023
|
|
12
|
-
*/
|
|
13
|
-
const APP_MENU = '.aeN.WR.a6o.anZ.nH.oy8Mbf[role=navigation]';
|
|
14
|
-
/**
|
|
15
|
-
* If the APP_MENU selector is not found, NAV_MENU _might_ be present.
|
|
16
|
-
*/
|
|
17
|
-
const NAV_MENU = '.aeN.WR.nH.oy8Mbf[role=navigation]';
|
|
18
|
-
// TODO Figure out if these functions can and should be able to return null
|
|
19
|
-
const GmailElementGetter = {
|
|
20
|
-
getActiveMoreMenu() {
|
|
21
|
-
const elements = document.querySelectorAll('.J-M.aX0.aYO.jQjAxd');
|
|
22
|
-
for (let ii = 0; ii < elements.length; ii++) {
|
|
23
|
-
if (elements[ii].style.display !== 'none') {
|
|
24
|
-
return elements[ii];
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return null;
|
|
28
|
-
},
|
|
29
|
-
getAddonSidebarContainerElement() {
|
|
30
|
-
// only for Gmailv1 + Gmailv2-before-2018-07-30?
|
|
31
|
-
return document.querySelector('.no > .nn.bnl');
|
|
32
|
-
},
|
|
33
|
-
getCompanionSidebarContentContainerElement() {
|
|
34
|
-
return document.querySelector('.brC-brG');
|
|
35
|
-
},
|
|
36
|
-
// <div class="brC-aT5-aOt-Jw" role="navigation" aria-label="Side panel">
|
|
37
|
-
getCompanionSidebarIconContainerElement() {
|
|
38
|
-
return document.querySelector('.brC-aT5-aOt-Jw');
|
|
39
|
-
},
|
|
40
|
-
getComposeButton() {
|
|
41
|
-
if (isIntegratedViewGmail()) {
|
|
42
|
-
return document.querySelector('.aIH .aic div[role=button].L3');
|
|
43
|
-
}
|
|
44
|
-
return document.querySelector('[gh=cm]');
|
|
45
|
-
},
|
|
46
|
-
getComposeWindowContainer() {
|
|
47
|
-
return document.querySelector('.dw .nH > .nH > .no');
|
|
48
|
-
},
|
|
49
|
-
getContentSectionElement() {
|
|
50
|
-
// New method for finding the content section element that also supports
|
|
51
|
-
// Gmail integrated view. Use it if we're in Gmail integrated view.
|
|
52
|
-
// Otherwise, use the old method, but log a warning if the old method
|
|
53
|
-
// finds something different than the old method, so that way we can
|
|
54
|
-
// figure out if it's okay to swap over.
|
|
55
|
-
const el = document.querySelector('div.nH.bkK > .nH');
|
|
56
|
-
if (isIntegratedViewGmail()) {
|
|
57
|
-
return el;
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
const leftNavContainer = GmailElementGetter.getLeftNavContainerElement();
|
|
61
|
-
const oldMethodEl = leftNavContainer
|
|
62
|
-
? leftNavContainer.nextElementSibling.children[0]
|
|
63
|
-
: null;
|
|
64
|
-
if (el !== oldMethodEl) {
|
|
65
|
-
Logger.error(new Error('getContentSectionElement old and new method inconsistency'), {
|
|
66
|
-
elClassName: el?.className,
|
|
67
|
-
oldMethodClassName: oldMethodEl?.className,
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
return oldMethodEl;
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
getFullscreenComposeWindowContainer() {
|
|
74
|
-
return document.querySelector('.aSs .aSt');
|
|
75
|
-
},
|
|
76
|
-
getFullscreenComposeWindowContainerStream() {
|
|
77
|
-
if (!document.body)
|
|
78
|
-
throw new Error();
|
|
79
|
-
return (makeElementChildStream(document.body)
|
|
80
|
-
.filter(({ el }) => el.classList.contains('aSs'))
|
|
81
|
-
.flatMap(({ el, removalStream }) => makeElementChildStream(el).takeUntilBy(removalStream))
|
|
82
|
-
.filter(({ el }) => el.classList.contains('aSt'))
|
|
83
|
-
// Assume that only one element will come through and will never be removed from the page.
|
|
84
|
-
.take(1)
|
|
85
|
-
.map(({ el }) => ({ el, removalStream: Kefir.never() }))
|
|
86
|
-
.toProperty());
|
|
87
|
-
},
|
|
88
|
-
getGtalkButtons() {
|
|
89
|
-
return document.querySelector('.aeN .aj5.J-KU-Jg');
|
|
90
|
-
},
|
|
91
|
-
getLeftNavContainerElement() {
|
|
92
|
-
if (this.getAppMenu()) {
|
|
93
|
-
return this.getAppMenuContainer()?.querySelector('.aqn.aIH') ?? null;
|
|
94
|
-
}
|
|
95
|
-
if (isIntegratedViewGmail()) {
|
|
96
|
-
return document.querySelector('div[role=navigation] + div.aqn');
|
|
97
|
-
}
|
|
98
|
-
return document.querySelector('.aeN');
|
|
99
|
-
},
|
|
100
|
-
getLeftNavHeightElement() {
|
|
101
|
-
return document.querySelector('.aeN');
|
|
102
|
-
},
|
|
103
|
-
getMainContentBodyContainerElement() {
|
|
104
|
-
return document.querySelector('.no > .nn.bkK');
|
|
105
|
-
},
|
|
106
|
-
getMainContentContainer() {
|
|
107
|
-
// This method used to just look for the div[role=main] element and then
|
|
108
|
-
// return its parent, but it turns out the Contacts page does not set
|
|
109
|
-
// role=main.
|
|
110
|
-
return document.querySelector('div.aeF > div.nH');
|
|
111
|
-
},
|
|
112
|
-
getMainContentElementChangedStream: once(function () {
|
|
113
|
-
return getMainContentElementChangedStream(this);
|
|
114
|
-
}),
|
|
115
|
-
getMoleParent() {
|
|
116
|
-
return document.body.querySelector('.dw .nH > .nH > .no');
|
|
117
|
-
},
|
|
118
|
-
// This function checks whether we should use the old InboxSDK style of adding nav items
|
|
119
|
-
// inline among Gmail's nav items (as opposed to the newer style where we put our nav items
|
|
120
|
-
// in their own sections at the bottom of the leftnav).
|
|
121
|
-
shouldAddNavItemsInline() {
|
|
122
|
-
// There's three cases this function should return true:
|
|
123
|
-
// - The user is in a pre-Google-Chat Hangouts-only version of Gmail (the Gmail Settings ->
|
|
124
|
-
// Chat and Meet -> Chat menu only has the options "Hangouts On" and "Hangouts Off").
|
|
125
|
-
// - The user has "Classic Hangouts" picked in Gmail Settings -> Chat and Meet -> Chat.
|
|
126
|
-
// - Integrated view gmail.
|
|
127
|
-
if (isIntegratedViewGmail()) {
|
|
128
|
-
return true;
|
|
129
|
-
}
|
|
130
|
-
const leftNavElement = document.querySelector('.aeN[role=navigation], .aeN [role=navigation]');
|
|
131
|
-
if (!leftNavElement) {
|
|
132
|
-
throw new Error('shouldAddNavItemsInline failed to find leftNavElement');
|
|
133
|
-
}
|
|
134
|
-
// leftNavElement classnames depending on gmail chat & meet settings:
|
|
135
|
-
// Old Hangouts-only Gmail
|
|
136
|
-
// div.aeN.WR.nH.oy8Mbf.nn
|
|
137
|
-
// (looks identical to current Gmail's chat-off-meet-off setup, but there are important
|
|
138
|
-
// CSS differences inside the element!)
|
|
139
|
-
// ===================
|
|
140
|
-
// No classname difference between open/collapsed
|
|
141
|
-
// div.ajl.aib.aZ6 (classic hangouts on left or right, google meet on/off)
|
|
142
|
-
// ===================
|
|
143
|
-
// Collapsed gets .bhZ class added
|
|
144
|
-
// div.aeN.WR.nH.oy8Mbf.nn (chat off, google meet off)
|
|
145
|
-
// div.aeN.WR.BaIAZe.anZ.nH.oy8Mbf.nn (chat off, google meet on)
|
|
146
|
-
// div.aeN.WR.anZ.nH.oy8Mbf.nn (google chat on left, google meet on/off)
|
|
147
|
-
// div.aeN.WR.ahu.nH.oy8Mbf.nn (google chat on right, google meet on/off)
|
|
148
|
-
if (leftNavElement.classList.contains('aZ6')) {
|
|
149
|
-
return true;
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
return false;
|
|
153
|
-
}
|
|
154
|
-
},
|
|
155
|
-
getAppMenuAsync: once(async () => {
|
|
156
|
-
if (!GmailElementGetter.isStandalone()) {
|
|
157
|
-
await GmailElementGetter.waitForGmailModeToSettle();
|
|
158
|
-
try {
|
|
159
|
-
const element = await waitFor(() => document.querySelector(`${APP_MENU}, ${NAV_MENU}`));
|
|
160
|
-
if (!document.querySelector(APP_MENU)) {
|
|
161
|
-
return;
|
|
162
|
-
}
|
|
163
|
-
return element;
|
|
164
|
-
}
|
|
165
|
-
catch (e) {
|
|
166
|
-
Logger.error(e);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}),
|
|
170
|
-
getAppBurgerMenu() {
|
|
171
|
-
return document.querySelector('header[role="banner"] > div > div > div[aria-expanded]');
|
|
172
|
-
},
|
|
173
|
-
isAppBurgerMenuOpen() {
|
|
174
|
-
return (this.getAppBurgerMenu()?.getAttribute('aria-expanded') === 'true' ?? false);
|
|
175
|
-
},
|
|
176
|
-
getAppMenuContainer() {
|
|
177
|
-
return document.querySelector('.aqk.aql.bkL');
|
|
178
|
-
},
|
|
179
|
-
getAppMenu() {
|
|
180
|
-
return document.querySelector(APP_MENU);
|
|
181
|
-
},
|
|
182
|
-
getAppHeader() {
|
|
183
|
-
return document.querySelector('.oy8Mbf.qp');
|
|
184
|
-
},
|
|
185
|
-
getSeparateSectionNavItemMenuInjectionContainer() {
|
|
186
|
-
return document.querySelector('.aeN');
|
|
187
|
-
},
|
|
188
|
-
getSameSectionNavItemMenuInjectionContainer() {
|
|
189
|
-
if (isIntegratedViewGmail()) {
|
|
190
|
-
return document.querySelector('.yJ .wT > .n3');
|
|
191
|
-
}
|
|
192
|
-
else {
|
|
193
|
-
return document.querySelector('.aeN .n3');
|
|
194
|
-
}
|
|
195
|
-
},
|
|
196
|
-
getRowListElements() {
|
|
197
|
-
return Array.from(document.querySelectorAll('[gh=tl]'));
|
|
198
|
-
},
|
|
199
|
-
getScrollContainer() {
|
|
200
|
-
return document.querySelector('div.Tm.aeJ');
|
|
201
|
-
},
|
|
202
|
-
getSearchInput() {
|
|
203
|
-
return document.querySelector('form[role=search] input');
|
|
204
|
-
},
|
|
205
|
-
getSearchSuggestionsBoxParent() {
|
|
206
|
-
return document.querySelector('table.gstl_50 > tbody > tr > td.gssb_e');
|
|
207
|
-
},
|
|
208
|
-
getSidebarContainerElement() {
|
|
209
|
-
return document.querySelector('[role=main] table.Bs > tr .y3');
|
|
210
|
-
},
|
|
211
|
-
getThreadBackButton() {
|
|
212
|
-
let toolbarElement;
|
|
213
|
-
try {
|
|
214
|
-
toolbarElement = GmailElementGetter.getToolbarElement();
|
|
215
|
-
}
|
|
216
|
-
catch (err) {
|
|
217
|
-
return null;
|
|
218
|
-
}
|
|
219
|
-
return toolbarElement.querySelector('.lS');
|
|
220
|
-
},
|
|
221
|
-
getThreadContainerElement() {
|
|
222
|
-
return document.querySelector('[role=main] .g.id table.Bs > tr');
|
|
223
|
-
},
|
|
224
|
-
getToolbarElement() {
|
|
225
|
-
return querySelector(document, '[gh=tm]');
|
|
226
|
-
},
|
|
227
|
-
getTopAccountContainer() {
|
|
228
|
-
return document.querySelector('header[role="banner"] > div:nth-child(2) > div:nth-child(2)');
|
|
229
|
-
},
|
|
230
|
-
isGplusEnabled() {
|
|
231
|
-
const topAccountContainer = GmailElementGetter.getTopAccountContainer();
|
|
232
|
-
if (!topAccountContainer) {
|
|
233
|
-
return false;
|
|
234
|
-
}
|
|
235
|
-
return (topAccountContainer.querySelectorAll('a[href*="https://plus"][href*="upgrade"]').length === 0);
|
|
236
|
-
},
|
|
237
|
-
isDarkTheme() {
|
|
238
|
-
return document.body.classList.contains('inboxsdk__gmail_dark_theme');
|
|
239
|
-
},
|
|
240
|
-
isPreviewPane() {
|
|
241
|
-
return !!document.querySelector('.aia');
|
|
242
|
-
},
|
|
243
|
-
isStandalone() {
|
|
244
|
-
return this.isStandaloneComposeWindow() || this.isStandaloneThreadWindow();
|
|
245
|
-
},
|
|
246
|
-
isStandaloneComposeWindow() {
|
|
247
|
-
return (document.body.classList.contains('xE') &&
|
|
248
|
-
document.body.classList.contains('xp'));
|
|
249
|
-
},
|
|
250
|
-
isStandaloneThreadWindow() {
|
|
251
|
-
return (document.body.classList.contains('aAU') &&
|
|
252
|
-
document.body.classList.contains('xE') &&
|
|
253
|
-
document.body.classList.contains('Su'));
|
|
254
|
-
},
|
|
255
|
-
StandaloneCompose: {
|
|
256
|
-
getComposeWindowContainer() {
|
|
257
|
-
return document.querySelector('[role=main]');
|
|
258
|
-
},
|
|
259
|
-
},
|
|
260
|
-
waitForGmailModeToSettle() {
|
|
261
|
-
return waitForGmailModeToSettle().toPromise();
|
|
262
|
-
},
|
|
263
|
-
};
|
|
264
|
-
export default GmailElementGetter;
|
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
import CommonPageCommunicator from '../../lib/common-page-communicator';
|
|
2
|
-
import { CustomDomEvent } from '../../lib/dom/custom-events';
|
|
3
|
-
import makeMutationObserverChunkedStream from '../../lib/dom/make-mutation-observer-chunked-stream';
|
|
4
|
-
import Kefir from 'kefir';
|
|
5
|
-
// This is intended to be instantiated from makeXhrInterceptor, since it depends
|
|
6
|
-
// on the injected script, and if it's not instantiated elsewhere, you know that
|
|
7
|
-
// if you have an instance of this, then the injected script is present and this
|
|
8
|
-
// will work.
|
|
9
|
-
export default class GmailPageCommunicator extends CommonPageCommunicator {
|
|
10
|
-
async getMessageDate(threadId, message) {
|
|
11
|
-
return this._getMessageData(threadId, message, 'data-inboxsdk-sortdate', 'inboxSDKtellMeThisMessageDate');
|
|
12
|
-
}
|
|
13
|
-
async getMessageRecipients(threadId, message) {
|
|
14
|
-
return this._getMessageData(threadId, message, 'data-inboxsdk-recipients', 'inboxSDKtellMeThisMessageRecipients');
|
|
15
|
-
}
|
|
16
|
-
async _getMessageData(threadId, message, attribute, eventName) {
|
|
17
|
-
let data = message.getAttribute(attribute);
|
|
18
|
-
if (!data) {
|
|
19
|
-
const [btaiHeader, xsrfToken] = this.isUsingSyncAPI()
|
|
20
|
-
? await Promise.all([this.getBtaiHeader(), this.getXsrfToken()])
|
|
21
|
-
: [null, null];
|
|
22
|
-
message.dispatchEvent(new CustomEvent(eventName, {
|
|
23
|
-
bubbles: true,
|
|
24
|
-
cancelable: false,
|
|
25
|
-
detail: {
|
|
26
|
-
threadId,
|
|
27
|
-
ikValue: this.getIkValue(),
|
|
28
|
-
btaiHeader,
|
|
29
|
-
xsrfToken,
|
|
30
|
-
},
|
|
31
|
-
}));
|
|
32
|
-
data = message.getAttribute(attribute);
|
|
33
|
-
if (!data) {
|
|
34
|
-
await makeMutationObserverChunkedStream(message, {
|
|
35
|
-
attributes: true,
|
|
36
|
-
attributeFilter: [attribute],
|
|
37
|
-
})
|
|
38
|
-
.take(1)
|
|
39
|
-
.toPromise();
|
|
40
|
-
data = message.getAttribute(attribute);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
if (data && data !== 'error')
|
|
44
|
-
return JSON.parse(data);
|
|
45
|
-
else
|
|
46
|
-
return null;
|
|
47
|
-
}
|
|
48
|
-
getThreadIdForThreadRowByDatabase(threadRow) {
|
|
49
|
-
let threadid = threadRow.getAttribute('data-inboxsdk-threadid');
|
|
50
|
-
if (!threadid) {
|
|
51
|
-
threadRow.dispatchEvent(new CustomEvent(CustomDomEvent.tellMeThisThreadIdByDatabase, {
|
|
52
|
-
bubbles: true,
|
|
53
|
-
cancelable: false,
|
|
54
|
-
detail: null,
|
|
55
|
-
}));
|
|
56
|
-
threadid = threadRow.getAttribute('data-inboxsdk-threadid');
|
|
57
|
-
}
|
|
58
|
-
return threadid;
|
|
59
|
-
}
|
|
60
|
-
getThreadIdForThreadRowByClick(threadRow) {
|
|
61
|
-
let threadid = threadRow.getAttribute('data-inboxsdk-threadid');
|
|
62
|
-
if (!threadid) {
|
|
63
|
-
threadRow.dispatchEvent(new CustomEvent(CustomDomEvent.tellMeThisThreadIdByClick, {
|
|
64
|
-
bubbles: true,
|
|
65
|
-
cancelable: false,
|
|
66
|
-
detail: null,
|
|
67
|
-
}));
|
|
68
|
-
threadid = threadRow.getAttribute('data-inboxsdk-threadid');
|
|
69
|
-
}
|
|
70
|
-
return threadid;
|
|
71
|
-
}
|
|
72
|
-
getCurrentThreadID(threadContainerElement, isPreviewedThread = false) {
|
|
73
|
-
threadContainerElement.dispatchEvent(new CustomEvent('inboxSDKtellMeCurrentThreadId', {
|
|
74
|
-
bubbles: true,
|
|
75
|
-
cancelable: false,
|
|
76
|
-
detail: { isPreviewedThread },
|
|
77
|
-
}));
|
|
78
|
-
const s = threadContainerElement.getAttribute('data-inboxsdk-currentthreadid');
|
|
79
|
-
if (s == null)
|
|
80
|
-
throw new Error('Failed to read value');
|
|
81
|
-
return s;
|
|
82
|
-
}
|
|
83
|
-
getUserOriginalPreviewPaneMode() {
|
|
84
|
-
return document.head.getAttribute('data-inboxsdk-user-preview-pane-mode');
|
|
85
|
-
}
|
|
86
|
-
getActionTokenValue() {
|
|
87
|
-
const s = document.head.getAttribute('data-inboxsdk-action-token-value');
|
|
88
|
-
if (s == null)
|
|
89
|
-
throw new Error('Failed to read value');
|
|
90
|
-
return s;
|
|
91
|
-
}
|
|
92
|
-
isUsingSyncAPI() {
|
|
93
|
-
const s = document.head.getAttribute('data-inboxsdk-using-sync-api');
|
|
94
|
-
if (s == null)
|
|
95
|
-
throw new Error('Failed to read value');
|
|
96
|
-
return s === 'true';
|
|
97
|
-
}
|
|
98
|
-
isConversationViewDisabled() {
|
|
99
|
-
return new Promise((resolve) => {
|
|
100
|
-
Kefir.fromEvents(document, 'inboxSDKgmonkeyResponse')
|
|
101
|
-
.take(1)
|
|
102
|
-
.onValue((event) => {
|
|
103
|
-
resolve(event.detail);
|
|
104
|
-
});
|
|
105
|
-
document.dispatchEvent(new CustomEvent('inboxSDKtellMeIsConversationViewDisabled', {
|
|
106
|
-
bubbles: false,
|
|
107
|
-
cancelable: false,
|
|
108
|
-
detail: null,
|
|
109
|
-
}));
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
registerSuggestionsModifier(providerID) {
|
|
113
|
-
document.dispatchEvent(new CustomEvent('inboxSDKregisterSuggestionsModifier', {
|
|
114
|
-
bubbles: false,
|
|
115
|
-
cancelable: false,
|
|
116
|
-
detail: { providerID },
|
|
117
|
-
}));
|
|
118
|
-
}
|
|
119
|
-
provideAutocompleteSuggestions(providerID, query, suggestions) {
|
|
120
|
-
document.dispatchEvent(new CustomEvent('inboxSDKprovideSuggestions', {
|
|
121
|
-
bubbles: false,
|
|
122
|
-
cancelable: false,
|
|
123
|
-
detail: {
|
|
124
|
-
providerID,
|
|
125
|
-
query,
|
|
126
|
-
// Filter out non-JSONifiable things
|
|
127
|
-
suggestions: JSON.parse(JSON.stringify(suggestions)),
|
|
128
|
-
},
|
|
129
|
-
}));
|
|
130
|
-
}
|
|
131
|
-
setupCustomListResultsQuery(query) {
|
|
132
|
-
document.dispatchEvent(new CustomEvent('inboxSDKcustomListRegisterQuery', {
|
|
133
|
-
bubbles: false,
|
|
134
|
-
cancelable: false,
|
|
135
|
-
detail: { query },
|
|
136
|
-
}));
|
|
137
|
-
}
|
|
138
|
-
setCustomListNewQuery(detail) {
|
|
139
|
-
document.dispatchEvent(new CustomEvent('inboxSDKcustomListNewQuery', {
|
|
140
|
-
bubbles: false,
|
|
141
|
-
cancelable: false,
|
|
142
|
-
detail,
|
|
143
|
-
}));
|
|
144
|
-
}
|
|
145
|
-
setCustomListResults(query, newResults) {
|
|
146
|
-
document.dispatchEvent(new CustomEvent('inboxSDKcustomListResults', {
|
|
147
|
-
bubbles: false,
|
|
148
|
-
cancelable: false,
|
|
149
|
-
detail: { query, newResults },
|
|
150
|
-
}));
|
|
151
|
-
}
|
|
152
|
-
createCustomSearchTerm(term) {
|
|
153
|
-
document.dispatchEvent(new CustomEvent('inboxSDKcreateCustomSearchTerm', {
|
|
154
|
-
bubbles: false,
|
|
155
|
-
cancelable: false,
|
|
156
|
-
detail: { term },
|
|
157
|
-
}));
|
|
158
|
-
}
|
|
159
|
-
setSearchQueryReplacement(query, newQuery) {
|
|
160
|
-
document.dispatchEvent(new CustomEvent('inboxSDKsearchReplacementReady', {
|
|
161
|
-
bubbles: false,
|
|
162
|
-
cancelable: false,
|
|
163
|
-
detail: { query, newQuery },
|
|
164
|
-
}));
|
|
165
|
-
}
|
|
166
|
-
registerComposeRequestModifier(keyId, appId) {
|
|
167
|
-
const modifierId = new Date().getTime() + '_' + appId + '_' + Math.random();
|
|
168
|
-
const detail = { modifierId };
|
|
169
|
-
if (this.isUsingSyncAPI()) {
|
|
170
|
-
detail.draftID = keyId;
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
detail.composeid = keyId;
|
|
174
|
-
}
|
|
175
|
-
document.dispatchEvent(new CustomEvent('inboxSDKregisterComposeRequestModifier', {
|
|
176
|
-
detail,
|
|
177
|
-
bubbles: false,
|
|
178
|
-
cancelable: false,
|
|
179
|
-
}));
|
|
180
|
-
return modifierId;
|
|
181
|
-
}
|
|
182
|
-
unregisterComposeRequestModifier(keyId, modifierId) {
|
|
183
|
-
document.dispatchEvent(new CustomEvent('inboxSDKunregisterComposeRequestModifier', {
|
|
184
|
-
detail: { keyId, modifierId },
|
|
185
|
-
bubbles: false,
|
|
186
|
-
cancelable: false,
|
|
187
|
-
}));
|
|
188
|
-
}
|
|
189
|
-
modifyComposeRequest(keyId, modifierId, composeParams) {
|
|
190
|
-
const detail = { modifierId, composeParams };
|
|
191
|
-
if (this.isUsingSyncAPI())
|
|
192
|
-
detail.draftID = keyId;
|
|
193
|
-
else
|
|
194
|
-
detail.composeid = keyId;
|
|
195
|
-
document.dispatchEvent(new CustomEvent('inboxSDKcomposeRequestModified', {
|
|
196
|
-
detail,
|
|
197
|
-
bubbles: false,
|
|
198
|
-
cancelable: false,
|
|
199
|
-
}));
|
|
200
|
-
}
|
|
201
|
-
}
|