@inboxsdk/core 1.1.0 → 1.1.2

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 (81) 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/common/version.d.ts.map +1 -1
  7. package/src/common/version.js +3 -1
  8. package/src/injected-js/main.js +0 -9
  9. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.test.js +6 -2
  10. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +4 -2
  11. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.js +4 -2
  12. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.test.js +6 -2
  13. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +2 -2
  14. package/src/platform-implementation-js/driver-common/sidebar/constants.d.ts +9 -0
  15. package/src/platform-implementation-js/driver-common/sidebar/constants.d.ts.map +1 -0
  16. package/src/platform-implementation-js/driver-common/sidebar/constants.js +26 -0
  17. package/src/platform-implementation-js/lib/idMap.d.ts +7 -0
  18. package/src/platform-implementation-js/lib/idMap.d.ts.map +1 -1
  19. package/src/platform-implementation-js/lib/idMap.js +35 -0
  20. package/src/platform-implementation-js/platform-implementation.d.ts +0 -3
  21. package/src/platform-implementation-js/platform-implementation.js +1 -9
  22. package/src/injected-js/inbox/setupAjaxInterceptor.js +0 -211
  23. package/src/injected-js/inbox/setupClickAndGetNewIframeSrc.js +0 -67
  24. package/src/injected-js/inbox/setupComposeViewDraftIDFinder.js +0 -35
  25. package/src/injected-js/inbox/setupInboxFakeWindowResizeListener.js +0 -29
  26. package/src/platform-implementation-js/dom-driver/inbox/__mocks__/getSidebarClassnames.js +0 -13
  27. package/src/platform-implementation-js/dom-driver/inbox/addNavItem.js +0 -38
  28. package/src/platform-implementation-js/dom-driver/inbox/addRecipientRow.js +0 -55
  29. package/src/platform-implementation-js/dom-driver/inbox/createLink.js +0 -19
  30. package/src/platform-implementation-js/dom-driver/inbox/createLink.test.js +0 -27
  31. package/src/platform-implementation-js/dom-driver/inbox/detection/appToolbarLocation/parser.js +0 -43
  32. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentCard/parser.js +0 -34
  33. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentOverlay/parser.js +0 -53
  34. package/src/platform-implementation-js/dom-driver/inbox/detection/chatSidebar/parser.js +0 -31
  35. package/src/platform-implementation-js/dom-driver/inbox/detection/compose/parser.js +0 -103
  36. package/src/platform-implementation-js/dom-driver/inbox/detection/message/parser.js +0 -69
  37. package/src/platform-implementation-js/dom-driver/inbox/detection/nativeDrawer/parser.js +0 -32
  38. package/src/platform-implementation-js/dom-driver/inbox/detection/searchBar/parser.js +0 -28
  39. package/src/platform-implementation-js/dom-driver/inbox/detection/thread/parser.js +0 -49
  40. package/src/platform-implementation-js/dom-driver/inbox/detection/thread-row/parser.js +0 -100
  41. package/src/platform-implementation-js/dom-driver/inbox/getComposeViewDriverLiveSet.js +0 -99
  42. package/src/platform-implementation-js/dom-driver/inbox/getInboxMessageIdForInboxThreadId.js +0 -36
  43. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.js +0 -114
  44. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.test.js +0 -73
  45. package/src/platform-implementation-js/dom-driver/inbox/gotoView.js +0 -39
  46. package/src/platform-implementation-js/dom-driver/inbox/gotoView.test.js +0 -28
  47. package/src/platform-implementation-js/dom-driver/inbox/inbox-butter-bar-driver.js +0 -148
  48. package/src/platform-implementation-js/dom-driver/inbox/inbox-driver.js +0 -863
  49. package/src/platform-implementation-js/dom-driver/inbox/inbox-page-communicator.js +0 -62
  50. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.js +0 -12
  51. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.test.js +0 -18
  52. package/src/platform-implementation-js/dom-driver/inbox/makePageParserTree.js +0 -33
  53. package/src/platform-implementation-js/dom-driver/inbox/pageParserOptions.js +0 -265
  54. package/src/platform-implementation-js/dom-driver/inbox/registerSearchSuggestionsProvider.js +0 -301
  55. package/src/platform-implementation-js/dom-driver/inbox/setupCustomAutocompleteSelectionHandling.js +0 -183
  56. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.js +0 -64
  57. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.test.js +0 -72
  58. package/src/platform-implementation-js/dom-driver/inbox/views/InboxLabelView.js +0 -78
  59. package/src/platform-implementation-js/dom-driver/inbox/views/InboxMoleViewDriver.js +0 -296
  60. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarButtonView.js +0 -91
  61. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarView.js +0 -53
  62. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-sidebar-view.js +0 -271
  63. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-button-view.js +0 -160
  64. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-tooltip-view.js +0 -57
  65. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-card-view.js +0 -197
  66. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-overlay-view.js +0 -83
  67. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-chat-sidebar-view.js +0 -45
  68. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-button-view.js +0 -116
  69. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-view.js +0 -842
  70. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.js +0 -75
  71. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dropdown-view.js +0 -25
  72. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dummy-route-view.js +0 -63
  73. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-message-view.js +0 -274
  74. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-modal-view.js +0 -112
  75. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-route-view.js +0 -96
  76. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-row-view.js +0 -315
  77. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.js +0 -218
  78. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.test.js +0 -171
  79. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-tooltip-view.js +0 -127
  80. package/src/platform-implementation-js/dom-driver/inbox/views/inboxNavItemView.js +0 -311
  81. 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;