@progressive-development/pd-page 0.1.24 → 0.1.26
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 +27 -20
package/package.json
CHANGED
package/src/PdMenu.js
CHANGED
|
@@ -117,15 +117,18 @@ export class PdMenu extends LitElement {
|
|
|
117
117
|
--pd-icon-stroke-col: var(--pd-default-bg-col);
|
|
118
118
|
--pd-icon-col: var(--pd-default-dark-col);
|
|
119
119
|
pointer-events: none;
|
|
120
|
-
}
|
|
120
|
+
}
|
|
121
121
|
|
|
122
122
|
/* An anderer Stelle teils das Image von außen gestylt, das macht es wahrschweinlich
|
|
123
|
-
einfacher als hier einzeln zu stylen. noch zu prüfen
|
|
123
|
+
einfacher als hier einzeln zu stylen. noch zu prüfen
|
|
124
|
+
*/
|
|
124
125
|
::slotted(.logo) {
|
|
125
126
|
max-width: var(--pd-menu-logo-maxwidth, 8rem);
|
|
126
127
|
width: 100%;
|
|
127
|
-
padding: var(--pd-menu-logo-padding, 2em);
|
|
128
|
+
padding: var(--pd-menu-logo-padding, 2em);
|
|
129
|
+
fill: var(--pd-menu-logo-color, #067394);
|
|
128
130
|
}
|
|
131
|
+
|
|
129
132
|
|
|
130
133
|
/**
|
|
131
134
|
* Style for drop down menu on small screens.
|
|
@@ -204,7 +207,7 @@ export class PdMenu extends LitElement {
|
|
|
204
207
|
}
|
|
205
208
|
|
|
206
209
|
firstUpdated() {
|
|
207
|
-
const doSomething = scrollPos => {
|
|
210
|
+
const doSomething = (scrollPos) => {
|
|
208
211
|
let activeSecIndex = -1;
|
|
209
212
|
let distance = scrollPos > 300 ? 5000 : 300; // start value, define when first item is active
|
|
210
213
|
this.menuItems.forEach((item, index) => {
|
|
@@ -221,7 +224,7 @@ export class PdMenu extends LitElement {
|
|
|
221
224
|
};
|
|
222
225
|
|
|
223
226
|
let ticking = false;
|
|
224
|
-
|
|
227
|
+
this.addEventListener('scroll', () => {
|
|
225
228
|
const lastKnownScrollPosition = window.scrollY;
|
|
226
229
|
if (!ticking) {
|
|
227
230
|
window.requestAnimationFrame(() => {
|
|
@@ -231,9 +234,6 @@ export class PdMenu extends LitElement {
|
|
|
231
234
|
ticking = true;
|
|
232
235
|
}
|
|
233
236
|
});
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
render() {
|
|
237
237
|
|
|
238
238
|
installMediaQueryWatcher(`(max-width: 700px)`, matches => {
|
|
239
239
|
if (matches) {
|
|
@@ -242,10 +242,13 @@ export class PdMenu extends LitElement {
|
|
|
242
242
|
this._smallScreen = false;
|
|
243
243
|
}
|
|
244
244
|
});
|
|
245
|
+
}
|
|
245
246
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
247
|
+
render() {
|
|
248
|
+
|
|
249
|
+
return html`
|
|
250
|
+
<div class="menu-container">
|
|
251
|
+
<slot @click="${PdMenu._scrollToTop}" name="slotLogo"></slot>
|
|
249
252
|
<ul>
|
|
250
253
|
${this._renderItems(this._smallScreen ? [...this.menuItems, ...this.topMenuItems] : this.menuItems, true, this._smallScreen)}
|
|
251
254
|
</ul>
|
|
@@ -272,8 +275,7 @@ export class PdMenu extends LitElement {
|
|
|
272
275
|
class="item ${checkActiveClass && this._activeSecIndex === index + 1
|
|
273
276
|
? 'active'
|
|
274
277
|
: ''}"
|
|
275
|
-
data-
|
|
276
|
-
data-route="${item.route}"
|
|
278
|
+
data-key="${item.key}"
|
|
277
279
|
@click="${this._menuItemClicked}"
|
|
278
280
|
>
|
|
279
281
|
${item.icon && !disableIcons
|
|
@@ -294,20 +296,25 @@ export class PdMenu extends LitElement {
|
|
|
294
296
|
}
|
|
295
297
|
|
|
296
298
|
_menuItemClicked(e) {
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
const
|
|
300
|
-
|
|
299
|
+
|
|
300
|
+
// get menu item
|
|
301
|
+
const keyParam = e.target.dataset.key;
|
|
302
|
+
const menuItem = this.menuItems.filter(mi => mi.key === keyParam)[0];
|
|
303
|
+
|
|
304
|
+
if (menuItem.sec && menuItem.sec !== '') {
|
|
301
305
|
// TODO: Check if element exists
|
|
302
|
-
this._scrollToContent(
|
|
303
|
-
} else if (
|
|
306
|
+
this._scrollToContent(menuItem.sec);
|
|
307
|
+
} else if (menuItem.route && menuItem.route !== '') {
|
|
304
308
|
this.dispatchEvent(
|
|
305
309
|
new CustomEvent('route-event', {
|
|
306
310
|
detail: {
|
|
307
|
-
route:
|
|
311
|
+
route: menuItem.route === 'back' ? '' : menuItem.route,
|
|
308
312
|
},
|
|
309
313
|
})
|
|
310
314
|
);
|
|
315
|
+
} else if (menuItem.action) {
|
|
316
|
+
// call action
|
|
317
|
+
menuItem.action();
|
|
311
318
|
}
|
|
312
319
|
|
|
313
320
|
// close menu if open
|