@inboxsdk/core 1.0.5 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/inboxsdk.js +25 -192
  2. package/inboxsdk.js.map +1 -1
  3. package/package.json +1 -1
  4. package/pageWorld.js +3 -47
  5. package/pageWorld.js.map +1 -1
  6. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.d.ts +3 -0
  7. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.d.ts.map +1 -0
  8. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.js +3 -8
  9. package/src/inboxsdk-js/inboxsdk-NONREMOTE.d.ts +3 -0
  10. package/src/inboxsdk-js/inboxsdk-NONREMOTE.d.ts.map +1 -0
  11. package/src/inboxsdk-js/inboxsdk-NONREMOTE.js +4 -6
  12. package/src/inboxsdk-js/inboxsdk-REMOTE.d.ts +3 -0
  13. package/src/inboxsdk-js/inboxsdk-REMOTE.d.ts.map +1 -0
  14. package/src/inboxsdk-js/inboxsdk-REMOTE.js +2 -5
  15. package/src/inboxsdk-js/inboxsdk-TEST.d.ts +3 -0
  16. package/src/inboxsdk-js/inboxsdk-TEST.d.ts.map +1 -0
  17. package/src/inboxsdk-js/inboxsdk-TEST.js +5 -6
  18. package/src/inboxsdk-js/inboxsdk.d.ts +8 -0
  19. package/src/inboxsdk-js/inboxsdk.d.ts.map +1 -0
  20. package/src/inboxsdk-js/inboxsdk.js +22 -32
  21. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.d.ts +2 -0
  22. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.d.ts.map +1 -0
  23. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.js +14 -16
  24. package/src/inboxsdk-js/loading/platform-implementation-loader.d.ts +1 -1
  25. package/src/inboxsdk-js/loading/platform-implementation-loader.d.ts.map +1 -1
  26. package/src/injected-js/gmail/setup-gmail-interceptor.js +7 -14
  27. package/src/injected-js/main.js +0 -9
  28. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts.map +1 -1
  29. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +0 -2
  30. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.js +2 -1
  31. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +1 -2
  32. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.test.js +10 -1
  33. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +39 -35
  34. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +1 -2
  35. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +2 -3
  36. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +13 -14
  37. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +1 -2
  38. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +2 -2
  39. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +3 -4
  40. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +7 -8
  41. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +28 -31
  42. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +4 -5
  43. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +2 -3
  44. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.js +1 -2
  45. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.test.js +10 -0
  46. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +10 -11
  47. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +4 -5
  48. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +3 -4
  49. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +2 -3
  50. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +2 -3
  51. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +2 -3
  52. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +5 -6
  53. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +1 -2
  54. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +4 -5
  55. package/src/platform-implementation-js/lib/idMap.d.ts +1 -2
  56. package/src/platform-implementation-js/lib/idMap.d.ts.map +1 -1
  57. package/src/platform-implementation-js/lib/idMap.js +4 -44
  58. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.d.ts.map +1 -1
  59. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.js +3 -4
  60. package/src/platform-implementation-js/lib/react/ElementContainer.js +3 -7
  61. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.d.ts +3 -0
  62. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.d.ts.map +1 -0
  63. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +5 -9
  64. package/src/platform-implementation-js/main.d.ts +5 -0
  65. package/src/platform-implementation-js/main.d.ts.map +1 -0
  66. package/src/platform-implementation-js/main.js +38 -61
  67. package/src/platform-implementation-js/namespaces/conversations.js +2 -3
  68. package/src/platform-implementation-js/namespaces/lists.js +1 -2
  69. package/src/platform-implementation-js/namespaces/nav-menu.js +2 -3
  70. package/src/platform-implementation-js/namespaces/router.js +3 -4
  71. package/src/platform-implementation-js/namespaces/toolbars.js +1 -2
  72. package/src/platform-implementation-js/platform-implementation.d.ts +0 -3
  73. package/src/platform-implementation-js/platform-implementation.js +1 -11
  74. package/src/platform-implementation-js/views/app-menu-item-view.js +2 -1
  75. package/src/platform-implementation-js/views/collapsible-panel-view.js +2 -1
  76. package/src/platform-implementation-js/views/content-panel-view.js +1 -2
  77. package/src/platform-implementation-js/views/conversations/custom-message-view.js +3 -4
  78. package/src/platform-implementation-js/views/conversations/message-view.js +1 -2
  79. package/src/platform-implementation-js/views/conversations/thread-view.js +1 -2
  80. package/src/platform-implementation-js/views/nav-item-view.js +1 -2
  81. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +2 -3
  82. package/src/platform-implementation-js/widgets/drawer-view.js +1 -2
  83. package/src/platform-implementation-js/widgets/modal-view.js +1 -2
  84. package/src/platform-implementation-js/widgets/mole-view.js +1 -2
  85. package/src/injected-js/inbox/setupAjaxInterceptor.js +0 -211
  86. package/src/injected-js/inbox/setupClickAndGetNewIframeSrc.js +0 -67
  87. package/src/injected-js/inbox/setupComposeViewDraftIDFinder.js +0 -35
  88. package/src/injected-js/inbox/setupInboxFakeWindowResizeListener.js +0 -29
  89. package/src/platform-implementation-js/dom-driver/gmail/custom-style.d.ts +0 -2
  90. package/src/platform-implementation-js/dom-driver/gmail/custom-style.d.ts.map +0 -1
  91. package/src/platform-implementation-js/dom-driver/gmail/custom-style.js +0 -17
  92. package/src/platform-implementation-js/dom-driver/inbox/__mocks__/getSidebarClassnames.js +0 -13
  93. package/src/platform-implementation-js/dom-driver/inbox/addNavItem.js +0 -38
  94. package/src/platform-implementation-js/dom-driver/inbox/addRecipientRow.js +0 -55
  95. package/src/platform-implementation-js/dom-driver/inbox/createLink.js +0 -19
  96. package/src/platform-implementation-js/dom-driver/inbox/createLink.test.js +0 -27
  97. package/src/platform-implementation-js/dom-driver/inbox/custom-style.js +0 -23
  98. package/src/platform-implementation-js/dom-driver/inbox/detection/appToolbarLocation/parser.js +0 -43
  99. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentCard/parser.js +0 -34
  100. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentOverlay/parser.js +0 -53
  101. package/src/platform-implementation-js/dom-driver/inbox/detection/chatSidebar/parser.js +0 -31
  102. package/src/platform-implementation-js/dom-driver/inbox/detection/compose/parser.js +0 -103
  103. package/src/platform-implementation-js/dom-driver/inbox/detection/message/parser.js +0 -69
  104. package/src/platform-implementation-js/dom-driver/inbox/detection/nativeDrawer/parser.js +0 -32
  105. package/src/platform-implementation-js/dom-driver/inbox/detection/searchBar/parser.js +0 -28
  106. package/src/platform-implementation-js/dom-driver/inbox/detection/thread/parser.js +0 -49
  107. package/src/platform-implementation-js/dom-driver/inbox/detection/thread-row/parser.js +0 -100
  108. package/src/platform-implementation-js/dom-driver/inbox/getComposeViewDriverLiveSet.js +0 -99
  109. package/src/platform-implementation-js/dom-driver/inbox/getInboxMessageIdForInboxThreadId.js +0 -36
  110. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.js +0 -114
  111. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.test.js +0 -73
  112. package/src/platform-implementation-js/dom-driver/inbox/gotoView.js +0 -39
  113. package/src/platform-implementation-js/dom-driver/inbox/gotoView.test.js +0 -28
  114. package/src/platform-implementation-js/dom-driver/inbox/inbox-butter-bar-driver.js +0 -148
  115. package/src/platform-implementation-js/dom-driver/inbox/inbox-driver.js +0 -866
  116. package/src/platform-implementation-js/dom-driver/inbox/inbox-page-communicator.js +0 -62
  117. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.js +0 -12
  118. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.test.js +0 -18
  119. package/src/platform-implementation-js/dom-driver/inbox/makePageParserTree.js +0 -33
  120. package/src/platform-implementation-js/dom-driver/inbox/pageParserOptions.js +0 -265
  121. package/src/platform-implementation-js/dom-driver/inbox/registerSearchSuggestionsProvider.js +0 -301
  122. package/src/platform-implementation-js/dom-driver/inbox/setupCustomAutocompleteSelectionHandling.js +0 -183
  123. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.js +0 -64
  124. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.test.js +0 -72
  125. package/src/platform-implementation-js/dom-driver/inbox/views/InboxLabelView.js +0 -78
  126. package/src/platform-implementation-js/dom-driver/inbox/views/InboxMoleViewDriver.js +0 -297
  127. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarButtonView.js +0 -92
  128. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarView.js +0 -54
  129. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-sidebar-view.js +0 -272
  130. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-button-view.js +0 -161
  131. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-tooltip-view.js +0 -58
  132. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-card-view.js +0 -198
  133. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-overlay-view.js +0 -90
  134. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-chat-sidebar-view.js +0 -46
  135. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-button-view.js +0 -116
  136. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-view.js +0 -843
  137. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.js +0 -76
  138. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.test.js +0 -31
  139. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dropdown-view.js +0 -25
  140. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dummy-route-view.js +0 -64
  141. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-message-view.js +0 -275
  142. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-modal-view.js +0 -113
  143. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-route-view.js +0 -97
  144. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-row-view.js +0 -316
  145. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.js +0 -219
  146. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.test.js +0 -171
  147. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-tooltip-view.js +0 -128
  148. package/src/platform-implementation-js/dom-driver/inbox/views/inboxNavItemView.js +0 -312
  149. package/src/platform-implementation-js/dom-driver/inbox/waitForAnimationClickBlockerGone.js +0 -26
  150. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.d.ts +0 -2
  151. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.d.ts.map +0 -1
  152. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.js +0 -4
  153. package/src/platform-implementation-js/lib/shared-style.js +0 -23
  154. package/src/types/gulp-add-src.d.ts +0 -7
@@ -1,198 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _includes = _interopRequireDefault(require("lodash/includes"));
10
- var _ud = require("ud");
11
- var _autoHtml = _interopRequireDefault(require("auto-html"));
12
- var _kefir = _interopRequireDefault(require("kefir"));
13
- var _kefirBus = _interopRequireDefault(require("kefir-bus"));
14
- var _kefirStopper = _interopRequireDefault(require("kefir-stopper"));
15
- var _findParent = _interopRequireDefault(require("../../../../common/find-parent"));
16
- var _querySelectorOrFail = _interopRequireDefault(require("../../../lib/dom/querySelectorOrFail"));
17
- class InboxAttachmentCardView {
18
- constructor(options, driver) {
19
- (0, _defineProperty2.default)(this, "_stopper", (0, _kefirStopper.default)());
20
- (0, _defineProperty2.default)(this, "_previewClicks", _kefir.default.pool());
21
- (0, _defineProperty2.default)(this, "_addedButtonDescriptors", []);
22
- (0, _defineProperty2.default)(this, "_overlayView", null);
23
- this._driver = driver;
24
- if (options.element) {
25
- this._element = options.element;
26
- this._p = options.parsed;
27
- this._type = options.parsed.attributes.type;
28
- _kefir.default.merge([_kefir.default.fromEvents(this._element, 'click'), _kefir.default.fromEvents(this._element, 'keydown')]).takeUntilBy(this._stopper).onValue(() => {
29
- this._driver.setLastInteractedAttachmentCardView(this);
30
- });
31
- } else {
32
- this._type = 'CUSTOM';
33
- this._createNewElement(options);
34
- }
35
- this._messageViewDriver = this._findMessageView();
36
- if (this._messageViewDriver) {
37
- this._messageViewDriver.addAttachmentCardViewDriver(this);
38
- }
39
- }
40
- destroy() {
41
- if (!this._p) {
42
- this._element.remove();
43
- }
44
- this._stopper.destroy();
45
- }
46
- _findMessageView() {
47
- const map = this._driver.getMessageViewElementsMap();
48
- const messageViewElement = (0, _findParent.default)(this._element, el => map.has(el));
49
- if (!messageViewElement) return null;
50
- return map.get(messageViewElement);
51
- }
52
- _createNewElement(options) {
53
- if (options.previewUrl) {
54
- this._element = document.createElement('a');
55
- this._element.href = options.previewUrl;
56
- } else {
57
- this._element = document.createElement('div');
58
- this._element.tabIndex = 0;
59
- }
60
- this._element.title = options.title;
61
- const setupInnerHtml = options => {
62
- if (options.previewThumbnailUrl) {
63
- this._element.className = 'inboxsdk__attachment_card inboxsdk__attachment_card_with_preview';
64
- this._element.innerHTML = (0, _autoHtml.default)`
65
- <img alt="" aria-hidden="true"
66
- style="width: 100%"
67
- src="${options.previewThumbnailUrl}"
68
- >
69
- <div class="inboxsdk__attachment_card_hover_overlay">
70
- <div class="inboxsdk__attachment_card_title">${options.title}</div>
71
- <div class="inboxsdk__attachment_card_buttons"></div>
72
- </div>
73
- `;
74
- if (options.failoverPreviewIconUrl) {
75
- _kefir.default.fromEvents((0, _querySelectorOrFail.default)(this._element, 'img'), 'error').take(1).takeUntilBy(this._stopper).onValue(() => {
76
- setupInnerHtml({
77
- ...options,
78
- previewThumbnailUrl: null,
79
- iconThumbnailUrl: options.failoverPreviewIconUrl
80
- });
81
- });
82
- }
83
- } else {
84
- this._element.className = 'inboxsdk__attachment_card';
85
- this._element.innerHTML = (0, _autoHtml.default)`
86
- <div class="inboxsdk__attachment_card_nohover">
87
- <div class="inboxsdk__attachment_card_title">${options.title}</div>
88
- <div class="inboxsdk__attachment_card_description">
89
- <img alt="" aria-hidden="true" src="${options.fileIconImageUrl}">
90
- <span>${options.description || ''}</span>
91
- </div>
92
- </div>
93
- <div class="inboxsdk__attachment_card_hover_overlay">
94
- <div class="inboxsdk__attachment_card_title">${options.title}</div>
95
- <div class="inboxsdk__attachment_card_buttons"></div>
96
- </div>
97
- `;
98
- }
99
- options.buttons.forEach(button => {
100
- this.addButton(button);
101
- });
102
- };
103
- setupInnerHtml(options);
104
- this._previewClicks.plug(_kefir.default.merge([_kefir.default.fromEvents(this._element, 'click'), _kefir.default.fromEvents(this._element, 'keypress').filter(e => (0, _includes.default)([32 /*space*/, 13 /*enter*/], e.which))]));
105
- options.container.appendChild(this._element);
106
- }
107
- getElement() {
108
- return this._element;
109
- }
110
- getMessageViewDriver() {
111
- return this._messageViewDriver;
112
- }
113
- getStopper() {
114
- return this._stopper;
115
- }
116
- getPreviewClicks() {
117
- return this._previewClicks.takeUntilBy(this._stopper);
118
- }
119
- getAttachmentType() {
120
- return this._type;
121
- }
122
- getAddedButtonDescriptors() {
123
- return this._addedButtonDescriptors;
124
- }
125
- addButton(button) {
126
- this._addedButtonDescriptors.push(button);
127
- if (!this._p) {
128
- // artificial SDK-added card. Native cards don't have their added buttons
129
- // processed here. They're added in InboxAttachmentOverlayView.
130
- const buttonContainer = (0, _querySelectorOrFail.default)(this._element, '.inboxsdk__attachment_card_buttons');
131
- const el = document.createElement('button');
132
- el.className = 'inboxsdk__attachment_card_button';
133
- if (button.downloadUrl) {
134
- el.setAttribute('data-inboxsdk-download-url', button.downloadUrl);
135
- el.addEventListener('click', event => {
136
- event.stopPropagation();
137
- event.preventDefault();
138
- let prevented = false;
139
- if (button.onClick) {
140
- button.onClick({
141
- preventDefault() {
142
- prevented = true;
143
- }
144
- });
145
- }
146
- if (prevented) return;
147
- const downloadLink = document.createElement('a');
148
- downloadLink.href = button.downloadUrl;
149
- if (button.downloadFilename) {
150
- downloadLink.download = button.downloadFilename;
151
- }
152
- downloadLink.addEventListener('click', function (e) {
153
- e.stopPropagation();
154
- }, true);
155
- if (button.openInNewTab) {
156
- downloadLink.setAttribute('target', '_blank');
157
- }
158
- document.body.appendChild(downloadLink);
159
- downloadLink.click();
160
- downloadLink.remove();
161
- });
162
- el.innerHTML = `
163
- <div style="background: no-repeat url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAYElEQVQ4y+2UMQ6AQAgEwfhQnnJP4adjc4UxB0ehhXqbULE7BRAUkLu1yQP6OXQveEab1DXTD0O9b53kIui+QReicnJ5lM2gArQA2LLcDCqAXYA2y1SgZ7BV/Lr+6TugB0K2GxxDXjEZAAAAAElFTkSuQmCC)"></div>
164
- `;
165
- } else {
166
- el.addEventListener('click', event => {
167
- event.stopPropagation();
168
- event.preventDefault();
169
- if (button.onClick) {
170
- button.onClick({
171
- getDownloadURL() {
172
- throw new Error('not implemented for artificial sdk-added cardViews!');
173
- }
174
- });
175
- }
176
- });
177
- el.innerHTML = (0, _autoHtml.default)`
178
- <img src="${button.iconUrl}">
179
- `;
180
- el.title = button.tooltip;
181
- }
182
- buttonContainer.appendChild(el);
183
- }
184
- }
185
- getTitle() {
186
- return this._element.title;
187
- }
188
- async getDownloadURL() {
189
- const overlayView = this._overlayView;
190
- if (!overlayView) throw new Error('This method only works during a button onClick callback in Inbox');
191
- return overlayView.getDownloadURL();
192
- }
193
- setOverlay(overlayView) {
194
- this._overlayView = overlayView;
195
- }
196
- }
197
- var _default = (0, _ud.defn)(module, InboxAttachmentCardView);
198
- exports.default = _default;
@@ -1,90 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _ud = require("ud");
10
- var _kefir = _interopRequireDefault(require("kefir"));
11
- var _kefirStopper = _interopRequireDefault(require("kefir-stopper"));
12
- var _autoHtml = _interopRequireDefault(require("auto-html"));
13
- var _sharedStyle = _interopRequireDefault(require("../../../lib/shared-style"));
14
- var _customStyle = _interopRequireDefault(require("../../../dom-driver/inbox/custom-style"));
15
- var _simulateMouseEvent = require("../../../lib/dom/simulate-mouse-event");
16
- var _ajax = _interopRequireDefault(require("../../../../common/ajax"));
17
- class InboxAttachmentOverlayView {
18
- constructor(driver, el, parsed, cardView) {
19
- (0, _defineProperty2.default)(this, "_stopper", (0, _kefirStopper.default)());
20
- this._driver = driver;
21
- this._el = el;
22
- this._p = parsed;
23
- this._cardView = cardView;
24
-
25
- // The element is within a same-origin iframe
26
- (0, _sharedStyle.default)(el.ownerDocument);
27
- (0, _customStyle.default)(el.ownerDocument);
28
- this._cardView.setOverlay(this);
29
- this._cardView.getAddedButtonDescriptors().forEach(button => {
30
- this.addButton(button);
31
- });
32
- }
33
- destroy() {
34
- this._cardView.setOverlay(null);
35
- this._stopper.destroy();
36
- }
37
- getStopper() {
38
- return this._stopper;
39
- }
40
- addButton(button) {
41
- const {
42
- downloadButton,
43
- buttonContainer
44
- } = this._p.elements;
45
- if (!buttonContainer) throw new Error('Missing buttonContainer, can not add button');
46
- const el = document.createElement('button');
47
- el.className = 'inboxsdk__attachment_overlay_button';
48
- el.addEventListener('click', event => {
49
- event.stopPropagation();
50
- event.preventDefault();
51
- if (button.onClick) {
52
- button.onClick({
53
- getDownloadURL: () => this.getDownloadURL()
54
- });
55
- }
56
- });
57
- el.innerHTML = (0, _autoHtml.default)`
58
- <img src="${button.iconUrl}">
59
- `;
60
- el.setAttribute('data-tooltip-delay', '500');
61
- el.setAttribute('data-tooltip-unhoverable', 'true');
62
- if (downloadButton) {
63
- el.setAttribute('data-tooltip-class', downloadButton.getAttribute('data-tooltip-class') || '');
64
- el.setAttribute('data-tooltip-align', downloadButton.getAttribute('data-tooltip-align') || '');
65
- }
66
- el.setAttribute('aria-label', button.tooltip);
67
- el.setAttribute('data-tooltip', button.tooltip);
68
- buttonContainer.insertBefore(el, buttonContainer.lastElementChild);
69
- this._stopper.onValue(() => {
70
- el.remove();
71
- });
72
- }
73
- async getDownloadURL() {
74
- const {
75
- downloadButton
76
- } = this._p.elements;
77
- if (!downloadButton) throw new Error('Could not find download button element');
78
- const src = await this._driver.getPageCommunicator().clickAndGetNewIframeSrc(downloadButton);
79
- const {
80
- xhr
81
- } = await (0, _ajax.default)({
82
- url: src,
83
- method: 'HEAD'
84
- });
85
- const url = xhr.responseURL;
86
- return url;
87
- }
88
- }
89
- var _default = (0, _ud.defn)(module, InboxAttachmentOverlayView);
90
- exports.default = _default;
@@ -1,46 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _ud = require("ud");
10
- var _once = _interopRequireDefault(require("lodash/once"));
11
- var _kefir = _interopRequireDefault(require("kefir"));
12
- var _kefirStopper = _interopRequireDefault(require("kefir-stopper"));
13
- var _makeMutationObserverChunkedStream = _interopRequireDefault(require("../../../lib/dom/make-mutation-observer-chunked-stream"));
14
- class InboxChatSidebarView {
15
- constructor(el, p) {
16
- (0, _defineProperty2.default)(this, "_stopper", (0, _kefirStopper.default)());
17
- (0, _defineProperty2.default)(this, "getModeStream", (0, _once.default)(() => {
18
- const parent = this._el.parentElement;
19
- return (0, _makeMutationObserverChunkedStream.default)(parent, {
20
- attributes: true,
21
- attributeFilter: ['class']
22
- }).toProperty(() => null).map(() => this.getMode()).skipDuplicates().takeUntilBy(this._stopper);
23
- }));
24
- this._el = el;
25
- this._p = p;
26
- }
27
- getStopper() {
28
- return this._stopper;
29
- }
30
- destroy() {
31
- this._stopper.destroy();
32
- }
33
- getMode() {
34
- const parent = this._el.parentElement;
35
- const parentComputedStyle = window.getComputedStyle(parent);
36
- if (parseInt(parentComputedStyle.bottom) === 0) {
37
- return 'SIDEBAR';
38
- }
39
- if (parseInt(parentComputedStyle.top) > 0) {
40
- return 'DROPDOWN';
41
- }
42
- return 'HIDDEN';
43
- }
44
- }
45
- var _default = (0, _ud.defn)(module, InboxChatSidebarView);
46
- exports.default = _default;
@@ -1,116 +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 _includes = _interopRequireDefault(require("lodash/includes"));
9
- var _ud = require("ud");
10
- var _kefir = _interopRequireDefault(require("kefir"));
11
- var _fromEventTargetCapture = _interopRequireDefault(require("../../../lib/from-event-target-capture"));
12
- var _insertElementInOrder = _interopRequireDefault(require("../../../lib/dom/insert-element-in-order"));
13
- var _dropdownView = _interopRequireDefault(require("../../../widgets/buttons/dropdown-view"));
14
- var _inboxDropdownView = _interopRequireDefault(require("./inbox-dropdown-view"));
15
- var _inboxTooltipView = _interopRequireDefault(require("./inbox-tooltip-view"));
16
- let insertionOrderHint = 0;
17
- class InboxComposeButtonView {
18
- constructor(composeView, buttonDescriptor, groupOrderHint, extraOnClickOptions) {
19
- this._tooltip = null;
20
- this._composeView = composeView;
21
- const buttonEl = this._buttonEl = document.createElement('div');
22
- buttonEl.setAttribute('role', 'button');
23
- buttonEl.setAttribute('data-insertion-order-hint', String(insertionOrderHint++));
24
- buttonEl.setAttribute('data-group-order-hint', groupOrderHint);
25
- buttonEl.tabIndex = 0;
26
- buttonEl.className = 'inboxsdk__button_icon';
27
- const img = document.createElement('img');
28
- img.className = 'inboxsdk__button_iconImg';
29
- let onClick = ignored => {};
30
- let hasDropdown = false;
31
- let dropdown = null;
32
- _kefir.default.merge([_kefir.default.fromEvents(buttonEl, 'click'), (0, _fromEventTargetCapture.default)(buttonEl, 'keyup').filter(e => (0, _includes.default)([32 /*space*/, 13 /*enter*/], e.which))]).onValue(event => {
33
- event.preventDefault();
34
- event.stopPropagation();
35
- this.closeTooltip();
36
- if (hasDropdown) {
37
- if (dropdown) {
38
- dropdown.close();
39
- return;
40
- } else {
41
- this._buttonEl.classList.add('inboxsdk__active');
42
- dropdown = new _dropdownView.default(new _inboxDropdownView.default(), buttonEl);
43
- dropdown.setPlacementOptions({
44
- position: 'top',
45
- hAlign: 'left',
46
- vAlign: 'bottom',
47
- buffer: 5
48
- });
49
- dropdown.on('destroy', () => {
50
- this._buttonEl.classList.remove('inboxsdk__active');
51
- dropdown = null;
52
- });
53
- }
54
- }
55
- onClick(Object.assign({
56
- dropdown
57
- }, extraOnClickOptions));
58
- });
59
- let lastOrderHint = null;
60
- buttonDescriptor.takeUntilBy(composeView.getStopper()).onValue(buttonDescriptor => {
61
- if (!buttonDescriptor) {
62
- buttonEl.remove();
63
- lastOrderHint = null;
64
- return;
65
- }
66
- hasDropdown = buttonDescriptor.hasDropdown;
67
- buttonEl.title = buttonDescriptor.title;
68
- buttonEl.className = 'inboxsdk__button_icon ' + (buttonDescriptor.iconClass || '');
69
- onClick = buttonDescriptor.onClick;
70
- if (buttonDescriptor.iconUrl) {
71
- img.src = buttonDescriptor.iconUrl;
72
- buttonEl.appendChild(img);
73
- } else {
74
- img.remove();
75
- }
76
- const orderHint = buttonDescriptor.orderHint || 0;
77
- if (lastOrderHint !== orderHint) {
78
- lastOrderHint = orderHint;
79
- buttonEl.setAttribute('data-order-hint', String(orderHint));
80
- (0, _insertElementInOrder.default)(composeView.getModifierButtonContainer(), buttonEl);
81
- }
82
- });
83
- composeView.getStopper().onValue(() => {
84
- this.closeTooltip();
85
- buttonEl.remove();
86
- if (dropdown) {
87
- dropdown.close();
88
- }
89
- });
90
- }
91
- showTooltip(tooltipDescriptor) {
92
- if (this._composeView.isInlineReplyForm()) {
93
- // In Inbox, if you haven't interacted with an inline compose yet, then
94
- // it will auto-close as soon as anything else including the tooltip is
95
- // interacted with. Focusing the inline compose is enough to make Inbox
96
- // think it's been interacted with and to avoid that behavior.
97
- this._composeView.getElement().focus();
98
- }
99
- if (this._tooltip) {
100
- this.closeTooltip();
101
- }
102
- const tooltip = this._tooltip = new _inboxTooltipView.default(this._buttonEl, tooltipDescriptor);
103
- tooltip.getStopper().onValue(() => {
104
- if (this._tooltip === tooltip) {
105
- this._tooltip = null;
106
- }
107
- });
108
- }
109
- closeTooltip() {
110
- if (this._tooltip) {
111
- this._tooltip.destroy();
112
- }
113
- }
114
- }
115
- var _default = (0, _ud.defn)(module, InboxComposeButtonView);
116
- exports.default = _default;