@nuralyui/menu 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/demo/menus-demo.d.ts +22 -0
- package/demo/menus-demo.d.ts.map +1 -0
- package/demo/menus-demo.js +147 -0
- package/demo/menus-demo.js.map +1 -0
- package/index.d.ts +2 -0
- package/index.d.ts.map +1 -0
- package/index.js +2 -0
- package/index.js.map +1 -0
- package/menu.component.d.ts +19 -0
- package/menu.component.d.ts.map +1 -0
- package/menu.component.js +109 -0
- package/menu.component.js.map +1 -0
- package/menu.constants.d.ts +12 -0
- package/menu.constants.d.ts.map +1 -0
- package/menu.constants.js +14 -0
- package/menu.constants.js.map +1 -0
- package/menu.style.d.ts +2 -0
- package/menu.style.d.ts.map +1 -0
- package/menu.style.js +86 -0
- package/menu.style.js.map +1 -0
- package/menu.types.d.ts +22 -0
- package/menu.types.d.ts.map +1 -0
- package/menu.types.js +2 -0
- package/menu.types.js.map +1 -0
- package/package.json +15 -0
- package/react.d.ts +3 -0
- package/react.d.ts.map +1 -0
- package/react.js +10 -0
- package/react.js.map +1 -0
- package/templates/hy-menu-link.d.ts +30 -0
- package/templates/hy-menu-link.d.ts.map +1 -0
- package/templates/hy-menu-link.js +123 -0
- package/templates/hy-menu-link.js.map +1 -0
- package/templates/hy-sub-menu.d.ts +26 -0
- package/templates/hy-sub-menu.d.ts.map +1 -0
- package/templates/hy-sub-menu.js +96 -0
- package/templates/hy-sub-menu.js.map +1 -0
- package/templates/menu-link.contants.d.ts +5 -0
- package/templates/menu-link.contants.d.ts.map +1 -0
- package/templates/menu-link.contants.js +6 -0
- package/templates/menu-link.contants.js.map +1 -0
- package/templates/menu-link.style.d.ts +2 -0
- package/templates/menu-link.style.d.ts.map +1 -0
- package/templates/menu-link.style.js +96 -0
- package/templates/menu-link.style.js.map +1 -0
- package/templates/sub-menu.style.d.ts +2 -0
- package/templates/sub-menu.style.d.ts.map +1 -0
- package/templates/sub-menu.style.js +81 -0
- package/templates/sub-menu.style.js.map +1 -0
- package/test/menu-link_test.d.ts +2 -0
- package/test/menu-link_test.d.ts.map +1 -0
- package/test/menu-link_test.js +85 -0
- package/test/menu-link_test.js.map +1 -0
- package/test/menu_test.d.ts +2 -0
- package/test/menu_test.d.ts.map +1 -0
- package/test/menu_test.js +81 -0
- package/test/menu_test.js.map +1 -0
- package/test/sub-menu_test.d.ts +2 -0
- package/test/sub-menu_test.d.ts.map +1 -0
- package/test/sub-menu_test.js +72 -0
- package/test/sub-menu_test.js.map +1 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Google Laabidi Aymen
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import { LitElement } from 'lit';
|
|
7
|
+
import '../menu.component';
|
|
8
|
+
import { IMenu } from '../menu.types';
|
|
9
|
+
export declare class ElMeenuElement extends LitElement {
|
|
10
|
+
path: number[];
|
|
11
|
+
value: string;
|
|
12
|
+
items: IMenu[];
|
|
13
|
+
items2: IMenu[];
|
|
14
|
+
items3: IMenu[];
|
|
15
|
+
protected render(): import("lit").TemplateResult<1>;
|
|
16
|
+
}
|
|
17
|
+
declare global {
|
|
18
|
+
interface HTMLElementTagNameMap {
|
|
19
|
+
'hy-menu-demo': ElMeenuElement;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=menus-demo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menus-demo.d.ts","sourceRoot":"","sources":["../../../../src/components/menu/demo/menus-demo.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,EAAC,UAAU,EAAO,MAAM,KAAK,CAAC;AAErC,OAAO,mBAAmB,CAAC;AAC3B,OAAO,EAAC,KAAK,EAAC,MAAM,eAAe,CAAC;AAEpC,qBACa,cAAe,SAAQ,UAAU;IAE5C,IAAI,EAAG,MAAM,EAAE,CAAC;IAEhB,KAAK,EAAG,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,EAAE,CAmCZ;IAEF,MAAM,EAAE,KAAK,EAAE,CA0Bb;IAEF,MAAM,EAAE,KAAK,EAAE,CAab;cAEiB,MAAM;CA4C1B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,cAAc,CAAC;KAChC;CACF"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
|
+
/**
|
|
4
|
+
* @license
|
|
5
|
+
* Copyright 2023 Google Laabidi Aymen
|
|
6
|
+
* SPDX-License-Identifier: MIT
|
|
7
|
+
*/
|
|
8
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
9
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
10
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
11
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
12
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
13
|
+
};
|
|
14
|
+
import { LitElement, html } from 'lit';
|
|
15
|
+
import { customElement, state } from 'lit/decorators.js';
|
|
16
|
+
import '../menu.component';
|
|
17
|
+
let ElMeenuElement = class ElMeenuElement extends LitElement {
|
|
18
|
+
constructor() {
|
|
19
|
+
super(...arguments);
|
|
20
|
+
this.items = [
|
|
21
|
+
{
|
|
22
|
+
text: 'First Menu',
|
|
23
|
+
selected: true,
|
|
24
|
+
children: [
|
|
25
|
+
{ text: 'Submenu 1-1', link: 'Submenu 1-1 link', icon: 'globe', menu: { icon: 'bars', actions: [{ label: 'Delete', value: 'delete' }, { label: 'Rename', value: 'rename' }] }, status: { icon: 'warning', label: 'warning' }
|
|
26
|
+
},
|
|
27
|
+
{ text: 'Submenu 1-2', link: 'Submenu 1-2 link', icon: 'tree', menu: { icon: 'bars', actions: [{ label: 'Delete', value: 'delete' }, { label: 'Rename', value: 'rename' }] }, status: { icon: 'warning', label: 'warning' },
|
|
28
|
+
children: [
|
|
29
|
+
{ text: 'Submenu 1-1', link: 'Submenu 1-1 link', icon: 'globe', menu: { icon: 'bars', actions: [{ label: 'Delete', value: 'delete' }, { label: 'Rename', value: 'rename' }] }, status: { icon: 'circle-exclamation', label: 'error' }
|
|
30
|
+
},
|
|
31
|
+
{ text: 'Submenu 1-2', link: 'Submenu 1-2 link', icon: 'tree', menu: { icon: 'bars', actions: [{ label: 'Delete', value: 'delete' }, { label: 'Rename', value: 'rename' }] }, status: { icon: 'warning', label: 'warning' },
|
|
32
|
+
children: [
|
|
33
|
+
{ text: 'Submenu 1-1', link: 'Submenu 1-1 link', icon: 'globe', menu: { icon: 'bars', actions: [{ label: 'Delete', value: 'delete' }, { label: 'Rename', value: 'rename' }] }, status: { icon: 'circle-exclamation', label: 'error' }
|
|
34
|
+
},
|
|
35
|
+
{ text: 'Submenu 1-2', link: 'Submenu 1-2 link', icon: 'tree', menu: { icon: 'bars', actions: [{ label: 'Delete', value: 'delete' }, { label: 'Rename', value: 'rename' }] }, status: { icon: 'warning', label: 'warning' }
|
|
36
|
+
},
|
|
37
|
+
], },
|
|
38
|
+
] },
|
|
39
|
+
],
|
|
40
|
+
disabled: false,
|
|
41
|
+
icon: 'bug',
|
|
42
|
+
menu: { icon: 'bars', actions: [{ label: 'Delete', value: 'delete' }, { label: 'Rename', value: 'rename' }] },
|
|
43
|
+
status: { icon: 'warning', label: 'warning' }
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
text: 'Second Menu',
|
|
47
|
+
children: [
|
|
48
|
+
{ text: 'Submenu 2-1', link: 'Submenu 2-1 link', icon: 'cloud', menu: { icon: 'bars', actions: [{ label: 'Delete', value: 'delete' }, { label: 'Rename', value: 'rename' }] } },
|
|
49
|
+
{ text: 'Submenu 2-2', link: 'Submenu 2-2 link', icon: 'wifi', menu: { icon: 'bars', actions: [{ label: 'Delete', value: 'delete' }, { label: 'Rename', value: 'rename' }] } },
|
|
50
|
+
],
|
|
51
|
+
link: '',
|
|
52
|
+
menu: { icon: 'bars', actions: [{ label: 'Delete', value: 'delete' }, { label: 'Rename', value: 'rename' }] }
|
|
53
|
+
},
|
|
54
|
+
];
|
|
55
|
+
this.items2 = [
|
|
56
|
+
{
|
|
57
|
+
text: 'First Menu',
|
|
58
|
+
disabled: false,
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
text: 'First Menu',
|
|
62
|
+
children: [
|
|
63
|
+
{ text: 'Submenu 1-1', link: 'Submenu 1-1 link', icon: 'globe', iconPosition: 'right' },
|
|
64
|
+
{ text: 'Submenu 1-2', link: 'Submenu 1-2 link', icon: 'tree', children: [
|
|
65
|
+
{ text: 'Submenu 1-1', link: 'Submenu 1-1 link', icon: 'globe', iconPosition: 'right' },
|
|
66
|
+
{ text: 'Submenu 1-2', link: 'Submenu 1-2 link', icon: 'tree' },
|
|
67
|
+
], },
|
|
68
|
+
],
|
|
69
|
+
disabled: false,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
text: 'Second Menu',
|
|
73
|
+
children: [
|
|
74
|
+
{ text: 'Submenu 2-1', link: 'Submenu 2-1 link', icon: 'cloud' },
|
|
75
|
+
{ text: 'Submenu 2-2', link: 'Submenu 2-2 link', icon: 'wifi' },
|
|
76
|
+
],
|
|
77
|
+
link: '',
|
|
78
|
+
},
|
|
79
|
+
];
|
|
80
|
+
this.items3 = [
|
|
81
|
+
{
|
|
82
|
+
text: 'Submenu 0-0', link: 'Submenu 1-1 link', icon: 'globe', iconPosition: 'right',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
text: 'Submenu 0-1', link: 'Submenu 1-1 link', icon: 'globe', iconPosition: 'right',
|
|
86
|
+
}, {
|
|
87
|
+
text: 'Submenu 0-2', link: 'Submenu 1-1 link', icon: 'globe', iconPosition: 'right',
|
|
88
|
+
},
|
|
89
|
+
];
|
|
90
|
+
}
|
|
91
|
+
render() {
|
|
92
|
+
var _a;
|
|
93
|
+
return html `
|
|
94
|
+
<h3>Treeview</h3>
|
|
95
|
+
<hy-menu
|
|
96
|
+
.items=${this.items}
|
|
97
|
+
@action-click=${(e) => {
|
|
98
|
+
console.log('action name', e.detail.value);
|
|
99
|
+
console.log('option path', e.detail.path);
|
|
100
|
+
}}
|
|
101
|
+
@change=${(e) => {
|
|
102
|
+
this.path = e.detail.path;
|
|
103
|
+
this.value = e.detail.value;
|
|
104
|
+
}}
|
|
105
|
+
></hy-menu>
|
|
106
|
+
path: ${(_a = this.path) === null || _a === void 0 ? void 0 : _a.join('-')} value: ${this.value}
|
|
107
|
+
|
|
108
|
+
<h3>Treeview</h3>
|
|
109
|
+
<hy-menu
|
|
110
|
+
.items=${this.items}
|
|
111
|
+
@change=${(e) => {
|
|
112
|
+
this.path = e.detail.path;
|
|
113
|
+
this.value = e.detail.value;
|
|
114
|
+
}}
|
|
115
|
+
></hy-menu>
|
|
116
|
+
|
|
117
|
+
<h3>Treeview</h3>
|
|
118
|
+
<hy-menu
|
|
119
|
+
.items=${this.items2}
|
|
120
|
+
@change=${(e) => {
|
|
121
|
+
this.path = e.detail.path;
|
|
122
|
+
this.value = e.detail.value;
|
|
123
|
+
}}
|
|
124
|
+
></hy-menu>
|
|
125
|
+
|
|
126
|
+
<h3>Treeview</h3>
|
|
127
|
+
<hy-menu
|
|
128
|
+
.items=${this.items3}
|
|
129
|
+
@change=${(e) => {
|
|
130
|
+
this.path = e.detail.path;
|
|
131
|
+
this.value = e.detail.value;
|
|
132
|
+
}}
|
|
133
|
+
></hy-menu>
|
|
134
|
+
`;
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
__decorate([
|
|
138
|
+
state()
|
|
139
|
+
], ElMeenuElement.prototype, "path", void 0);
|
|
140
|
+
__decorate([
|
|
141
|
+
state()
|
|
142
|
+
], ElMeenuElement.prototype, "value", void 0);
|
|
143
|
+
ElMeenuElement = __decorate([
|
|
144
|
+
customElement('hy-menu-demo')
|
|
145
|
+
], ElMeenuElement);
|
|
146
|
+
export { ElMeenuElement };
|
|
147
|
+
//# sourceMappingURL=menus-demo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menus-demo.js","sourceRoot":"","sources":["../../../../src/components/menu/demo/menus-demo.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * @license\n * Copyright 2023 Google Laabidi Aymen\n * SPDX-License-Identifier: MIT\n */\n\nimport {LitElement, html} from 'lit';\nimport {customElement, state} from 'lit/decorators.js';\nimport '../menu.component';\nimport {IMenu} from '../menu.types';\n\n@customElement('hy-menu-demo')\nexport class ElMeenuElement extends LitElement {\n @state()\n path!: number[];\n @state()\n value!: string;\n items: IMenu[] = [\n {\n text: 'First Menu',\n selected:true,\n children: [\n {text: 'Submenu 1-1', link: 'Submenu 1-1 link', icon: 'globe',menu:{icon:'bars',actions:[{label:'Delete',value:'delete'},{label:'Rename',value:'rename'}]},status:{icon:'warning',label:'warning'}\n },\n {text: 'Submenu 1-2', link: 'Submenu 1-2 link', icon: 'tree',menu:{icon:'bars',actions:[{label:'Delete',value:'delete'},{label:'Rename',value:'rename'}]},status:{icon:'warning',label:'warning'}\n ,children: [\n {text: 'Submenu 1-1', link: 'Submenu 1-1 link', icon: 'globe',menu:{icon:'bars',actions:[{label:'Delete',value:'delete'},{label:'Rename',value:'rename'}]},status:{icon:'circle-exclamation',label:'error'}\n },\n {text: 'Submenu 1-2', link: 'Submenu 1-2 link', icon: 'tree',menu:{icon:'bars',actions:[{label:'Delete',value:'delete'},{label:'Rename',value:'rename'}]},status:{icon:'warning',label:'warning'}\n ,children: [\n {text: 'Submenu 1-1', link: 'Submenu 1-1 link', icon: 'globe',menu:{icon:'bars',actions:[{label:'Delete',value:'delete'},{label:'Rename',value:'rename'}]},status:{icon:'circle-exclamation',label:'error'}\n },\n {text: 'Submenu 1-2', link: 'Submenu 1-2 link', icon: 'tree',menu:{icon:'bars',actions:[{label:'Delete',value:'delete'},{label:'Rename',value:'rename'}]},status:{icon:'warning',label:'warning'}\n },\n ],},\n ]},\n ],\n disabled: false,\n icon:'bug',\n menu:{icon:'bars',actions:[{label:'Delete',value:'delete'},{label:'Rename',value:'rename'}]},\n status:{icon:'warning',label:'warning'}\n },\n {\n text: 'Second Menu',\n children: [\n {text: 'Submenu 2-1', link: 'Submenu 2-1 link', icon: 'cloud',menu:{icon:'bars',actions:[{label:'Delete',value:'delete'},{label:'Rename',value:'rename'}]}},\n {text: 'Submenu 2-2', link: 'Submenu 2-2 link', icon: 'wifi',menu:{icon:'bars',actions:[{label:'Delete',value:'delete'},{label:'Rename',value:'rename'}]}},\n \n ],\n link: '',\n menu:{icon:'bars',actions:[{label:'Delete',value:'delete'},{label:'Rename',value:'rename'}]}\n },\n ];\n\n items2: IMenu[] = [\n {\n text: 'First Menu',\n disabled: false,\n },\n {\n text: 'First Menu',\n children: [\n {text: 'Submenu 1-1', link: 'Submenu 1-1 link', icon: 'globe', iconPosition: 'right'},\n {text: 'Submenu 1-2', link: 'Submenu 1-2 link', icon: 'tree', children: [\n {text: 'Submenu 1-1', link: 'Submenu 1-1 link', icon: 'globe', iconPosition: 'right'},\n {text: 'Submenu 1-2', link: 'Submenu 1-2 link', icon: 'tree'},\n ],},\n \n ],\n disabled: false,\n },\n {\n text: 'Second Menu',\n children: [\n {text: 'Submenu 2-1', link: 'Submenu 2-1 link', icon: 'cloud'},\n {text: 'Submenu 2-2', link: 'Submenu 2-2 link', icon: 'wifi'},\n \n ],\n link: '',\n },\n ];\n\n items3: IMenu[] = [\n {\n text: 'Submenu 0-0', link: 'Submenu 1-1 link', icon: 'globe', iconPosition: 'right',\n \n },\n {\n text: 'Submenu 0-1', link: 'Submenu 1-1 link', icon: 'globe', iconPosition: 'right',\n \n }, {\n text: 'Submenu 0-2', link: 'Submenu 1-1 link', icon: 'globe', iconPosition: 'right',\n \n },\n \n ];\n\n protected override render() {\n return html`\n <h3>Treeview</h3>\n <hy-menu\n .items=${this.items}\n @action-click=${(e:CustomEvent)=>{\n console.log('action name',e.detail.value)\n console.log('option path',e.detail.path)\n }}\n @change=${(e: CustomEvent) => {\n this.path = e.detail.path;\n this.value = e.detail.value;\n }}\n ></hy-menu>\n path: ${this.path?.join('-')} value: ${this.value}\n\n <h3>Treeview</h3>\n <hy-menu\n .items=${this.items}\n @change=${(e: CustomEvent) => {\n this.path = e.detail.path;\n this.value = e.detail.value;\n }}\n ></hy-menu>\n\n <h3>Treeview</h3>\n <hy-menu\n .items=${this.items2}\n @change=${(e: CustomEvent) => {\n this.path = e.detail.path;\n this.value = e.detail.value;\n }}\n ></hy-menu>\n\n <h3>Treeview</h3>\n <hy-menu\n .items=${this.items3}\n @change=${(e: CustomEvent) => {\n this.path = e.detail.path;\n this.value = e.detail.value;\n }}\n ></hy-menu>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hy-menu-demo': ElMeenuElement;\n }\n}\n"]}
|
package/index.d.ts
ADDED
package/index.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/menu/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
|
package/index.js
ADDED
package/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/menu/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC","sourcesContent":["export * from './menu.component.js';\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import { IMenu } from './menu.types.js';
|
|
3
|
+
import './templates/hy-menu-link.js';
|
|
4
|
+
import './templates/hy-sub-menu.js';
|
|
5
|
+
export declare class HyMenuComponent extends LitElement {
|
|
6
|
+
private _currentSelectedLink;
|
|
7
|
+
_menuLinks: NodeListOf<HTMLElement>;
|
|
8
|
+
_subMenues: NodeListOf<HTMLElement>;
|
|
9
|
+
items: IMenu[];
|
|
10
|
+
firstUpdated(): void;
|
|
11
|
+
_getPreSelectedIndex(): void;
|
|
12
|
+
_updateSelectedLink(updateSelectedLinkEvent: CustomEvent): void;
|
|
13
|
+
_handleInitHighlighted(): void;
|
|
14
|
+
_selectMenu(selectMenuEvent: CustomEvent): void;
|
|
15
|
+
_display(items: IMenu[], path?: number[]): any;
|
|
16
|
+
render(): import("lit").TemplateResult<1>;
|
|
17
|
+
static styles: import("lit").CSSResult[][];
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=menu.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu.component.d.ts","sourceRoot":"","sources":["../../../src/components/menu/menu.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAO,MAAM,KAAK,CAAC;AAGrC,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,6BAA6B,CAAC;AACrC,OAAO,4BAA4B,CAAC;AAEpC,qBACa,eAAgB,SAAQ,UAAU;IAC7C,OAAO,CAAC,oBAAoB,CAAU;IAEtC,UAAU,EAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAGrC,UAAU,EAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAGrC,KAAK,EAAG,KAAK,EAAE,CAAC;IAEP,YAAY,IAAI,IAAI;IAI7B,oBAAoB;IAKpB,mBAAmB,CAAC,uBAAuB,EAAE,WAAW;IAoBxD,sBAAsB;IAOtB,WAAW,CAAC,eAAe,EAAC,WAAW;IAWvC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,GAAG;IAkCzC,MAAM;IAQf,OAAgB,MAAM,8BAAY;CACnC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
8
|
+
import { LitElement, html } from 'lit';
|
|
9
|
+
import { customElement, property, queryAll } from 'lit/decorators.js';
|
|
10
|
+
import { styles } from './menu.style.js';
|
|
11
|
+
import './templates/hy-menu-link.js';
|
|
12
|
+
import './templates/hy-sub-menu.js';
|
|
13
|
+
let HyMenuComponent = class HyMenuComponent extends LitElement {
|
|
14
|
+
firstUpdated() {
|
|
15
|
+
this._getPreSelectedIndex();
|
|
16
|
+
}
|
|
17
|
+
_getPreSelectedIndex() {
|
|
18
|
+
const listOfLinks = [...this._menuLinks.values()];
|
|
19
|
+
this._currentSelectedLink = listOfLinks.findIndex((element) => element.hasAttribute('selected'));
|
|
20
|
+
}
|
|
21
|
+
_updateSelectedLink(updateSelectedLinkEvent) {
|
|
22
|
+
var _a;
|
|
23
|
+
this._handleInitHighlighted();
|
|
24
|
+
const newSelectedIndex = updateSelectedLinkEvent.detail.index;
|
|
25
|
+
const value = updateSelectedLinkEvent.detail.value;
|
|
26
|
+
if (this._currentSelectedLink >= 0)
|
|
27
|
+
this._menuLinks[this._currentSelectedLink].removeAttribute('selected');
|
|
28
|
+
this._menuLinks[newSelectedIndex].setAttribute('selected', 'true');
|
|
29
|
+
this._currentSelectedLink = newSelectedIndex;
|
|
30
|
+
const pathToOption = (_a = this._menuLinks[newSelectedIndex]
|
|
31
|
+
.getAttribute('data-path')) === null || _a === void 0 ? void 0 : _a.split('-').map((valueString) => +valueString);
|
|
32
|
+
this.dispatchEvent(new CustomEvent('change', {
|
|
33
|
+
bubbles: true,
|
|
34
|
+
composed: true,
|
|
35
|
+
detail: { path: pathToOption, value },
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
_handleInitHighlighted() {
|
|
39
|
+
this._subMenues.forEach((element) => {
|
|
40
|
+
if (element.hasAttribute('highlighted')) {
|
|
41
|
+
element.removeAttribute('highlighted');
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
_selectMenu(selectMenuEvent) {
|
|
46
|
+
if (this._currentSelectedLink >= 0) {
|
|
47
|
+
this._menuLinks[this._currentSelectedLink].removeAttribute('selected');
|
|
48
|
+
this._currentSelectedLink = -1;
|
|
49
|
+
}
|
|
50
|
+
this._handleInitHighlighted();
|
|
51
|
+
this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true, detail: { path: selectMenuEvent.detail.path, value: selectMenuEvent.detail.value } }));
|
|
52
|
+
}
|
|
53
|
+
_display(items, path = []) {
|
|
54
|
+
return items.map((menu, index) => {
|
|
55
|
+
const currentPath = [...path, index].join('-');
|
|
56
|
+
if (menu.children) {
|
|
57
|
+
return html `
|
|
58
|
+
<hy-sub-menu
|
|
59
|
+
.menu=${menu.menu}
|
|
60
|
+
.text=${menu.text}
|
|
61
|
+
.icon=${menu.icon}
|
|
62
|
+
.disabled=${menu.disabled}
|
|
63
|
+
.status=${menu.status}
|
|
64
|
+
.highlighted=${menu.selected}
|
|
65
|
+
data-path=${currentPath}
|
|
66
|
+
@select-menu=${this._selectMenu}>
|
|
67
|
+
${this._display(menu.children, [...path, index])}
|
|
68
|
+
</hy-sub-menu>
|
|
69
|
+
`;
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
return html ` <hy-menu-link
|
|
73
|
+
data-path=${currentPath}
|
|
74
|
+
icon=${menu.icon}
|
|
75
|
+
.menu=${menu.menu}
|
|
76
|
+
.status=${menu.status}
|
|
77
|
+
text=${menu.text}
|
|
78
|
+
link=${menu.link}
|
|
79
|
+
iconposition=${menu.iconPosition}
|
|
80
|
+
?selected=${menu.selected}
|
|
81
|
+
?disabled=${menu.disabled}
|
|
82
|
+
@selected-link=${this._updateSelectedLink}
|
|
83
|
+
></hy-menu-link>`;
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
render() {
|
|
88
|
+
return html `
|
|
89
|
+
<ul>
|
|
90
|
+
${this._display(this.items)}
|
|
91
|
+
</ul>
|
|
92
|
+
`;
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
HyMenuComponent.styles = [styles];
|
|
96
|
+
__decorate([
|
|
97
|
+
queryAll('hy-menu-link')
|
|
98
|
+
], HyMenuComponent.prototype, "_menuLinks", void 0);
|
|
99
|
+
__decorate([
|
|
100
|
+
queryAll('hy-sub-menu')
|
|
101
|
+
], HyMenuComponent.prototype, "_subMenues", void 0);
|
|
102
|
+
__decorate([
|
|
103
|
+
property()
|
|
104
|
+
], HyMenuComponent.prototype, "items", void 0);
|
|
105
|
+
HyMenuComponent = __decorate([
|
|
106
|
+
customElement('hy-menu')
|
|
107
|
+
], HyMenuComponent);
|
|
108
|
+
export { HyMenuComponent };
|
|
109
|
+
//# sourceMappingURL=menu.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu.component.js","sourceRoot":"","sources":["../../../src/components/menu/menu.component.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {LitElement, html} from 'lit';\nimport {customElement, property, queryAll} from 'lit/decorators.js';\nimport {styles} from './menu.style.js';\nimport {IMenu} from './menu.types.js';\nimport './templates/hy-menu-link.js';\nimport './templates/hy-sub-menu.js';\n\n@customElement('hy-menu')\nexport class HyMenuComponent extends LitElement {\n private _currentSelectedLink!: number;\n @queryAll('hy-menu-link')\n _menuLinks!: NodeListOf<HTMLElement>;\n\n @queryAll('hy-sub-menu')\n _subMenues!: NodeListOf<HTMLElement>;\n\n @property()\n items!: IMenu[];\n\n override firstUpdated(): void {\n this._getPreSelectedIndex();\n }\n\n _getPreSelectedIndex() {\n const listOfLinks = [...this._menuLinks.values()];\n this._currentSelectedLink = listOfLinks.findIndex((element) => element.hasAttribute('selected'));\n }\n\n _updateSelectedLink(updateSelectedLinkEvent: CustomEvent) {\n this._handleInitHighlighted();\n const newSelectedIndex = updateSelectedLinkEvent.detail.index;\n const value = updateSelectedLinkEvent.detail.value;\n if (this._currentSelectedLink >= 0) this._menuLinks[this._currentSelectedLink].removeAttribute('selected');\n this._menuLinks[newSelectedIndex].setAttribute('selected', 'true');\n this._currentSelectedLink = newSelectedIndex;\n const pathToOption = this._menuLinks[newSelectedIndex]\n .getAttribute('data-path')\n ?.split('-')\n .map((valueString) => +valueString);\n this.dispatchEvent(\n new CustomEvent('change', {\n bubbles: true,\n composed: true,\n detail: {path: pathToOption, value},\n })\n );\n }\n\n _handleInitHighlighted() {\n this._subMenues.forEach((element) => {\n if (element.hasAttribute('highlighted')) {\n element.removeAttribute('highlighted');\n }\n });\n }\n _selectMenu(selectMenuEvent:CustomEvent){\n if (this._currentSelectedLink >= 0) \n {\n this._menuLinks[this._currentSelectedLink].removeAttribute('selected');\n this._currentSelectedLink = -1;\n }\n\n this._handleInitHighlighted()\n this.dispatchEvent(new CustomEvent('change',{bubbles:true,composed:true,detail:{path:selectMenuEvent.detail.path,value:selectMenuEvent.detail.value}}));\n }\n\n _display(items: IMenu[], path: number[] = []): any {\n return items.map((menu, index) => {\n const currentPath = [...path, index].join('-');\n if (menu.children) {\n return html`\n <hy-sub-menu \n .menu=${menu.menu} \n .text=${menu.text} \n .icon=${menu.icon} \n .disabled=${menu.disabled} \n .status=${menu.status}\n .highlighted=${menu.selected}\n data-path=${currentPath} \n @select-menu=${this._selectMenu}>\n ${this._display(menu.children, [...path, index])}\n </hy-sub-menu>\n `;\n } else {\n return html` <hy-menu-link\n data-path=${currentPath}\n icon=${menu.icon}\n .menu=${menu.menu}\n .status=${menu.status}\n text=${menu.text}\n link=${menu.link}\n iconposition=${menu.iconPosition}\n ?selected=${menu.selected}\n ?disabled=${menu.disabled}\n @selected-link=${this._updateSelectedLink}\n ></hy-menu-link>`;\n }\n });\n }\n\n override render() {\n return html`\n <ul>\n ${this._display(this.items)}\n </ul>\n `;\n }\n\n static override styles = [styles];\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const EMPTY_STRING = "";
|
|
2
|
+
export declare const NOTHING_STRING = "";
|
|
3
|
+
export declare enum OPTION_TYPES {
|
|
4
|
+
GROUP = "group",
|
|
5
|
+
DIVIDER = "divider"
|
|
6
|
+
}
|
|
7
|
+
export declare enum TRIGGERS {
|
|
8
|
+
Click = "click",
|
|
9
|
+
Hover = "hover",
|
|
10
|
+
ContextMenu = "context-menu"
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=menu.constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu.constants.d.ts","sourceRoot":"","sources":["../../../src/components/menu/menu.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,KAAK,CAAC;AAC/B,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,oBAAY,YAAY;IACtB,KAAK,UAAU;IACf,OAAO,YAAY;CACpB;AAED,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,WAAW,iBAAiB;CAC7B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const EMPTY_STRING = '';
|
|
2
|
+
export const NOTHING_STRING = '';
|
|
3
|
+
export var OPTION_TYPES;
|
|
4
|
+
(function (OPTION_TYPES) {
|
|
5
|
+
OPTION_TYPES["GROUP"] = "group";
|
|
6
|
+
OPTION_TYPES["DIVIDER"] = "divider";
|
|
7
|
+
})(OPTION_TYPES || (OPTION_TYPES = {}));
|
|
8
|
+
export var TRIGGERS;
|
|
9
|
+
(function (TRIGGERS) {
|
|
10
|
+
TRIGGERS["Click"] = "click";
|
|
11
|
+
TRIGGERS["Hover"] = "hover";
|
|
12
|
+
TRIGGERS["ContextMenu"] = "context-menu";
|
|
13
|
+
})(TRIGGERS || (TRIGGERS = {}));
|
|
14
|
+
//# sourceMappingURL=menu.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu.constants.js","sourceRoot":"","sources":["../../../src/components/menu/menu.constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAC/B,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,+BAAe,CAAA;IACf,mCAAmB,CAAA;AACrB,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;AAED,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,wCAA4B,CAAA;AAC9B,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB","sourcesContent":["export const EMPTY_STRING = '';\nexport const NOTHING_STRING = '';\nexport enum OPTION_TYPES {\n GROUP = 'group',\n DIVIDER = 'divider',\n}\n\nexport enum TRIGGERS {\n Click = 'click',\n Hover = 'hover',\n ContextMenu = 'context-menu',\n}\n"]}
|
package/menu.style.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu.style.d.ts","sourceRoot":"","sources":["../../../src/components/menu/menu.style.ts"],"names":[],"mappings":"AAqFA,eAAO,MAAM,MAAM,2BAAc,CAAC"}
|
package/menu.style.js
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
const menuStyle = css `
|
|
3
|
+
ul {
|
|
4
|
+
width: var(--hybrid-menu-width);
|
|
5
|
+
padding: var(--hybrid-menu-padding);
|
|
6
|
+
border: var(--hybrid-menu-border);
|
|
7
|
+
font-size: var(--hybrid-menu-font-size);
|
|
8
|
+
font-family: var(--hybrid-menu-font-family)
|
|
9
|
+
}
|
|
10
|
+
:host {
|
|
11
|
+
--hybrid-menu-font-size:13px;
|
|
12
|
+
--hybrid-menu-font-family:serif;
|
|
13
|
+
--hybrid-menu-padding: 2px;
|
|
14
|
+
--hybrid-menu-width: 45%;
|
|
15
|
+
--hybrid-menu-border: 1px solid #f4f4f4;
|
|
16
|
+
--hybrid-menu-link-color: #000000;
|
|
17
|
+
--hybrid-menu-link-icon-color: #525252;
|
|
18
|
+
--hybrid-menu-disabled-link-color: #c6c6c6;
|
|
19
|
+
--hybrid-menu-focus-border: 1px solid #0f62fe;
|
|
20
|
+
--hybrid-menu-focus-color: #000000;
|
|
21
|
+
--hybrid-menu-active-color: #000000;
|
|
22
|
+
--hybrid-menu-active-background-color: #c6c6c6;
|
|
23
|
+
--hybrid-menu-hover-link-background-color: #f4f4f4;
|
|
24
|
+
--hybrid-menu-hover-link-color: #000000;
|
|
25
|
+
--hybrid-menu-selected-link-background-color: #e0e0e0;
|
|
26
|
+
--hybrid-menu-selected-link-border: 3px solid #0f62fe;
|
|
27
|
+
--hybrid-menu-selected-color: #000000;
|
|
28
|
+
--hybrid-menu-link-background-color: transparent;
|
|
29
|
+
--hybrid-menu-link-padding-y: 8px;
|
|
30
|
+
--hybrid-menu-link-empty-icon-padding-left: 39px;
|
|
31
|
+
--hybrid-menu-link-icon-padding-right: 15px;
|
|
32
|
+
--hybrid-menu-link-icon-padding-left: 10px;
|
|
33
|
+
--hybrid-menu-link-icon-right-padding-left: 39px;
|
|
34
|
+
--hybrid-menu-link-icon-only-width: 42px;
|
|
35
|
+
--hybrid-sub-menu-color: #000000;
|
|
36
|
+
--hybrid-sub-menu-disabled-color: #c6c6c6;
|
|
37
|
+
--hybrid-sub-menu-focus-color: #525252;
|
|
38
|
+
--hybrid-sub-menu-focus-border: 1px solid #0f62fe;
|
|
39
|
+
--hybrid-sub-menu-hover-background-color: #f4f4f4;
|
|
40
|
+
--hybrid-sub-menu-hover-color: #161616;
|
|
41
|
+
--hybrid-sub-menu-active-background-color: #c6c6c6;
|
|
42
|
+
--hybrid-sub-menu-active-color: #000000;
|
|
43
|
+
--hybrid-sub-menu-highlighted-color: #000000;
|
|
44
|
+
--hybrid-sub-menu-highlighted-background-color: #e2e2e2;
|
|
45
|
+
--hybrid-sub-menu-text-icon-color: #525252;
|
|
46
|
+
--hybrid-sub-menu-action-icon-color:#525252;
|
|
47
|
+
--hybrid-sub-menu-status-icon-color:#525252;
|
|
48
|
+
--hybrid-sub-menu-toggle-icon-color: #525252;
|
|
49
|
+
--hybrid-sub-menu-padding-y: 8px;
|
|
50
|
+
--hybrid-sub-menu-margin-y: 0px;
|
|
51
|
+
--hybrid-sub-menu-padding-left: 10px;
|
|
52
|
+
--hybrid-sub-menu-padding-left-text: 15px;
|
|
53
|
+
--hybrid-sub-menu-empty-icon-padding-left-text: 29px;
|
|
54
|
+
--hybrid-sub-menu-children-padding-left: 15px;
|
|
55
|
+
}
|
|
56
|
+
@media (prefers-color-scheme: dark) {
|
|
57
|
+
:host {
|
|
58
|
+
--hybrid-menu-border: 1px solid #ffffff;
|
|
59
|
+
--hybrid-menu-link-color:#ffffff;
|
|
60
|
+
--hybrid-menu-focus-border: 1px solid #ffffff;
|
|
61
|
+
--hybrid-menu-focus-color: #ffffff;
|
|
62
|
+
--hybrid-menu-hover-link-background-color: #333333;
|
|
63
|
+
--hybrid-menu-hover-link-color: #ffffff;
|
|
64
|
+
--hybrid-menu-active-color: #ffffff;
|
|
65
|
+
--hybrid-menu-active-background-color: #242424;
|
|
66
|
+
--hybrid-menu-selected-link-border: 3px solid #ffffff;
|
|
67
|
+
--hybrid-menu-selected-link-background-color: #3a3a3a;
|
|
68
|
+
--hybrid-menu-selected-color:#ffffff;
|
|
69
|
+
--hybrid-menu-disabled-link-color: #525252;
|
|
70
|
+
--hybrid-sub-menu-color: #ffffff;
|
|
71
|
+
--hybrid-sub-menu-disabled-color: #525252;
|
|
72
|
+
--hybrid-sub-menu-focus-border: 1px solid #ffffff;
|
|
73
|
+
--hybrid-sub-menu-focus-color: #525252;
|
|
74
|
+
--hybrid-sub-menu-hover-background-color: #333333;
|
|
75
|
+
--hybrid-sub-menu-hover-color: #ffffff;
|
|
76
|
+
--hybrid-sub-menu-active-background-color: #242424;
|
|
77
|
+
--hybrid-sub-menu-active-color: #ffffff;
|
|
78
|
+
--hybrid-sub-menu-highlighted-color: #ffffff;
|
|
79
|
+
--hybrid-sub-menu-highlighted-background-color: #3a3a3a;
|
|
80
|
+
--hybrid-sub-menu-text-icon-color: #525252;
|
|
81
|
+
--hybrid-sub-menu-toggle-icon-color: #525252;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
`;
|
|
85
|
+
export const styles = [menuStyle];
|
|
86
|
+
//# sourceMappingURL=menu.style.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu.style.js","sourceRoot":"","sources":["../../../src/components/menu/menu.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB,MAAM,SAAS,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkFpB,CAAC;AACF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC","sourcesContent":["import {css} from 'lit';\n\nconst menuStyle = css`\n ul {\n width: var(--hybrid-menu-width);\n padding: var(--hybrid-menu-padding);\n border: var(--hybrid-menu-border);\n font-size: var(--hybrid-menu-font-size);\n font-family: var(--hybrid-menu-font-family)\n }\n :host {\n --hybrid-menu-font-size:13px;\n --hybrid-menu-font-family:serif;\n --hybrid-menu-padding: 2px;\n --hybrid-menu-width: 45%;\n --hybrid-menu-border: 1px solid #f4f4f4;\n --hybrid-menu-link-color: #000000;\n --hybrid-menu-link-icon-color: #525252;\n --hybrid-menu-disabled-link-color: #c6c6c6;\n --hybrid-menu-focus-border: 1px solid #0f62fe;\n --hybrid-menu-focus-color: #000000;\n --hybrid-menu-active-color: #000000;\n --hybrid-menu-active-background-color: #c6c6c6;\n --hybrid-menu-hover-link-background-color: #f4f4f4;\n --hybrid-menu-hover-link-color: #000000;\n --hybrid-menu-selected-link-background-color: #e0e0e0;\n --hybrid-menu-selected-link-border: 3px solid #0f62fe;\n --hybrid-menu-selected-color: #000000;\n --hybrid-menu-link-background-color: transparent;\n --hybrid-menu-link-padding-y: 8px;\n --hybrid-menu-link-empty-icon-padding-left: 39px;\n --hybrid-menu-link-icon-padding-right: 15px;\n --hybrid-menu-link-icon-padding-left: 10px;\n --hybrid-menu-link-icon-right-padding-left: 39px;\n --hybrid-menu-link-icon-only-width: 42px;\n --hybrid-sub-menu-color: #000000;\n --hybrid-sub-menu-disabled-color: #c6c6c6;\n --hybrid-sub-menu-focus-color: #525252;\n --hybrid-sub-menu-focus-border: 1px solid #0f62fe;\n --hybrid-sub-menu-hover-background-color: #f4f4f4;\n --hybrid-sub-menu-hover-color: #161616;\n --hybrid-sub-menu-active-background-color: #c6c6c6;\n --hybrid-sub-menu-active-color: #000000;\n --hybrid-sub-menu-highlighted-color: #000000;\n --hybrid-sub-menu-highlighted-background-color: #e2e2e2;\n --hybrid-sub-menu-text-icon-color: #525252;\n --hybrid-sub-menu-action-icon-color:#525252;\n --hybrid-sub-menu-status-icon-color:#525252;\n --hybrid-sub-menu-toggle-icon-color: #525252;\n --hybrid-sub-menu-padding-y: 8px;\n --hybrid-sub-menu-margin-y: 0px;\n --hybrid-sub-menu-padding-left: 10px;\n --hybrid-sub-menu-padding-left-text: 15px;\n --hybrid-sub-menu-empty-icon-padding-left-text: 29px;\n --hybrid-sub-menu-children-padding-left: 15px;\n }\n @media (prefers-color-scheme: dark) {\n :host {\n --hybrid-menu-border: 1px solid #ffffff;\n --hybrid-menu-link-color:#ffffff;\n --hybrid-menu-focus-border: 1px solid #ffffff;\n --hybrid-menu-focus-color: #ffffff;\n --hybrid-menu-hover-link-background-color: #333333;\n --hybrid-menu-hover-link-color: #ffffff;\n --hybrid-menu-active-color: #ffffff;\n --hybrid-menu-active-background-color: #242424;\n --hybrid-menu-selected-link-border: 3px solid #ffffff;\n --hybrid-menu-selected-link-background-color: #3a3a3a;\n --hybrid-menu-selected-color:#ffffff;\n --hybrid-menu-disabled-link-color: #525252;\n --hybrid-sub-menu-color: #ffffff;\n --hybrid-sub-menu-disabled-color: #525252;\n --hybrid-sub-menu-focus-border: 1px solid #ffffff;\n --hybrid-sub-menu-focus-color: #525252;\n --hybrid-sub-menu-hover-background-color: #333333;\n --hybrid-sub-menu-hover-color: #ffffff;\n --hybrid-sub-menu-active-background-color: #242424;\n --hybrid-sub-menu-active-color: #ffffff;\n --hybrid-sub-menu-highlighted-color: #ffffff;\n --hybrid-sub-menu-highlighted-background-color: #3a3a3a;\n --hybrid-sub-menu-text-icon-color: #525252;\n --hybrid-sub-menu-toggle-icon-color: #525252;\n }\n }\n`;\nexport const styles = [menuStyle];\n"]}
|
package/menu.types.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface IMenu {
|
|
2
|
+
text: string;
|
|
3
|
+
link?: string;
|
|
4
|
+
menu?: {
|
|
5
|
+
icon: string;
|
|
6
|
+
actions: IAction[];
|
|
7
|
+
};
|
|
8
|
+
status?: {
|
|
9
|
+
icon: string;
|
|
10
|
+
label: string;
|
|
11
|
+
};
|
|
12
|
+
icon?: string;
|
|
13
|
+
iconPosition?: string;
|
|
14
|
+
selected?: boolean;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
children?: IMenu[];
|
|
17
|
+
}
|
|
18
|
+
export interface IAction {
|
|
19
|
+
label: string;
|
|
20
|
+
value: string;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=menu.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu.types.d.ts","sourceRoot":"","sources":["../../../src/components/menu/menu.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAC;QAAC,IAAI,EAAC,MAAM,CAAC;QAAA,OAAO,EAAC,OAAO,EAAE,CAAA;KAAC,CAAC;IACtC,MAAM,CAAC,EAAC;QAAC,IAAI,EAAC,MAAM,CAAC;QAAA,KAAK,EAAC,MAAM,CAAA;KAAC,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;CACpB;AACD,MAAM,WAAW,OAAO;IACtB,KAAK,EAAC,MAAM,CAAC;IACb,KAAK,EAAC,MAAM,CAAA;CACb"}
|
package/menu.types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu.types.js","sourceRoot":"","sources":["../../../src/components/menu/menu.types.ts"],"names":[],"mappings":"","sourcesContent":["export interface IMenu {\n text: string;\n link?: string;\n menu?:{icon:string,actions:IAction[]};\n status?:{icon:string,label:string};\n icon?: string;\n iconPosition?: string;\n selected?: boolean;\n disabled?: boolean;\n children?: IMenu[];\n}\nexport interface IAction{\n label:string,\n value:string\n}\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@nuralyui/menu",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"dayjs": "^1.11.7"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
12
|
+
},
|
|
13
|
+
"author": "Labidi Aymen",
|
|
14
|
+
"license": "ISC"
|
|
15
|
+
}
|
package/react.d.ts
ADDED
package/react.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../../src/components/menu/react.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AACpD,eAAO,MAAM,UAAU,kEAKrB,CAAC"}
|
package/react.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createComponent } from '@lit-labs/react';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { HyMenuComponent } from './menu.component.js';
|
|
4
|
+
export const HyDropdown = createComponent({
|
|
5
|
+
tagName: 'hy-menu',
|
|
6
|
+
elementClass: HyMenuComponent,
|
|
7
|
+
react: React,
|
|
8
|
+
events: {},
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=react.js.map
|
package/react.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../../../src/components/menu/react.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AACpD,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC;IACxC,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,eAAe;IAC7B,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,EAAE;CACX,CAAC,CAAC","sourcesContent":["import {createComponent} from '@lit-labs/react';\nimport * as React from 'react';\nimport {HyMenuComponent} from './menu.component.js';\nexport const HyDropdown = createComponent({\n tagName: 'hy-menu',\n elementClass: HyMenuComponent,\n react: React,\n events: {},\n});\n"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import { ICON_POSITION } from './menu-link.contants.js';
|
|
3
|
+
import { IAction } from '../menu.types.js';
|
|
4
|
+
import '../../dropdown/hy-dropdown.component.js';
|
|
5
|
+
export declare class HyMenuLink extends LitElement {
|
|
6
|
+
static index: number;
|
|
7
|
+
private linkPosition;
|
|
8
|
+
text: string;
|
|
9
|
+
link: string;
|
|
10
|
+
disabled: boolean;
|
|
11
|
+
icon: string;
|
|
12
|
+
iconPosition: ICON_POSITION;
|
|
13
|
+
selected: boolean;
|
|
14
|
+
menu: {
|
|
15
|
+
icon: string;
|
|
16
|
+
actions: IAction[];
|
|
17
|
+
};
|
|
18
|
+
status: {
|
|
19
|
+
icon: string;
|
|
20
|
+
label: string;
|
|
21
|
+
};
|
|
22
|
+
optionPath: number[];
|
|
23
|
+
connectedCallback(): void;
|
|
24
|
+
firstUpdated(): void;
|
|
25
|
+
_clickLink(event?: Event): void;
|
|
26
|
+
onActionClick(e: CustomEvent): void;
|
|
27
|
+
render(): import("lit").TemplateResult<1>;
|
|
28
|
+
static styles: import("lit").CSSResult;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=hy-menu-link.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hy-menu-link.d.ts","sourceRoot":"","sources":["../../../../src/components/menu/templates/hy-menu-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAgB,MAAM,KAAK,CAAC;AAI9C,OAAO,EAAC,aAAa,EAAC,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,yCAAyC,CAAA;AAEhD,qBACa,UAAW,SAAQ,UAAU;IACxC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;IAGrB,OAAO,CAAC,YAAY,CAAU;IAG9B,IAAI,SAAgB;IAGpB,IAAI,EAAG,MAAM,CAAC;IAGd,QAAQ,UAAS;IAGjB,IAAI,SAAgB;IAGpB,YAAY,gBAAsB;IAGlC,QAAQ,UAAS;IAGjB,IAAI,EAAE;QAAC,IAAI,EAAC,MAAM,CAAC;QAAA,OAAO,EAAC,OAAO,EAAE,CAAA;KAAC,CAAA;IAGrC,MAAM,EAAE;QAAC,IAAI,EAAC,MAAM,CAAC;QAAA,KAAK,EAAC,MAAM,CAAA;KAAC,CAAA;IAElC,UAAU,EAAE,MAAM,EAAE,CAAC;IAGZ,iBAAiB,IAAI,IAAI;IAYzB,YAAY,IAAI,IAAI;IAM7B,UAAU,CAAC,KAAK,CAAC,EAAC,KAAK;IAYvB,aAAa,CAAC,CAAC,EAAC,WAAW;IAIlB,MAAM;IAsCf,OAAgB,MAAM,0BAAU;CACjC"}
|