@inboxsdk/core 0.2.29-aplha.3 → 1.0.0
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.
- package/inboxsdk.js +35 -35
- package/inboxsdk.js.map +1 -1
- package/package.json +2 -1
- package/src/inboxsdk.d.ts +3 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.js +3 -4
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.d.ts +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.js +13 -2
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.d.ts +3 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +42 -43
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts +5 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.js +10 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.d.ts +6 -1
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.js +33 -21
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts +3 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.js +8 -2
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.d.ts +5 -12
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.js +29 -18
- package/src/platform-implementation-js/namespaces/app-menu.d.ts +14 -5
- package/src/platform-implementation-js/namespaces/app-menu.d.ts.map +1 -1
- package/src/platform-implementation-js/views/app-menu-item-view.d.ts.map +1 -1
- package/src/platform-implementation-js/views/app-menu-item-view.js +53 -6
- package/src/platform-implementation-js/views/collapsible-panel-view.d.ts.map +1 -1
- package/src/platform-implementation-js/views/collapsible-panel-view.js +70 -23
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inboxsdk/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Library for building browser extensions for Gmail",
|
|
5
5
|
"main": "inboxsdk.js",
|
|
6
6
|
"author": "Streak",
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"@types/kefir": "^3.8.6",
|
|
32
32
|
"@types/node": "*",
|
|
33
33
|
"asap": "^2.0.3",
|
|
34
|
+
"fast-deep-equal": "^3.1.3",
|
|
34
35
|
"kefir-cast": "^3.3.0",
|
|
35
36
|
"sha.js": "^2.4.0",
|
|
36
37
|
"tag-tree": "^1.0.0",
|
package/src/inboxsdk.d.ts
CHANGED
|
@@ -106,6 +106,9 @@ export interface ButterBar {
|
|
|
106
106
|
// export interface DropdownButtonAccessoryDescriptor {}
|
|
107
107
|
|
|
108
108
|
export { AppMenu };
|
|
109
|
+
export type { AppMenuItemView } from './platform-implementation-js/views/app-menu-item-view';
|
|
110
|
+
export type { AppMenuItemPanelDescriptor } from './platform-implementation-js/namespaces/app-menu';
|
|
111
|
+
export type { CollapsiblePanelView } from './platform-implementation-js/views/collapsible-panel-view';
|
|
109
112
|
|
|
110
113
|
export interface NativeNavItemView extends EventEmitter {
|
|
111
114
|
addNavItem(descriptor: NavItemDescriptor): NavItemView;
|
package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-app-menu-item.d.ts","sourceRoot":"","sources":["../../../../../../../src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAI1C,wBAAsB,cAAc,CAClC,MAAM,EAAE,WAAW,EACnB,kBAAkB,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"add-app-menu-item.d.ts","sourceRoot":"","sources":["../../../../../../../src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAI1C,wBAAsB,cAAc,CAClC,MAAM,EAAE,WAAW,EACnB,kBAAkB,EAAE,qBAAqB,6CAyB1C"}
|
|
@@ -3,12 +3,11 @@ import GmailElementGetter from '../gmail-element-getter';
|
|
|
3
3
|
import Logger from '../../../lib/logger';
|
|
4
4
|
export async function addAppMenuItem(driver, menuItemDescriptor) {
|
|
5
5
|
const appMenuInjectionContainer = await GmailElementGetter.getAppMenuAsync();
|
|
6
|
-
const gmailAppMenuItemView = new GmailAppMenuItemView(driver);
|
|
7
|
-
gmailAppMenuItemView.setMenuItemDescriptor(menuItemDescriptor);
|
|
6
|
+
const gmailAppMenuItemView = new GmailAppMenuItemView(driver, menuItemDescriptor);
|
|
8
7
|
try {
|
|
9
|
-
if (!appMenuInjectionContainer
|
|
8
|
+
if (!appMenuInjectionContainer)
|
|
10
9
|
return;
|
|
11
|
-
const siblingElement = menuItemDescriptor.insertIndex
|
|
10
|
+
const siblingElement = Number.isInteger(menuItemDescriptor.insertIndex)
|
|
12
11
|
? appMenuInjectionContainer.childNodes[menuItemDescriptor.insertIndex] ??
|
|
13
12
|
null
|
|
14
13
|
: null;
|
package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AppMenuItemPanelDescriptor } from '../../../namespaces/app-menu';
|
|
2
2
|
import { CollapsiblePanelView } from '../../../views/collapsible-panel-view';
|
|
3
3
|
import GmailDriver from '../gmail-driver';
|
|
4
|
-
export declare function addCollapsiblePanel(driver: GmailDriver, panelDescriptor: AppMenuItemPanelDescriptor): Promise<CollapsiblePanelView | undefined>;
|
|
4
|
+
export declare function addCollapsiblePanel(driver: GmailDriver, panelDescriptor: AppMenuItemPanelDescriptor, insertIndex?: number): Promise<CollapsiblePanelView | undefined>;
|
|
5
5
|
//# sourceMappingURL=add-collapsible-panel.d.ts.map
|
package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-collapsible-panel.d.ts","sourceRoot":"","sources":["../../../../../../../src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAI1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAE1C,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,WAAW,EACnB,eAAe,EAAE,0BAA0B,
|
|
1
|
+
{"version":3,"file":"add-collapsible-panel.d.ts","sourceRoot":"","sources":["../../../../../../../src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAI1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAE1C,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,WAAW,EACnB,eAAe,EAAE,0BAA0B,EAC3C,WAAW,CAAC,EAAE,MAAM,6CAmCrB"}
|
package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.js
CHANGED
|
@@ -3,7 +3,7 @@ import GmailElementGetter from '../gmail-element-getter';
|
|
|
3
3
|
import waitFor from '../../../lib/wait-for';
|
|
4
4
|
import Logger from '../../../lib/logger';
|
|
5
5
|
import { CollapsiblePanelView } from '../../../views/collapsible-panel-view';
|
|
6
|
-
export async function addCollapsiblePanel(driver, panelDescriptor) {
|
|
6
|
+
export async function addCollapsiblePanel(driver, panelDescriptor, insertIndex) {
|
|
7
7
|
const injectionContainer = await waitForAppMenuParentReady();
|
|
8
8
|
const collapsiblePanelView = new CollapsiblePanelView(driver, panelDescriptor);
|
|
9
9
|
if (!injectionContainer || !collapsiblePanelView.element)
|
|
@@ -11,7 +11,18 @@ export async function addCollapsiblePanel(driver, panelDescriptor) {
|
|
|
11
11
|
const appMenu = await GmailElementGetter.getAppMenuAsync();
|
|
12
12
|
if (!appMenu)
|
|
13
13
|
return;
|
|
14
|
-
|
|
14
|
+
const panelNodes = injectionContainer.querySelectorAll(CollapsiblePanelView.elementSelectors.NATIVE) ?? [];
|
|
15
|
+
const siblingElement = Number.isInteger(insertIndex)
|
|
16
|
+
? panelNodes[insertIndex] ?? null
|
|
17
|
+
: null;
|
|
18
|
+
if (siblingElement) {
|
|
19
|
+
siblingElement.insertAdjacentElement('beforebegin', collapsiblePanelView.element);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
[...panelNodes]
|
|
23
|
+
.at(-1)
|
|
24
|
+
?.insertAdjacentElement('afterend', collapsiblePanelView.element);
|
|
25
|
+
}
|
|
15
26
|
return collapsiblePanelView;
|
|
16
27
|
}
|
|
17
28
|
const waitForAppMenuParentReady = once(async () => {
|
package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gmail-load-event.d.ts","sourceRoot":"","sources":["../../../../../../../src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,WAAW,MAAM,iBAAiB,CAAC;AAO/C,wBAA8B,cAAc,CAAC,MAAM,EAAE,WAAW,iBA2C/D"}
|
|
@@ -1,43 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
}
|
|
1
|
+
/* @flow */
|
|
2
|
+
import isIntegratedViewGmail, { isCollapsiblePanelHidden, } from './isIntegratedViewGmail';
|
|
3
|
+
import { waitForMenuReady } from './add-nav-item';
|
|
4
|
+
import { isDarkTheme } from './track-gmail-styles';
|
|
5
|
+
export default async function gmailLoadEvent(driver) {
|
|
6
|
+
const pageCommunicator = driver.getPageCommunicator();
|
|
7
|
+
const isConversationViewDisabled = await pageCommunicator.isConversationViewDisabled();
|
|
8
|
+
await waitForMenuReady();
|
|
9
|
+
driver.getLogger().eventSite('gmailSettings', {
|
|
10
|
+
isGmailIntegratedView: isIntegratedViewGmail(),
|
|
11
|
+
isCollapsiblePanelHidden: isCollapsiblePanelHidden(),
|
|
12
|
+
isDarkTheme: isDarkTheme(),
|
|
13
|
+
screenWidth: window.screen?.width,
|
|
14
|
+
screenHeight: window.screen?.height,
|
|
15
|
+
windowWidth: window.innerWidth,
|
|
16
|
+
windowHeight: window.innerHeight,
|
|
17
|
+
language: pageCommunicator.getUserLanguage(),
|
|
18
|
+
isUsingSyncAPI: pageCommunicator.isUsingSyncAPI(),
|
|
19
|
+
previewPane: pageCommunicator.getUserOriginalPreviewPaneMode(),
|
|
20
|
+
isConversationViewDisabled,
|
|
21
|
+
wasAccountSwitcherReadyAtStart: driver.getEnvData().wasAccountSwitcherReadyAtStart,
|
|
22
|
+
timings: {
|
|
23
|
+
...{
|
|
24
|
+
responseStart: global.performance?.timing.responseStart,
|
|
25
|
+
responseEnd: global.performance?.timing.responseEnd,
|
|
26
|
+
domLoading: global.performance?.timing.domLoading,
|
|
27
|
+
domInteractive: global.performance?.timing.domInteractive,
|
|
28
|
+
domComplete: global.performance?.timing.domComplete,
|
|
29
|
+
domContentLoadedEventStart: global.performance?.timing.domContentLoadedEventStart,
|
|
30
|
+
domContentLoadedEventEnd: global.performance?.timing.domContentLoadedEventEnd,
|
|
31
|
+
domainLookupEnd: global.performance?.timing.domainLookupEnd,
|
|
32
|
+
domainLookupStart: global.performance?.timing.domainLookupStart,
|
|
33
|
+
fetchStart: global.performance?.timing.fetchStart,
|
|
34
|
+
loadEventStart: global.performance?.timing.loadEventStart,
|
|
35
|
+
loadEventEnd: global.performance?.timing.loadEventEnd,
|
|
36
|
+
navigationStart: global.performance?.timing.navigationStart,
|
|
37
|
+
requestStart: global.performance?.timing.requestStart,
|
|
38
|
+
},
|
|
39
|
+
...driver.getTimings(),
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
}
|
package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* https://support.google.com/mail/answer/11555490
|
|
3
|
+
*/
|
|
1
4
|
export default function isIntegratedViewGmail(): boolean;
|
|
5
|
+
/** @returns null if the app menu is configured off */
|
|
6
|
+
export declare function isCollapsiblePanelHidden(): boolean | null;
|
|
2
7
|
//# sourceMappingURL=isIntegratedViewGmail.d.ts.map
|
package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isIntegratedViewGmail.d.ts","sourceRoot":"","sources":["../../../../../../../src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,qBAAqB,IAAI,OAAO,CAGvD"}
|
|
1
|
+
{"version":3,"file":"isIntegratedViewGmail.d.ts","sourceRoot":"","sources":["../../../../../../../src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,qBAAqB,IAAI,OAAO,CAGvD;AAED,sDAAsD;AACtD,wBAAgB,wBAAwB,IAAI,OAAO,GAAG,IAAI,CAMzD"}
|
package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.js
CHANGED
|
@@ -1,4 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* https://support.google.com/mail/answer/11555490
|
|
3
|
+
*/
|
|
1
4
|
export default function isIntegratedViewGmail() {
|
|
2
5
|
const nav = document.querySelector('div[role=navigation]');
|
|
3
6
|
return Boolean(nav?.firstElementChild?.classList.contains('Xa'));
|
|
4
7
|
}
|
|
8
|
+
/** @returns null if the app menu is configured off */
|
|
9
|
+
export function isCollapsiblePanelHidden() {
|
|
10
|
+
if (!isIntegratedViewGmail()) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
return document.querySelector('div[role=navigation].aBA') != null;
|
|
14
|
+
}
|
package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.d.ts
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
export
|
|
1
|
+
export declare function isDarkTheme(): boolean;
|
|
2
|
+
export declare const stylesStream: import("kefir-bus").Bus<{
|
|
3
|
+
type: 'theme';
|
|
4
|
+
isDarkMode: boolean;
|
|
5
|
+
}, unknown>;
|
|
6
|
+
export default function trackGmailStyles(): Promise<void>;
|
|
2
7
|
//# sourceMappingURL=track-gmail-styles.d.ts.map
|
package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"track-gmail-styles.d.ts","sourceRoot":"","sources":["../../../../../../../src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"track-gmail-styles.d.ts","sourceRoot":"","sources":["../../../../../../../src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.ts"],"names":[],"mappings":"AA8BA,wBAAgB,WAAW,IAAI,OAAO,CAyBrC;AAED,eAAO,MAAM,YAAY;UACf,OAAO;gBAAc,OAAO;WAEnC,CAAC;AAEJ,wBAA8B,gBAAgB,kBAmE7C"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import kefirBus from 'kefir-bus';
|
|
1
2
|
import Logger from '../../../lib/logger';
|
|
2
3
|
import waitFor from '../../../lib/wait-for';
|
|
3
4
|
import GmailElementGetter from '../gmail-element-getter';
|
|
@@ -21,10 +22,11 @@ function getDensity() {
|
|
|
21
22
|
return 'compact';
|
|
22
23
|
}
|
|
23
24
|
}
|
|
24
|
-
|
|
25
|
+
const navItemSelector = '.aio';
|
|
26
|
+
export function isDarkTheme() {
|
|
25
27
|
// get the color of the left-nav-menu entries to determine whether Gmail is
|
|
26
28
|
// in dark theme mode.
|
|
27
|
-
const navItem = document.querySelector(
|
|
29
|
+
const navItem = document.querySelector(navItemSelector);
|
|
28
30
|
if (!navItem) {
|
|
29
31
|
Logger.error(new Error('Failed to find nav item'));
|
|
30
32
|
return false;
|
|
@@ -45,7 +47,8 @@ function isDarkTheme() {
|
|
|
45
47
|
}
|
|
46
48
|
return r > 128;
|
|
47
49
|
}
|
|
48
|
-
export
|
|
50
|
+
export const stylesStream = kefirBus();
|
|
51
|
+
export default async function trackGmailStyles() {
|
|
49
52
|
if (document.head.hasAttribute('data-inboxsdk-gmail-style-tracker') ||
|
|
50
53
|
GmailElementGetter.isStandalone()) {
|
|
51
54
|
return;
|
|
@@ -71,25 +74,34 @@ export default function trackGmailStyles() {
|
|
|
71
74
|
else {
|
|
72
75
|
document.body.classList.remove('inboxsdk__gmail_dark_theme');
|
|
73
76
|
}
|
|
77
|
+
stylesStream.emit({
|
|
78
|
+
type: 'theme',
|
|
79
|
+
isDarkMode: newDarkTheme,
|
|
80
|
+
});
|
|
74
81
|
}
|
|
75
82
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
const options = {
|
|
82
|
-
characterData: true,
|
|
83
|
-
childList: true,
|
|
84
|
-
};
|
|
85
|
-
Array.from(document.styleSheets).forEach((sheet) => {
|
|
86
|
-
if (sheet.ownerNode.tagName == 'STYLE') {
|
|
87
|
-
observer.observe(sheet.ownerNode, options);
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
checkStyles();
|
|
91
|
-
})
|
|
92
|
-
.catch((err) => {
|
|
83
|
+
try {
|
|
84
|
+
await waitFor(() => document.querySelector('.TO .TN') &&
|
|
85
|
+
document.querySelector(navItemSelector));
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
93
88
|
Logger.error(err);
|
|
94
|
-
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
// Gmail changes an inline <style> sheet when the display density changes.
|
|
92
|
+
// Watch for changes to all <style> elements.
|
|
93
|
+
const observer = new MutationObserver(checkStyles);
|
|
94
|
+
const options = {
|
|
95
|
+
characterData: true,
|
|
96
|
+
childList: true,
|
|
97
|
+
};
|
|
98
|
+
for (const sheet of document.styleSheets) {
|
|
99
|
+
if (!(sheet.ownerNode instanceof Element)) {
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
if (sheet.ownerNode.tagName == 'STYLE') {
|
|
103
|
+
observer.observe(sheet.ownerNode, options);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
checkStyles();
|
|
95
107
|
}
|
|
@@ -18,6 +18,7 @@ import GmailSupportItemView, {
|
|
|
18
18
|
import { AppMenuItemDescriptor } from '../../namespaces/app-menu';
|
|
19
19
|
import { GmailAppMenuItemView } from './views/gmail-app-menu-item-view';
|
|
20
20
|
import { RouteView } from '../../../inboxsdk';
|
|
21
|
+
import { EnvData } from '../../platform-implementation';
|
|
21
22
|
|
|
22
23
|
type GmailThreadView = any;
|
|
23
24
|
type GmailMessageView = any;
|
|
@@ -28,6 +29,8 @@ type GmailMoleViewDriver = any;
|
|
|
28
29
|
type GmailBackdrop = any;
|
|
29
30
|
|
|
30
31
|
export default class GmailDriver implements Driver {
|
|
32
|
+
getEnvData(): EnvData;
|
|
33
|
+
getTimings(): { [ix: string]: number | undefined | null };
|
|
31
34
|
public onready: Promise<void>;
|
|
32
35
|
public isUsingSyncAPI(): boolean;
|
|
33
36
|
public getLogger(): Logger;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gmail-element-getter.d.ts","sourceRoot":"","sources":["../../../../../../src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAA+B,EAC7B,mBAAmB,EACpB,MAAM,yCAAyC,CAAC;AAmBjD,QAAA,MAAM,kBAAkB;yBACD,WAAW,GAAG,IAAI;uCAcJ,WAAW,GAAG,IAAI;kDAKP,WAAW,GAAG,IAAI;+CAKrB,WAAW,GAAG,IAAI;wBAIzC,WAAW,GAAG,IAAI;iCAOT,WAAW,GAAG,IAAI;gCAInB,WAAW,GAAG,SAAS,GAAG,IAAI;2CA8BnB,WAAW,GAAG,IAAI;iDAIZ,MAAM,UAAU,CAC3D,mBAAmB,EACnB,KAAK,CACN;uBAgBkB,WAAW,GAAG,IAAI;kCAIP,WAAW,GAAG,IAAI;+
|
|
1
|
+
{"version":3,"file":"gmail-element-getter.d.ts","sourceRoot":"","sources":["../../../../../../src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAA+B,EAC7B,mBAAmB,EACpB,MAAM,yCAAyC,CAAC;AAmBjD,QAAA,MAAM,kBAAkB;yBACD,WAAW,GAAG,IAAI;uCAcJ,WAAW,GAAG,IAAI;kDAKP,WAAW,GAAG,IAAI;+CAKrB,WAAW,GAAG,IAAI;wBAIzC,WAAW,GAAG,IAAI;iCAOT,WAAW,GAAG,IAAI;gCAInB,WAAW,GAAG,SAAS,GAAG,IAAI;2CA8BnB,WAAW,GAAG,IAAI;iDAIZ,MAAM,UAAU,CAC3D,mBAAmB,EACnB,KAAK,CACN;uBAgBkB,WAAW,GAAG,IAAI;kCAIP,WAAW,GAAG,IAAI;+BAUrB,WAAW,GAAG,IAAI;0CAIP,WAAW,GAAG,IAAI;+BAI7B,WAAW,GAAG,IAAI;+CAQrC,GAAG,KACR,MAAM,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC;qBAItB,WAAW,GAAG,IAAI;+BAOR,OAAO;;;;;;uDAqFiB,WAAW,GAAG,IAAI;mDAItB,WAAW,GAAG,IAAI;0BAQ3C,WAAW,EAAE;0BAIb,WAAW,GAAG,IAAI;sBAItB,gBAAgB,GAAG,IAAI;qCAMR,WAAW,GAAG,IAAI;kCAIrB,WAAW,GAAG,IAAI;2BAIzB,WAAW,GAAG,IAAI;iCAWZ,WAAW,GAAG,IAAI;yBAI1B,WAAW;8BAIN,WAAW,GAAG,IAAI;sBAM1B,OAAO;mBAaV,OAAO;qBAIL,OAAO;oBAIR,OAAO;iCAIM,OAAO;gCAOR,OAAO;;qCASJ,WAAW,GAAG,IAAI;;gCAKrB,QAAQ,IAAI,CAAC;CAG1C,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -89,6 +89,9 @@ const GmailElementGetter = {
|
|
|
89
89
|
return document.querySelector('.aeN .aj5.J-KU-Jg');
|
|
90
90
|
},
|
|
91
91
|
getLeftNavContainerElement() {
|
|
92
|
+
if (this.getAppMenu()) {
|
|
93
|
+
return this.getAppMenuContainer()?.querySelector('.aqn.aIH') ?? null;
|
|
94
|
+
}
|
|
92
95
|
if (isIntegratedViewGmail()) {
|
|
93
96
|
return document.querySelector('div[role=navigation] + div.aqn');
|
|
94
97
|
}
|
|
@@ -166,8 +169,11 @@ const GmailElementGetter = {
|
|
|
166
169
|
}),
|
|
167
170
|
isAppBurgerMenuOpen() {
|
|
168
171
|
return (document
|
|
169
|
-
.querySelector('
|
|
170
|
-
?.getAttribute('aria-expanded') === 'true' ??
|
|
172
|
+
.querySelector('header[role="banner"] > div > div > div[aria-expanded]')
|
|
173
|
+
?.getAttribute('aria-expanded') === 'true' ??
|
|
174
|
+
// Default to true if we can't find the element because
|
|
175
|
+
// the majority of users seem to favor that version.
|
|
176
|
+
false);
|
|
171
177
|
},
|
|
172
178
|
getAppMenuContainer() {
|
|
173
179
|
return document.querySelector('.aqk.aql.bkL');
|
|
@@ -10,6 +10,7 @@ export type MessageEvents = {
|
|
|
10
10
|
export declare const NATIVE_CLASS: "Xa";
|
|
11
11
|
export declare const INBOXSDK_CLASS: "inboxsdk__appMenuItem";
|
|
12
12
|
export declare const ELEMENT_CLASS: "Xa inboxsdk__appMenuItem";
|
|
13
|
+
export declare const ICON_ELEMENT_SELECTOR: ".V6.CL";
|
|
13
14
|
declare const GmailAppMenuItemView_base: new () => TypedEventEmitter<MessageEvents>;
|
|
14
15
|
export declare class GmailAppMenuItemView extends GmailAppMenuItemView_base {
|
|
15
16
|
#private;
|
|
@@ -17,19 +18,11 @@ export declare class GmailAppMenuItemView extends GmailAppMenuItemView_base {
|
|
|
17
18
|
readonly HOVER: "aIk";
|
|
18
19
|
readonly ACTIVE: "apV";
|
|
19
20
|
};
|
|
20
|
-
get element(): HTMLElement
|
|
21
|
-
|
|
22
|
-
get menuItemDescriptor(): AppMenuItemDescriptor
|
|
23
|
-
constructor(driver: GmailDriver);
|
|
21
|
+
get element(): HTMLElement;
|
|
22
|
+
set menuItemDescriptor(newMenuItemDescriptor: AppMenuItemDescriptor);
|
|
23
|
+
get menuItemDescriptor(): AppMenuItemDescriptor;
|
|
24
|
+
constructor(driver: GmailDriver, menuItemDescriptor: AppMenuItemDescriptor);
|
|
24
25
|
remove(): void;
|
|
25
|
-
/**
|
|
26
|
-
* @internal
|
|
27
|
-
*/
|
|
28
|
-
blur(): void;
|
|
29
|
-
/**
|
|
30
|
-
* @internal
|
|
31
|
-
*/
|
|
32
|
-
hover(): void;
|
|
33
26
|
}
|
|
34
27
|
export {};
|
|
35
28
|
//# sourceMappingURL=gmail-app-menu-item-view.d.ts.map
|
package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gmail-app-menu-item-view.d.ts","sourceRoot":"","sources":["../../../../../../../src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAE1C,OAAO,iBAAiB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"gmail-app-menu-item-view.d.ts","sourceRoot":"","sources":["../../../../../../../src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAE1C,OAAO,iBAAiB,MAAM,eAAe,CAAC;AAO9C,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAC9B,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,YAAY,MAAgB,CAAC;AAC1C,eAAO,MAAM,cAAc,yBAAmC,CAAC;AAC/D,eAAO,MAAM,aAAa,4BAA+C,CAAC;AAI1E,eAAO,MAAM,qBAAqB,UAAoB,CAAC;mDAGc,kBAAkB,aAAa,CAAC;AAArG,qBAAa,oBAAqB,SAAQ,yBAA4D;;IACpG,MAAM,CAAC,UAAU;;;MAGN;IAOX,IAAI,OAAO,gBAEV;IAED,IAAI,kBAAkB,CAAC,qBAAqB,uBAAA,EAG3C;IAED,IAAI,kBAAkB,0BAErB;gBAEW,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,qBAAqB;IAwB1E,MAAM;CA6GP"}
|
|
@@ -2,12 +2,14 @@ import querySelector from '../../../lib/dom/querySelectorOrFail';
|
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
3
|
import cx from 'classnames';
|
|
4
4
|
import GmailElementGetter from '../gmail-element-getter';
|
|
5
|
+
import { stylesStream } from '../gmail-driver/track-gmail-styles';
|
|
6
|
+
import isEqual from 'fast-deep-equal';
|
|
5
7
|
export const NATIVE_CLASS = 'Xa';
|
|
6
8
|
export const INBOXSDK_CLASS = 'inboxsdk__appMenuItem';
|
|
7
9
|
export const ELEMENT_CLASS = `${NATIVE_CLASS} ${INBOXSDK_CLASS}`;
|
|
8
10
|
const ICON_ELEMENT_CLASS = 'V6 CL';
|
|
9
11
|
const HEADING_ELEMENT_CLASS = 'apW';
|
|
10
|
-
const ICON_ELEMENT_SELECTOR = '.V6.CL';
|
|
12
|
+
export const ICON_ELEMENT_SELECTOR = '.V6.CL';
|
|
11
13
|
const HEADING_ELEMENT_SELECTOR = '.apW';
|
|
12
14
|
export class GmailAppMenuItemView extends EventEmitter {
|
|
13
15
|
static elementCss = {
|
|
@@ -21,17 +23,26 @@ export class GmailAppMenuItemView extends EventEmitter {
|
|
|
21
23
|
get element() {
|
|
22
24
|
return this.#element;
|
|
23
25
|
}
|
|
24
|
-
|
|
26
|
+
set menuItemDescriptor(newMenuItemDescriptor) {
|
|
25
27
|
this.#menuItemDescriptor = newMenuItemDescriptor;
|
|
26
28
|
this.#update();
|
|
27
29
|
}
|
|
28
30
|
get menuItemDescriptor() {
|
|
29
31
|
return this.#menuItemDescriptor;
|
|
30
32
|
}
|
|
31
|
-
constructor(driver) {
|
|
33
|
+
constructor(driver, menuItemDescriptor) {
|
|
32
34
|
super();
|
|
33
35
|
this.#element = this.#setupElement();
|
|
34
36
|
this.#driver = driver;
|
|
37
|
+
this.#menuItemDescriptor = menuItemDescriptor;
|
|
38
|
+
this.#update();
|
|
39
|
+
stylesStream
|
|
40
|
+
.skipDuplicates((a, b) => isEqual(a, b))
|
|
41
|
+
.onValue(({ type }) => {
|
|
42
|
+
if (type === 'theme') {
|
|
43
|
+
this.#update();
|
|
44
|
+
}
|
|
45
|
+
});
|
|
35
46
|
driver.getStopper().onValue(() => this.remove());
|
|
36
47
|
this.#element.addEventListener('click', (e) => this.#onClick(e));
|
|
37
48
|
this.#element.addEventListener('mouseleave', this.#onBlur);
|
|
@@ -44,21 +55,6 @@ export class GmailAppMenuItemView extends EventEmitter {
|
|
|
44
55
|
this.element?.remove();
|
|
45
56
|
this.emit('destroy');
|
|
46
57
|
}
|
|
47
|
-
/**
|
|
48
|
-
* @internal
|
|
49
|
-
*/
|
|
50
|
-
blur() {
|
|
51
|
-
this.element?.classList.remove(GmailAppMenuItemView.elementCss.HOVER);
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* @internal
|
|
55
|
-
*/
|
|
56
|
-
hover() {
|
|
57
|
-
if (this.element?.classList.contains(GmailAppMenuItemView.elementCss.ACTIVE)) {
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
this.element?.classList.add(GmailAppMenuItemView.elementCss.HOVER);
|
|
61
|
-
}
|
|
62
58
|
#setupElement() {
|
|
63
59
|
const element = document.createElement('div');
|
|
64
60
|
element.className = ELEMENT_CLASS;
|
|
@@ -82,6 +78,7 @@ export class GmailAppMenuItemView extends EventEmitter {
|
|
|
82
78
|
const headingElement = querySelector(element, HEADING_ELEMENT_SELECTOR);
|
|
83
79
|
headingElement.textContent = this.#menuItemDescriptor?.name ?? '';
|
|
84
80
|
}
|
|
81
|
+
static #preloadedIcons = new Set();
|
|
85
82
|
#updateIcon(element) {
|
|
86
83
|
const iconContainerEl = querySelector(element, ICON_ELEMENT_SELECTOR);
|
|
87
84
|
const { iconUrl, iconClassName } = this.#menuItemDescriptor ?? {};
|
|
@@ -89,8 +86,22 @@ export class GmailAppMenuItemView extends EventEmitter {
|
|
|
89
86
|
const rawTheme = GmailElementGetter.isDarkTheme()
|
|
90
87
|
? iconUrl.darkTheme
|
|
91
88
|
: iconUrl.lightTheme;
|
|
89
|
+
if (!rawTheme)
|
|
90
|
+
return;
|
|
92
91
|
const theme = typeof rawTheme === 'string' ? rawTheme : rawTheme.default;
|
|
93
92
|
const activeImg = typeof rawTheme === 'string' ? rawTheme : rawTheme.active;
|
|
93
|
+
// alleviate FOUC when switching between active and default icons
|
|
94
|
+
// https://stackoverflow.com/a/68521953/1924257
|
|
95
|
+
for (const url of [theme, activeImg]) {
|
|
96
|
+
if (GmailAppMenuItemView.#preloadedIcons.has(url))
|
|
97
|
+
continue;
|
|
98
|
+
GmailAppMenuItemView.#preloadedIcons.add(url);
|
|
99
|
+
var link = document.createElement('link');
|
|
100
|
+
link.rel = 'preload';
|
|
101
|
+
link.as = 'image';
|
|
102
|
+
link.href = url;
|
|
103
|
+
document.head.appendChild(link);
|
|
104
|
+
}
|
|
94
105
|
iconContainerEl.style.setProperty('--background-image', `url(${theme})`);
|
|
95
106
|
iconContainerEl.style.setProperty('--background-image--active', `url(${activeImg})`);
|
|
96
107
|
}
|
|
@@ -8,8 +8,8 @@ type ThemedIcon = string | {
|
|
|
8
8
|
export type AppMenuItemDescriptor = {
|
|
9
9
|
name: string;
|
|
10
10
|
iconUrl?: {
|
|
11
|
-
darkTheme
|
|
12
|
-
lightTheme
|
|
11
|
+
darkTheme?: ThemedIcon;
|
|
12
|
+
lightTheme?: ThemedIcon;
|
|
13
13
|
};
|
|
14
14
|
className?: string;
|
|
15
15
|
iconClassName?: string;
|
|
@@ -28,16 +28,25 @@ export type AppMenuItemDescriptor = {
|
|
|
28
28
|
*/
|
|
29
29
|
isRouteActive: (routeView: RouteView) => boolean;
|
|
30
30
|
};
|
|
31
|
+
/**
|
|
32
|
+
* In dark themes, Gmail has different colored primary buttons depending on hover or active state
|
|
33
|
+
*/
|
|
34
|
+
type PanelPrimaryButtonThemedIcon = string | {
|
|
35
|
+
panelHovered: string;
|
|
36
|
+
panelDefault: string;
|
|
37
|
+
};
|
|
31
38
|
export type AppMenuItemPanelDescriptor = {
|
|
32
39
|
className?: string;
|
|
33
|
-
/** In the form of HTML as a string.
|
|
40
|
+
/** In the form of HTML as a string.
|
|
41
|
+
*
|
|
42
|
+
* If this option is provided, the panel defaults to loading=true. */
|
|
34
43
|
loadingIcon?: string;
|
|
35
44
|
primaryButton?: {
|
|
36
45
|
name: string;
|
|
37
46
|
onClick: (e: MouseEvent) => void;
|
|
38
47
|
iconUrl?: {
|
|
39
|
-
darkTheme
|
|
40
|
-
lightTheme
|
|
48
|
+
darkTheme?: PanelPrimaryButtonThemedIcon;
|
|
49
|
+
lightTheme?: PanelPrimaryButtonThemedIcon;
|
|
41
50
|
};
|
|
42
51
|
className?: string;
|
|
43
52
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-menu.d.ts","sourceRoot":"","sources":["../../../../../src/platform-implementation-js/namespaces/app-menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,WAAW,MAAM,kCAAkC,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,KAAK,UAAU,GACX,MAAM,GACN;IACE,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEN,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE;QACR,SAAS,EAAE,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"app-menu.d.ts","sourceRoot":"","sources":["../../../../../src/platform-implementation-js/namespaces/app-menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,WAAW,MAAM,kCAAkC,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,KAAK,UAAU,GACX,MAAM,GACN;IACE,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEN,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,UAAU,CAAC;QACvB,UAAU,CAAC,EAAE,UAAU,CAAC;KACzB,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC;IAC1C,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC;IAC1C;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,EAAE,CAAC;IACjB;;;;OAIG;IACH,aAAa,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC;CAClD,CAAC;AAEF;;GAEG;AACH,KAAK,4BAA4B,GAC7B,MAAM,GACN;IACE,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEN,MAAM,MAAM,0BAA0B,GAAG;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;0EAEsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;QACjC,OAAO,CAAC,EAAE;YACR,SAAS,CAAC,EAAE,4BAA4B,CAAC;YACzC,UAAU,CAAC,EAAE,4BAA4B,CAAC;SAC3C,CAAC;QACF,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;;gBAGd,MAAM,EAAE,WAAW;IAI/B,WAAW,CAAC,kBAAkB,EAAE,qBAAqB,GAAG,eAAe;IAKjE,OAAO;CAId"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-menu-item-view.d.ts","sourceRoot":"","sources":["../../../../../src/platform-implementation-js/views/app-menu-item-view.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"app-menu-item-view.d.ts","sourceRoot":"","sources":["../../../../../src/platform-implementation-js/views/app-menu-item-view.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAYzC,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,WAAW,MAAM,kCAAkC,CAAC;AAK3D,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;8CA0C8D,aAAa,aAAa,CAAC;AAH3F;;GAEG;AACH,qBAAa,eAAgB,SAAQ,oBAAuD;;IA4Y1F,IAAI,kBAAkB,0BAErB;gBAQW,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,qBAAqB;IAsDpE,mBAAmB,CAAC,eAAe,EAAE,0BAA0B;IA2C/D,MAAM,CAAC,kBAAkB,EAAE,qBAAqB;IAMtD,MAAM;CAaP"}
|