-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathcard-group.js
87 lines (81 loc) · 3.03 KB
/
card-group.js
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import $ from 'jquery';
import ButtonGroup from 'components/button-group';
/**
* @class CardGroup
* @public
*/
export default class CardGroup extends ButtonGroup {
/**
* @method constructor
* @param {Object} options (inherited from ButtonGroup)
* @param {Array} classes
*/
constructor(options) {
super(options);
}
/**
* @method setEvents
* @param {jQuery} template
* @return {jQuery} template
*/
getTemplate() {
this.templates = {
wrapper: (cls = '', blueprints = '', buttons = '') => `
<div class="frontend-blueprint${cls}">
${blueprints}
<div class="frontend-button-group frontend-button-group-blueprint">
<div class="btn-group" role="group" aria-label="">
${buttons}
</div>
</div>
</div>`,
blueprints: (lorem = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.') => `
<div class="card-deck">
<div class="card">
<div class="card-img-top">
<img src="https://dummyimage.com/600x250/777777/dcdcdc" class="img-fluid">
</div>
<div class="card-body">
<div class="card-text">${lorem}</div>
</div>
</div>
<div class="card">
<div class="card-header">
<div class="card-text">Card header</div>
</div>
<div class="card-body">
<div class="card-text">${lorem}</div>
</div>
<div class="card-footer">
<div class="card-text">Card footer</div>
</div>
</div>
<div class="card">
<div class="card-body">
<h4 class="card-title">Card title</h4>
<p class="card-text">${lorem}</p>
<span class="btn-primary">Go somewhere</span>
</div>
</div>
</div>`,
button: (text = '') => `
<span type="button" class="btn btn-default" title="${text}">
${text}
</span>`,
};
let cls = '';
let buttons = this.selectOptions.toArray().reduce((btns, selectOption) => {
let text = $(selectOption).text();
// add button
btns += this.templates.button(text);
return btns;
}, '');
let template = this.templates.wrapper(
cls,
this.templates.blueprints(),
buttons,
);
this.select.addClass('hidden');
return template;
}
}