loremGem 0.2.0

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 (158) hide show
  1. checksums.yaml +7 -0
  2. data/.gitattributes +14 -0
  3. data/.gitignore +24 -0
  4. data/.travis.yml +17 -0
  5. data/CHANGELOG.md +37 -0
  6. data/CODE_OF_CONDUCT.md +49 -0
  7. data/Gemfile +12 -0
  8. data/LICENSE Bootstrap +21 -0
  9. data/LICENSE Lorem.txt +21 -0
  10. data/README.md +35 -0
  11. data/Rakefile +80 -0
  12. data/assets/javascript/bootstrap/alert.js +177 -0
  13. data/assets/javascript/bootstrap/button.js +166 -0
  14. data/assets/javascript/bootstrap/carousel.js +507 -0
  15. data/assets/javascript/bootstrap/collapse.js +366 -0
  16. data/assets/javascript/bootstrap/dropdown.js +488 -0
  17. data/assets/javascript/bootstrap/modal.js +584 -0
  18. data/assets/javascript/bootstrap/popover.js +205 -0
  19. data/assets/javascript/bootstrap/scrollspy.js +318 -0
  20. data/assets/javascript/bootstrap/tab.js +250 -0
  21. data/assets/javascript/bootstrap/tooltip.js +673 -0
  22. data/assets/javascript/bootstrap/util.js +131 -0
  23. data/assets/javascript/bootstrap-sprockets.js +11 -0
  24. data/assets/javascript/bootstrap.js +3926 -0
  25. data/assets/javascript/bootstrap.min.js +6 -0
  26. data/assets/javascript/lorem.js +24044 -0
  27. data/assets/stylesheets/_bootstrap-grid.scss +32 -0
  28. data/assets/stylesheets/_bootstrap-reboot.scss +12 -0
  29. data/assets/stylesheets/_bootstrap.scss +42 -0
  30. data/assets/stylesheets/bootstrap/_alert.scss +51 -0
  31. data/assets/stylesheets/bootstrap/_badge.scss +47 -0
  32. data/assets/stylesheets/bootstrap/_breadcrumb.scss +41 -0
  33. data/assets/stylesheets/bootstrap/_button-group.scss +172 -0
  34. data/assets/stylesheets/bootstrap/_buttons.scss +144 -0
  35. data/assets/stylesheets/bootstrap/_card.scss +301 -0
  36. data/assets/stylesheets/bootstrap/_carousel.scss +236 -0
  37. data/assets/stylesheets/bootstrap/_close.scss +34 -0
  38. data/assets/stylesheets/bootstrap/_code.scss +48 -0
  39. data/assets/stylesheets/bootstrap/_custom-forms.scss +421 -0
  40. data/assets/stylesheets/bootstrap/_dropdown.scss +166 -0
  41. data/assets/stylesheets/bootstrap/_forms.scss +335 -0
  42. data/assets/stylesheets/bootstrap/_functions.scss +86 -0
  43. data/assets/stylesheets/bootstrap/_grid.scss +52 -0
  44. data/assets/stylesheets/bootstrap/_images.scss +42 -0
  45. data/assets/stylesheets/bootstrap/_input-group.scss +158 -0
  46. data/assets/stylesheets/bootstrap/_jumbotron.scss +16 -0
  47. data/assets/stylesheets/bootstrap/_list-group.scss +115 -0
  48. data/assets/stylesheets/bootstrap/_media.scss +8 -0
  49. data/assets/stylesheets/bootstrap/_mixins.scss +41 -0
  50. data/assets/stylesheets/bootstrap/_modal.scss +168 -0
  51. data/assets/stylesheets/bootstrap/_nav.scss +118 -0
  52. data/assets/stylesheets/bootstrap/_navbar.scss +299 -0
  53. data/assets/stylesheets/bootstrap/_pagination.scss +78 -0
  54. data/assets/stylesheets/bootstrap/_popover.scss +183 -0
  55. data/assets/stylesheets/bootstrap/_print.scss +141 -0
  56. data/assets/stylesheets/bootstrap/_progress.scss +34 -0
  57. data/assets/stylesheets/bootstrap/_reboot.scss +480 -0
  58. data/assets/stylesheets/bootstrap/_root.scss +19 -0
  59. data/assets/stylesheets/bootstrap/_tables.scss +188 -0
  60. data/assets/stylesheets/bootstrap/_tooltip.scss +115 -0
  61. data/assets/stylesheets/bootstrap/_transitions.scss +22 -0
  62. data/assets/stylesheets/bootstrap/_type.scss +125 -0
  63. data/assets/stylesheets/bootstrap/_utilities.scss +15 -0
  64. data/assets/stylesheets/bootstrap/_variables.scss +929 -0
  65. data/assets/stylesheets/bootstrap/mixins/_alert.scss +13 -0
  66. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +21 -0
  67. data/assets/stylesheets/bootstrap/mixins/_badge.scss +12 -0
  68. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +35 -0
  69. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +5 -0
  70. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +123 -0
  71. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +109 -0
  72. data/assets/stylesheets/bootstrap/mixins/_caret.scss +66 -0
  73. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +7 -0
  74. data/assets/stylesheets/bootstrap/mixins/_float.scss +11 -0
  75. data/assets/stylesheets/bootstrap/mixins/_forms.scss +147 -0
  76. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +45 -0
  77. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +67 -0
  78. data/assets/stylesheets/bootstrap/mixins/_grid.scss +52 -0
  79. data/assets/stylesheets/bootstrap/mixins/_hover.scss +37 -0
  80. data/assets/stylesheets/bootstrap/mixins/_image.scss +36 -0
  81. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +21 -0
  82. data/assets/stylesheets/bootstrap/mixins/_lists.scss +7 -0
  83. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +10 -0
  84. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +22 -0
  85. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +17 -0
  86. data/assets/stylesheets/bootstrap/mixins/_resize.scss +6 -0
  87. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +33 -0
  88. data/assets/stylesheets/bootstrap/mixins/_size.scss +6 -0
  89. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +30 -0
  90. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +14 -0
  91. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +13 -0
  92. data/assets/stylesheets/bootstrap/mixins/_text-truncate.scss +8 -0
  93. data/assets/stylesheets/bootstrap/mixins/_transition.scss +13 -0
  94. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +7 -0
  95. data/assets/stylesheets/bootstrap/utilities/_align.scss +8 -0
  96. data/assets/stylesheets/bootstrap/utilities/_background.scss +19 -0
  97. data/assets/stylesheets/bootstrap/utilities/_borders.scss +59 -0
  98. data/assets/stylesheets/bootstrap/utilities/_clearfix.scss +3 -0
  99. data/assets/stylesheets/bootstrap/utilities/_display.scss +38 -0
  100. data/assets/stylesheets/bootstrap/utilities/_embed.scss +52 -0
  101. data/assets/stylesheets/bootstrap/utilities/_flex.scss +51 -0
  102. data/assets/stylesheets/bootstrap/utilities/_float.scss +9 -0
  103. data/assets/stylesheets/bootstrap/utilities/_position.scss +37 -0
  104. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +11 -0
  105. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +6 -0
  106. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +12 -0
  107. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +51 -0
  108. data/assets/stylesheets/bootstrap/utilities/_text.scss +58 -0
  109. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +11 -0
  110. data/assets/stylesheets/lorem.css +23980 -0
  111. data/bin/console +14 -0
  112. data/bin/setup +8 -0
  113. data/lib/loremGem/engine.rb +12 -0
  114. data/lib/loremGem/version.rb +4 -0
  115. data/lib/loremGem.rb +74 -0
  116. data/loremGem.gemspec +50 -0
  117. data/tasks/updater/js.rb +68 -0
  118. data/tasks/updater/logger.rb +57 -0
  119. data/tasks/updater/network.rb +103 -0
  120. data/tasks/updater/scss.rb +26 -0
  121. data/tasks/updater.rb +67 -0
  122. data/test/dummy_rails/README.rdoc +3 -0
  123. data/test/dummy_rails/Rakefile +6 -0
  124. data/test/dummy_rails/app/assets/images/.keep +0 -0
  125. data/test/dummy_rails/app/assets/javascripts/application.js +7 -0
  126. data/test/dummy_rails/app/assets/stylesheets/application.sass +4 -0
  127. data/test/dummy_rails/app/controllers/application_controller.rb +5 -0
  128. data/test/dummy_rails/app/controllers/pages_controller.rb +4 -0
  129. data/test/dummy_rails/app/helpers/application_helper.rb +2 -0
  130. data/test/dummy_rails/app/views/layouts/application.html.erb +14 -0
  131. data/test/dummy_rails/app/views/pages/root.html.slim +58 -0
  132. data/test/dummy_rails/config/application.rb +34 -0
  133. data/test/dummy_rails/config/boot.rb +5 -0
  134. data/test/dummy_rails/config/environment.rb +5 -0
  135. data/test/dummy_rails/config/environments/development.rb +23 -0
  136. data/test/dummy_rails/config/environments/production.rb +82 -0
  137. data/test/dummy_rails/config/environments/test.rb +38 -0
  138. data/test/dummy_rails/config/initializers/backtrace_silencers.rb +7 -0
  139. data/test/dummy_rails/config/initializers/filter_parameter_logging.rb +4 -0
  140. data/test/dummy_rails/config/initializers/inflections.rb +16 -0
  141. data/test/dummy_rails/config/initializers/mime_types.rb +5 -0
  142. data/test/dummy_rails/config/initializers/secret_token.rb +18 -0
  143. data/test/dummy_rails/config/initializers/session_store.rb +3 -0
  144. data/test/dummy_rails/config/initializers/wrap_parameters.rb +14 -0
  145. data/test/dummy_rails/config/locales/en.yml +3 -0
  146. data/test/dummy_rails/config/locales/es.yml +3 -0
  147. data/test/dummy_rails/config/routes.rb +3 -0
  148. data/test/dummy_rails/config.ru +4 -0
  149. data/test/dummy_rails/log/.keep +0 -0
  150. data/test/gemfiles/rails_4_2.gemfile +7 -0
  151. data/test/gemfiles/rails_5_0.gemfile +8 -0
  152. data/test/gemfiles/rails_5_1.gemfile +8 -0
  153. data/test/rails_test.rb +24 -0
  154. data/test/support/dummy_rails_integration.rb +29 -0
  155. data/test/support/reporting.rb +27 -0
  156. data/test/test_helper.rb +35 -0
  157. data/test/test_helper_rails.rb +6 -0
  158. metadata +480 -0
@@ -0,0 +1,584 @@
1
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
2
+
3
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4
+
5
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
6
+
7
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
8
+
9
+ /**
10
+ * --------------------------------------------------------------------------
11
+ * Bootstrap (v4.1.1): modal.js
12
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
13
+ * --------------------------------------------------------------------------
14
+ */
15
+ var Modal = function ($) {
16
+ /**
17
+ * ------------------------------------------------------------------------
18
+ * Constants
19
+ * ------------------------------------------------------------------------
20
+ */
21
+ var NAME = 'modal';
22
+ var VERSION = '4.1.1';
23
+ var DATA_KEY = 'bs.modal';
24
+ var EVENT_KEY = "." + DATA_KEY;
25
+ var DATA_API_KEY = '.data-api';
26
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
27
+ var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
28
+
29
+ var Default = {
30
+ backdrop: true,
31
+ keyboard: true,
32
+ focus: true,
33
+ show: true
34
+ };
35
+ var DefaultType = {
36
+ backdrop: '(boolean|string)',
37
+ keyboard: 'boolean',
38
+ focus: 'boolean',
39
+ show: 'boolean'
40
+ };
41
+ var Event = {
42
+ HIDE: "hide" + EVENT_KEY,
43
+ HIDDEN: "hidden" + EVENT_KEY,
44
+ SHOW: "show" + EVENT_KEY,
45
+ SHOWN: "shown" + EVENT_KEY,
46
+ FOCUSIN: "focusin" + EVENT_KEY,
47
+ RESIZE: "resize" + EVENT_KEY,
48
+ CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
49
+ KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
50
+ MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
51
+ MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
52
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
53
+ };
54
+ var ClassName = {
55
+ SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
56
+ BACKDROP: 'modal-backdrop',
57
+ OPEN: 'modal-open',
58
+ FADE: 'fade',
59
+ SHOW: 'show'
60
+ };
61
+ var Selector = {
62
+ DIALOG: '.modal-dialog',
63
+ DATA_TOGGLE: '[data-toggle="modal"]',
64
+ DATA_DISMISS: '[data-dismiss="modal"]',
65
+ FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
66
+ STICKY_CONTENT: '.sticky-top',
67
+ NAVBAR_TOGGLER: '.navbar-toggler'
68
+ /**
69
+ * ------------------------------------------------------------------------
70
+ * Class Definition
71
+ * ------------------------------------------------------------------------
72
+ */
73
+
74
+ };
75
+
76
+ var Modal =
77
+ /*#__PURE__*/
78
+ function () {
79
+ function Modal(element, config) {
80
+ this._config = this._getConfig(config);
81
+ this._element = element;
82
+ this._dialog = $(element).find(Selector.DIALOG)[0];
83
+ this._backdrop = null;
84
+ this._isShown = false;
85
+ this._isBodyOverflowing = false;
86
+ this._ignoreBackdropClick = false;
87
+ this._scrollbarWidth = 0;
88
+ } // Getters
89
+
90
+
91
+ var _proto = Modal.prototype;
92
+
93
+ // Public
94
+ _proto.toggle = function toggle(relatedTarget) {
95
+ return this._isShown ? this.hide() : this.show(relatedTarget);
96
+ };
97
+
98
+ _proto.show = function show(relatedTarget) {
99
+ var _this = this;
100
+
101
+ if (this._isTransitioning || this._isShown) {
102
+ return;
103
+ }
104
+
105
+ if ($(this._element).hasClass(ClassName.FADE)) {
106
+ this._isTransitioning = true;
107
+ }
108
+
109
+ var showEvent = $.Event(Event.SHOW, {
110
+ relatedTarget: relatedTarget
111
+ });
112
+ $(this._element).trigger(showEvent);
113
+
114
+ if (this._isShown || showEvent.isDefaultPrevented()) {
115
+ return;
116
+ }
117
+
118
+ this._isShown = true;
119
+
120
+ this._checkScrollbar();
121
+
122
+ this._setScrollbar();
123
+
124
+ this._adjustDialog();
125
+
126
+ $(document.body).addClass(ClassName.OPEN);
127
+
128
+ this._setEscapeEvent();
129
+
130
+ this._setResizeEvent();
131
+
132
+ $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
133
+ return _this.hide(event);
134
+ });
135
+ $(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
136
+ $(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
137
+ if ($(event.target).is(_this._element)) {
138
+ _this._ignoreBackdropClick = true;
139
+ }
140
+ });
141
+ });
142
+
143
+ this._showBackdrop(function () {
144
+ return _this._showElement(relatedTarget);
145
+ });
146
+ };
147
+
148
+ _proto.hide = function hide(event) {
149
+ var _this2 = this;
150
+
151
+ if (event) {
152
+ event.preventDefault();
153
+ }
154
+
155
+ if (this._isTransitioning || !this._isShown) {
156
+ return;
157
+ }
158
+
159
+ var hideEvent = $.Event(Event.HIDE);
160
+ $(this._element).trigger(hideEvent);
161
+
162
+ if (!this._isShown || hideEvent.isDefaultPrevented()) {
163
+ return;
164
+ }
165
+
166
+ this._isShown = false;
167
+ var transition = $(this._element).hasClass(ClassName.FADE);
168
+
169
+ if (transition) {
170
+ this._isTransitioning = true;
171
+ }
172
+
173
+ this._setEscapeEvent();
174
+
175
+ this._setResizeEvent();
176
+
177
+ $(document).off(Event.FOCUSIN);
178
+ $(this._element).removeClass(ClassName.SHOW);
179
+ $(this._element).off(Event.CLICK_DISMISS);
180
+ $(this._dialog).off(Event.MOUSEDOWN_DISMISS);
181
+
182
+ if (transition) {
183
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
184
+ $(this._element).one(Util.TRANSITION_END, function (event) {
185
+ return _this2._hideModal(event);
186
+ }).emulateTransitionEnd(transitionDuration);
187
+ } else {
188
+ this._hideModal();
189
+ }
190
+ };
191
+
192
+ _proto.dispose = function dispose() {
193
+ $.removeData(this._element, DATA_KEY);
194
+ $(window, document, this._element, this._backdrop).off(EVENT_KEY);
195
+ this._config = null;
196
+ this._element = null;
197
+ this._dialog = null;
198
+ this._backdrop = null;
199
+ this._isShown = null;
200
+ this._isBodyOverflowing = null;
201
+ this._ignoreBackdropClick = null;
202
+ this._scrollbarWidth = null;
203
+ };
204
+
205
+ _proto.handleUpdate = function handleUpdate() {
206
+ this._adjustDialog();
207
+ }; // Private
208
+
209
+
210
+ _proto._getConfig = function _getConfig(config) {
211
+ config = _objectSpread({}, Default, config);
212
+ Util.typeCheckConfig(NAME, config, DefaultType);
213
+ return config;
214
+ };
215
+
216
+ _proto._showElement = function _showElement(relatedTarget) {
217
+ var _this3 = this;
218
+
219
+ var transition = $(this._element).hasClass(ClassName.FADE);
220
+
221
+ if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
222
+ // Don't move modal's DOM position
223
+ document.body.appendChild(this._element);
224
+ }
225
+
226
+ this._element.style.display = 'block';
227
+
228
+ this._element.removeAttribute('aria-hidden');
229
+
230
+ this._element.scrollTop = 0;
231
+
232
+ if (transition) {
233
+ Util.reflow(this._element);
234
+ }
235
+
236
+ $(this._element).addClass(ClassName.SHOW);
237
+
238
+ if (this._config.focus) {
239
+ this._enforceFocus();
240
+ }
241
+
242
+ var shownEvent = $.Event(Event.SHOWN, {
243
+ relatedTarget: relatedTarget
244
+ });
245
+
246
+ var transitionComplete = function transitionComplete() {
247
+ if (_this3._config.focus) {
248
+ _this3._element.focus();
249
+ }
250
+
251
+ _this3._isTransitioning = false;
252
+ $(_this3._element).trigger(shownEvent);
253
+ };
254
+
255
+ if (transition) {
256
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
257
+ $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);
258
+ } else {
259
+ transitionComplete();
260
+ }
261
+ };
262
+
263
+ _proto._enforceFocus = function _enforceFocus() {
264
+ var _this4 = this;
265
+
266
+ $(document).off(Event.FOCUSIN) // Guard against infinite focus loop
267
+ .on(Event.FOCUSIN, function (event) {
268
+ if (document !== event.target && _this4._element !== event.target && $(_this4._element).has(event.target).length === 0) {
269
+ _this4._element.focus();
270
+ }
271
+ });
272
+ };
273
+
274
+ _proto._setEscapeEvent = function _setEscapeEvent() {
275
+ var _this5 = this;
276
+
277
+ if (this._isShown && this._config.keyboard) {
278
+ $(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
279
+ if (event.which === ESCAPE_KEYCODE) {
280
+ event.preventDefault();
281
+
282
+ _this5.hide();
283
+ }
284
+ });
285
+ } else if (!this._isShown) {
286
+ $(this._element).off(Event.KEYDOWN_DISMISS);
287
+ }
288
+ };
289
+
290
+ _proto._setResizeEvent = function _setResizeEvent() {
291
+ var _this6 = this;
292
+
293
+ if (this._isShown) {
294
+ $(window).on(Event.RESIZE, function (event) {
295
+ return _this6.handleUpdate(event);
296
+ });
297
+ } else {
298
+ $(window).off(Event.RESIZE);
299
+ }
300
+ };
301
+
302
+ _proto._hideModal = function _hideModal() {
303
+ var _this7 = this;
304
+
305
+ this._element.style.display = 'none';
306
+
307
+ this._element.setAttribute('aria-hidden', true);
308
+
309
+ this._isTransitioning = false;
310
+
311
+ this._showBackdrop(function () {
312
+ $(document.body).removeClass(ClassName.OPEN);
313
+
314
+ _this7._resetAdjustments();
315
+
316
+ _this7._resetScrollbar();
317
+
318
+ $(_this7._element).trigger(Event.HIDDEN);
319
+ });
320
+ };
321
+
322
+ _proto._removeBackdrop = function _removeBackdrop() {
323
+ if (this._backdrop) {
324
+ $(this._backdrop).remove();
325
+ this._backdrop = null;
326
+ }
327
+ };
328
+
329
+ _proto._showBackdrop = function _showBackdrop(callback) {
330
+ var _this8 = this;
331
+
332
+ var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
333
+
334
+ if (this._isShown && this._config.backdrop) {
335
+ this._backdrop = document.createElement('div');
336
+ this._backdrop.className = ClassName.BACKDROP;
337
+
338
+ if (animate) {
339
+ $(this._backdrop).addClass(animate);
340
+ }
341
+
342
+ $(this._backdrop).appendTo(document.body);
343
+ $(this._element).on(Event.CLICK_DISMISS, function (event) {
344
+ if (_this8._ignoreBackdropClick) {
345
+ _this8._ignoreBackdropClick = false;
346
+ return;
347
+ }
348
+
349
+ if (event.target !== event.currentTarget) {
350
+ return;
351
+ }
352
+
353
+ if (_this8._config.backdrop === 'static') {
354
+ _this8._element.focus();
355
+ } else {
356
+ _this8.hide();
357
+ }
358
+ });
359
+
360
+ if (animate) {
361
+ Util.reflow(this._backdrop);
362
+ }
363
+
364
+ $(this._backdrop).addClass(ClassName.SHOW);
365
+
366
+ if (!callback) {
367
+ return;
368
+ }
369
+
370
+ if (!animate) {
371
+ callback();
372
+ return;
373
+ }
374
+
375
+ var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
376
+ $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);
377
+ } else if (!this._isShown && this._backdrop) {
378
+ $(this._backdrop).removeClass(ClassName.SHOW);
379
+
380
+ var callbackRemove = function callbackRemove() {
381
+ _this8._removeBackdrop();
382
+
383
+ if (callback) {
384
+ callback();
385
+ }
386
+ };
387
+
388
+ if ($(this._element).hasClass(ClassName.FADE)) {
389
+ var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
390
+
391
+ $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);
392
+ } else {
393
+ callbackRemove();
394
+ }
395
+ } else if (callback) {
396
+ callback();
397
+ }
398
+ }; // ----------------------------------------------------------------------
399
+ // the following methods are used to handle overflowing modals
400
+ // todo (fat): these should probably be refactored out of modal.js
401
+ // ----------------------------------------------------------------------
402
+
403
+
404
+ _proto._adjustDialog = function _adjustDialog() {
405
+ var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
406
+
407
+ if (!this._isBodyOverflowing && isModalOverflowing) {
408
+ this._element.style.paddingLeft = this._scrollbarWidth + "px";
409
+ }
410
+
411
+ if (this._isBodyOverflowing && !isModalOverflowing) {
412
+ this._element.style.paddingRight = this._scrollbarWidth + "px";
413
+ }
414
+ };
415
+
416
+ _proto._resetAdjustments = function _resetAdjustments() {
417
+ this._element.style.paddingLeft = '';
418
+ this._element.style.paddingRight = '';
419
+ };
420
+
421
+ _proto._checkScrollbar = function _checkScrollbar() {
422
+ var rect = document.body.getBoundingClientRect();
423
+ this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
424
+ this._scrollbarWidth = this._getScrollbarWidth();
425
+ };
426
+
427
+ _proto._setScrollbar = function _setScrollbar() {
428
+ var _this9 = this;
429
+
430
+ if (this._isBodyOverflowing) {
431
+ // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
432
+ // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
433
+ // Adjust fixed content padding
434
+ $(Selector.FIXED_CONTENT).each(function (index, element) {
435
+ var actualPadding = $(element)[0].style.paddingRight;
436
+ var calculatedPadding = $(element).css('padding-right');
437
+ $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
438
+ }); // Adjust sticky content margin
439
+
440
+ $(Selector.STICKY_CONTENT).each(function (index, element) {
441
+ var actualMargin = $(element)[0].style.marginRight;
442
+ var calculatedMargin = $(element).css('margin-right');
443
+ $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
444
+ }); // Adjust navbar-toggler margin
445
+
446
+ $(Selector.NAVBAR_TOGGLER).each(function (index, element) {
447
+ var actualMargin = $(element)[0].style.marginRight;
448
+ var calculatedMargin = $(element).css('margin-right');
449
+ $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + "px");
450
+ }); // Adjust body padding
451
+
452
+ var actualPadding = document.body.style.paddingRight;
453
+ var calculatedPadding = $(document.body).css('padding-right');
454
+ $(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
455
+ }
456
+ };
457
+
458
+ _proto._resetScrollbar = function _resetScrollbar() {
459
+ // Restore fixed content padding
460
+ $(Selector.FIXED_CONTENT).each(function (index, element) {
461
+ var padding = $(element).data('padding-right');
462
+
463
+ if (typeof padding !== 'undefined') {
464
+ $(element).css('padding-right', padding).removeData('padding-right');
465
+ }
466
+ }); // Restore sticky content and navbar-toggler margin
467
+
468
+ $(Selector.STICKY_CONTENT + ", " + Selector.NAVBAR_TOGGLER).each(function (index, element) {
469
+ var margin = $(element).data('margin-right');
470
+
471
+ if (typeof margin !== 'undefined') {
472
+ $(element).css('margin-right', margin).removeData('margin-right');
473
+ }
474
+ }); // Restore body padding
475
+
476
+ var padding = $(document.body).data('padding-right');
477
+
478
+ if (typeof padding !== 'undefined') {
479
+ $(document.body).css('padding-right', padding).removeData('padding-right');
480
+ }
481
+ };
482
+
483
+ _proto._getScrollbarWidth = function _getScrollbarWidth() {
484
+ // thx d.walsh
485
+ var scrollDiv = document.createElement('div');
486
+ scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
487
+ document.body.appendChild(scrollDiv);
488
+ var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
489
+ document.body.removeChild(scrollDiv);
490
+ return scrollbarWidth;
491
+ }; // Static
492
+
493
+
494
+ Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
495
+ return this.each(function () {
496
+ var data = $(this).data(DATA_KEY);
497
+
498
+ var _config = _objectSpread({}, Default, $(this).data(), typeof config === 'object' && config ? config : {});
499
+
500
+ if (!data) {
501
+ data = new Modal(this, _config);
502
+ $(this).data(DATA_KEY, data);
503
+ }
504
+
505
+ if (typeof config === 'string') {
506
+ if (typeof data[config] === 'undefined') {
507
+ throw new TypeError("No method named \"" + config + "\"");
508
+ }
509
+
510
+ data[config](relatedTarget);
511
+ } else if (_config.show) {
512
+ data.show(relatedTarget);
513
+ }
514
+ });
515
+ };
516
+
517
+ _createClass(Modal, null, [{
518
+ key: "VERSION",
519
+ get: function get() {
520
+ return VERSION;
521
+ }
522
+ }, {
523
+ key: "Default",
524
+ get: function get() {
525
+ return Default;
526
+ }
527
+ }]);
528
+
529
+ return Modal;
530
+ }();
531
+ /**
532
+ * ------------------------------------------------------------------------
533
+ * Data Api implementation
534
+ * ------------------------------------------------------------------------
535
+ */
536
+
537
+
538
+ $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
539
+ var _this10 = this;
540
+
541
+ var target;
542
+ var selector = Util.getSelectorFromElement(this);
543
+
544
+ if (selector) {
545
+ target = $(selector)[0];
546
+ }
547
+
548
+ var config = $(target).data(DATA_KEY) ? 'toggle' : _objectSpread({}, $(target).data(), $(this).data());
549
+
550
+ if (this.tagName === 'A' || this.tagName === 'AREA') {
551
+ event.preventDefault();
552
+ }
553
+
554
+ var $target = $(target).one(Event.SHOW, function (showEvent) {
555
+ if (showEvent.isDefaultPrevented()) {
556
+ // Only register focus restorer if modal will actually get shown
557
+ return;
558
+ }
559
+
560
+ $target.one(Event.HIDDEN, function () {
561
+ if ($(_this10).is(':visible')) {
562
+ _this10.focus();
563
+ }
564
+ });
565
+ });
566
+
567
+ Modal._jQueryInterface.call($(target), config, this);
568
+ });
569
+ /**
570
+ * ------------------------------------------------------------------------
571
+ * jQuery
572
+ * ------------------------------------------------------------------------
573
+ */
574
+
575
+ $.fn[NAME] = Modal._jQueryInterface;
576
+ $.fn[NAME].Constructor = Modal;
577
+
578
+ $.fn[NAME].noConflict = function () {
579
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
580
+ return Modal._jQueryInterface;
581
+ };
582
+
583
+ return Modal;
584
+ }($);