@inboxsdk/core 0.2.29-alpha.2 → 0.2.29-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/inboxsdk.js +13 -13
- package/inboxsdk.js.map +1 -1
- package/package.json +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts +1 -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 +5 -0
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.d.ts +0 -4
- 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 +6 -16
- package/src/platform-implementation-js/namespaces/app-menu.d.ts +15 -2
- 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 +180 -165
- package/src/platform-implementation-js/views/collapsible-panel-view.d.ts +2 -1
- package/src/platform-implementation-js/views/collapsible-panel-view.d.ts.map +1 -1
- package/src/platform-implementation-js/views/collapsible-panel-view.js +6 -2
package/package.json
CHANGED
|
@@ -19,6 +19,7 @@ declare const GmailElementGetter: {
|
|
|
19
19
|
getMoleParent(): HTMLElement | null;
|
|
20
20
|
shouldAddNavItemsInline(): boolean;
|
|
21
21
|
getAppMenuAsync: () => Promise<HTMLElement | undefined>;
|
|
22
|
+
isAppBurgerMenuOpen(): boolean;
|
|
22
23
|
getAppMenuContainer(): HTMLElement | null;
|
|
23
24
|
getSeparateSectionNavItemMenuInjectionContainer(): HTMLElement | null;
|
|
24
25
|
getSameSectionNavItemMenuInjectionContainer(): HTMLElement | null;
|
|
@@ -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;AAUjD,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;+BAOrB,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
|
|
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;AAUjD,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;+BAOrB,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"}
|
|
@@ -164,6 +164,11 @@ const GmailElementGetter = {
|
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
166
|
}),
|
|
167
|
+
isAppBurgerMenuOpen() {
|
|
168
|
+
return (document
|
|
169
|
+
.querySelector('.gb_Hc[aria-expanded]')
|
|
170
|
+
?.getAttribute('aria-expanded') === 'true' ?? false);
|
|
171
|
+
},
|
|
167
172
|
getAppMenuContainer() {
|
|
168
173
|
return document.querySelector('.aqk.aql.bkL');
|
|
169
174
|
},
|
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;AAK9C,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;mDAOL,kBAAkB,aAAa,CAAC;AAArG,qBAAa,oBAAqB,SAAQ,yBAA4D;;IACpG,MAAM,CAAC,UAAU;;;MAGN;IAOX,IAAI,OAAO,4BAEV;IAED,qBAAqB,CAAC,qBAAqB,EAAE,qBAAqB;IAKlE,IAAI,kBAAkB,sCAErB;gBAEW,MAAM,EAAE,WAAW;
|
|
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;AAK9C,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;mDAOL,kBAAkB,aAAa,CAAC;AAArG,qBAAa,oBAAqB,SAAQ,yBAA4D;;IACpG,MAAM,CAAC,UAAU;;;MAGN;IAOX,IAAI,OAAO,4BAEV;IAED,qBAAqB,CAAC,qBAAqB,EAAE,qBAAqB;IAKlE,IAAI,kBAAkB,sCAErB;gBAEW,MAAM,EAAE,WAAW;IAc/B,MAAM;IAON;;OAEG;IACH,IAAI;IAIJ;;OAEG;IACH,KAAK;CAqFN"}
|
|
@@ -34,8 +34,8 @@ export class GmailAppMenuItemView extends EventEmitter {
|
|
|
34
34
|
this.#driver = driver;
|
|
35
35
|
driver.getStopper().onValue(() => this.remove());
|
|
36
36
|
this.#element.addEventListener('click', (e) => this.#onClick(e));
|
|
37
|
-
this.#element.addEventListener('mouseenter', this.#onHover);
|
|
38
37
|
this.#element.addEventListener('mouseleave', this.#onBlur);
|
|
38
|
+
querySelector(this.#element, ICON_ELEMENT_SELECTOR).addEventListener('mouseenter', this.#onHover);
|
|
39
39
|
}
|
|
40
40
|
remove() {
|
|
41
41
|
if (this.#destroyed)
|
|
@@ -59,19 +59,6 @@ export class GmailAppMenuItemView extends EventEmitter {
|
|
|
59
59
|
}
|
|
60
60
|
this.element?.classList.add(GmailAppMenuItemView.elementCss.HOVER);
|
|
61
61
|
}
|
|
62
|
-
/**
|
|
63
|
-
* @internal
|
|
64
|
-
*/
|
|
65
|
-
activate() {
|
|
66
|
-
this.element?.classList.remove(GmailAppMenuItemView.elementCss.HOVER);
|
|
67
|
-
this.element?.classList.add(GmailAppMenuItemView.elementCss.ACTIVE);
|
|
68
|
-
}
|
|
69
|
-
// /**
|
|
70
|
-
// * @internal
|
|
71
|
-
// */
|
|
72
|
-
// deactivate() {
|
|
73
|
-
// this.element?.classList.remove(GmailAppMenuItemView.elementCss.ACTIVE);
|
|
74
|
-
// }
|
|
75
62
|
#setupElement() {
|
|
76
63
|
const element = document.createElement('div');
|
|
77
64
|
element.className = ELEMENT_CLASS;
|
|
@@ -98,10 +85,13 @@ export class GmailAppMenuItemView extends EventEmitter {
|
|
|
98
85
|
const iconContainerEl = querySelector(element, ICON_ELEMENT_SELECTOR);
|
|
99
86
|
const { iconUrl, iconClassName } = this.#menuItemDescriptor ?? {};
|
|
100
87
|
if (iconUrl) {
|
|
101
|
-
const
|
|
88
|
+
const rawTheme = GmailElementGetter.isDarkTheme()
|
|
102
89
|
? iconUrl.darkTheme
|
|
103
90
|
: iconUrl.lightTheme;
|
|
91
|
+
const theme = typeof rawTheme === 'string' ? rawTheme : rawTheme.default;
|
|
92
|
+
const activeImg = typeof rawTheme === 'string' ? rawTheme : rawTheme.active;
|
|
104
93
|
iconContainerEl.style.setProperty('--background-image', `url(${theme})`);
|
|
94
|
+
iconContainerEl.style.setProperty('--background-image--active', `url(${activeImg})`);
|
|
105
95
|
}
|
|
106
96
|
iconContainerEl.className = cx(ICON_ELEMENT_CLASS, iconClassName);
|
|
107
97
|
}
|
|
@@ -113,7 +103,7 @@ export class GmailAppMenuItemView extends EventEmitter {
|
|
|
113
103
|
this.emit('click', e);
|
|
114
104
|
this.#menuItemDescriptor?.onClick?.(e);
|
|
115
105
|
if (this.#menuItemDescriptor?.routeID) {
|
|
116
|
-
this.#driver.goto(this.#menuItemDescriptor.routeID, this.#menuItemDescriptor
|
|
106
|
+
this.#driver.goto(this.#menuItemDescriptor.routeID, this.#menuItemDescriptor.routeParams);
|
|
117
107
|
}
|
|
118
108
|
}
|
|
119
109
|
#onBlur = (e) => {
|
|
@@ -1,19 +1,31 @@
|
|
|
1
1
|
import { RouteView } from '../../inboxsdk';
|
|
2
2
|
import GmailDriver from '../dom-driver/gmail/gmail-driver';
|
|
3
3
|
import { AppMenuItemView } from '../views/app-menu-item-view';
|
|
4
|
+
type ThemedIcon = string | {
|
|
5
|
+
active: string;
|
|
6
|
+
default: string;
|
|
7
|
+
};
|
|
4
8
|
export type AppMenuItemDescriptor = {
|
|
5
9
|
name: string;
|
|
6
10
|
iconUrl?: {
|
|
7
|
-
darkTheme:
|
|
8
|
-
lightTheme:
|
|
11
|
+
darkTheme: ThemedIcon;
|
|
12
|
+
lightTheme: ThemedIcon;
|
|
9
13
|
};
|
|
10
14
|
className?: string;
|
|
11
15
|
iconClassName?: string;
|
|
12
16
|
insertIndex?: number;
|
|
13
17
|
onClick?: (e?: MouseEvent) => void | null;
|
|
14
18
|
onHover?: (e?: MouseEvent) => void | null;
|
|
19
|
+
/**
|
|
20
|
+
* If routeID is provided, isRouteActive should be as well.
|
|
21
|
+
*/
|
|
15
22
|
routeID?: string;
|
|
16
23
|
routeParams?: {};
|
|
24
|
+
/**
|
|
25
|
+
* @example (routeView) => routeView.getRouteID() === 'inbox'
|
|
26
|
+
*
|
|
27
|
+
* @see RouteView
|
|
28
|
+
*/
|
|
17
29
|
isRouteActive: (routeView: RouteView) => boolean;
|
|
18
30
|
};
|
|
19
31
|
export type AppMenuItemPanelDescriptor = {
|
|
@@ -37,4 +49,5 @@ export default class AppMenu {
|
|
|
37
49
|
addMenuItem(menuItemDescriptor: AppMenuItemDescriptor): AppMenuItemView;
|
|
38
50
|
isShown(): Promise<boolean>;
|
|
39
51
|
}
|
|
52
|
+
export {};
|
|
40
53
|
//# sourceMappingURL=app-menu.d.ts.map
|
|
@@ -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,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE;QACR,SAAS,EAAE,
|
|
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;QACtB,UAAU,EAAE,UAAU,CAAC;KACxB,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,MAAM,MAAM,0BAA0B,GAAG;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;QACjC,OAAO,CAAC,EAAE;YACR,SAAS,EAAE,MAAM,CAAC;YAClB,UAAU,EAAE,MAAM,CAAC;SACpB,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;AAUzC,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;8CAyC8D,aAAa,aAAa,CAAC;AAH3F;;GAEG;AACH,qBAAa,eAAgB,SAAQ,oBAAuD;;IAiT1F,IAAI,kBAAkB,0BAErB;gBAQW,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,qBAAqB;IAuDpE,mBAAmB,CAAC,eAAe,EAAE,0BAA0B;IAiC/D,MAAM,CAAC,kBAAkB,EAAE,qBAAqB;IAMtD,MAAM;CAYP"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import Kefir from 'kefir';
|
|
2
|
-
import kefirStopper from 'kefir-stopper';
|
|
3
2
|
import kefirBus from 'kefir-bus';
|
|
4
3
|
import EventEmitter from '../lib/safe-event-emitter';
|
|
5
4
|
import { GmailAppMenuItemView, NATIVE_CLASS, INBOXSDK_CLASS, } from '../dom-driver/gmail/views/gmail-app-menu-item-view';
|
|
6
5
|
import { NATIVE_CLASS as PANEL_NATIVE_CLASS, CollapsiblePanelView, } from './collapsible-panel-view';
|
|
7
6
|
import { addCollapsiblePanel } from '../dom-driver/gmail/gmail-driver/add-collapsible-panel';
|
|
8
7
|
import GmailElementGetter from '../dom-driver/gmail/gmail-element-getter';
|
|
8
|
+
import defer from '../../common/defer';
|
|
9
9
|
var NativeAppMenuClassName;
|
|
10
10
|
(function (NativeAppMenuClassName) {
|
|
11
11
|
NativeAppMenuClassName["MAIL"] = "XJ";
|
|
@@ -33,12 +33,13 @@ const routeIDtoMenuItemClass = Object.fromEntries([
|
|
|
33
33
|
...SPACES_ROUTES.map((route) => [route, NativeAppMenuClassName.SPACES]),
|
|
34
34
|
...MEET_ROUTES.map((route) => [route, NativeAppMenuClassName.MEET]),
|
|
35
35
|
]);
|
|
36
|
-
const initialRoutingStateStopper = kefirStopper();
|
|
37
36
|
/**
|
|
38
37
|
* Contains both a native Gmail app menu item and a collapsible panel.
|
|
39
38
|
*/
|
|
40
39
|
export class AppMenuItemView extends EventEmitter {
|
|
41
40
|
static #menuItemChangeStream = Kefir.pool();
|
|
41
|
+
static #menuItemChangeBus = kefirBus();
|
|
42
|
+
static #menuItemAddedDeferred = defer();
|
|
42
43
|
static #routeViewDriverStream;
|
|
43
44
|
static #menuItemToPanelMap = new Map();
|
|
44
45
|
static #appMenuItemViews = new Set();
|
|
@@ -58,19 +59,9 @@ export class AppMenuItemView extends EventEmitter {
|
|
|
58
59
|
if (AppMenuItemView.#routeViewDriverStream)
|
|
59
60
|
return;
|
|
60
61
|
AppMenuItemView.#routeViewDriverStream = driver.getRouteViewDriverStream();
|
|
61
|
-
|
|
62
|
-
AppMenuItemView.#menuItemChangeStream.plug(bus);
|
|
63
|
-
AppMenuItemView.#routeViewDriverStream
|
|
64
|
-
.takeUntilBy(initialRoutingStateStopper)
|
|
65
|
-
.onValue(async (routeView) => {
|
|
62
|
+
AppMenuItemView.#routeViewDriverStream.onValue(async (routeView) => {
|
|
66
63
|
const routeViewID = routeView.getRouteID();
|
|
67
64
|
const routeType = routeView.getRouteType();
|
|
68
|
-
const routeViewParams = routeView.getParams();
|
|
69
|
-
console.debug({
|
|
70
|
-
routeViewID,
|
|
71
|
-
routeType,
|
|
72
|
-
routeViewParams,
|
|
73
|
-
});
|
|
74
65
|
/* Handling custom app menu items */
|
|
75
66
|
const descriptors = Array.from(AppMenuItemView.#appMenuItemViews, async (appMenuItemView) => {
|
|
76
67
|
const gmailView = await appMenuItemView.#gmailViewPromise;
|
|
@@ -81,17 +72,21 @@ export class AppMenuItemView extends EventEmitter {
|
|
|
81
72
|
return descriptor?.isRouteActive(routeView);
|
|
82
73
|
}) ?? [];
|
|
83
74
|
if (gmailView?.element) {
|
|
84
|
-
|
|
75
|
+
AppMenuItemView.#menuItemChangeBus.emit(['click', gmailView.element]);
|
|
85
76
|
return;
|
|
86
77
|
}
|
|
87
78
|
/* Handling native app menu items */
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
if (
|
|
93
|
-
|
|
94
|
-
|
|
79
|
+
let menuItemClass = '';
|
|
80
|
+
if (routeViewID) {
|
|
81
|
+
menuItemClass = routeIDtoMenuItemClass[routeViewID];
|
|
82
|
+
}
|
|
83
|
+
if ((!routeViewID || !menuItemClass) && routeType !== 'CUSTOM') {
|
|
84
|
+
menuItemClass = NativeAppMenuClassName.MAIL;
|
|
85
|
+
}
|
|
86
|
+
const menuItemElement = menuItemClass &&
|
|
87
|
+
document.querySelector(`.${menuItemClass}`);
|
|
88
|
+
if (menuItemElement) {
|
|
89
|
+
AppMenuItemView.#menuItemChangeBus.emit(['click', menuItemElement]);
|
|
95
90
|
}
|
|
96
91
|
});
|
|
97
92
|
}
|
|
@@ -101,6 +96,7 @@ export class AppMenuItemView extends EventEmitter {
|
|
|
101
96
|
if (!gmailAppMenu) {
|
|
102
97
|
return;
|
|
103
98
|
}
|
|
99
|
+
AppMenuItemView.#menuItemChangeStream.plug(AppMenuItemView.#menuItemChangeBus);
|
|
104
100
|
// Set up menu item panel -> menu collapsible panel element mappings
|
|
105
101
|
for (const [menuItemClass, panelClass] of nativeButtonToPanelMap) {
|
|
106
102
|
const menuItemElement = document.querySelector(`.${NATIVE_CLASS}.${menuItemClass}`);
|
|
@@ -111,116 +107,145 @@ export class AppMenuItemView extends EventEmitter {
|
|
|
111
107
|
AppMenuItemView.#menuItemToPanelMap.set(menuItemElement, panelElement ?? undefined);
|
|
112
108
|
}
|
|
113
109
|
}
|
|
114
|
-
// Set up event listeners we use to control menu UI
|
|
115
|
-
const stream = Kefir.stream((emitter) => {
|
|
116
|
-
// We intercept some events emitted on Gmail (native) menu items to gain full control of the menu (menu items and panels).
|
|
117
|
-
// Thus, some native event handlers won't be invoked so we replicate the Gmail's behavior by ourselves.
|
|
118
|
-
const appMenuElement = GmailElementGetter.getAppMenuContainer();
|
|
119
|
-
for (const nativeMenuItem of appMenuElement?.querySelectorAll(`.${NATIVE_CLASS}:not(.${INBOXSDK_CLASS})`) ?? []) {
|
|
120
|
-
// Gmail uses this listener for panel hover state activation. It's prevented from propagation and we handle UI updates
|
|
121
|
-
nativeMenuItem.addEventListener('mouseenter', (e) => {
|
|
122
|
-
e.stopImmediatePropagation();
|
|
123
|
-
emitter.emit(['mouseenter', nativeMenuItem, e]);
|
|
124
|
-
}, true);
|
|
125
|
-
// Gmail uses this listener for panel hover state deactivation. It's prevented from propagation and we handle UI updates
|
|
126
|
-
nativeMenuItem.addEventListener('mouseleave', (e) => {
|
|
127
|
-
e.stopImmediatePropagation();
|
|
128
|
-
emitter.emit(['mouseleave', nativeMenuItem, e]);
|
|
129
|
-
}, true);
|
|
130
|
-
// Click event isn't prevented from propagation to let Gmail handle routing. The styling is handled by us
|
|
131
|
-
nativeMenuItem.addEventListener('click', () => {
|
|
132
|
-
emitter.emit(['click', nativeMenuItem]);
|
|
133
|
-
});
|
|
134
|
-
// Handle moving cursor out of panel. We use it to enhance the styling since it won't be handled by Gmail
|
|
135
|
-
const panel = AppMenuItemView.#menuItemToPanelMap.get(nativeMenuItem);
|
|
136
|
-
panel?.addEventListener('mouseleave', (e) => {
|
|
137
|
-
emitter.emit(['mouseleave', nativeMenuItem, e]);
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
});
|
|
141
|
-
AppMenuItemView.#menuItemChangeStream.plug(stream);
|
|
142
110
|
})();
|
|
143
111
|
}
|
|
112
|
+
static {
|
|
113
|
+
AppMenuItemView.#menuItemAddedDeferred.promise.then(() => {
|
|
114
|
+
// Set up event listeners we use to control menu UI
|
|
115
|
+
// We intercept some events emitted on Gmail (native) menu items to gain full control of the menu (menu items and panels).
|
|
116
|
+
// Thus, some native event handlers won't be invoked so we replicate the Gmail's behavior by ourselves.
|
|
117
|
+
const appMenuElement = GmailElementGetter.getAppMenuContainer();
|
|
118
|
+
for (const nativeMenuItem of appMenuElement?.querySelectorAll(`.${NATIVE_CLASS}:not(.${INBOXSDK_CLASS})`) ?? []) {
|
|
119
|
+
// Gmail uses this listener for panel hover state activation. It's prevented from propagation and we handle UI updates
|
|
120
|
+
const buttonElement = nativeMenuItem.querySelector('.V6.CL');
|
|
121
|
+
buttonElement?.addEventListener('mouseenter', (e) => {
|
|
122
|
+
e.stopImmediatePropagation();
|
|
123
|
+
AppMenuItemView.#menuItemChangeBus.emit([
|
|
124
|
+
'mouseenter',
|
|
125
|
+
nativeMenuItem,
|
|
126
|
+
e,
|
|
127
|
+
]);
|
|
128
|
+
}, true);
|
|
129
|
+
// Gmail uses this listener for panel hover state deactivation. It's prevented from propagation and we handle UI updates
|
|
130
|
+
nativeMenuItem.addEventListener('mouseleave', (e) => {
|
|
131
|
+
e.stopImmediatePropagation();
|
|
132
|
+
AppMenuItemView.#menuItemChangeBus.emit([
|
|
133
|
+
'mouseleave',
|
|
134
|
+
nativeMenuItem,
|
|
135
|
+
e,
|
|
136
|
+
]);
|
|
137
|
+
}, true);
|
|
138
|
+
// Click event isn't prevented from propagation to let Gmail handle routing. The styling is handled by us
|
|
139
|
+
nativeMenuItem.addEventListener('click', () => {
|
|
140
|
+
AppMenuItemView.#menuItemChangeBus.emit(['click', nativeMenuItem]);
|
|
141
|
+
});
|
|
142
|
+
// Handle moving cursor out of panel. We use it to enhance the styling since it won't be handled by Gmail
|
|
143
|
+
const panel = AppMenuItemView.#menuItemToPanelMap.get(nativeMenuItem);
|
|
144
|
+
panel?.addEventListener('mouseleave', (e) => {
|
|
145
|
+
AppMenuItemView.#menuItemChangeBus.emit([
|
|
146
|
+
'mouseleave',
|
|
147
|
+
nativeMenuItem,
|
|
148
|
+
e,
|
|
149
|
+
]);
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
}
|
|
144
154
|
static {
|
|
145
155
|
AppMenuItemView.#menuItemChangeStream.onValue(async (v) => {
|
|
146
156
|
const [type, menuItem, mouseEvent] = v;
|
|
147
157
|
const { ACTIVE, HOVER } = GmailAppMenuItemView.elementCss;
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
(
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
activePanel
|
|
161
|
-
|
|
162
|
-
|
|
158
|
+
switch (type) {
|
|
159
|
+
case 'mouseenter': {
|
|
160
|
+
const panel = AppMenuItemView.#menuItemToPanelMap.get(menuItem);
|
|
161
|
+
const activeMenuItem = AppMenuItemView.#getActiveMenuItem();
|
|
162
|
+
const activePanel = AppMenuItemView.#getActivePanel();
|
|
163
|
+
const burgerMenuOpen = GmailElementGetter.isAppBurgerMenuOpen();
|
|
164
|
+
// hover-styled panel is displayed for collapsed burger menu
|
|
165
|
+
if (activeMenuItem === menuItem &&
|
|
166
|
+
activePanel === panel &&
|
|
167
|
+
burgerMenuOpen)
|
|
168
|
+
return;
|
|
169
|
+
// deactivate active panel
|
|
170
|
+
if (activePanel) {
|
|
171
|
+
activePanel.style.removeProperty('height');
|
|
172
|
+
activePanel.classList.remove(CollapsiblePanelView.elementCss.ACTIVE);
|
|
173
|
+
activePanel.classList.remove(CollapsiblePanelView.elementCss.HOVER);
|
|
174
|
+
}
|
|
175
|
+
// activate new panel
|
|
176
|
+
if (panel) {
|
|
177
|
+
const height = window.innerHeight - panel.getBoundingClientRect().top;
|
|
178
|
+
panel.style.cssText = `height: ${height}px;`;
|
|
179
|
+
panel.classList.add(CollapsiblePanelView.elementCss.ACTIVE);
|
|
180
|
+
panel.classList.add(CollapsiblePanelView.elementCss.HOVER);
|
|
181
|
+
// hover menu item
|
|
182
|
+
menuItem.classList.add(HOVER);
|
|
183
|
+
// handle burger menu collapsed
|
|
184
|
+
if (!burgerMenuOpen) {
|
|
185
|
+
for (const panel of document.querySelectorAll(CollapsiblePanelView.elementSelectors.NATIVE) ?? []) {
|
|
186
|
+
panel.classList.add(CollapsiblePanelView.elementCss.COLLAPSED_HOVER);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
// panel doesn't exist (i.e. Meet) so activate active menu item's panel instead (as Gmail currently does -- FEB 2023)
|
|
192
|
+
const panel = activeMenuItem &&
|
|
193
|
+
AppMenuItemView.#menuItemToPanelMap.get(activeMenuItem);
|
|
194
|
+
panel?.classList.add(CollapsiblePanelView.elementCss.ACTIVE);
|
|
195
|
+
}
|
|
196
|
+
break;
|
|
163
197
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
const
|
|
167
|
-
|
|
168
|
-
panel.classList.add(CollapsiblePanelView.elementCss.ACTIVE);
|
|
169
|
-
panel.classList.add(CollapsiblePanelView.elementCss.HOVER);
|
|
170
|
-
// hover menu item
|
|
171
|
-
menuItem.classList.add(HOVER);
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
// panel doesn't exist (i.e. Meet) so activate active menu item's panel instead (as Gmail currently does -- FEB 2023)
|
|
175
|
-
const panel = activeMenuItem &&
|
|
198
|
+
case 'mouseleave': {
|
|
199
|
+
const activeMenuItem = AppMenuItemView.#getActiveMenuItem();
|
|
200
|
+
const activePanel = AppMenuItemView.#getActivePanel();
|
|
201
|
+
const activeMenuItemPanel = activeMenuItem &&
|
|
176
202
|
AppMenuItemView.#menuItemToPanelMap.get(activeMenuItem);
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
activeMenuItemPanel.classList.add(CollapsiblePanelView.elementCss.ACTIVE);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
if (type === 'click') {
|
|
205
|
-
const appMenuElement = GmailElementGetter.getAppMenuContainer();
|
|
206
|
-
// deactivate active panel
|
|
207
|
-
const activePanel = AppMenuItemView.#getActivePanel();
|
|
208
|
-
if (activePanel) {
|
|
209
|
-
activePanel.style.removeProperty('height');
|
|
210
|
-
activePanel.classList.remove(CollapsiblePanelView.elementCss.ACTIVE);
|
|
211
|
-
activePanel.classList.remove(CollapsiblePanelView.elementCss.HOVER);
|
|
212
|
-
}
|
|
213
|
-
// deactivate menu items
|
|
214
|
-
for (const menuItem_ of appMenuElement?.querySelectorAll(`.${NATIVE_CLASS}`) ?? []) {
|
|
215
|
-
menuItem_.classList.remove(ACTIVE);
|
|
216
|
-
menuItem_.classList.remove(HOVER);
|
|
203
|
+
if (mouseEvent.relatedTarget instanceof Node &&
|
|
204
|
+
(menuItem.contains(mouseEvent.relatedTarget) ||
|
|
205
|
+
activePanel?.contains(mouseEvent.relatedTarget)))
|
|
206
|
+
return;
|
|
207
|
+
const burgerMenuOpen = GmailElementGetter.isAppBurgerMenuOpen();
|
|
208
|
+
if (activePanel === activeMenuItemPanel && burgerMenuOpen)
|
|
209
|
+
return;
|
|
210
|
+
// unhover menu item
|
|
211
|
+
menuItem.classList.remove(HOVER);
|
|
212
|
+
// handle burger menu collapsed
|
|
213
|
+
for (const panel of document.querySelectorAll(CollapsiblePanelView.elementSelectors.NATIVE) ?? []) {
|
|
214
|
+
panel.classList.remove(CollapsiblePanelView.elementCss.COLLAPSED_HOVER);
|
|
215
|
+
}
|
|
216
|
+
// deactivate active panel
|
|
217
|
+
if (activePanel) {
|
|
218
|
+
activePanel.style.removeProperty('height');
|
|
219
|
+
activePanel.classList.remove(CollapsiblePanelView.elementCss.ACTIVE);
|
|
220
|
+
activePanel.classList.remove(CollapsiblePanelView.elementCss.HOVER);
|
|
221
|
+
}
|
|
222
|
+
// activate active menu item panel
|
|
223
|
+
if (activeMenuItemPanel) {
|
|
224
|
+
activeMenuItemPanel.classList.add(CollapsiblePanelView.elementCss.ACTIVE);
|
|
225
|
+
}
|
|
226
|
+
break;
|
|
217
227
|
}
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
228
|
+
case 'click': {
|
|
229
|
+
const appMenuElement = GmailElementGetter.getAppMenuContainer();
|
|
230
|
+
// deactivate active panel
|
|
231
|
+
const activePanel = AppMenuItemView.#getActivePanel();
|
|
232
|
+
if (activePanel) {
|
|
233
|
+
activePanel.style.removeProperty('height');
|
|
234
|
+
activePanel.classList.remove(CollapsiblePanelView.elementCss.ACTIVE);
|
|
235
|
+
activePanel.classList.remove(CollapsiblePanelView.elementCss.HOVER);
|
|
236
|
+
}
|
|
237
|
+
// deactivate menu items
|
|
238
|
+
for (const menuItem_ of appMenuElement?.querySelectorAll(`.${NATIVE_CLASS}`) ?? []) {
|
|
239
|
+
menuItem_.classList.remove(ACTIVE);
|
|
240
|
+
menuItem_.classList.remove(HOVER);
|
|
241
|
+
}
|
|
242
|
+
// activate menu item
|
|
243
|
+
menuItem.classList.add(ACTIVE);
|
|
244
|
+
// activate panel
|
|
245
|
+
const panel = AppMenuItemView.#menuItemToPanelMap.get(menuItem);
|
|
246
|
+
if (panel) {
|
|
247
|
+
panel.classList.add(CollapsiblePanelView.elementCss.ACTIVE);
|
|
248
|
+
}
|
|
224
249
|
}
|
|
225
250
|
}
|
|
226
251
|
});
|
|
@@ -232,8 +257,6 @@ export class AppMenuItemView extends EventEmitter {
|
|
|
232
257
|
#destroyed = false;
|
|
233
258
|
#gmailViewPromise;
|
|
234
259
|
#collapsiblePanel;
|
|
235
|
-
#appMenuItemStream;
|
|
236
|
-
#collapsiblePanelStream;
|
|
237
260
|
#menuItemDescriptor;
|
|
238
261
|
constructor(driver, menuItemDescriptor) {
|
|
239
262
|
super();
|
|
@@ -249,28 +272,34 @@ export class AppMenuItemView extends EventEmitter {
|
|
|
249
272
|
if (gmailElement) {
|
|
250
273
|
AppMenuItemView.#menuItemToPanelMap.set(gmailElement, undefined);
|
|
251
274
|
}
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
275
|
+
gmailView.on('destroy', () => {
|
|
276
|
+
AppMenuItemView.#menuItemChangeBus.end();
|
|
277
|
+
this.remove();
|
|
278
|
+
});
|
|
279
|
+
gmailView.on('click', () => {
|
|
280
|
+
AppMenuItemView.#menuItemChangeBus.emit(['click', gmailElement]);
|
|
281
|
+
this.emit('click');
|
|
282
|
+
});
|
|
283
|
+
gmailView.on('hover', (e) => {
|
|
284
|
+
AppMenuItemView.#menuItemChangeBus.emit([
|
|
285
|
+
'mouseenter',
|
|
286
|
+
gmailElement,
|
|
287
|
+
e,
|
|
288
|
+
]);
|
|
289
|
+
this.emit('hover');
|
|
290
|
+
});
|
|
291
|
+
gmailView.on('blur', (e) => {
|
|
292
|
+
AppMenuItemView.#menuItemChangeBus.emit([
|
|
293
|
+
'mouseleave',
|
|
294
|
+
gmailElement,
|
|
295
|
+
e,
|
|
296
|
+
]);
|
|
297
|
+
this.emit('blur');
|
|
269
298
|
});
|
|
270
|
-
AppMenuItemView.#menuItemChangeStream.plug(this.#appMenuItemStream);
|
|
271
|
-
AppMenuItemView.#setUpRouteViewDriverStream(driver);
|
|
272
|
-
AppMenuItemView.#appMenuItemViews.add(this);
|
|
273
299
|
});
|
|
300
|
+
AppMenuItemView.#setUpRouteViewDriverStream(driver);
|
|
301
|
+
AppMenuItemView.#menuItemAddedDeferred.resolve(undefined);
|
|
302
|
+
AppMenuItemView.#appMenuItemViews.add(this);
|
|
274
303
|
}
|
|
275
304
|
async addCollapsiblePanel(panelDescriptor) {
|
|
276
305
|
const collapsiblePanel = await addCollapsiblePanel(this.#driver, panelDescriptor);
|
|
@@ -278,12 +307,13 @@ export class AppMenuItemView extends EventEmitter {
|
|
|
278
307
|
this.#gmailViewPromise.then((gmailView) => {
|
|
279
308
|
const gmailElement = gmailView.element;
|
|
280
309
|
if (gmailElement) {
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
310
|
+
collapsiblePanel.on('blur', (e) => {
|
|
311
|
+
AppMenuItemView.#menuItemChangeBus.value([
|
|
312
|
+
'mouseleave',
|
|
313
|
+
gmailElement,
|
|
314
|
+
e,
|
|
315
|
+
]);
|
|
285
316
|
});
|
|
286
|
-
AppMenuItemView.#menuItemChangeStream.plug(this.#collapsiblePanelStream);
|
|
287
317
|
}
|
|
288
318
|
if (gmailElement && collapsiblePanel) {
|
|
289
319
|
AppMenuItemView.#menuItemToPanelMap.set(gmailElement, collapsiblePanel.element);
|
|
@@ -296,6 +326,7 @@ export class AppMenuItemView extends EventEmitter {
|
|
|
296
326
|
async update(menuItemDescriptor) {
|
|
297
327
|
const gmailView = await this.#gmailViewPromise;
|
|
298
328
|
gmailView.setMenuItemDescriptor(menuItemDescriptor);
|
|
329
|
+
this.#menuItemDescriptor = menuItemDescriptor;
|
|
299
330
|
}
|
|
300
331
|
remove() {
|
|
301
332
|
if (this.#destroyed)
|
|
@@ -308,22 +339,6 @@ export class AppMenuItemView extends EventEmitter {
|
|
|
308
339
|
AppMenuItemView.#menuItemToPanelMap.delete(gmailView.element);
|
|
309
340
|
gmailView.remove();
|
|
310
341
|
});
|
|
311
|
-
this.#appMenuItemStream &&
|
|
312
|
-
AppMenuItemView.#menuItemChangeStream.unplug(this.#appMenuItemStream);
|
|
313
|
-
this.#collapsiblePanelStream &&
|
|
314
|
-
AppMenuItemView.#menuItemChangeStream.unplug(this.#collapsiblePanelStream);
|
|
315
342
|
AppMenuItemView.#appMenuItemViews.delete(this);
|
|
316
|
-
initialRoutingStateStopper.destroy();
|
|
317
|
-
}
|
|
318
|
-
async #activate() {
|
|
319
|
-
const gmailView = await this.#gmailViewPromise;
|
|
320
|
-
const appMenuElement = GmailElementGetter.getAppMenuContainer();
|
|
321
|
-
const { ACTIVE } = GmailAppMenuItemView.elementCss;
|
|
322
|
-
// Note this affects both the active app menu item and the collapsible panel.
|
|
323
|
-
for (const el of appMenuElement?.querySelectorAll(`.${ACTIVE}`) ?? []) {
|
|
324
|
-
el.classList.remove(ACTIVE);
|
|
325
|
-
}
|
|
326
|
-
gmailView.activate();
|
|
327
|
-
this.#collapsiblePanel?.activate();
|
|
328
343
|
}
|
|
329
344
|
}
|
|
@@ -19,9 +19,10 @@ export declare class CollapsiblePanelView extends CollapsiblePanelView_base {
|
|
|
19
19
|
};
|
|
20
20
|
static elementCss: {
|
|
21
21
|
readonly ACTIVE: "apV";
|
|
22
|
-
readonly COLLAPSED: "
|
|
22
|
+
readonly COLLAPSED: "aBA";
|
|
23
23
|
/** A hover popover has both ACTIVE _and_ HOVER */
|
|
24
24
|
readonly HOVER: "aJu";
|
|
25
|
+
readonly COLLAPSED_HOVER: "bym";
|
|
25
26
|
};
|
|
26
27
|
get element(): HTMLElement | undefined;
|
|
27
28
|
set panelDescriptor(panelDescriptor: AppMenuItemPanelDescriptor);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collapsible-panel-view.d.ts","sourceRoot":"","sources":["../../../../../src/platform-implementation-js/views/collapsible-panel-view.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAIpE,OAAO,WAAW,MAAM,kCAAkC,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAE1C,eAAO,MAAM,YAAY,OAAiB,CAAC;AAC3C,eAAO,MAAM,cAAc,8BAAwC,CAAC;AAQpE,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;CAC/B,CAAC;mDAEmE,aAAa,aAAa,CAAC;AAAhG,qBAAa,oBAAqB,SAAQ,yBAAuD;;IAC/F,MAAM,CAAC,gBAAgB;;;MAGZ;IACX,MAAM,CAAC,UAAU;;;QAGf,kDAAkD
|
|
1
|
+
{"version":3,"file":"collapsible-panel-view.d.ts","sourceRoot":"","sources":["../../../../../src/platform-implementation-js/views/collapsible-panel-view.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAIpE,OAAO,WAAW,MAAM,kCAAkC,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAE1C,eAAO,MAAM,YAAY,OAAiB,CAAC;AAC3C,eAAO,MAAM,cAAc,8BAAwC,CAAC;AAQpE,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;CAC/B,CAAC;mDAEmE,aAAa,aAAa,CAAC;AAAhG,qBAAa,oBAAqB,SAAQ,yBAAuD;;IAC/F,MAAM,CAAC,gBAAgB;;;MAGZ;IACX,MAAM,CAAC,UAAU;;;QAGf,kDAAkD;;;MAGzC;IAQX,IAAI,OAAO,4BAEV;IAED,IAAI,eAAe,CAAC,eAAe,EAAE,0BAA0B,EAG9D;gBAEW,MAAM,EAAE,WAAW;IAS/B;;OAEG;IACH,QAAQ;IAQR,MAAM;IAON,UAAU,CACR,iBAAiB,EACb,iBAAiB,GACjB,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,GAAG,CAAC;CAkK/C"}
|