@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,137 +0,0 @@
|
|
|
1
|
-
import asap from 'asap';
|
|
2
|
-
import once from 'lodash/once';
|
|
3
|
-
import * as Kefir from 'kefir';
|
|
4
|
-
import Logger from './logger';
|
|
5
|
-
export default class CommonPageCommunicator {
|
|
6
|
-
ajaxInterceptStream;
|
|
7
|
-
constructor() {
|
|
8
|
-
this.ajaxInterceptStream = Kefir.fromEvents(document, 'inboxSDKajaxIntercept').map((x) => x.detail);
|
|
9
|
-
}
|
|
10
|
-
getUserEmailAddress() {
|
|
11
|
-
const s = document.head.getAttribute('data-inboxsdk-user-email-address');
|
|
12
|
-
if (typeof s !== 'string')
|
|
13
|
-
throw new Error('should not happen');
|
|
14
|
-
return s;
|
|
15
|
-
}
|
|
16
|
-
getUserLanguage() {
|
|
17
|
-
const s = document.head.getAttribute('data-inboxsdk-user-language');
|
|
18
|
-
if (typeof s !== 'string')
|
|
19
|
-
throw new Error('should not happen');
|
|
20
|
-
return s;
|
|
21
|
-
}
|
|
22
|
-
getIkValue() {
|
|
23
|
-
const ownIk = document.head.getAttribute('data-inboxsdk-ik-value');
|
|
24
|
-
if (ownIk) {
|
|
25
|
-
return ownIk;
|
|
26
|
-
}
|
|
27
|
-
// For standalone windows.
|
|
28
|
-
if (window.opener) {
|
|
29
|
-
const openerIk = window.opener.document.head.getAttribute('data-inboxsdk-ik-value');
|
|
30
|
-
if (openerIk) {
|
|
31
|
-
return openerIk;
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
throw new Error("Failed to look up parent window 'ik' value");
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
throw new Error("Failed to look up 'ik' value");
|
|
38
|
-
}
|
|
39
|
-
isUsingSyncAPI() {
|
|
40
|
-
return false;
|
|
41
|
-
}
|
|
42
|
-
async getXsrfToken() {
|
|
43
|
-
const existingHeader = document.head.getAttribute('data-inboxsdk-xsrf-token');
|
|
44
|
-
if (existingHeader) {
|
|
45
|
-
return existingHeader;
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
await this.ajaxInterceptStream
|
|
49
|
-
.filter(({ type }) => type === 'xsrfTokenHeaderReceived')
|
|
50
|
-
.take(1)
|
|
51
|
-
.toPromise();
|
|
52
|
-
const newHeader = document.head.getAttribute('data-inboxsdk-xsrf-token');
|
|
53
|
-
if (!newHeader)
|
|
54
|
-
throw new Error('Failed to look up XSRF token');
|
|
55
|
-
return newHeader;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
async getBtaiHeader() {
|
|
59
|
-
const existingHeader = document.head.getAttribute('data-inboxsdk-btai-header');
|
|
60
|
-
if (existingHeader) {
|
|
61
|
-
return existingHeader;
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
await this.ajaxInterceptStream
|
|
65
|
-
.filter(({ type }) => type === 'btaiHeaderReceived')
|
|
66
|
-
.take(1)
|
|
67
|
-
.toPromise();
|
|
68
|
-
const newHeader = document.head.getAttribute('data-inboxsdk-btai-header');
|
|
69
|
-
if (!newHeader)
|
|
70
|
-
throw new Error('Failed to look up BTAI header');
|
|
71
|
-
return newHeader;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
resolveUrlRedirects(url) {
|
|
75
|
-
return this.pageAjax({ url, method: 'HEAD' }).then((result) => result.responseURL);
|
|
76
|
-
}
|
|
77
|
-
pageAjax(opts) {
|
|
78
|
-
const id = `${Date.now()}-${Math.random()}`;
|
|
79
|
-
const promise = Kefir.fromEvents(document, 'inboxSDKpageAjaxDone')
|
|
80
|
-
.filter((event) => event.detail && event.detail.id === id)
|
|
81
|
-
.take(1)
|
|
82
|
-
.flatMap((event) => {
|
|
83
|
-
if (event.detail.error) {
|
|
84
|
-
const err = Object.assign(new Error(event.detail.message || 'Connection error'), { status: event.detail.status });
|
|
85
|
-
if (event.detail.stack) {
|
|
86
|
-
err.stack = event.detail.stack;
|
|
87
|
-
}
|
|
88
|
-
return Kefir.constantError(err);
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
return Kefir.constant({
|
|
92
|
-
text: event.detail.text,
|
|
93
|
-
responseURL: event.detail.responseURL,
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
})
|
|
97
|
-
.toPromise();
|
|
98
|
-
document.dispatchEvent(new CustomEvent('inboxSDKpageAjax', {
|
|
99
|
-
bubbles: false,
|
|
100
|
-
cancelable: false,
|
|
101
|
-
detail: Object.assign({}, opts, { id }),
|
|
102
|
-
}));
|
|
103
|
-
return promise;
|
|
104
|
-
}
|
|
105
|
-
silenceGmailErrorsForAMoment() {
|
|
106
|
-
document.dispatchEvent(new CustomEvent('inboxSDKsilencePageErrors', {
|
|
107
|
-
bubbles: false,
|
|
108
|
-
cancelable: false,
|
|
109
|
-
detail: null,
|
|
110
|
-
}));
|
|
111
|
-
// create error here for stacktrace
|
|
112
|
-
const error = new Error('Forgot to unsilence page errors');
|
|
113
|
-
let unsilenced = false;
|
|
114
|
-
const unsilence = once(() => {
|
|
115
|
-
unsilenced = true;
|
|
116
|
-
document.dispatchEvent(new CustomEvent('inboxSDKunsilencePageErrors', {
|
|
117
|
-
bubbles: false,
|
|
118
|
-
cancelable: false,
|
|
119
|
-
detail: null,
|
|
120
|
-
}));
|
|
121
|
-
});
|
|
122
|
-
asap(() => {
|
|
123
|
-
if (!unsilenced) {
|
|
124
|
-
Logger.error(error);
|
|
125
|
-
unsilence();
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
return unsilence;
|
|
129
|
-
}
|
|
130
|
-
registerAllowedHashLinkStartTerm(term) {
|
|
131
|
-
document.dispatchEvent(new CustomEvent('inboxSDKregisterAllowedHashLinkStartTerm', {
|
|
132
|
-
bubbles: false,
|
|
133
|
-
cancelable: false,
|
|
134
|
-
detail: { term },
|
|
135
|
-
}));
|
|
136
|
-
}
|
|
137
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
export default function copyAndValidateAutocompleteResults(driver, results) {
|
|
2
|
-
if (!Array.isArray(results)) {
|
|
3
|
-
throw new Error('suggestions must be an array');
|
|
4
|
-
}
|
|
5
|
-
return results.map((result) => {
|
|
6
|
-
const resultCopy = { ...result };
|
|
7
|
-
if (typeof resultCopy.name !== 'string' &&
|
|
8
|
-
typeof resultCopy.nameHTML !== 'string') {
|
|
9
|
-
throw new Error('suggestion must have name or nameHTML property');
|
|
10
|
-
}
|
|
11
|
-
if (typeof resultCopy.routeName !== 'string' &&
|
|
12
|
-
typeof resultCopy.externalURL !== 'string' &&
|
|
13
|
-
typeof resultCopy.searchTerm !== 'string' &&
|
|
14
|
-
typeof resultCopy.onClick !== 'function') {
|
|
15
|
-
throw new Error('suggestion must have routeName, externalURL, ' +
|
|
16
|
-
'searchTerm, or onClick property');
|
|
17
|
-
}
|
|
18
|
-
if (typeof resultCopy.iconURL === 'string') {
|
|
19
|
-
const iconURL = resultCopy.iconURL;
|
|
20
|
-
driver
|
|
21
|
-
.getLogger()
|
|
22
|
-
.deprecationWarning('AutocompleteSearchResult "iconURL" property', 'AutocompleteSearchResult.iconUrl');
|
|
23
|
-
if (!resultCopy.iconUrl) {
|
|
24
|
-
if (driver.getOpts().REQUESTED_API_VERSION === 1) {
|
|
25
|
-
resultCopy.iconUrl = iconURL;
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
console.error('Support for iconURL property was dropped after API version 1');
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
delete resultCopy.iconURL;
|
|
32
|
-
}
|
|
33
|
-
return resultCopy;
|
|
34
|
-
});
|
|
35
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import * as Kefir from 'kefir';
|
|
2
|
-
const requestIdleCallback = global.requestIdleCallback || ((cb) => setTimeout(cb, 0));
|
|
3
|
-
const cancelIdleCallback = global.cancelIdleCallback || clearTimeout;
|
|
4
|
-
// Returns a stream that emits a value using requestIdleCallback. Works well
|
|
5
|
-
// with flatmap.
|
|
6
|
-
export default function delayIdle(timeout, value) {
|
|
7
|
-
return Kefir.stream((emitter) => {
|
|
8
|
-
const t = requestIdleCallback(() => {
|
|
9
|
-
emitter.emit(value);
|
|
10
|
-
emitter.end();
|
|
11
|
-
}, timeout == null ? null : { timeout });
|
|
12
|
-
return () => {
|
|
13
|
-
cancelIdleCallback(t);
|
|
14
|
-
};
|
|
15
|
-
});
|
|
16
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import Kefir from 'kefir';
|
|
2
|
-
export default function blockAndReemiteKeyboardEvents(element) {
|
|
3
|
-
// Gmail stops propagation of keyboard events from escaping
|
|
4
|
-
// a specific compose window, which prevents any React components rendered
|
|
5
|
-
// in the compose window's subtree from getting them (since React adds
|
|
6
|
-
// a single event listener on the document). By stopping propagation of
|
|
7
|
-
// the original event and reemiting it on the document, we preserve
|
|
8
|
-
// exisitng behavior while giving React a chance to hear it.
|
|
9
|
-
Kefir.merge([
|
|
10
|
-
Kefir.fromEvents(element, 'keypress'),
|
|
11
|
-
Kefir.fromEvents(element, 'keydown'),
|
|
12
|
-
Kefir.fromEvents(element, 'keyup'),
|
|
13
|
-
]).onValue((event) => {
|
|
14
|
-
event.stopPropagation();
|
|
15
|
-
const fakeEvent = new KeyboardEvent(event.type, { bubbles: true });
|
|
16
|
-
Object.defineProperties(fakeEvent, {
|
|
17
|
-
cancelable: { value: event.cancelable },
|
|
18
|
-
bubbles: { value: event.bubbles },
|
|
19
|
-
target: { value: event.target },
|
|
20
|
-
detail: { value: event.detail },
|
|
21
|
-
key: { value: event.key },
|
|
22
|
-
code: { value: event.code },
|
|
23
|
-
location: { value: event.location },
|
|
24
|
-
ctrlKey: { value: event.ctrlKey },
|
|
25
|
-
shiftKey: { value: event.shiftKey },
|
|
26
|
-
altKey: { value: event.altKey },
|
|
27
|
-
metaKey: { value: event.metaKey },
|
|
28
|
-
repeat: { value: event.repeat },
|
|
29
|
-
isComposing: { value: event.isComposing },
|
|
30
|
-
charCode: { value: event.charCode },
|
|
31
|
-
keyCode: { value: event.keyCode },
|
|
32
|
-
which: { value: event.which },
|
|
33
|
-
});
|
|
34
|
-
document.dispatchEvent(fakeEvent);
|
|
35
|
-
});
|
|
36
|
-
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export var CustomDomEvent;
|
|
2
|
-
(function (CustomDomEvent) {
|
|
3
|
-
CustomDomEvent["tellMeThisThreadIdByDatabase"] = "inboxSDKtellMeThisThreadIdByDatabase";
|
|
4
|
-
CustomDomEvent["tellMeThisThreadIdByClick"] = "inboxSDKtellMeThisThreadIdByClick";
|
|
5
|
-
})(CustomDomEvent || (CustomDomEvent = {}));
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import * as Kefir from 'kefir';
|
|
2
|
-
import kefirBus from 'kefir-bus';
|
|
3
|
-
export default class GenericButtonView {
|
|
4
|
-
_eventStream = kefirBus();
|
|
5
|
-
_element;
|
|
6
|
-
constructor(element) {
|
|
7
|
-
this._element = element;
|
|
8
|
-
this._setupEventStream();
|
|
9
|
-
}
|
|
10
|
-
destroy() {
|
|
11
|
-
this._element.remove();
|
|
12
|
-
this._eventStream.end();
|
|
13
|
-
}
|
|
14
|
-
getElement() {
|
|
15
|
-
return this._element;
|
|
16
|
-
}
|
|
17
|
-
getEventStream() {
|
|
18
|
-
return this._eventStream;
|
|
19
|
-
}
|
|
20
|
-
activate() {
|
|
21
|
-
/* do nothing */
|
|
22
|
-
}
|
|
23
|
-
deactivate() {
|
|
24
|
-
/* do nothing */
|
|
25
|
-
}
|
|
26
|
-
_setupEventStream() {
|
|
27
|
-
const clickEventStream = Kefir.fromEvents(this._element, 'click');
|
|
28
|
-
clickEventStream.onValue((event) => {
|
|
29
|
-
event.stopPropagation();
|
|
30
|
-
event.preventDefault();
|
|
31
|
-
});
|
|
32
|
-
this._eventStream.plug(clickEventStream.map((event) => {
|
|
33
|
-
return {
|
|
34
|
-
eventName: 'click',
|
|
35
|
-
domEvent: event,
|
|
36
|
-
};
|
|
37
|
-
}));
|
|
38
|
-
}
|
|
39
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
// Use insert-element-in-order instead of this!
|
|
2
|
-
export default function getInsertBeforeElement(checkElement, childElements, dataAttributes) {
|
|
3
|
-
const checkValues = {};
|
|
4
|
-
dataAttributes.forEach(function (attribute) {
|
|
5
|
-
const stringValue = checkElement.getAttribute(attribute);
|
|
6
|
-
checkValues[attribute] =
|
|
7
|
-
stringValue == null ? null : parseIfNumber(stringValue) ?? stringValue;
|
|
8
|
-
});
|
|
9
|
-
for (let ii = 0; ii < childElements.length; ii++) {
|
|
10
|
-
const child = childElements[ii];
|
|
11
|
-
if (_isChildAfter(checkValues, child, dataAttributes)) {
|
|
12
|
-
return child;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
return null;
|
|
16
|
-
}
|
|
17
|
-
function _isChildAfter(checkValues, child, dataAttributes) {
|
|
18
|
-
for (let ii = 0; ii < dataAttributes.length; ii++) {
|
|
19
|
-
const attribute = dataAttributes[ii];
|
|
20
|
-
const stringValue = child.getAttribute(attribute);
|
|
21
|
-
const value = stringValue == null ? null : parseIfNumber(stringValue) ?? stringValue;
|
|
22
|
-
if (value > checkValues[attribute]) {
|
|
23
|
-
return true;
|
|
24
|
-
}
|
|
25
|
-
else if (value < checkValues[attribute]) {
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
return false;
|
|
30
|
-
}
|
|
31
|
-
function parseIfNumber(value) {
|
|
32
|
-
const n = parseFloat(value);
|
|
33
|
-
if (!isNaN(n) && isFinite(n)) {
|
|
34
|
-
return n;
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
return null;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import t from 'transducers.js';
|
|
2
|
-
function isRangeEmpty(range) {
|
|
3
|
-
return (range.startContainer === range.endContainer &&
|
|
4
|
-
range.startOffset === range.endOffset);
|
|
5
|
-
}
|
|
6
|
-
// returns true if either end appears to be inside the element
|
|
7
|
-
function isRangeInElement(range, el) {
|
|
8
|
-
return el.contains(range.startContainer) || el.contains(range.endContainer);
|
|
9
|
-
}
|
|
10
|
-
function isRangeSuitable(range, el) {
|
|
11
|
-
return !isRangeEmpty(range) && isRangeInElement(range, el);
|
|
12
|
-
}
|
|
13
|
-
export function getSelectedTextInElement(element, lastRange) {
|
|
14
|
-
const selection = document.getSelection();
|
|
15
|
-
return t.toArray([
|
|
16
|
-
selection && selection.rangeCount ? selection.getRangeAt(0) : null,
|
|
17
|
-
lastRange,
|
|
18
|
-
], t.compose(t.keep(), t.filter((range) => isRangeSuitable(range, element)), t.map((range) => range.toString()), t.take(1)))[0];
|
|
19
|
-
}
|
|
20
|
-
export function getSelectedHTMLInElement(element, lastRange) {
|
|
21
|
-
const selection = document.getSelection();
|
|
22
|
-
return t.toArray([
|
|
23
|
-
selection && selection.rangeCount ? selection.getRangeAt(0) : null,
|
|
24
|
-
lastRange,
|
|
25
|
-
], t.compose(t.keep(), t.filter((range) => isRangeSuitable(range, element)), t.map((range) => {
|
|
26
|
-
const div = document.createElement('div');
|
|
27
|
-
div.appendChild(range.cloneContents());
|
|
28
|
-
return div.innerHTML;
|
|
29
|
-
}), t.take(1)))[0];
|
|
30
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import t from 'transducers.js';
|
|
2
|
-
const DEFAULT_ORDER_ATTRS = [
|
|
3
|
-
'data-group-order-hint',
|
|
4
|
-
'data-order-hint',
|
|
5
|
-
'data-insertion-order-hint',
|
|
6
|
-
];
|
|
7
|
-
export default function insertElementInOrder(container, el, orderAttrs = DEFAULT_ORDER_ATTRS, insertBeforeNonSdk = false) {
|
|
8
|
-
// get the first element with higher order hints
|
|
9
|
-
const insertBeforeElement = t.toArray(Array.prototype.slice.call(container.children), t.compose(t.filter((cel) => {
|
|
10
|
-
let hadAnyOrderAttrs = false;
|
|
11
|
-
for (const name of orderAttrs) {
|
|
12
|
-
const attr = el.getAttribute(name);
|
|
13
|
-
const cattr = cel.getAttribute(name);
|
|
14
|
-
if (attr == null || cattr == null)
|
|
15
|
-
continue;
|
|
16
|
-
hadAnyOrderAttrs = true;
|
|
17
|
-
let comparison;
|
|
18
|
-
if (!isNaN(parseFloat(attr)) && !isNaN(parseFloat(cattr))) {
|
|
19
|
-
comparison = parseFloat(cattr) - parseFloat(attr);
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
comparison = cattr.localeCompare(attr);
|
|
23
|
-
}
|
|
24
|
-
if (comparison > 0)
|
|
25
|
-
return true;
|
|
26
|
-
if (comparison < 0)
|
|
27
|
-
return false;
|
|
28
|
-
// If the elements had equal hint values, then check the next hint.
|
|
29
|
-
}
|
|
30
|
-
if (insertBeforeNonSdk) {
|
|
31
|
-
return !hadAnyOrderAttrs;
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
return false;
|
|
35
|
-
}
|
|
36
|
-
}), t.take(1)))[0];
|
|
37
|
-
container.insertBefore(el, insertBeforeElement);
|
|
38
|
-
}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import * as ud from 'ud';
|
|
2
|
-
import Kefir from 'kefir';
|
|
3
|
-
var insertHTMLatCursor = ud.defn(module, function insertHTMLatCursor(element, html, oldRange) {
|
|
4
|
-
element.focus();
|
|
5
|
-
if (element instanceof HTMLTextAreaElement) {
|
|
6
|
-
var oldStart = element.selectionStart;
|
|
7
|
-
// first delete selected range
|
|
8
|
-
if (element.selectionStart < element.selectionEnd) {
|
|
9
|
-
element.value =
|
|
10
|
-
element.value.substring(0, element.selectionStart) +
|
|
11
|
-
element.value.substring(element.selectionEnd);
|
|
12
|
-
}
|
|
13
|
-
// insert into position
|
|
14
|
-
element.value =
|
|
15
|
-
element.value.substring(0, oldStart) +
|
|
16
|
-
html +
|
|
17
|
-
element.value.substring(oldStart);
|
|
18
|
-
// set caret
|
|
19
|
-
element.selectionStart = oldStart + html.length;
|
|
20
|
-
element.selectionEnd = oldStart + html.length;
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
var editable = null;
|
|
24
|
-
if (element.getSelection) {
|
|
25
|
-
editable = element;
|
|
26
|
-
}
|
|
27
|
-
else if (element.ownerDocument &&
|
|
28
|
-
element.ownerDocument.getSelection) {
|
|
29
|
-
editable = element.ownerDocument;
|
|
30
|
-
}
|
|
31
|
-
if (editable) {
|
|
32
|
-
var sel = editable.getSelection();
|
|
33
|
-
if (sel.getRangeAt && sel.rangeCount) {
|
|
34
|
-
var range = oldRange || sel.getRangeAt(0);
|
|
35
|
-
range.deleteContents();
|
|
36
|
-
var frag;
|
|
37
|
-
if (html instanceof DocumentFragment) {
|
|
38
|
-
frag = html;
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
frag = document.createDocumentFragment();
|
|
42
|
-
if (html instanceof HTMLElement) {
|
|
43
|
-
frag.appendChild(html);
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
var el = document.createElement('div');
|
|
47
|
-
el.innerHTML = html;
|
|
48
|
-
var node;
|
|
49
|
-
while ((node = el.firstChild)) {
|
|
50
|
-
frag.appendChild(node);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
var firstChild = frag.firstElementChild;
|
|
55
|
-
range.insertNode(frag);
|
|
56
|
-
// Simulate a mousedown event to kill any existing focus-fixers.
|
|
57
|
-
var event = document.createEvent('MouseEvents');
|
|
58
|
-
event.initMouseEvent('mousedown', false, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
|
|
59
|
-
event.preventDefault();
|
|
60
|
-
element.dispatchEvent(event);
|
|
61
|
-
// Preserve the cursor position
|
|
62
|
-
range.collapse(false);
|
|
63
|
-
sel.removeAllRanges();
|
|
64
|
-
sel.addRange(range);
|
|
65
|
-
var nextUserCursorMove = Kefir.merge([
|
|
66
|
-
Kefir.fromEvents(element, 'mousedown'),
|
|
67
|
-
Kefir.fromEvents(element, 'keypress'),
|
|
68
|
-
]);
|
|
69
|
-
// Whenever the body element gets focus, manually make sure the cursor
|
|
70
|
-
// is in the right position, because Chrome likes to put it in the
|
|
71
|
-
// previous location instead because it hates us.
|
|
72
|
-
Kefir.fromEvents(element, 'focus')
|
|
73
|
-
.takeUntilBy(nextUserCursorMove)
|
|
74
|
-
.onValue(function () {
|
|
75
|
-
sel.removeAllRanges();
|
|
76
|
-
sel.addRange(range);
|
|
77
|
-
});
|
|
78
|
-
return firstChild;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
export default insertHTMLatCursor;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export default function isNodeInRange(node, range) {
|
|
2
|
-
if (!range) {
|
|
3
|
-
return false;
|
|
4
|
-
}
|
|
5
|
-
if (!node) {
|
|
6
|
-
return false;
|
|
7
|
-
}
|
|
8
|
-
const newRange = document.createRange();
|
|
9
|
-
newRange.selectNode(node);
|
|
10
|
-
return (newRange.compareBoundaryPoints(Range.START_TO_END, range) < 1 &&
|
|
11
|
-
range.compareBoundaryPoints(Range.START_TO_END, newRange) < 1);
|
|
12
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import * as Kefir from 'kefir';
|
|
2
|
-
import Combokeys from 'combokeys-capture';
|
|
3
|
-
const combokeys = typeof document !== 'undefined' && new Combokeys(document.body, true);
|
|
4
|
-
export default function keyboardShortcutStream(chord) {
|
|
5
|
-
return Kefir.stream((emitter) => {
|
|
6
|
-
return (combokeys &&
|
|
7
|
-
combokeys.bind(chord, function (domEvent) {
|
|
8
|
-
emitter.emit(domEvent);
|
|
9
|
-
return false;
|
|
10
|
-
}, 'keydown'));
|
|
11
|
-
});
|
|
12
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import asap from 'asap';
|
|
2
|
-
import * as Kefir from 'kefir';
|
|
3
|
-
import kefirStopper from 'kefir-stopper';
|
|
4
|
-
// Emits events whenever the given element has any children added or removed.
|
|
5
|
-
// Also when first listened to, it emits events for existing children.
|
|
6
|
-
export default function makeElementChildStream(element) {
|
|
7
|
-
if (!element || !element.nodeType) {
|
|
8
|
-
throw new Error('Expected element, got ' + String(element));
|
|
9
|
-
}
|
|
10
|
-
return Kefir.stream((emitter) => {
|
|
11
|
-
const removalStreams = new Map();
|
|
12
|
-
let ended = false;
|
|
13
|
-
function newEl(el) {
|
|
14
|
-
if (el.nodeType !== 1)
|
|
15
|
-
return;
|
|
16
|
-
if (removalStreams.has(el)) {
|
|
17
|
-
throwLater(new Error('Already had removalStream for element with class ' + el.className));
|
|
18
|
-
}
|
|
19
|
-
const removalStream = kefirStopper();
|
|
20
|
-
removalStreams.set(el, removalStream);
|
|
21
|
-
try {
|
|
22
|
-
emitter.emit({ el, removalStream });
|
|
23
|
-
}
|
|
24
|
-
catch (err) {
|
|
25
|
-
throwLater(err);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
function removedEl(el) {
|
|
29
|
-
if (el.nodeType !== 1)
|
|
30
|
-
return;
|
|
31
|
-
const removalStream = removalStreams.get(el);
|
|
32
|
-
removalStreams.delete(el);
|
|
33
|
-
if (removalStream) {
|
|
34
|
-
try {
|
|
35
|
-
removalStream.destroy();
|
|
36
|
-
}
|
|
37
|
-
catch (err) {
|
|
38
|
-
throwLater(err);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
throwLater(new Error('Could not find removalStream for element with class ' +
|
|
43
|
-
el.className));
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
const observer = new MutationObserver(function (mutations) {
|
|
47
|
-
mutations.forEach((mutation) => {
|
|
48
|
-
Array.prototype.forEach.call(mutation.addedNodes, newEl);
|
|
49
|
-
Array.prototype.forEach.call(mutation.removedNodes, removedEl);
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
// We don't want to emit the start children synchronously before all
|
|
53
|
-
// stream listeners are subscribed.
|
|
54
|
-
asap(() => {
|
|
55
|
-
if (!ended) {
|
|
56
|
-
observer.observe(element, { childList: true });
|
|
57
|
-
// Clone child list first because it can change
|
|
58
|
-
Array.prototype.slice.call(element.children).forEach(newEl);
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
return function () {
|
|
62
|
-
ended = true;
|
|
63
|
-
observer.disconnect();
|
|
64
|
-
asap(() => {
|
|
65
|
-
removalStreams.forEach((removalStream) => {
|
|
66
|
-
removalStream.destroy();
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
};
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
// Throw error at a later time where our error-logger can pick it up. This
|
|
73
|
-
// avoids having this module depend on logger.js which we can't import because
|
|
74
|
-
// this module is used in the injected script too.
|
|
75
|
-
function throwLater(err) {
|
|
76
|
-
setTimeout(() => {
|
|
77
|
-
throw err;
|
|
78
|
-
}, 1);
|
|
79
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import * as Kefir from 'kefir';
|
|
2
|
-
import StopperPool from '../stopper-pool';
|
|
3
|
-
import delayAsap from '../delay-asap';
|
|
4
|
-
export default function makeElementStreamMerger() {
|
|
5
|
-
const knownElementStopperPools = new Map();
|
|
6
|
-
return (event) => {
|
|
7
|
-
let stopperPool = knownElementStopperPools.get(event.el);
|
|
8
|
-
if (stopperPool) {
|
|
9
|
-
if (stopperPool.getSize() > 1) {
|
|
10
|
-
console.warn('element is part of multiple element streams', stopperPool.getSize(), event.el);
|
|
11
|
-
}
|
|
12
|
-
stopperPool.add(event.removalStream.flatMap(delayAsap));
|
|
13
|
-
return Kefir.never();
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
stopperPool = new StopperPool(event.removalStream.flatMap(delayAsap));
|
|
17
|
-
stopperPool.stream.onValue(function () {
|
|
18
|
-
knownElementStopperPools.delete(event.el);
|
|
19
|
-
});
|
|
20
|
-
knownElementStopperPools.set(event.el, stopperPool);
|
|
21
|
-
return Kefir.constant({
|
|
22
|
-
el: event.el,
|
|
23
|
-
removalStream: stopperPool.stream,
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import * as Kefir from 'kefir';
|
|
2
|
-
export default function makeElementViewStream(viewFn) {
|
|
3
|
-
return (event) => {
|
|
4
|
-
const view = viewFn(event.el);
|
|
5
|
-
if (view) {
|
|
6
|
-
event.removalStream.take(1).onValue(() => {
|
|
7
|
-
view.destroy();
|
|
8
|
-
});
|
|
9
|
-
return Kefir.constant(view);
|
|
10
|
-
}
|
|
11
|
-
else {
|
|
12
|
-
return Kefir.never();
|
|
13
|
-
}
|
|
14
|
-
};
|
|
15
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import * as Kefir from 'kefir';
|
|
2
|
-
// Creates a mutation observer watching the given element and emits the events in a stream.
|
|
3
|
-
export default function makeMutationObserverChunkedStream(element, options) {
|
|
4
|
-
return Kefir.stream((emitter) => {
|
|
5
|
-
const observer = new MutationObserver((mutations) => {
|
|
6
|
-
// Work around Safari bug where sometimes mutations is an instance of a
|
|
7
|
-
// different context's Array.
|
|
8
|
-
emitter.emit(mutations instanceof Array ? mutations : Array.from(mutations));
|
|
9
|
-
});
|
|
10
|
-
observer.observe(element, options);
|
|
11
|
-
return () => {
|
|
12
|
-
observer.disconnect();
|
|
13
|
-
};
|
|
14
|
-
});
|
|
15
|
-
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import makeMutationObserverChunkedStream from './make-mutation-observer-chunked-stream';
|
|
2
|
-
// Creates a mutation observer watching the given element and emits the events in a stream.
|
|
3
|
-
export default function makeMutationObserverStream(element, options) {
|
|
4
|
-
return makeMutationObserverChunkedStream(element, options).flatten();
|
|
5
|
-
}
|