@progressive-development/pd-page 0.1.25 → 0.1.27
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/package.json +1 -1
- package/src/PdMenu.js +22 -15
package/package.json
CHANGED
package/src/PdMenu.js
CHANGED
|
@@ -207,7 +207,7 @@ export class PdMenu extends LitElement {
|
|
|
207
207
|
}
|
|
208
208
|
|
|
209
209
|
firstUpdated() {
|
|
210
|
-
const doSomething = scrollPos => {
|
|
210
|
+
const doSomething = (scrollPos) => {
|
|
211
211
|
let activeSecIndex = -1;
|
|
212
212
|
let distance = scrollPos > 300 ? 5000 : 300; // start value, define when first item is active
|
|
213
213
|
this.menuItems.forEach((item, index) => {
|
|
@@ -224,7 +224,7 @@ export class PdMenu extends LitElement {
|
|
|
224
224
|
};
|
|
225
225
|
|
|
226
226
|
let ticking = false;
|
|
227
|
-
|
|
227
|
+
this.addEventListener('scroll', () => {
|
|
228
228
|
const lastKnownScrollPosition = window.scrollY;
|
|
229
229
|
if (!ticking) {
|
|
230
230
|
window.requestAnimationFrame(() => {
|
|
@@ -234,9 +234,6 @@ export class PdMenu extends LitElement {
|
|
|
234
234
|
ticking = true;
|
|
235
235
|
}
|
|
236
236
|
});
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
render() {
|
|
240
237
|
|
|
241
238
|
installMediaQueryWatcher(`(max-width: 700px)`, matches => {
|
|
242
239
|
if (matches) {
|
|
@@ -245,6 +242,9 @@ export class PdMenu extends LitElement {
|
|
|
245
242
|
this._smallScreen = false;
|
|
246
243
|
}
|
|
247
244
|
});
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
render() {
|
|
248
248
|
|
|
249
249
|
return html`
|
|
250
250
|
<div class="menu-container">
|
|
@@ -275,8 +275,7 @@ export class PdMenu extends LitElement {
|
|
|
275
275
|
class="item ${checkActiveClass && this._activeSecIndex === index + 1
|
|
276
276
|
? 'active'
|
|
277
277
|
: ''}"
|
|
278
|
-
data-
|
|
279
|
-
data-route="${item.route}"
|
|
278
|
+
data-key="${item.key}"
|
|
280
279
|
@click="${this._menuItemClicked}"
|
|
281
280
|
>
|
|
282
281
|
${item.icon && !disableIcons
|
|
@@ -296,21 +295,29 @@ export class PdMenu extends LitElement {
|
|
|
296
295
|
this._activeBurgerMenu = !this._activeBurgerMenu;
|
|
297
296
|
}
|
|
298
297
|
|
|
299
|
-
_menuItemClicked(e) {
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
const
|
|
303
|
-
|
|
298
|
+
_menuItemClicked(e) {
|
|
299
|
+
|
|
300
|
+
// get menu item
|
|
301
|
+
const keyParam = e.target.dataset.key;
|
|
302
|
+
const menuItem = this.menuItems.filter(mi => mi.key === keyParam)[0]
|
|
303
|
+
|| this.topMenuItems.filter(mi => mi.key === keyParam)[0];
|
|
304
|
+
|
|
305
|
+
if (menuItem.sec && menuItem.sec !== '') {
|
|
304
306
|
// TODO: Check if element exists
|
|
305
|
-
this._scrollToContent(
|
|
306
|
-
} else if (
|
|
307
|
+
this._scrollToContent(menuItem.sec);
|
|
308
|
+
} else if (menuItem.route && menuItem.route !== '') {
|
|
307
309
|
this.dispatchEvent(
|
|
308
310
|
new CustomEvent('route-event', {
|
|
309
311
|
detail: {
|
|
310
|
-
route:
|
|
312
|
+
route: menuItem.route === 'back' ? '' : menuItem.route,
|
|
311
313
|
},
|
|
314
|
+
composed: true,
|
|
315
|
+
bubbles: true,
|
|
312
316
|
})
|
|
313
317
|
);
|
|
318
|
+
} else if (menuItem.action) {
|
|
319
|
+
// call action
|
|
320
|
+
menuItem.action();
|
|
314
321
|
}
|
|
315
322
|
|
|
316
323
|
// close menu if open
|