@inboxsdk/core 1.0.1 → 1.0.3

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 (147) hide show
  1. package/inboxsdk.js +5 -5
  2. package/inboxsdk.js.map +1 -1
  3. package/package.json +1 -1
  4. package/pageWorld.js.map +1 -1
  5. package/src/inboxsdk.d.ts +16 -1
  6. package/src/injected-js/gmail/modify-suggestions.d.ts +2 -0
  7. package/src/injected-js/gmail/modify-suggestions.d.ts.map +1 -1
  8. package/src/platform-implementation-js/constants/router.d.ts +5 -0
  9. package/src/platform-implementation-js/dom-driver/gmail/custom-style.d.ts +2 -0
  10. package/src/platform-implementation-js/dom-driver/gmail/custom-style.d.ts.map +1 -0
  11. package/src/platform-implementation-js/dom-driver/gmail/custom-style.js +16 -21
  12. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.d.ts +12 -0
  13. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.d.ts.map +1 -0
  14. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +152 -187
  15. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.d.ts +1 -1
  16. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.d.ts.map +1 -1
  17. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.js +1 -1
  18. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.d.ts +5 -0
  19. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.d.ts.map +1 -0
  20. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +15 -20
  21. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.d.ts +4 -0
  22. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.d.ts.map +1 -0
  23. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +59 -56
  24. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.d.ts +9 -0
  25. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.d.ts.map +1 -0
  26. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +42 -54
  27. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.d.ts +4 -0
  28. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.d.ts.map +1 -0
  29. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +31 -33
  30. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.d.ts +8 -0
  31. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.d.ts.map +1 -0
  32. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +21 -23
  33. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.d.ts +4 -0
  34. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.d.ts.map +1 -0
  35. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +19 -31
  36. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.d.ts +7 -0
  37. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.d.ts +5 -0
  38. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.d.ts.map +1 -0
  39. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +51 -60
  40. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.d.ts +20 -0
  41. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.d.ts.map +1 -0
  42. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +166 -130
  43. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.d.ts +3 -0
  44. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.d.ts.map +1 -0
  45. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +17 -22
  46. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.d.ts +4 -0
  47. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.d.ts.map +1 -0
  48. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +44 -51
  49. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.d.ts +3 -0
  50. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.d.ts.map +1 -0
  51. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +17 -22
  52. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.d.ts +3 -0
  53. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.d.ts.map +1 -0
  54. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +136 -129
  55. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.d.ts +6 -0
  56. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.d.ts.map +1 -0
  57. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +102 -95
  58. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.d.ts +6 -0
  59. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.d.ts.map +1 -0
  60. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +144 -169
  61. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.d.ts +3 -0
  62. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.d.ts.map +1 -0
  63. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +14 -23
  64. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.d.ts +3 -0
  65. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.d.ts.map +1 -0
  66. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +41 -49
  67. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.d.ts +5 -0
  68. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.d.ts.map +1 -0
  69. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +286 -294
  70. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.d.ts +3 -0
  71. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.d.ts.map +1 -0
  72. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +19 -26
  73. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.d.ts +3 -0
  74. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.d.ts.map +1 -0
  75. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +36 -42
  76. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.d.ts +3 -0
  77. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.d.ts.map +1 -0
  78. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +34 -33
  79. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.d.ts +13 -0
  80. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.d.ts.map +1 -0
  81. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +80 -81
  82. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.d.ts +3 -0
  83. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.d.ts.map +1 -0
  84. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +124 -81
  85. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.d.ts +10 -0
  86. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.d.ts.map +1 -0
  87. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +47 -54
  88. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts +183 -106
  89. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts.map +1 -0
  90. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +712 -647
  91. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.d.ts +7 -0
  92. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.d.ts.map +1 -0
  93. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +93 -82
  94. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.d.ts +7 -0
  95. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.d.ts +5 -0
  96. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.d.ts +11 -0
  97. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.d.ts.map +1 -0
  98. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +20 -32
  99. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.d.ts +1 -0
  100. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.d.ts +8 -0
  101. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts +2 -0
  102. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts.map +1 -1
  103. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.js +1 -1
  104. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.d.ts +8 -0
  105. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.d.ts +3 -0
  106. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +3 -1
  107. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.d.ts +10 -0
  108. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.d.ts +5 -0
  109. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.d.ts +9 -0
  110. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.d.ts +12 -0
  111. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.d.ts +9 -0
  112. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.d.ts +20 -0
  113. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.d.ts.map +1 -0
  114. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +107 -108
  115. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.d.ts +16 -0
  116. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +1 -1
  117. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.d.ts +13 -0
  118. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.d.ts.map +1 -0
  119. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +66 -66
  120. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.d.ts +5 -0
  121. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.d.ts +6 -0
  122. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.d.ts +6 -0
  123. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.d.ts +1 -0
  124. package/src/platform-implementation-js/driver-interfaces/driver.d.ts +3 -6
  125. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.d.ts +27 -0
  126. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.d.ts +4 -0
  127. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.d.ts.map +1 -0
  128. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +34 -34
  129. package/src/platform-implementation-js/lib/dom/element-view-mapper.d.ts +10 -0
  130. package/src/platform-implementation-js/lib/dom/element-view-mapper.d.ts.map +1 -0
  131. package/src/platform-implementation-js/lib/dom/element-view-mapper.js +9 -17
  132. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.d.ts +4 -0
  133. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.d.ts.map +1 -0
  134. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +7 -16
  135. package/src/platform-implementation-js/lib/populateRouteID.d.ts +6 -0
  136. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.d.ts +2 -0
  137. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.d.ts.map +1 -0
  138. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.js +4 -11
  139. package/src/platform-implementation-js/lib/routeIDmatchesHash.d.ts +4 -0
  140. package/src/platform-implementation-js/lib/toLiveSet.d.ts +5 -0
  141. package/src/platform-implementation-js/lib/toLiveSet.d.ts.map +1 -0
  142. package/src/platform-implementation-js/lib/toLiveSet.js +22 -33
  143. package/src/platform-implementation-js/namespaces/router.d.ts +1 -0
  144. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.test.js +0 -183
  145. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.test.js +0 -218
  146. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.test.js +0 -85
  147. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.test.js +0 -43
@@ -1,57 +1,60 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = createLink;
8
- var _populateRouteID = _interopRequireDefault(require("../../../lib/populateRouteID"));
9
- var _logger = _interopRequireDefault(require("../../../lib/logger"));
10
- function createLink(GmailRouteProcessor, routeID, params) {
11
- params = typeof params === 'string' ? params : params ? Object.assign({}, params) : {};
12
- routeID = GmailRouteProcessor.getCompatibleRouteID(routeID);
13
- if (typeof params === 'string') {
14
- var matches = routeID.match(/:/g);
15
- if (matches && matches.length === 1) {
16
- var paramValue = params;
17
- params = {};
18
- params[routeID.match(/:(\w+)($|\/)?/)[1]] = paramValue;
19
- } else {
20
- params = {};
1
+ import populateRouteID from '../../../lib/populateRouteID';
2
+ import Logger from '../../../lib/logger';
3
+ export default function createLink(GmailRouteProcessor, routeID, params) {
4
+ params =
5
+ typeof params === 'string'
6
+ ? params
7
+ : params
8
+ ? Object.assign({}, params)
9
+ : {};
10
+ routeID = GmailRouteProcessor.getCompatibleRouteID(routeID);
11
+ if (typeof params === 'string') {
12
+ var matches = routeID.match(/:/g);
13
+ if (matches && matches.length === 1) {
14
+ var paramValue = params;
15
+ params = {};
16
+ params[routeID.match(/:(\w+)($|\/)?/)[1]] = paramValue;
17
+ }
18
+ else {
19
+ params = {};
20
+ }
21
21
  }
22
- }
23
- const hasPageParam = routeID.match(/:page(?:\/|$)/);
24
- if (hasPageParam && !params.page) {
25
- params.page = 0;
26
- }
27
- const parts = routeID.split('/');
28
-
29
- // attempt to use new, more strict populateRouteID fn, if that fails
30
- // log an error and fallback to older, more permissive approach.
31
- // intent is to retire the old approach once we understand the consequences.
32
- let processedRoute;
33
- try {
34
- processedRoute = (0, _populateRouteID.default)(routeID, params);
35
- } catch (error) {
36
- _logger.default.error(error, {
37
- routeID,
38
- paramsKey: Object.keys(params)
39
- });
40
- processedRoute = parts.map(function (part) {
41
- if (part.indexOf(':') === -1) {
42
- return part;
43
- }
44
- const colonParts = part.split(':');
45
- if (params && typeof params[colonParts[1]] !== 'undefined') {
46
- return colonParts[0] + params[colonParts[1]];
47
- }
48
- return colonParts[0];
49
- }).map(encodeURIComponent).join('/');
50
- }
51
-
52
- //check if link is of the form inbox/p0 or search/blah/p0
53
- if (GmailRouteProcessor.isListRouteName(parts[0]) && processedRoute.indexOf('p0') === processedRoute.length - 2) {
54
- processedRoute = processedRoute.substring(0, processedRoute.length - 3);
55
- }
56
- return '#' + processedRoute;
57
- }
22
+ const hasPageParam = routeID.match(/:page(?:\/|$)/);
23
+ if (hasPageParam && !params.page) {
24
+ params.page = 0;
25
+ }
26
+ const parts = routeID.split('/');
27
+ // attempt to use new, more strict populateRouteID fn, if that fails
28
+ // log an error and fallback to older, more permissive approach.
29
+ // intent is to retire the old approach once we understand the consequences.
30
+ let processedRoute;
31
+ try {
32
+ processedRoute = populateRouteID(routeID, params);
33
+ }
34
+ catch (error) {
35
+ Logger.error(error, {
36
+ routeID,
37
+ paramsKey: Object.keys(params),
38
+ });
39
+ processedRoute = parts
40
+ .map(function (part) {
41
+ if (part.indexOf(':') === -1) {
42
+ return part;
43
+ }
44
+ const colonParts = part.split(':');
45
+ if (params &&
46
+ typeof params[colonParts[1]] !== 'undefined') {
47
+ return colonParts[0] + params[colonParts[1]];
48
+ }
49
+ return colonParts[0];
50
+ })
51
+ .map(encodeURIComponent)
52
+ .join('/');
53
+ }
54
+ //check if link is of the form inbox/p0 or search/blah/p0
55
+ if (GmailRouteProcessor.isListRouteName(parts[0]) &&
56
+ processedRoute.indexOf('p0') === processedRoute.length - 2) {
57
+ processedRoute = processedRoute.substring(0, processedRoute.length - 3);
58
+ }
59
+ return '#' + processedRoute;
60
+ }
@@ -0,0 +1,9 @@
1
+ import type GmailDriver from '../gmail-driver';
2
+ export type GetDraftIdResult = {
3
+ draftID: string | undefined | null;
4
+ debugData: any;
5
+ };
6
+ declare function getDraftIDForMessageID(driver: GmailDriver, messageID: string, skipCache?: boolean): Promise<GetDraftIdResult>;
7
+ declare const _default: typeof getDraftIDForMessageID;
8
+ export default _default;
9
+ //# sourceMappingURL=get-draft-id-for-message-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-draft-id-for-message-id.d.ts","sourceRoot":"","sources":["../../../../../../../src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,WAAW,MAAM,iBAAiB,CAAC;AAG/C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,GAAG,CAAC;CAChB,CAAC;AA6CF,iBAAS,sBAAsB,CAC7B,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,OAAe,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAM3B;;AAED,wBAAoD"}
@@ -1,59 +1,47 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _memoize = _interopRequireDefault(require("lodash/memoize"));
9
- var _ud = require("ud");
10
- var _gmailAjax = _interopRequireDefault(require("../../../driver-common/gmailAjax"));
11
- var _gmailResponseProcessor = require("../gmail-response-processor");
12
- var _isStreakAppId = _interopRequireDefault(require("../../../lib/isStreakAppId"));
1
+ import memoize from 'lodash/memoize';
2
+ import { defn } from 'ud';
3
+ import gmailAjax from '../../../driver-common/gmailAjax';
4
+ import { readDraftId } from '../gmail-response-processor';
5
+ import isStreakAppId from '../../../lib/isStreakAppId';
13
6
  async function uncachedGetDraftIDForMessageID(driver, messageID) {
14
- const response = await (0, _gmailAjax.default)({
15
- method: 'GET',
16
- url: document.location.origin + document.location.pathname,
17
- data: {
18
- ui: '2',
19
- ik: driver.getPageCommunicator().getIkValue(),
20
- view: 'cv',
21
- th: messageID,
22
- prf: '1',
23
- nsc: '1',
24
- mb: '0',
25
- rt: 'j',
26
- search: 'drafts'
7
+ const response = await gmailAjax({
8
+ method: 'GET',
9
+ url: document.location.origin + document.location.pathname,
10
+ data: {
11
+ ui: '2',
12
+ ik: driver.getPageCommunicator().getIkValue(),
13
+ view: 'cv',
14
+ th: messageID,
15
+ prf: '1',
16
+ nsc: '1',
17
+ mb: '0',
18
+ rt: 'j',
19
+ search: 'drafts',
20
+ },
21
+ });
22
+ try {
23
+ const draftID = readDraftId(response.text, messageID);
24
+ const debugData = { responseText: response.text };
25
+ return { draftID, debugData };
27
26
  }
28
- });
29
- try {
30
- const draftID = (0, _gmailResponseProcessor.readDraftId)(response.text, messageID);
31
- const debugData = {
32
- responseText: response.text
33
- };
34
- return {
35
- draftID,
36
- debugData
37
- };
38
- } catch (err) {
39
- if ((0, _isStreakAppId.default)(driver.getAppId())) {
40
- driver.getLogger().error(err, {
41
- message: 'failed to read draft ID',
42
- messageID,
43
- text: response.text
44
- });
27
+ catch (err) {
28
+ if (isStreakAppId(driver.getAppId())) {
29
+ driver.getLogger().error(err, {
30
+ message: 'failed to read draft ID',
31
+ messageID,
32
+ text: response.text,
33
+ });
34
+ }
35
+ throw err;
45
36
  }
46
- throw err;
47
- }
48
37
  }
49
- const cachedGetDraftIDForMessageID = (0, _memoize.default)(uncachedGetDraftIDForMessageID, (driver, messageID) => messageID);
50
- function getDraftIDForMessageID(driver, messageID) {
51
- let skipCache = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
52
- if (skipCache) {
53
- return uncachedGetDraftIDForMessageID(driver, messageID);
54
- } else {
55
- return cachedGetDraftIDForMessageID(driver, messageID);
56
- }
38
+ const cachedGetDraftIDForMessageID = memoize(uncachedGetDraftIDForMessageID, (driver, messageID) => messageID);
39
+ function getDraftIDForMessageID(driver, messageID, skipCache = false) {
40
+ if (skipCache) {
41
+ return uncachedGetDraftIDForMessageID(driver, messageID);
42
+ }
43
+ else {
44
+ return cachedGetDraftIDForMessageID(driver, messageID);
45
+ }
57
46
  }
58
- var _default = (0, _ud.defn)(module, getDraftIDForMessageID);
59
- exports.default = _default;
47
+ export default defn(module, getDraftIDForMessageID);
@@ -0,0 +1,4 @@
1
+ import NativeGmailNavItemView from '../views/native-gmail-nav-item-view';
2
+ import type GmailDriver from '../gmail-driver';
3
+ export default function getNativeNavItem(driver: GmailDriver, label: string): Promise<NativeGmailNavItemView>;
4
+ //# sourceMappingURL=get-native-nav-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-native-nav-item.d.ts","sourceRoot":"","sources":["../../../../../../../src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,MAAM,qCAAqC,CAAC;AAKzE,OAAO,KAAK,WAAW,MAAM,iBAAiB,CAAC;AAE/C,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,sBAAsB,CAAC,CA+BjC"}
@@ -1,33 +1,31 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = getNativeNavItem;
8
- var _nativeGmailNavItemView = _interopRequireDefault(require("../views/native-gmail-nav-item-view"));
9
- var _gmailElementGetter = _interopRequireDefault(require("../gmail-element-getter"));
10
- var _findParent = _interopRequireDefault(require("../../../../common/find-parent"));
11
- var _waitFor = _interopRequireDefault(require("../../../lib/wait-for"));
12
- function getNativeNavItem(driver, label) {
13
- return (0, _waitFor.default)(() => {
14
- const navContainer = _gmailElementGetter.default.getLeftNavContainerElement();
15
- if (!navContainer) return null;
16
- return navContainer.querySelector(`.aim a[href*="#${label}"]`);
17
- }, 300 * 1000).then(labelLinkElement => {
18
- const labelElement = (0, _findParent.default)(labelLinkElement, el => el.classList.contains('aim'));
19
- if (!labelElement) {
20
- throw new Error('native nav item structured weird');
21
- }
22
- if (!labelElement.__nativeGmailNavItemView) {
23
- labelElement.__nativeGmailNavItemView = new _nativeGmailNavItemView.default(driver, labelElement, label);
24
- }
25
- return labelElement.__nativeGmailNavItemView;
26
- }).catch(err => {
27
- if (_gmailElementGetter.default.isStandalone()) {
28
- // never resolve
29
- return new Promise((resolve, reject) => {});
30
- }
31
- throw err;
32
- });
33
- }
1
+ import NativeGmailNavItemView from '../views/native-gmail-nav-item-view';
2
+ import GmailElementGetter from '../gmail-element-getter';
3
+ import findParent from '../../../../common/find-parent';
4
+ import waitFor from '../../../lib/wait-for';
5
+ export default function getNativeNavItem(driver, label) {
6
+ return waitFor(() => {
7
+ const navContainer = GmailElementGetter.getLeftNavContainerElement();
8
+ if (!navContainer)
9
+ return null;
10
+ return navContainer.querySelector(`.aim a[href*="#${label}"]`);
11
+ }, 300 * 1000)
12
+ .then((labelLinkElement) => {
13
+ const labelElement = findParent(labelLinkElement, (el) => el.classList.contains('aim'));
14
+ if (!labelElement) {
15
+ throw new Error('native nav item structured weird');
16
+ }
17
+ if (!labelElement.__nativeGmailNavItemView) {
18
+ labelElement.__nativeGmailNavItemView =
19
+ new NativeGmailNavItemView(driver, labelElement, label);
20
+ }
21
+ return labelElement.__nativeGmailNavItemView;
22
+ })
23
+ .catch((err) => {
24
+ if (GmailElementGetter.isStandalone()) {
25
+ // never resolve
26
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
27
+ return new Promise((_resolve, _reject) => { });
28
+ }
29
+ throw err;
30
+ });
31
+ }
@@ -0,0 +1,8 @@
1
+ export type URLObject = {
2
+ name: string;
3
+ params: string[];
4
+ query: string | null | undefined;
5
+ hash: string;
6
+ };
7
+ export default function getURLObject(url: string): URLObject;
8
+ //# sourceMappingURL=get-url-object.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-url-object.d.ts","sourceRoot":"","sources":["../../../../../../../src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAuB3D"}
@@ -1,25 +1,23 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = getURLObject;
7
- function getURLObject(url) {
8
- const m = url.match(/#([^?]*)(?:\?(.*))?/);
9
- if (!m) {
1
+ /* @flow */
2
+ export default function getURLObject(url) {
3
+ const m = url.match(/#([^?]*)(?:\?(.*))?/);
4
+ if (!m) {
5
+ return {
6
+ name: 'inbox',
7
+ params: [],
8
+ hash: '',
9
+ query: undefined,
10
+ };
11
+ }
12
+ const hash = m[1];
13
+ const hashParts = hash.split('/');
10
14
  return {
11
- name: 'inbox',
12
- params: [],
13
- hash: '',
14
- query: undefined
15
+ name: decodeURIComponent(hashParts[0]),
16
+ params: hashParts
17
+ .slice(1)
18
+ .map((part) => part.replace(/\+/g, ' '))
19
+ .map(decodeURIComponent),
20
+ query: m[2],
21
+ hash,
15
22
  };
16
- }
17
- const hash = m[1];
18
- const hashParts = hash.split('/');
19
- return {
20
- name: decodeURIComponent(hashParts[0]),
21
- params: hashParts.slice(1).map(part => part.replace(/\+/g, ' ')).map(decodeURIComponent),
22
- query: m[2],
23
- hash
24
- };
25
- }
23
+ }
@@ -0,0 +1,4 @@
1
+ import type GmailDriver from '../gmail-driver';
2
+ import type { SyncThread } from '../gmail-sync-response-processor';
3
+ export default function getSyncThreadForOldGmailThreadId(driver: GmailDriver, oldGmailThreadId: string): Promise<SyncThread>;
4
+ //# sourceMappingURL=getSyncThreadForOldGmailThreadId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSyncThreadForOldGmailThreadId.d.ts","sourceRoot":"","sources":["../../../../../../../src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,WAAW,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAEnE,wBAA8B,gCAAgC,CAC5D,MAAM,EAAE,WAAW,EACnB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,UAAU,CAAC,CAmBrB"}
@@ -1,31 +1,19 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = getSyncThreadForOldGmailThreadId;
8
- var _ud = require("ud");
9
- var _bignumber = _interopRequireDefault(require("bignumber.js"));
10
- var _getSyncThreadsForSearch = _interopRequireDefault(require("../../../driver-common/getSyncThreadsForSearch"));
11
- var _gmailAjax = _interopRequireDefault(require("../../../driver-common/gmailAjax"));
12
- var _isStreakAppId = _interopRequireDefault(require("../../../lib/isStreakAppId"));
13
- var _gmailSyncResponseProcessor = require("../gmail-sync-response-processor");
14
- async function getSyncThreadForOldGmailThreadId(driver, oldGmailThreadId) {
15
- const {
16
- threads: threadDescriptors,
17
- _text
18
- } = await (0, _getSyncThreadsForSearch.default)(driver, 'threadid:' + new _bignumber.default(oldGmailThreadId, 16).toString(10));
19
- const firstThread = threadDescriptors[0];
20
- if (firstThread == null) {
21
- console.error(`Thread with ID ${oldGmailThreadId} not found by Gmail`); //eslint-disable-line
22
- const isStreak = (0, _isStreakAppId.default)(driver.getAppId());
23
- const err = new Error('Thread not found by getSyncThreadForOldGmailThreadId');
24
- driver.getLogger().error(err, {
25
- oldGmailThreadId: isStreak ? oldGmailThreadId : null,
26
- responseText: isStreak ? _text : null
27
- });
28
- throw err;
29
- }
30
- return firstThread;
31
- }
1
+ /* @flow */
2
+ import BigNumber from 'bignumber.js';
3
+ import getSyncThreadsForSearch from '../../../driver-common/getSyncThreadsForSearch';
4
+ import isStreakAppId from '../../../lib/isStreakAppId';
5
+ export default async function getSyncThreadForOldGmailThreadId(driver, oldGmailThreadId) {
6
+ const { threads: threadDescriptors, _text } = await getSyncThreadsForSearch(driver, 'threadid:' + new BigNumber(oldGmailThreadId, 16).toString(10));
7
+ const firstThread = threadDescriptors[0];
8
+ if (firstThread == null) {
9
+ console.error(`Thread with ID ${oldGmailThreadId} not found by Gmail`); //eslint-disable-line
10
+ const isStreak = isStreakAppId(driver.getAppId());
11
+ const err = new Error('Thread not found by getSyncThreadForOldGmailThreadId');
12
+ driver.getLogger().error(err, {
13
+ oldGmailThreadId: isStreak ? oldGmailThreadId : null,
14
+ responseText: isStreak ? _text : null,
15
+ });
16
+ throw err;
17
+ }
18
+ return firstThread;
19
+ }
@@ -0,0 +1,7 @@
1
+ import GmailDriver from '../gmail-driver';
2
+ import type { SyncThread } from '../gmail-sync-response-processor';
3
+
4
+ export default function getThreadFromSyncThreadId(
5
+ driver: GmailDriver,
6
+ syncThreadId: string
7
+ ): Promise<SyncThread | null | undefined>;
@@ -0,0 +1,5 @@
1
+ import type GmailDriver from '../gmail-driver';
2
+ import type { RouteParams } from '../../../namespaces/router';
3
+ declare const gotoView: (gmailDriver: GmailDriver, viewName: string, params: (RouteParams | string) | null | undefined) => Promise<void>;
4
+ export default gotoView;
5
+ //# sourceMappingURL=goto-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goto-view.d.ts","sourceRoot":"","sources":["../../../../../../../src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,WAAW,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D,QAAA,MAAM,QAAQ,gBAGG,WAAW,YACd,MAAM,UACR,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,KAChD,QAAQ,IAAI,CAoDhB,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -1,65 +1,56 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _includes = _interopRequireDefault(require("lodash/includes"));
9
- var ud = _interopRequireWildcard(require("ud"));
10
- var _router = require("../../../constants/router");
11
- var _simulateMouseEvent = require("../../../lib/dom/simulate-mouse-event");
12
- var _getUrlObject = _interopRequireDefault(require("./get-url-object"));
13
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
1
+ /* @flow */
2
+ import includes from 'lodash/includes';
3
+ import * as ud from 'ud';
4
+ import { NATIVE_ROUTE_IDS } from '../../../constants/router';
5
+ import { simulateClick } from '../../../lib/dom/simulate-mouse-event';
15
6
  const gotoView = ud.defn(module, async function gotoView(gmailDriver, viewName, params) {
16
- if (viewName[0] === '#') {
17
- if (params) {
18
- throw new Error("params parameter can't be passed with resolved URL");
7
+ if (viewName[0] === '#') {
8
+ if (params) {
9
+ throw new Error("params parameter can't be passed with resolved URL");
10
+ }
11
+ viewName = viewName.slice(1);
19
12
  }
20
- viewName = viewName.slice(1);
21
- }
22
- if ((0, _includes.default)(_router.NATIVE_ROUTE_IDS, viewName)) {
23
- if (gmailDriver.isUsingSyncAPI()) {
24
- // need to go to the new url
25
- if (params && typeof params !== 'string') {
26
- const threadID = params.threadID;
27
- if (threadID && typeof threadID === 'string') {
28
- const int = parseInt(threadID, 16);
29
- if (!isNaN(int)) {
30
- //we got an old id
31
- const syncThreadId = await gmailDriver.getSyncThreadIdForOldGmailThreadId(threadID);
32
- params = {
33
- ...params,
34
- threadID: '#' + syncThreadId
35
- };
36
- }
13
+ if (includes(NATIVE_ROUTE_IDS, viewName)) {
14
+ if (gmailDriver.isUsingSyncAPI()) {
15
+ // need to go to the new url
16
+ if (params && typeof params !== 'string') {
17
+ const threadID = params.threadID;
18
+ if (threadID && typeof threadID === 'string') {
19
+ const int = parseInt(threadID, 16);
20
+ if (!isNaN(int)) {
21
+ //we got an old id
22
+ const syncThreadId = await gmailDriver.getSyncThreadIdForOldGmailThreadId(threadID);
23
+ params = {
24
+ ...params,
25
+ threadID: '#' + syncThreadId,
26
+ };
27
+ }
28
+ }
29
+ }
37
30
  }
38
- }
31
+ const newHash = gmailDriver.createLink(viewName, params);
32
+ // Create a fake link and simulate a click event on it to let Gmail handle
33
+ // the view change. If we just set window.location.hash ourselves to the
34
+ // newHash, it's a Gmail hash, and any composes are open, then Gmail will
35
+ // redirect the user to the hash with ?compose=... appended to the end and
36
+ // break the back button. If we try to pre-empt Gmail and add the
37
+ // ?compose=... part ourselves, then sometimes Gmail thinks it's new and
38
+ // actually triggers now composes to open. This fake link method avoids the
39
+ // issue.
40
+ const link = document.createElement('a');
41
+ link.style.display = 'none';
42
+ link.href = newHash;
43
+ document.body.appendChild(link);
44
+ simulateClick(link);
45
+ link.remove();
46
+ }
47
+ else {
48
+ const newHash = gmailDriver.createLink(viewName, params);
49
+ // If it's not a gmail view name, then it's probably a hash for a custom
50
+ // view. We need to set the hash ourselves. Gmail won't react at all to a
51
+ // hashchange event for a hash it doesn't recognize, so we don't have to
52
+ // worry about the above issue.
53
+ window.location.hash = newHash;
39
54
  }
40
- const newHash = gmailDriver.createLink(viewName, params);
41
- // Create a fake link and simulate a click event on it to let Gmail handle
42
- // the view change. If we just set window.location.hash ourselves to the
43
- // newHash, it's a Gmail hash, and any composes are open, then Gmail will
44
- // redirect the user to the hash with ?compose=... appended to the end and
45
- // break the back button. If we try to pre-empt Gmail and add the
46
- // ?compose=... part ourselves, then sometimes Gmail thinks it's new and
47
- // actually triggers now composes to open. This fake link method avoids the
48
- // issue.
49
- const link = document.createElement('a');
50
- link.style.display = 'none';
51
- link.href = newHash;
52
- document.body.appendChild(link);
53
- (0, _simulateMouseEvent.simulateClick)(link);
54
- link.remove();
55
- } else {
56
- const newHash = gmailDriver.createLink(viewName, params);
57
- // If it's not a gmail view name, then it's probably a hash for a custom
58
- // view. We need to set the hash ourselves. Gmail won't react at all to a
59
- // hashchange event for a hash it doesn't recognize, so we don't have to
60
- // worry about the above issue.
61
- window.location.hash = newHash;
62
- }
63
55
  });
64
- var _default = gotoView;
65
- exports.default = _default;
56
+ export default gotoView;
@@ -0,0 +1,20 @@
1
+ import type { Stopper } from 'kefir-stopper';
2
+ import type KeyboardShortcutHandle from '../../../views/keyboard-shortcut-handle';
3
+ export default class KeyboardShortcutHelpModifier {
4
+ _appId: string | null | undefined;
5
+ _appName: string | null | undefined;
6
+ _appIconUrl: string | null | undefined;
7
+ _stopper: Stopper;
8
+ _shortcuts: Set<KeyboardShortcutHandle>;
9
+ constructor();
10
+ destroy(): void;
11
+ set(keyboardShortcutHandle: KeyboardShortcutHandle, appId: string, appName: string | null | undefined, appIconUrl: string | null | undefined): void;
12
+ delete(keyboardShortcutHandle: KeyboardShortcutHandle): void;
13
+ _initializeAppValues(appId: string, appName: string | null | undefined, appIconUrl: string | null | undefined): void;
14
+ _monitorKeyboardHelp(): void;
15
+ _renderHelp(node: HTMLElement): void;
16
+ _renderHeader(): HTMLElement;
17
+ _renderTable(): HTMLElement;
18
+ _renderShortcut(tableBody: HTMLElement, keyboardShortcutHandle: KeyboardShortcutHandle): void;
19
+ }
20
+ //# sourceMappingURL=keyboard-shortcut-help-modifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboard-shortcut-help-modifier.d.ts","sourceRoot":"","sources":["../../../../../../../src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAI7C,OAAO,KAAK,sBAAsB,MAAM,yCAAyC,CAAC;AAElF,MAAM,CAAC,OAAO,OAAO,4BAA4B;IAC/C,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACvC,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,GAAG,CAAC,sBAAsB,CAAC,CAAC;;IAYxC,OAAO;IAKP,GAAG,CACD,sBAAsB,EAAE,sBAAsB,EAC9C,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAClC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAOvC,MAAM,CAAC,sBAAsB,EAAE,sBAAsB;IAIrD,oBAAoB,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAClC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAevC,oBAAoB;IAiBpB,WAAW,CAAC,IAAI,EAAE,WAAW;IA0B7B,aAAa,IAAI,WAAW;IAyB5B,YAAY,IAAI,WAAW;IA6B3B,eAAe,CACb,SAAS,EAAE,WAAW,EACtB,sBAAsB,EAAE,sBAAsB;CAcjD"}