@websy/websy-designs 1.4.16 → 1.4.18
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/dist/websy-designs-es6.debug.js +55 -3
- package/dist/websy-designs-es6.js +63 -4
- package/dist/websy-designs-es6.min.js +1 -1
- package/dist/websy-designs.debug.js +55 -3
- package/dist/websy-designs.js +63 -4
- package/dist/websy-designs.min.css +1 -1
- package/dist/websy-designs.min.js +1 -1
- package/package.json +1 -1
|
@@ -194,7 +194,7 @@ class ButtonGroup {
|
|
|
194
194
|
}
|
|
195
195
|
this.options.activeItem = index
|
|
196
196
|
if (this.options.onActivate) {
|
|
197
|
-
this.options.onActivate(this.options.items[index], index)
|
|
197
|
+
this.options.onActivate(this.options.items[index], index, event)
|
|
198
198
|
}
|
|
199
199
|
const el = document.getElementById(this.elementId)
|
|
200
200
|
let buttons = Array.from(el.querySelectorAll('.websy-button-group-item'))
|
|
@@ -2510,6 +2510,35 @@ class WebsyNavigationMenu {
|
|
|
2510
2510
|
this.render()
|
|
2511
2511
|
}
|
|
2512
2512
|
}
|
|
2513
|
+
activateItem (id) {
|
|
2514
|
+
const el = document.getElementById(id)
|
|
2515
|
+
if (el) {
|
|
2516
|
+
el.classList.add('active')
|
|
2517
|
+
let parent = el.parentElement
|
|
2518
|
+
while (parent) {
|
|
2519
|
+
if (parent.tagName === 'UL') {
|
|
2520
|
+
parent.classList.remove('websy-menu-collapsed')
|
|
2521
|
+
parent = parent.parentElement
|
|
2522
|
+
}
|
|
2523
|
+
else if (parent.tagName === 'LI') {
|
|
2524
|
+
parent = parent.parentElement
|
|
2525
|
+
}
|
|
2526
|
+
else {
|
|
2527
|
+
parent = null
|
|
2528
|
+
}
|
|
2529
|
+
}
|
|
2530
|
+
}
|
|
2531
|
+
}
|
|
2532
|
+
collapseAll () {
|
|
2533
|
+
const el = document.getElementById(this.elementId)
|
|
2534
|
+
const menuEls = el.querySelectorAll('.websy-child-list')
|
|
2535
|
+
const headerEls = el.querySelectorAll('.websy-menu-header')
|
|
2536
|
+
Array.from(menuEls).forEach(e => e.classList.add('websy-menu-collapsed'))
|
|
2537
|
+
Array.from(headerEls).forEach(e => {
|
|
2538
|
+
e.classList.remove('active')
|
|
2539
|
+
e.classList.remove('menu-open')
|
|
2540
|
+
})
|
|
2541
|
+
}
|
|
2513
2542
|
flattenItems (index, items, level = 0, path = '') {
|
|
2514
2543
|
if (items[index]) {
|
|
2515
2544
|
this.lowestLevel = Math.max(level, this.lowestLevel)
|
|
@@ -2534,10 +2563,16 @@ class WebsyNavigationMenu {
|
|
|
2534
2563
|
if (event.target.classList.contains('trigger-item') && item.level === this.lowestLevel) {
|
|
2535
2564
|
this.toggleMobileMenu('remove')
|
|
2536
2565
|
}
|
|
2537
|
-
if (item.hasChildren === true) {
|
|
2566
|
+
if (item && item.hasChildren === true) {
|
|
2538
2567
|
event.target.classList.toggle('menu-open')
|
|
2539
2568
|
this.toggleMenu(item.id)
|
|
2540
2569
|
}
|
|
2570
|
+
else {
|
|
2571
|
+
const el = document.getElementById(this.elementId)
|
|
2572
|
+
const allEls = el.querySelectorAll('.websy-menu-header')
|
|
2573
|
+
Array.from(allEls).forEach(e => e.classList.remove('active'))
|
|
2574
|
+
event.target.classList.add('active')
|
|
2575
|
+
}
|
|
2541
2576
|
}
|
|
2542
2577
|
if (event.target.classList.contains('websy-menu-mask')) {
|
|
2543
2578
|
this.toggleMobileMenu()
|
|
@@ -2621,6 +2656,23 @@ class WebsyNavigationMenu {
|
|
|
2621
2656
|
html += `</div>`
|
|
2622
2657
|
}
|
|
2623
2658
|
el.innerHTML = html
|
|
2659
|
+
// open the menu if an item is set as 'active'
|
|
2660
|
+
const activeEl = el.querySelector('.websy-menu-header.active')
|
|
2661
|
+
if (activeEl) {
|
|
2662
|
+
let parent = activeEl.parentElement
|
|
2663
|
+
while (parent) {
|
|
2664
|
+
if (parent.tagName === 'UL') {
|
|
2665
|
+
parent.classList.remove('websy-menu-collapsed')
|
|
2666
|
+
parent = parent.parentElement
|
|
2667
|
+
}
|
|
2668
|
+
else if (parent.tagName === 'LI') {
|
|
2669
|
+
parent = parent.parentElement
|
|
2670
|
+
}
|
|
2671
|
+
else {
|
|
2672
|
+
parent = null
|
|
2673
|
+
}
|
|
2674
|
+
}
|
|
2675
|
+
}
|
|
2624
2676
|
if (this.options.enableSearch === true) {
|
|
2625
2677
|
this.search = new WebsyDesigns.Search(`${this.elementId}_search`, Object.assign({}, {
|
|
2626
2678
|
onSearch: this.handleSearch.bind(this),
|
|
@@ -2649,7 +2701,7 @@ class WebsyNavigationMenu {
|
|
|
2649
2701
|
}
|
|
2650
2702
|
html += `
|
|
2651
2703
|
<li class='websy-${this.options.orientation}-list-item ${items[i].alwaysOpen === true ? 'always-open' : ''}'>
|
|
2652
|
-
<div class='websy-menu-header ${items[i].classes || ''} ${selected} ${active}'
|
|
2704
|
+
<div class='websy-menu-header websy-menu-level-${level} ${items[i].classes || ''} ${selected} ${active}'
|
|
2653
2705
|
id='${blockId}'
|
|
2654
2706
|
data-id='${currentBlock}'
|
|
2655
2707
|
data-path='${items[i].path}'
|
|
@@ -250,7 +250,7 @@ var ButtonGroup = /*#__PURE__*/function () {
|
|
|
250
250
|
this.options.activeItem = index;
|
|
251
251
|
|
|
252
252
|
if (this.options.onActivate) {
|
|
253
|
-
this.options.onActivate(this.options.items[index], index);
|
|
253
|
+
this.options.onActivate(this.options.items[index], index, event);
|
|
254
254
|
}
|
|
255
255
|
|
|
256
256
|
var el = document.getElementById(this.elementId);
|
|
@@ -2642,6 +2642,41 @@ var WebsyNavigationMenu = /*#__PURE__*/function () {
|
|
|
2642
2642
|
}
|
|
2643
2643
|
|
|
2644
2644
|
_createClass(WebsyNavigationMenu, [{
|
|
2645
|
+
key: "activateItem",
|
|
2646
|
+
value: function activateItem(id) {
|
|
2647
|
+
var el = document.getElementById(id);
|
|
2648
|
+
|
|
2649
|
+
if (el) {
|
|
2650
|
+
el.classList.add('active');
|
|
2651
|
+
var parent = el.parentElement;
|
|
2652
|
+
|
|
2653
|
+
while (parent) {
|
|
2654
|
+
if (parent.tagName === 'UL') {
|
|
2655
|
+
parent.classList.remove('websy-menu-collapsed');
|
|
2656
|
+
parent = parent.parentElement;
|
|
2657
|
+
} else if (parent.tagName === 'LI') {
|
|
2658
|
+
parent = parent.parentElement;
|
|
2659
|
+
} else {
|
|
2660
|
+
parent = null;
|
|
2661
|
+
}
|
|
2662
|
+
}
|
|
2663
|
+
}
|
|
2664
|
+
}
|
|
2665
|
+
}, {
|
|
2666
|
+
key: "collapseAll",
|
|
2667
|
+
value: function collapseAll() {
|
|
2668
|
+
var el = document.getElementById(this.elementId);
|
|
2669
|
+
var menuEls = el.querySelectorAll('.websy-child-list');
|
|
2670
|
+
var headerEls = el.querySelectorAll('.websy-menu-header');
|
|
2671
|
+
Array.from(menuEls).forEach(function (e) {
|
|
2672
|
+
return e.classList.add('websy-menu-collapsed');
|
|
2673
|
+
});
|
|
2674
|
+
Array.from(headerEls).forEach(function (e) {
|
|
2675
|
+
e.classList.remove('active');
|
|
2676
|
+
e.classList.remove('menu-open');
|
|
2677
|
+
});
|
|
2678
|
+
}
|
|
2679
|
+
}, {
|
|
2645
2680
|
key: "flattenItems",
|
|
2646
2681
|
value: function flattenItems(index, items) {
|
|
2647
2682
|
var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
@@ -2677,9 +2712,16 @@ var WebsyNavigationMenu = /*#__PURE__*/function () {
|
|
|
2677
2712
|
this.toggleMobileMenu('remove');
|
|
2678
2713
|
}
|
|
2679
2714
|
|
|
2680
|
-
if (item.hasChildren === true) {
|
|
2715
|
+
if (item && item.hasChildren === true) {
|
|
2681
2716
|
event.target.classList.toggle('menu-open');
|
|
2682
2717
|
this.toggleMenu(item.id);
|
|
2718
|
+
} else {
|
|
2719
|
+
var el = document.getElementById(this.elementId);
|
|
2720
|
+
var allEls = el.querySelectorAll('.websy-menu-header');
|
|
2721
|
+
Array.from(allEls).forEach(function (e) {
|
|
2722
|
+
return e.classList.remove('active');
|
|
2723
|
+
});
|
|
2724
|
+
event.target.classList.add('active');
|
|
2683
2725
|
}
|
|
2684
2726
|
}
|
|
2685
2727
|
|
|
@@ -2779,7 +2821,24 @@ var WebsyNavigationMenu = /*#__PURE__*/function () {
|
|
|
2779
2821
|
html += "</div>";
|
|
2780
2822
|
}
|
|
2781
2823
|
|
|
2782
|
-
el.innerHTML = html;
|
|
2824
|
+
el.innerHTML = html; // open the menu if an item is set as 'active'
|
|
2825
|
+
|
|
2826
|
+
var activeEl = el.querySelector('.websy-menu-header.active');
|
|
2827
|
+
|
|
2828
|
+
if (activeEl) {
|
|
2829
|
+
var parent = activeEl.parentElement;
|
|
2830
|
+
|
|
2831
|
+
while (parent) {
|
|
2832
|
+
if (parent.tagName === 'UL') {
|
|
2833
|
+
parent.classList.remove('websy-menu-collapsed');
|
|
2834
|
+
parent = parent.parentElement;
|
|
2835
|
+
} else if (parent.tagName === 'LI') {
|
|
2836
|
+
parent = parent.parentElement;
|
|
2837
|
+
} else {
|
|
2838
|
+
parent = null;
|
|
2839
|
+
}
|
|
2840
|
+
}
|
|
2841
|
+
}
|
|
2783
2842
|
|
|
2784
2843
|
if (this.options.enableSearch === true) {
|
|
2785
2844
|
this.search = new WebsyDesigns.Search("".concat(this.elementId, "_search"), _extends({}, {
|
|
@@ -2814,7 +2873,7 @@ var WebsyNavigationMenu = /*#__PURE__*/function () {
|
|
|
2814
2873
|
items[i].classes = items[i].classes.join(' ');
|
|
2815
2874
|
}
|
|
2816
2875
|
|
|
2817
|
-
html += "\n\t\t\t<li class='websy-".concat(this.options.orientation, "-list-item ").concat(items[i].alwaysOpen === true ? 'always-open' : '', "'>\n\t\t\t\t<div class='websy-menu-header ").concat(items[i].classes || '', " ").concat(selected, " ").concat(active, "' \n id='").concat(blockId, "' \n data-id='").concat(currentBlock, "'\n data-path='").concat(items[i].path, "'\n data-menu-id='").concat(this.elementId, "_").concat(currentBlock, "_list'\n data-popout-id='").concat(level > 1 ? block : currentBlock, "'\n data-text='").concat(items[i].isLink !== true ? items[i].text : '', "'\n style='padding-left: ").concat(level * this.options.childIndentation, "px'\n ").concat(items[i].attributes && items[i].attributes.join(' ') || '', "\n >\n ");
|
|
2876
|
+
html += "\n\t\t\t<li class='websy-".concat(this.options.orientation, "-list-item ").concat(items[i].alwaysOpen === true ? 'always-open' : '', "'>\n\t\t\t\t<div class='websy-menu-header websy-menu-level-").concat(level, " ").concat(items[i].classes || '', " ").concat(selected, " ").concat(active, "' \n id='").concat(blockId, "' \n data-id='").concat(currentBlock, "'\n data-path='").concat(items[i].path, "'\n data-menu-id='").concat(this.elementId, "_").concat(currentBlock, "_list'\n data-popout-id='").concat(level > 1 ? block : currentBlock, "'\n data-text='").concat(items[i].isLink !== true ? items[i].text : '', "'\n style='padding-left: ").concat(level * this.options.childIndentation, "px'\n ").concat(items[i].attributes && items[i].attributes.join(' ') || '', "\n >\n ");
|
|
2818
2877
|
|
|
2819
2878
|
if (this.options.orientation === 'horizontal') {
|
|
2820
2879
|
html += items[i].text;
|