@inboxsdk/core 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/inboxsdk.js +7 -34
  2. package/inboxsdk.js.map +1 -1
  3. package/package.json +1 -1
  4. package/pageWorld.js +1 -1
  5. package/pageWorld.js.map +1 -1
  6. package/src/injected-js/main.js +0 -9
  7. package/src/platform-implementation-js/platform-implementation.d.ts +0 -3
  8. package/src/platform-implementation-js/platform-implementation.js +1 -9
  9. package/src/injected-js/inbox/setupAjaxInterceptor.js +0 -211
  10. package/src/injected-js/inbox/setupClickAndGetNewIframeSrc.js +0 -67
  11. package/src/injected-js/inbox/setupComposeViewDraftIDFinder.js +0 -35
  12. package/src/injected-js/inbox/setupInboxFakeWindowResizeListener.js +0 -29
  13. package/src/platform-implementation-js/dom-driver/inbox/__mocks__/getSidebarClassnames.js +0 -13
  14. package/src/platform-implementation-js/dom-driver/inbox/addNavItem.js +0 -38
  15. package/src/platform-implementation-js/dom-driver/inbox/addRecipientRow.js +0 -55
  16. package/src/platform-implementation-js/dom-driver/inbox/createLink.js +0 -19
  17. package/src/platform-implementation-js/dom-driver/inbox/createLink.test.js +0 -27
  18. package/src/platform-implementation-js/dom-driver/inbox/detection/appToolbarLocation/parser.js +0 -43
  19. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentCard/parser.js +0 -34
  20. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentOverlay/parser.js +0 -53
  21. package/src/platform-implementation-js/dom-driver/inbox/detection/chatSidebar/parser.js +0 -31
  22. package/src/platform-implementation-js/dom-driver/inbox/detection/compose/parser.js +0 -103
  23. package/src/platform-implementation-js/dom-driver/inbox/detection/message/parser.js +0 -69
  24. package/src/platform-implementation-js/dom-driver/inbox/detection/nativeDrawer/parser.js +0 -32
  25. package/src/platform-implementation-js/dom-driver/inbox/detection/searchBar/parser.js +0 -28
  26. package/src/platform-implementation-js/dom-driver/inbox/detection/thread/parser.js +0 -49
  27. package/src/platform-implementation-js/dom-driver/inbox/detection/thread-row/parser.js +0 -100
  28. package/src/platform-implementation-js/dom-driver/inbox/getComposeViewDriverLiveSet.js +0 -99
  29. package/src/platform-implementation-js/dom-driver/inbox/getInboxMessageIdForInboxThreadId.js +0 -36
  30. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.js +0 -114
  31. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.test.js +0 -73
  32. package/src/platform-implementation-js/dom-driver/inbox/gotoView.js +0 -39
  33. package/src/platform-implementation-js/dom-driver/inbox/gotoView.test.js +0 -28
  34. package/src/platform-implementation-js/dom-driver/inbox/inbox-butter-bar-driver.js +0 -148
  35. package/src/platform-implementation-js/dom-driver/inbox/inbox-driver.js +0 -863
  36. package/src/platform-implementation-js/dom-driver/inbox/inbox-page-communicator.js +0 -62
  37. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.js +0 -12
  38. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.test.js +0 -18
  39. package/src/platform-implementation-js/dom-driver/inbox/makePageParserTree.js +0 -33
  40. package/src/platform-implementation-js/dom-driver/inbox/pageParserOptions.js +0 -265
  41. package/src/platform-implementation-js/dom-driver/inbox/registerSearchSuggestionsProvider.js +0 -301
  42. package/src/platform-implementation-js/dom-driver/inbox/setupCustomAutocompleteSelectionHandling.js +0 -183
  43. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.js +0 -64
  44. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.test.js +0 -72
  45. package/src/platform-implementation-js/dom-driver/inbox/views/InboxLabelView.js +0 -78
  46. package/src/platform-implementation-js/dom-driver/inbox/views/InboxMoleViewDriver.js +0 -296
  47. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarButtonView.js +0 -91
  48. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarView.js +0 -53
  49. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-sidebar-view.js +0 -271
  50. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-button-view.js +0 -160
  51. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-tooltip-view.js +0 -57
  52. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-card-view.js +0 -197
  53. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-overlay-view.js +0 -83
  54. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-chat-sidebar-view.js +0 -45
  55. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-button-view.js +0 -116
  56. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-view.js +0 -842
  57. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.js +0 -75
  58. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dropdown-view.js +0 -25
  59. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dummy-route-view.js +0 -63
  60. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-message-view.js +0 -274
  61. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-modal-view.js +0 -112
  62. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-route-view.js +0 -96
  63. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-row-view.js +0 -315
  64. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.js +0 -218
  65. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.test.js +0 -171
  66. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-tooltip-view.js +0 -127
  67. package/src/platform-implementation-js/dom-driver/inbox/views/inboxNavItemView.js +0 -311
  68. package/src/platform-implementation-js/dom-driver/inbox/waitForAnimationClickBlockerGone.js +0 -26
@@ -1,62 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _kefir = _interopRequireDefault(require("kefir"));
9
- var _commonPageCommunicator = _interopRequireDefault(require("../../lib/common-page-communicator"));
10
- class InboxPageCommunicator extends _commonPageCommunicator.default {
11
- getDraftIDForComposeView(el) {
12
- const draftIDFound = el.hasAttribute('data-inboxsdk-draft-id');
13
- if (!draftIDFound) {
14
- el.dispatchEvent(new CustomEvent('inboxSDKgetDraftIDforComposeView', {
15
- bubbles: true,
16
- cancelable: false,
17
- detail: null
18
- }));
19
- }
20
- const draftID = el.getAttribute('data-inboxsdk-draft-id');
21
- if (!draftID) throw new Error('could not find draft ID');
22
- return draftID;
23
- }
24
- notifyEmailSending() {
25
- document.dispatchEvent(new CustomEvent('inboxSDKcomposeViewIsSending', {
26
- bubbles: false,
27
- cancelable: false,
28
- detail: null
29
- }));
30
- }
31
- notifyEmailSendCanceled() {
32
- document.dispatchEvent(new CustomEvent('inboxSDKcomposeViewSendCanceled', {
33
- bubbles: false,
34
- cancelable: false,
35
- detail: null
36
- }));
37
- }
38
- clickAndGetNewIframeSrc(el) {
39
- const pr = _kefir.default.fromEvents(el, 'inboxSDKclickAndGetNewIframeSrcResult').take(1).flatMap(_ref => {
40
- let {
41
- detail
42
- } = _ref;
43
- return detail.type === 'success' ? _kefir.default.constant(detail.src) : _kefir.default.constantError(Object.assign(new Error(detail.message), {
44
- stack: detail.stack
45
- }));
46
- }).toPromise();
47
- el.dispatchEvent(new CustomEvent('inboxSDKclickAndGetNewIframeSrc', {
48
- bubbles: true,
49
- cancelable: false,
50
- detail: null
51
- }));
52
- return pr;
53
- }
54
- fakeWindowResize() {
55
- document.dispatchEvent(new CustomEvent('inboxSDKinboxFakeWindowResize', {
56
- bubbles: false,
57
- cancelable: false,
58
- detail: null
59
- }));
60
- }
61
- }
62
- exports.default = InboxPageCommunicator;
@@ -1,12 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.extractMessageIdsFromThreadResponse = extractMessageIdsFromThreadResponse;
7
- function extractMessageIdsFromThreadResponse(response) {
8
- const threadResponse = JSON.parse(response);
9
- const messageDescriptors = threadResponse && threadResponse[2] && threadResponse[2][0] && threadResponse[2][0][3];
10
- if (!messageDescriptors) throw new Error('Failed to process thread response');
11
- return messageDescriptors.map(descriptor => descriptor[1]).filter(Boolean);
12
- }
@@ -1,18 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _fs = _interopRequireDefault(require("fs"));
5
- var _inboxResponseProcessor = require("./inboxResponseProcessor");
6
- describe('extractMessageIdsFromThreadResponse()', () => {
7
- it('Lists the message IDs from a thread', () => {
8
- const threadResponse = _fs.default.readFileSync(__dirname + '/../../../../test/data/inbox-thread-details-response-2017-07-13.json', 'utf8');
9
- expect((0, _inboxResponseProcessor.extractMessageIdsFromThreadResponse)(threadResponse)).toEqual(['msg-a:r1490146031346228540', 'msg-f:1572844139423482218']);
10
- });
11
- it('Throws when given invalid inputs', () => {
12
- const invalidJSON = JSON.stringify({
13
- junkKey: 'junkValue'
14
- });
15
- expect(() => (0, _inboxResponseProcessor.extractMessageIdsFromThreadResponse)(invalidJSON)).toThrow();
16
- expect(() => (0, _inboxResponseProcessor.extractMessageIdsFromThreadResponse)('')).toThrow();
17
- });
18
- });
@@ -1,33 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = makePageParserTree;
8
- var _pageParserTree = _interopRequireDefault(require("page-parser-tree"));
9
- var _udKefir = _interopRequireDefault(require("ud-kefir"));
10
- var _pageParserOptions = _interopRequireDefault(require("./pageParserOptions"));
11
- var _censorHTMLtree = _interopRequireDefault(require("../../../common/censorHTMLtree"));
12
- const pageParserOptionsStream = (0, _udKefir.default)(module, _pageParserOptions.default);
13
- function makePageParserTree(driver, root) {
14
- const _driver = driver;
15
- function transformOptions(pageParserOptions) {
16
- return !_driver ? pageParserOptions : {
17
- ...pageParserOptions,
18
- logError(err, el) {
19
- const details = {
20
- el,
21
- html: el ? (0, _censorHTMLtree.default)(el) : null
22
- };
23
- _driver.getLogger().errorSite(err, details);
24
- }
25
- };
26
- }
27
- const page = new _pageParserTree.default(root, transformOptions(_pageParserOptions.default));
28
- pageParserOptionsStream.changes().onValue(pageParserOptions => {
29
- console.log('replacing PageParserTree options');
30
- page.replaceOptions(transformOptions(pageParserOptions));
31
- });
32
- return page;
33
- }
@@ -1,265 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _logger = _interopRequireDefault(require("../../lib/logger"));
9
- var _censorHTMLtree = _interopRequireDefault(require("../../../common/censorHTMLtree"));
10
- var _transducers = _interopRequireDefault(require("transducers.js"));
11
- var _find = _interopRequireDefault(require("lodash/find"));
12
- var _uniq = _interopRequireDefault(require("lodash/uniq"));
13
- var _closestNg = _interopRequireDefault(require("closest-ng"));
14
- const pageParserOptions = {
15
- tags: {
16
- message: {
17
- ownedBy: ['thread']
18
- },
19
- attachmentCard: {
20
- ownedBy: ['message', 'threadRow', 'bundleRow']
21
- },
22
- inlineCompose: {
23
- ownedBy: ['thread']
24
- }
25
- },
26
- finders: {
27
- leftNav: {
28
- interval: (count, timeRunning) => count === 0 && timeRunning < 60 * 1000 ? 300 : 2 * 60 * 1000,
29
- fn(root) {
30
- return root.querySelectorAll('nav[aria-hidden]:not([role]) div[role=menu]');
31
- }
32
- },
33
- thread: {
34
- fn(root) {
35
- return root.querySelectorAll('div[aria-expanded=true][data-item-id*="thread-"], div.scroll-list-item-open[data-item-id*="thread-"]');
36
- }
37
- },
38
- message: {
39
- fn(root) {
40
- return root.querySelectorAll('div[role=listitem][aria-expanded][data-msg-id*="msg-"]');
41
- }
42
- },
43
- attachmentCard: {
44
- fn(root) {
45
- return root.querySelectorAll(`
46
- div[data-msg-id] section > div > div[tabindex][title],
47
- div[jsaction*="update_chip_carousel_arrows"] div[role=listitem][tabindex][jsaction]
48
- `);
49
- }
50
- },
51
- attachmentOverlay: {
52
- fn: function () {
53
- const _t = _transducers.default.compose(_transducers.default.filter(iframe => iframe.style.display !== 'none'), _transducers.default.mapcat(iframe => Array.prototype.slice.call(iframe.contentDocument.querySelectorAll('div[role=dialog]:not([aria-hidden=true])'))));
54
- return root => {
55
- return _transducers.default.toArray(Array.prototype.slice.call(root.querySelectorAll('iframe[frameborder]:not([src])')), _t);
56
- };
57
- }()
58
- },
59
- nativeDrawer: {
60
- fn(root) {
61
- const drawerUploadFilesBtn = root.querySelector('div[jsaction="global.exit_full_screen"] div[role=dialog][aria-busy=true] div[role=link][jsaction$=".open_local_file_picker"]');
62
- if (drawerUploadFilesBtn) {
63
- const drawer = (0, _closestNg.default)(drawerUploadFilesBtn, '[role=dialog]');
64
- if (drawer) return [drawer];
65
- }
66
- return [];
67
- }
68
- },
69
- searchBar: {
70
- interval: (count, timeRunning) => count === 0 && timeRunning < 60 * 1000 ? 300 : 2 * 60 * 1000,
71
- fn(root) {
72
- return root.querySelectorAll('nav[role=banner] div[jsaction*="scroll_to_top"] > :last-child > div:empty + div:not(:empty)');
73
- }
74
- },
75
- searchAutocompleteResults: {
76
- fn(root) {
77
- return root.querySelectorAll('div[jsaction*="clickonly:global.empty_space_click"] div[role=listbox] ul:last-of-type');
78
- }
79
- },
80
- chatSidebar: {
81
- interval: count => count === 0 ? 5 * 1000 : 120 * 1000,
82
- fn(root) {
83
- return [root.querySelector('#in')].filter(Boolean);
84
- }
85
- },
86
- appToolbarLocation: {
87
- interval: (count, timeRunning) => count === 0 && timeRunning < 60 * 1000 ? 300 : 2 * 60 * 1000,
88
- fn(root) {
89
- const chatToggle = root.querySelector('div[role=button][jsaction*="global.toggle_chat_roster"]');
90
- const appToolbarLocation = chatToggle ? chatToggle.parentElement.parentElement.parentElement : null;
91
- return appToolbarLocation ? [appToolbarLocation] : [];
92
- }
93
- },
94
- inlineCompose: {
95
- fn(root) {
96
- const inlineComposesByPopoutBtn = Array.prototype.filter.call(root.querySelectorAll('div[role=main] div[role=list] div[role=listitem] div[jsvs] button[jsaction$=".quick_compose_popout_mole"]'), el => el.style.display !== 'none').map(el => (0, _closestNg.default)(el, '[jsvs]'));
97
- const inlineComposesByBody = Array.prototype.map.call(root.querySelectorAll('div[role=main] div[role=list] ~ div div[jsvs] div[role=textbox][contenteditable=true][tabindex="0"], div[role=main] div[role=listitem][aria-multiselectable] div[jsvs] div[role=textbox][contenteditable=true][tabindex="0"]'), el => (0, _closestNg.default)(el, '[jsvs]'));
98
-
99
- // The above are currently expected to match, though they don't match
100
- // for all of our historical data.
101
-
102
- const inlineComposes = (0, _uniq.default)(inlineComposesByPopoutBtn.concat(inlineComposesByBody));
103
- return inlineComposes;
104
- }
105
- },
106
- regularCompose: {
107
- fn(root) {
108
- return Array.prototype.filter.call(root.querySelectorAll('div[role=dialog]:not(.inboxsdk__mole_view)'), el => el.querySelector('div[jsaction^="compose"][jsaction$=".focus_mole"]') && !(0, _closestNg.default)(el, 'div[tabindex][jsaction*="exit_full_screen"]'));
109
- }
110
- },
111
- fullscreenCompose: {
112
- fn(root) {
113
- return Array.prototype.filter.call(root.querySelectorAll('div[tabindex][jsaction*="exit_full_screen"] div[role=dialog]'), el => el.querySelector('div[jsaction^="compose"][jsaction$=".focus_mole"]'));
114
- }
115
- }
116
- },
117
- watchers: [{
118
- sources: [null],
119
- tag: 'leftNav',
120
- selectors: ['body', '[id][jsaction]', 'nav[aria-hidden]:not([role])', 'div[role=menu]']
121
- }, {
122
- sources: [null],
123
- tag: 'topRow',
124
- selectors: ['body', '[id][jsaction]', 'div[jsaction]:not([role])', '*', {
125
- $or: [['[role=main]'], [':not([role])', '*', '[role=main]']]
126
- }, '[role=application]', '[role=list]', '*', '*', '.scroll-list-section-body', '[role=listitem]']
127
- }, {
128
- sources: ['topRow'],
129
- tag: 'bundleRow',
130
- selectors: [{
131
- $filter: el => !/thread-/.test(el.getAttribute('data-item-id') || '')
132
- }]
133
- }, {
134
- sources: ['topRow'],
135
- tag: 'threadRow',
136
- selectors: [{
137
- $filter: el => /thread-/.test(el.getAttribute('data-item-id') || '')
138
- }]
139
- }, {
140
- sources: ['bundleRow'],
141
- tag: 'threadRow',
142
- selectors: [{
143
- $watch: {
144
- attributeFilter: ['aria-expanded'],
145
- cond: '[aria-expanded=true]'
146
- }
147
- }, '[role=list]', '*', ':not([id])', '*', '*', '[role=listitem]']
148
- }, {
149
- sources: ['threadRow'],
150
- tag: 'collapsedThreadRow',
151
- selectors: [{
152
- $watch: {
153
- attributeFilter: ['class'],
154
- cond: ':not(.scroll-list-item-open), .scroll-list-item-measuring-open'
155
- }
156
- }, ':first-child', {
157
- $map: el => el.parentElement
158
- }]
159
- }, {
160
- sources: ['threadRow'],
161
- tag: 'thread',
162
- selectors: [{
163
- $watch: {
164
- attributeFilter: ['class'],
165
- cond: '.scroll-list-item-open'
166
- }
167
- }]
168
- }, {
169
- sources: ['thread'],
170
- tag: 'message',
171
- selectors: ['*', ':not([role=heading])', '[role=list]', 'div', {
172
- $watch: {
173
- attributeFilter: ['role', 'data-msg-id'],
174
- cond: '[role=listitem][data-msg-id]'
175
- }
176
- }]
177
- }, {
178
- sources: ['message'],
179
- tag: 'attachmentCard',
180
- selectors: ['*', '*', 'section', '*', {
181
- $filter: el => el.style.display !== 'none'
182
- }, 'div[tabindex]', {
183
- $filter: el => el.style.display !== 'none'
184
- }]
185
- }, {
186
- sources: ['bundleRow', 'threadRow'],
187
- tag: 'attachmentCard',
188
- selectors: ['*', '[jsaction]', '[role=list][jsaction]', '*', 'div[role=listitem]', {
189
- $watch: {
190
- attributeFilter: ['tabindex'],
191
- cond: '[tabindex]'
192
- }
193
- }, {
194
- $filter: el => el.style.display !== 'none'
195
- }]
196
- }, {
197
- sources: [null],
198
- tag: 'attachmentOverlay',
199
- selectors: ['body', 'iframe[id][frameborder]:not([src])', {
200
- $map: el => el.contentDocument && el.contentDocument.body
201
- }, 'div[aria-label][role=dialog]', {
202
- $watch: {
203
- attributeFilter: ['aria-hidden'],
204
- cond: ':not([aria-hidden=true])'
205
- }
206
- }]
207
- }, {
208
- sources: [null],
209
- tag: 'chatSidebar',
210
- selectors: ['body', '[id][jsaction]', 'div[id]', 'div[class]', 'div.in#in']
211
- }, {
212
- sources: [null],
213
- tag: 'searchAutocompleteResults',
214
- selectors: ['body', '[id][jsaction]', '[id][jsaction]', 'div[class]', 'div[class]', '[role=listbox]', 'ul:last-of-type']
215
- }, {
216
- sources: ['thread'],
217
- tag: 'inlineCompose',
218
- selectors: ['*', ':not([role=heading])', ':not([role=list])', '*', '[jsvs]', {
219
- $map(el) {
220
- // <2016-11-02 support
221
- const oldButton = (0, _find.default)(el.children, child => child.nodeName === 'BUTTON');
222
- if (oldButton) return oldButton;
223
- const buttonEl = el.querySelector('div[jsaction="global.none"] > div[role=button]');
224
- if (buttonEl) return buttonEl.parentElement;
225
- _logger.default.error(new Error('inline compose button not found'), {
226
- el,
227
- html: (0, _censorHTMLtree.default)(el)
228
- });
229
- }
230
- }, {
231
- $watch: {
232
- attributeFilter: ['style'],
233
- cond: el => el.style.display !== 'none'
234
- }
235
- }, {
236
- $map: el => el.parentElement
237
- }]
238
- }, {
239
- sources: [null],
240
- tag: 'regularCompose',
241
- selectors: ['body', 'div[id][jsaction]', 'div[id][class]:not([role])', 'div[class]', 'div[id]', 'div[jstcache][class]:not([aria-hidden]):not([tabindex])', {
242
- $map(el) {
243
- const composeEl = el.querySelector('div[role=dialog]:not(.inboxsdk__mole_view)');
244
- if (!composeEl) {
245
- _logger.default.error(new Error('compose dialog element not found'), {
246
- html: (0, _censorHTMLtree.default)(el)
247
- });
248
- }
249
- return composeEl;
250
- }
251
- }]
252
- }, {
253
- sources: [null],
254
- tag: 'fullscreenCompose',
255
- selectors: ['body', '[id][jsaction]', 'div[id]:not([jsaction])', 'div[tabindex][jsaction*="exit_full_screen"]', '*', '*', '*', '*', '*', '[role=dialog]:not(.inboxsdk__drawer_view)']
256
- }, {
257
- sources: ['searchBar'],
258
- tag: 'listToolBar',
259
- selectors: [{
260
- $map: el => el.parentElement
261
- }, 'div:empty + div:not(:empty) + div', 'ul[jsaction]']
262
- }]
263
- };
264
- var _default = pageParserOptions;
265
- exports.default = _default;