@inboxsdk/core 2.1.10 → 2.1.12

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 (29) hide show
  1. package/inboxsdk.js +445 -934
  2. package/package.json +1 -1
  3. package/pageWorld.js +1 -31
  4. package/src/common/log-error.d.ts +0 -1
  5. package/src/common/log-error.d.ts.map +1 -1
  6. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.d.ts.map +1 -1
  7. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.d.ts.map +1 -1
  8. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.d.ts.map +1 -1
  9. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.d.ts.map +1 -1
  10. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts +0 -1
  11. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts.map +1 -1
  12. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts +0 -1
  13. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts.map +1 -1
  14. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.d.ts +17 -3
  15. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.d.ts.map +1 -1
  16. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.d.ts +0 -6
  17. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.d.ts.map +1 -1
  18. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.d.ts +5 -0
  19. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.d.ts.map +1 -1
  20. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.d.ts.map +1 -1
  21. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.d.ts.map +1 -1
  22. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.d.ts.map +1 -1
  23. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.d.ts +1 -1
  24. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.d.ts.map +1 -1
  25. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.d.ts.map +1 -1
  26. package/src/platform-implementation-js/lib/logger.d.ts +0 -1
  27. package/src/platform-implementation-js/lib/logger.d.ts.map +1 -1
  28. package/src/platform-implementation-js/lib/common-page-communicator.d.ts +0 -20
  29. package/src/platform-implementation-js/lib/common-page-communicator.d.ts.map +0 -1
package/inboxsdk.js CHANGED
@@ -785,23 +785,6 @@ const get = function get(map, key) {
785
785
 
786
786
  /***/ }),
787
787
 
788
- /***/ 9865:
789
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
790
-
791
- "use strict";
792
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
793
- /* harmony export */ "Z": () => (/* binding */ htmlToText)
794
- /* harmony export */ });
795
- // Quick function for converting HTML with entities into text without
796
- // introducing an XSS vulnerability.
797
- function htmlToText(html) {
798
- const div = document.createElement('div');
799
- div.innerHTML = html.replace(/<[^>]*>?/g, '');
800
- return div.textContent;
801
- }
802
-
803
- /***/ }),
804
-
805
788
  /***/ 3567:
806
789
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
807
790
 
@@ -831,7 +814,7 @@ function isElementVisible(el) {
831
814
 
832
815
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- SDK_VERSION is injected by webpack
833
816
  ///@ts-ignore
834
- const BUILD_VERSION = "2.1.10-1698689204956-73cb5711525b05a3";
817
+ const BUILD_VERSION = "2.1.12-1699623720812-466cb297eff34e1f";
835
818
  if (false) {}
836
819
 
837
820
  /***/ }),
@@ -1001,20 +984,18 @@ const gotoView = ud__WEBPACK_IMPORTED_MODULE_2__.defn(module, async function got
1001
984
  viewName = viewName.slice(1);
1002
985
  }
1003
986
  if (lodash_includes__WEBPACK_IMPORTED_MODULE_0___default()(_constants_router__WEBPACK_IMPORTED_MODULE_1__/* .NATIVE_ROUTE_IDS */ .H7, viewName)) {
1004
- if (gmailDriver.isUsingSyncAPI()) {
1005
- // need to go to the new url
1006
- if (params && typeof params !== 'string') {
1007
- const threadID = params.threadID;
1008
- if (threadID && typeof threadID === 'string') {
1009
- const int = parseInt(threadID, 16);
1010
- if (!isNaN(int)) {
1011
- //we got an old id
1012
- const syncThreadId = await gmailDriver.getSyncThreadIdForOldGmailThreadId(threadID);
1013
- params = {
1014
- ...params,
1015
- threadID: '#' + syncThreadId
1016
- };
1017
- }
987
+ // need to go to the new url
988
+ if (params && typeof params !== 'string') {
989
+ const threadID = params.threadID;
990
+ if (threadID && typeof threadID === 'string') {
991
+ const int = parseInt(threadID, 16);
992
+ if (!isNaN(int)) {
993
+ //we got an old id
994
+ const syncThreadId = await gmailDriver.getSyncThreadIdForOldGmailThreadId(threadID);
995
+ params = {
996
+ ...params,
997
+ threadID: '#' + syncThreadId
998
+ };
1018
999
  }
1019
1000
  }
1020
1001
  }
@@ -1624,9 +1605,6 @@ const GmailElementGetter = {
1624
1605
  getMainContentElementChangedStream: once_default()(function () {
1625
1606
  return getMainContentElementChangedStream(this);
1626
1607
  }),
1627
- getMoleParent() {
1628
- return document.body.querySelector('.dw .nH > .nH > .no');
1629
- },
1630
1608
  /**
1631
1609
  * This method checks whether we should use the old InboxSDK style of adding nav items
1632
1610
  * inline among Gmail's nav items (as opposed to the newer style where we put our nav items
@@ -1777,21 +1755,15 @@ const GmailElementGetter = {
1777
1755
  "use strict";
1778
1756
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1779
1757
  /* harmony export */ "Be": () => (/* binding */ readDraftId),
1780
- /* harmony export */ "IG": () => (/* binding */ interpretSentEmailResponse),
1781
- /* harmony export */ "MA": () => (/* binding */ extractThreads),
1782
- /* harmony export */ "PH": () => (/* binding */ extractMessageIdsFromThreadBatchRequest),
1783
- /* harmony export */ "Z8": () => (/* binding */ replaceThreadsInResponse)
1758
+ /* harmony export */ "PH": () => (/* binding */ extractMessageIdsFromThreadBatchRequest)
1784
1759
  /* harmony export */ });
1785
- /* unused harmony exports extractGmailMessageIdFromSentEmail, extractGmailThreadIdFromSentEmail, extractGmailThreadIdFromMessageIdSearch, rewriteSingleQuotes, deserialize, deserializeArray, serialize, extractThreadsFromDeserialized, cleanupPeopleLine, extractMessages */
1760
+ /* unused harmony exports extractGmailThreadIdFromMessageIdSearch, rewriteSingleQuotes, deserialize, deserializeArray, serialize, replaceThreadsInResponse, extractThreads, extractThreadsFromDeserialized, cleanupPeopleLine, extractMessages */
1786
1761
  /* harmony import */ var lodash_flatten__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5564);
1787
1762
  /* harmony import */ var lodash_flatten__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_flatten__WEBPACK_IMPORTED_MODULE_0__);
1788
1763
  /* harmony import */ var lodash_last__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(928);
1789
1764
  /* harmony import */ var lodash_last__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_last__WEBPACK_IMPORTED_MODULE_1__);
1790
1765
  /* harmony import */ var transducers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1095);
1791
1766
  /* harmony import */ var transducers_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(transducers_js__WEBPACK_IMPORTED_MODULE_2__);
1792
- /* harmony import */ var map_indexed_xf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(9880);
1793
- /* harmony import */ var map_indexed_xf__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(map_indexed_xf__WEBPACK_IMPORTED_MODULE_5__);
1794
- /* harmony import */ var _common_html_to_text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9865);
1795
1767
  /* harmony import */ var _common_assert__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9817);
1796
1768
 
1797
1769
 
@@ -1799,36 +1771,6 @@ const GmailElementGetter = {
1799
1771
 
1800
1772
 
1801
1773
 
1802
- function interpretSentEmailResponse(responseString) {
1803
- const emailSentArray = deserialize(responseString).value;
1804
- const gmailMessageId = extractGmailMessageIdFromSentEmail(emailSentArray);
1805
- const gmailThreadId = extractGmailThreadIdFromSentEmail(emailSentArray) || gmailMessageId;
1806
- if (!gmailMessageId || !gmailThreadId) {
1807
- throw new Error('Failed to read email response');
1808
- }
1809
- return {
1810
- threadID: gmailThreadId,
1811
- messageID: gmailMessageId
1812
- };
1813
- }
1814
- function extractGmailMessageIdFromSentEmail(emailSentArray) {
1815
- const messageIdArrayMarker = 'a';
1816
- const messageIdArray = _searchArray(emailSentArray, messageIdArrayMarker, markerArray => markerArray.length > 3 && Array.isArray(markerArray[3]) && markerArray[3].length > 0);
1817
- if (!messageIdArray) {
1818
- return null;
1819
- }
1820
- return messageIdArray[3][0];
1821
- }
1822
- function extractGmailThreadIdFromSentEmail(emailSentArray) {
1823
- const threadIdArrayMarker = 'csd';
1824
- const threadIdArray = _searchArray(emailSentArray, threadIdArrayMarker, function (markerArray) {
1825
- return markerArray.length == 3 && Array.isArray(markerArray[2]) && markerArray[2].length > 5;
1826
- });
1827
- if (!threadIdArray) {
1828
- return null;
1829
- }
1830
- return threadIdArray[1];
1831
- }
1832
1774
  function extractGmailThreadIdFromMessageIdSearch(responseString) {
1833
1775
  const threadResponseArray = deserialize(responseString).value;
1834
1776
  const threadIdArrayMarker = 'cs';
@@ -2000,7 +1942,7 @@ function deserializeArray(value) {
2000
1942
  }
2001
1943
  function serialize(value, options) {
2002
1944
  if (options.suggestionMode) {
2003
- (0,_common_assert__WEBPACK_IMPORTED_MODULE_3__/* .assert */ .h)(options.includeLengths);
1945
+ assert(options.includeLengths);
2004
1946
  return suggestionSerialize(value, options.includeExplicitNulls);
2005
1947
  }
2006
1948
  return threadListSerialize(value, options);
@@ -2181,14 +2123,14 @@ function replaceThreadsInResponse(response, replacementThreads, _ref) {
2181
2123
  newTbs.push(postTbItems);
2182
2124
  }
2183
2125
  }
2184
- const parsedNew = lodash_flatten__WEBPACK_IMPORTED_MODULE_0___default()([preTbGroups, newTbs, postTbGroups]);
2185
- const allSections = lodash_flatten__WEBPACK_IMPORTED_MODULE_0___default()(parsedNew);
2186
- const endSection = lodash_last__WEBPACK_IMPORTED_MODULE_1___default()(allSections);
2126
+ const parsedNew = flatten([preTbGroups, newTbs, postTbGroups]);
2127
+ const allSections = flatten(parsedNew);
2128
+ const endSection = last(allSections);
2187
2129
  if (endSection[0] !== 'e') {
2188
2130
  throw new Error('Failed to find end section');
2189
2131
  }
2190
2132
  endSection[1] = allSections.length;
2191
- const fullNew = actionResponseMode ? [[lodash_flatten__WEBPACK_IMPORTED_MODULE_0___default()(parsedNew), value[0][1]]] : parsedNew;
2133
+ const fullNew = actionResponseMode ? [[flatten(parsedNew), value[0][1]]] : parsedNew;
2192
2134
  return serialize(fullNew, options);
2193
2135
  }
2194
2136
  function extractThreads(response) {
@@ -2199,9 +2141,9 @@ function extractThreadsFromDeserialized(value) {
2199
2141
  value = [value[0][0]];
2200
2142
  }
2201
2143
  return _extractThreadArraysFromResponseArray(value).map(thread => Object.freeze(Object.defineProperty({
2202
- subject: (0,_common_html_to_text__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(thread[9]),
2203
- shortDate: (0,_common_html_to_text__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(thread[14]),
2204
- timeString: (0,_common_html_to_text__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(thread[15]),
2144
+ subject: htmlToText(thread[9]),
2145
+ shortDate: htmlToText(thread[14]),
2146
+ timeString: htmlToText(thread[15]),
2205
2147
  peopleHtml: cleanupPeopleLine(thread[7]),
2206
2148
  timestamp: thread[16] / 1000,
2207
2149
  isUnread: thread[9].indexOf('<b>') > -1,
@@ -2227,7 +2169,7 @@ function cleanupPeopleLine(peopleHtml) {
2227
2169
  }
2228
2170
  const _extractThreadArraysFromResponseArrayXf = transducers_js__WEBPACK_IMPORTED_MODULE_2___default().compose((transducers_js__WEBPACK_IMPORTED_MODULE_2___default().cat), transducers_js__WEBPACK_IMPORTED_MODULE_2___default().filter(item => item[0] === 'tb'), transducers_js__WEBPACK_IMPORTED_MODULE_2___default().map(item => item[2]), (transducers_js__WEBPACK_IMPORTED_MODULE_2___default().cat));
2229
2171
  function _extractThreadArraysFromResponseArray(threadResponseArray) {
2230
- return transducers_js__WEBPACK_IMPORTED_MODULE_2___default().toArray(threadResponseArray, _extractThreadArraysFromResponseArrayXf);
2172
+ return t.toArray(threadResponseArray, _extractThreadArraysFromResponseArrayXf);
2231
2173
  }
2232
2174
  const _extractThreadsFromConversationViewResponseArrayXf = transducers_js__WEBPACK_IMPORTED_MODULE_2___default().compose((transducers_js__WEBPACK_IMPORTED_MODULE_2___default().cat), transducers_js__WEBPACK_IMPORTED_MODULE_2___default().filter(item => item[0] === 'cs'), transducers_js__WEBPACK_IMPORTED_MODULE_2___default().map(item => ({
2233
2175
  threadID: item[1],
@@ -2263,8 +2205,8 @@ function extractMessages(response) {
2263
2205
  });
2264
2206
  }
2265
2207
  function _threadsToTbGroups(threads, start) {
2266
- const _threadsToTbGroupsXf = transducers_js__WEBPACK_IMPORTED_MODULE_2___default().compose(transducers_js__WEBPACK_IMPORTED_MODULE_2___default().map(thread => thread._originalGmailFormat), transducers_js__WEBPACK_IMPORTED_MODULE_2___default().partition(10), map_indexed_xf__WEBPACK_IMPORTED_MODULE_5___default()((threadsChunk, i) => [['tb', start + i * 10, threadsChunk]]));
2267
- return transducers_js__WEBPACK_IMPORTED_MODULE_2___default().toArray(threads, _threadsToTbGroupsXf);
2208
+ const _threadsToTbGroupsXf = t.compose(t.map(thread => thread._originalGmailFormat), t.partition(10), mapIndexed((threadsChunk, i) => [['tb', start + i * 10, threadsChunk]]));
2209
+ return t.toArray(threads, _threadsToTbGroupsXf);
2268
2210
  }
2269
2211
  function _searchArray(responseArray, marker, markerArrayValidator) {
2270
2212
  const pathArray = _searchObject(responseArray, marker, 100);
@@ -4072,9 +4014,6 @@ var once_default = /*#__PURE__*/__webpack_require__.n(once);
4072
4014
  // EXTERNAL MODULE: ./node_modules/lodash/escape.js
4073
4015
  var lodash_escape = __webpack_require__(1675);
4074
4016
  var escape_default = /*#__PURE__*/__webpack_require__.n(lodash_escape);
4075
- // EXTERNAL MODULE: ./node_modules/lodash/includes.js
4076
- var includes = __webpack_require__(4721);
4077
- var includes_default = /*#__PURE__*/__webpack_require__.n(includes);
4078
4017
  // EXTERNAL MODULE: ./node_modules/lodash/constant.js
4079
4018
  var constant = __webpack_require__(5703);
4080
4019
  var constant_default = /*#__PURE__*/__webpack_require__.n(constant);
@@ -4251,8 +4190,6 @@ function simulateDragEnd(element, files) {
4251
4190
  dataTransfer
4252
4191
  });
4253
4192
  }
4254
- // EXTERNAL MODULE: ./src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.ts
4255
- var gmail_response_processor = __webpack_require__(6139);
4256
4193
  // EXTERNAL MODULE: ./src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.ts + 2 modules
4257
4194
  var gmail_element_getter = __webpack_require__(2851);
4258
4195
  ;// CONCATENATED MODULE: ./src/platform-implementation-js/lib/dom/set-css.ts
@@ -4279,8 +4216,6 @@ function setCss(key, css) {
4279
4216
  var wait_for = __webpack_require__(2392);
4280
4217
  // EXTERNAL MODULE: ./src/platform-implementation-js/lib/stream-wait-for.ts
4281
4218
  var stream_wait_for = __webpack_require__(3511);
4282
- // EXTERNAL MODULE: ./src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.ts
4283
- var make_mutation_observer_chunked_stream = __webpack_require__(5578);
4284
4219
  // EXTERNAL MODULE: ./src/platform-implementation-js/lib/handle-compose-link-chips.ts
4285
4220
  var handle_compose_link_chips = __webpack_require__(3095);
4286
4221
  // EXTERNAL MODULE: ./src/platform-implementation-js/lib/insert-link-chip-into-body.ts
@@ -4372,12 +4307,17 @@ function ensureAppButtonToolbarsAreClosed(gmailComposeViewElement) {
4372
4307
  (0,simulate_mouse_event/* simulateClick */.HX)(groupedButton);
4373
4308
  }
4374
4309
  }
4310
+ // EXTERNAL MODULE: ./node_modules/lodash/includes.js
4311
+ var includes = __webpack_require__(4721);
4312
+ var includes_default = /*#__PURE__*/__webpack_require__.n(includes);
4375
4313
  // EXTERNAL MODULE: ./node_modules/lodash/startsWith.js
4376
4314
  var startsWith = __webpack_require__(240);
4377
4315
  var startsWith_default = /*#__PURE__*/__webpack_require__.n(startsWith);
4378
4316
  // EXTERNAL MODULE: ./node_modules/lodash/findIndex.js
4379
4317
  var findIndex = __webpack_require__(998);
4380
4318
  var findIndex_default = /*#__PURE__*/__webpack_require__.n(findIndex);
4319
+ // EXTERNAL MODULE: ./src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.ts
4320
+ var make_mutation_observer_chunked_stream = __webpack_require__(5578);
4381
4321
  ;// CONCATENATED MODULE: ./src/platform-implementation-js/lib/css-selector-escape.ts
4382
4322
  function cssSelectorEscape(text) {
4383
4323
  if (text.length === 0 || /^-?[0-9]/.test(text)) {
@@ -5660,9 +5600,6 @@ function setFromEmail(driver, gmailComposeView, email) {
5660
5600
 
5661
5601
 
5662
5602
 
5663
-
5664
-
5665
-
5666
5603
 
5667
5604
 
5668
5605
 
@@ -5699,181 +5636,70 @@ class GmailComposeView {
5699
5636
  this._isTriggeringADraftSavePending = false;
5700
5637
  this._page = makePageParser(element, driver.getLogger());
5701
5638
  this.tagTree = this._page.tree;
5702
- let saveAndSendStream;
5703
- if (this._driver.isUsingSyncAPI()) {
5704
- saveAndSendStream = xhrInterceptorStream // we know _getDraftIDfromForm will work because by the time we're
5705
- // getting an ajax event Gmail's JS has generated an ID and added it to the DOM.
5706
- .filter(event => event.draftID === this._getDraftIDfromForm()).map(event => {
5707
- switch (event.type) {
5708
- case 'emailSending':
5709
- {
5710
- return {
5711
- eventName: 'sending'
5712
- };
5713
- }
5714
- case 'emailSent':
5715
- {
5716
- const syncThreadID = event.threadID;
5717
- const syncMessageID = event.messageID;
5718
- if (event.oldMessageID) this._messageId = event.oldMessageID;
5719
- if (event.oldThreadID) this._threadID = event.oldThreadID;
5720
- driver.removeCachedGmailMessageIdForSyncMessageId(syncMessageID);
5721
- driver.removeCachedOldGmailThreadIdFromSyncThreadId(syncThreadID);
5722
- return {
5723
- eventName: 'sent',
5724
- data: {
5725
- getThreadID: once_default()(async () => {
5726
- if (event.oldThreadID) {
5727
- return event.oldThreadID;
5728
- }
5729
- return await driver.getOldGmailThreadIdFromSyncThreadId(syncThreadID);
5730
- }),
5731
- getMessageID: once_default()(async () => {
5732
- if (event.oldMessageID) {
5733
- return event.oldMessageID;
5734
- }
5735
- return await driver.getGmailMessageIdForSyncMessageId(syncMessageID);
5736
- })
5737
- }
5738
- };
5739
- }
5740
- case 'emailSendFailed':
5741
- {
5742
- return {
5743
- eventName: 'sendCanceled'
5744
- };
5745
- }
5746
- case 'emailDraftReceived':
5747
- {
5748
- this._messageId = event.oldMessageID;
5749
- this._threadID = event.oldThreadID;
5750
- return {
5751
- eventName: 'draftSaved',
5752
- data: {
5753
- getThreadID() {
5754
- return Promise.resolve(event.oldThreadID);
5755
- },
5756
- getMessageID() {
5757
- return Promise.resolve(event.oldMessageID);
5758
- }
5759
- }
5760
- };
5761
- }
5762
- default:
5763
- {
5764
- return null;
5765
- }
5766
- }
5767
- }).filter(Boolean);
5768
- } else {
5769
- saveAndSendStream = xhrInterceptorStream.filter(event => event.composeId === this.getComposeID()).map(event => {
5770
- switch (event.type) {
5771
- case 'emailSending':
5772
- {
5773
- return [{
5774
- eventName: 'sending'
5775
- }];
5776
- }
5777
- case 'emailSent':
5778
- {
5779
- const response = gmail_response_processor/* interpretSentEmailResponse */.IG(event.response);
5780
- if (includes_default()(['tr', 'eu'], response.messageID)) {
5781
- return [{
5782
- eventName: 'sendCanceled'
5783
- }];
5784
- }
5785
- this._emailWasSent = true;
5786
- if (response.messageID) {
5787
- this._finalMessageId = response.messageID;
5788
- }
5789
- this._messageId = null;
5790
- const data = {
5791
- getThreadID: () => Promise.resolve(response.threadID),
5792
- getMessageID: () => Promise.resolve(response.messageID)
5793
- };
5794
- ['threadID', 'gmailThreadId'].forEach(prop => {
5795
- // These properties are nonenumerable.
5796
- Object.defineProperty(data, prop, {
5797
- get: () => {
5798
- this._driver.getLogger().deprecationWarning(`composeView sent event.${prop}`, 'composeView sent event.getThreadID()');
5799
- return response.threadID;
5639
+ const saveAndSendStream = xhrInterceptorStream // we know _getDraftIDfromForm will work because by the time we're
5640
+ // getting an ajax event Gmail's JS has generated an ID and added it to the DOM.
5641
+ .filter(event => event.draftID === this._getDraftIDfromForm()).map(event => {
5642
+ switch (event.type) {
5643
+ case 'emailSending':
5644
+ {
5645
+ return {
5646
+ eventName: 'sending'
5647
+ };
5648
+ }
5649
+ case 'emailSent':
5650
+ {
5651
+ const syncThreadID = event.threadID;
5652
+ const syncMessageID = event.messageID;
5653
+ if (event.oldMessageID) this._messageId = event.oldMessageID;
5654
+ if (event.oldThreadID) this._threadID = event.oldThreadID;
5655
+ driver.removeCachedGmailMessageIdForSyncMessageId(syncMessageID);
5656
+ driver.removeCachedOldGmailThreadIdFromSyncThreadId(syncThreadID);
5657
+ return {
5658
+ eventName: 'sent',
5659
+ data: {
5660
+ getThreadID: once_default()(async () => {
5661
+ if (event.oldThreadID) {
5662
+ return event.oldThreadID;
5800
5663
  }
5801
- });
5802
- });
5803
- ['messageID', 'gmailMessageId'].forEach(prop => {
5804
- Object.defineProperty(data, prop, {
5805
- get: () => {
5806
- this._driver.getLogger().deprecationWarning(`composeView sent event.${prop}`, 'composeView sent event.getMessageID()');
5807
- return response.messageID;
5664
+ return await driver.getOldGmailThreadIdFromSyncThreadId(syncThreadID);
5665
+ }),
5666
+ getMessageID: once_default()(async () => {
5667
+ if (event.oldMessageID) {
5668
+ return event.oldMessageID;
5808
5669
  }
5809
- });
5810
- });
5811
- return [{
5812
- eventName: 'sent',
5813
- data
5814
- }];
5815
- }
5816
- case 'emailDraftSaveSending':
5817
- {
5818
- this._draftSaving = true;
5819
- return [{
5820
- eventName: 'draftSaving'
5821
- }];
5822
- }
5823
- case 'emailDraftReceived':
5824
- {
5825
- this._draftSaving = false;
5826
- let response;
5827
- try {
5828
- response = gmail_response_processor/* interpretSentEmailResponse */.IG(event.response);
5829
- } catch (err) {
5830
- if (this._driver.getAppId() === 'sdk_streak_21e9788951') {
5831
- this._driver.getLogger().error(err, {
5832
- connectionDetails: event.connectionDetails,
5833
- response: event.response
5834
- });
5835
- throw err;
5836
- } else {
5837
- throw err;
5838
- }
5839
- }
5840
- if (response.messageID === 'eu') {
5841
- return []; // save was canceled
5670
+ return await driver.getGmailMessageIdForSyncMessageId(syncMessageID);
5671
+ })
5842
5672
  }
5843
-
5844
- const events = [{
5845
- eventName: 'draftSaved',
5846
- data: response
5847
- }];
5848
- if (!response.messageID) {
5849
- this._driver.getLogger().error(new Error('Missing message id from emailDraftReceived'));
5850
- } else if (response.messageID && this._messageId !== response.messageID) {
5851
- if (/^[0-9a-f]+$/i.test(response.messageID)) {
5852
- this._messageId = response.messageID;
5853
- events.push({
5854
- eventName: 'messageIDChange',
5855
- data: this._messageId
5856
- });
5857
- } else {
5858
- this._driver.getLogger().error(new Error('Invalid message id from emailDraftReceived'), {
5859
- value: response.messageID
5860
- });
5673
+ };
5674
+ }
5675
+ case 'emailSendFailed':
5676
+ {
5677
+ return {
5678
+ eventName: 'sendCanceled'
5679
+ };
5680
+ }
5681
+ case 'emailDraftReceived':
5682
+ {
5683
+ this._messageId = event.oldMessageID;
5684
+ this._threadID = event.oldThreadID;
5685
+ return {
5686
+ eventName: 'draftSaved',
5687
+ data: {
5688
+ getThreadID() {
5689
+ return Promise.resolve(event.oldThreadID);
5690
+ },
5691
+ getMessageID() {
5692
+ return Promise.resolve(event.oldMessageID);
5861
5693
  }
5862
5694
  }
5863
- return events;
5864
- }
5865
- default:
5866
- return [];
5867
- }
5868
- }).flatten().map(event => {
5869
- if (this._driver.getLogger().shouldTrackEverything()) {
5870
- driver.getLogger().eventSite('compose.debug.xhr', {
5871
- eventName: event.eventName
5872
- });
5873
- }
5874
- return event;
5875
- });
5876
- }
5695
+ };
5696
+ }
5697
+ default:
5698
+ {
5699
+ return null;
5700
+ }
5701
+ }
5702
+ }).filter(Boolean);
5877
5703
  this._eventStream.plug(kefir_esm.merge([saveAndSendStream, kefir_esm.fromEvents(this._element, 'buttonAdded').map(() => {
5878
5704
  return {
5879
5705
  eventName: 'buttonAdded'
@@ -5938,35 +5764,27 @@ class GmailComposeView {
5938
5764
  class: this.getElement().getAttribute('class')
5939
5765
  });
5940
5766
  });
5941
-
5942
- // v2 Data behaves differently whereby the compose element is removed
5943
- // from the page while the send is in flight instead of waiting for the
5944
- // send to come back, so we have to handle that difference
5945
- if (this._driver.isUsingSyncAPI()) {
5946
- kefir_esm.merge([
5947
- // if we get a presending then we let the other stream wait for
5948
- // sent. But if we get a sendCanceled, then a regular destroy can
5949
- // pass through
5950
- this._removedFromDOMStopper.filterBy(this._eventStream.filter(_ref3 => {
5951
- let {
5952
- eventName
5953
- } = _ref3;
5954
- return eventName === 'presending' || eventName === 'sendCanceled';
5955
- }).map(_ref4 => {
5956
- let {
5957
- eventName
5958
- } = _ref4;
5959
- return eventName === 'sendCanceled';
5960
- }).toProperty(() => true)), kefir_esm.combine([this._removedFromDOMStopper, this._eventStream.filter(_ref5 => {
5961
- let {
5962
- eventName
5963
- } = _ref5;
5964
- return eventName === 'sent';
5965
- })])]).take(1) // we delay asap here so that the event stream is not destroyed before listeners here the sent event
5966
- .flatMap(() => (0,delay_asap/* default */.Z)(null)).onValue(() => this._destroy());
5967
- } else {
5968
- this._removedFromDOMStopper.onValue(() => this._destroy());
5969
- }
5767
+ kefir_esm.merge([
5768
+ // if we get a presending then we let the other stream wait for
5769
+ // sent. But if we get a sendCanceled, then a regular destroy can
5770
+ // pass through
5771
+ this._removedFromDOMStopper.filterBy(this._eventStream.filter(_ref3 => {
5772
+ let {
5773
+ eventName
5774
+ } = _ref3;
5775
+ return eventName === 'presending' || eventName === 'sendCanceled';
5776
+ }).map(_ref4 => {
5777
+ let {
5778
+ eventName
5779
+ } = _ref4;
5780
+ return eventName === 'sendCanceled';
5781
+ }).toProperty(() => true)), kefir_esm.combine([this._removedFromDOMStopper, this._eventStream.filter(_ref5 => {
5782
+ let {
5783
+ eventName
5784
+ } = _ref5;
5785
+ return eventName === 'sent';
5786
+ })])]).take(1) // we delay asap here so that the event stream is not destroyed before listeners here the sent event
5787
+ .flatMap(() => (0,delay_asap/* default */.Z)(null)).onValue(() => this._destroy());
5970
5788
  detectClassicRecipientsArea();
5971
5789
  }
5972
5790
  destroy() {
@@ -6046,18 +5864,6 @@ class GmailComposeView {
6046
5864
  this._eventStream.plug(kefir_esm.later(10, undefined).flatMap(() => (0,get_minimized_stream/* default */.Z)(this)).changes().map(minimized => ({
6047
5865
  eventName: minimized ? 'minimized' : 'restored'
6048
5866
  })));
6049
- if (!this._driver.isUsingSyncAPI()) {
6050
- (0,make_mutation_observer_chunked_stream/* default */.Z)(this._messageIDElement, {
6051
- attributes: true,
6052
- attributeFilter: ['value']
6053
- }).takeUntilBy(this._eventStream.filter(() => false).beforeEnd(() => null)).map(() => this._getMessageIDfromForm()).filter(messageID => messageID && !this._emailWasSent && this._messageId !== messageID).onValue(messageID => {
6054
- this._messageId = messageID;
6055
- this._eventStream.emit({
6056
- eventName: 'messageIDChange',
6057
- data: this._messageId
6058
- });
6059
- });
6060
- }
6061
5867
  }
6062
5868
  _setupConsistencyCheckers() {
6063
5869
  try {
@@ -6070,33 +5876,27 @@ class GmailComposeView {
6070
5876
  }
6071
5877
  }
6072
5878
  _setupIDs() {
6073
- if (this._driver.isUsingSyncAPI()) {
6074
- const syncTargetMessageID = this._getTargetMessageID();
6075
- if (syncTargetMessageID) {
6076
- this._driver.getGmailMessageIdForSyncMessageId(syncTargetMessageID).then(gmailMessageId => this._targetMessageID = gmailMessageId);
6077
- }
6078
- const syncMessageId = this._getMessageIDfromForm();
6079
- if (syncMessageId) {
6080
- this._driver.getGmailMessageIdForSyncDraftId(syncMessageId).then(gmailMessageId => {
6081
- this._initialMessageId = gmailMessageId;
6082
- this._messageId = gmailMessageId;
6083
- }).catch(() => {
6084
- //do nothing because this means the message hasn't been saved yet
6085
- });
6086
- this._driver.reportRecentSyncDraftId(syncMessageId);
6087
- this._stopper.onValue(() => {
6088
- this._driver.reportDraftClosed(syncMessageId);
6089
- });
6090
- } else {
6091
- this._driver.getLogger().error(new Error('Draft is missing sync draft id'));
6092
- }
6093
- const legacyThreadIdElement = this._element.querySelector('input[name="lts"]');
6094
- if (legacyThreadIdElement && typeof legacyThreadIdElement.value === 'string') this._threadID = legacyThreadIdElement.value;
5879
+ const syncTargetMessageID = this._getTargetMessageID();
5880
+ if (syncTargetMessageID) {
5881
+ this._driver.getGmailMessageIdForSyncMessageId(syncTargetMessageID).then(gmailMessageId => this._targetMessageID = gmailMessageId);
5882
+ }
5883
+ const syncMessageId = this._getMessageIDfromForm();
5884
+ if (syncMessageId) {
5885
+ this._driver.getGmailMessageIdForSyncDraftId(syncMessageId).then(gmailMessageId => {
5886
+ this._initialMessageId = gmailMessageId;
5887
+ this._messageId = gmailMessageId;
5888
+ }).catch(() => {
5889
+ //do nothing because this means the message hasn't been saved yet
5890
+ });
5891
+ this._driver.reportRecentSyncDraftId(syncMessageId);
5892
+ this._stopper.onValue(() => {
5893
+ this._driver.reportDraftClosed(syncMessageId);
5894
+ });
6095
5895
  } else {
6096
- this._targetMessageID = this._getTargetMessageID();
6097
- this._messageId = this._initialMessageId = this._getMessageIDfromForm();
6098
- this._threadID = this._getThreadID();
5896
+ this._driver.getLogger().error(new Error('Draft is missing sync draft id'));
6099
5897
  }
5898
+ const legacyThreadIdElement = this._element.querySelector('input[name="lts"]');
5899
+ if (legacyThreadIdElement && typeof legacyThreadIdElement.value === 'string') this._threadID = legacyThreadIdElement.value;
6100
5900
  }
6101
5901
  _updateComposeFullscreenState() {
6102
5902
  if (this._isInlineReplyForm) {
@@ -6597,37 +6397,24 @@ class GmailComposeView {
6597
6397
  return this._initialMessageId;
6598
6398
  }
6599
6399
 
6600
- // For use only when isUsingSyncAPI() is true — gets the draft ID
6601
- // from the input that used to hold the hex message ID. Still does not
6602
- // populate until first save.
6400
+ /**
6401
+ * gets the draft ID
6402
+ * from the input that used to hold the hex message ID. Still does not
6403
+ * populate until first save.
6404
+ */
6603
6405
  _getDraftIDfromForm() {
6604
6406
  const value = this._messageIDElement && this._messageIDElement.value || null;
6605
6407
  if (typeof value === 'string' && value !== 'undefined' && value !== 'null') {
6606
- if (this._driver.isUsingSyncAPI()) {
6607
- return value.replace('#', '').replace('msg-a:', '');
6608
- } else {
6609
- this._driver.getLogger().error(new Error('Invalid draft id in element'), {
6610
- value
6611
- });
6612
- }
6408
+ return value.replace('#', '').replace('msg-a:', '');
6613
6409
  }
6614
6410
  return null;
6615
6411
  }
6616
6412
  _getMessageIDfromForm() {
6617
6413
  const value = this._messageIDElement && this._messageIDElement.value || null;
6618
6414
  if (typeof value === 'string' && value !== 'undefined' && value !== 'null') {
6619
- if (this._driver.isUsingSyncAPI()) {
6620
- return value.replace('#', ''); //annoyingly the hash is included
6621
- } else {
6622
- if (/^[0-9a-f]+$/i.test(value)) {
6623
- return value;
6624
- } else {
6625
- this._driver.getLogger().error(new Error('Invalid message id in element'), {
6626
- value
6627
- });
6628
- }
6629
- }
6415
+ return value.replace('#', ''); //annoyingly the hash is included
6630
6416
  }
6417
+
6631
6418
  return null;
6632
6419
  }
6633
6420
  getMessageID() {
@@ -6640,31 +6427,23 @@ class GmailComposeView {
6640
6427
  return this._threadID;
6641
6428
  }
6642
6429
  async getCurrentDraftID() {
6643
- if (this._driver.isUsingSyncAPI()) {
6644
- // This function is mostly a mirror of _getDraftIDimplementation, but
6645
- // instead of waiting when finding out it's not saved, just returns null.
6646
- const draftID = this._getDraftIDfromForm();
6647
- if (this._messageId) {
6648
- return draftID;
6649
- } else {
6650
- const syncMessageId = this._getMessageIDfromForm();
6651
- if (syncMessageId) {
6652
- try {
6653
- // If this succeeds, then the draft must exist on the server and we
6654
- // can safely return the draft id we know.
6655
- await this._driver.getGmailMessageIdForSyncDraftId(syncMessageId);
6656
- } catch (e) {
6657
- // ignore error, it's probably that the draft isn't saved yet.
6658
- return null;
6659
- }
6660
- return draftID;
6661
- }
6662
- }
6430
+ // This function is mostly a mirror of _getDraftIDimplementation, but
6431
+ // instead of waiting when finding out it's not saved, just returns null.
6432
+ const draftID = this._getDraftIDfromForm();
6433
+ if (this._messageId) {
6434
+ return draftID;
6663
6435
  } else {
6664
- if (!this.getMessageID()) {
6665
- return null;
6666
- } else {
6667
- return this.getDraftID();
6436
+ const syncMessageId = this._getMessageIDfromForm();
6437
+ if (syncMessageId) {
6438
+ try {
6439
+ // If this succeeds, then the draft must exist on the server and we
6440
+ // can safely return the draft id we know.
6441
+ await this._driver.getGmailMessageIdForSyncDraftId(syncMessageId);
6442
+ } catch (e) {
6443
+ // ignore error, it's probably that the draft isn't saved yet.
6444
+ return null;
6445
+ }
6446
+ return draftID;
6668
6447
  }
6669
6448
  }
6670
6449
  }
@@ -6676,115 +6455,32 @@ class GmailComposeView {
6676
6455
  return draftIDpromise;
6677
6456
  }
6678
6457
  async _getDraftIDimplementation() {
6679
- if (this._driver.isUsingSyncAPI()) {
6680
- const draftID = this._getDraftIDfromForm();
6458
+ const draftID = this._getDraftIDfromForm();
6681
6459
 
6682
- // we want to keep the semantics that getDraftID doesn't return until
6683
- // the draft is actually saved on Gmail's servers
6684
- if (this._messageId) {
6685
- // if we have a messageId that means there is a draft on the server
6686
- return draftID;
6687
- } else {
6688
- // there may be a draft on the server, so let's find out
6689
- const syncMessageId = this._getMessageIDfromForm();
6690
- if (syncMessageId) {
6691
- try {
6692
- // If this succeeds, then the draft must exist on the server and we
6693
- // can safely return the draft id we know.
6694
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
6695
- const gmailMessageId = await this._driver.getGmailMessageIdForSyncDraftId(syncMessageId);
6696
- } catch (e) {
6697
- // draft doesn't exist so we wait until it does
6698
- await this._eventStream.filter(_ref8 => {
6699
- let {
6700
- eventName
6701
- } = _ref8;
6702
- return eventName === 'draftSaved';
6703
- }).beforeEnd(() => null).map(() => this._getDraftIDfromForm()).take(1).toPromise();
6704
- }
6705
- return draftID;
6706
- }
6707
- }
6460
+ // we want to keep the semantics that getDraftID doesn't return until
6461
+ // the draft is actually saved on Gmail's servers
6462
+ if (this._messageId) {
6463
+ // if we have a messageId that means there is a draft on the server
6464
+ return draftID;
6708
6465
  } else {
6709
- let i = -1;
6710
- let lastDebugData = null;
6711
- try {
6712
- // If this compose view doesn't have a message id yet, wait until it gets
6713
- // one or it's closed.
6714
- if (!this._messageId) {
6715
- await this._eventStream.filter(event => event.eventName === 'messageIDChange').beforeEnd(() => null).take(1).toPromise();
6716
- if (!this._messageId) {
6717
- // The compose was closed before it got an id.
6718
- return null;
6719
- }
6720
- }
6721
-
6722
- // We make an AJAX request against gmail to find the draft ID for our
6723
- // current message ID. However, our message ID can change before that
6724
- // request finishes. If we fail to get our draft ID and we see that our
6725
- // message ID has changed since we made the request, then we try again.
6726
- let lastMessageId = null;
6727
-
6728
- // eslint-disable-next-line no-constant-condition
6729
- while (true) {
6730
- i++;
6731
- const messageId = this._messageId;
6732
- if (!messageId) {
6733
- throw new Error('Should not happen');
6734
- }
6735
- if (lastMessageId === messageId) {
6736
- // It's possible that the server received a draft save request from us
6737
- // already, causing the draft id lookup to fail, but we haven't gotten
6738
- // the draft save response yet. Wait for that response to finish and
6739
- // keep trying if it looks like that might be the case.
6740
- if (this._draftSaving) {
6741
- await this._eventStream.filter(event => event.eventName === 'messageIDChange').beforeEnd(() => null).take(1).toPromise();
6742
- continue;
6743
- }
6744
-
6745
- // maaaaybe the draft is saving, but we failed to detect that.
6746
- // Let's log whether things would've worked out a little in the future.
6747
- setTimeout(async () => {
6748
- const newMessageId = this._messageId;
6749
- if (!newMessageId) {
6750
- throw new Error('Should not happen');
6751
- }
6752
- const {
6753
- draftID,
6754
- debugData
6755
- } = await this._driver.getDraftIDForMessageID(newMessageId, true);
6756
- const err = new Error('Failed to read draft ID -- after check');
6757
- this._driver.getLogger().error(err, {
6758
- message: 'getDraftID error -- after check',
6759
- messageIdChanged: messageId !== newMessageId,
6760
- gotDraftID: draftID != null,
6761
- debugData: draftID ? null : debugData
6762
- });
6763
- }, 10 * 1000);
6764
- throw new Error('Failed to read draft ID');
6765
- }
6766
- lastMessageId = messageId;
6767
- const {
6768
- draftID,
6769
- debugData
6770
- } = await this._driver.getDraftIDForMessageID(messageId);
6771
- lastDebugData = debugData;
6772
- if (draftID) {
6773
- return draftID;
6774
- }
6466
+ // there may be a draft on the server, so let's find out
6467
+ const syncMessageId = this._getMessageIDfromForm();
6468
+ if (syncMessageId) {
6469
+ try {
6470
+ // If this succeeds, then the draft must exist on the server and we
6471
+ // can safely return the draft id we know.
6472
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
6473
+ const gmailMessageId = await this._driver.getGmailMessageIdForSyncDraftId(syncMessageId);
6474
+ } catch (e) {
6475
+ // draft doesn't exist so we wait until it does
6476
+ await this._eventStream.filter(_ref8 => {
6477
+ let {
6478
+ eventName
6479
+ } = _ref8;
6480
+ return eventName === 'draftSaved';
6481
+ }).beforeEnd(() => null).map(() => this._getDraftIDfromForm()).take(1).toPromise();
6775
6482
  }
6776
- } catch (err) {
6777
- this._driver.getLogger().error(err, {
6778
- message: 'getDraftID error',
6779
- removedFromDOM: !document.contains(this._element),
6780
- destroyed: this._destroyed,
6781
- isFullscreen: this._isFullscreen,
6782
- isStandalone: this._isStandalone,
6783
- emailWasSent: this._emailWasSent,
6784
- i,
6785
- lastDebugData
6786
- });
6787
- throw err;
6483
+ return draftID;
6788
6484
  }
6789
6485
  }
6790
6486
  }
@@ -6932,7 +6628,7 @@ class GmailComposeView {
6932
6628
  this._lastSelectionRange = lastSelectionRange;
6933
6629
  }
6934
6630
  registerRequestModifier(modifier) {
6935
- const keyId = this._driver.isUsingSyncAPI() ? this._getDraftIDfromForm() : this.getComposeID();
6631
+ const keyId = this._getDraftIDfromForm();
6936
6632
  if (!keyId) throw new Error('keyId should be set here');
6937
6633
  const modifierId = this._driver.getPageCommunicator().registerComposeRequestModifier(keyId, this._driver.getAppId());
6938
6634
  this._requestModifiers[modifierId] = modifier;
@@ -6945,7 +6641,7 @@ class GmailComposeView {
6945
6641
  if (this._isListeningToAjaxInterceptStream) {
6946
6642
  return;
6947
6643
  }
6948
- const keyId = this._driver.isUsingSyncAPI() ? this._getDraftIDfromForm() : this.getComposeID();
6644
+ const keyId = this._getDraftIDfromForm();
6949
6645
  if (!keyId) throw new Error('keyId should be set here');
6950
6646
  this._driver.getPageCommunicator().ajaxInterceptStream.filter(_ref9 => {
6951
6647
  let {
@@ -8134,26 +7830,13 @@ class GmailThreadRowView {
8134
7830
  let counts = this._counts;
8135
7831
  if (!counts) {
8136
7832
  const recipientsElement = (0,querySelectorOrFail/* default */.Z)(this._elements[0], 'td div.yW');
8137
- if (this._driver.isUsingSyncAPI()) {
8138
- const draftCount = recipientsElement.querySelectorAll('.boq').length;
8139
- const messageCountMatch = recipientsElement.querySelector('.bx0');
8140
- const messageCount = messageCountMatch && messageCountMatch.innerHTML ? +messageCountMatch.innerHTML : draftCount ? 0 : 1;
8141
- counts = this._counts = {
8142
- messageCount,
8143
- draftCount
8144
- };
8145
- } else {
8146
- const [preDrafts, drafts] = recipientsElement.innerHTML.split(/<font color=[^>]+>[^>]+<\/font>/);
8147
- const preDraftsWithoutNames = preDrafts.replace(/<span\b[^>]*>.*?<\/span>/g, '');
8148
- const messageCountMatch = preDraftsWithoutNames.match(/\((\d+)\)/);
8149
- const messageCount = messageCountMatch ? +messageCountMatch[1] : preDrafts ? 1 : 0;
8150
- const draftCountMatch = drafts && drafts.match(/\((\d+)\)/);
8151
- const draftCount = draftCountMatch ? +draftCountMatch[1] : drafts != null ? 1 : 0;
8152
- counts = this._counts = {
8153
- messageCount,
8154
- draftCount
8155
- };
8156
- }
7833
+ const draftCount = recipientsElement.querySelectorAll('.boq').length;
7834
+ const messageCountMatch = recipientsElement.querySelector('.bx0');
7835
+ const messageCount = messageCountMatch && messageCountMatch.innerHTML ? +messageCountMatch.innerHTML : draftCount ? 0 : 1;
7836
+ counts = this._counts = {
7837
+ messageCount,
7838
+ draftCount
7839
+ };
8157
7840
  }
8158
7841
  return counts;
8159
7842
  }
@@ -8662,23 +8345,19 @@ class GmailThreadRowView {
8662
8345
  if (this._cachedThreadID) {
8663
8346
  return this._cachedThreadID;
8664
8347
  }
8665
- if (this._driver.isUsingSyncAPI()) {
8666
- const elementWithId = flatten_default()(this._elements.map(el => Array.from(el.querySelectorAll('[data-thread-id][data-legacy-thread-id]')))).filter(Boolean)[0];
8667
- if (elementWithId) {
8668
- this._cachedSyncThreadID = elementWithId.getAttribute('data-thread-id').replace('#', '');
8669
- this._cachedThreadID = elementWithId.getAttribute('data-legacy-thread-id').replace('#', '');
8670
- return this._cachedThreadID;
8671
- } else {
8672
- const threadID = this._driver.getThreadRowIdentifier().getThreadIdForThreadRow(this, this._elements);
8673
- this._cachedSyncThreadID = threadID;
8674
- if (threadID) {
8675
- this._driver.getOldGmailThreadIdFromSyncThreadId(threadID).then(oldGmailThreadID => {
8676
- this._cachedThreadID = oldGmailThreadID;
8677
- });
8678
- }
8679
- }
8348
+ const elementWithId = flatten_default()(this._elements.map(el => Array.from(el.querySelectorAll('[data-thread-id][data-legacy-thread-id]')))).filter(Boolean)[0];
8349
+ if (elementWithId) {
8350
+ this._cachedSyncThreadID = elementWithId.getAttribute('data-thread-id').replace('#', '');
8351
+ this._cachedThreadID = elementWithId.getAttribute('data-legacy-thread-id').replace('#', '');
8352
+ return this._cachedThreadID;
8680
8353
  } else {
8681
- this._cachedThreadID = this._driver.getThreadRowIdentifier().getThreadIdForThreadRow(this, this._elements);
8354
+ const threadID = this._driver.getThreadRowIdentifier().getThreadIdForThreadRow(this, this._elements);
8355
+ this._cachedSyncThreadID = threadID;
8356
+ if (threadID) {
8357
+ this._driver.getOldGmailThreadIdFromSyncThreadId(threadID).then(oldGmailThreadID => {
8358
+ this._cachedThreadID = oldGmailThreadID;
8359
+ });
8360
+ }
8682
8361
  }
8683
8362
  return this._cachedThreadID;
8684
8363
  }
@@ -8702,12 +8381,8 @@ class GmailThreadRowView {
8702
8381
  }
8703
8382
  getDraftID() {
8704
8383
  if (this._cachedSyncDraftIDPromise) return this._cachedSyncDraftIDPromise;
8705
- if (this._driver.isUsingSyncAPI()) {
8706
- const elementWithId = flatten_default()(this._elements.map(el => Array.from(el.querySelectorAll('[data-standalone-draft-id]')))).filter(Boolean)[0];
8707
- this._cachedSyncDraftIDPromise = Promise.resolve(elementWithId ? elementWithId.getAttribute('data-standalone-draft-id').replace('#msg-a:', '') : null);
8708
- } else {
8709
- this._cachedSyncDraftIDPromise = this._driver.getThreadRowIdentifier().getDraftIdForThreadRow(this);
8710
- }
8384
+ const elementWithId = flatten_default()(this._elements.map(el => Array.from(el.querySelectorAll('[data-standalone-draft-id]')))).filter(Boolean)[0];
8385
+ this._cachedSyncDraftIDPromise = Promise.resolve(elementWithId ? elementWithId.getAttribute('data-standalone-draft-id').replace('#msg-a:', '') : null);
8711
8386
  return this._cachedSyncDraftIDPromise;
8712
8387
  }
8713
8388
  getVisibleDraftCount() {
@@ -9604,57 +9279,18 @@ async function getGmailMessageIdForSyncMessageId(driver, syncMessageID) {
9604
9279
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
9605
9280
  /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
9606
9281
  /* harmony export */ });
9607
- /* harmony import */ var ud__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1010);
9608
- /* harmony import */ var _dom_driver_gmail_gmail_response_processor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6139);
9609
- /* harmony import */ var _getSyncThreadsForSearch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7889);
9610
- /* harmony import */ var _gmailAjax__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4013);
9611
- /* harmony import */ var _getAccountUrlPart__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4653);
9282
+ /* harmony import */ var ud__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1010);
9283
+ /* harmony import */ var _getSyncThreadsForSearch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7889);
9612
9284
  /* module decorator */ module = __webpack_require__.hmd(module);
9613
9285
 
9614
9286
 
9615
-
9616
-
9617
-
9618
9287
  async function getGmailThreadIdForRfcMessageId(driver, rfcMessageId) {
9619
- if (driver.isUsingSyncAPI && driver.isUsingSyncAPI()) {
9620
- const {
9621
- threads: threadDescriptors
9622
- } = await (0,_getSyncThreadsForSearch__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(driver, 'rfc822msgid:' + rfcMessageId);
9623
- return threadDescriptors[0].oldGmailThreadID;
9624
- } else {
9625
- return forOldAPI(driver, rfcMessageId);
9626
- }
9627
- }
9628
- async function forOldAPI(driver, rfcMessageId) {
9629
- const response = await (0,_gmailAjax__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)({
9630
- method: 'POST',
9631
- url: `https://mail.google.com/mail${(0,_getAccountUrlPart__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)()}/`,
9632
- data: {
9633
- ik: driver.getPageCommunicator().getIkValue(),
9634
- at: await driver.getGmailActionToken(),
9635
- ui: '2',
9636
- view: 'tl',
9637
- start: '0',
9638
- num: '1',
9639
- rt: 'c',
9640
- search: 'query',
9641
- q: `rfc822msgid:${rfcMessageId}`
9642
- },
9643
- xhrFields: {
9644
- withCredentials: true
9645
- },
9646
- canRetry: true,
9647
- headers: {
9648
- 'content-type': 'application/x-www-form-urlencoded;charset=UTF-8'
9649
- }
9650
- });
9651
- const threads = (0,_dom_driver_gmail_gmail_response_processor__WEBPACK_IMPORTED_MODULE_0__/* .extractThreads */ .MA)(response.text);
9652
- if (threads.length !== 1) {
9653
- throw new Error("Failed to find gmail thread id for rfc message id. Message may not exist in user's account.");
9654
- }
9655
- return threads[0].gmailThreadId;
9288
+ const {
9289
+ threads: threadDescriptors
9290
+ } = await (0,_getSyncThreadsForSearch__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(driver, 'rfc822msgid:' + rfcMessageId);
9291
+ return threadDescriptors[0].oldGmailThreadID;
9656
9292
  }
9657
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,ud__WEBPACK_IMPORTED_MODULE_4__.defn)(module, getGmailThreadIdForRfcMessageId));
9293
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,ud__WEBPACK_IMPORTED_MODULE_1__.defn)(module, getGmailThreadIdForRfcMessageId));
9658
9294
 
9659
9295
  /***/ }),
9660
9296
 
@@ -10842,7 +10478,7 @@ options.insert = htmlElement => {
10842
10478
  htmlElement.setAttribute('data-inboxsdk-version',
10843
10479
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- this is injected by webpack
10844
10480
  ///@ts-ignore
10845
- "2.1.10-1698689204956-73cb5711525b05a3");
10481
+ "2.1.12-1699623720812-466cb297eff34e1f");
10846
10482
  document.head.append(htmlElement);
10847
10483
  };
10848
10484
  options.domAPI = (styleDomAPI_default());
@@ -11093,7 +10729,6 @@ function logError(err, details, context) {
11093
10729
  const {
11094
10730
  appIds,
11095
10731
  implVersion,
11096
- isUsingSyncAPI,
11097
10732
  userEmailHash
11098
10733
  } = context;
11099
10734
  const loaderVersion = context.loaderVersion || version/* BUILD_VERSION */.b;
@@ -11134,7 +10769,6 @@ function logError(err, details, context) {
11134
10769
  stuffToLog.push('\nExtension Id:', getExtensionId());
11135
10770
  stuffToLog.push('\nInboxSDK Loader Version:', loaderVersion);
11136
10771
  stuffToLog.push('\nInboxSDK Implementation Version:', implVersion);
11137
- stuffToLog.push('\nIs Using Sync API:', isUsingSyncAPI);
11138
10772
  console.error(...stuffToLog);
11139
10773
  const report = {
11140
10774
  message: err && err.message || err,
@@ -11148,7 +10782,6 @@ function logError(err, details, context) {
11148
10782
  extensionId: getExtensionId(),
11149
10783
  loaderVersion: loaderVersion,
11150
10784
  implementationVersion: implVersion,
11151
- isUsingSyncAPI,
11152
10785
  origin: document.location.origin,
11153
10786
  timestamp: Date.now() * 1000
11154
10787
  };
@@ -11372,7 +11005,6 @@ let _extensionLoaderVersion;
11372
11005
  let _extensionImplVersion;
11373
11006
  let _extensionUserEmailHash;
11374
11007
  let _extensionUseEventTracking = false;
11375
- let _isUsingSyncAPI = undefined;
11376
11008
  const _sessionId = getSessionId();
11377
11009
  const _loggedDeprecatedMessages = new Set();
11378
11010
 
@@ -11433,9 +11065,6 @@ class Logger {
11433
11065
  shouldTrackEverything() {
11434
11066
  return _extensionUserEmailHash === 'ca05afe92819df590a4196c31814fdb24050e8f49d8a41613f3d6cfb5729c785';
11435
11067
  }
11436
- setIsUsingSyncAPI(isUsing) {
11437
- _isUsingSyncAPI = isUsing;
11438
- }
11439
11068
  static run(cb, details) {
11440
11069
  try {
11441
11070
  return cb();
@@ -11679,8 +11308,7 @@ function _logError(err, details, appId, sentByApp) {
11679
11308
  appIds: getAppIdsProperty(appId),
11680
11309
  loaderVersion: _extensionLoaderVersion,
11681
11310
  implVersion: _extensionImplVersion,
11682
- userEmailHash: _extensionUserEmailHash,
11683
- isUsingSyncAPI: _isUsingSyncAPI
11311
+ userEmailHash: _extensionUserEmailHash
11684
11312
  });
11685
11313
  }
11686
11314
  function makeLoggedFunction(func, name) {
@@ -11715,7 +11343,6 @@ function _trackEvent(appId, type, eventName, properties) {
11715
11343
  emailHash: _extensionUserEmailHash,
11716
11344
  loaderVersion: _extensionLoaderVersion,
11717
11345
  implementationVersion: _extensionImplVersion,
11718
- isUsingSyncAPI: _isUsingSyncAPI,
11719
11346
  properties: properties
11720
11347
  };
11721
11348
  if (type != 'gmail') {
@@ -11989,7 +11616,7 @@ if (!__webpack_require__.g.__InboxSDKImpLoader) {
11989
11616
  await onready;
11990
11617
  const {
11991
11618
  makePlatformImplementation
11992
- } = await Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2180));
11619
+ } = await Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2384));
11993
11620
  return makePlatformImplementation(appId, opts, {
11994
11621
  piMainStarted,
11995
11622
  piLoadStarted,
@@ -12677,7 +12304,7 @@ function _updateNavMenu(members, newRouteViewDriver) {
12677
12304
 
12678
12305
  /***/ }),
12679
12306
 
12680
- /***/ 2180:
12307
+ /***/ 2384:
12681
12308
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
12682
12309
 
12683
12310
  "use strict";
@@ -13386,40 +13013,37 @@ class GmailMessageView {
13386
13013
  this._monitorEmailAddressHovering();
13387
13014
  this._setupMoreMenuWatching();
13388
13015
  let partialReadyStream;
13389
- if (driver.isUsingSyncAPI()) {
13390
- // handle the case that the data-message-id is available, but the data-legacy-message-id is not
13391
- // this happens when you're looking at a thread, and then you reply to a message, the message id is generated
13392
- // client side, so the new message added (from your reply) shows up in the UI right away and has a data-message-id but
13393
- // because it hasn't been synced to the server it does not have a data-legacy-messag-id
13394
- // so we wait until the message has been synced to the server before saying this is ready
13395
- const messageIdElement = this._element.querySelector('[data-message-id]');
13396
- if (messageIdElement) {
13397
- const syncMessageId = messageIdElement.getAttribute('data-message-id');
13398
- if (!syncMessageId) throw new Error('data-message-id attribute has no value');
13399
-
13400
- // Only respect data-legacy-message-id if data-message-id is not the id
13401
- // of a draft we've seen recently, in order to work around a Gmail bug.
13402
- // https://github.com/StreakYC/GmailSDK/issues/515#issuecomment-457420619
13403
- if (messageIdElement.hasAttribute('data-legacy-message-id') && !this._driver.isRecentSyncDraftId(syncMessageId.replace('#', ''))) {
13404
- partialReadyStream = kefir_esm.constant(null);
13405
- } else {
13406
- // we have a data message id, but not the legacy message id. So now we have to poll for the gmail message id
13407
- partialReadyStream = kefir_esm.fromPromise((async () => {
13408
- for (let ii = 0; ii < 10; ii++) {
13409
- try {
13410
- const gmailMessageId = await this._driver.getGmailMessageIdForSyncMessageId(syncMessageId.replace('#', ''));
13411
- // set the legacy message id attribute so subsequent calls to getMessageId find the legacy message id in the dom
13412
- messageIdElement.setAttribute('data-legacy-message-id', gmailMessageId);
13413
- return null;
13414
- } catch (e) {
13415
- await new Promise(resolve => setTimeout(resolve, ii * 200));
13416
- }
13417
- }
13418
- throw new Error('gmail message id never became available');
13419
- })());
13420
- }
13421
- } else {
13016
+
13017
+ // handle the case that the data-message-id is available, but the data-legacy-message-id is not
13018
+ // this happens when you're looking at a thread, and then you reply to a message, the message id is generated
13019
+ // client side, so the new message added (from your reply) shows up in the UI right away and has a data-message-id but
13020
+ // because it hasn't been synced to the server it does not have a data-legacy-messag-id
13021
+ // so we wait until the message has been synced to the server before saying this is ready
13022
+ const messageIdElement = this._element.querySelector('[data-message-id]');
13023
+ if (messageIdElement) {
13024
+ const syncMessageId = messageIdElement.getAttribute('data-message-id');
13025
+ if (!syncMessageId) throw new Error('data-message-id attribute has no value');
13026
+
13027
+ // Only respect data-legacy-message-id if data-message-id is not the id
13028
+ // of a draft we've seen recently, in order to work around a Gmail bug.
13029
+ // https://github.com/StreakYC/GmailSDK/issues/515#issuecomment-457420619
13030
+ if (messageIdElement.hasAttribute('data-legacy-message-id') && !this._driver.isRecentSyncDraftId(syncMessageId.replace('#', ''))) {
13422
13031
  partialReadyStream = kefir_esm.constant(null);
13032
+ } else {
13033
+ // we have a data message id, but not the legacy message id. So now we have to poll for the gmail message id
13034
+ partialReadyStream = kefir_esm.fromPromise((async () => {
13035
+ for (let ii = 0; ii < 10; ii++) {
13036
+ try {
13037
+ const gmailMessageId = await this._driver.getGmailMessageIdForSyncMessageId(syncMessageId.replace('#', ''));
13038
+ // set the legacy message id attribute so subsequent calls to getMessageId find the legacy message id in the dom
13039
+ messageIdElement.setAttribute('data-legacy-message-id', gmailMessageId);
13040
+ return null;
13041
+ } catch (e) {
13042
+ await new Promise(resolve => setTimeout(resolve, ii * 200));
13043
+ }
13044
+ }
13045
+ throw new Error('gmail message id never became available');
13046
+ })());
13423
13047
  }
13424
13048
  } else {
13425
13049
  partialReadyStream = kefir_esm.constant(null);
@@ -13498,23 +13122,13 @@ class GmailMessageView {
13498
13122
  async getRecipientsFull() {
13499
13123
  let recipients = this._recipientsFull;
13500
13124
  if (recipients) return recipients;
13501
- if (this._driver.isUsingSyncAPI()) {
13502
- const threadID = this._threadViewDriver.getInternalID();
13503
- recipients = this._recipientsFull = await this._driver.getPageCommunicator().getMessageRecipients(threadID, this._element);
13504
- if (!recipients) {
13505
- this._driver.getLogger().error(new Error('Failed to find message recipients from response'), {
13506
- threadID
13507
- });
13508
- recipients = this._recipientsFull = this.getRecipients();
13509
- }
13510
- } else {
13511
- const receipientSpans = Array.from(this._element.querySelectorAll('.hb span[email]'));
13512
- recipients = this._recipientsFull = receipientSpans.map(span => {
13513
- return this._getUpdatedContact({
13514
- name: span.getAttribute('name'),
13515
- emailAddress: span.getAttribute('email') || ''
13516
- });
13125
+ const threadID = this._threadViewDriver.getInternalID();
13126
+ recipients = this._recipientsFull = await this._driver.getPageCommunicator().getMessageRecipients(threadID, this._element);
13127
+ if (!recipients) {
13128
+ this._driver.getLogger().error(new Error('Failed to find message recipients from response'), {
13129
+ threadID
13517
13130
  });
13131
+ recipients = this._recipientsFull = this.getRecipients();
13518
13132
  }
13519
13133
  return recipients;
13520
13134
  }
@@ -14778,7 +14392,7 @@ class GmailThreadView {
14778
14392
  return kefir_esm.constant(null);
14779
14393
  }).toProperty();
14780
14394
  let combinedReadyStream;
14781
- if (driver.getOpts().REQUESTED_API_VERSION === 1 && driver.isUsingSyncAPI()) {
14395
+ if (driver.getOpts().REQUESTED_API_VERSION === 1) {
14782
14396
  combinedReadyStream = kefir_esm.combine([waitForSidebarReady, kefir_esm.fromPromise(this.getThreadIDAsync())]);
14783
14397
  } else {
14784
14398
  combinedReadyStream = waitForSidebarReady;
@@ -15019,19 +14633,17 @@ class GmailThreadView {
15019
14633
  getThreadID() {
15020
14634
  if (this._threadID) return this._threadID;
15021
14635
  let threadID;
15022
- if (this._driver.isUsingSyncAPI()) {
15023
- const idElement = this._element.querySelector('[data-thread-perm-id]');
15024
- if (!idElement) throw new Error('threadID element not found');
15025
- const syncThreadID = this._syncThreadID = idElement.getAttribute('data-thread-perm-id');
15026
- if (!syncThreadID) throw new Error('syncThreadID attribute with no value');
15027
- threadID = idElement.getAttribute('data-legacy-thread-id');
15028
- if (!threadID) {
15029
- const err = new Error('Failed to get id for thread: data-legacy-thread-id attribute missing');
15030
- this._driver.getLogger().error(err); // throw err;
15031
- // Fall back to old behavior instead of throwing. Probably not super sensible, but
15032
- // this is a deprecated method and preserving the current behavior is
15033
- // probably an okay choice.
15034
- }
14636
+ const idElement = this._element.querySelector('[data-thread-perm-id]');
14637
+ if (!idElement) throw new Error('threadID element not found');
14638
+ const syncThreadID = this._syncThreadID = idElement.getAttribute('data-thread-perm-id');
14639
+ if (!syncThreadID) throw new Error('syncThreadID attribute with no value');
14640
+ threadID = idElement.getAttribute('data-legacy-thread-id');
14641
+ if (!threadID) {
14642
+ const err = new Error('Failed to get id for thread: data-legacy-thread-id attribute missing');
14643
+ this._driver.getLogger().error(err); // throw err;
14644
+ // Fall back to old behavior instead of throwing. Probably not super sensible, but
14645
+ // this is a deprecated method and preserving the current behavior is
14646
+ // probably an okay choice.
15035
14647
  }
15036
14648
 
15037
14649
  if (!threadID) {
@@ -15053,29 +14665,13 @@ class GmailThreadView {
15053
14665
  }
15054
14666
  async getThreadIDAsync() {
15055
14667
  let threadID;
15056
- if (this._driver.isUsingSyncAPI()) {
15057
- const idElement = this._element.querySelector('[data-thread-perm-id]');
15058
- if (!idElement) throw new Error('threadID element not found');
15059
- const syncThreadID = this._syncThreadID = idElement.getAttribute('data-thread-perm-id');
15060
- if (!syncThreadID) throw new Error('syncThreadID attribute with no value');
15061
- this._threadID = threadID = idElement.getAttribute('data-legacy-thread-id');
15062
- if (!threadID) {
15063
- this._threadID = threadID = await this._driver.getOldGmailThreadIdFromSyncThreadId(syncThreadID);
15064
- }
15065
- } else {
15066
- if (this._isPreviewedThread) {
15067
- threadID = this._driver.getPageCommunicator().getCurrentThreadID(this._element, true);
15068
- } else {
15069
- const params = this._routeViewDriver ? this._routeViewDriver.getParams() : null;
15070
- if (params && params.threadID) {
15071
- threadID = params.threadID;
15072
- } else {
15073
- const err = new Error('Failed to get id for thread');
15074
- this._driver.getLogger().error(err);
15075
- throw err;
15076
- }
15077
- }
15078
- this._threadID = threadID;
14668
+ const idElement = this._element.querySelector('[data-thread-perm-id]');
14669
+ if (!idElement) throw new Error('threadID element not found');
14670
+ const syncThreadID = this._syncThreadID = idElement.getAttribute('data-thread-perm-id');
14671
+ if (!syncThreadID) throw new Error('syncThreadID attribute with no value');
14672
+ this._threadID = threadID = idElement.getAttribute('data-legacy-thread-id');
14673
+ if (!threadID) {
14674
+ this._threadID = threadID = await this._driver.getOldGmailThreadIdFromSyncThreadId(syncThreadID);
15079
14675
  }
15080
14676
  if (this._threadID) return this._threadID;else throw new Error('Failed to get id for thread');
15081
14677
  }
@@ -18601,14 +18197,26 @@ function showAppIdWarning(driver) {
18601
18197
  }
18602
18198
  // EXTERNAL MODULE: ./src/platform-implementation-js/dom-driver/gmail/makePageParserTree.ts + 1 modules
18603
18199
  var makePageParserTree = __webpack_require__(6107);
18604
- ;// CONCATENATED MODULE: ./src/platform-implementation-js/lib/common-page-communicator.ts
18200
+ ;// CONCATENATED MODULE: ./src/platform-implementation-js/lib/dom/custom-events.ts
18201
+ var CustomDomEvent = {
18202
+ tellMeThisThreadIdByDatabase: "inboxSDKtellMeThisThreadIdByDatabase",
18203
+ tellMeThisThreadIdByClick: "inboxSDKtellMeThisThreadIdByClick"
18204
+ };
18205
+ ;// CONCATENATED MODULE: ./src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.ts
18206
+
18605
18207
 
18606
18208
 
18607
18209
 
18608
18210
 
18609
- class CommonPageCommunicator {
18211
+
18212
+
18213
+ // This is intended to be instantiated from makeXhrInterceptor, since it depends
18214
+ // on the injected script, and if it's not instantiated elsewhere, you know that
18215
+ // if you have an instance of this, then the injected script is present and this
18216
+ // will work.
18217
+ class GmailPageCommunicator {
18610
18218
  constructor() {
18611
- this.ajaxInterceptStream = kefir_esm.fromEvents(document, 'inboxSDKajaxIntercept').map(x => x.detail);
18219
+ this.ajaxInterceptStream = kefir_esm["default"].fromEvents(document, 'inboxSDKajaxIntercept').map(x => x.detail);
18612
18220
  }
18613
18221
  getUserEmailAddress() {
18614
18222
  const s = document.head.getAttribute('data-inboxsdk-user-email-address');
@@ -18636,9 +18244,6 @@ class CommonPageCommunicator {
18636
18244
  }
18637
18245
  throw new Error("Failed to look up 'ik' value");
18638
18246
  }
18639
- isUsingSyncAPI() {
18640
- return false;
18641
- }
18642
18247
  async getXsrfToken() {
18643
18248
  const existingHeader = document.head.getAttribute('data-inboxsdk-xsrf-token');
18644
18249
  if (existingHeader) {
@@ -18679,7 +18284,7 @@ class CommonPageCommunicator {
18679
18284
  }
18680
18285
  pageAjax(opts) {
18681
18286
  const id = `${Date.now()}-${Math.random()}`;
18682
- const promise = kefir_esm.fromEvents(document, 'inboxSDKpageAjaxDone').filter(event => event.detail && event.detail.id === id).take(1).flatMap(event => {
18287
+ const promise = kefir_esm["default"].fromEvents(document, 'inboxSDKpageAjaxDone').filter(event => event.detail && event.detail.id === id).take(1).flatMap(event => {
18683
18288
  if (event.detail.error) {
18684
18289
  const err = Object.assign(new Error(event.detail.message || 'Connection error'), {
18685
18290
  status: event.detail.status
@@ -18687,9 +18292,9 @@ class CommonPageCommunicator {
18687
18292
  if (event.detail.stack) {
18688
18293
  err.stack = event.detail.stack;
18689
18294
  }
18690
- return kefir_esm.constantError(err);
18295
+ return kefir_esm["default"].constantError(err);
18691
18296
  } else {
18692
- return kefir_esm.constant({
18297
+ return kefir_esm["default"].constant({
18693
18298
  text: event.detail.text,
18694
18299
  responseURL: event.detail.responseURL
18695
18300
  });
@@ -18738,23 +18343,6 @@ class CommonPageCommunicator {
18738
18343
  }
18739
18344
  }));
18740
18345
  }
18741
- }
18742
- ;// CONCATENATED MODULE: ./src/platform-implementation-js/lib/dom/custom-events.ts
18743
- var CustomDomEvent = {
18744
- tellMeThisThreadIdByDatabase: "inboxSDKtellMeThisThreadIdByDatabase",
18745
- tellMeThisThreadIdByClick: "inboxSDKtellMeThisThreadIdByClick"
18746
- };
18747
- ;// CONCATENATED MODULE: ./src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.ts
18748
-
18749
-
18750
-
18751
-
18752
-
18753
- // This is intended to be instantiated from makeXhrInterceptor, since it depends
18754
- // on the injected script, and if it's not instantiated elsewhere, you know that
18755
- // if you have an instance of this, then the injected script is present and this
18756
- // will work.
18757
- class GmailPageCommunicator extends CommonPageCommunicator {
18758
18346
  async getMessageDate(threadId, message) {
18759
18347
  return this._getMessageData(threadId, message, 'data-inboxsdk-sortdate', 'inboxSDKtellMeThisMessageDate');
18760
18348
  }
@@ -18764,7 +18352,7 @@ class GmailPageCommunicator extends CommonPageCommunicator {
18764
18352
  async _getMessageData(threadId, message, attribute, eventName) {
18765
18353
  let data = message.getAttribute(attribute);
18766
18354
  if (!data) {
18767
- const [btaiHeader, xsrfToken] = this.isUsingSyncAPI() ? await Promise.all([this.getBtaiHeader(), this.getXsrfToken()]) : [null, null];
18355
+ const [btaiHeader, xsrfToken] = await Promise.all([this.getBtaiHeader(), this.getXsrfToken()]);
18768
18356
  message.dispatchEvent(new CustomEvent(eventName, {
18769
18357
  bubbles: true,
18770
18358
  cancelable: false,
@@ -18831,11 +18419,6 @@ class GmailPageCommunicator extends CommonPageCommunicator {
18831
18419
  if (s == null) throw new Error('Failed to read value');
18832
18420
  return s;
18833
18421
  }
18834
- isUsingSyncAPI() {
18835
- const s = document.head.getAttribute('data-inboxsdk-using-sync-api');
18836
- if (s == null) throw new Error('Failed to read value');
18837
- return s === 'true';
18838
- }
18839
18422
  isConversationViewDisabled() {
18840
18423
  return new Promise(resolve => {
18841
18424
  kefir_esm["default"].fromEvents(document, 'inboxSDKgmonkeyResponse').take(1).onValue(event => {
@@ -18932,11 +18515,7 @@ class GmailPageCommunicator extends CommonPageCommunicator {
18932
18515
  const detail = {
18933
18516
  modifierId
18934
18517
  };
18935
- if (this.isUsingSyncAPI()) {
18936
- detail.draftID = keyId;
18937
- } else {
18938
- detail.composeid = keyId;
18939
- }
18518
+ detail.draftID = keyId;
18940
18519
  document.dispatchEvent(new CustomEvent('inboxSDKregisterComposeRequestModifier', {
18941
18520
  detail,
18942
18521
  bubbles: false,
@@ -18957,9 +18536,9 @@ class GmailPageCommunicator extends CommonPageCommunicator {
18957
18536
  modifyComposeRequest(keyId, modifierId, composeParams) {
18958
18537
  const detail = {
18959
18538
  modifierId,
18960
- composeParams
18539
+ composeParams,
18540
+ draftID: keyId
18961
18541
  };
18962
- if (this.isUsingSyncAPI()) detail.draftID = keyId;else detail.composeid = keyId;
18963
18542
  document.dispatchEvent(new CustomEvent('inboxSDKcomposeRequestModified', {
18964
18543
  detail,
18965
18544
  bubbles: false,
@@ -19415,7 +18994,7 @@ options.insert = htmlElement => {
19415
18994
  htmlElement.setAttribute('data-inboxsdk-version',
19416
18995
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- this is injected by webpack
19417
18996
  ///@ts-ignore
19418
- "2.1.10-1698689204956-73cb5711525b05a3");
18997
+ "2.1.12-1699623720812-466cb297eff34e1f");
19419
18998
  document.head.append(htmlElement);
19420
18999
  };
19421
19000
  options.domAPI = (styleDomAPI_default());
@@ -19440,10 +19019,11 @@ var update = injectStylesIntoStyleTag_default()(mole_view_module/* default */.ZP
19440
19019
 
19441
19020
 
19442
19021
 
19443
-
19444
19022
  const gmail_mole_view_driver_INBOXSDK_CLASS = 'inboxsdk__mole_view';
19445
19023
  class GmailMoleViewDriver {
19446
19024
  static #page;
19025
+ static #moleParentReadyEvent = kefir_bus_default()();
19026
+ static #moleParent;
19447
19027
  static #_ = (() => {
19448
19028
  this.#page = new (page_parser_tree_js_default())(document, {
19449
19029
  logError(err, el) {
@@ -19475,7 +19055,7 @@ class GmailMoleViewDriver {
19475
19055
  ["moleParent"]: {
19476
19056
  fn: root => [root.querySelector(".dw .nH > .nH > .no")].filter(isNotNil/* default */.Z),
19477
19057
  interval(elementCount, timeRunning) {
19478
- return timeRunning <= 5_000 && elementCount === 0 ? 100 : 5_000;
19058
+ return timeRunning <= 15_000 && elementCount === 0 ? 100 : 5_000;
19479
19059
  }
19480
19060
  },
19481
19061
  ["mole"]: {
@@ -19491,6 +19071,20 @@ class GmailMoleViewDriver {
19491
19071
  }
19492
19072
  }
19493
19073
  });
19074
+ const moleParent = this.#page.tree.getAllByTag("moleParent");
19075
+ const moleParentLiveSet = moleParent.subscribe(changes => {
19076
+ for (const change of changes) {
19077
+ switch (change.type) {
19078
+ case 'add':
19079
+ {
19080
+ const el = change.value.getValue();
19081
+ this.#moleParent = el;
19082
+ this.#moleParentReadyEvent.emit(el);
19083
+ moleParentLiveSet.unsubscribe();
19084
+ }
19085
+ }
19086
+ }
19087
+ });
19494
19088
  const moles = this.#page.tree.getAllByTag("mole");
19495
19089
  moles.subscribe(changes => {
19496
19090
  for (const change of changes) {
@@ -19578,47 +19172,54 @@ class GmailMoleViewDriver {
19578
19172
  event.stopPropagation();
19579
19173
  titleButton.onClick.call(null);
19580
19174
  });
19581
- img.src = titleButton.iconUrl;
19175
+ if (titleButton.iconUrl) {
19176
+ img.src = titleButton.iconUrl;
19177
+ }
19582
19178
  titleButtonContainer.insertBefore(img, lastChild);
19583
19179
  });
19584
19180
  }
19585
19181
  }
19586
19182
  (0,querySelectorOrFail/* default */.Z)(this.#element, '.inboxsdk__mole_view_content').appendChild(options.el);
19587
19183
  }
19184
+ #doShow = moleParent => {
19185
+ const insertBefore = moleParent.lastElementChild;
19186
+ if (insertBefore instanceof HTMLElement) {
19187
+ moleParent.insertBefore(this.#element, insertBefore);
19188
+ } else {
19189
+ this.#driver.logger.error(new Error('Mole show invariant violated. `lastMole` is not an HTMLElement'));
19190
+ return;
19191
+ }
19192
+ const dw = moleParent.closest('div.dw');
19193
+ if (dw) {
19194
+ dw.classList.add('inboxsdk__moles_in_use', mole_view_module/* inboxsdkMolesInUse */.Yy);
19195
+ }
19196
+ };
19588
19197
  show() {
19589
- const doShow = moleParent => {
19590
- const insertBefore = moleParent.lastElementChild;
19591
- if (insertBefore instanceof HTMLElement) {
19592
- moleParent.insertBefore(this.#element, insertBefore);
19593
- } else {
19594
- this.#driver.logger.error(new Error('Mole show invariant violated. `lastMole` is not an HTMLElement'));
19595
- return;
19596
- }
19597
- const dw = moleParent.closest('div.dw');
19598
- if (dw) {
19599
- dw.classList.add('inboxsdk__moles_in_use', mole_view_module/* inboxsdkMolesInUse */.Yy);
19600
- }
19601
- };
19602
- const moleParent = gmail_element_getter/* default.getMoleParent */.Z.getMoleParent();
19198
+ const moleParent = GmailMoleViewDriver.#moleParent;
19603
19199
  if (moleParent) {
19604
- doShow(moleParent);
19605
- } else {
19606
- const moleParentReadyEvent = (0,stream_wait_for/* default */.Z)(() => gmail_element_getter/* default.getMoleParent */.Z.getMoleParent()).takeUntilBy(this.#stopper).onValue(doShow);
19607
- // For some users, the mole parent element seems to be lazily loaded by
19608
- // Gmail only once the user has used a compose view or a thread view.
19609
- // If the gmail mode has settled, we've been loaded for 10 seconds, and
19610
- // we don't have the mole parent yet, then force the mole parent to load
19611
- // by opening a compose view and then closing it.
19612
- kefir_esm.fromPromise(gmail_element_getter/* default.waitForGmailModeToSettle */.Z.waitForGmailModeToSettle()).flatMap(() => {
19613
- // delay until we've passed TimestampOnReady + 10 seconds
19614
- return this.#driver.delayToTimeAfterReady(10 * 1000);
19615
- }).takeUntilBy(moleParentReadyEvent).takeUntilBy(this.#stopper).onValue(() => {
19616
- this.#driver.getLogger().eventSdkActive('mole parent force load');
19617
- this.#driver.openNewComposeViewDriver().then(gmailComposeView => {
19618
- gmailComposeView.close();
19619
- });
19620
- });
19200
+ this.#doShow(moleParent);
19201
+ return;
19621
19202
  }
19203
+ const moleParentReadyEvent = GmailMoleViewDriver.#moleParentReadyEvent.takeUntilBy(this.#stopper).onValue(this.#doShow);
19204
+
19205
+ // The mole parent element is lazily loaded by
19206
+ // Gmail only once the user has used a compose view or a thread view.
19207
+ // If the gmail mode has settled, we've been loaded for 10 seconds, and
19208
+ // we don't have the mole parent yet, then force the mole parent to load
19209
+ // by opening a compose view and then closing it.
19210
+ kefir_esm.fromPromise(gmail_element_getter/* default.waitForGmailModeToSettle */.Z.waitForGmailModeToSettle()).flatMap(() => {
19211
+ // delay until we've passed TimestampOnReady + 5 seconds
19212
+ return this.#driver.delayToTimeAfterReady(5_000);
19213
+ }).takeUntilBy(moleParentReadyEvent).takeUntilBy(this.#stopper).onValue(async () => {
19214
+ this.#driver.getLogger().eventSdkActive('mole parent force load');
19215
+ try {
19216
+ document.body.classList.add(mole_view_module/* hideComposes */.Pn);
19217
+ const gmailComposeView = await this.#driver.openNewComposeViewDriver();
19218
+ gmailComposeView.discard();
19219
+ } finally {
19220
+ document.body.classList.remove(mole_view_module/* hideComposes */.Pn);
19221
+ }
19222
+ });
19622
19223
  }
19623
19224
 
19624
19225
  /**
@@ -20264,8 +19865,14 @@ function encodeDraftUrlId(syncThreadId, syncMessageId) {
20264
19865
  }
20265
19866
  // EXTERNAL MODULE: ./src/platform-implementation-js/driver-common/getOriginalMessagePage.ts
20266
19867
  var getOriginalMessagePage = __webpack_require__(8102);
20267
- // EXTERNAL MODULE: ./src/common/html-to-text.ts
20268
- var html_to_text = __webpack_require__(9865);
19868
+ ;// CONCATENATED MODULE: ./src/common/html-to-text.ts
19869
+ // Quick function for converting HTML with entities into text without
19870
+ // introducing an XSS vulnerability.
19871
+ function htmlToText(html) {
19872
+ const div = document.createElement('div');
19873
+ div.innerHTML = html.replace(/<[^>]*>?/g, '');
19874
+ return div.textContent;
19875
+ }
20269
19876
  ;// CONCATENATED MODULE: ./src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.ts
20270
19877
 
20271
19878
 
@@ -20277,7 +19884,7 @@ async function getRfcMessageIdForGmailMessageId(driver, gmailMessageId) {
20277
19884
  if (!match) {
20278
19885
  throw new Error("Failed to find rfc id for gmail thread id. Message may not exist in user's account.");
20279
19886
  }
20280
- return (0,html_to_text/* default */.Z)(match[1]);
19887
+ return htmlToText(match[1]);
20281
19888
  }
20282
19889
  ;// CONCATENATED MODULE: ./src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.ts
20283
19890
 
@@ -20285,39 +19892,34 @@ async function getRfcMessageIdForGmailMessageId(driver, gmailMessageId) {
20285
19892
 
20286
19893
 
20287
19894
  async function openDraftByMessageID(driver, messageID) {
20288
- let newHash;
20289
- if (driver.isUsingSyncAPI()) {
20290
- const rfcMessageID = await getRfcMessageIdForGmailMessageId(driver, messageID);
20291
- const {
20292
- threads
20293
- } = await (0,getSyncThreadsForSearch/* default */.Z)(driver, 'rfc822msgid:' + rfcMessageID);
20294
- if (threads.length === 0) {
20295
- throw new Error('Failed to get sync message id');
20296
- }
20297
- const thread = threads[0];
20298
- const syncMessageData = thread.extraMetaData.syncMessageData.find(m => m.oldMessageID === messageID);
20299
- if (!syncMessageData) {
20300
- throw new Error('Failed to find syncMessageData');
20301
- }
20302
- const {
20303
- syncMessageID
20304
- } = syncMessageData;
20305
- newHash = makeNewSyncHash(window.location.hash, thread.syncThreadID, syncMessageID);
20306
- } else {
20307
- newHash = makeNewHash(window.location.hash, messageID);
19895
+ const rfcMessageID = await getRfcMessageIdForGmailMessageId(driver, messageID);
19896
+ const {
19897
+ threads
19898
+ } = await (0,getSyncThreadsForSearch/* default */.Z)(driver, 'rfc822msgid:' + rfcMessageID);
19899
+ if (threads.length === 0) {
19900
+ throw new Error('Failed to get sync message id');
19901
+ }
19902
+ const thread = threads[0];
19903
+ const syncMessageData = thread.extraMetaData.syncMessageData.find(m => m.oldMessageID === messageID);
19904
+ if (!syncMessageData) {
19905
+ throw new Error('Failed to find syncMessageData');
20308
19906
  }
19907
+ const {
19908
+ syncMessageID
19909
+ } = syncMessageData;
19910
+ const newHash = makeNewSyncHash(window.location.hash, thread.syncThreadID, syncMessageID);
20309
19911
  window.location.hash = newHash;
20310
19912
  }
20311
19913
  function makeNewHash(oldHash, messageID) {
20312
19914
  oldHash = '#' + oldHash.replace(/^#/, '');
20313
19915
  const [pre, query] = oldHash.split('?');
20314
- const params = querystring_es3.parse(query);
19916
+ const params = qs.parse(query);
20315
19917
  if (params.compose) {
20316
19918
  params.compose += ',' + messageID;
20317
19919
  } else {
20318
19920
  params.compose = messageID;
20319
19921
  }
20320
- return pre + '?' + querystring_es3.stringify(params);
19922
+ return pre + '?' + qs.stringify(params);
20321
19923
  }
20322
19924
  function makeNewSyncHash(oldHash, syncThreadID, syncMessageID) {
20323
19925
  oldHash = '#' + oldHash.replace(/^#/, '');
@@ -21703,7 +21305,6 @@ var immutability_helper_default = /*#__PURE__*/__webpack_require__.n(immutabilit
21703
21305
 
21704
21306
 
21705
21307
 
21706
-
21707
21308
  const threadListHandlersToSearchStrings = new Map();
21708
21309
  const MAX_THREADS_PER_PAGE = 50;
21709
21310
 
@@ -21900,97 +21501,83 @@ const setupSearchReplacing = (driver, customRouteID, onActivate, findIdFailure)
21900
21501
  // order that user passed in
21901
21502
  let newResponse;
21902
21503
  try {
21903
- if (driver.isUsingSyncAPI()) {
21904
- const extractedThreads = gmail_sync_response_processor/* extractThreadsFromSearchResponse */.OL(response);
21905
- const extractedThreadsInCompletedIDPairsOrder = completedIDPairs.map(_ref3 => {
21906
- let {
21907
- gtid
21908
- } = _ref3;
21909
- return find_default()(extractedThreads, t => t.oldGmailThreadID === gtid);
21910
- }).filter(Boolean);
21911
- const doesNeedReorder = extractedThreads.length !== extractedThreadsInCompletedIDPairsOrder.length || extractedThreads.some((extractedThread, index) => extractedThread !== extractedThreadsInCompletedIDPairsOrder[index]);
21912
- let reorderedThreads;
21913
- if (doesNeedReorder) {
21914
- const now = Date.now();
21915
- reorderedThreads = extractedThreadsInCompletedIDPairsOrder.map((extractedThread, index) => {
21916
- const newFormat = Array.isArray(extractedThread.rawResponse);
21917
- const newTime = String(now - index);
21918
- let newThread = immutability_helper_default()(extractedThread, {
21504
+ const extractedThreads = gmail_sync_response_processor/* extractThreadsFromSearchResponse */.OL(response);
21505
+ const extractedThreadsInCompletedIDPairsOrder = completedIDPairs.map(_ref3 => {
21506
+ let {
21507
+ gtid
21508
+ } = _ref3;
21509
+ return find_default()(extractedThreads, t => t.oldGmailThreadID === gtid);
21510
+ }).filter(Boolean);
21511
+ const doesNeedReorder = extractedThreads.length !== extractedThreadsInCompletedIDPairsOrder.length || extractedThreads.some((extractedThread, index) => extractedThread !== extractedThreadsInCompletedIDPairsOrder[index]);
21512
+ let reorderedThreads;
21513
+ if (doesNeedReorder) {
21514
+ const now = Date.now();
21515
+ reorderedThreads = extractedThreadsInCompletedIDPairsOrder.map((extractedThread, index) => {
21516
+ const newFormat = Array.isArray(extractedThread.rawResponse);
21517
+ const newTime = String(now - index);
21518
+ let newThread = immutability_helper_default()(extractedThread, {
21519
+ rawResponse: newFormat ? {
21520
+ '0': {
21521
+ '2': {
21522
+ $set: newTime
21523
+ },
21524
+ '7': {
21525
+ $set: newTime
21526
+ }
21527
+ }
21528
+ } : {
21529
+ '1': {
21530
+ '3': {
21531
+ $set: newTime
21532
+ },
21533
+ '8': {
21534
+ $set: newTime
21535
+ }
21536
+ }
21537
+ }
21538
+ });
21539
+ if (newFormat ? extractedThread.rawResponse[0][4] : extractedThread.rawResponse[1][5]) {
21540
+ newThread = immutability_helper_default()(newThread, {
21919
21541
  rawResponse: newFormat ? {
21920
21542
  '0': {
21921
- '2': {
21922
- $set: newTime
21923
- },
21924
- '7': {
21925
- $set: newTime
21926
- }
21543
+ '4': oldVal => oldVal.map(md => immutability_helper_default()(md, {
21544
+ '6': {
21545
+ $set: newTime
21546
+ },
21547
+ '17': {
21548
+ $set: newTime
21549
+ },
21550
+ '30': {
21551
+ $set: newTime
21552
+ }
21553
+ }))
21927
21554
  }
21928
21555
  } : {
21929
21556
  '1': {
21930
- '3': {
21931
- $set: newTime
21932
- },
21933
- '8': {
21934
- $set: newTime
21935
- }
21557
+ '5': oldVal => oldVal.map(md => immutability_helper_default()(md, {
21558
+ '7': {
21559
+ $set: newTime
21560
+ },
21561
+ '18': {
21562
+ $set: newTime
21563
+ },
21564
+ '31': {
21565
+ $set: newTime
21566
+ }
21567
+ }))
21936
21568
  }
21937
21569
  }
21938
21570
  });
21939
- if (newFormat ? extractedThread.rawResponse[0][4] : extractedThread.rawResponse[1][5]) {
21940
- newThread = immutability_helper_default()(newThread, {
21941
- rawResponse: newFormat ? {
21942
- '0': {
21943
- '4': oldVal => oldVal.map(md => immutability_helper_default()(md, {
21944
- '6': {
21945
- $set: newTime
21946
- },
21947
- '17': {
21948
- $set: newTime
21949
- },
21950
- '30': {
21951
- $set: newTime
21952
- }
21953
- }))
21954
- }
21955
- } : {
21956
- '1': {
21957
- '5': oldVal => oldVal.map(md => immutability_helper_default()(md, {
21958
- '7': {
21959
- $set: newTime
21960
- },
21961
- '18': {
21962
- $set: newTime
21963
- },
21964
- '31': {
21965
- $set: newTime
21966
- }
21967
- }))
21968
- }
21969
- }
21970
- });
21971
- }
21972
- return newThread;
21973
- });
21974
- } else {
21975
- reorderedThreads = extractedThreads;
21976
- }
21977
- newResponse = gmail_sync_response_processor/* replaceThreadsInSearchResponse */.ti(response, reorderedThreads, {
21978
- start,
21979
- total
21571
+ }
21572
+ return newThread;
21980
21573
  });
21981
21574
  } else {
21982
- const extractedThreads = gmail_response_processor/* extractThreads */.MA(response);
21983
- const reorderedThreads = completedIDPairs.map(_ref4 => {
21984
- let {
21985
- gtid
21986
- } = _ref4;
21987
- return find_default()(extractedThreads, t => t.gmailThreadId === gtid);
21988
- }).filter(Boolean);
21989
- newResponse = gmail_response_processor/* replaceThreadsInResponse */.Z8(response, reorderedThreads, {
21990
- start,
21991
- total
21992
- });
21575
+ reorderedThreads = extractedThreads;
21993
21576
  }
21577
+ newResponse = gmail_sync_response_processor/* replaceThreadsInSearchResponse */.ti(response, reorderedThreads, {
21578
+ start,
21579
+ total
21580
+ });
21994
21581
  driver.getPageCommunicator().setCustomListResults(newQuery, newResponse);
21995
21582
  } catch (e) {
21996
21583
  driver.getLogger().error(e, {
@@ -22005,17 +21592,10 @@ const setupSearchReplacing = (driver, customRouteID, onActivate, findIdFailure)
22005
21592
  });
22006
21593
  }
22007
21594
  try {
22008
- if (driver.isUsingSyncAPI()) {
22009
- driver.getPageCommunicator().setCustomListResults(newQuery, gmail_sync_response_processor/* replaceThreadsInSearchResponse */.ti(response, [], {
22010
- start,
22011
- total
22012
- }));
22013
- } else {
22014
- driver.getPageCommunicator().setCustomListResults(newQuery, gmail_response_processor/* replaceThreadsInResponse */.Z8(response, [], {
22015
- start,
22016
- total
22017
- }));
22018
- }
21595
+ driver.getPageCommunicator().setCustomListResults(newQuery, gmail_sync_response_processor/* replaceThreadsInSearchResponse */.ti(response, [], {
21596
+ start,
21597
+ total
21598
+ }));
22019
21599
  } catch (e2) {
22020
21600
  driver.getLogger().error(e2);
22021
21601
  // The original response will be used.
@@ -22384,7 +21964,6 @@ async function gmailLoadEvent(driver) {
22384
21964
  windowWidth: window.innerWidth,
22385
21965
  windowHeight: window.innerHeight,
22386
21966
  language: pageCommunicator.getUserLanguage(),
22387
- isUsingSyncAPI: pageCommunicator.isUsingSyncAPI(),
22388
21967
  previewPane: pageCommunicator.getUserOriginalPreviewPaneMode(),
22389
21968
  isConversationViewDisabled,
22390
21969
  wasAccountSwitcherReadyAtStart: driver.getEnvData().wasAccountSwitcherReadyAtStart,
@@ -23577,13 +23156,6 @@ class GmailDriver {
23577
23156
 
23578
23157
  // mapping between sync message ids and old message ids
23579
23158
  {
23580
- try {
23581
- // TODO remove sometime after March 24 2019 to give time for this to
23582
- // run for most users.
23583
- localStorage.removeItem('inboxsdk__cached_gmail_and_inbox_message_ids_2');
23584
- } catch (err) {
23585
- console.error(err);
23586
- }
23587
23159
  const gmailMessageIdForSyncMessageIdCache = new (bimapcache_js_default())({
23588
23160
  key: 'inboxsdk__cached_gmail_and_inbox_message_ids_3',
23589
23161
  getAfromB: sync => (0,getGmailMessageIdForSyncMessageId/* default */.Z)(this, sync),
@@ -23985,7 +23557,6 @@ class GmailDriver {
23985
23557
  this.#timestampGlobalsFound = Date.now();
23986
23558
  this.#pageCommunicator = pageCommunicator;
23987
23559
  this.#logger.setUserEmailAddress(this.getUserEmailAddress());
23988
- this.#logger.setIsUsingSyncAPI(pageCommunicator.isUsingSyncAPI());
23989
23560
  this.#userInfo = new UserInfo(this);
23990
23561
  this.#timestampAccountSwitcherReady = Date.now();
23991
23562
  this.#routeViewDriverStream = setupRouteViewDriverStream(this.#gmailRouteProcessor, this).takeUntilBy(this.#stopper).toProperty();
@@ -24050,9 +23621,6 @@ class GmailDriver {
24050
23621
  isRunningInPageContext() {
24051
23622
  return !!(__webpack_require__.g.GLOBALS && __webpack_require__.g._GM_main);
24052
23623
  }
24053
- isUsingSyncAPI() {
24054
- return this.#pageCommunicator.isUsingSyncAPI();
24055
- }
24056
23624
  showAppIdWarning() {
24057
23625
  showAppIdWarning(this);
24058
23626
  }
@@ -32854,6 +32422,7 @@ module.exports["default"] = exports.default;
32854
32422
  "use strict";
32855
32423
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32856
32424
  /* harmony export */ "DH": () => (/* binding */ main),
32425
+ /* harmony export */ "Pn": () => (/* binding */ hideComposes),
32857
32426
  /* harmony export */ "Yy": () => (/* binding */ inboxsdkMolesInUse),
32858
32427
  /* harmony export */ "ZP": () => (__WEBPACK_DEFAULT_EXPORT__)
32859
32428
  /* harmony export */ });
@@ -32866,10 +32435,11 @@ module.exports["default"] = exports.default;
32866
32435
 
32867
32436
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
32868
32437
  // Module
32869
- ___CSS_LOADER_EXPORT___.push([module.id, ".inboxsdk___CVI_XgzMBSxR6kVfDAg{order:1}.inboxsdk__UJYCuevuXZxfTgEf23lV .aDj.ahe{position:static!important}", ""]);
32438
+ ___CSS_LOADER_EXPORT___.push([module.id, ".inboxsdk___CVI_XgzMBSxR6kVfDAg{order:1}.inboxsdk__UJYCuevuXZxfTgEf23lV .aDj.ahe{position:static!important}.inboxsdk__cZb1_NDJIxsKMlBKVLgD .dw\n .nH\n > .nH\n > .no\n > *:not([style*='order: 0;'], [style*='order: 2147483647;'], .aJl).nn.nH{display:none!important}", ""]);
32870
32439
  // Exports
32871
32440
  var main = "inboxsdk___CVI_XgzMBSxR6kVfDAg";
32872
32441
  var inboxsdkMolesInUse = "inboxsdk__UJYCuevuXZxfTgEf23lV";
32442
+ var hideComposes = "inboxsdk__cZb1_NDJIxsKMlBKVLgD";
32873
32443
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
32874
32444
 
32875
32445
 
@@ -32925,7 +32495,7 @@ var ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_css_loader_dist_runtime_g
32925
32495
  var ___CSS_LOADER_URL_REPLACEMENT_1___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_1___);
32926
32496
  var ___CSS_LOADER_URL_REPLACEMENT_2___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_2___);
32927
32497
  // Module
32928
- ___CSS_LOADER_EXPORT___.push([module.id, ".inboxsdk__notransition{transition:none!important}.inboxsdk__close_button{height:24px;width:24px;opacity:.7;position:relative;background:0 0;border:0;padding:0;box-sizing:content-box;outline:0;cursor:pointer}.inboxsdk__close_button:focus,.inboxsdk__close_button:hover{opacity:1}.inboxsdk__close_button:focus::before{background-color:rgb(0 0 0/12%)}.inboxsdk__close_button::before{border-radius:50%;position:absolute;inset:-4px -4px -4px -4px;padding:4px;content:\" \"}.inboxsdk__close_button::after{content:\" \";background:url(https://www.gstatic.com/images/icons/material/system/1x/close_black_24dp.png);position:absolute;height:24px;width:24px;top:0;left:0}@media (min-resolution:192dpi){.inboxsdk__close_button::after{background:url(https://www.gstatic.com/images/icons/material/system/2x/close_black_24dp.png);background-size:contain}}.inboxsdk__nJrOYb9x4IUalKhkqH70{display:none}.inboxsdk__drawer_view_container{visibility:visible;direction:initial;position:fixed;height:100vh;width:100vw;bottom:0;left:0;z-index:51;pointer-events:none}.inboxsdk__drawer_view{position:absolute;pointer-events:auto;top:0;bottom:0;right:0;width:452px;font:13px\"Helvetica Neue\",Helvetica,Arial,sans-serif;display:flex;flex-direction:column;background-color:#fff;outline:0;box-shadow:0 0 8px rgb(0 0 0/18%),0 8px 16px rgb(0 0 0/36%);transform:translateX(100%);transition:transform 150ms cubic-bezier(.4,0,.2,1)}.inboxsdk__drawer_view.inboxsdk__match_sidebar_content_panel_width{width:300px}.inboxsdk__drawer_view.inboxsdk__active{transform:none}.inboxsdk__drawer_title_bar{background-color:#f5f5f5;border-bottom:1px solid #e0e0e0;padding:16px 20px;white-space:nowrap;display:flex;flex:0 0 auto}.inboxsdk__drawer_title_bar .inboxsdk__close_button{margin-right:20px;flex-shrink:0}.inboxsdk__drawer_title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:20px/24px\"Helvetica Neue\",Helvetica,Arial,sans-serif}.inboxsdk__inbox_backdrop{visibility:visible;position:fixed;height:100vh;width:100vw;bottom:0;left:0;z-index:50;background-color:transparent;transition:background-color 150ms cubic-bezier(.4,0,1,1)}.inboxsdk__inbox_backdrop.inboxsdk__active{background-color:rgb(10 10 10/60%);transition:background-color 70ms cubic-bezier(0,0,.2,1)}.inboxsdk__inbox_backdrop~.inboxsdk__inbox_backdrop{opacity:.6}.inboxsdk__YVRXKNcaUvgm8xbnhvbA{display:flex;flex-direction:column}.inboxsdk__L1YTilBb_3NY6uyjljIg>.inboxsdk__close_button{position:absolute;bottom:10px;right:20px}.inboxsdk__ZsVjiThsnbCmCG_X1Vvn{width:216px}.inboxsdk__RRnCd87hoA2uHeC1Z_FE{overflow:hidden;font:12px Arial,sans-serif;max-height:100%;box-sizing:border-box}.inboxsdk__iYzl6PjYB9v7KGQNbONH{white-space:nowrap;display:flex;user-select:none;cursor:default}.inboxsdk__RRnCd87hoA2uHeC1Z_FE:not(.inboxsdk__o9YcckDJql686JS0n2cc) .inboxsdk__iYzl6PjYB9v7KGQNbONH{border-bottom:1px solid #ddd}.inboxsdk__RRnCd87hoA2uHeC1Z_FE.inboxsdk__XdCPRDkO7zSIv6nU4USH .inboxsdk__iYzl6PjYB9v7KGQNbONH,.inboxsdk__RRnCd87hoA2uHeC1Z_FE.inboxsdk__vTsoFgWgM9ldKGsRJYHd .inboxsdk__iYzl6PjYB9v7KGQNbONH:hover{background:rgb(0 0 0/3%)}.inboxsdk__lD1h9YUibxcHdtWGdiWq{min-width:0;overflow:hidden;text-overflow:ellipsis}.inboxsdk__RRnCd87hoA2uHeC1Z_FE.inboxsdk__vTsoFgWgM9ldKGsRJYHd .inboxsdk__lD1h9YUibxcHdtWGdiWq{cursor:move}.inboxsdk__p_cMIiZvN4vwQdGOpCts{padding-left:6px;vertical-align:middle;font:700 13px/40px\"Helvetica Neue\",Helvetica,Arial,sans-serif;color:rgb(0 0 0/87%)}.inboxsdk__L1YTilBb_3NY6uyjljIg.inboxsdk__fQK2Ffccj51PVtC_ibDc .inboxsdk__iYzl6PjYB9v7KGQNbONH{display:none}.inboxsdk__RRnCd87hoA2uHeC1Z_FE.inboxsdk__vTsoFgWgM9ldKGsRJYHd .inboxsdk__iYzl6PjYB9v7KGQNbONH:hover .inboxsdk__KudoZ1EBFoQsddbSavvj{position:absolute;top:0;left:0;width:10px;height:40px;background:url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + ")50%center no-repeat}.inboxsdk__TFQRFr4aJVmDmx2llTVx{width:20px;height:20px;vertical-align:middle;display:inline-flex;justify-content:center;align-items:center;margin-top:-1px}.inboxsdk__Yzt2_upvw7fe6BjWdlhZ,.inboxsdk__Yzt2_upvw7fe6BjWdlhZ>img{width:13px;height:13px}.inboxsdk__M4Frio2Us0lwSTltblkg{flex:1;text-align:right;visibility:hidden}.inboxsdk__RRnCd87hoA2uHeC1Z_FE.inboxsdk__vTsoFgWgM9ldKGsRJYHd .inboxsdk__M4Frio2Us0lwSTltblkg{visibility:visible;cursor:pointer}.inboxsdk__Nr6Udyn2ocUynKpdfxh1{margin-top:12px;margin-right:4px;background:url(" + ___CSS_LOADER_URL_REPLACEMENT_1___ + ")center/20px no-repeat;border:0;width:14px;height:14px;transform:rotate(-90deg);transition:-webkit-transform .15s,transform .15s;outline:0;opacity:.6;cursor:pointer}.inboxsdk__RRnCd87hoA2uHeC1Z_FE.inboxsdk__XdCPRDkO7zSIv6nU4USH .inboxsdk__iYzl6PjYB9v7KGQNbONH .inboxsdk__Nr6Udyn2ocUynKpdfxh1,.inboxsdk__iYzl6PjYB9v7KGQNbONH:hover .inboxsdk__Nr6Udyn2ocUynKpdfxh1{opacity:.9}.inboxsdk__RRnCd87hoA2uHeC1Z_FE.inboxsdk__o9YcckDJql686JS0n2cc .inboxsdk__Nr6Udyn2ocUynKpdfxh1{transform:rotate(0)}.inboxsdk__QsikHKWmzD0Ovsg3wrIw{margin-bottom:25px}.inboxsdk__z3cCBtGXYneog44Vf16J .inboxsdk__ARG5bpD2vntIyElH978u{position:relative}.inboxsdk__z3cCBtGXYneog44Vf16J .inboxsdk__button_icon:focus,.inboxsdk__z3cCBtGXYneog44Vf16J .inboxsdk__button_icon:hover{outline:0}.inboxsdk__appid_warning{margin:0;padding:9px;color:#4b4b4b;background:#ff6c6c;font-size:10pt}.inboxsdk__appid_warning_main,a.inboxsdk__appid_register{display:inline-block;vertical-align:middle}.inboxsdk__appid_warning .topline{font-weight:700;font-size:11pt}a.inboxsdk__appid_register{color:#fff;background:#1989ff;border-radius:3px;text-decoration:none;box-shadow:0 0 5px rgb(0 0 0/30%);padding:7px;font-size:10pt;margin-left:1em}.inboxsdk__thread_row_icon_wrapper{display:inline-block}.inboxsdk__thread_row_icon_wrapper .inboxsdk__button_iconImg{margin-top:0}.inboxsdk__QbxpXL1mja3SlO_1nJOS{background:#f8ebc0;margin-bottom:10px;padding:12px 4px 6px 12px}.inboxsdk__suggestions_separator_before{padding-bottom:2px!important}.inboxsdk__suggestions_separator_after{border-top:1px solid #e5e5e5;padding-top:2px!important}div.T-I.inboxsdk__button{user-select:none;min-width:27px}.inboxsdk__no_bg{background:0 0}.inboxsdk__button.inboxsdk__button_disabled{opacity:.55}.inboxsdk__button_icon+.inboxsdk__button_text{margin-left:5px}.inboxsdk__button_icon{display:inline-block}.inboxsdk__button_iconImg{height:20px;width:20px;vertical-align:middle;margin-top:-2px;user-drag:none;user-select:none;-webkit-user-drag:none}.inboxsdk__button_green_hover,.inboxsdk__button_green_inactive{background-image:-webkit-linear-gradient(top,transparent,transparent);background-image:linear-gradient(top,transparent,transparent);border:1px solid transparent;text-shadow:none}.inboxsdk__button_green_inactive{box-shadow:0 1px 0 rgb(0 0 0/5%);background-color:#53a93f;color:#fff}.inboxsdk__button_green_hover{box-shadow:inset 0-1px 0#4c8534;background-color:#65b045;border-bottom:1px solid #4c8534}.inboxsdk__button_green_active{box-shadow:inset 0 1px 0#2f6124;background:#3e802f;border:1px solid transparent;border-top:1px solid #2f6124;color:#fff;text-shadow:none}.inboxsdk__menu{min-width:1em;min-height:1em;padding:0;overflow:visible;max-height:none;z-index:7;cursor:default;font-size:13px;margin:0;outline:0}.inboxsdk__menu>.inboxsdk__menuContent{padding:0;box-shadow:0 8px 10px 1px rgb(0 0 0/14%),0 3px 14px 2px rgb(0 0 0/12%),0 5px 5px -3px rgb(0 0 0/20%);transition:opacity .218s;border:1px solid rgb(0 0 0/20%);background:#fff;outline:0}.f4.J-N-JX.inboxsdk__message_more_icon{height:16px;margin-top:1px;width:16px}.dw .nH>.no .nH.nn:last-child[style*=\"width: 310px;\"],body:has(.companion_app_sidebar_visible) .dw .nH>.no .nH.nn:last-child{width:366px!important}.inboxsdk__composeButton{height:20px;width:20px;padding:4px}.inboxsdk__composeButton,.inboxsdk__compose_sendButton{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;outline:0;position:relative}.inboxsdk__composeButton+.inboxsdk__composeButton{margin-left:4px}.inboxsdk__composeButton .inboxsdk__button_icon{opacity:.55}.inboxsdk__composeButton.inboxsdk__composeButton_active .inboxsdk__button_icon,.inboxsdk__composeButton:focus .inboxsdk__button_icon,.inboxsdk__composeButton:hover .inboxsdk__button_icon{opacity:1}.inboxsdk__composeButton::before{content:\"\";display:block;opacity:0;position:absolute;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);inset:0 0 0 0;background:0 0;box-sizing:border-box;transform:scale(0);transition-property:transform,opacity;border-radius:4px}.inboxsdk__composeButton:hover::before{background-color:rgb(32 33 36/5.9%);border:0;box-shadow:none;opacity:1;transform:scale(1)}.inboxsdk__composeButton.inboxsdk__composeButton_active::before,.inboxsdk__composeButton:focus::before{background-color:rgb(32 33 36/12.2%);border:0;box-shadow:none;opacity:1;transform:scale(1)}.inboxsdk__compose_actionToolbar .inboxsdk__compose_groupedActionToolbar div.inboxsdk__composeButton:last-child{margin-right:0}.inboxsdk__compose_sendButton{background-color:#1a73e8;color:#fff;height:24px;width:auto;border-radius:4px;padding:6px 4px;margin-left:2px}.inboxsdk__compose_inlineReply .inboxsdk__compose_sendButton{height:24px}.inboxsdk__compose_sendButton.inboxsdk__composeButton_active,.inboxsdk__compose_sendButton:focus{background-color:#5094ed;box-shadow:0 1px 1px 0 rgb(66 133 244/30%),0 1px 3px 1px rgb(66 133 244/15%);border:0}.T-I~.inboxsdk__compose_sendButton{margin-left:-6px}.inboxsdk__compose_actionToolbar{white-space:nowrap;padding-left:6px}.inboxsdk__compose_actionToolbar .inboxsdk__button_icon{height:20px;width:20px;display:inline-flex;user-select:none}.inboxsdk__compose_actionToolbar .inboxsdk__button_iconImg{height:17px;width:17px;display:inline-flex;margin:auto}.inboxsdk__compose_actionToolbar+.gU:not(.inboxsdk__compose_separator){padding-left:8px}.inboxsdk__compose_groupedActionToolbar_visible .aDg .aDh{overflow-y:visible}.inboxsdk__compose_groupedActionToolbar{position:absolute;bottom:44px;z-index:10;border-radius:2px;box-shadow:0 4px 5px 0 rgb(0 0 0/14%),0 1px 10px 0 rgb(0 0 0/12%),0 2px 4px -1px rgb(0 0 0/20%);margin:3px 3px 7px;padding:4px 5px;background:#fff;left:-3px}.inboxsdk__compose_inlineReply .inboxsdk__compose_groupedActionToolbar{left:14px}.inboxsdk__compose_groupedActionToolbar .inboxsdk__composeButton:first-child{margin-left:0;margin-right:0}.inboxsdk__composeButton.inboxsdk__compose_groupedActionButton{margin-right:0}.inboxsdk__compose_groupedActionToolbar .inboxsdk__composeButton{padding:4px}.inboxsdk__compose_groupedActionToolbar_visible .bA3{height:40px}.inboxsdk__compose_groupedActionToolbar div.inboxsdk__button{z-index:1;margin-right:0}.inboxsdk__compose_groupedActionToolbar_arrow,span.inboxsdk__thread_row_custom_draft_label+div.yW{display:none}.inboxsdk__compose_customSendContainer{display:inline-block;position:relative;outline:0;margin:6px 0;padding:0;vertical-align:middle;height:36px;line-height:36px}.inboxsdk__compose_customTitleBarColor>img.Ha,.inboxsdk__compose_customTitleBarColor>img.Hl,.inboxsdk__compose_customTitleBarColor>img.Hq{background-color:transparent!important}.inboxsdk__compose_hasCustomTitleBarText,.inboxsdk__compose_hasCustomTitleBarText>tbody>tr{display:flex}.inboxsdk__compose_hasCustomTitleBarText>tbody>tr{align-items:center}.inboxsdk__compose_hasCustomTitleBarText>tbody{width:100%}.inboxsdk__compose_nativeTitleBarText{display:none!important}.inboxsdk__compose_customTitleBarText{width:calc(100% - 80px)}.inboxsdk__compose_hasCustomTitleBarText td.Hm{margin-right:10px;margin-left:auto}.inboxsdk__compose_statusBarPrependContainer{border-top:1px solid #cfcfcf}.inboxsdk__compose_statusBarPrependContainer+table td.gU{border-top:none}input.inboxsdk__x_close_button{background-color:transparent;background-image:url(" + ___CSS_LOADER_URL_REPLACEMENT_2___ + ");background-size:cover;background-repeat:no-repeat;background-position:center center;height:20px;width:20px;border:0;vertical-align:middle;cursor:pointer;float:right;margin:5px}.inboxsdk__gmail_label.inboxsdk__label_has_icon .au{display:inline-block;margin-left:14px}.inboxsdk__thread_row_label .inboxsdk__button_icon,.inboxsdk__thread_row_label .inboxsdk__button_iconImg{height:11px;width:11px}.inboxsdk__thread_row_label .inboxsdk__button_icon{display:inline-block;margin-top:3px;margin-left:4px;position:absolute}.inboxsdk__thread_row_button{outline:0;height:20px;width:20px;padding:0}.inboxsdk__thread_row_button .inboxsdk__button_icon{max-height:100%}.inboxsdk__thread_row_custom_date_container,.zA>.xY.inboxsdk__thread_row_attachment_icons_present{max-width:inherit}.inboxsdk__thread_row_button .inboxsdk__button_iconImg{height:20px;width:20px;margin-top:0}.inboxsdk__gmail_action{float:right;position:relative;background-color:gray;margin-left:1em;cursor:default;background-image:-webkit-linear-gradient(top,#e9e9e9,#e6e6e6);background-image:linear-gradient(top,#e9e9e9,#e6e6e6);border:1px solid rgb(0 0 0/10%);border-color:#ccc;color:#444;height:17px;line-height:17px;min-width:56px;border-radius:2px;font-size:11px;font-weight:700;text-align:center;white-space:nowrap;padding:0 18px 0 6px}.inboxsdk__gmail_action:focus{border:1px solid #4d90fe;outline:0}.inboxsdk__gmail_action:active{box-shadow:inset 0 1px 2px rgb(0 0 0/10%)}.inboxsdk__gmail_action:hover{box-shadow:0 1px 1px rgb(0 0 0/5%);background-color:#ededed;background-image:-webkit-linear-gradient(top,#ededed,#eaeaea);background-image:linear-gradient(top,#ededed,#eaeaea);border-color:#b8b8b8}.inboxsdk__gmail_action::after{content:\"\";position:absolute;right:5px;top:5px;margin-left:5px;background:no-repeat url(https://ssl.gstatic.com/mail/sprites/smartmail-561acb673be75c1d374881a95997fce4.png)-67px -100px;width:7px;height:7px;opacity:.55}.inboxsdk__thread_row_custom_date{margin-left:2px}span.inboxsdk__thread_row_custom_date+span:not(.inboxsdk__thread_row_custom_date){display:none}.inboxsdk__thread_row_attachment_iconWrapper{margin-left:3px;height:16px}.inboxsdk__thread_row_attachment_icon{margin-left:3px;width:16px;height:16px}.inboxsdk__thread_row_attachment_iconWrapper{display:flex;justify-content:center;align-items:center;width:max-content}.zA td.apU.xY{width:initial}.zA td.apU.xY span.inboxsdk__thread_row_button{margin:0 10px;opacity:.16}.zA.aqw td.apU.xY span.inboxsdk__thread_row_button{opacity:.54}.zA.aqw td.apU.xY span.inboxsdk__thread_row_button:hover{opacity:1}.zA td.apU.xY span.inboxsdk__thread_row_button::before{width:0;height:0}.inboxsdk__thread_row_attachment_icon{vertical-align:middle}.Zs .xY.inboxsdk__thread_row_attachment_icons_present{flex-grow:0}.Zs .xY.inboxsdk__thread_row_label{order:1}.Zs .xY.inboxsdk__thread_row_icon_wrapper{order:1;margin-left:3px;margin-right:0}.inboxsdk__thread_row_icon_wrapper .inboxsdk__button_icon,.inboxsdk__thread_row_icon_wrapper .inboxsdk__button_iconImg{height:18px;width:18px}.inboxsdk__thread_row_icon_wrapper{width:20px;margin-right:3px;align-self:center;height:20px;flex:0 0 auto}.inboxsdk__thread_row_icon_wrapper .inboxsdk__button_iconImg{vertical-align:top}.inboxsdk__thread_row_image_added .y6 .inboxsdk__thread_row_icon_wrapper~span[id]{margin-left:3px}.inboxsdk__thread_row_image_added .a4W,.inboxsdk__thread_row_image_added .apA,.inboxsdk__thread_row_image_added .apx{position:relative}[inboxsdk__message_added_attachment_icon] td.gH div.gK>span:first-child>img,[inboxsdk__message_added_attachment_icon] td.gH>span:first-child>img{margin-right:3px;margin-left:3px;margin-top:0}[inboxsdk__message_added_attachment_icon] td.gH div.gK>span:first-child>:last-child,[inboxsdk__message_added_attachment_icon] td.gH>span:first-child>:last-child{margin-right:6px}.inboxsdk__message_attachment_icon,.inboxsdk__message_attachment_iconWrapper{width:21px;height:21px;position:relative}.inboxsdk__message_attachment_iconWrapper{margin:auto 3px;display:inline-flex;justify-content:center;align-items:center;vertical-align:top}.inboxsdk__message_attachment_tooltipWrapper{position:absolute;top:19px;z-index:10}.gU .aWQ{max-height:3px}.aQw .inboxsdk__button_icon{display:inline-flex;align-items:center;justify-content:center;height:28px}.aQw .inboxsdk__button_iconImg{height:18px;width:18px;margin-top:2px}.aZi .asa .inboxsdk__button_iconImg{display:inline-block;vertical-align:middle;margin-top:-3px}.aZi .aZj .asa .inboxsdk__button_iconImg{margin:0}body .dw{z-index:6!important}.inboxsdk__compose_outerSidebar_wrapper{position:absolute;left:-401px;top:0;background:#fff;width:400px;bottom:0;border-left:1px solid silver;box-shadow:-2px 0 1px #e6e6e6;display:block}.inboxsdk__outerSidebarActive .aSt .inboxsdk__compose_outerSidebar_wrapper{border-left:0;box-shadow:none;left:-400px}.inboxsdk__outerSidebarActive .aSs>div{width:50%!important;margin-left:30%}.inboxsdk__compose_outerSidebar_header{background:#404040;font-size:80%;padding:10px 10px 11px;color:#fff;border-bottom:1px solid #c4c4c4}.inboxsdk__compose_outerSidebar_body{position:absolute;width:100%;bottom:43px;top:36px;left:-1px;overflow:auto}.inboxsdk__compose_outerSidebar_footer{position:absolute;bottom:0;width:100%;border-top:1px solid rgb(206 206 206);display:block}.inboxsdk__compose_innerSidebarActive .GQ,.inboxsdk__compose_innerSidebarActive form{padding-right:200px}div.inboxsdk__compose_statusbar{border:0;height:40px;margin:0}.inboxsdk__compose_statusbar{background:0 0;position:relative}.HM .I5 .inboxsdk__compose_statusbar{padding:0 16px 16px}table+.inboxsdk__compose_statusbar{margin-top:-8px}body.inboxsdk__classic_gmail_recipients_area .inboxsdk__compose_statusbarActive .aoI{height:auto!important}.inboxsdk__compose_statusbarActive .aDl{z-index:unset}.inboxsdk__compose .qz{max-height:inherit!important}body:not(.inboxsdk_hack_disableComposeSizeFixer) .inboxsdk__size_fixer .aDj.aDi{position:static!important}.inboxsdk__compose_inlineReply.inboxsdk__compose_statusbarActive .HM .I5{padding-bottom:var(--inboxsdk-total-added-statusbar-height, 0px)}.inboxsdk__compose_inlineReply.inboxsdk__compose_statusbarActive .aDj::before{height:calc(100% + var(--inboxsdk-total-added-statusbar-height, 0px))}.inboxsdk__compose_inlineReply.inboxsdk__compose_statusbarActive .aDj.aDi>.aDh{background-color:#fff}.inboxsdk__recipient_row{display:flex}.inboxsdk__compose_notice{background-color:#f5f5f5;border-radius:4px;margin:10px;padding:10px 16px}.inboxsdk__recipient_row td.ok{height:20px;padding:0!important}.inboxsdk__recipient_row td.az3{padding:0 3px}.inboxsdk__compose_forceRecipientsOpen .fX.aXjCH{display:block!important}.inboxsdk__compose_forceRecipientRowHidden,.inboxsdk__compose_forceRecipientsOpen .aoD.hl,.inboxsdk__compose_hideRecipientArea .aoD.hl,.inboxsdk__compose_hideRecipientArea .fX.aXjCH,[data-thread-toolbar=true] [data-rowlist-toolbar=true],[data-toolbar-expanded=false] [data-toolbar-expanded=true],[data-toolbar-expanded=true] [data-toolbar-expanded=false],[data-toolbar-icononly=true] .inboxsdk__button_text{display:none!important}[data-toolbar-icononly=false] .inboxsdk__button_text{color:#5f6368}[data-toolbar-icononly=false] .asa::before{border-radius:4px;border:0!important}[data-toolbar-icononly=false] .inboxsdk__button{align-items:center;border:0;display:inline-flex;justify-content:center;position:relative;z-index:0;-webkit-font-smoothing:antialiased;font-family:\"Google Sans\",Roboto,RobotoDraft,Helvetica,Arial,sans-serif;font-size:14px;letter-spacing:.15px;background:0 0;box-sizing:border-box;color:#5f6368;cursor:pointer;font-weight:500;outline:0;padding:0 8px}.inboxsdk__menuItem .inboxsdk__icon,.inboxsdk__menuItem img{height:16px;width:16px;margin-top:-1px}.inboxsdk__modal_overlay{right:0;bottom:0}.inboxsdk__modal_fullscreen{position:fixed;inset:0 0 0 0;z-index:503;display:flex;justify-content:center;align-items:center;padding:110px 50px 50px}.inboxsdk__modal_content{margin-top:30px;margin-bottom:30px}.inboxsdk__modal_fullscreen.inboxsdk__modal_content_no_buttons .inboxsdk__modal_content{margin-bottom:0}.inboxsdk__modal_fullscreen.inboxsdk__modal_content_no_buttons:not(.inboxsdk__modal_hideBottom) .inboxsdk__modal_content{margin-bottom:0;padding-bottom:24px}.inboxsdk__modal_close{outline:0;cursor:pointer}.inboxsdk__modal_fullscreen .inboxsdk__modal_container{position:relative;margin-top:-60px;width:auto;overflow:hidden}.inboxsdk__modal_fullscreen .inboxsdk__modal_container .inboxsdk__modal_toprow{margin-right:16px}.inboxsdk__modal_fullscreen.inboxsdk__modal_hideTop .inboxsdk__modal_close{display:none}.inboxsdk__modal_fullscreen.inboxsdk__modal_hideTop .inboxsdk__modal_container{padding-top:0}.inboxsdk__modal_fullscreen.inboxsdk__modal_hideTop .inboxsdk__modal_content{margin-top:0}.inboxsdk__modal_fullscreen.inboxsdk__modal_hideTop .Kj-JD-K7{margin:0;display:none}.inboxsdk__modal_fullscreen.inboxsdk__modal_hideSides .inboxsdk__modal_container,.inboxsdk__modal_fullscreen.inboxsdk__modal_hideSides .inboxsdk__modal_content{padding-left:0;padding-right:0}.inboxsdk__modal_fullscreen.inboxsdk__modal_hideBottom .inboxsdk__modal_content{margin-bottom:0}.inboxsdk__modal_fullscreen.inboxsdk__modal_hideBottom .inboxsdk__modal_container{padding-bottom:0}.inboxsdk__modal_toprow.inboxsdk__modal_toprow--constrain-title-width{display:flex}.inboxsdk__modal_toprow--constrain-title-width>span[role=heading]{flex:1;width:0;word-wrap:break-word}.inboxsdk__drawers_in_use .aDi,.inboxsdk__moles_in_use .aDi{left:auto!important;position:static}.inboxsdk__moles_in_use .nH>.nH>.no{white-space:nowrap}.inboxsdk__moles_in_use .nH>.nH>.no>*{white-space:initial}.inboxsdk__moles_in_use .nH>.nH>.no>.nn{display:inline-block;float:none}.inboxsdk__mole_view{position:relative;max-width:564px;height:100vh;vertical-align:top;display:inline-flex;align-items:flex-end}.inboxsdk__mole_view_inner{visibility:visible;box-sizing:border-box;margin-right:5px;box-shadow:rgb(0 0 0/20%)0 2px 6px;min-width:260px;min-height:40px}.inboxsdk__mole_view_inner:not(.inboxsdk__original_view),.inboxsdk__mole_view_titlebar:not(.inboxsdk__original_view){border-radius:8px 8px 0 0}.inboxsdk__mole_view_titlebar{position:absolute;left:0;right:5px;font-size:14px;font-weight:500;box-sizing:border-box;height:40px;cursor:pointer;padding:10px 12px 10px 16px;color:#041e49;background:#f2f6fc}.inboxsdk__mole_view_titlebar.inboxsdk__original_view{color:#fff;font-size:12.8px;font-weight:400;background:#404040;padding:9px 0 0 11px;border-radius:4px 4px 0 0}.inboxsdk__mole_view_titlebar h2{font-size:inherit;font-weight:inherit;margin:4px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inboxsdk__mole_title_buttons{white-space:nowrap;float:right;padding-right:5px;margin-top:1px}.inboxsdk__mole_title_buttons.inboxsdk__original_view{margin-top:-3px}.inboxsdk__mole_title_buttons>img{height:24px;width:24px;position:relative;top:2px;opacity:.6}.inboxsdk__mole_title_buttons:not(.inboxsdk__original_view)>img{height:16px;width:16px;margin-left:4px}.inboxsdk__mole_title_buttons:not(.inboxsdk__original_view)>img:hover{background-color:rgb(68 71 70/7.8%)}.inboxsdk__mole_title_buttons.inboxsdk__original_view>img:hover{background-color:#737373}.inboxsdk__mole_title_buttons>img:hover{opacity:1}.inboxsdk__mole_view.inboxsdk__minimized .Hl,.inboxsdk__mole_view.inboxsdk__minimized .inboxsdk__mole_view_content,.inboxsdk__mole_view.inboxsdk__minimized.inboxsdk__mole_use_minimize_title h2.inboxsdk__mole_default,.inboxsdk__mole_view:not(.inboxsdk__minimized) .Hk,.inboxsdk__mole_view:not(.inboxsdk__minimized) h2.inboxsdk__mole_minimized,.inboxsdk__mole_view:not(.inboxsdk__mole_use_minimize_title) h2.inboxsdk__mole_minimized{display:none}.inboxsdk__mole_view_content:not(.inboxsdk__original_view){margin-top:40px;border:0}.inboxsdk__mole_view_content{margin-top:36px;border:1px solid #cfcfcf;background:#fff;min-width:260px;min-height:20px;max-height:80vh}.inboxsdk__mole_view_chromeless .inboxsdk__mole_view_inner{min-width:0}.inboxsdk__mole_view_chromeless .inboxsdk__mole_view_content{margin-top:0;min-width:0}.inboxsdk__tab{width:30px}.inboxsdk__tab.inboxsdk__fQK2Ffccj51PVtC_ibDc:first-child:last-child{display:none}.inboxsdk__tab.inboxsdk__tab_selected{width:auto}table.aKk .inboxsdk__contentTabContainer .inboxsdk__tab .aAy[role=tab]{height:28px}.inboxsdk__tab_icon{width:30px;height:25px;background-position-x:5px;background-position-y:3px;background-size:16px;background-repeat:no-repeat}.inboxsdk__tab_icon img{height:16px;width:16px;margin-left:5px;margin-top:3px}.inboxsdk__tab .aKx{top:4px}.inboxsdk__sidebar div[role=complementary]{position:static!important}.inboxsdk__sidebar>div.y4,.inboxsdk__lmkPHCz841PzU2vywMZI>div.y4{display:none}table.aKk .inboxsdk__contentTabContainer .inboxsdk__tab:first-child .aAy[role=tab]{border-left-width:1px}.inboxsdk__sidebar .inboxsdk__contentPanelContainer{font:12px Arial,sans-serif;max-width:220px}.inboxsdk__contentPanelContainer_contentContainer{overflow:hidden;margin-bottom:10px;border-bottom:1px solid #d8d8d8}body.inboxsdk__hasTopMessageBar .bq9{top:var(--inboxsdk__topMessageBar-height)}.inboxsdk__lmkPHCz841PzU2vywMZI>div[role=complementary]{position:static!important;width:216px!important}.inboxsdk__lmkPHCz841PzU2vywMZI{will-change:position}.inboxsdk__RRnCd87hoA2uHeC1Z_FE{background:#fff}.inboxsdk__ZsVjiThsnbCmCG_X1Vvn{padding:4px 0 12px}.inboxsdk__L1YTilBb_3NY6uyjljIg.inboxsdk__fQK2Ffccj51PVtC_ibDc .inboxsdk__ZsVjiThsnbCmCG_X1Vvn{padding-top:0}.container_app_sidebar_in_use.no,.inboxsdk__IpDkQtEZuh257muFXot6.no{display:flex;flex-direction:row;width:100%}body[dir=rtl] .container_app_sidebar_in_use.no[dir=ltr],body[dir=rtl] .idm5_container_app_sidebar_no_icons.no[dir=ltr]{flex-direction:row-reverse}.container_app_sidebar_in_use.no .G-atb.inboxsdk__thread_toolbar_parent[gh=tm]{margin-right:-57px!important}.container_addon_sidebar_visible.container_app_sidebar_in_use.no .G-atb.inboxsdk__thread_toolbar_parent[gh=tm],.container_app_sidebar_visible.container_app_sidebar_in_use.no .G-atb.inboxsdk__thread_toolbar_parent[gh=tm]{margin-right:-321px!important}.inboxsdk__IpDkQtEZuh257muFXot6 .G-atb.inboxsdk__thread_toolbar_parent[gh=tm]{margin-right:0!important}.inboxsdk__button.ar7{pointer-events:all!important}.container_app_sidebar_in_use .bkK.nn,.inboxsdk__IpDkQtEZuh257muFXot6 .bkK.nn{width:auto!important;flex:1;min-width:0}.inboxsdk__IpDkQtEZuh257muFXot6 .bnl.nn{z-index:-1;position:absolute}.container_app_sidebar_in_use .inboxsdk__lmkPHCz841PzU2vywMZI{min-width:57px!important;flex-shrink:0}.container_app_sidebar_in_use .inboxsdk__lmkPHCz841PzU2vywMZI.app_sidebar_visible{min-width:321px!important}.container_app_sidebar_in_use .inboxsdk__lmkPHCz841PzU2vywMZI>.J-KU-Jg{display:block!important}.container_app_sidebar_in_use .inboxsdk__lmkPHCz841PzU2vywMZI .inboxsdk__jQiSbhX57v1JCl6fIbdb{display:none}.container_app_sidebar_in_use .inboxsdk__lmkPHCz841PzU2vywMZI.app_sidebar_visible .inboxsdk__jQiSbhX57v1JCl6fIbdb{display:block;float:left;height:100%;border-left:1px solid #e0e0e0;padding-left:16px;width:calc(100% - 74px);overflow:auto}.container_app_sidebar_in_use .inboxsdk__jQiSbhX57v1JCl6fIbdb .inboxsdk__ZsVjiThsnbCmCG_X1Vvn{width:calc(100% - 16px);padding-right:16px}.container_app_sidebar_in_use .inboxsdk__lmkPHCz841PzU2vywMZI.app_sidebar_visible .J-KU-Jz{width:auto;padding-right:50px}.inboxsdk__z3cCBtGXYneog44Vf16J .inboxsdk__button_icon{margin:18px 18px 10px;border:0;background:0 0;height:20px;width:20px;overflow:hidden;padding:0;cursor:pointer;position:relative}.inboxsdk__z3cCBtGXYneog44Vf16J.sidebar_global_iconArea .inboxsdk__button_icon{margin-bottom:18px}body .inboxsdk__z3cCBtGXYneog44Vf16J .inboxsdk__button_icon{overflow:visible}.inboxsdk__z3cCBtGXYneog44Vf16J .inboxsdk__button_icon:hover::before,.inboxsdk__z3cCBtGXYneog44Vf16J .sidebar_button_container_active .inboxsdk__button_icon::before{content:\"\";background:#f1f3f4;position:absolute;inset:-10px -10px -10px -10px;border-radius:50%;z-index:0}.inboxsdk__z3cCBtGXYneog44Vf16J .sidebar_button_container_active .inboxsdk__button_icon::before{background:#e8eaed}.inboxsdk__z3cCBtGXYneog44Vf16J .inboxsdk__button_iconImg{width:20px;height:20px;margin-top:0}.inboxsdk__z3cCBtGXYneog44Vf16J .inboxsdk__button_icon .inboxsdk__button_iconImg{position:absolute;left:0;top:0;z-index:1}.inboxsdk__z3cCBtGXYneog44Vf16J .sidebar_button_container_active .inboxsdk__button_selectedIndicator{height:40px;width:4px;position:absolute;right:0;bottom:0;background-color:rgb(66 133 244);border-radius:3px 0 0 3px}.inboxsdk__z3cCBtGXYneog44Vf16J.sidebar_global_iconArea .sidebar_button_container_active .inboxsdk__button_selectedIndicator{bottom:8px}.brC-brG.companion_app_sidebar_visible{display:block!important}.bq9:not(.brC-brG).companion_app_sidebar_wrapper_visible{display:block!important}.companion_global_app_sidebar_visible .thread_app_sidebar{display:none}.companion_app_sidebar_visible:not(.companion_global_app_sidebar_visible) .global_app_sidebar,body.inboxsdk__custom_view_active .brC-aT5-aOt-ato-Kp-Jw [role=tablist]>div:not(:last-child){display:none}.nH.companion_container_app_sidebar_visible{width:calc(100% - 300px)!important}.companion_app_sidebar_visible .addon_sidebar~div:not(.addon_sidebar){display:none!important}.inboxsdk__lmkPHCz841PzU2vywMZI .inboxsdk__jQiSbhX57v1JCl6fIbdb.addon_sidebar{height:100%;overflow:auto}.inboxsdk__lmkPHCz841PzU2vywMZI .inboxsdk__jQiSbhX57v1JCl6fIbdb.addon_sidebar .inboxsdk__ZsVjiThsnbCmCG_X1Vvn{width:100%}.inboxsdk__lmkPHCz841PzU2vywMZI:not(.companion_app_sidebar_visible) .addon_sidebar{display:none}.inboxsdk__TFQRFr4aJVmDmx2llTVx{margin-left:0}.inboxsdk__RRnCd87hoA2uHeC1Z_FE .inboxsdk__iYzl6PjYB9v7KGQNbONH{padding:0 16px}.inboxsdk__lmkPHCz841PzU2vywMZI .bvq,.inboxsdk__lmkPHCz841PzU2vywMZI .bvq>div:last-child{display:block!important}.inboxsdk__cnd4jAy3zFUYdR_NdMxT .bvq>div:first-child{display:none!important}.inboxsdk__custom_view_element{overflow:auto}.inboxsdk__hide_native_marker .ain:not(.inboxsdk__navItem){border-left-color:transparent}.inboxsdk__hide_native_marker .ain:not(.inboxsdk__navItem) .bsU,.inboxsdk__hide_native_marker .ain:not(.inboxsdk__navItem) .nU:not(.n1) .n0{font-weight:400}.inboxsdk__hide_native_marker .ain:not(.inboxsdk__navItem) .TO{background:0 0}.inboxsdk__hide_addon_container{display:flex!important;flex-direction:row;width:100%!important}body[dir=rtl] .inboxsdk__hide_addon_container[dir=ltr]{flex-direction:row-reverse}.inboxsdk__hide_addon_container>.bkK.nn{width:auto!important;flex:1;min-width:0}.inboxsdk__hide_addon_container>.bnl.nn,.inboxsdk__navItem>.TO img.afM.afO~.aio>.bsU{display:none}.inboxsdk__navItem{font-size:14px}.inboxsdk__navItem:not(.Xr)>.V3[style]{flex-grow:0!important}.inboxsdk__navItem>.TO.n4{display:block;padding-left:0}.inboxsdk__collapsiblePanel .inboxsdk__navItem>.TO .TN.aik{padding-left:18px}.inboxsdk__collapsiblePanel .inboxsdk__navItem>.TO .qj{margin-right:14px}.inboxsdk__navItem>.TO.n4 .qj>.G-asx{margin-right:0}.inboxsdk__navItem>.TO .aio>.bsU:empty{display:none}.inboxsdk__navItem>.TO .qj:empty::after{background-color:rgb(118 118 118);border-radius:50%;content:\"\";height:18px;margin-left:1px;width:18px}.inboxsdk__navItem>.TO .qj[style*=border-color]:empty::after{border-color:inherit}.inboxsdk__navItem>.TO:hover .pM{display:flex;visibility:visible}.inboxsdk__navItem>.TO .afM{cursor:pointer}.inboxsdk__navItem>.TO img.afM.afO,.inboxsdk__navItem>.TO:hover .afM{display:block;visibility:visible}.inboxsdk__collapsiblePanel_loading_container,.inboxsdk__navItem>.TO:hover .bsU{display:none}.inboxsdk__navItem.inboxsdk__navItem_nonClickable>.TO:active{background-color:initial}.inboxsdk__navItem_hover .aj0,.inboxsdk__navItem_hover .p8{visibility:visible}.inboxsdk__appMenuItem .CL.V6::before,.inboxsdk__collapsiblePanel .T-I.T-I-KE.L3::before{background-image:var(--background-image)}.inboxsdk__collapsiblePanel.apV.aJu .T-I.T-I-KE.L3::before{background-image:var(--background-image--hover)}.inboxsdk__appMenuItem.apV .CL.V6::before{background-image:var(--background-image--active)}.inboxsdk__collapsiblePanel .T-I.T-I-KE.L3::before{background-size:24px}.inboxsdk__collapsiblePanel_loading_container.inboxsdk__collapsiblePanel_loading_container--active,.inboxsdk__shortcutHelp_table table.cf,.inboxsdk__shortcutHelp_table tbody tbody,table[role=presentation].inboxsdk__thread_view_with_custom_view>tr{display:block}.inboxsdk__navItem_link{cursor:pointer;margin-left:auto}.inboxsdk__navItem_link>a{margin-left:16px}.inboxsdk__navItem>.TO .inboxsdk__button{margin-right:0}[dir=rtl] .inboxsdk__navItem_link{left:-4px;right:initial}.inboxsdk__navItem_container .aio .inboxsdk__button{position:absolute;top:0;right:-30px}.inboxsdk__navItem_marker{position:absolute;left:0;padding-bottom:2px}.inboxsdk__expando{z-index:1}.aip .CK,.inboxsdk__navItem_link>a{color:#15c}.aip .CK:hover,.inboxsdk__navItem_link>a:hover{text-decoration:underline}.inboxsdk__navItem_container .aio.aip{white-space:nowrap}.WR[role=navigation] .inboxsdk__navItem .Yh:not(.inboxsdk__navItem_parent_accessory_button):empty{display:none}.WR[role=navigation] .inboxsdk__navItem .Yh:not(.inboxsdk__navItem_parent_accessory_button){background:0 0}.WR[role=navigation] .inboxsdk__navItem .Yh .inboxsdk__button_icon{display:none}.WR[role=navigation].bhZ:not(.bym) .inboxsdk__navItem .Yh{opacity:1}.WR[role=navigation].bhZ:not(.bym) .inboxsdk__navItem .Yh.inboxsdk__navItem_parent_accessory_button{background-image:none!important}.WR[role=navigation].bhZ:not(.bym) .inboxsdk__navItem .Yh:empty{background-color:rgb(32 33 36/71%);border-radius:50%;display:inherit;height:18px;margin-left:1px;width:18px}.WR[role=navigation].bhZ:not(.bym) .inboxsdk__navItem .Yh .inboxsdk__button_icon{display:inherit}.inboxsdk__custom_sections{margin-bottom:8px}.inboxsdk__custom_sections.Wc{padding:0;margin-bottom:0}.inboxsdk__resultsSection.inboxsdk__resultsSection_nonCollapsible .inboxsdk__resultsSection_title .Wp{visibility:hidden}.inboxsdk__custom_sections .Wg,.inboxsdk__custom_sections.Wc .inboxsdk__resultsSection{padding-top:0}.inboxsdk__custom_sections.Wc .Wg{border-bottom:0;padding:0}.inboxsdk__results_collapsedContainer.Wg{height:auto}.inboxsdk__results_collapsedContainer>div{display:flex;flex-wrap:wrap;flex:1 0 100%}.inboxsdk__results_collapsedContainer>div>.inboxsdk__resultsSection_collapsed:first-child:last-child{flex:1;margin-right:0}.inboxsdk__results_collapsedContainer>div>.inboxsdk__resultsSection_collapsed:first-child:last-child>.inboxsdk__resultsSection_header{display:flex;align-items:center;flex:1}.inboxsdk__results_collapsedContainer>div>.inboxsdk__resultsSection_collapsed:first-child:last-child>.inboxsdk__resultsSection_header>.Cr{display:flex;align-items:center;margin-left:auto}.inboxsdk__resultsSection.inboxsdk__resultsSection_collapsed{display:inline-block;margin-right:20px;display:inline-flex}.Wc .inboxsdk__resultsSection.inboxsdk__resultsSection_collapsed{margin-right:0}.inboxsdk__resultsSection_collapsed .Cr{display:none}.inboxsdk__resultsSection_title{white-space:nowrap;cursor:pointer;display:inline-block;display:flex;align-items:center;height:48px}.Wc .inboxsdk__resultsSection_title{padding:3px 0 3px 8px}.inboxsdk__resultsSection_header{min-height:48px;line-height:48px}.inboxsdk__resultsSection_header_summaryText.Wm:last-child .amH{padding-right:0;margin-right:0}.inboxsdk__custom_sections.Wc .inboxsdk__resultsSection_header_summaryText:last-child{margin-right:11px}.inboxsdk__custom_sections.Wc .J-JN-M-I{margin-right:13px}.inboxsdk__resultsSection .TB.TC{text-align:center}.inboxsdk__resultsSection .inboxsdk__resultsSection_loading{font-style:italic}.inboxsdk__resultsSection .inboxsdk__resultsSection_result_icon{height:15px;width:15px}.inboxsdk__resultsSection_label_iconHtml,.inboxsdk__resultsSection_result_iconHtml{display:flex;justify-content:center;align-items:center}.inboxsdk__resultsSection .inboxsdk__resultsSection_tableRow.zA:hover>.xW{display:flex}.inboxsdk__resultsSection .inboxsdk__resultsSection_tableRow.zA>.xW{max-width:none;flex-basis:auto}.inboxsdk__resultsSection .inboxsdk__resultsSection_tableRow .xT{align-items:center}.inboxsdk__resultsSection .xX{width:20ex}.inboxsdk__resultsSection tr .xW>span,.inboxsdk__resultsSection_result_title span{overflow:hidden;display:block;text-overflow:ellipsis}.inboxsdk__resultsSection .V3{overflow:hidden;white-space:nowrap}.inboxsdk__resultsSection .at{position:relative}.inboxsdk__thread_row_label{flex-shrink:0;align-self:flex-end}.apv .inboxsdk__thread_row_label{align-self:flex-start}.inboxsdk__resultsSection_label_icon{height:11px;width:11px;position:absolute;top:2px;margin-left:4px;margin-top:1px}.inboxsdk__resultsSection .av,.inboxsdk__thread_row_label .av{overflow:hidden;text-overflow:ellipsis}.inboxsdk__resultsSection_label_icon+.av,.inboxsdk__thread_row_label .inboxsdk__button_icon+.av{margin-left:16px}.Wc .inboxsdk__resultsSection_footer{padding:3px 3px 3px 8px}.inboxsdk__tooltip .T-P{box-shadow:0 1px 3px rgb(0 0 0/20%);background-color:#fff;border:1px solid;border-color:#bbb #bbb #a8a8a8;padding:16px;z-index:1201!important}.inboxdk__tooltip_content.inboxsdk__tooltip .aRM,.inboxsdk__tooltip.inboxdk__tooltip_content .T-P,.inboxsdk__tooltip.inboxsdk__appButton_tooltip .T-P{padding:0}.inboxsdk__tooltip .aRM{outline:0;padding:13px 10px 16px;text-align:center;font:16px arial,sans-serif}.inboxsdk__tooltip .aRR{color:#333;font-size:18px;margin-top:13px}.inboxsdk__tooltip .aRQ{color:#777;font-size:13px;margin:3px 0 14px}.inboxsdk__tooltip{position:fixed;z-index:1300;transition:left 200ms ease,top 200ms ease}.inboxsdk__tooltip .T-P{position:relative;width:auto;max-width:500px}.inboxsdk__tooltip .inboxsdk__tooltip_arrow{position:fixed;z-index:1400;margin-top:-1px;transition:left 200ms ease,top 200ms ease}.inboxsdk__tooltip .inboxsdk__tooltip_close{user-select:none}.inboxsdk__tooltip .inboxsdk__button{margin-right:0}.inboxsdk__tooltip .inboxsdk__tooltip_image{max-height:300px;max-width:500px;overflow:hidden;height:auto}.inboxsdk__tooltip .inboxsdk__tooltip_image>img{max-height:300px;max-width:500px}.inboxsdk__attachmentCard img.aQG.aYB{max-width:178px;min-width:178px;min-height:118px}.inboxsdk__attachmentCard img.aZG.aYw{background:0 0}.aQw>.T-I.J-J5-Ji.L3{margin-top:5px}table.cf.wd.inboxsdk__shortcutHelp_table{margin-bottom:15px}.inboxsdk__shortcutHelp_table td.Dn{display:inline-block;width:50%}.inboxsdk__shortcutHelp_table tbody tbody tr{display:block;white-space:nowrap}.inboxsdk__shortcutHelp_table td.wg.Dn{display:inline-block;width:45%}.inboxsdk__shortcutHelp_table span.wb{margin-left:3px}.inboxsdk__shortcutHelp_table td.we.Dn{width:60%;white-space:normal}.inboxsdk__shortcutHelp_title img.inboxsdk__icon{height:21px;width:21px;vertical-align:middle;margin-right:10px;border-radius:4px}.asor.inboxsdk__custom_suggestion,.inboxsdk__custom_suggestion_iconHTML{display:flex;justify-content:center;align-items:center}.inboxsdk__custom_suggestion img{max-width:32px;max-height:32px}.inboxsdk__custom_suggestion_iconHTML{position:absolute;left:8px;height:32px;width:43px}.gstq_d .inboxsdk__custom_suggestion_iconHTML{margin-top:-8px}.inboxsdk__appButton{margin-right:8px}.inboxsdk__appButton+.inboxsdk__appButton{margin-left:16px}.inboxsdk__appButton.inboxsdk__appButton_noGPlus{margin-right:0}.inboxsdk__appButton .inboxsdk__button_icon{margin-right:5px;position:relative}.inboxsdk__appButton a{color:#404040;text-decoration:none;line-height:24px}.inboxsdk__appButton.inboxsdk__appButton_noGPlus a{line-height:30px}.inboxsdk__appButton a:hover{text-decoration:underline;color:#000}.inboxsdk__gmail_dark_theme .inboxsdk__appButton a{color:#eee}.inboxsdk__gmail_dark_theme .inboxsdk__appButton a:hover{color:#fff}.inboxsdk__appButton_tooltip{outline:0;transition:none;animation:gb__a .2s}.inboxsdk__appButton_tooltip .inboxsdk__tooltip_close,.inboxsdk__searchIsNarrow .streak__appToolbarButton_title{display:none}.inboxsdk__tooltip.inboxsdk__appButton_tooltip .aRM{padding:0;white-space:initial;text-align:center;font:16px arial,sans-serif}.inboxsdk__tooltip.inboxsdk__appButton_tooltip .inboxsdk__tooltip_arrow{transform-origin:top;transform:rotateZ(180deg);margin-top:9px}.inboxsdk__custom_message_view{display:flex;padding-top:20px;padding-bottom:20px;border-top:1px solid #efefef;border-collapse:collapse}.inboxsdk__custom_message_view_hidden{display:none}.h7.ie+.inboxsdk__custom_message_view{margin-top:5px}.kQ+.inboxsdk__custom_message_view,.kx+.inboxsdk__custom_message_view{margin-top:1px}.inboxsdk__custom_message_view.inboxsdk__custom_message_view_collapsed{cursor:pointer}.inboxsdk__custom_message_view .inboxsdk__custom_message_view_icon{padding-left:16px;padding-right:16px;flex-shrink:0}.inboxsdk__custom_message_view .inboxsdk__custom_message_view_icon img{height:32px;width:32px;border-radius:50%}.inboxsdk__custom_message_view .inboxsdk__custom_message_view_content{width:100%;min-width:0}.inboxsdk__custom_message_view .inboxsdk__custom_message_view_header{cursor:pointer}.inboxsdk__custom_message_view_app_notice_content{position:relative;z-index:1;align-items:center;display:flex;font-size:.75rem!important;justify-content:flex-start;margin-left:0;padding:0;top:0}.adx.inboxsdk__custom_message_view_app_notice_container.inboxsdk__custom_message_view_app_notice_container{position:relative;width:auto!important;min-width:32px}.adx.inboxsdk__custom_message_view_app_notice_container.inboxsdk__custom_message_view_app_notice_container:hover::before{content:none!important}.adx.inboxsdk__custom_message_view_app_notice_container.inboxsdk__custom_message_view_app_notice_container>span:first-child{display:none}.inboxsdk__custom_message_view_app_notice_container::before{position:absolute}.inboxsdk__custom_message_view_app_notice_content>*{color:#555}table[role=presentation].inboxsdk__thread_view_with_custom_view{table-layout:fixed}.inboxsdk__butterbar.inboxsdk__butterbar_error{background-color:#c53929!important}.inboxsdk__butterbar.inboxsdk__butterbar_error [role=button]{color:#fff}.inboxsdk__butterbar.inboxsdk__butterbar_error [role=button]::before{background:rgb(255 255 255/8%)}.inboxsdk__support_menuItem:hover{background-color:#eee;outline:1px dashed transparent}.inboxsdk__compose_addressList{display:flex!important}.inboxsdk__linkPopOver_section_container{position:absolute;width:100%;top:35px;left:0}.inboxsdk__linkPopOver_section{width:100%;background:#fff;border:1px solid;border-color:#bbb #bbb #a8a8a8;font:13px arial,sans-serif;padding:5px 8px;margin-bottom:5px;box-sizing:border-box;box-shadow:0 1px 3px rgb(0 0 0/20%)}.T-I.J-J5-Ji.T-I-ax7.inboxsdk__button .asa::after{width:auto}", ""]);
32498
+ ___CSS_LOADER_EXPORT___.push([module.id, ".inboxsdk__notransition{transition:none!important}.inboxsdk__close_button{height:24px;width:24px;opacity:.7;position:relative;background:0 0;border:0;padding:0;box-sizing:content-box;outline:0;cursor:pointer}.inboxsdk__close_button:focus,.inboxsdk__close_button:hover{opacity:1}.inboxsdk__close_button:focus::before{background-color:rgb(0 0 0/12%)}.inboxsdk__close_button::before{border-radius:50%;position:absolute;inset:-4px -4px -4px -4px;padding:4px;content:\" \"}.inboxsdk__close_button::after{content:\" \";background:url(https://www.gstatic.com/images/icons/material/system/1x/close_black_24dp.png);position:absolute;height:24px;width:24px;top:0;left:0}@media (min-resolution:192dpi){.inboxsdk__close_button::after{background:url(https://www.gstatic.com/images/icons/material/system/2x/close_black_24dp.png);background-size:contain}}.inboxsdk__nJrOYb9x4IUalKhkqH70{display:none}.inboxsdk__drawer_view_container{visibility:visible;direction:initial;position:fixed;height:100vh;width:100vw;bottom:0;left:0;z-index:51;pointer-events:none}.inboxsdk__drawer_view{position:absolute;pointer-events:auto;top:0;bottom:0;right:0;width:452px;font:13px\"Helvetica Neue\",Helvetica,Arial,sans-serif;display:flex;flex-direction:column;background-color:#fff;outline:0;box-shadow:0 0 8px rgb(0 0 0/18%),0 8px 16px rgb(0 0 0/36%);transform:translateX(100%);transition:transform 150ms cubic-bezier(.4,0,.2,1)}.inboxsdk__drawer_view.inboxsdk__match_sidebar_content_panel_width{width:300px}.inboxsdk__drawer_view.inboxsdk__active{transform:none}.inboxsdk__drawer_title_bar{background-color:#f5f5f5;border-bottom:1px solid #e0e0e0;padding:16px 20px;white-space:nowrap;display:flex;flex:0 0 auto}.inboxsdk__drawer_title_bar .inboxsdk__close_button{margin-right:20px;flex-shrink:0}.inboxsdk__drawer_title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:20px/24px\"Helvetica Neue\",Helvetica,Arial,sans-serif}.inboxsdk__inbox_backdrop{visibility:visible;position:fixed;height:100vh;width:100vw;bottom:0;left:0;z-index:50;background-color:transparent;transition:background-color 150ms cubic-bezier(.4,0,1,1)}.inboxsdk__inbox_backdrop.inboxsdk__active{background-color:rgb(10 10 10/60%);transition:background-color 70ms cubic-bezier(0,0,.2,1)}.inboxsdk__inbox_backdrop~.inboxsdk__inbox_backdrop{opacity:.6}.inboxsdk__YVRXKNcaUvgm8xbnhvbA{display:flex;flex-direction:column}.inboxsdk__L1YTilBb_3NY6uyjljIg>.inboxsdk__close_button{position:absolute;bottom:10px;right:20px}.inboxsdk__ZsVjiThsnbCmCG_X1Vvn{width:216px}.inboxsdk__RRnCd87hoA2uHeC1Z_FE{overflow:hidden;font:12px Arial,sans-serif;max-height:100%;box-sizing:border-box}.inboxsdk__iYzl6PjYB9v7KGQNbONH{white-space:nowrap;display:flex;user-select:none;cursor:default}.inboxsdk__RRnCd87hoA2uHeC1Z_FE:not(.inboxsdk__o9YcckDJql686JS0n2cc) .inboxsdk__iYzl6PjYB9v7KGQNbONH{border-bottom:1px solid #ddd}.inboxsdk__RRnCd87hoA2uHeC1Z_FE.inboxsdk__XdCPRDkO7zSIv6nU4USH .inboxsdk__iYzl6PjYB9v7KGQNbONH,.inboxsdk__RRnCd87hoA2uHeC1Z_FE.inboxsdk__vTsoFgWgM9ldKGsRJYHd .inboxsdk__iYzl6PjYB9v7KGQNbONH:hover{background:rgb(0 0 0/3%)}.inboxsdk__lD1h9YUibxcHdtWGdiWq{min-width:0;overflow:hidden;text-overflow:ellipsis}.inboxsdk__RRnCd87hoA2uHeC1Z_FE.inboxsdk__vTsoFgWgM9ldKGsRJYHd .inboxsdk__lD1h9YUibxcHdtWGdiWq{cursor:move}.inboxsdk__p_cMIiZvN4vwQdGOpCts{padding-left:6px;vertical-align:middle;font:700 13px/40px\"Helvetica Neue\",Helvetica,Arial,sans-serif;color:rgb(0 0 0/87%)}.inboxsdk__L1YTilBb_3NY6uyjljIg.inboxsdk__fQK2Ffccj51PVtC_ibDc .inboxsdk__iYzl6PjYB9v7KGQNbONH{display:none}.inboxsdk__RRnCd87hoA2uHeC1Z_FE.inboxsdk__vTsoFgWgM9ldKGsRJYHd .inboxsdk__iYzl6PjYB9v7KGQNbONH:hover .inboxsdk__KudoZ1EBFoQsddbSavvj{position:absolute;top:0;left:0;width:10px;height:40px;background:url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + ")50%center no-repeat}.inboxsdk__TFQRFr4aJVmDmx2llTVx{width:20px;height:20px;vertical-align:middle;display:inline-flex;justify-content:center;align-items:center;margin-top:-1px}.inboxsdk__Yzt2_upvw7fe6BjWdlhZ,.inboxsdk__Yzt2_upvw7fe6BjWdlhZ>img{width:13px;height:13px}.inboxsdk__M4Frio2Us0lwSTltblkg{flex:1;text-align:right;visibility:hidden}.inboxsdk__RRnCd87hoA2uHeC1Z_FE.inboxsdk__vTsoFgWgM9ldKGsRJYHd .inboxsdk__M4Frio2Us0lwSTltblkg{visibility:visible;cursor:pointer}.inboxsdk__Nr6Udyn2ocUynKpdfxh1{margin-top:12px;margin-right:4px;background:url(" + ___CSS_LOADER_URL_REPLACEMENT_1___ + ")center/20px no-repeat;border:0;width:14px;height:14px;transform:rotate(-90deg);transition:-webkit-transform .15s,transform .15s;outline:0;opacity:.6;cursor:pointer}.inboxsdk__RRnCd87hoA2uHeC1Z_FE.inboxsdk__XdCPRDkO7zSIv6nU4USH .inboxsdk__iYzl6PjYB9v7KGQNbONH .inboxsdk__Nr6Udyn2ocUynKpdfxh1,.inboxsdk__iYzl6PjYB9v7KGQNbONH:hover .inboxsdk__Nr6Udyn2ocUynKpdfxh1{opacity:.9}.inboxsdk__RRnCd87hoA2uHeC1Z_FE.inboxsdk__o9YcckDJql686JS0n2cc .inboxsdk__Nr6Udyn2ocUynKpdfxh1{transform:rotate(0)}.inboxsdk__QsikHKWmzD0Ovsg3wrIw{margin-bottom:25px}.inboxsdk__z3cCBtGXYneog44Vf16J .inboxsdk__ARG5bpD2vntIyElH978u{position:relative}.inboxsdk__z3cCBtGXYneog44Vf16J .inboxsdk__button_icon:focus,.inboxsdk__z3cCBtGXYneog44Vf16J .inboxsdk__button_icon:hover{outline:0}.inboxsdk__appid_warning{margin:0;padding:9px;color:#4b4b4b;background:#ff6c6c;font-size:10pt}.inboxsdk__appid_warning_main,a.inboxsdk__appid_register{display:inline-block;vertical-align:middle}.inboxsdk__appid_warning .topline{font-weight:700;font-size:11pt}a.inboxsdk__appid_register{color:#fff;background:#1989ff;border-radius:3px;text-decoration:none;box-shadow:0 0 5px rgb(0 0 0/30%);padding:7px;font-size:10pt;margin-left:1em}.inboxsdk__thread_row_icon_wrapper{display:inline-block}.inboxsdk__thread_row_icon_wrapper .inboxsdk__button_iconImg{margin-top:0}.inboxsdk__QbxpXL1mja3SlO_1nJOS{background:#f8ebc0;margin-bottom:10px;padding:12px 4px 6px 12px}.inboxsdk__suggestions_separator_before{padding-bottom:2px!important}.inboxsdk__suggestions_separator_after{border-top:1px solid #e5e5e5;padding-top:2px!important}div.T-I.inboxsdk__button{user-select:none;min-width:27px}.inboxsdk__no_bg{background:0 0}.inboxsdk__button.inboxsdk__button_disabled{opacity:.55}.inboxsdk__button_icon+.inboxsdk__button_text{margin-left:5px}.inboxsdk__button_icon{display:inline-block}.inboxsdk__button_iconImg{height:20px;width:20px;vertical-align:middle;margin-top:-2px;user-drag:none;user-select:none;-webkit-user-drag:none}.inboxsdk__button_green_hover,.inboxsdk__button_green_inactive{background-image:-webkit-linear-gradient(top,transparent,transparent);background-image:linear-gradient(top,transparent,transparent);border:1px solid transparent;text-shadow:none}.inboxsdk__button_green_inactive{box-shadow:0 1px 0 rgb(0 0 0/5%);background-color:#53a93f;color:#fff}.inboxsdk__button_green_hover{box-shadow:inset 0-1px 0#4c8534;background-color:#65b045;border-bottom:1px solid #4c8534}.inboxsdk__button_green_active{box-shadow:inset 0 1px 0#2f6124;background:#3e802f;border:1px solid transparent;border-top:1px solid #2f6124;color:#fff;text-shadow:none}.inboxsdk__menu{min-width:1em;min-height:1em;padding:0;overflow:visible;max-height:none;z-index:7;cursor:default;font-size:13px;margin:0;outline:0}.inboxsdk__menu>.inboxsdk__menuContent{padding:0;box-shadow:0 8px 10px 1px rgb(0 0 0/14%),0 3px 14px 2px rgb(0 0 0/12%),0 5px 5px -3px rgb(0 0 0/20%);transition:opacity .218s;border:1px solid rgb(0 0 0/20%);background:#fff;outline:0}.f4.J-N-JX.inboxsdk__message_more_icon{height:16px;margin-top:1px;width:16px}.dw .nH>.no .nH.nn:last-child[style*=\"width: 310px;\"],body:has(.companion_app_sidebar_visible) .dw .nH>.no .nH.nn:last-child{width:366px!important}.inboxsdk__composeButton{height:20px;width:20px;padding:4px}.inboxsdk__composeButton,.inboxsdk__compose_sendButton{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;outline:0;position:relative}.inboxsdk__composeButton+.inboxsdk__composeButton{margin-left:4px}.inboxsdk__composeButton .inboxsdk__button_icon{opacity:.55}.inboxsdk__composeButton.inboxsdk__composeButton_active .inboxsdk__button_icon,.inboxsdk__composeButton:focus .inboxsdk__button_icon,.inboxsdk__composeButton:hover .inboxsdk__button_icon{opacity:1}.inboxsdk__composeButton::before{content:\"\";display:block;opacity:0;position:absolute;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);inset:0 0 0 0;background:0 0;box-sizing:border-box;transform:scale(0);transition-property:transform,opacity;border-radius:4px}.inboxsdk__composeButton:hover::before{background-color:rgb(32 33 36/5.9%);border:0;box-shadow:none;opacity:1;transform:scale(1)}.inboxsdk__composeButton.inboxsdk__composeButton_active::before,.inboxsdk__composeButton:focus::before{background-color:rgb(32 33 36/12.2%);border:0;box-shadow:none;opacity:1;transform:scale(1)}.inboxsdk__compose_actionToolbar .inboxsdk__compose_groupedActionToolbar div.inboxsdk__composeButton:last-child{margin-right:0}.inboxsdk__compose_sendButton{background-color:#1a73e8;color:#fff;height:24px;width:auto;border-radius:4px;padding:6px 4px;margin-left:2px}.inboxsdk__compose_inlineReply .inboxsdk__compose_sendButton{height:24px}.inboxsdk__compose_sendButton.inboxsdk__composeButton_active,.inboxsdk__compose_sendButton:focus{background-color:#5094ed;box-shadow:0 1px 1px 0 rgb(66 133 244/30%),0 1px 3px 1px rgb(66 133 244/15%);border:0}.T-I~.inboxsdk__compose_sendButton{margin-left:-6px}.inboxsdk__compose_actionToolbar{white-space:nowrap;padding-left:6px}.inboxsdk__compose_actionToolbar .inboxsdk__button_icon{height:20px;width:20px;display:inline-flex;user-select:none}.inboxsdk__compose_actionToolbar .inboxsdk__button_iconImg{height:17px;width:17px;display:inline-flex;margin:auto}.inboxsdk__compose_actionToolbar+.gU:not(.inboxsdk__compose_separator){padding-left:8px}.inboxsdk__compose_groupedActionToolbar_visible .aDg .aDh{overflow-y:visible}.inboxsdk__compose_groupedActionToolbar{position:absolute;bottom:44px;z-index:10;border-radius:2px;box-shadow:0 4px 5px 0 rgb(0 0 0/14%),0 1px 10px 0 rgb(0 0 0/12%),0 2px 4px -1px rgb(0 0 0/20%);margin:3px 3px 7px;padding:4px 5px;background:#fff;left:-3px}.inboxsdk__compose_inlineReply .inboxsdk__compose_groupedActionToolbar{left:14px}.inboxsdk__compose_groupedActionToolbar .inboxsdk__composeButton:first-child{margin-left:0;margin-right:0}.inboxsdk__composeButton.inboxsdk__compose_groupedActionButton{margin-right:0}.inboxsdk__compose_groupedActionToolbar .inboxsdk__composeButton{padding:4px}.inboxsdk__compose_groupedActionToolbar_visible .bA3{height:40px}.inboxsdk__compose_groupedActionToolbar div.inboxsdk__button{z-index:1;margin-right:0}.inboxsdk__compose_groupedActionToolbar_arrow,span.inboxsdk__thread_row_custom_draft_label+div.yW{display:none}.inboxsdk__compose_customSendContainer{display:inline-block;position:relative;outline:0;margin:6px 0;padding:0;vertical-align:middle;height:36px;line-height:36px}.inboxsdk__compose_customTitleBarColor>img.Ha,.inboxsdk__compose_customTitleBarColor>img.Hl,.inboxsdk__compose_customTitleBarColor>img.Hq{background-color:transparent!important}.inboxsdk__compose_hasCustomTitleBarText,.inboxsdk__compose_hasCustomTitleBarText>tbody>tr{display:flex}.inboxsdk__compose_hasCustomTitleBarText>tbody>tr{align-items:center}.inboxsdk__compose_hasCustomTitleBarText>tbody{width:100%}.inboxsdk__compose_nativeTitleBarText{display:none!important}.inboxsdk__compose_customTitleBarText{width:calc(100% - 80px)}.inboxsdk__compose_hasCustomTitleBarText td.Hm{margin-right:10px;margin-left:auto}.inboxsdk__compose_statusBarPrependContainer{border-top:1px solid #cfcfcf}.inboxsdk__compose_statusBarPrependContainer+table td.gU{border-top:none}input.inboxsdk__x_close_button{background-color:transparent;background-image:url(" + ___CSS_LOADER_URL_REPLACEMENT_2___ + ");background-size:cover;background-repeat:no-repeat;background-position:center center;height:20px;width:20px;border:0;vertical-align:middle;cursor:pointer;float:right;margin:5px}.inboxsdk__gmail_label.inboxsdk__label_has_icon .au{display:inline-block;margin-left:14px}.inboxsdk__thread_row_label .inboxsdk__button_icon,.inboxsdk__thread_row_label .inboxsdk__button_iconImg{height:11px;width:11px}.inboxsdk__thread_row_label .inboxsdk__button_icon{display:inline-block;margin-top:3px;margin-left:4px;position:absolute}.inboxsdk__thread_row_button{outline:0;height:20px;width:20px;padding:0}.inboxsdk__thread_row_button .inboxsdk__button_icon{max-height:100%}.inboxsdk__thread_row_custom_date_container,.zA>.xY.inboxsdk__thread_row_attachment_icons_present{max-width:inherit}.inboxsdk__thread_row_button .inboxsdk__button_iconImg{height:20px;width:20px;margin-top:0}.inboxsdk__gmail_action{float:right;position:relative;background-color:gray;margin-left:1em;cursor:default;background-image:-webkit-linear-gradient(top,#e9e9e9,#e6e6e6);background-image:linear-gradient(top,#e9e9e9,#e6e6e6);border:1px solid rgb(0 0 0/10%);border-color:#ccc;color:#444;height:17px;line-height:17px;min-width:56px;border-radius:2px;font-size:11px;font-weight:700;text-align:center;white-space:nowrap;padding:0 18px 0 6px}.inboxsdk__gmail_action:focus{border:1px solid #4d90fe;outline:0}.inboxsdk__gmail_action:active{box-shadow:inset 0 1px 2px rgb(0 0 0/10%)}.inboxsdk__gmail_action:hover{box-shadow:0 1px 1px rgb(0 0 0/5%);background-color:#ededed;background-image:-webkit-linear-gradient(top,#ededed,#eaeaea);background-image:linear-gradient(top,#ededed,#eaeaea);border-color:#b8b8b8}.inboxsdk__gmail_action::after{content:\"\";position:absolute;right:5px;top:5px;margin-left:5px;background:no-repeat url(https://ssl.gstatic.com/mail/sprites/smartmail-561acb673be75c1d374881a95997fce4.png)-67px -100px;width:7px;height:7px;opacity:.55}.inboxsdk__thread_row_custom_date{margin-left:2px}span.inboxsdk__thread_row_custom_date+span:not(.inboxsdk__thread_row_custom_date){display:none}.inboxsdk__thread_row_attachment_iconWrapper{margin-left:3px;height:16px}.inboxsdk__thread_row_attachment_icon{margin-left:3px;width:16px;height:16px}.inboxsdk__thread_row_attachment_iconWrapper{display:flex;justify-content:center;align-items:center;width:max-content}.zA td.apU.xY{width:initial}.zA td.apU.xY span.inboxsdk__thread_row_button{margin:0 10px;opacity:.16}.zA.aqw td.apU.xY span.inboxsdk__thread_row_button{opacity:.54}.zA.aqw td.apU.xY span.inboxsdk__thread_row_button:hover{opacity:1}.zA td.apU.xY span.inboxsdk__thread_row_button::before{width:0;height:0}.inboxsdk__thread_row_attachment_icon{vertical-align:middle}.Zs .xY.inboxsdk__thread_row_attachment_icons_present{flex-grow:0}.Zs .xY.inboxsdk__thread_row_label{order:1}.Zs .xY.inboxsdk__thread_row_icon_wrapper{order:1;margin-left:3px;margin-right:0}.inboxsdk__thread_row_icon_wrapper .inboxsdk__button_icon,.inboxsdk__thread_row_icon_wrapper .inboxsdk__button_iconImg{height:18px;width:18px}.inboxsdk__thread_row_icon_wrapper{width:20px;margin-right:3px;align-self:center;height:20px;flex:0 0 auto}.inboxsdk__thread_row_icon_wrapper .inboxsdk__button_iconImg{vertical-align:top}.inboxsdk__thread_row_image_added .y6 .inboxsdk__thread_row_icon_wrapper~span[id]{margin-left:3px}.inboxsdk__thread_row_image_added .a4W,.inboxsdk__thread_row_image_added .apA,.inboxsdk__thread_row_image_added .apx{position:relative}[inboxsdk__message_added_attachment_icon] td.gH div.gK>span:first-child>img,[inboxsdk__message_added_attachment_icon] td.gH>span:first-child>img{margin-right:3px;margin-left:3px;margin-top:0}[inboxsdk__message_added_attachment_icon] td.gH div.gK>span:first-child>:last-child,[inboxsdk__message_added_attachment_icon] td.gH>span:first-child>:last-child{margin-right:6px}.inboxsdk__message_attachment_icon,.inboxsdk__message_attachment_iconWrapper{width:21px;height:21px;position:relative}.inboxsdk__message_attachment_iconWrapper{margin:auto 3px;display:inline-flex;justify-content:center;align-items:center;vertical-align:top}.inboxsdk__message_attachment_tooltipWrapper{position:absolute;top:19px;z-index:10}.gU .aWQ{max-height:3px}.aQw .inboxsdk__button_icon{display:inline-flex;align-items:center;justify-content:center;height:28px}.aQw .inboxsdk__button_iconImg{height:18px;width:18px;margin-top:2px}.aZi .asa .inboxsdk__button_iconImg{display:inline-block;vertical-align:middle;margin-top:-3px}.aZi .aZj .asa .inboxsdk__button_iconImg{margin:0}body .dw{z-index:6!important}.inboxsdk__compose_outerSidebar_wrapper{position:absolute;left:-401px;top:0;background:#fff;width:400px;bottom:0;border-left:1px solid silver;box-shadow:-2px 0 1px #e6e6e6;display:block}.inboxsdk__outerSidebarActive .aSt .inboxsdk__compose_outerSidebar_wrapper{border-left:0;box-shadow:none;left:-400px}.inboxsdk__outerSidebarActive .aSs>div{width:50%!important;margin-left:30%}.inboxsdk__compose_outerSidebar_header{background:#404040;font-size:80%;padding:10px 10px 11px;color:#fff;border-bottom:1px solid #c4c4c4}.inboxsdk__compose_outerSidebar_body{position:absolute;width:100%;bottom:43px;top:36px;left:-1px;overflow:auto}.inboxsdk__compose_outerSidebar_footer{position:absolute;bottom:0;width:100%;border-top:1px solid rgb(206 206 206);display:block}.inboxsdk__compose_innerSidebarActive .GQ,.inboxsdk__compose_innerSidebarActive form{padding-right:200px}div.inboxsdk__compose_statusbar{border:0;height:40px;margin:0}.inboxsdk__compose_statusbar{background:0 0;position:relative}.HM .I5 .inboxsdk__compose_statusbar{padding:0 16px 16px}table+.inboxsdk__compose_statusbar{margin-top:-8px}body.inboxsdk__classic_gmail_recipients_area .inboxsdk__compose_statusbarActive .aoI{height:auto!important}.inboxsdk__compose_statusbarActive .aDl{z-index:unset}.inboxsdk__compose .qz{max-height:inherit!important}body:not(.inboxsdk_hack_disableComposeSizeFixer) .inboxsdk__size_fixer .aDj.aDi{position:static!important}.inboxsdk__compose_inlineReply.inboxsdk__compose_statusbarActive .HM .I5{padding-bottom:var(--inboxsdk-total-added-statusbar-height, 0px)}.inboxsdk__compose_inlineReply.inboxsdk__compose_statusbarActive .aDj::before{height:calc(100% + var(--inboxsdk-total-added-statusbar-height, 0px))}.inboxsdk__compose_inlineReply.inboxsdk__compose_statusbarActive .aDj.aDi>.aDh{background-color:#fff}.inboxsdk__recipient_row{display:flex}.inboxsdk__compose_notice{background-color:#f5f5f5;border-radius:4px;margin:10px;padding:10px 16px}.inboxsdk__recipient_row td.ok{height:20px;padding:0!important}.inboxsdk__recipient_row td.az3{padding:0 3px}.inboxsdk__compose_forceRecipientsOpen .fX.aXjCH{display:block!important}.inboxsdk__compose_forceRecipientRowHidden,.inboxsdk__compose_forceRecipientsOpen .aoD.hl,.inboxsdk__compose_hideRecipientArea .aoD.hl,.inboxsdk__compose_hideRecipientArea .fX.aXjCH,[data-thread-toolbar=true] [data-rowlist-toolbar=true],[data-toolbar-expanded=false] [data-toolbar-expanded=true],[data-toolbar-expanded=true] [data-toolbar-expanded=false],[data-toolbar-icononly=true] .inboxsdk__button_text{display:none!important}[data-toolbar-icononly=false] .inboxsdk__button_text{color:#5f6368}[data-toolbar-icononly=false] .asa::before{border-radius:4px;border:0!important}[data-toolbar-icononly=false] .inboxsdk__button{align-items:center;border:0;display:inline-flex;justify-content:center;position:relative;z-index:0;-webkit-font-smoothing:antialiased;font-family:\"Google Sans\",Roboto,RobotoDraft,Helvetica,Arial,sans-serif;font-size:14px;letter-spacing:.15px;background:0 0;box-sizing:border-box;color:#5f6368;cursor:pointer;font-weight:500;outline:0;padding:0 8px}.inboxsdk__menuItem .inboxsdk__icon,.inboxsdk__menuItem img{height:16px;width:16px;margin-top:-1px}.inboxsdk__modal_overlay{right:0;bottom:0}.inboxsdk__modal_fullscreen{position:fixed;inset:0 0 0 0;z-index:503;display:flex;justify-content:center;align-items:center;padding:110px 50px 50px}.inboxsdk__modal_content{margin-top:30px;margin-bottom:30px}.inboxsdk__modal_fullscreen.inboxsdk__modal_content_no_buttons .inboxsdk__modal_content{margin-bottom:0}.inboxsdk__modal_fullscreen.inboxsdk__modal_content_no_buttons:not(.inboxsdk__modal_hideBottom) .inboxsdk__modal_content{margin-bottom:0;padding-bottom:24px}.inboxsdk__modal_close{outline:0;cursor:pointer}.inboxsdk__modal_fullscreen .inboxsdk__modal_container{position:relative;margin-top:-60px;width:auto;overflow:hidden}.inboxsdk__modal_fullscreen .inboxsdk__modal_container .inboxsdk__modal_toprow{margin-right:16px}.inboxsdk__modal_fullscreen.inboxsdk__modal_hideTop .inboxsdk__modal_close{display:none}.inboxsdk__modal_fullscreen.inboxsdk__modal_hideTop .inboxsdk__modal_container{padding-top:0}.inboxsdk__modal_fullscreen.inboxsdk__modal_hideTop .inboxsdk__modal_content{margin-top:0}.inboxsdk__modal_fullscreen.inboxsdk__modal_hideTop .Kj-JD-K7{margin:0;display:none}.inboxsdk__modal_fullscreen.inboxsdk__modal_hideSides .inboxsdk__modal_container,.inboxsdk__modal_fullscreen.inboxsdk__modal_hideSides .inboxsdk__modal_content{padding-left:0;padding-right:0}.inboxsdk__modal_fullscreen.inboxsdk__modal_hideBottom .inboxsdk__modal_content{margin-bottom:0}.inboxsdk__modal_fullscreen.inboxsdk__modal_hideBottom .inboxsdk__modal_container{padding-bottom:0}.inboxsdk__modal_toprow.inboxsdk__modal_toprow--constrain-title-width{display:flex}.inboxsdk__modal_toprow--constrain-title-width>span[role=heading]{flex:1;width:0;word-wrap:break-word}.inboxsdk__drawers_in_use .aDi,.inboxsdk__moles_in_use .aDi{left:auto!important;position:static}.inboxsdk__moles_in_use .nH>.nH>.no{white-space:nowrap}.inboxsdk__moles_in_use .nH>.nH>.no>*{white-space:initial}.inboxsdk__moles_in_use .nH>.nH>.no>.nn{display:inline-block;float:none}.inboxsdk__mole_view{position:relative;max-width:564px;height:100vh;vertical-align:top;display:inline-flex;align-items:flex-end}.inboxsdk__mole_view_inner{visibility:visible;box-sizing:border-box;margin-right:5px;box-shadow:rgb(0 0 0/20%)0 2px 6px;min-width:260px;min-height:40px}.inboxsdk__mole_view_inner:not(.inboxsdk__original_view),.inboxsdk__mole_view_titlebar:not(.inboxsdk__original_view){border-radius:8px 8px 0 0}.inboxsdk__mole_view_titlebar{position:absolute;left:0;right:5px;font-size:14px;font-weight:500;box-sizing:border-box;height:40px;cursor:pointer;padding:10px 12px 10px 16px;color:#041e49;background:#f2f6fc}.inboxsdk__mole_view_titlebar.inboxsdk__original_view{color:#fff;font-size:12.8px;font-weight:400;background:#404040;padding:9px 0 0 11px;border-radius:4px 4px 0 0}.inboxsdk__mole_view_titlebar h2{font-size:inherit;font-weight:inherit;margin:4px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inboxsdk__mole_title_buttons{white-space:nowrap;float:right;padding-right:5px;margin-top:1px}.inboxsdk__mole_title_buttons.inboxsdk__original_view{margin-top:-3px}.inboxsdk__mole_title_buttons>img{height:24px;width:24px;position:relative;top:2px}.inboxsdk__mole_title_buttons:not(.inboxsdk__original_view)>img{height:16px;width:16px;margin-left:4px}.inboxsdk__mole_title_buttons:not(.inboxsdk__original_view)>img:hover{background-color:rgb(68 71 70/7.8%)}.inboxsdk__mole_title_buttons.inboxsdk__original_view>img:hover{background-color:#737373}.inboxsdk__mole_title_buttons>img:hover{opacity:1}.inboxsdk__mole_view.inboxsdk__minimized .Hl,.inboxsdk__mole_view.inboxsdk__minimized .inboxsdk__mole_view_content,.inboxsdk__mole_view.inboxsdk__minimized.inboxsdk__mole_use_minimize_title h2.inboxsdk__mole_default,.inboxsdk__mole_view:not(.inboxsdk__minimized) .Hk,.inboxsdk__mole_view:not(.inboxsdk__minimized) h2.inboxsdk__mole_minimized,.inboxsdk__mole_view:not(.inboxsdk__mole_use_minimize_title) h2.inboxsdk__mole_minimized{display:none}.inboxsdk__mole_view_content:not(.inboxsdk__original_view){margin-top:40px;border:0}.inboxsdk__mole_view_content{margin-top:36px;border:1px solid #cfcfcf;background:#fff;min-width:260px;min-height:20px;max-height:80vh}.inboxsdk__mole_view_chromeless .inboxsdk__mole_view_inner{min-width:0}.inboxsdk__mole_view_chromeless .inboxsdk__mole_view_content{margin-top:0;min-width:0}.inboxsdk__tab{width:30px}.inboxsdk__tab.inboxsdk__fQK2Ffccj51PVtC_ibDc:first-child:last-child{display:none}.inboxsdk__tab.inboxsdk__tab_selected{width:auto}table.aKk .inboxsdk__contentTabContainer .inboxsdk__tab .aAy[role=tab]{height:28px}.inboxsdk__tab_icon{width:30px;height:25px;background-position-x:5px;background-position-y:3px;background-size:16px;background-repeat:no-repeat}.inboxsdk__tab_icon img{height:16px;width:16px;margin-left:5px;margin-top:3px}.inboxsdk__tab .aKx{top:4px}.inboxsdk__sidebar div[role=complementary]{position:static!important}.inboxsdk__sidebar>div.y4,.inboxsdk__lmkPHCz841PzU2vywMZI>div.y4{display:none}table.aKk .inboxsdk__contentTabContainer .inboxsdk__tab:first-child .aAy[role=tab]{border-left-width:1px}.inboxsdk__sidebar .inboxsdk__contentPanelContainer{font:12px Arial,sans-serif;max-width:220px}.inboxsdk__contentPanelContainer_contentContainer{overflow:hidden;margin-bottom:10px;border-bottom:1px solid #d8d8d8}body.inboxsdk__hasTopMessageBar .bq9{top:var(--inboxsdk__topMessageBar-height)}.inboxsdk__lmkPHCz841PzU2vywMZI>div[role=complementary]{position:static!important;width:216px!important}.inboxsdk__lmkPHCz841PzU2vywMZI{will-change:position}.inboxsdk__RRnCd87hoA2uHeC1Z_FE{background:#fff}.inboxsdk__ZsVjiThsnbCmCG_X1Vvn{padding:4px 0 12px}.inboxsdk__L1YTilBb_3NY6uyjljIg.inboxsdk__fQK2Ffccj51PVtC_ibDc .inboxsdk__ZsVjiThsnbCmCG_X1Vvn{padding-top:0}.container_app_sidebar_in_use.no,.inboxsdk__IpDkQtEZuh257muFXot6.no{display:flex;flex-direction:row;width:100%}body[dir=rtl] .container_app_sidebar_in_use.no[dir=ltr],body[dir=rtl] .idm5_container_app_sidebar_no_icons.no[dir=ltr]{flex-direction:row-reverse}.container_app_sidebar_in_use.no .G-atb.inboxsdk__thread_toolbar_parent[gh=tm]{margin-right:-57px!important}.container_addon_sidebar_visible.container_app_sidebar_in_use.no .G-atb.inboxsdk__thread_toolbar_parent[gh=tm],.container_app_sidebar_visible.container_app_sidebar_in_use.no .G-atb.inboxsdk__thread_toolbar_parent[gh=tm]{margin-right:-321px!important}.inboxsdk__IpDkQtEZuh257muFXot6 .G-atb.inboxsdk__thread_toolbar_parent[gh=tm]{margin-right:0!important}.inboxsdk__button.ar7{pointer-events:all!important}.container_app_sidebar_in_use .bkK.nn,.inboxsdk__IpDkQtEZuh257muFXot6 .bkK.nn{width:auto!important;flex:1;min-width:0}.inboxsdk__IpDkQtEZuh257muFXot6 .bnl.nn{z-index:-1;position:absolute}.container_app_sidebar_in_use .inboxsdk__lmkPHCz841PzU2vywMZI{min-width:57px!important;flex-shrink:0}.container_app_sidebar_in_use .inboxsdk__lmkPHCz841PzU2vywMZI.app_sidebar_visible{min-width:321px!important}.container_app_sidebar_in_use .inboxsdk__lmkPHCz841PzU2vywMZI>.J-KU-Jg{display:block!important}.container_app_sidebar_in_use .inboxsdk__lmkPHCz841PzU2vywMZI .inboxsdk__jQiSbhX57v1JCl6fIbdb{display:none}.container_app_sidebar_in_use .inboxsdk__lmkPHCz841PzU2vywMZI.app_sidebar_visible .inboxsdk__jQiSbhX57v1JCl6fIbdb{display:block;float:left;height:100%;border-left:1px solid #e0e0e0;padding-left:16px;width:calc(100% - 74px);overflow:auto}.container_app_sidebar_in_use .inboxsdk__jQiSbhX57v1JCl6fIbdb .inboxsdk__ZsVjiThsnbCmCG_X1Vvn{width:calc(100% - 16px);padding-right:16px}.container_app_sidebar_in_use .inboxsdk__lmkPHCz841PzU2vywMZI.app_sidebar_visible .J-KU-Jz{width:auto;padding-right:50px}.inboxsdk__z3cCBtGXYneog44Vf16J .inboxsdk__button_icon{margin:18px 18px 10px;border:0;background:0 0;height:20px;width:20px;overflow:hidden;padding:0;cursor:pointer;position:relative}.inboxsdk__z3cCBtGXYneog44Vf16J.sidebar_global_iconArea .inboxsdk__button_icon{margin-bottom:18px}body .inboxsdk__z3cCBtGXYneog44Vf16J .inboxsdk__button_icon{overflow:visible}.inboxsdk__z3cCBtGXYneog44Vf16J .inboxsdk__button_icon:hover::before,.inboxsdk__z3cCBtGXYneog44Vf16J .sidebar_button_container_active .inboxsdk__button_icon::before{content:\"\";background:#f1f3f4;position:absolute;inset:-10px -10px -10px -10px;border-radius:50%;z-index:0}.inboxsdk__z3cCBtGXYneog44Vf16J .sidebar_button_container_active .inboxsdk__button_icon::before{background:#e8eaed}.inboxsdk__z3cCBtGXYneog44Vf16J .inboxsdk__button_iconImg{width:20px;height:20px;margin-top:0}.inboxsdk__z3cCBtGXYneog44Vf16J .inboxsdk__button_icon .inboxsdk__button_iconImg{position:absolute;left:0;top:0;z-index:1}.inboxsdk__z3cCBtGXYneog44Vf16J .sidebar_button_container_active .inboxsdk__button_selectedIndicator{height:40px;width:4px;position:absolute;right:0;bottom:0;background-color:rgb(66 133 244);border-radius:3px 0 0 3px}.inboxsdk__z3cCBtGXYneog44Vf16J.sidebar_global_iconArea .sidebar_button_container_active .inboxsdk__button_selectedIndicator{bottom:8px}.brC-brG.companion_app_sidebar_visible{display:block!important}.bq9:not(.brC-brG).companion_app_sidebar_wrapper_visible{display:block!important}.companion_global_app_sidebar_visible .thread_app_sidebar{display:none}.companion_app_sidebar_visible:not(.companion_global_app_sidebar_visible) .global_app_sidebar,body.inboxsdk__custom_view_active .brC-aT5-aOt-ato-Kp-Jw [role=tablist]>div:not(:last-child){display:none}.nH.companion_container_app_sidebar_visible{width:calc(100% - 300px)!important}.companion_app_sidebar_visible .addon_sidebar~div:not(.addon_sidebar){display:none!important}.inboxsdk__lmkPHCz841PzU2vywMZI .inboxsdk__jQiSbhX57v1JCl6fIbdb.addon_sidebar{height:100%;overflow:auto}.inboxsdk__lmkPHCz841PzU2vywMZI .inboxsdk__jQiSbhX57v1JCl6fIbdb.addon_sidebar .inboxsdk__ZsVjiThsnbCmCG_X1Vvn{width:100%}.inboxsdk__lmkPHCz841PzU2vywMZI:not(.companion_app_sidebar_visible) .addon_sidebar{display:none}.inboxsdk__TFQRFr4aJVmDmx2llTVx{margin-left:0}.inboxsdk__RRnCd87hoA2uHeC1Z_FE .inboxsdk__iYzl6PjYB9v7KGQNbONH{padding:0 16px}.inboxsdk__lmkPHCz841PzU2vywMZI .bvq,.inboxsdk__lmkPHCz841PzU2vywMZI .bvq>div:last-child{display:block!important}.inboxsdk__cnd4jAy3zFUYdR_NdMxT .bvq>div:first-child{display:none!important}.inboxsdk__custom_view_element{overflow:auto}.inboxsdk__hide_native_marker .ain:not(.inboxsdk__navItem){border-left-color:transparent}.inboxsdk__hide_native_marker .ain:not(.inboxsdk__navItem) .bsU,.inboxsdk__hide_native_marker .ain:not(.inboxsdk__navItem) .nU:not(.n1) .n0{font-weight:400}.inboxsdk__hide_native_marker .ain:not(.inboxsdk__navItem) .TO{background:0 0}.inboxsdk__hide_addon_container{display:flex!important;flex-direction:row;width:100%!important}body[dir=rtl] .inboxsdk__hide_addon_container[dir=ltr]{flex-direction:row-reverse}.inboxsdk__hide_addon_container>.bkK.nn{width:auto!important;flex:1;min-width:0}.inboxsdk__hide_addon_container>.bnl.nn,.inboxsdk__navItem>.TO img.afM.afO~.aio>.bsU{display:none}.inboxsdk__navItem{font-size:14px}.inboxsdk__navItem:not(.Xr)>.V3[style]{flex-grow:0!important}.inboxsdk__navItem>.TO.n4{display:block;padding-left:0}.inboxsdk__collapsiblePanel .inboxsdk__navItem>.TO .TN.aik{padding-left:18px}.inboxsdk__collapsiblePanel .inboxsdk__navItem>.TO .qj{margin-right:14px}.inboxsdk__navItem>.TO.n4 .qj>.G-asx{margin-right:0}.inboxsdk__navItem>.TO .aio>.bsU:empty{display:none}.inboxsdk__navItem>.TO .qj:empty::after{background-color:rgb(118 118 118);border-radius:50%;content:\"\";height:18px;margin-left:1px;width:18px}.inboxsdk__navItem>.TO .qj[style*=border-color]:empty::after{border-color:inherit}.inboxsdk__navItem>.TO:hover .pM{display:flex;visibility:visible}.inboxsdk__navItem>.TO .afM{cursor:pointer}.inboxsdk__navItem>.TO img.afM.afO,.inboxsdk__navItem>.TO:hover .afM{display:block;visibility:visible}.inboxsdk__collapsiblePanel_loading_container,.inboxsdk__navItem>.TO:hover .bsU{display:none}.inboxsdk__navItem.inboxsdk__navItem_nonClickable>.TO:active{background-color:initial}.inboxsdk__navItem_hover .aj0,.inboxsdk__navItem_hover .p8{visibility:visible}.inboxsdk__appMenuItem .CL.V6::before,.inboxsdk__collapsiblePanel .T-I.T-I-KE.L3::before{background-image:var(--background-image)}.inboxsdk__collapsiblePanel.apV.aJu .T-I.T-I-KE.L3::before{background-image:var(--background-image--hover)}.inboxsdk__appMenuItem.apV .CL.V6::before{background-image:var(--background-image--active)}.inboxsdk__collapsiblePanel .T-I.T-I-KE.L3::before{background-size:24px}.inboxsdk__collapsiblePanel_loading_container.inboxsdk__collapsiblePanel_loading_container--active,.inboxsdk__shortcutHelp_table table.cf,.inboxsdk__shortcutHelp_table tbody tbody,table[role=presentation].inboxsdk__thread_view_with_custom_view>tr{display:block}.inboxsdk__navItem_link{cursor:pointer;margin-left:auto}.inboxsdk__navItem_link>a{margin-left:16px}.inboxsdk__navItem>.TO .inboxsdk__button{margin-right:0}[dir=rtl] .inboxsdk__navItem_link{left:-4px;right:initial}.inboxsdk__navItem_container .aio .inboxsdk__button{position:absolute;top:0;right:-30px}.inboxsdk__navItem_marker{position:absolute;left:0;padding-bottom:2px}.inboxsdk__expando{z-index:1}.aip .CK,.inboxsdk__navItem_link>a{color:#15c}.aip .CK:hover,.inboxsdk__navItem_link>a:hover{text-decoration:underline}.inboxsdk__navItem_container .aio.aip{white-space:nowrap}.WR[role=navigation] .inboxsdk__navItem .Yh:not(.inboxsdk__navItem_parent_accessory_button):empty{display:none}.WR[role=navigation] .inboxsdk__navItem .Yh:not(.inboxsdk__navItem_parent_accessory_button){background:0 0}.WR[role=navigation] .inboxsdk__navItem .Yh .inboxsdk__button_icon{display:none}.WR[role=navigation].bhZ:not(.bym) .inboxsdk__navItem .Yh{opacity:1}.WR[role=navigation].bhZ:not(.bym) .inboxsdk__navItem .Yh.inboxsdk__navItem_parent_accessory_button{background-image:none!important}.WR[role=navigation].bhZ:not(.bym) .inboxsdk__navItem .Yh:empty{background-color:rgb(32 33 36/71%);border-radius:50%;display:inherit;height:18px;margin-left:1px;width:18px}.WR[role=navigation].bhZ:not(.bym) .inboxsdk__navItem .Yh .inboxsdk__button_icon{display:inherit}.inboxsdk__custom_sections{margin-bottom:8px}.inboxsdk__custom_sections.Wc{padding:0;margin-bottom:0}.inboxsdk__resultsSection.inboxsdk__resultsSection_nonCollapsible .inboxsdk__resultsSection_title .Wp{visibility:hidden}.inboxsdk__custom_sections .Wg,.inboxsdk__custom_sections.Wc .inboxsdk__resultsSection{padding-top:0}.inboxsdk__custom_sections.Wc .Wg{border-bottom:0;padding:0}.inboxsdk__results_collapsedContainer.Wg{height:auto}.inboxsdk__results_collapsedContainer>div{display:flex;flex-wrap:wrap;flex:1 0 100%}.inboxsdk__results_collapsedContainer>div>.inboxsdk__resultsSection_collapsed:first-child:last-child{flex:1;margin-right:0}.inboxsdk__results_collapsedContainer>div>.inboxsdk__resultsSection_collapsed:first-child:last-child>.inboxsdk__resultsSection_header{display:flex;align-items:center;flex:1}.inboxsdk__results_collapsedContainer>div>.inboxsdk__resultsSection_collapsed:first-child:last-child>.inboxsdk__resultsSection_header>.Cr{display:flex;align-items:center;margin-left:auto}.inboxsdk__resultsSection.inboxsdk__resultsSection_collapsed{display:inline-block;margin-right:20px;display:inline-flex}.Wc .inboxsdk__resultsSection.inboxsdk__resultsSection_collapsed{margin-right:0}.inboxsdk__resultsSection_collapsed .Cr{display:none}.inboxsdk__resultsSection_title{white-space:nowrap;cursor:pointer;display:inline-block;display:flex;align-items:center;height:48px}.Wc .inboxsdk__resultsSection_title{padding:3px 0 3px 8px}.inboxsdk__resultsSection_header{min-height:48px;line-height:48px}.inboxsdk__resultsSection_header_summaryText.Wm:last-child .amH{padding-right:0;margin-right:0}.inboxsdk__custom_sections.Wc .inboxsdk__resultsSection_header_summaryText:last-child{margin-right:11px}.inboxsdk__custom_sections.Wc .J-JN-M-I{margin-right:13px}.inboxsdk__resultsSection .TB.TC{text-align:center}.inboxsdk__resultsSection .inboxsdk__resultsSection_loading{font-style:italic}.inboxsdk__resultsSection .inboxsdk__resultsSection_result_icon{height:15px;width:15px}.inboxsdk__resultsSection_label_iconHtml,.inboxsdk__resultsSection_result_iconHtml{display:flex;justify-content:center;align-items:center}.inboxsdk__resultsSection .inboxsdk__resultsSection_tableRow.zA:hover>.xW{display:flex}.inboxsdk__resultsSection .inboxsdk__resultsSection_tableRow.zA>.xW{max-width:none;flex-basis:auto}.inboxsdk__resultsSection .inboxsdk__resultsSection_tableRow .xT{align-items:center}.inboxsdk__resultsSection .xX{width:20ex}.inboxsdk__resultsSection tr .xW>span,.inboxsdk__resultsSection_result_title span{overflow:hidden;display:block;text-overflow:ellipsis}.inboxsdk__resultsSection .V3{overflow:hidden;white-space:nowrap}.inboxsdk__resultsSection .at{position:relative}.inboxsdk__thread_row_label{flex-shrink:0;align-self:flex-end}.apv .inboxsdk__thread_row_label{align-self:flex-start}.inboxsdk__resultsSection_label_icon{height:11px;width:11px;position:absolute;top:2px;margin-left:4px;margin-top:1px}.inboxsdk__resultsSection .av,.inboxsdk__thread_row_label .av{overflow:hidden;text-overflow:ellipsis}.inboxsdk__resultsSection_label_icon+.av,.inboxsdk__thread_row_label .inboxsdk__button_icon+.av{margin-left:16px}.Wc .inboxsdk__resultsSection_footer{padding:3px 3px 3px 8px}.inboxsdk__tooltip .T-P{box-shadow:0 1px 3px rgb(0 0 0/20%);background-color:#fff;border:1px solid;border-color:#bbb #bbb #a8a8a8;padding:16px;z-index:1201!important}.inboxdk__tooltip_content.inboxsdk__tooltip .aRM,.inboxsdk__tooltip.inboxdk__tooltip_content .T-P,.inboxsdk__tooltip.inboxsdk__appButton_tooltip .T-P{padding:0}.inboxsdk__tooltip .aRM{outline:0;padding:13px 10px 16px;text-align:center;font:16px arial,sans-serif}.inboxsdk__tooltip .aRR{color:#333;font-size:18px;margin-top:13px}.inboxsdk__tooltip .aRQ{color:#777;font-size:13px;margin:3px 0 14px}.inboxsdk__tooltip{position:fixed;z-index:1300;transition:left 200ms ease,top 200ms ease}.inboxsdk__tooltip .T-P{position:relative;width:auto;max-width:500px}.inboxsdk__tooltip .inboxsdk__tooltip_arrow{position:fixed;z-index:1400;margin-top:-1px;transition:left 200ms ease,top 200ms ease}.inboxsdk__tooltip .inboxsdk__tooltip_close{user-select:none}.inboxsdk__tooltip .inboxsdk__button{margin-right:0}.inboxsdk__tooltip .inboxsdk__tooltip_image{max-height:300px;max-width:500px;overflow:hidden;height:auto}.inboxsdk__tooltip .inboxsdk__tooltip_image>img{max-height:300px;max-width:500px}.inboxsdk__attachmentCard img.aQG.aYB{max-width:178px;min-width:178px;min-height:118px}.inboxsdk__attachmentCard img.aZG.aYw{background:0 0}.aQw>.T-I.J-J5-Ji.L3{margin-top:5px}table.cf.wd.inboxsdk__shortcutHelp_table{margin-bottom:15px}.inboxsdk__shortcutHelp_table td.Dn{display:inline-block;width:50%}.inboxsdk__shortcutHelp_table tbody tbody tr{display:block;white-space:nowrap}.inboxsdk__shortcutHelp_table td.wg.Dn{display:inline-block;width:45%}.inboxsdk__shortcutHelp_table span.wb{margin-left:3px}.inboxsdk__shortcutHelp_table td.we.Dn{width:60%;white-space:normal}.inboxsdk__shortcutHelp_title img.inboxsdk__icon{height:21px;width:21px;vertical-align:middle;margin-right:10px;border-radius:4px}.asor.inboxsdk__custom_suggestion,.inboxsdk__custom_suggestion_iconHTML{display:flex;justify-content:center;align-items:center}.inboxsdk__custom_suggestion img{max-width:32px;max-height:32px}.inboxsdk__custom_suggestion_iconHTML{position:absolute;left:8px;height:32px;width:43px}.gstq_d .inboxsdk__custom_suggestion_iconHTML{margin-top:-8px}.inboxsdk__appButton{margin-right:8px}.inboxsdk__appButton+.inboxsdk__appButton{margin-left:16px}.inboxsdk__appButton.inboxsdk__appButton_noGPlus{margin-right:0}.inboxsdk__appButton .inboxsdk__button_icon{margin-right:5px;position:relative}.inboxsdk__appButton a{color:#404040;text-decoration:none;line-height:24px}.inboxsdk__appButton.inboxsdk__appButton_noGPlus a{line-height:30px}.inboxsdk__appButton a:hover{text-decoration:underline;color:#000}.inboxsdk__gmail_dark_theme .inboxsdk__appButton a{color:#eee}.inboxsdk__gmail_dark_theme .inboxsdk__appButton a:hover{color:#fff}.inboxsdk__appButton_tooltip{outline:0;transition:none;animation:gb__a .2s}.inboxsdk__appButton_tooltip .inboxsdk__tooltip_close,.inboxsdk__searchIsNarrow .streak__appToolbarButton_title{display:none}.inboxsdk__tooltip.inboxsdk__appButton_tooltip .aRM{padding:0;white-space:initial;text-align:center;font:16px arial,sans-serif}.inboxsdk__tooltip.inboxsdk__appButton_tooltip .inboxsdk__tooltip_arrow{transform-origin:top;transform:rotateZ(180deg);margin-top:9px}.inboxsdk__custom_message_view{display:flex;padding-top:20px;padding-bottom:20px;border-top:1px solid #efefef;border-collapse:collapse}.inboxsdk__custom_message_view_hidden{display:none}.h7.ie+.inboxsdk__custom_message_view{margin-top:5px}.kQ+.inboxsdk__custom_message_view,.kx+.inboxsdk__custom_message_view{margin-top:1px}.inboxsdk__custom_message_view.inboxsdk__custom_message_view_collapsed{cursor:pointer}.inboxsdk__custom_message_view .inboxsdk__custom_message_view_icon{padding-left:16px;padding-right:16px;flex-shrink:0}.inboxsdk__custom_message_view .inboxsdk__custom_message_view_icon img{height:32px;width:32px;border-radius:50%}.inboxsdk__custom_message_view .inboxsdk__custom_message_view_content{width:100%;min-width:0}.inboxsdk__custom_message_view .inboxsdk__custom_message_view_header{cursor:pointer}.inboxsdk__custom_message_view_app_notice_content{position:relative;z-index:1;align-items:center;display:flex;font-size:.75rem!important;justify-content:flex-start;margin-left:0;padding:0;top:0}.adx.inboxsdk__custom_message_view_app_notice_container.inboxsdk__custom_message_view_app_notice_container{position:relative;width:auto!important;min-width:32px}.adx.inboxsdk__custom_message_view_app_notice_container.inboxsdk__custom_message_view_app_notice_container:hover::before{content:none!important}.adx.inboxsdk__custom_message_view_app_notice_container.inboxsdk__custom_message_view_app_notice_container>span:first-child{display:none}.inboxsdk__custom_message_view_app_notice_container::before{position:absolute}.inboxsdk__custom_message_view_app_notice_content>*{color:#555}table[role=presentation].inboxsdk__thread_view_with_custom_view{table-layout:fixed}.inboxsdk__butterbar.inboxsdk__butterbar_error{background-color:#c53929!important}.inboxsdk__butterbar.inboxsdk__butterbar_error [role=button]{color:#fff}.inboxsdk__butterbar.inboxsdk__butterbar_error [role=button]::before{background:rgb(255 255 255/8%)}.inboxsdk__support_menuItem:hover{background-color:#eee;outline:1px dashed transparent}.inboxsdk__compose_addressList{display:flex!important}.inboxsdk__linkPopOver_section_container{position:absolute;width:100%;top:35px;left:0}.inboxsdk__linkPopOver_section{width:100%;background:#fff;border:1px solid;border-color:#bbb #bbb #a8a8a8;font:13px arial,sans-serif;padding:5px 8px;margin-bottom:5px;box-sizing:border-box;box-shadow:0 1px 3px rgb(0 0 0/20%)}.T-I.J-J5-Ji.T-I-ax7.inboxsdk__button .asa::after{width:auto}", ""]);
32929
32499
  // Exports
32930
32500
  var app_sidebar_waiting_platform = "inboxsdk__nJrOYb9x4IUalKhkqH70";
32931
32501
  var app_sidebar_main = "inboxsdk__YVRXKNcaUvgm8xbnhvbA";
@@ -51373,65 +50943,6 @@ var zip = baseRest(unzip);
51373
50943
  module.exports = zip;
51374
50944
 
51375
50945
 
51376
- /***/ }),
51377
-
51378
- /***/ 9880:
51379
- /***/ ((module, exports, __webpack_require__) => {
51380
-
51381
- "use strict";
51382
-
51383
-
51384
- var _interopRequireDefault = __webpack_require__(4836);
51385
-
51386
- Object.defineProperty(exports, "__esModule", ({
51387
- value: true
51388
- }));
51389
- exports["default"] = mapIndexed;
51390
-
51391
- var _classCallCheck2 = _interopRequireDefault(__webpack_require__(6690));
51392
-
51393
- var _createClass2 = _interopRequireDefault(__webpack_require__(9728));
51394
-
51395
- var MapIndexed =
51396
- /*#__PURE__*/
51397
- function () {
51398
- function MapIndexed(f, xform) {
51399
- (0, _classCallCheck2.default)(this, MapIndexed);
51400
- this.f = f;
51401
- this.xform = xform;
51402
- this.i = -1;
51403
- }
51404
-
51405
- (0, _createClass2.default)(MapIndexed, [{
51406
- key: '@@transducer/init',
51407
- value: function transducerInit() {
51408
- return this.xform['@@transducer/init']();
51409
- }
51410
- }, {
51411
- key: '@@transducer/result',
51412
- value: function transducerResult(v) {
51413
- return this.xform['@@transducer/result'](v);
51414
- }
51415
- }, {
51416
- key: '@@transducer/step',
51417
- value: function transducerStep(res, input) {
51418
- this.i++;
51419
- return this.xform['@@transducer/step'](res, this.f(input, this.i));
51420
- }
51421
- }]);
51422
- return MapIndexed;
51423
- }();
51424
-
51425
- function mapIndexed(f) {
51426
- return function (xform) {
51427
- return new MapIndexed(f, xform);
51428
- };
51429
- }
51430
-
51431
- module.exports = exports.default;
51432
- module.exports["default"] = exports.default;
51433
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJNYXBJbmRleGVkIiwiZiIsInhmb3JtIiwiaSIsInYiLCJyZXMiLCJpbnB1dCIsIm1hcEluZGV4ZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7SUFBTUEsVTs7O0FBQ0osc0JBQVlDLENBQVosRUFBZUMsS0FBZixFQUFzQjtBQUFBO0FBQ3BCLFNBQUtELENBQUwsR0FBU0EsQ0FBVDtBQUNBLFNBQUtDLEtBQUwsR0FBYUEsS0FBYjtBQUNBLFNBQUtDLENBQUwsR0FBUyxDQUFDLENBQVY7QUFDRDs7O1NBRUQsbUI7cUNBQXNCO0FBQ3BCLGFBQU8sS0FBS0QsS0FBTCxDQUFXLG1CQUFYLEdBQVA7QUFDRDs7U0FFRCxxQjtxQ0FBc0JFLEMsRUFBRztBQUN2QixhQUFPLEtBQUtGLEtBQUwsQ0FBVyxxQkFBWCxFQUFrQ0UsQ0FBbEMsQ0FBUDtBQUNEOztTQUVELG1CO21DQUFvQkMsRyxFQUFLQyxLLEVBQU87QUFDOUIsV0FBS0gsQ0FBTDtBQUNBLGFBQU8sS0FBS0QsS0FBTCxDQUFXLG1CQUFYLEVBQWdDRyxHQUFoQyxFQUFxQyxLQUFLSixDQUFMLENBQU9LLEtBQVAsRUFBYyxLQUFLSCxDQUFuQixDQUFyQyxDQUFQO0FBQ0Q7Ozs7O0FBR1ksU0FBU0ksVUFBVCxDQUFvQk4sQ0FBcEIsRUFBdUI7QUFDcEMsU0FBTyxVQUFTQyxLQUFULEVBQWdCO0FBQ3JCLFdBQU8sSUFBSUYsVUFBSixDQUFlQyxDQUFmLEVBQWtCQyxLQUFsQixDQUFQO0FBQ0QsR0FGRDtBQUdEIiwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgTWFwSW5kZXhlZCB7XG4gIGNvbnN0cnVjdG9yKGYsIHhmb3JtKSB7XG4gICAgdGhpcy5mID0gZjtcbiAgICB0aGlzLnhmb3JtID0geGZvcm07XG4gICAgdGhpcy5pID0gLTE7XG4gIH1cblxuICAnQEB0cmFuc2R1Y2VyL2luaXQnKCkge1xuICAgIHJldHVybiB0aGlzLnhmb3JtWydAQHRyYW5zZHVjZXIvaW5pdCddKCk7XG4gIH1cblxuICAnQEB0cmFuc2R1Y2VyL3Jlc3VsdCcodikge1xuICAgIHJldHVybiB0aGlzLnhmb3JtWydAQHRyYW5zZHVjZXIvcmVzdWx0J10odik7XG4gIH1cblxuICAnQEB0cmFuc2R1Y2VyL3N0ZXAnKHJlcywgaW5wdXQpIHtcbiAgICB0aGlzLmkrKztcbiAgICByZXR1cm4gdGhpcy54Zm9ybVsnQEB0cmFuc2R1Y2VyL3N0ZXAnXShyZXMsIHRoaXMuZihpbnB1dCwgdGhpcy5pKSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbWFwSW5kZXhlZChmKSB7XG4gIHJldHVybiBmdW5jdGlvbih4Zm9ybSkge1xuICAgIHJldHVybiBuZXcgTWFwSW5kZXhlZChmLCB4Zm9ybSk7XG4gIH07XG59XG4iXX0=
51434
-
51435
50946
  /***/ }),
51436
50947
 
51437
50948
  /***/ 5936: