uniform-ui 2.2.2 → 2.3.2

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.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/lib/assets/javascripts/uniform/checkbox.js +2 -2
  3. data/lib/assets/javascripts/uniform/component.js +65 -9
  4. data/lib/assets/javascripts/uniform/dom-helpers.js +32 -10
  5. data/lib/assets/javascripts/uniform/dropdown.js +106 -38
  6. data/lib/assets/javascripts/uniform/floating-label.js +3 -3
  7. data/lib/assets/javascripts/uniform/modal.js +21 -14
  8. data/lib/assets/javascripts/uniform/popover.js +186 -0
  9. data/lib/assets/javascripts/uniform/resizer.js +1 -1
  10. data/lib/assets/javascripts/uniform/select.js +51 -24
  11. data/lib/assets/javascripts/uniform/tooltip.js +18 -71
  12. data/lib/assets/javascripts/uniform.es5.js +1 -1
  13. data/lib/assets/javascripts/uniform.jquery.js +28 -0
  14. data/lib/assets/javascripts/uniform.js +3 -1
  15. data/lib/assets/stylesheets/uniform/components/alert.scss +2 -2
  16. data/lib/assets/stylesheets/uniform/components/buttons.scss +31 -15
  17. data/lib/assets/stylesheets/uniform/components/card.scss +3 -3
  18. data/lib/assets/stylesheets/uniform/components/dropdown.scss +23 -22
  19. data/lib/assets/stylesheets/uniform/components/form/checkbox-collection.scss +4 -4
  20. data/lib/assets/stylesheets/uniform/components/form/checkbox.scss +1 -1
  21. data/lib/assets/stylesheets/uniform/components/form/floating-label.scss +2 -1
  22. data/lib/assets/stylesheets/uniform/components/form/input-group.scss +2 -2
  23. data/lib/assets/stylesheets/uniform/components/form/tristate.scss +88 -0
  24. data/lib/assets/stylesheets/uniform/components/form.scss +12 -6
  25. data/lib/assets/stylesheets/uniform/components/grid.scss +21 -0
  26. data/lib/assets/stylesheets/uniform/components/label.scss +9 -7
  27. data/lib/assets/stylesheets/uniform/components/loaders.scss +39 -39
  28. data/lib/assets/stylesheets/uniform/components/nav.scss +8 -4
  29. data/lib/assets/stylesheets/uniform/components/row.scss +18 -10
  30. data/lib/assets/stylesheets/uniform/components/select.scss +42 -5
  31. data/lib/assets/stylesheets/uniform/components/table.scss +43 -9
  32. data/lib/assets/stylesheets/uniform/components/thumb.scss +1 -1
  33. data/lib/assets/stylesheets/uniform/components/tooltip.scss +8 -30
  34. data/lib/assets/stylesheets/uniform/defaults.scss +1 -6
  35. data/lib/assets/stylesheets/uniform/functions.scss +34 -4
  36. data/lib/assets/stylesheets/uniform/helpers/border.scss +10 -1
  37. data/lib/assets/stylesheets/uniform/helpers/colors.scss +3 -2
  38. data/lib/assets/stylesheets/uniform/helpers/position.scss +6 -0
  39. data/lib/assets/stylesheets/uniform/helpers/text.scss +11 -0
  40. data/lib/assets/stylesheets/uniform/helpers.scss +9 -3
  41. data/lib/assets/stylesheets/uniform/variables.scss +8 -6
  42. data/lib/uniform/version.rb +1 -1
  43. data/lib/uniform.rb +11 -3
  44. metadata +5 -4
@@ -0,0 +1,186 @@
1
+ import Component from './component';
2
+ import * as Helpers from './dom-helpers';
3
+
4
+ /*
5
+ Requirements
6
+ ---
7
+ content: html|node
8
+ anchor: node
9
+
10
+ Options
11
+ ---
12
+ align: [left|right|center|#%|#px] [top|center|bottom|#%|#px] | default: 'center bottom'
13
+ zIndex: # | default: unset
14
+ offset: {left: 0, top: 0}
15
+ */
16
+ export default class Popover extends Component {
17
+ initialize (options) {
18
+ this.showing = false;
19
+ options = options || {};
20
+ this.options = {
21
+ zIndex: 2,
22
+ container: document.body,
23
+ align: 'center bottom',
24
+ anchor: document.body,
25
+ content: 'needs content',
26
+ offset: {left: 0, top: 0}
27
+ };
28
+ Object.assign(this.options, this.pick(options, Object.keys(this.options)));
29
+
30
+ this.listenTo(document, 'click', this.checkFocus);
31
+ this.listenTo(document, 'focusin', this.checkFocus);
32
+ this.listenTo(document, 'keyup', this.checkEscape);
33
+ this.listenTo(window, 'resize', () => {
34
+ this.resize.bind(this)()
35
+ });
36
+
37
+ if(typeof this.options.container == "string"){
38
+ this.options.container = Helpers.closest(this.options.anchor, this.options.container)
39
+ this.options.container = this.options.container || document.body
40
+ }
41
+ }
42
+
43
+ render () {
44
+ this.showing = true;
45
+ this.el.style.position = 'absolute';
46
+ this.el.style.zIndex = this.options.zIndex;
47
+
48
+ if(this.options.content instanceof Node)
49
+ this.el.appendChild(this.options.content);
50
+ else
51
+ this.el.innerHTML = this.options.content;
52
+
53
+ this.options.container.appendChild(this.el);
54
+ this.resize();
55
+ this.trigger('shown');
56
+
57
+ return this;
58
+ }
59
+
60
+ resize () {
61
+ this.setPosition();
62
+
63
+ var align = this.options.align.split(" ");
64
+ var reposition = false;
65
+ if (Helpers.offset(this.el).top + Helpers.outerHeight(this.el) > Math.max(document.body.offsetHeight, window.innerHeight)) {
66
+ align[1] = "top";
67
+ reposition = true;
68
+ }
69
+ if (Helpers.offset(this.el).top < 0) {
70
+ align[1] = "bottom";
71
+ reposition = true;
72
+ }
73
+ if (Helpers.offset(this.el).left < 0) {
74
+ align[0] = "right";
75
+ reposition = true;
76
+ }
77
+ if (Helpers.offset(this.el).left + Helpers.outerWidth(this.el) > document.body.offsetWidth) {
78
+ align[0] = "left";
79
+ reposition = true;
80
+ }
81
+ // if(reposition) this.setPosition(align.join(" "))
82
+ }
83
+
84
+ setPosition(align){
85
+ align = align || this.options.align;
86
+ var [leftAlign, topAlign] = align.split(" ");
87
+ leftAlign = leftAlign || "bottom";
88
+
89
+ var offset = Helpers.offset(this.options.anchor);
90
+ var container = this.options.container;
91
+ if(getComputedStyle(container)['position'] == "static") container = container.offsetParent;
92
+ if(!container) container = document.body;
93
+
94
+ var containerOffset = Helpers.offset(container);
95
+ offset = {
96
+ top: offset.top - containerOffset.top,
97
+ left: offset.left - containerOffset.left
98
+ }
99
+
100
+ var position = {};
101
+ if(leftAlign == 'left'){
102
+ position.right = Helpers.outerWidth(container) - offset.left;
103
+ } else if(leftAlign == 'center'){
104
+ position.left = offset.left + Helpers.outerWidth(this.options.anchor) / 2 - Helpers.outerWidth(this.el) / 2;
105
+ } else if (leftAlign == 'right'){
106
+ position.left = offset.left + Helpers.outerWidth(this.options.anchor);
107
+ } else if (leftAlign.includes("%")){
108
+ position.left = offset.left + Helpers.outerWidth(this.options.anchor) * parseInt(leftAlign) / 100;
109
+ } else if (leftAlign.includes("px")){
110
+ position.left = offset.left + Helpers.outerWidth(this.options.anchor) + parseInt(leftAlign);
111
+ }
112
+
113
+ if(topAlign == 'top'){
114
+ let height = Helpers.outerHeight(container);
115
+ if(container == document.body){
116
+ height = Math.max(height, document.documentElement.scrollHeight)
117
+ }
118
+ position.bottom = height - offset.top;
119
+ } else if(topAlign == 'center'){
120
+ position.top = offset.top + Helpers.outerHeight(this.options.anchor) / 2 - Helpers.outerHeight(this.el) / 2;
121
+ } else if (topAlign == 'bottom'){
122
+ position.top = offset.top + Helpers.outerHeight(this.options.anchor);
123
+ } else if (topAlign.includes("%")){
124
+ position.top = offset.top + Helpers.outerHeight(this.options.anchor) * parseInt(topAlign) / 100;
125
+ } else if (topAlign.includes("px")){
126
+ position.top = offset.top + Helpers.outerHeight(this.options.anchor) + parseInt(topAlign);
127
+ }
128
+
129
+ if(this.options.offset.left) position.left += parseInt(this.options.offset.left);
130
+ if(this.options.offset.left) position.right -= parseInt(this.options.offset.left);
131
+ if(this.options.offset.top) position.top += parseInt(this.options.offset.top);
132
+ if(this.options.offset.top) position.bottom -= parseInt(this.options.offset.top);
133
+
134
+ this.el.style.left = 'auto';
135
+ this.el.style.right = 'auto';
136
+ this.el.style.top = 'auto';
137
+ this.el.style.bottom = 'auto';
138
+ Helpers.removeClass(this.el, 'popover-left popover-right popover-center popover-top popover-bottom');
139
+ Helpers.addClass(this.el, 'popover-' + topAlign);
140
+ Helpers.addClass(this.el, 'popover-' + leftAlign);
141
+ Object.keys(position).forEach(function(key){
142
+ this.el.style[key] = position[key] + "px";
143
+ }, this);
144
+ }
145
+
146
+ checkFocus (e) {
147
+ if (e.defaultPrevented) return;
148
+ if (!this.showing) return;
149
+ if (e.target === this.el) return;
150
+ if (e.target == this.options.anchor) return;
151
+ if (this.el.contains(e.target)) return;
152
+ if (this.options.anchor.contains(e.target)) return;
153
+ this.hide();
154
+ }
155
+
156
+ checkEscape (e) {
157
+ if(e.which != 27) return;
158
+ this.hide();
159
+ }
160
+
161
+ isHidden() {
162
+ return !this.showing;
163
+ }
164
+
165
+ hide (options) {
166
+ options = options || {};
167
+ if(!this.showing) return;
168
+ this.el.style.display = 'none';
169
+ this.showing = false;
170
+ if(options.silent !== true) {
171
+ this.trigger('hidden');
172
+ }
173
+ }
174
+
175
+ show () {
176
+ if(this.showing) return;
177
+ this.el.style.display = 'block';
178
+ this.showing = true;
179
+ this.trigger('shown');
180
+ }
181
+
182
+ toggle(flag) {
183
+ flag = flag || this.showing;
184
+ if(flag) this.hide(); else this.show();
185
+ }
186
+ }
@@ -4,7 +4,7 @@ import * as Helpers from './dom-helpers';
4
4
  export default class Resizer extends Component {
5
5
 
6
6
  initialize () {
7
- window.addEventListener('resize', this.resize.bind(this));
7
+ this.listenTo(window, 'resize', this.resize);
8
8
  Helpers.trigger(window, 'resize');
9
9
  }
10
10
 
@@ -8,6 +8,7 @@ import * as Helpers from './dom-helpers';
8
8
  limit: int | false - number of options to limit to, or false to not limit
9
9
  showAll: function(select_options) to run if/when "Show All" is clicked
10
10
  label: string, used for mobile menu
11
+ container: selector for where to render dropdown
11
12
  */
12
13
  export default class Select extends Component {
13
14
 
@@ -22,22 +23,23 @@ export default class Select extends Component {
22
23
 
23
24
  return false;
24
25
  },
25
- limit: 8
26
+ limit: 8,
27
+ container: document.body
26
28
  }
27
29
 
28
30
  Object.assign(this.options, this.pick(options, Object.keys(this.options)));
29
31
 
30
32
  var showing, lastScrollPosition, select_options;
31
33
 
32
- this.el.addEventListener('change', this.updateSelect.bind(this));
33
- this.el.addEventListener('close', this.hideOptions.bind(this));
34
- this.el.addEventListener('revealed', this.resize.bind(this));
34
+ this.listenTo(this.el, 'change', this.updateSelect);
35
+ this.listenTo(this.el, 'close', this.hideOptions);
36
+ this.listenTo(this.el, 'revealed', this.resize);
35
37
  this.el.uniformSelect = this;
36
38
 
37
- window.addEventListener('resize', this.resize.bind(this));
38
- window.addEventListener('scroll', this.updatePosition.bind(this));
39
- document.addEventListener('click', this.outsideClick.bind(this));
40
- document.addEventListener('keyup', this.keyup.bind(this));
39
+ this.listenTo(window, 'resize', this.resize);
40
+ this.listenTo(window, 'scroll', this.updatePosition);
41
+ this.listenTo(document, 'click', this.outsideClick);
42
+ this.listenTo(document, 'keyup', this.keyup);
41
43
 
42
44
  this.activeIcon = document.createElement('span');
43
45
  Helpers.addClass(this.activeIcon, 'uniformSelect-option-icon');
@@ -64,14 +66,15 @@ export default class Select extends Component {
64
66
  this.container.appendChild(this.edit_button);
65
67
 
66
68
  if (this.el.name) {
67
- Helpers.addClass(this.container, this.name.toLowerCase().replace(/[^a-z0-9\-_]+/g, '-'));
69
+ Helpers.addClass(this.container, this.el.name.toLowerCase().replace(/[^a-z0-9\-_]+/g, '-'));
68
70
  }
69
71
  this.el.style.display = "none";
70
72
  this.el.insertAdjacentElement('beforebegin', this.container);
71
73
  this.updateSelect();
72
74
  this.resize();
73
75
 
74
- this.edit_button.addEventListener('click', this.showOptions.bind(this));
76
+ this.listenTo(this.edit_button, 'click', this.showOptions);
77
+ this.listenTo(this.edit_button, 'click', '.uniformSelect-remove', this.removeSelection);
75
78
  }
76
79
 
77
80
  resize () {
@@ -85,7 +88,8 @@ export default class Select extends Component {
85
88
 
86
89
  this.edit_button.innerHTML = '';
87
90
  this.edit_button.style.width = "auto";
88
- this.edit_button.style.width = this.container.offsetWidth + "px";
91
+ this.edit_button.style.maxWidth = "100%";
92
+ this.edit_button.style.minWidth = this.container.offsetWidth + "px";
89
93
 
90
94
  Helpers.each(children, function(child){
91
95
  this.edit_button.appendChild(child);
@@ -110,14 +114,14 @@ export default class Select extends Component {
110
114
  }
111
115
  this.select_options.style.fontSize = Helpers.css(this.el, 'font-size');
112
116
  this.select_options.style.display = 'none';
113
- document.body.appendChild(this.select_options);
117
+ this.options.container.appendChild(this.select_options);
114
118
 
115
119
  Helpers.each(this.el.querySelectorAll('option'), function(el, index){
116
120
  var button = Helpers.createElement("<button type='button' class='uniformSelect-option block outline text-left'>");
117
121
  button.option = el;
118
122
  button.textContent = el.textContent;
119
123
  button.value = el.value;
120
- if (button.textContent == "") button.innerHTML("<span class='text-italic text-muted'>None</span>");
124
+ if (button.textContent == "") button.innerHTML = "<span class='text-italic text-muted'>None</span>";
121
125
  if(el.selected){
122
126
  Helpers.addClass(button, 'active');
123
127
  button.append(this.activeIcon.cloneNode(true));
@@ -125,23 +129,23 @@ export default class Select extends Component {
125
129
  Helpers.addClass(button, 'hide');
126
130
  }
127
131
  this.select_options.append(button);
128
- button.addEventListener('click', this.selectOption.bind(this));
132
+ this.listenTo(button, 'click', this.selectOption);
129
133
  }.bind(this));
130
134
 
131
135
  var actions_el = Helpers.createElement('<div class="uniformSelect-options-actions"></div>');
132
136
  if (this.options.limit && this.el.querySelectorAll('option').length > this.options.limit) {
133
137
  var show_all_button = Helpers.createElement("<button type='button' class='uniformSelect-show-all outline blue' style='display: block; border: none'>Show All</button>");
134
- show_all_button.addEventListener('click', function(e){
138
+ this.listenTo(show_all_button, 'click', function(e){
135
139
  Helpers.trigger(this.el, 'show_all');
136
140
  if (this.options.showAll) this.options.showAll(this.select_options);
137
141
  e.preventDefault();
138
142
  e.stopPropagation();
139
- }.bind(this));
143
+ })
140
144
  actions_el.appendChild(show_all_button);
141
145
  }
142
146
  if (this.el.multiple) {
143
147
  var done_button = Helpers.createElement("<button type='button' class='uniformSelect-done block outline blue'>Done</button>");
144
- done_button.addEventListener('click', this.hideOptions.bind(this));
148
+ this.listenTo(done_button, 'click', this.hideOptions);
145
149
  actions_el.appendChild(done_button);
146
150
  }
147
151
  if (!Helpers.is_empty(actions_el)) {
@@ -158,6 +162,7 @@ export default class Select extends Component {
158
162
  Helpers.removeClass(this.select_options, 'fixed');
159
163
  Helpers.removeClass(this.edit_button, 'active');
160
164
  Helpers.removeClass(document.body, 'uniformModal-hideBody');
165
+
161
166
  if(this.lastScrollPosition && window.innerWidth < 720) window.scrollTo(0, this.lastScrollPosition);
162
167
  Helpers.trigger(this.el, 'hidden:options');
163
168
  }
@@ -175,6 +180,9 @@ export default class Select extends Component {
175
180
  this.lastScrollPosition = window.scrollY;
176
181
  this.updatePosition();
177
182
  Helpers.addClass(document.body, 'uniformModal-hideBody');
183
+ if (this.options.container == document.body) {
184
+ Helpers.removeClass(document.body, 'uniformModal-hideBody');
185
+ }
178
186
  }
179
187
 
180
188
  selectOption(e) {
@@ -189,11 +197,7 @@ export default class Select extends Component {
189
197
  }
190
198
  Helpers.toggleClass(e.currentTarget, 'active');
191
199
  e.currentTarget.option.selected = Helpers.hasClass(e.currentTarget, 'active');
192
- if (Helpers.hasClass(e.currentTarget, 'active')) {
193
- e.currentTarget.append(this.activeIcon.cloneNode(true));
194
- } else {
195
- Helpers.each(e.currentTarget.querySelectorAll('.uniformSelect-option-icon'), Helpers.remove);
196
- }
200
+ this.updateOptions();
197
201
  Helpers.trigger(this.el, 'change');
198
202
  }
199
203
 
@@ -202,12 +206,24 @@ export default class Select extends Component {
202
206
  var value = Helpers.map(Helpers.filter(this.el.querySelectorAll("option"), function(el){
203
207
  return el.selected;
204
208
  }), function(el){
205
- return el.textContent;
206
- }).join(", ");
209
+ return this.el.multiple ? `<span class="uniformSelect-selection">${el.textContent}<span class="uniformSelect-remove"></span></span>` : el.textContent;
210
+ }.bind(this)).join(" ");
207
211
 
208
212
  if (value == "") value = "&nbsp;";
209
213
  this.edit_button.querySelector('.text-js').innerHTML = value;
210
214
  }
215
+
216
+ updateOptions () {
217
+ Helpers.each(this.select_options.querySelectorAll("button"), function(button) {
218
+ if(!button.option) return;
219
+ Helpers.toggleClass(button, 'active', button.option.selected);
220
+ if (Helpers.hasClass(button, 'active')) {
221
+ button.append(this.activeIcon.cloneNode(true));
222
+ } else {
223
+ Helpers.each(button.querySelectorAll('.uniformSelect-option-icon'), Helpers.remove);
224
+ }
225
+ }.bind(this))
226
+ }
211
227
 
212
228
  updatePosition () {
213
229
  if(!this.select_options) return;
@@ -232,4 +248,15 @@ export default class Select extends Component {
232
248
  Helpers.addClass(this.select_options, 'fixed');
233
249
  }
234
250
  }
251
+
252
+ removeSelection(e) {
253
+ e.preventDefault();
254
+ var target = Helpers.filter(this.el.querySelectorAll("option"), function(el){
255
+ return el.innerText.trim() == e.target.parentNode.innerText.trim();
256
+ })[0];
257
+ if(!target) return;
258
+ target.selected = false;
259
+ this.updatePosition();
260
+ Helpers.trigger(this.el, 'change');
261
+ }
235
262
  }
@@ -1,9 +1,11 @@
1
1
  import Component from './component';
2
+ import Popover from './popover';
2
3
  import * as Helpers from './dom-helpers';
3
4
 
4
5
  /*
5
6
  message: html
6
7
  align: top|bottom (default: top)
8
+ container: document.body
7
9
 
8
10
  methods
9
11
  ------
@@ -17,6 +19,7 @@ export default class Tooltip extends Component {
17
19
  options = options || {}
18
20
  this.options = {
19
21
  align: 'top',
22
+ container: document.body
20
23
  };
21
24
  Object.assign(this.options, this.pick(options, Object.keys(this.options)));
22
25
 
@@ -24,89 +27,33 @@ export default class Tooltip extends Component {
24
27
  this.message = options.message;
25
28
  options.el.tooltip = this;
26
29
 
27
- this.el.addEventListener('mouseenter', this.show.bind(this));
28
- this.el.addEventListener('mouseleave', this.hide.bind(this));
30
+ this.listenTo(this.el, 'mouseenter', this.show);
31
+ this.listenTo(this.el, 'mouseleave', this.hide);
29
32
  }
30
33
 
31
34
  render () {
32
- this.popup = Helpers.createElement('<div class="uniformTooltip-popup">' + this.message + '</div>');
33
- this.popup.insertBefore(Helpers.createElement("<div class='uniformTooltip-pointer'></div>"), this.popup.firstChild);
34
- this.el.appendChild(this.popup);
35
- if (this.message.length > 100) {
36
- this.popup.style.minWidth = "200px";
37
- } else {
38
- this.popup.style.whiteSpace = "nowrap";
39
- }
40
-
41
- if (this.popup.offsetWidth + Helpers.offset(this.popup).left > window.innerWidth) {
42
- this.popup.style.left = window.innerWidth - this.popup.offsetWidth - Helpers.offset(this.popup).left + "px"
43
- }
44
-
45
- this.popup.style.display = "block";
46
- if (this.options.align == "bottom" || Helpers.offset(this.popup).top < 0) {
47
- Helpers.addClass(this.popup, '-align-bottom');
48
- }
49
- this.popup.style.display = 'none';
50
35
 
51
36
  return this;
52
37
  }
53
38
 
54
- remove () {
55
- this.el.parentNode.removeChild(this.el);
56
- }
57
-
58
39
  show () {
59
- if(!this.popup) this.render();
60
40
  if(!this.enabled) return;
61
-
62
- if (this.hiding) return this.show_after_hide = true;
63
- if (this.showing || this.shown) return;
64
- this.popup.style.display = 'block';
65
- this.showing = true;
66
- this.hidden = false;
67
-
68
- var endTransition = function (e) {
69
- this.trigger('shown');
70
- this.showing = false;
71
- this.shown = true;
72
- if (this.hide_after_show) this.hide();
73
- this.hide_after_show = false;
74
- }.bind(this);
75
-
76
- Helpers.once(this.popup, 'transitionend', endTransition);
77
- Helpers.once(this.popup, 'msTransitionEnd', endTransition);
78
- Helpers.once(this.popup, 'oTransitionEnd', endTransition);
79
-
80
- if (Helpers.offset(this.popup).left < 0) this.popup.style.left = "0";
81
- Helpers.addClass(this.el, 'active');
82
-
83
- // TODO remove timeout usage... Not sure why this is necessary, but doesn't do css animation if not delayed.
84
- setTimeout(function(){
85
- Helpers.addClass(this.popup, '-reveal');
86
- }.bind(this), 1);
41
+ this.popup = new Popover({
42
+ content: `<div class="uniformTooltip-popup">
43
+ <div class='uniformTooltip-pointer'></div>
44
+ ${this.message}
45
+ </div>`,
46
+ anchor: this.el,
47
+ align: this.options.align == "top" ? `center top` : 'center 100%',
48
+ offset: {
49
+ top: -7
50
+ },
51
+ container: this.options.container
52
+ }).render();
87
53
  }
88
54
 
89
55
  hide () {
90
- if (this.showing) return this. hide_after_show = true;
91
- if (this.hiding || this.hidden) return;
92
- this.hiding = true;
93
- this.shown = false;
94
-
95
- var endTransition = function (e) {
96
- this.trigger('hidden');
97
- Helpers.removeClass(this.el, 'active');
98
- this.popup.style.display = 'none';
99
- this.hiding = false;
100
- this.hidden = true;
101
- if (this.show_after_hide) this.show();
102
- this.show_after_hide = false;
103
- }.bind(this);
104
-
105
- Helpers.once(this.popup, 'transitionend', endTransition);
106
- Helpers.once(this.popup, 'msTransitionEnd', endTransition);
107
- Helpers.once(this.popup, 'oTransitionEnd', endTransition);
108
-
109
- Helpers.removeClass(this.popup, '-reveal');
56
+ this.popup.remove();
110
57
  }
111
58
 
112
59
  disable () {