Skip to content

Commit e5a3fad

Browse files
author
Grzegorz Bujański
committed
release: 6.2.0
1 parent d4120a5 commit e5a3fad

File tree

12 files changed

+139
-27
lines changed

12 files changed

+139
-27
lines changed

README.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
MDB5
2-
Version: FREE 6.1.0
2+
Version: FREE 6.2.0
33

44
Documentation:
55
https://mdbootstrap.com/docs/standard/

css/mdb.dark.min.css.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

css/mdb.dark.rtl.min.css.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

css/mdb.min.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

css/mdb.min.css.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

css/mdb.rtl.min.css.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/mdb.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/mdb.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "mdb-ui-kit",
3-
"version": "6.1.0",
3+
"version": "6.2.0",
44
"main": "js/mdb.min.js",
55
"homepage": "https://mdbootstrap.com/docs/standard/",
66
"repository": "https://github.com/mdbootstrap/mdb-ui-kit.git",

src/js/free/collapse.js

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
import { getjQuery, onDOMContentLoaded } from '../mdb/util/index';
2+
import EventHandler from '../mdb/dom/event-handler';
3+
import SelectorEngine from '../mdb/dom/selector-engine';
4+
import BSCollapse from '../bootstrap/mdb-prefix/collapse';
5+
6+
/**
7+
* ------------------------------------------------------------------------
8+
* Constants
9+
* ------------------------------------------------------------------------
10+
*/
11+
12+
const NAME = 'collapse';
13+
const DATA_KEY = `mdb.${NAME}`;
14+
const EVENT_KEY = `.${DATA_KEY}`;
15+
16+
const EVENT_SHOW_BS = 'show.bs.collapse';
17+
const EVENT_SHOWN_BS = 'shown.bs.collapse';
18+
const EVENT_HIDE_BS = 'hide.bs.collapse';
19+
const EVENT_HIDDEN_BS = 'hidden.bs.collapse';
20+
21+
const EVENT_SHOW = `show${EVENT_KEY}`;
22+
const EVENT_SHOWN = `shown${EVENT_KEY}`;
23+
const EVENT_HIDE = `hide${EVENT_KEY}`;
24+
const EVENT_HIDDEN = `hidden${EVENT_KEY}`;
25+
26+
const SELECTOR_DATA_TOGGLE = '[data-mdb-toggle="collapse"]';
27+
28+
class Collapse extends BSCollapse {
29+
constructor(element, data = {}) {
30+
super(element, data);
31+
32+
this._init();
33+
}
34+
35+
dispose() {
36+
EventHandler.off(this._element, EVENT_SHOW_BS);
37+
EventHandler.off(this._element, EVENT_SHOWN_BS);
38+
EventHandler.off(this._element, EVENT_HIDE_BS);
39+
EventHandler.off(this._element, EVENT_HIDDEN_BS);
40+
41+
super.dispose();
42+
}
43+
44+
// Getters
45+
static get NAME() {
46+
return NAME;
47+
}
48+
49+
// Private
50+
_init() {
51+
this._bindShowEvent();
52+
this._bindShownEvent();
53+
this._bindHideEvent();
54+
this._bindHiddenEvent();
55+
}
56+
57+
_bindShowEvent() {
58+
EventHandler.on(this._element, EVENT_SHOW_BS, () => {
59+
EventHandler.trigger(this._element, EVENT_SHOW);
60+
});
61+
}
62+
63+
_bindShownEvent() {
64+
EventHandler.on(this._element, EVENT_SHOWN_BS, () => {
65+
EventHandler.trigger(this._element, EVENT_SHOWN);
66+
});
67+
}
68+
69+
_bindHideEvent() {
70+
EventHandler.on(this._element, EVENT_HIDE_BS, () => {
71+
EventHandler.trigger(this._element, EVENT_HIDE);
72+
});
73+
}
74+
75+
_bindHiddenEvent() {
76+
EventHandler.on(this._element, EVENT_HIDDEN_BS, () => {
77+
EventHandler.trigger(this._element, EVENT_HIDDEN);
78+
});
79+
}
80+
}
81+
82+
/**
83+
* ------------------------------------------------------------------------
84+
* Data Api implementation - auto initialization
85+
* ------------------------------------------------------------------------
86+
*/
87+
88+
SelectorEngine.find(SELECTOR_DATA_TOGGLE).forEach((el) => {
89+
let instance = Collapse.getInstance(el);
90+
if (!instance) {
91+
instance = new Collapse(el, { toggle: false });
92+
}
93+
});
94+
95+
/**
96+
* ------------------------------------------------------------------------
97+
* jQuery
98+
* ------------------------------------------------------------------------
99+
* add .rating to jQuery only if jQuery is present
100+
*/
101+
onDOMContentLoaded(() => {
102+
const $ = getjQuery();
103+
104+
if ($) {
105+
const JQUERY_NO_CONFLICT = $.fn[NAME];
106+
$.fn[NAME] = Collapse.jQueryInterface;
107+
$.fn[NAME].Constructor = Collapse;
108+
$.fn[NAME].noConflict = () => {
109+
$.fn[NAME] = JQUERY_NO_CONFLICT;
110+
return Collapse.jQueryInterface;
111+
};
112+
}
113+
});
114+
115+
export default Collapse;

0 commit comments

Comments
 (0)