1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
/**
* @api
*/
define([
'uiComponent'
], function (Component) {
'use strict';
return Component.extend({
defaults: {
opened: false,
collapsible: true
},
/**
* Initializes observable properties.
*
* @returns {Collapsible} Chainable.
*/
initObservable: function () {
this._super()
.observe('opened');
return this;
},
/**
* Toggles value of the 'opened' property.
*
* @returns {Collapsible} Chainable.
*/
toggleOpened: function () {
this.opened() ?
this.close() :
this.open();
return this;
},
/**
* Sets 'opened' flag to false.
*
* @returns {Collapsible} Chainable.
*/
close: function () {
if (this.collapsible) {
this.opened(false);
}
return this;
},
/**
* Sets 'opened' flag to true.
*
* @returns {Collapsible} Chainable.
*/
open: function () {
if (this.collapsible) {
this.opened(true);
}
return this;
}
});
});