@exmg/exm-navigation 1.1.36 → 1.2.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.
Files changed (96) hide show
  1. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-base.d.ts +141 -0
  2. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-base.js +506 -0
  3. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-drawer-base.d.ts +14 -0
  4. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-drawer-base.js +65 -0
  5. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-drawer-menu-base.d.ts +12 -0
  6. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-drawer-menu-base.js +45 -0
  7. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-drawer-menu.d.ts +9 -0
  8. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-drawer-menu.js +12 -0
  9. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-drawer-nav-item-base.d.ts +14 -0
  10. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-drawer-nav-item-base.js +49 -0
  11. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-drawer-nav-item.d.ts +8 -0
  12. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-drawer-nav-item.js +10 -0
  13. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-drawer.d.ts +8 -0
  14. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-drawer.js +10 -0
  15. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-icon-base.d.ts +7 -0
  16. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-icon-base.js +20 -0
  17. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-icon-button-base.d.ts +9 -0
  18. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-icon-button-base.js +36 -0
  19. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-icon-button.d.ts +8 -0
  20. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-icon-button.js +10 -0
  21. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-icon.d.ts +8 -0
  22. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-icon.js +10 -0
  23. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-rail-base.d.ts +12 -0
  24. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-rail-base.js +62 -0
  25. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-rail-nav-item-base.d.ts +12 -0
  26. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-rail-nav-item-base.js +37 -0
  27. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-rail-nav-item.d.ts +8 -0
  28. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-rail-nav-item.js +10 -0
  29. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-rail.d.ts +8 -0
  30. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-rail.js +10 -0
  31. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-sub-menu-base.d.ts +28 -0
  32. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-sub-menu-base.js +153 -0
  33. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-sub-menu.d.ts +8 -0
  34. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-sub-menu.js +10 -0
  35. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-topbar-base.d.ts +10 -0
  36. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-topbar-base.js +33 -0
  37. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-topbar.d.ts +8 -0
  38. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation-topbar.js +10 -0
  39. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation.d.ts +8 -0
  40. package/.rollup.cache/root/repo/packages/exm-navigation/dist/exm-navigation.js +10 -0
  41. package/.rollup.cache/root/repo/packages/exm-navigation/dist/index.d.ts +12 -0
  42. package/.rollup.cache/root/repo/packages/exm-navigation/dist/index.js +13 -0
  43. package/.rollup.cache/root/repo/packages/exm-navigation/dist/mixins/media-queries.d.ts +8 -0
  44. package/.rollup.cache/root/repo/packages/exm-navigation/dist/mixins/media-queries.js +57 -0
  45. package/.rollup.cache/root/repo/packages/exm-navigation/dist/styles/exm-navigation-css.d.ts +1 -0
  46. package/.rollup.cache/root/repo/packages/exm-navigation/dist/styles/exm-navigation-css.js +75 -0
  47. package/.rollup.cache/root/repo/packages/exm-navigation/dist/styles/exm-navigation-drawer-css.d.ts +1 -0
  48. package/.rollup.cache/root/repo/packages/exm-navigation/dist/styles/exm-navigation-drawer-css.js +32 -0
  49. package/.rollup.cache/root/repo/packages/exm-navigation/dist/styles/exm-navigation-drawer-nav-item-css.d.ts +1 -0
  50. package/.rollup.cache/root/repo/packages/exm-navigation/dist/styles/exm-navigation-drawer-nav-item-css.js +84 -0
  51. package/.rollup.cache/root/repo/packages/exm-navigation/dist/styles/exm-navigation-icon-button-css.d.ts +1 -0
  52. package/.rollup.cache/root/repo/packages/exm-navigation/dist/styles/exm-navigation-icon-button-css.js +29 -0
  53. package/.rollup.cache/root/repo/packages/exm-navigation/dist/styles/exm-navigation-icon-css.d.ts +1 -0
  54. package/.rollup.cache/root/repo/packages/exm-navigation/dist/styles/exm-navigation-icon-css.js +22 -0
  55. package/.rollup.cache/root/repo/packages/exm-navigation/dist/styles/exm-navigation-rail-css.d.ts +1 -0
  56. package/.rollup.cache/root/repo/packages/exm-navigation/dist/styles/exm-navigation-rail-css.js +59 -0
  57. package/.rollup.cache/root/repo/packages/exm-navigation/dist/styles/exm-navigation-rail-nav-item-css.d.ts +1 -0
  58. package/.rollup.cache/root/repo/packages/exm-navigation/dist/styles/exm-navigation-rail-nav-item-css.js +94 -0
  59. package/.rollup.cache/root/repo/packages/exm-navigation/dist/styles/exm-navigation-sub-menu-css.d.ts +1 -0
  60. package/.rollup.cache/root/repo/packages/exm-navigation/dist/styles/exm-navigation-sub-menu-css.js +24 -0
  61. package/.rollup.cache/root/repo/packages/exm-navigation/dist/styles/exm-navigation-topbar-css.d.ts +1 -0
  62. package/.rollup.cache/root/repo/packages/exm-navigation/dist/styles/exm-navigation-topbar-css.js +30 -0
  63. package/.rollup.cache/root/repo/packages/exm-navigation/dist/types.d.ts +10 -0
  64. package/dist/exm-navigation-base.js +7 -6
  65. package/dist/exm-navigation-drawer-base.js +6 -3
  66. package/dist/exm-navigation-drawer-menu-base.js +6 -3
  67. package/dist/exm-navigation-drawer-menu.js +4 -2
  68. package/dist/exm-navigation-drawer-nav-item-base.js +7 -4
  69. package/dist/exm-navigation-drawer-nav-item.js +4 -2
  70. package/dist/exm-navigation-drawer.js +4 -2
  71. package/dist/exm-navigation-icon-base.js +6 -4
  72. package/dist/exm-navigation-icon-button-base.js +7 -4
  73. package/dist/exm-navigation-icon-button.js +4 -2
  74. package/dist/exm-navigation-icon.js +4 -2
  75. package/dist/exm-navigation-rail-base.js +6 -3
  76. package/dist/exm-navigation-rail-nav-item-base.js +6 -3
  77. package/dist/exm-navigation-rail-nav-item.js +4 -2
  78. package/dist/exm-navigation-rail.js +4 -2
  79. package/dist/exm-navigation-sub-menu-base.js +8 -5
  80. package/dist/exm-navigation-sub-menu.js +4 -2
  81. package/dist/exm-navigation-topbar-base.js +6 -3
  82. package/dist/exm-navigation-topbar.js +4 -2
  83. package/dist/exm-navigation.js +4 -2
  84. package/dist/index.js +1 -1
  85. package/dist/mixins/media-queries.js +6 -3
  86. package/dist/styles/exm-navigation-css.js +5 -2
  87. package/dist/styles/exm-navigation-drawer-css.js +5 -2
  88. package/dist/styles/exm-navigation-drawer-nav-item-css.js +5 -2
  89. package/dist/styles/exm-navigation-icon-button-css.js +5 -2
  90. package/dist/styles/exm-navigation-icon-css.js +5 -2
  91. package/dist/styles/exm-navigation-rail-css.js +5 -2
  92. package/dist/styles/exm-navigation-rail-nav-item-css.js +5 -2
  93. package/dist/styles/exm-navigation-sub-menu-css.js +5 -2
  94. package/dist/styles/exm-navigation-topbar-css.js +5 -2
  95. package/package.json +2 -2
  96. /package/{dist → .rollup.cache/root/repo/packages/exm-navigation/dist}/types.js +0 -0
@@ -0,0 +1,65 @@
1
+ import { __decorate } from "tslib";
2
+ import { html } from 'lit';
3
+ import { property, query } from 'lit/decorators.js';
4
+ import { ExmgElement } from '@exmg/lit-base';
5
+ import { style } from './styles/exm-navigation-drawer-css.js';
6
+ import { classMap } from 'lit/directives/class-map.js';
7
+ export class ExmNavigationDrawerBase extends ExmgElement {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.open = false;
11
+ this.persistent = false;
12
+ this.handleWindowMouseOut = (e) => {
13
+ if (!e.relatedTarget) {
14
+ this.handleMouseLeave();
15
+ }
16
+ };
17
+ }
18
+ connectedCallback() {
19
+ super.connectedCallback();
20
+ window.addEventListener('mouseout', this.handleWindowMouseOut);
21
+ }
22
+ disconnectedCallback() {
23
+ window.removeEventListener('mouseout', this.handleWindowMouseOut);
24
+ super.disconnectedCallback();
25
+ }
26
+ handleMouseEnter() {
27
+ this.fire('drawer-mouseenter');
28
+ }
29
+ handleMouseLeave() {
30
+ this.fire('drawer-mouseleave');
31
+ }
32
+ async firstUpdated() {
33
+ var _a;
34
+ await this.updateComplete;
35
+ if ((_a = this.drawer) === null || _a === void 0 ? void 0 : _a.shadowRoot) {
36
+ const asideElement = this.drawer.shadowRoot.querySelector('aside');
37
+ if (asideElement) {
38
+ // Add event listeners to the aside element
39
+ asideElement.addEventListener('mouseenter', this.handleMouseEnter.bind(this));
40
+ asideElement.addEventListener('mouseleave', this.handleMouseLeave.bind(this));
41
+ }
42
+ }
43
+ }
44
+ render() {
45
+ const classNames = { open: this.open };
46
+ return html `<aside
47
+ class="${classMap(classNames)}"
48
+ @mouseenter=${this.handleMouseEnter}
49
+ @mouseleave=${this.handleMouseLeave}
50
+ >
51
+ <slot></slot>
52
+ </aside> `;
53
+ }
54
+ }
55
+ ExmNavigationDrawerBase.styles = [style];
56
+ __decorate([
57
+ property({ type: Boolean })
58
+ ], ExmNavigationDrawerBase.prototype, "open", void 0);
59
+ __decorate([
60
+ property({ type: Boolean })
61
+ ], ExmNavigationDrawerBase.prototype, "persistent", void 0);
62
+ __decorate([
63
+ query('aside')
64
+ ], ExmNavigationDrawerBase.prototype, "drawer", void 0);
65
+ //# sourceMappingURL=exm-navigation-drawer-base.js.map
@@ -0,0 +1,12 @@
1
+ import { ExmgElement } from '@exmg/lit-base/index.js';
2
+ import { MenuItem } from './types.js';
3
+ import './exm-navigation-rail-nav-item.js';
4
+ import './exm-navigation-drawer-nav-item.js';
5
+ import '@material/web/list/list.js';
6
+ import '@exmg/exm-collapsed/exm-collapsed.js';
7
+ export declare class ExmNavigationDrawerMenuBase extends ExmgElement {
8
+ items: MenuItem[];
9
+ path: string[];
10
+ private handleDrawerMenuItemClick;
11
+ render(): import("lit-html").TemplateResult<1>;
12
+ }
@@ -0,0 +1,45 @@
1
+ import { __decorate } from "tslib";
2
+ import { html } from 'lit';
3
+ import { ExmgElement } from '@exmg/lit-base/index.js';
4
+ import { property } from 'lit/decorators.js';
5
+ import { repeat } from 'lit/directives/repeat.js';
6
+ import './exm-navigation-rail-nav-item.js';
7
+ import './exm-navigation-drawer-nav-item.js';
8
+ import '@material/web/list/list.js';
9
+ import '@exmg/exm-collapsed/exm-collapsed.js';
10
+ export class ExmNavigationDrawerMenuBase extends ExmgElement {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.items = [];
14
+ this.path = [];
15
+ }
16
+ handleDrawerMenuItemClick(path) {
17
+ this.fire('drawer-menu-item-click', path);
18
+ }
19
+ render() {
20
+ return html `<div class="top"><slot name="top"></slot></div>
21
+ <nav class="nav">
22
+ <md-list>
23
+ ${repeat(this.items || [], ({ id }) => id, (item) => html `
24
+ <exm-navigation-drawer-nav-item
25
+ type="button"
26
+ @click=${this.handleDrawerMenuItemClick.bind(this, item.id)}
27
+ ?has-submenu=${(item.items || []).length > 0}
28
+ ?selected=${item.id === this.path[0]}
29
+ icon=${item.icon || ''}
30
+ >
31
+ ${item.label}
32
+ </exm-navigation-drawer-nav-item>
33
+ `)}
34
+ </md-list>
35
+ </nav>
36
+ <div class="bottom"><slot name="bottom"></slot></div>`;
37
+ }
38
+ }
39
+ __decorate([
40
+ property({ type: Array })
41
+ ], ExmNavigationDrawerMenuBase.prototype, "items", void 0);
42
+ __decorate([
43
+ property({ type: Array })
44
+ ], ExmNavigationDrawerMenuBase.prototype, "path", void 0);
45
+ //# sourceMappingURL=exm-navigation-drawer-menu-base.js.map
@@ -0,0 +1,9 @@
1
+ import { ExmNavigationDrawerMenuBase } from './exm-navigation-drawer-menu-base.js';
2
+ export declare class ExmNavigationDrawerMenu extends ExmNavigationDrawerMenuBase {
3
+ static styles: import("lit").CSSResult[];
4
+ }
5
+ declare global {
6
+ interface HTMLElementTagNameMap {
7
+ 'exm-navigation-drawer-menu': ExmNavigationDrawerMenu;
8
+ }
9
+ }
@@ -0,0 +1,12 @@
1
+ import { __decorate } from "tslib";
2
+ import { customElement } from 'lit/decorators/custom-element.js';
3
+ import { ExmNavigationDrawerMenuBase } from './exm-navigation-drawer-menu-base.js';
4
+ import { style } from './styles/exm-navigation-sub-menu-css.js';
5
+ let ExmNavigationDrawerMenu = class ExmNavigationDrawerMenu extends ExmNavigationDrawerMenuBase {
6
+ };
7
+ ExmNavigationDrawerMenu.styles = [style];
8
+ ExmNavigationDrawerMenu = __decorate([
9
+ customElement('exm-navigation-drawer-menu')
10
+ ], ExmNavigationDrawerMenu);
11
+ export { ExmNavigationDrawerMenu };
12
+ //# sourceMappingURL=exm-navigation-drawer-menu.js.map
@@ -0,0 +1,14 @@
1
+ import { LitElement } from 'lit';
2
+ import '@material/web/focus/md-focus-ring.js';
3
+ import './exm-navigation-icon.js';
4
+ import '@material/web/list/list.js';
5
+ import '@material/web/list/list-item.js';
6
+ export declare class ExmNavigationDrawerNavItemBase extends LitElement {
7
+ icon: string;
8
+ itemId?: string;
9
+ selected: boolean;
10
+ hasSubmenu: boolean;
11
+ submenuIcon: string;
12
+ static styles: import("lit").CSSResult[];
13
+ render(): import("lit-html").TemplateResult<1>;
14
+ }
@@ -0,0 +1,49 @@
1
+ import { __decorate } from "tslib";
2
+ import { LitElement, html, nothing } from 'lit';
3
+ import { property } from 'lit/decorators.js';
4
+ import { style } from './styles/exm-navigation-drawer-nav-item-css.js';
5
+ import '@material/web/focus/md-focus-ring.js';
6
+ import './exm-navigation-icon.js';
7
+ import '@material/web/list/list.js';
8
+ import '@material/web/list/list-item.js';
9
+ import { classMap } from 'lit/directives/class-map.js';
10
+ export class ExmNavigationDrawerNavItemBase extends LitElement {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.icon = '';
14
+ this.selected = false;
15
+ this.hasSubmenu = false;
16
+ this.submenuIcon = 'arrow_forward';
17
+ }
18
+ render() {
19
+ const classList = { selected: this.selected, 'has-sub-menu': this.hasSubmenu, 'has-icon': !!this.icon };
20
+ return html `
21
+ <button class="${classMap(classList)}">
22
+ ${this.icon ? html `<exm-navigation-icon class="item-icon" icon=${this.icon}></exm-navigation-icon>` : nothing}
23
+ <span class="label"><slot></slot></span>
24
+ ${this.hasSubmenu
25
+ ? html `<exm-navigation-icon class="has-submenu" icon=${this.submenuIcon}></exm-navigation-icon>`
26
+ : nothing}
27
+ <md-ripple part="ripple"></md-ripple>
28
+ <md-focus-ring part="focus-ring" inward></md-focus-ring>
29
+ </button>
30
+ `;
31
+ }
32
+ }
33
+ ExmNavigationDrawerNavItemBase.styles = [style];
34
+ __decorate([
35
+ property({ type: String })
36
+ ], ExmNavigationDrawerNavItemBase.prototype, "icon", void 0);
37
+ __decorate([
38
+ property({ type: String })
39
+ ], ExmNavigationDrawerNavItemBase.prototype, "itemId", void 0);
40
+ __decorate([
41
+ property({ type: Boolean, reflect: true })
42
+ ], ExmNavigationDrawerNavItemBase.prototype, "selected", void 0);
43
+ __decorate([
44
+ property({ type: Boolean, attribute: 'has-submenu' })
45
+ ], ExmNavigationDrawerNavItemBase.prototype, "hasSubmenu", void 0);
46
+ __decorate([
47
+ property({ type: String, attribute: 'submenu-icon' })
48
+ ], ExmNavigationDrawerNavItemBase.prototype, "submenuIcon", void 0);
49
+ //# sourceMappingURL=exm-navigation-drawer-nav-item-base.js.map
@@ -0,0 +1,8 @@
1
+ import { ExmNavigationDrawerNavItemBase } from './exm-navigation-drawer-nav-item-base.js';
2
+ export declare class ExmNavigationDrawerNavItem extends ExmNavigationDrawerNavItemBase {
3
+ }
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'exm-navigation-drawer-nav-item': ExmNavigationDrawerNavItem;
7
+ }
8
+ }
@@ -0,0 +1,10 @@
1
+ import { __decorate } from "tslib";
2
+ import { customElement } from 'lit/decorators.js';
3
+ import { ExmNavigationDrawerNavItemBase } from './exm-navigation-drawer-nav-item-base.js';
4
+ let ExmNavigationDrawerNavItem = class ExmNavigationDrawerNavItem extends ExmNavigationDrawerNavItemBase {
5
+ };
6
+ ExmNavigationDrawerNavItem = __decorate([
7
+ customElement('exm-navigation-drawer-nav-item')
8
+ ], ExmNavigationDrawerNavItem);
9
+ export { ExmNavigationDrawerNavItem };
10
+ //# sourceMappingURL=exm-navigation-drawer-nav-item.js.map
@@ -0,0 +1,8 @@
1
+ import { ExmNavigationDrawerBase } from './exm-navigation-drawer-base.js';
2
+ export declare class ExmNavigationDrawer extends ExmNavigationDrawerBase {
3
+ }
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'exm-navigation-drawer': ExmNavigationDrawer;
7
+ }
8
+ }
@@ -0,0 +1,10 @@
1
+ import { __decorate } from "tslib";
2
+ import { customElement } from 'lit/decorators.js';
3
+ import { ExmNavigationDrawerBase } from './exm-navigation-drawer-base.js';
4
+ let ExmNavigationDrawer = class ExmNavigationDrawer extends ExmNavigationDrawerBase {
5
+ };
6
+ ExmNavigationDrawer = __decorate([
7
+ customElement('exm-navigation-drawer')
8
+ ], ExmNavigationDrawer);
9
+ export { ExmNavigationDrawer };
10
+ //# sourceMappingURL=exm-navigation-drawer.js.map
@@ -0,0 +1,7 @@
1
+ import { ExmgElement } from '@exmg/lit-base/index.js';
2
+ import './styles/exm-navigation-icon-css.js';
3
+ export declare class ExmNavigationIconBase extends ExmgElement {
4
+ icon: string;
5
+ static styles: import("lit").CSSResult[];
6
+ render(): import("lit-html").TemplateResult<1>;
7
+ }
@@ -0,0 +1,20 @@
1
+ import { __decorate } from "tslib";
2
+ import { html } from 'lit';
3
+ import { ExmgElement } from '@exmg/lit-base/index.js';
4
+ import { property } from 'lit/decorators.js';
5
+ import { style } from './styles/exm-navigation-icon-css.js';
6
+ import './styles/exm-navigation-icon-css.js';
7
+ export class ExmNavigationIconBase extends ExmgElement {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.icon = 'menu';
11
+ }
12
+ render() {
13
+ return html `<span class="icon">${this.icon}</span>`;
14
+ }
15
+ }
16
+ ExmNavigationIconBase.styles = [style];
17
+ __decorate([
18
+ property({ type: String })
19
+ ], ExmNavigationIconBase.prototype, "icon", void 0);
20
+ //# sourceMappingURL=exm-navigation-icon-base.js.map
@@ -0,0 +1,9 @@
1
+ import { ExmgElement } from '@exmg/lit-base/index.js';
2
+ import './exm-navigation-icon.js';
3
+ export declare class ExmNavigationIconButtonBase extends ExmgElement {
4
+ icon: string;
5
+ label: string;
6
+ static styles: import("lit").CSSResult[];
7
+ private handleMenuButtonClick;
8
+ render(): import("lit-html").TemplateResult<1>;
9
+ }
@@ -0,0 +1,36 @@
1
+ import { __decorate } from "tslib";
2
+ import { html, nothing } from 'lit';
3
+ import { ExmgElement } from '@exmg/lit-base/index.js';
4
+ import { property } from 'lit/decorators.js';
5
+ import { classMap } from 'lit/directives/class-map.js';
6
+ import { style } from './styles/exm-navigation-icon-button-css.js';
7
+ import './exm-navigation-icon.js';
8
+ export class ExmNavigationIconButtonBase extends ExmgElement {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.icon = 'menu';
12
+ this.label = '';
13
+ }
14
+ handleMenuButtonClick(itemId) {
15
+ this.fire('navigation-icon-button-click', itemId);
16
+ }
17
+ render() {
18
+ const buttonClass = { 'has-label': !!this.label };
19
+ return html `
20
+ <button class="icon-button ${classMap(buttonClass)}" @click=${this.handleMenuButtonClick}>
21
+ <exm-navigation-icon icon=${this.icon}></exm-navigation-icon>
22
+ ${this.label ? html ` <span class="label">${this.label}</span>` : nothing}
23
+ <md-ripple part="ripple"></md-ripple>
24
+ <md-focus-ring part="focus-ring" inward></md-focus-ring>
25
+ </button>
26
+ `;
27
+ }
28
+ }
29
+ ExmNavigationIconButtonBase.styles = [style];
30
+ __decorate([
31
+ property({ type: String })
32
+ ], ExmNavigationIconButtonBase.prototype, "icon", void 0);
33
+ __decorate([
34
+ property({ type: String })
35
+ ], ExmNavigationIconButtonBase.prototype, "label", void 0);
36
+ //# sourceMappingURL=exm-navigation-icon-button-base.js.map
@@ -0,0 +1,8 @@
1
+ import { ExmNavigationIconButtonBase } from './exm-navigation-icon-button-base.js';
2
+ export declare class ExmNavigationIconButton extends ExmNavigationIconButtonBase {
3
+ }
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'exm-navigation-icon-button': ExmNavigationIconButton;
7
+ }
8
+ }
@@ -0,0 +1,10 @@
1
+ import { __decorate } from "tslib";
2
+ import { customElement } from 'lit/decorators/custom-element.js';
3
+ import { ExmNavigationIconButtonBase } from './exm-navigation-icon-button-base.js';
4
+ let ExmNavigationIconButton = class ExmNavigationIconButton extends ExmNavigationIconButtonBase {
5
+ };
6
+ ExmNavigationIconButton = __decorate([
7
+ customElement('exm-navigation-icon-button')
8
+ ], ExmNavigationIconButton);
9
+ export { ExmNavigationIconButton };
10
+ //# sourceMappingURL=exm-navigation-icon-button.js.map
@@ -0,0 +1,8 @@
1
+ import { ExmNavigationIconBase } from './exm-navigation-icon-base.js';
2
+ export declare class ExmNavigationIcon extends ExmNavigationIconBase {
3
+ }
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'exm-navigation-icon': ExmNavigationIcon;
7
+ }
8
+ }
@@ -0,0 +1,10 @@
1
+ import { __decorate } from "tslib";
2
+ import { customElement } from 'lit/decorators/custom-element.js';
3
+ import { ExmNavigationIconBase } from './exm-navigation-icon-base.js';
4
+ let ExmNavigationIcon = class ExmNavigationIcon extends ExmNavigationIconBase {
5
+ };
6
+ ExmNavigationIcon = __decorate([
7
+ customElement('exm-navigation-icon')
8
+ ], ExmNavigationIcon);
9
+ export { ExmNavigationIcon };
10
+ //# sourceMappingURL=exm-navigation-icon.js.map
@@ -0,0 +1,12 @@
1
+ import { ExmgElement } from '@exmg/lit-base/index.js';
2
+ import { MenuItem } from './types.js';
3
+ import './exm-navigation-rail-nav-item.js';
4
+ export declare class ExmNavigationRailBase extends ExmgElement {
5
+ items: MenuItem[];
6
+ selected: string[];
7
+ static styles: import("lit").CSSResult[];
8
+ private handleRailClick;
9
+ private handleRailMouseEnter;
10
+ private handleRailMouseLeave;
11
+ render(): import("lit-html").TemplateResult<1>;
12
+ }
@@ -0,0 +1,62 @@
1
+ import { __decorate } from "tslib";
2
+ import { html } from 'lit';
3
+ import { ExmgElement } from '@exmg/lit-base/index.js';
4
+ import { property } from 'lit/decorators.js';
5
+ import { repeat } from 'lit/directives/repeat.js';
6
+ import { style } from './styles/exm-navigation-rail-css.js';
7
+ import './exm-navigation-rail-nav-item.js';
8
+ import { classMap } from 'lit/directives/class-map.js';
9
+ export class ExmNavigationRailBase extends ExmgElement {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.items = [];
13
+ this.selected = [];
14
+ }
15
+ handleRailClick(itemId) {
16
+ this.fire('rail-item-click', itemId);
17
+ }
18
+ handleRailMouseEnter(itemId) {
19
+ this.fire('rail-item-mouseenter', itemId);
20
+ }
21
+ handleRailMouseLeave(itemId) {
22
+ this.fire('rail-item-mouseleave', itemId);
23
+ }
24
+ render() {
25
+ return html `<div class="rail-top"><slot name="rail-top"></slot></div>
26
+ <nav class="nav">
27
+ <ul>
28
+ ${repeat(this.items, (item) => {
29
+ if (item.type === 'separator') {
30
+ return html ` <li class="rail-separator"></li> `;
31
+ }
32
+ else {
33
+ const classes = { hidden: item.type === 'hidden' };
34
+ return html `
35
+ <li class=${classMap(classes)}>
36
+ <exm-navigation-rail-nav-item
37
+ @click=${() => this.handleRailClick(item.id)}
38
+ @mouseenter=${() => this.handleRailMouseEnter(item.id)}
39
+ @mouseleave=${() => this.handleRailMouseLeave(item.id)}
40
+ label=${item.label}
41
+ icon=${item.icon || ''}
42
+ ?hasSubMenu=${(item.items || []).length > 0}
43
+ itemId=${item.id}
44
+ .selected=${this.selected[0] === item.id}
45
+ ></exm-navigation-rail-nav-item>
46
+ </li>
47
+ `;
48
+ }
49
+ })}
50
+ </ul>
51
+ </nav>
52
+ <div class="rail-bottom"><slot name="rail-bottom"></slot></div>`;
53
+ }
54
+ }
55
+ ExmNavigationRailBase.styles = [style];
56
+ __decorate([
57
+ property({ type: Array })
58
+ ], ExmNavigationRailBase.prototype, "items", void 0);
59
+ __decorate([
60
+ property({ type: Array })
61
+ ], ExmNavigationRailBase.prototype, "selected", void 0);
62
+ //# sourceMappingURL=exm-navigation-rail-base.js.map
@@ -0,0 +1,12 @@
1
+ import { LitElement } from 'lit';
2
+ import '@material/web/focus/md-focus-ring.js';
3
+ import './exm-navigation-icon.js';
4
+ export declare class ExmNavigationRailNavItemBase extends LitElement {
5
+ icon: string;
6
+ itemId?: string;
7
+ label?: string;
8
+ selected: boolean;
9
+ hasSubMenu: boolean;
10
+ static styles: import("lit").CSSResult[];
11
+ render(): import("lit-html").TemplateResult<1>;
12
+ }
@@ -0,0 +1,37 @@
1
+ import { __decorate } from "tslib";
2
+ import { LitElement, html } from 'lit';
3
+ import { property } from 'lit/decorators.js';
4
+ import { style } from './styles/exm-navigation-rail-nav-item-css.js';
5
+ import '@material/web/focus/md-focus-ring.js';
6
+ import './exm-navigation-icon.js';
7
+ export class ExmNavigationRailNavItemBase extends LitElement {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.icon = '';
11
+ this.selected = false;
12
+ this.hasSubMenu = false;
13
+ }
14
+ render() {
15
+ return html `<button role="link">
16
+ <md-focus-ring></md-focus-ring><exm-navigation-icon class="symbols" icon=${this.icon}></exm-navigation-icon>
17
+ <div class="label">${this.label}</div>
18
+ </button>`;
19
+ }
20
+ }
21
+ ExmNavigationRailNavItemBase.styles = [style];
22
+ __decorate([
23
+ property({ type: String })
24
+ ], ExmNavigationRailNavItemBase.prototype, "icon", void 0);
25
+ __decorate([
26
+ property({ type: String })
27
+ ], ExmNavigationRailNavItemBase.prototype, "itemId", void 0);
28
+ __decorate([
29
+ property({ type: String })
30
+ ], ExmNavigationRailNavItemBase.prototype, "label", void 0);
31
+ __decorate([
32
+ property({ type: Boolean, reflect: true })
33
+ ], ExmNavigationRailNavItemBase.prototype, "selected", void 0);
34
+ __decorate([
35
+ property({ type: Boolean })
36
+ ], ExmNavigationRailNavItemBase.prototype, "hasSubMenu", void 0);
37
+ //# sourceMappingURL=exm-navigation-rail-nav-item-base.js.map
@@ -0,0 +1,8 @@
1
+ import { ExmNavigationRailNavItemBase } from './exm-navigation-rail-nav-item-base.js';
2
+ export declare class ExmNavigationRailNavItem extends ExmNavigationRailNavItemBase {
3
+ }
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'exm-navigation-rail-nav-item': ExmNavigationRailNavItem;
7
+ }
8
+ }
@@ -0,0 +1,10 @@
1
+ import { __decorate } from "tslib";
2
+ import { customElement } from 'lit/decorators.js';
3
+ import { ExmNavigationRailNavItemBase } from './exm-navigation-rail-nav-item-base.js';
4
+ let ExmNavigationRailNavItem = class ExmNavigationRailNavItem extends ExmNavigationRailNavItemBase {
5
+ };
6
+ ExmNavigationRailNavItem = __decorate([
7
+ customElement('exm-navigation-rail-nav-item')
8
+ ], ExmNavigationRailNavItem);
9
+ export { ExmNavigationRailNavItem };
10
+ //# sourceMappingURL=exm-navigation-rail-nav-item.js.map
@@ -0,0 +1,8 @@
1
+ import { ExmNavigationRailBase } from './exm-navigation-rail-base.js';
2
+ export declare class ExmNavigationRail extends ExmNavigationRailBase {
3
+ }
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'exm-navigation-rail': ExmNavigationRail;
7
+ }
8
+ }
@@ -0,0 +1,10 @@
1
+ import { __decorate } from "tslib";
2
+ import { customElement } from 'lit/decorators/custom-element.js';
3
+ import { ExmNavigationRailBase } from './exm-navigation-rail-base.js';
4
+ let ExmNavigationRail = class ExmNavigationRail extends ExmNavigationRailBase {
5
+ };
6
+ ExmNavigationRail = __decorate([
7
+ customElement('exm-navigation-rail')
8
+ ], ExmNavigationRail);
9
+ export { ExmNavigationRail };
10
+ //# sourceMappingURL=exm-navigation-rail.js.map
@@ -0,0 +1,28 @@
1
+ import { PropertyValues } from 'lit';
2
+ import { ExmgElement } from '@exmg/lit-base/index.js';
3
+ import { MenuItem } from './types.js';
4
+ import './exm-navigation-rail-nav-item.js';
5
+ import './exm-navigation-drawer-nav-item.js';
6
+ import '@material/web/list/list.js';
7
+ import '@exmg/exm-collapsed/exm-collapsed.js';
8
+ export declare class ExmNavigationSubMenuBase extends ExmgElement {
9
+ items: MenuItem[];
10
+ path: (string | null)[];
11
+ hasBackButton: boolean;
12
+ currentItem?: MenuItem['items'];
13
+ static itemIndex: number;
14
+ navigationElement?: HTMLElement;
15
+ static styles: import("lit").CSSResult[];
16
+ protected updated(changedProperties: PropertyValues): void;
17
+ connectedCallback(): void;
18
+ disconnectedCallback(): void;
19
+ private handleSubMenuItemClick;
20
+ /**
21
+ * If a collapsable menuitem is not selected we can just pass the path.
22
+ * If it is selected, we remove the item from the path to collapse the menu again
23
+ */
24
+ private handleCollapsableSubMenuItemClick;
25
+ private getItemStyle;
26
+ private renderSubMenu;
27
+ render(): import("lit-html").TemplateResult<1>;
28
+ }