Skip to content

Commit de67709

Browse files
committed
Updating demos.
1 parent 5f6ab0b commit de67709

File tree

6 files changed

+80
-6
lines changed

6 files changed

+80
-6
lines changed

src/pg/menuDivider/menuDivider.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Component, Prop } from '@pictogrammers/element';
1+
import { Component, Prop, Part } from '@pictogrammers/element';
22

33
import template from './menuDivider.html';
44
import style from './menuDivider.css';
@@ -10,4 +10,13 @@ import style from './menuDivider.css';
1010
})
1111
export default class PgMenuDivider extends HTMLElement {
1212
@Prop() focusable = false;
13+
14+
@Part() $divider: HTMLDivElement;
15+
16+
getHeight(): number {
17+
const computedStyle = window.getComputedStyle(this.$divider);
18+
const marginTop = parseFloat(computedStyle.marginTop);
19+
const marginBottom = parseFloat(computedStyle.marginBottom);
20+
return this.$divider.getBoundingClientRect().height + marginTop + marginBottom;
21+
}
1322
}

src/pg/menuItem/README.md

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# `<pg-menu>`
22

3-
The `pg-menu-item` is usually rendered as a child of the `pg-menu`.
3+
The `pg-menu-item` is usually rendered as a child of the `pg-menu` as a `type: PgMenuItem`.
4+
5+
## Usage
46

57
```typescript
68
import '@pictogrammers/components/pgMenuItem.js';
@@ -12,4 +14,14 @@ import '@pictogrammers/components/pgMenuItem.js';
1214

1315
| Attributes | Tested | Description |
1416
| ---------- | -------- | ----------- |
15-
| `label` | | Item label. |
17+
| `label` | | Item label. |
18+
| `checked` | | Item checked. |
19+
| `disabled` | | Item disabled. |
20+
21+
## Events
22+
23+
```typescript
24+
this.$item.addEventListener('select', (e: any) => {
25+
const { index } = e.detail;
26+
});
27+
```

src/pg/menuItem/__examples__/basic/basic.html

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,25 @@
22
<pg-menu-item part="item"></pg-menu-item>
33
</div>
44
<div>
5-
<button>Toggle <code>disabled</code></button>
6-
<button>Toggle <code>checked</code></button>
5+
<table style="border: 1px solid #ddd;margin-block-start: 0.5rem;">
6+
<thead>
7+
<tr>
8+
<th>Property</th>
9+
<th>Value</th>
10+
<th>&nbsp;</th>
11+
</tr>
12+
</thead>
13+
<tbody>
14+
<tr>
15+
<td><code>checked</code></td>
16+
<td part="checkedValue"></td>
17+
<td><input part="checkedToggle" type="checkbox"/></td>
18+
</tr>
19+
<tr>
20+
<td><code>disabled</code></td>
21+
<td part="disabledValue"></td>
22+
<td><input part="disabledToggle" type="checkbox"/></td>
23+
</tr>
24+
</tbody>
25+
</table>
726
</div>

src/pg/menuItem/__examples__/basic/basic.ts

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { Component, Part, Prop } from '@pictogrammers/element';
1+
import { Component, Part } from '@pictogrammers/element';
2+
23
import PgMenuItem from '../../menuItem';
34

45
import template from './basic.html';
@@ -9,10 +10,32 @@ import template from './basic.html';
910
})
1011
export default class XPgMenuItemBasic extends HTMLElement {
1112
@Part() $item: PgMenuItem;
13+
@Part() $checkedToggle: HTMLInputElement;
14+
@Part() $disabledToggle: HTMLInputElement;
15+
@Part() $checkedValue: HTMLDivElement;
16+
@Part() $disabledValue: HTMLDivElement;
1217

1318
connectedCallback() {
1419
this.$item.label = 'Item 1';
1520
this.$item.checked = false;
1621
this.$item.disabled = false;
22+
23+
this.$checkedValue.textContent = `${this.$item.checked}`;
24+
this.$disabledValue.textContent = `${this.$item.disabled}`;
25+
26+
this.$item.addEventListener('select', (e: any) => {
27+
this.$checkedToggle.checked = e.target.checked;
28+
this.$checkedValue.textContent = `${this.$item.checked}`;
29+
});
30+
31+
this.$checkedToggle.addEventListener('change', (e: any) => {
32+
this.$item.checked = e.target.checked;
33+
this.$checkedValue.textContent = `${this.$item.checked}`;
34+
});
35+
36+
this.$disabledToggle.addEventListener('change', (e: any) => {
37+
this.$item.disabled = e.target.checked;
38+
this.$disabledValue.textContent = `${this.$item.disabled}`;
39+
});
1740
}
1841
}

src/pg/menuItem/menuItem.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ export default class PgMenuItem extends HTMLElement {
3434

3535
connectedCallback() {
3636
this.$label.addEventListener('click', () => {
37+
this.checked = true;
3738
this.dispatchEvent(new CustomEvent('select', {
3839
detail: { index: this.index }
3940
}));

src/pg/overlayMenu/__examples__/basic/basic.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import { Component, Part, Prop } from '@pictogrammers/element';
2+
23
import PgMenuItem from '../../../menuItem/menuItem';
4+
import PgMenuDivider from '../../../menuDivider/menuDivider';
35
import PgOverlayMenu from '../../overlayMenu';
46

57
import template from './basic.html';
@@ -33,6 +35,14 @@ export default class XPgOverlayMenuBasic extends HTMLElement {
3335
label: 'Item 2',
3436
value: 'item2',
3537
type: PgMenuItem
38+
},
39+
{
40+
type: PgMenuDivider
41+
},
42+
{
43+
label: 'Item 3',
44+
value: 'item3',
45+
type: PgMenuItem
3646
}];
3747
this.#menuOpen = true;
3848
const result = await PgOverlayMenu.open({

0 commit comments

Comments
 (0)