@inboxsdk/core 1.0.5 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/inboxsdk.js +25 -192
  2. package/inboxsdk.js.map +1 -1
  3. package/package.json +1 -1
  4. package/pageWorld.js +3 -47
  5. package/pageWorld.js.map +1 -1
  6. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.d.ts +3 -0
  7. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.d.ts.map +1 -0
  8. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.js +3 -8
  9. package/src/inboxsdk-js/inboxsdk-NONREMOTE.d.ts +3 -0
  10. package/src/inboxsdk-js/inboxsdk-NONREMOTE.d.ts.map +1 -0
  11. package/src/inboxsdk-js/inboxsdk-NONREMOTE.js +4 -6
  12. package/src/inboxsdk-js/inboxsdk-REMOTE.d.ts +3 -0
  13. package/src/inboxsdk-js/inboxsdk-REMOTE.d.ts.map +1 -0
  14. package/src/inboxsdk-js/inboxsdk-REMOTE.js +2 -5
  15. package/src/inboxsdk-js/inboxsdk-TEST.d.ts +3 -0
  16. package/src/inboxsdk-js/inboxsdk-TEST.d.ts.map +1 -0
  17. package/src/inboxsdk-js/inboxsdk-TEST.js +5 -6
  18. package/src/inboxsdk-js/inboxsdk.d.ts +8 -0
  19. package/src/inboxsdk-js/inboxsdk.d.ts.map +1 -0
  20. package/src/inboxsdk-js/inboxsdk.js +22 -32
  21. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.d.ts +2 -0
  22. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.d.ts.map +1 -0
  23. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.js +14 -16
  24. package/src/inboxsdk-js/loading/platform-implementation-loader.d.ts +1 -1
  25. package/src/inboxsdk-js/loading/platform-implementation-loader.d.ts.map +1 -1
  26. package/src/injected-js/gmail/setup-gmail-interceptor.js +7 -14
  27. package/src/injected-js/main.js +0 -9
  28. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts.map +1 -1
  29. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +0 -2
  30. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.js +2 -1
  31. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +1 -2
  32. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.test.js +10 -1
  33. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +39 -35
  34. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +1 -2
  35. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +2 -3
  36. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +13 -14
  37. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +1 -2
  38. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +2 -2
  39. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +3 -4
  40. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +7 -8
  41. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +28 -31
  42. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +4 -5
  43. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +2 -3
  44. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.js +1 -2
  45. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.test.js +10 -0
  46. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +10 -11
  47. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +4 -5
  48. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +3 -4
  49. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +2 -3
  50. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +2 -3
  51. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +2 -3
  52. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +5 -6
  53. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +1 -2
  54. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +4 -5
  55. package/src/platform-implementation-js/lib/idMap.d.ts +1 -2
  56. package/src/platform-implementation-js/lib/idMap.d.ts.map +1 -1
  57. package/src/platform-implementation-js/lib/idMap.js +4 -44
  58. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.d.ts.map +1 -1
  59. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.js +3 -4
  60. package/src/platform-implementation-js/lib/react/ElementContainer.js +3 -7
  61. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.d.ts +3 -0
  62. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.d.ts.map +1 -0
  63. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +5 -9
  64. package/src/platform-implementation-js/main.d.ts +5 -0
  65. package/src/platform-implementation-js/main.d.ts.map +1 -0
  66. package/src/platform-implementation-js/main.js +38 -61
  67. package/src/platform-implementation-js/namespaces/conversations.js +2 -3
  68. package/src/platform-implementation-js/namespaces/lists.js +1 -2
  69. package/src/platform-implementation-js/namespaces/nav-menu.js +2 -3
  70. package/src/platform-implementation-js/namespaces/router.js +3 -4
  71. package/src/platform-implementation-js/namespaces/toolbars.js +1 -2
  72. package/src/platform-implementation-js/platform-implementation.d.ts +0 -3
  73. package/src/platform-implementation-js/platform-implementation.js +1 -11
  74. package/src/platform-implementation-js/views/app-menu-item-view.js +2 -1
  75. package/src/platform-implementation-js/views/collapsible-panel-view.js +2 -1
  76. package/src/platform-implementation-js/views/content-panel-view.js +1 -2
  77. package/src/platform-implementation-js/views/conversations/custom-message-view.js +3 -4
  78. package/src/platform-implementation-js/views/conversations/message-view.js +1 -2
  79. package/src/platform-implementation-js/views/conversations/thread-view.js +1 -2
  80. package/src/platform-implementation-js/views/nav-item-view.js +1 -2
  81. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +2 -3
  82. package/src/platform-implementation-js/widgets/drawer-view.js +1 -2
  83. package/src/platform-implementation-js/widgets/modal-view.js +1 -2
  84. package/src/platform-implementation-js/widgets/mole-view.js +1 -2
  85. package/src/injected-js/inbox/setupAjaxInterceptor.js +0 -211
  86. package/src/injected-js/inbox/setupClickAndGetNewIframeSrc.js +0 -67
  87. package/src/injected-js/inbox/setupComposeViewDraftIDFinder.js +0 -35
  88. package/src/injected-js/inbox/setupInboxFakeWindowResizeListener.js +0 -29
  89. package/src/platform-implementation-js/dom-driver/gmail/custom-style.d.ts +0 -2
  90. package/src/platform-implementation-js/dom-driver/gmail/custom-style.d.ts.map +0 -1
  91. package/src/platform-implementation-js/dom-driver/gmail/custom-style.js +0 -17
  92. package/src/platform-implementation-js/dom-driver/inbox/__mocks__/getSidebarClassnames.js +0 -13
  93. package/src/platform-implementation-js/dom-driver/inbox/addNavItem.js +0 -38
  94. package/src/platform-implementation-js/dom-driver/inbox/addRecipientRow.js +0 -55
  95. package/src/platform-implementation-js/dom-driver/inbox/createLink.js +0 -19
  96. package/src/platform-implementation-js/dom-driver/inbox/createLink.test.js +0 -27
  97. package/src/platform-implementation-js/dom-driver/inbox/custom-style.js +0 -23
  98. package/src/platform-implementation-js/dom-driver/inbox/detection/appToolbarLocation/parser.js +0 -43
  99. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentCard/parser.js +0 -34
  100. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentOverlay/parser.js +0 -53
  101. package/src/platform-implementation-js/dom-driver/inbox/detection/chatSidebar/parser.js +0 -31
  102. package/src/platform-implementation-js/dom-driver/inbox/detection/compose/parser.js +0 -103
  103. package/src/platform-implementation-js/dom-driver/inbox/detection/message/parser.js +0 -69
  104. package/src/platform-implementation-js/dom-driver/inbox/detection/nativeDrawer/parser.js +0 -32
  105. package/src/platform-implementation-js/dom-driver/inbox/detection/searchBar/parser.js +0 -28
  106. package/src/platform-implementation-js/dom-driver/inbox/detection/thread/parser.js +0 -49
  107. package/src/platform-implementation-js/dom-driver/inbox/detection/thread-row/parser.js +0 -100
  108. package/src/platform-implementation-js/dom-driver/inbox/getComposeViewDriverLiveSet.js +0 -99
  109. package/src/platform-implementation-js/dom-driver/inbox/getInboxMessageIdForInboxThreadId.js +0 -36
  110. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.js +0 -114
  111. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.test.js +0 -73
  112. package/src/platform-implementation-js/dom-driver/inbox/gotoView.js +0 -39
  113. package/src/platform-implementation-js/dom-driver/inbox/gotoView.test.js +0 -28
  114. package/src/platform-implementation-js/dom-driver/inbox/inbox-butter-bar-driver.js +0 -148
  115. package/src/platform-implementation-js/dom-driver/inbox/inbox-driver.js +0 -866
  116. package/src/platform-implementation-js/dom-driver/inbox/inbox-page-communicator.js +0 -62
  117. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.js +0 -12
  118. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.test.js +0 -18
  119. package/src/platform-implementation-js/dom-driver/inbox/makePageParserTree.js +0 -33
  120. package/src/platform-implementation-js/dom-driver/inbox/pageParserOptions.js +0 -265
  121. package/src/platform-implementation-js/dom-driver/inbox/registerSearchSuggestionsProvider.js +0 -301
  122. package/src/platform-implementation-js/dom-driver/inbox/setupCustomAutocompleteSelectionHandling.js +0 -183
  123. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.js +0 -64
  124. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.test.js +0 -72
  125. package/src/platform-implementation-js/dom-driver/inbox/views/InboxLabelView.js +0 -78
  126. package/src/platform-implementation-js/dom-driver/inbox/views/InboxMoleViewDriver.js +0 -297
  127. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarButtonView.js +0 -92
  128. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarView.js +0 -54
  129. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-sidebar-view.js +0 -272
  130. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-button-view.js +0 -161
  131. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-tooltip-view.js +0 -58
  132. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-card-view.js +0 -198
  133. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-overlay-view.js +0 -90
  134. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-chat-sidebar-view.js +0 -46
  135. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-button-view.js +0 -116
  136. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-view.js +0 -843
  137. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.js +0 -76
  138. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.test.js +0 -31
  139. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dropdown-view.js +0 -25
  140. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dummy-route-view.js +0 -64
  141. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-message-view.js +0 -275
  142. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-modal-view.js +0 -113
  143. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-route-view.js +0 -97
  144. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-row-view.js +0 -316
  145. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.js +0 -219
  146. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.test.js +0 -171
  147. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-tooltip-view.js +0 -128
  148. package/src/platform-implementation-js/dom-driver/inbox/views/inboxNavItemView.js +0 -312
  149. package/src/platform-implementation-js/dom-driver/inbox/waitForAnimationClickBlockerGone.js +0 -26
  150. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.d.ts +0 -2
  151. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.d.ts.map +0 -1
  152. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.js +0 -4
  153. package/src/platform-implementation-js/lib/shared-style.js +0 -23
  154. package/src/types/gulp-add-src.d.ts +0 -7
@@ -1,866 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _once = _interopRequireDefault(require("lodash/once"));
10
- var _constant = _interopRequireDefault(require("lodash/constant"));
11
- var _includes = _interopRequireDefault(require("lodash/includes"));
12
- var _autoHtml = _interopRequireDefault(require("auto-html"));
13
- var _kefir = _interopRequireDefault(require("kefir"));
14
- var _kefirBus = _interopRequireDefault(require("kefir-bus"));
15
- var _kefirStopper = _interopRequireDefault(require("kefir-stopper"));
16
- var _ud = require("ud");
17
- var _liveSet = _interopRequireDefault(require("live-set"));
18
- var _filter = _interopRequireDefault(require("live-set/filter"));
19
- var _merge = _interopRequireDefault(require("live-set/merge"));
20
- var _flatMap = _interopRequireDefault(require("live-set/flatMap"));
21
- var _mapWithRemoval = _interopRequireDefault(require("live-set/mapWithRemoval"));
22
- var _toValueObservable = _interopRequireDefault(require("live-set/toValueObservable"));
23
- var _makePageParserTree = _interopRequireDefault(require("./makePageParserTree"));
24
- var _logger = _interopRequireDefault(require("../../lib/logger"));
25
- var _toItemWithLifetimeStream = _interopRequireDefault(require("../../lib/toItemWithLifetimeStream"));
26
- var _injectScript = require("../../lib/inject-script");
27
- var _fromEventTargetCapture = _interopRequireDefault(require("../../lib/from-event-target-capture"));
28
- var _bimapcache = _interopRequireDefault(require("bimapcache"));
29
- var _getInboxMessageIdForInboxThreadId = _interopRequireDefault(require("./getInboxMessageIdForInboxThreadId"));
30
- var _getGmailMessageIdForSyncMessageId = _interopRequireDefault(require("../../driver-common/getGmailMessageIdForSyncMessageId"));
31
- var _getThreadIdFromMessageId = _interopRequireDefault(require("../../driver-common/getThreadIdFromMessageId"));
32
- var _gmailAjax = _interopRequireDefault(require("../../driver-common/gmailAjax"));
33
- var _getAccountUrlPart = _interopRequireDefault(require("../../driver-common/getAccountUrlPart"));
34
- var _simulateKey = _interopRequireDefault(require("../../lib/dom/simulate-key"));
35
- var _setCss = _interopRequireDefault(require("../../lib/dom/set-css"));
36
- var _querySelectorOrFail = _interopRequireDefault(require("../../lib/dom/querySelectorOrFail"));
37
- var _customStyle = _interopRequireDefault(require("./custom-style"));
38
- var _censorHTMLstring = _interopRequireDefault(require("../../../common/censorHTMLstring"));
39
- var _censorHTMLtree = _interopRequireDefault(require("../../../common/censorHTMLtree"));
40
- var _getComposeViewDriverLiveSet = _interopRequireDefault(require("./getComposeViewDriverLiveSet"));
41
- var _addNavItem = _interopRequireDefault(require("./addNavItem"));
42
- var _querySelectorOne = _interopRequireDefault(require("../../lib/dom/querySelectorOne"));
43
- var _idMap = _interopRequireDefault(require("../../lib/idMap"));
44
- var _makeMutationObserverChunkedStream = _interopRequireDefault(require("../../lib/dom/make-mutation-observer-chunked-stream"));
45
- var _getSidebarClassnames = _interopRequireDefault(require("./getSidebarClassnames"));
46
- var _inboxButterBarDriver = _interopRequireDefault(require("./inbox-butter-bar-driver"));
47
- var _createLink = _interopRequireDefault(require("./createLink"));
48
- var _gotoView = _interopRequireDefault(require("./gotoView"));
49
- var _parser = _interopRequireDefault(require("./detection/thread/parser"));
50
- var _parser2 = _interopRequireDefault(require("./detection/thread-row/parser"));
51
- var _parser3 = _interopRequireDefault(require("./detection/message/parser"));
52
- var _parser4 = _interopRequireDefault(require("./detection/attachmentCard/parser"));
53
- var _parser5 = _interopRequireDefault(require("./detection/attachmentOverlay/parser"));
54
- var _parser6 = _interopRequireDefault(require("./detection/nativeDrawer/parser"));
55
- var _parser7 = _interopRequireDefault(require("./detection/searchBar/parser"));
56
- var _parser8 = _interopRequireDefault(require("./detection/chatSidebar/parser"));
57
- var _parser9 = _interopRequireDefault(require("./detection/appToolbarLocation/parser"));
58
- var _setupRouteViewDriverStream = _interopRequireDefault(require("./setupRouteViewDriverStream"));
59
- var _inboxThreadView = _interopRequireDefault(require("./views/inbox-thread-view"));
60
- var _inboxThreadRowView = _interopRequireDefault(require("./views/inbox-thread-row-view"));
61
- var _inboxMessageView = _interopRequireDefault(require("./views/inbox-message-view"));
62
- var _inboxAttachmentCardView = _interopRequireDefault(require("./views/inbox-attachment-card-view"));
63
- var _inboxAttachmentOverlayView = _interopRequireDefault(require("./views/inbox-attachment-overlay-view"));
64
- var _inboxChatSidebarView = _interopRequireDefault(require("./views/inbox-chat-sidebar-view"));
65
- var _InboxToolbarView = _interopRequireDefault(require("./views/InboxToolbarView"));
66
- var _InboxMoleViewDriver = _interopRequireDefault(require("./views/InboxMoleViewDriver"));
67
- var _inboxAppSidebarView = _interopRequireDefault(require("./views/inbox-app-sidebar-view"));
68
- var _registerSearchSuggestionsProvider = _interopRequireDefault(require("./registerSearchSuggestionsProvider"));
69
- var _inboxAppToolbarButtonView = _interopRequireDefault(require("./views/inbox-app-toolbar-button-view"));
70
- var _inboxPageCommunicator = _interopRequireDefault(require("./inbox-page-communicator"));
71
- var _inboxModalView = _interopRequireDefault(require("./views/inbox-modal-view"));
72
- var _inboxDrawerView = _interopRequireDefault(require("./views/inbox-drawer-view"));
73
- var _inboxBackdrop = _interopRequireDefault(require("./views/inbox-backdrop"));
74
- /* eslint-disable flowtype/require-valid-file-annotation -- flow support is deprecated and this file existed for a Google product that no longer exists */
75
-
76
- class InboxDriver {
77
- constructor(appId, LOADER_VERSION, IMPL_VERSION, logger, opts, envData) {
78
- (0, _defineProperty2.default)(this, "_threadViewElements", new WeakMap());
79
- (0, _defineProperty2.default)(this, "_messageViewElements", new WeakMap());
80
- (0, _defineProperty2.default)(this, "_butterBarDriver", new _inboxButterBarDriver.default());
81
- (0, _defineProperty2.default)(this, "_lastInteractedAttachmentCardView", null);
82
- (0, _defineProperty2.default)(this, "_lastInteractedAttachmentCardViewSet", (0, _kefirBus.default)());
83
- (0, _defineProperty2.default)(this, "_appSidebarView", null);
84
- (0, _defineProperty2.default)(this, "_customRouteIDs", new Set());
85
- (0, _defineProperty2.default)(this, "getGmailActionToken", (0, _once.default)(async () => {
86
- const response = await (0, _gmailAjax.default)({
87
- url: `https://mail.google.com/mail${(0, _getAccountUrlPart.default)()}/`,
88
- xhrFields: {
89
- withCredentials: true
90
- },
91
- canRetry: true
92
- });
93
- const tokenVarMatch = response.text.match(/var GM_ACTION_TOKEN=("[^"]+")/);
94
- if (!tokenVarMatch) {
95
- throw new Error('Could not find GM_ACTION_TOKEN');
96
- }
97
- return JSON.parse(tokenVarMatch[1]);
98
- }));
99
- this; // interface check
100
- (0, _customStyle.default)();
101
- this._appId = appId;
102
- this._logger = logger;
103
- this._opts = opts;
104
- this._envData = envData;
105
- this._stopper = (0, _kefirStopper.default)();
106
- this._pageCommunicator = new _inboxPageCommunicator.default();
107
- this._page = (0, _makePageParserTree.default)(this, document);
108
- this._stopper.onValue(() => this._page.dump());
109
- this.onready = (0, _injectScript.injectScript)().then(() => {
110
- this._logger.setUserEmailAddress(this.getUserEmailAddress());
111
- });
112
- this._setupThreadIdStats();
113
- {
114
- if (global.localStorage) {
115
- // We used to not always identify the ids of messages correctly, so we
116
- // just drop the old cache and use a new one.
117
- global.localStorage.removeItem('inboxsdk__cached_gmail_and_inbox_message_ids');
118
- }
119
- const gmailMessageIdForInboxMessageIdCache = new _bimapcache.default({
120
- key: 'inboxsdk__cached_gmail_and_inbox_message_ids_2',
121
- getAfromB: inboxMessageId => (0, _getGmailMessageIdForSyncMessageId.default)(this, inboxMessageId),
122
- getBfromA() {
123
- throw new Error('should not happen');
124
- }
125
- });
126
- this.getGmailMessageIdForSyncMessageId = inboxMessageId => gmailMessageIdForInboxMessageIdCache.getAfromB(inboxMessageId);
127
- }
128
- {
129
- const inboxMessageIdForInboxThreadIdCache = new _bimapcache.default({
130
- key: 'inboxsdk__cached_inbox_message_and_inbox_thread_ids',
131
- getAfromB: inboxThreadId => {
132
- this._threadIdStats.threadRows.threadsWithFetch += 1;
133
- return (0, _getInboxMessageIdForInboxThreadId.default)(this, inboxThreadId);
134
- },
135
- getBfromA() {
136
- throw new Error('should not happen');
137
- }
138
- });
139
- this.getInboxMessageIdForInboxThreadId = inboxThreadId => inboxMessageIdForInboxThreadIdCache.getAfromB(inboxThreadId);
140
- }
141
- {
142
- const threadIdFromMessageIdCache = new _bimapcache.default({
143
- key: 'inboxsdk__cached_thread_and_message_ids',
144
- getAfromB: messageId => (0, _getThreadIdFromMessageId.default)(this, messageId),
145
- getBfromA() {
146
- throw new Error('should not happen');
147
- }
148
- });
149
- this.getThreadIdFromMessageId = messageId => threadIdFromMessageIdCache.getAfromB(messageId);
150
- }
151
- this._threadRowViewDriverLiveSet = (0, _mapWithRemoval.default)(this._page.tree.getAllByTag('collapsedThreadRow'), (node, removal) => {
152
- const el = node.getValue();
153
- const parsed = (0, _parser2.default)(el);
154
- if (parsed.errors.length) {
155
- this._logger.errorSite(new Error('parse errors (threadRow)'), {
156
- score: parsed.score,
157
- errors: parsed.errors,
158
- html: (0, _censorHTMLtree.default)(el)
159
- });
160
- }
161
- const view = new _inboxThreadRowView.default(el, this, parsed);
162
- removal.then(() => {
163
- view.destroy();
164
- });
165
- return view;
166
- });
167
- this._threadViewDriverLiveSet = (0, _flatMap.default)(this._page.tree.getAllByTag('thread'), node => {
168
- const el = node.getValue();
169
- let parsed = (0, _parser.default)(el);
170
- if (parsed.errors.length) {
171
- this._logger.errorSite(new Error('parse errors (thread)'), {
172
- score: parsed.score,
173
- errors: parsed.errors,
174
- html: (0, _censorHTMLtree.default)(el)
175
- });
176
- }
177
- return new _liveSet.default({
178
- read() {
179
- throw new Error();
180
- },
181
- listen: (setValues, controller) => {
182
- setValues(new Set());
183
- const unsub = (0, _kefirStopper.default)();
184
-
185
- // If the InboxThreadView is destroyed before the element is removed,
186
- // then make a new InboxThreadView out of the same element.
187
- const newView = firstRun => {
188
- if (!firstRun) {
189
- parsed = (0, _parser.default)(el);
190
- if (parsed.errors.length > 0) {
191
- this._logger.errorSite(new Error('thread reparse errors'), {
192
- score: parsed.score,
193
- errors: parsed.errors,
194
- html: (0, _censorHTMLtree.default)(el)
195
- });
196
- }
197
- }
198
- const view = new _inboxThreadView.default(el, this, parsed);
199
- view.getStopper().takeUntilBy(unsub).onValue(() => {
200
- controller.remove(view);
201
- newView(false);
202
- });
203
- unsub.takeUntilBy(view.getStopper()).onValue(() => {
204
- view.destroy();
205
- });
206
- controller.add(view);
207
- };
208
- newView(true);
209
- return () => {
210
- unsub.destroy();
211
- };
212
- }
213
- });
214
- });
215
- this._messageViewDriverLiveSet = (0, _flatMap.default)(this._page.tree.getAllByTag('message'), node => {
216
- const el = node.getValue();
217
- let parsed = (0, _parser3.default)(el);
218
- if (parsed.errors.length > 0) {
219
- this._logger.errorSite(new Error('parse errors (message)'), {
220
- score: parsed.score,
221
- errors: parsed.errors,
222
- html: (0, _censorHTMLtree.default)(el)
223
- });
224
- }
225
- if (parsed.attributes.isDraft) return _liveSet.default.constant(new Set());
226
- return new _liveSet.default({
227
- read() {
228
- throw new Error();
229
- },
230
- listen: (setValues, controller) => {
231
- setValues(new Set());
232
- const unsub = (0, _kefirStopper.default)();
233
-
234
- // If the InboxMessageView is destroyed before the element is removed,
235
- // then make a new InboxMessageView out of the same element. Inbox re-uses
236
- // elements for different messages in some cases.
237
- const newView = firstRun => {
238
- if (!firstRun) {
239
- parsed = (0, _parser3.default)(el);
240
- if (parsed.errors.length > 0) {
241
- this._logger.errorSite(new Error(`message reparse errors`), {
242
- score: parsed.score,
243
- errors: parsed.errors,
244
- html: (0, _censorHTMLtree.default)(el)
245
- });
246
- }
247
- }
248
- const view = new _inboxMessageView.default(el, this, parsed);
249
- view.getStopper().takeUntilBy(unsub).onValue(() => {
250
- controller.remove(view);
251
- newView(false);
252
- });
253
- unsub.takeUntilBy(view.getStopper()).onValue(() => {
254
- view.destroy();
255
- });
256
- controller.add(view);
257
- };
258
- newView(true);
259
- return () => {
260
- unsub.destroy();
261
- };
262
- }
263
- });
264
- });
265
- this._attachmentCardViewDriverLiveSet = (0, _mapWithRemoval.default)(this._page.tree.getAllByTag('attachmentCard'), (node, removal) => {
266
- const el = node.getValue();
267
- const parsed = (0, _parser4.default)(el);
268
- if (parsed.errors.length) {
269
- this._logger.errorSite(new Error('parse errors (attachmentCard)'), {
270
- score: parsed.score,
271
- errors: parsed.errors,
272
- html: (0, _censorHTMLtree.default)(el)
273
- });
274
- }
275
- const view = new _inboxAttachmentCardView.default({
276
- element: el,
277
- parsed
278
- }, this);
279
- removal.then(() => {
280
- view.destroy();
281
- });
282
- return view;
283
- });
284
- this._attachmentOverlayViewDriverLiveSet = (0, _flatMap.default)(this._page.tree.getAllByTag('attachmentOverlay'), node => {
285
- const el = node.getValue();
286
- const parsed = (0, _parser5.default)(el);
287
- if (parsed.errors.length) {
288
- this._logger.errorSite(new Error('parse errors (attachmentOverlay)'), {
289
- score: parsed.score,
290
- errors: parsed.errors,
291
- html: (0, _censorHTMLtree.default)(el)
292
- });
293
- }
294
- const cardView = this.getLastInteractedAttachmentCardView();
295
- if (!cardView) {
296
- this._logger.error(new Error('Encountered overlay without knowing cardView'));
297
- return _liveSet.default.constant(new Set());
298
- }
299
- return new _liveSet.default({
300
- read() {
301
- throw new Error();
302
- },
303
- listen: setValues => {
304
- const view = new _inboxAttachmentOverlayView.default(this, el, parsed, cardView);
305
- setValues(new Set([view]));
306
- return () => {
307
- view.destroy();
308
- };
309
- }
310
- });
311
- });
312
- this._attachmentOverlayViewDriverLiveSet.subscribe({});
313
- // force activation because nothing outside of the driver is going to
314
- // subscribe to this, unlike some of the other livesets.
315
-
316
- this._composeViewDriverLiveSet = (0, _getComposeViewDriverLiveSet.default)(this, this._page.tree);
317
- this._chatSidebarViewLiveSet = (0, _mapWithRemoval.default)(this._page.tree.getAllByTag('chatSidebar'), (node, removal) => {
318
- const el = node.getValue();
319
- const parsed = (0, _parser8.default)(el);
320
- if (parsed.errors.length) {
321
- this._logger.errorSite(new Error('parse errors (chatSidebar)'), {
322
- score: parsed.score,
323
- errors: parsed.errors,
324
- html: (0, _censorHTMLtree.default)(el)
325
- });
326
- }
327
- const view = new _inboxChatSidebarView.default(el, parsed);
328
- removal.then(() => {
329
- view.destroy();
330
- });
331
- return view;
332
- });
333
- this._chatSidebarViewLiveSet.subscribe({});
334
- // force activation because nothing outside of the driver is going to
335
- // subscribe to this, unlike some of the other livesets.
336
-
337
- this._routeViewDriverStream = (0, _setupRouteViewDriverStream.default)(this);
338
- this._routeViewDriverStream.takeUntilBy(this._stopper).onValue(routeViewDriver => {
339
- this._currentRouteViewDriver = routeViewDriver;
340
- });
341
- this._rowListViewDriverStream = _kefir.default.never();
342
- _kefir.default.later(30 * 1000).takeUntilBy((0, _toItemWithLifetimeStream.default)(this._page.tree.getAllByTag('appToolbarLocation'))).onValue(() => {
343
- this._logger.errorSite(new Error('Failed to find appToolbarLocation'));
344
- });
345
- (0, _toValueObservable.default)(this._page.tree.getAllByTag('searchBar')).subscribe(_ref => {
346
- let {
347
- value: node
348
- } = _ref;
349
- const el = node.getValue();
350
- const parsed = (0, _parser7.default)(el);
351
- if (parsed.errors.length) {
352
- this._logger.errorSite(new Error('parse errors (searchBar)'), {
353
- score: parsed.score,
354
- errors: parsed.errors,
355
- html: (0, _censorHTMLtree.default)(el)
356
- });
357
- }
358
- });
359
- _kefir.default.later(30 * 1000).takeUntilBy((0, _toItemWithLifetimeStream.default)(this._page.tree.getAllByTag('searchBar'))).onValue(() => {
360
- this._logger.errorSite(new Error('Failed to find searchBar'));
361
- });
362
- (0, _toValueObservable.default)(this._page.tree.getAllByTag('nativeDrawer')).subscribe(_ref2 => {
363
- let {
364
- value: node
365
- } = _ref2;
366
- const el = node.getValue();
367
- const parsed = (0, _parser6.default)(el);
368
- if (parsed.errors.length) {
369
- this._logger.errorSite(new Error('parse errors (nativeDrawer)'), {
370
- score: parsed.score,
371
- errors: parsed.errors,
372
- html: (0, _censorHTMLtree.default)(el)
373
- });
374
- }
375
- });
376
-
377
- // When a user goes from one thread to another, a new thread view is made
378
- // but the old thread view doesn't get destroyed until it finishes
379
- // animating out. We need to clear the old thread view's sidebar
380
- // immediately when a new thread view comes in.
381
- let _currentThreadView = null;
382
- this._threadViewDriverLiveSet.subscribe(changes => {
383
- changes.forEach(change => {
384
- if (change.type === 'add') {
385
- const threadView = change.value;
386
- if (_currentThreadView) {
387
- _currentThreadView.removePanels();
388
- }
389
- _currentThreadView = threadView;
390
- }
391
- });
392
- });
393
- this._toolbarViewDriverLiveSet = (0, _merge.default)([(0, _mapWithRemoval.default)(this._page.tree.getAllByTag('listToolBar'), (node, removal) => {
394
- const el = node.getValue();
395
- const view = new _InboxToolbarView.default(el, this, null);
396
- removal.then(() => {
397
- view.destroy();
398
- });
399
- return view;
400
- }), (0, _mapWithRemoval.default)(this._threadViewDriverLiveSet, (inboxThreadView, removal) => {
401
- const el = inboxThreadView.getToolbarElement();
402
- const view = new _InboxToolbarView.default(el, this, inboxThreadView);
403
- removal.then(() => {
404
- view.destroy();
405
- });
406
- return view;
407
- })]);
408
- }
409
- _setupThreadIdStats() {
410
- this._resetThreadIdStats();
411
- setInterval(() => {
412
- if (this._threadIdStats.threadRows.totalCalls === 0) return;
413
- const {
414
- threadRows
415
- } = this._threadIdStats;
416
- const stats = {};
417
- stats.threadRows = Object.assign({}, threadRows, {
418
- totalThreads: threadRows.totalThreads.size,
419
- threadsWithoutGmailId: threadRows.threadsWithoutGmailId.size
420
- });
421
- this._logger.eventSdkPassive('inboxThreadIdStats', stats);
422
- this._resetThreadIdStats();
423
- }, 1000 * 60 * 60);
424
- }
425
- _resetThreadIdStats() {
426
- this._threadIdStats = {
427
- threadRows: {
428
- totalThreads: new Set(),
429
- totalCalls: 0,
430
- threadsWithoutGmailId: new Set(),
431
- callsWithoutGmailId: 0,
432
- threadsWithFetch: 0
433
- }
434
- };
435
- }
436
- trackThreadRowIdCall(hasGmailId, inboxThreadId) {
437
- this._threadIdStats.threadRows.totalCalls += 1;
438
- this._threadIdStats.threadRows.totalThreads.add(inboxThreadId);
439
- if (!hasGmailId) {
440
- this._threadIdStats.threadRows.callsWithoutGmailId += 1;
441
- this._threadIdStats.threadRows.threadsWithoutGmailId.add(inboxThreadId);
442
- }
443
- }
444
- destroy() {
445
- this._stopper.destroy();
446
- }
447
- getAppId() {
448
- return this._appId;
449
- }
450
- getOpts() {
451
- return this._opts;
452
- }
453
- getLogger() {
454
- return this._logger;
455
- }
456
- getStopper() {
457
- return this._stopper;
458
- }
459
- getRouteViewDriverStream() {
460
- return this._routeViewDriverStream;
461
- }
462
- getCurrentRouteViewDriver() {
463
- return this._currentRouteViewDriver;
464
- }
465
- getRowListViewDriverStream() {
466
- return _kefir.default.never();
467
- }
468
- getComposeViewDriverLiveSet() {
469
- return this._composeViewDriverLiveSet;
470
- }
471
- getComposeViewDriverStream() {
472
- return (0, _toItemWithLifetimeStream.default)(this._composeViewDriverLiveSet).map(_ref3 => {
473
- let {
474
- el
475
- } = _ref3;
476
- return el;
477
- });
478
- }
479
- getThreadRowViewDriverLiveSet() {
480
- return this._threadRowViewDriverLiveSet;
481
- }
482
- getThreadRowViewDriverStream() {
483
- return (0, _toItemWithLifetimeStream.default)(this._threadRowViewDriverLiveSet).map(_ref4 => {
484
- let {
485
- el
486
- } = _ref4;
487
- return el;
488
- });
489
- }
490
- getThreadViewDriverStream() {
491
- return (0, _toItemWithLifetimeStream.default)(this._threadViewDriverLiveSet).map(_ref5 => {
492
- let {
493
- el
494
- } = _ref5;
495
- return el;
496
- });
497
- }
498
- getMessageViewDriverStream() {
499
- return (0, _toItemWithLifetimeStream.default)(this._messageViewDriverLiveSet).map(_ref6 => {
500
- let {
501
- el
502
- } = _ref6;
503
- return el;
504
- });
505
- }
506
- getAttachmentCardViewDriverStream() {
507
- return (0, _toItemWithLifetimeStream.default)(this._attachmentCardViewDriverLiveSet).map(_ref7 => {
508
- let {
509
- el
510
- } = _ref7;
511
- return el;
512
- });
513
- }
514
- getButterBarDriver() {
515
- return this._butterBarDriver;
516
- }
517
- getButterBar() {
518
- return this._butterBar;
519
- }
520
- setButterBar(bb) {
521
- this._butterBar = bb;
522
- }
523
- getPageCommunicator() {
524
- return this._pageCommunicator;
525
- }
526
- getThreadViewElementsMap() {
527
- return this._threadViewElements;
528
- }
529
- getMessageViewElementsMap() {
530
- return this._messageViewElements;
531
- }
532
- getTagTree() {
533
- return this._page.tree;
534
- }
535
- getCustomRouteIDs() {
536
- return this._customRouteIDs;
537
- }
538
- getCurrentChatSidebarView() {
539
- const view = Array.from(this._chatSidebarViewLiveSet.values())[0];
540
- if (!view) throw new Error('No chat sidebar found');
541
- return view;
542
- }
543
- getAppSidebarView() {
544
- if (!this._appSidebarView) {
545
- this._appSidebarView = new _inboxAppSidebarView.default(this);
546
- }
547
- return this._appSidebarView;
548
- }
549
- getChatSidebarButton() {
550
- const appToolbarLocationNode = Array.from(this._page.tree.getAllByTag('appToolbarLocation').values())[0];
551
- const parsed = appToolbarLocationNode ? (0, _parser9.default)(appToolbarLocationNode.getValue()) : null;
552
- const el = parsed ? parsed.elements.chatSidebarButton : null;
553
- if (!el) throw new Error('No chat sidebar button found');
554
- return el;
555
- }
556
- getLastInteractedAttachmentCardView() {
557
- return this._lastInteractedAttachmentCardView;
558
- }
559
- setLastInteractedAttachmentCardView(card) {
560
- this._lastInteractedAttachmentCardViewSet.emit();
561
- this._lastInteractedAttachmentCardView = card;
562
- if (card) {
563
- card.getStopper().merge((0, _fromEventTargetCapture.default)(document.body, 'click')).take(1).takeUntilBy(this._lastInteractedAttachmentCardViewSet).takeUntilBy(this._stopper).onValue(() => {
564
- this._lastInteractedAttachmentCardView = null;
565
- });
566
- }
567
- }
568
- openNewComposeViewDriver() {
569
- const composeViewDriverPromise = this.getNextComposeViewDriver();
570
- const fabButton = (0, _querySelectorOne.default)(document.body, 'nav[role=banner] ~ div[aria-expanded] button:not([tabindex="-1"])');
571
- fabButton.click();
572
- return composeViewDriverPromise;
573
- }
574
- getNextComposeViewDriver() {
575
- let timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10 * 1000;
576
- const s = _kefir.default.stream(em => {
577
- const subscription = this._composeViewDriverLiveSet.subscribe({
578
- next: changes => {
579
- const newComposeChange = changes.filter(change => change.type === 'add')[0];
580
- if (newComposeChange) {
581
- // make flow happy
582
- if (newComposeChange.type !== 'add') throw new Error('should not happen');
583
- em.value(newComposeChange.value);
584
- }
585
- },
586
- complete: em.end
587
- });
588
- return () => subscription.unsubscribe();
589
- });
590
- return s.merge(_kefir.default.later(timeout, new Error('Reached timeout while waiting for getNextComposeViewDriver'))).beforeEnd(() => new Error('Driver was shut down before a new compose was found')).flatMap(x => x instanceof Error ? _kefir.default.constantError(x) : _kefir.default.constant(x)).take(1).takeErrors(1).toPromise();
591
- }
592
- activateShortcut(keyboardShortcutHandle, appName, appIconUrl) {
593
- console.warn('activateShortcut not implemented');
594
- }
595
- getUserEmailAddress() {
596
- const s = document.head.getAttribute('data-inboxsdk-user-email-address');
597
- if (s == null) throw new Error('should not happen');
598
- return s;
599
- }
600
- isConversationViewDisabled() {
601
- return Promise.resolve(false);
602
- }
603
- getUserLanguage() {
604
- return this._pageCommunicator.getUserLanguage();
605
- }
606
- getUserContact() {
607
- return {
608
- emailAddress: this.getUserEmailAddress(),
609
- name: this.getUserEmailAddress()
610
- };
611
- }
612
- getAccountSwitcherContactList() {
613
- console.log('getAccountSwitcherContactList not implemented');
614
- return [this.getUserContact()];
615
- }
616
- registerThreadButton(options) {
617
- const unregister = (0, _kefirStopper.default)();
618
- const removeButtonOnUnregister = button => {
619
- unregister.takeUntilBy(button.getStopper()).onValue(() => {
620
- button.destroy();
621
- });
622
- };
623
- const toolbarViewSub = (0, _toValueObservable.default)(this._toolbarViewDriverLiveSet).subscribe(_ref8 => {
624
- let {
625
- value: inboxToolbarView
626
- } = _ref8;
627
- if (inboxToolbarView.isForThread()) {
628
- if (!options.positions || (0, _includes.default)(options.positions, 'THREAD')) {
629
- if (options.threadSection === 'OTHER') {
630
- console.warn('registerThreadButton does not support OTHER section items in Inbox yet.');
631
- return;
632
- }
633
- removeButtonOnUnregister(inboxToolbarView.addButton({
634
- ...options,
635
- onClick: event => {
636
- options.onClick({
637
- position: 'THREAD',
638
- dropdown: event.dropdown,
639
- selectedThreadViewDrivers: [inboxToolbarView.getThreadViewDriver()],
640
- selectedThreadRowViewDrivers: []
641
- });
642
- }
643
- }));
644
- }
645
- } else if (inboxToolbarView.isForRowList()) {
646
- if (!options.positions || (0, _includes.default)(options.positions, 'LIST')) {
647
- if (options.listSection === 'OTHER') {
648
- console.warn('registerThreadButton does not support OTHER section items in Inbox yet.');
649
- return;
650
- }
651
- removeButtonOnUnregister(inboxToolbarView.addButton({
652
- ...options,
653
- onClick: event => {
654
- options.onClick({
655
- position: 'LIST',
656
- dropdown: event.dropdown,
657
- selectedThreadViewDrivers: [],
658
- selectedThreadRowViewDrivers: this.getSelectedThreadRowViewDrivers()
659
- });
660
- }
661
- }));
662
- }
663
- }
664
- });
665
- unregister.onValue(() => {
666
- toolbarViewSub.unsubscribe();
667
- });
668
- if (!options.positions || (0, _includes.default)(options.positions, 'ROW')) {
669
- const threadRowViewSub = (0, _toValueObservable.default)(this._threadRowViewDriverLiveSet).subscribe(_ref9 => {
670
- let {
671
- value: inboxThreadRowView
672
- } = _ref9;
673
- removeButtonOnUnregister(inboxThreadRowView.addToolbarButton({
674
- ...options,
675
- onClick: event => {
676
- options.onClick({
677
- position: 'ROW',
678
- dropdown: event.dropdown,
679
- selectedThreadViewDrivers: [],
680
- selectedThreadRowViewDrivers: [inboxThreadRowView]
681
- });
682
- }
683
- }));
684
- });
685
- unregister.onValue(() => {
686
- threadRowViewSub.unsubscribe();
687
- });
688
- }
689
- return () => {
690
- unregister.destroy();
691
- };
692
- }
693
- getSelectedThreadRowViewDrivers() {
694
- return Array.from(this.getThreadRowViewDriverLiveSet().values()).filter(threadRowViewDriver => threadRowViewDriver.isSelected());
695
- }
696
- async addNavItem(appId, navItemDescriptor) {
697
- if (!this._navMenuContainer) {
698
- this._navMenuContainer = document.createElement('div');
699
- this._navMenuContainer.classList.add('inboxsdk__navItem_appContainer');
700
- }
701
- return (0, _addNavItem.default)(navItemDescriptor, this._page.tree.getAllByTag('leftNav'), this._navMenuContainer);
702
- }
703
- addSupportItem(supportItemDescriptor) {}
704
- getSentMailNativeNavItem() {
705
- // stub, never resolve
706
- // console.log('getSentMailNativeNavItem not implemented');
707
- return new Promise((resolve, reject) => {});
708
- }
709
- createLink(routeID, params) {
710
- return (0, _createLink.default)(this, routeID, params);
711
- }
712
- async goto(routeID, params) {
713
- (0, _gotoView.default)(this, routeID, params);
714
- }
715
- addCustomRouteID(routeID) {
716
- this._customRouteIDs.add(routeID);
717
- this._pageCommunicator.registerAllowedHashLinkStartTerm(routeID.split('/')[0]);
718
- return () => {
719
- this._customRouteIDs.delete(routeID);
720
- };
721
- }
722
- addCustomListRouteID(routeID, handler) {
723
- console.log('addCustomListRouteID not implemented');
724
- return () => {};
725
- }
726
- showCustomRouteView(el) {
727
- let customViewBase = document.querySelector('body > .inboxsdk__custom_view');
728
- if (!customViewBase) {
729
- const _customViewBase = customViewBase = document.createElement('div');
730
- customViewBase.className = 'inboxsdk__custom_view';
731
- const {
732
- chat,
733
- nav
734
- } = (0, _getSidebarClassnames.default)();
735
- (0, _setCss.default)('custom_view_base_margins', `
736
- .inboxsdk__custom_view.${nav || 'nav_sidebar'} >
737
- .${(0, _idMap.default)('custom_view_container')}.${(0, _idMap.default)('custom_view_min_margins')} {
738
- margin-left: 232px;
739
- }
740
- .inboxsdk__custom_view.${chat || 'chat_sidebar'} >
741
- .${(0, _idMap.default)('custom_view_container')}.${(0, _idMap.default)('custom_view_min_margins')} {
742
- margin-right: 232px;
743
- }
744
- `);
745
-
746
- // Mirror the nav and chat sidebar classnames onto the inboxsdk__custom_view
747
- // element so that if the custom_view_container element also has the centerList
748
- // classname, then Inbox's margin rules for centerList will apply to it.
749
- const main = (0, _querySelectorOrFail.default)(document, 'body > div[class][id][jsaction][jslog]');
750
- (0, _makeMutationObserverChunkedStream.default)(main, {
751
- attributes: true,
752
- attributeFilter: ['class']
753
- }).toProperty(() => null).onValue(() => {
754
- [chat, nav].filter(Boolean).forEach(className => {
755
- if (main.classList.contains(className)) {
756
- _customViewBase.classList.add(className);
757
- } else {
758
- _customViewBase.classList.remove(className);
759
- }
760
- });
761
- });
762
- document.body.appendChild(customViewBase);
763
- }
764
- customViewBase.innerHTML = '';
765
- customViewBase.appendChild(el);
766
- customViewBase.style.display = '';
767
- document.body.classList.add('inboxsdk__custom_view_active');
768
- const main = document.querySelector('[id][jsaction] > div[token][class]');
769
- if (main) {
770
- main.style.display = 'none';
771
- }
772
- }
773
- showNativeRouteView() {
774
- document.body.classList.remove('inboxsdk__custom_view_active');
775
- const customViewBase = document.querySelector('body > .inboxsdk__custom_view');
776
- if (customViewBase) {
777
- customViewBase.style.display = 'none';
778
- customViewBase.innerHTML = '';
779
- }
780
- const main = document.querySelector('[id][jsaction] > div[token][class]');
781
- if (main) {
782
- main.style.display = '';
783
- }
784
- }
785
- setShowNativeNavMarker(isNative) {
786
- // stub
787
- }
788
- setShowNativeAddonSidebar(isNative) {
789
- // stub
790
- }
791
- registerSearchSuggestionsProvider(handler) {
792
- (0, _registerSearchSuggestionsProvider.default)(this, handler);
793
- }
794
- registerSearchQueryRewriter(obj) {
795
- console.log('registerSearchQueryRewriter not implemented');
796
- }
797
- addToolbarButtonForApp(buttonDescriptor) {
798
- const view = new _inboxAppToolbarButtonView.default(buttonDescriptor, this._page.tree.getAllByTag('appToolbarLocation'), this._page.tree.getAllByTag('searchBar'));
799
- return view.waitForReady();
800
- }
801
- addGlobalSidebarContentPanel(buttonDescriptor) {
802
- // stub
803
- return Promise.resolve(null);
804
- }
805
- isRunningInPageContext() {
806
- return !!(global.gbar && global.gbar._CONFIG);
807
- }
808
- showAppIdWarning() {
809
- const topDiv = document.createElement('div');
810
- topDiv.className = 'inboxsdk__appid_warning';
811
- topDiv.innerHTML = `
812
- <button type="button" value="" title="Close" class="inboxsdk__close_button"></button>
813
- <div class="inboxsdk__appid_warning_main">
814
- <div class="topline">InboxSDK Developer Warning: Invalid AppId</div>
815
- <div>You've loaded the InboxSDK with an unregistered appId. Registration is free but necessary to load the SDK.</div>
816
- </div>
817
- <a class="inboxsdk__appid_register" target="_blank" href="https://www.inboxsdk.com/register">Register Your App</a>
818
- `;
819
- document.body.insertBefore(topDiv, document.body.firstChild);
820
- const closeBtn = topDiv.querySelector('.inboxsdk__close_button');
821
- if (!closeBtn) throw new Error('Should not happen');
822
- closeBtn.addEventListener('click', function (e) {
823
- topDiv.remove();
824
- });
825
- }
826
- openDraftByMessageID(messageID) {
827
- throw new Error('Not implemented');
828
- }
829
- createMoleViewDriver(options) {
830
- return new _InboxMoleViewDriver.default(options, this);
831
- }
832
- createModalViewDriver(options) {
833
- return new _inboxModalView.default(options);
834
- }
835
- createTopMessageBarDriver(options) {
836
- throw new Error('Not implemented');
837
- }
838
- createDrawerViewDriver(options) {
839
- const drawerView = new _inboxDrawerView.default(options);
840
- // TODO if a native drawer was already open, we should close the native
841
- // drawer istead of the new one.
842
-
843
- // If a nativeDrawer is opened while the new SDK drawer is open, then close
844
- // the SDK drawer.
845
- _kefir.default.fromESObservable(this._page.tree.getAllByTag('nativeDrawer')).takeUntilBy(drawerView.getClosingStream()).onValue(changes => {
846
- for (let change of changes) {
847
- if (change.type === 'add') {
848
- drawerView.close();
849
- break;
850
- }
851
- }
852
- });
853
- return drawerView;
854
- }
855
- createBackdrop(zIndex, target) {
856
- return new _inboxBackdrop.default(zIndex, target);
857
- }
858
- closeOpenThread() {
859
- (0, _simulateKey.default)(document.body, 27, 27);
860
- }
861
- registerThreadRowViewSelectionHandler(handler) {
862
- return () => {};
863
- }
864
- }
865
- var _default = (0, _ud.defn)(module, InboxDriver);
866
- exports.default = _default;