|
1 | 1 | /*! |
2 | | - * Materialize v2.0.4 (https://materializeweb.com) |
| 2 | + * Materialize v2.1.0 (https://materializeweb.com) |
3 | 3 | * Copyright 2014-2024 Materialize |
4 | 4 | * MIT License (https://raw.githubusercontent.com/materializecss/materialize/master/LICENSE) |
5 | 5 | */ |
@@ -3711,7 +3711,12 @@ class Modal extends component_1.Component { |
3711 | 3711 | this.options.onOpenStart.call(this, this.el, this._openingTrigger); |
3712 | 3712 | } |
3713 | 3713 | if (this.options.preventScrolling) { |
3714 | | - document.body.style.overflow = 'hidden'; |
| 3714 | + const hasVerticalScrollBar = document.documentElement.scrollHeight > document.documentElement.clientHeight; |
| 3715 | + if (hasVerticalScrollBar) { |
| 3716 | + const scrollTop = document.documentElement.scrollTop; |
| 3717 | + document.documentElement.style.top = '-' + scrollTop + "px"; |
| 3718 | + document.documentElement.classList.add('noscroll'); |
| 3719 | + } |
3715 | 3720 | } |
3716 | 3721 | this.el.classList.add('open'); |
3717 | 3722 | this.el.insertAdjacentElement('afterend', this._overlay); |
@@ -3740,7 +3745,10 @@ class Modal extends component_1.Component { |
3740 | 3745 | this.el.classList.remove('open'); |
3741 | 3746 | // Enable body scrolling only if there are no more modals open. |
3742 | 3747 | if (Modal._modalsOpen === 0) { |
3743 | | - document.body.style.overflow = ''; |
| 3748 | + const scrollTop = -parseInt(document.documentElement.style.top); |
| 3749 | + document.documentElement.style.removeProperty("top"); |
| 3750 | + document.documentElement.classList.remove('noscroll'); |
| 3751 | + document.documentElement.scrollTop = scrollTop; |
3744 | 3752 | } |
3745 | 3753 | if (this.options.dismissible) { |
3746 | 3754 | document.removeEventListener('keydown', this._handleKeydown); |
@@ -4670,11 +4678,9 @@ class FormSelect extends component_1.Component { |
4670 | 4678 | // Makes new element to assume HTML's select label and aria-attributes, if exists |
4671 | 4679 | /* |
4672 | 4680 | if (this.el.hasAttribute("aria-labelledby")){ |
4673 | | - console.log(1); |
4674 | 4681 | this.labelEl = <HTMLLabelElement>document.getElementById(this.el.getAttribute("aria-labelledby")); |
4675 | 4682 | } |
4676 | 4683 | else if (this.el.id != ""){ |
4677 | | - console.log(2); |
4678 | 4684 | const label = document.createElement('label'); |
4679 | 4685 | label.setAttribute('for', this.el.id); |
4680 | 4686 | if (label){ |
@@ -6884,9 +6890,13 @@ class Toast { |
6884 | 6890 | } |
6885 | 6891 | } |
6886 | 6892 | _createToast() { |
6887 | | - const toast = this.options.toastId |
| 6893 | + let toast = this.options.toastId |
6888 | 6894 | ? document.getElementById(this.options.toastId) |
6889 | 6895 | : document.createElement('div'); |
| 6896 | + if (toast instanceof HTMLTemplateElement) { |
| 6897 | + const node = toast.content.cloneNode(true); |
| 6898 | + toast = node.firstElementChild; |
| 6899 | + } |
6890 | 6900 | toast.classList.add('toast'); |
6891 | 6901 | toast.setAttribute('role', 'alert'); |
6892 | 6902 | toast.setAttribute('aria-live', 'assertive'); |
@@ -6957,7 +6967,7 @@ class Toast { |
6957 | 6967 | this.options.completeCallback(); |
6958 | 6968 | } |
6959 | 6969 | // Remove toast from DOM |
6960 | | - if (!this.options.toastId) { |
| 6970 | + if (this.el.id != this.options.toastId) { |
6961 | 6971 | this.el.remove(); |
6962 | 6972 | Toast._toasts.splice(Toast._toasts.indexOf(this), 1); |
6963 | 6973 | if (Toast._toasts.length === 0) { |
@@ -7658,7 +7668,7 @@ class M { |
7658 | 7668 | } |
7659 | 7669 | } |
7660 | 7670 | exports.M = M; |
7661 | | -M.version = '2.0.4'; |
| 7671 | +M.version = '2.1.0'; |
7662 | 7672 | M.Autocomplete = autocomplete_1.Autocomplete; |
7663 | 7673 | M.Tabs = tabs_1.Tabs; |
7664 | 7674 | M.Carousel = carousel_1.Carousel; |
|
0 commit comments