bootstrap 5.2.3 → 5.3.0.alpha3

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 (83) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/assets/javascripts/bootstrap/alert.js +21 -32
  4. data/assets/javascripts/bootstrap/base-component.js +21 -38
  5. data/assets/javascripts/bootstrap/button.js +18 -22
  6. data/assets/javascripts/bootstrap/carousel.js +51 -135
  7. data/assets/javascripts/bootstrap/collapse.js +39 -102
  8. data/assets/javascripts/bootstrap/dom/data.js +8 -12
  9. data/assets/javascripts/bootstrap/dom/event-handler.js +18 -66
  10. data/assets/javascripts/bootstrap/dom/manipulator.js +4 -17
  11. data/assets/javascripts/bootstrap/dom/selector-engine.js +41 -24
  12. data/assets/javascripts/bootstrap/dropdown.js +73 -145
  13. data/assets/javascripts/bootstrap/modal.js +52 -133
  14. data/assets/javascripts/bootstrap/offcanvas.js +49 -102
  15. data/assets/javascripts/bootstrap/popover.js +22 -29
  16. data/assets/javascripts/bootstrap/scrollspy.js +51 -89
  17. data/assets/javascripts/bootstrap/tab.js +51 -109
  18. data/assets/javascripts/bootstrap/toast.js +30 -73
  19. data/assets/javascripts/bootstrap/tooltip.js +74 -177
  20. data/assets/javascripts/bootstrap/util/backdrop.js +27 -54
  21. data/assets/javascripts/bootstrap/util/component-functions.js +13 -19
  22. data/assets/javascripts/bootstrap/util/config.js +14 -27
  23. data/assets/javascripts/bootstrap/util/focustrap.js +19 -36
  24. data/assets/javascripts/bootstrap/util/index.js +42 -111
  25. data/assets/javascripts/bootstrap/util/sanitizer.js +13 -19
  26. data/assets/javascripts/bootstrap/util/scrollbar.js +23 -50
  27. data/assets/javascripts/bootstrap/util/swipe.js +26 -48
  28. data/assets/javascripts/bootstrap/util/template-factory.js +24 -52
  29. data/assets/javascripts/bootstrap-sprockets.js +1 -1
  30. data/assets/javascripts/bootstrap.js +626 -1406
  31. data/assets/javascripts/bootstrap.min.js +3 -3
  32. data/assets/stylesheets/_bootstrap-grid.scss +1 -3
  33. data/assets/stylesheets/_bootstrap-reboot.scss +1 -0
  34. data/assets/stylesheets/_bootstrap.scss +1 -0
  35. data/assets/stylesheets/bootstrap/_accordion.scss +9 -0
  36. data/assets/stylesheets/bootstrap/_alert.scss +8 -11
  37. data/assets/stylesheets/bootstrap/_button-group.scss +2 -2
  38. data/assets/stylesheets/bootstrap/_buttons.scss +3 -3
  39. data/assets/stylesheets/bootstrap/_card.scss +5 -0
  40. data/assets/stylesheets/bootstrap/_carousel.scss +20 -2
  41. data/assets/stylesheets/bootstrap/_close.scss +32 -9
  42. data/assets/stylesheets/bootstrap/_dropdown.scss +1 -0
  43. data/assets/stylesheets/bootstrap/_functions.scss +1 -1
  44. data/assets/stylesheets/bootstrap/_grid.scss +6 -0
  45. data/assets/stylesheets/bootstrap/_helpers.scss +2 -0
  46. data/assets/stylesheets/bootstrap/_list-group.scss +12 -7
  47. data/assets/stylesheets/bootstrap/_maps.scss +120 -0
  48. data/assets/stylesheets/bootstrap/_mixins.scss +1 -2
  49. data/assets/stylesheets/bootstrap/_nav.scss +40 -3
  50. data/assets/stylesheets/bootstrap/_navbar.scss +13 -3
  51. data/assets/stylesheets/bootstrap/_offcanvas.scss +4 -2
  52. data/assets/stylesheets/bootstrap/_pagination.scss +1 -1
  53. data/assets/stylesheets/bootstrap/_progress.scss +10 -1
  54. data/assets/stylesheets/bootstrap/_reboot.scss +3 -3
  55. data/assets/stylesheets/bootstrap/_root.scss +125 -10
  56. data/assets/stylesheets/bootstrap/_tables.scss +1 -1
  57. data/assets/stylesheets/bootstrap/_tooltip.scss +4 -5
  58. data/assets/stylesheets/bootstrap/_utilities.scss +172 -13
  59. data/assets/stylesheets/bootstrap/_variables-dark.scss +85 -0
  60. data/assets/stylesheets/bootstrap/_variables.scss +260 -151
  61. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +1 -0
  62. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +21 -3
  63. data/assets/stylesheets/bootstrap/forms/_form-check.scss +24 -11
  64. data/assets/stylesheets/bootstrap/forms/_form-control.scss +23 -3
  65. data/assets/stylesheets/bootstrap/forms/_form-select.scss +11 -2
  66. data/assets/stylesheets/bootstrap/forms/_input-group.scss +1 -1
  67. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +22 -2
  68. data/assets/stylesheets/bootstrap/helpers/_focus-ring.scss +5 -0
  69. data/assets/stylesheets/bootstrap/helpers/_icon-link.scss +25 -0
  70. data/assets/stylesheets/bootstrap/mixins/_alert.scss +4 -1
  71. data/assets/stylesheets/bootstrap/mixins/_banner.scss +2 -4
  72. data/assets/stylesheets/bootstrap/mixins/_caret.scss +30 -25
  73. data/assets/stylesheets/bootstrap/mixins/_color-mode.scss +21 -0
  74. data/assets/stylesheets/bootstrap/mixins/_forms.scss +8 -7
  75. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +2 -0
  76. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +1 -1
  77. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +5 -1
  78. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +23 -29
  79. data/bootstrap.gemspec +1 -1
  80. data/lib/bootstrap/version.rb +2 -2
  81. data/tasks/updater/js.rb +1 -1
  82. data/tasks/updater/scss.rb +1 -1
  83. metadata +10 -6
@@ -1,25 +1,21 @@
1
1
  /*!
2
- * Bootstrap backdrop.js v5.2.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap backdrop.js v5.3.0-alpha3 (https://getbootstrap.com/)
3
+ * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('../dom/event-handler'), require('./index'), require('./config')) :
8
- typeof define === 'function' && define.amd ? define(['../dom/event-handler', './index', './config'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Backdrop = factory(global.EventHandler, global.Index, global.Config));
10
- })(this, (function (EventHandler, index, Config) { 'use strict';
11
-
12
- const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
13
-
14
- const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
15
- const Config__default = /*#__PURE__*/_interopDefaultLegacy(Config);
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('../dom/event-handler.js'), require('./config.js'), require('./index.js')) :
8
+ typeof define === 'function' && define.amd ? define(['../dom/event-handler', './config', './index'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Backdrop = factory(global.EventHandler, global.Config, global.Index));
10
+ })(this, (function (EventHandler, Config, index_js) { 'use strict';
16
11
 
17
12
  /**
18
13
  * --------------------------------------------------------------------------
19
- * Bootstrap (v5.2.3): util/backdrop.js
14
+ * Bootstrap util/backdrop.js
20
15
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
21
16
  * --------------------------------------------------------------------------
22
17
  */
18
+
23
19
  /**
24
20
  * Constants
25
21
  */
@@ -35,8 +31,8 @@
35
31
  isVisible: true,
36
32
  // if false, we use the backdrop helper without adding any element to the dom
37
33
  rootElement: 'body' // give the choice to place backdrop under different elements
38
-
39
34
  };
35
+
40
36
  const DefaultType = {
41
37
  className: 'string',
42
38
  clickCallback: '(function|null)',
@@ -44,120 +40,97 @@
44
40
  isVisible: 'boolean',
45
41
  rootElement: '(element|string)'
46
42
  };
43
+
47
44
  /**
48
45
  * Class definition
49
46
  */
50
47
 
51
- class Backdrop extends Config__default.default {
48
+ class Backdrop extends Config {
52
49
  constructor(config) {
53
50
  super();
54
51
  this._config = this._getConfig(config);
55
52
  this._isAppended = false;
56
53
  this._element = null;
57
- } // Getters
58
-
54
+ }
59
55
 
56
+ // Getters
60
57
  static get Default() {
61
58
  return Default;
62
59
  }
63
-
64
60
  static get DefaultType() {
65
61
  return DefaultType;
66
62
  }
67
-
68
63
  static get NAME() {
69
64
  return NAME;
70
- } // Public
71
-
65
+ }
72
66
 
67
+ // Public
73
68
  show(callback) {
74
69
  if (!this._config.isVisible) {
75
- index.execute(callback);
70
+ index_js.execute(callback);
76
71
  return;
77
72
  }
78
-
79
73
  this._append();
80
-
81
74
  const element = this._getElement();
82
-
83
75
  if (this._config.isAnimated) {
84
- index.reflow(element);
76
+ index_js.reflow(element);
85
77
  }
86
-
87
78
  element.classList.add(CLASS_NAME_SHOW);
88
-
89
79
  this._emulateAnimation(() => {
90
- index.execute(callback);
80
+ index_js.execute(callback);
91
81
  });
92
82
  }
93
-
94
83
  hide(callback) {
95
84
  if (!this._config.isVisible) {
96
- index.execute(callback);
85
+ index_js.execute(callback);
97
86
  return;
98
87
  }
99
-
100
88
  this._getElement().classList.remove(CLASS_NAME_SHOW);
101
-
102
89
  this._emulateAnimation(() => {
103
90
  this.dispose();
104
- index.execute(callback);
91
+ index_js.execute(callback);
105
92
  });
106
93
  }
107
-
108
94
  dispose() {
109
95
  if (!this._isAppended) {
110
96
  return;
111
97
  }
112
-
113
- EventHandler__default.default.off(this._element, EVENT_MOUSEDOWN);
114
-
98
+ EventHandler.off(this._element, EVENT_MOUSEDOWN);
115
99
  this._element.remove();
116
-
117
100
  this._isAppended = false;
118
- } // Private
119
-
101
+ }
120
102
 
103
+ // Private
121
104
  _getElement() {
122
105
  if (!this._element) {
123
106
  const backdrop = document.createElement('div');
124
107
  backdrop.className = this._config.className;
125
-
126
108
  if (this._config.isAnimated) {
127
109
  backdrop.classList.add(CLASS_NAME_FADE);
128
110
  }
129
-
130
111
  this._element = backdrop;
131
112
  }
132
-
133
113
  return this._element;
134
114
  }
135
-
136
115
  _configAfterMerge(config) {
137
116
  // use getElement() with the default "body" to get a fresh Element on each instantiation
138
- config.rootElement = index.getElement(config.rootElement);
117
+ config.rootElement = index_js.getElement(config.rootElement);
139
118
  return config;
140
119
  }
141
-
142
120
  _append() {
143
121
  if (this._isAppended) {
144
122
  return;
145
123
  }
146
-
147
124
  const element = this._getElement();
148
-
149
125
  this._config.rootElement.append(element);
150
-
151
- EventHandler__default.default.on(element, EVENT_MOUSEDOWN, () => {
152
- index.execute(this._config.clickCallback);
126
+ EventHandler.on(element, EVENT_MOUSEDOWN, () => {
127
+ index_js.execute(this._config.clickCallback);
153
128
  });
154
129
  this._isAppended = true;
155
130
  }
156
-
157
131
  _emulateAnimation(callback) {
158
- index.executeAfterTransition(callback, this._getElement(), this._config.isAnimated);
132
+ index_js.executeAfterTransition(callback, this._getElement(), this._config.isAnimated);
159
133
  }
160
-
161
134
  }
162
135
 
163
136
  return Backdrop;
@@ -1,46 +1,40 @@
1
1
  /*!
2
- * Bootstrap component-functions.js v5.2.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap component-functions.js v5.3.0-alpha3 (https://getbootstrap.com/)
3
+ * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('../dom/event-handler'), require('./index')) :
8
- typeof define === 'function' && define.amd ? define(['exports', '../dom/event-handler', './index'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ComponentFunctions = {}, global.EventHandler, global.Index));
10
- })(this, (function (exports, EventHandler, index) { 'use strict';
11
-
12
- const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
13
-
14
- const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('../dom/event-handler.js'), require('../dom/selector-engine.js'), require('./index.js')) :
8
+ typeof define === 'function' && define.amd ? define(['exports', '../dom/event-handler', '../dom/selector-engine', './index'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ComponentFunctions = {}, global.EventHandler, global.SelectorEngine, global.Index));
10
+ })(this, (function (exports, EventHandler, SelectorEngine, index_js) { 'use strict';
15
11
 
16
12
  /**
17
13
  * --------------------------------------------------------------------------
18
- * Bootstrap (v5.2.3): util/component-functions.js
14
+ * Bootstrap util/component-functions.js
19
15
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
20
16
  * --------------------------------------------------------------------------
21
17
  */
22
-
23
18
  const enableDismissTrigger = (component, method = 'hide') => {
24
19
  const clickEvent = `click.dismiss${component.EVENT_KEY}`;
25
20
  const name = component.NAME;
26
- EventHandler__default.default.on(document, clickEvent, `[data-bs-dismiss="${name}"]`, function (event) {
21
+ EventHandler.on(document, clickEvent, `[data-bs-dismiss="${name}"]`, function (event) {
27
22
  if (['A', 'AREA'].includes(this.tagName)) {
28
23
  event.preventDefault();
29
24
  }
30
-
31
- if (index.isDisabled(this)) {
25
+ if (index_js.isDisabled(this)) {
32
26
  return;
33
27
  }
28
+ const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`);
29
+ const instance = component.getOrCreateInstance(target);
34
30
 
35
- const target = index.getElementFromSelector(this) || this.closest(`.${name}`);
36
- const instance = component.getOrCreateInstance(target); // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method
37
-
31
+ // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method
38
32
  instance[method]();
39
33
  });
40
34
  };
41
35
 
42
36
  exports.enableDismissTrigger = enableDismissTrigger;
43
37
 
44
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
38
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
45
39
 
46
40
  }));
@@ -1,24 +1,21 @@
1
1
  /*!
2
- * Bootstrap config.js v5.2.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap config.js v5.3.0-alpha3 (https://getbootstrap.com/)
3
+ * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./index'), require('../dom/manipulator')) :
8
- typeof define === 'function' && define.amd ? define(['./index', '../dom/manipulator'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Config = factory(global.Index, global.Manipulator));
10
- })(this, (function (index, Manipulator) { 'use strict';
11
-
12
- const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
13
-
14
- const Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('../dom/manipulator.js'), require('./index.js')) :
8
+ typeof define === 'function' && define.amd ? define(['../dom/manipulator', './index'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Config = factory(global.Manipulator, global.Index));
10
+ })(this, (function (Manipulator, index_js) { 'use strict';
15
11
 
16
12
  /**
17
13
  * --------------------------------------------------------------------------
18
- * Bootstrap (v5.2.3): util/config.js
14
+ * Bootstrap util/config.js
19
15
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
20
16
  * --------------------------------------------------------------------------
21
17
  */
18
+
22
19
  /**
23
20
  * Class definition
24
21
  */
@@ -28,50 +25,40 @@
28
25
  static get Default() {
29
26
  return {};
30
27
  }
31
-
32
28
  static get DefaultType() {
33
29
  return {};
34
30
  }
35
-
36
31
  static get NAME() {
37
32
  throw new Error('You have to implement the static method "NAME", for each component!');
38
33
  }
39
-
40
34
  _getConfig(config) {
41
35
  config = this._mergeConfigObj(config);
42
36
  config = this._configAfterMerge(config);
43
-
44
37
  this._typeCheckConfig(config);
45
-
46
38
  return config;
47
39
  }
48
-
49
40
  _configAfterMerge(config) {
50
41
  return config;
51
42
  }
52
-
53
43
  _mergeConfigObj(config, element) {
54
- const jsonConfig = index.isElement(element) ? Manipulator__default.default.getDataAttribute(element, 'config') : {}; // try to parse
44
+ const jsonConfig = index_js.isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse
55
45
 
56
- return { ...this.constructor.Default,
46
+ return {
47
+ ...this.constructor.Default,
57
48
  ...(typeof jsonConfig === 'object' ? jsonConfig : {}),
58
- ...(index.isElement(element) ? Manipulator__default.default.getDataAttributes(element) : {}),
49
+ ...(index_js.isElement(element) ? Manipulator.getDataAttributes(element) : {}),
59
50
  ...(typeof config === 'object' ? config : {})
60
51
  };
61
52
  }
62
-
63
53
  _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {
64
- for (const property of Object.keys(configTypes)) {
65
- const expectedTypes = configTypes[property];
54
+ for (const [property, expectedTypes] of Object.entries(configTypes)) {
66
55
  const value = config[property];
67
- const valueType = index.isElement(value) ? 'element' : index.toType(value);
68
-
56
+ const valueType = index_js.isElement(value) ? 'element' : index_js.toType(value);
69
57
  if (!new RegExp(expectedTypes).test(valueType)) {
70
58
  throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);
71
59
  }
72
60
  }
73
61
  }
74
-
75
62
  }
76
63
 
77
64
  return Config;
@@ -1,26 +1,21 @@
1
1
  /*!
2
- * Bootstrap focustrap.js v5.2.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap focustrap.js v5.3.0-alpha3 (https://getbootstrap.com/)
3
+ * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('../dom/event-handler'), require('../dom/selector-engine'), require('./config')) :
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('../dom/event-handler.js'), require('../dom/selector-engine.js'), require('./config.js')) :
8
8
  typeof define === 'function' && define.amd ? define(['../dom/event-handler', '../dom/selector-engine', './config'], factory) :
9
9
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Focustrap = factory(global.EventHandler, global.SelectorEngine, global.Config));
10
10
  })(this, (function (EventHandler, SelectorEngine, Config) { 'use strict';
11
11
 
12
- const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
13
-
14
- const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
15
- const SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
16
- const Config__default = /*#__PURE__*/_interopDefaultLegacy(Config);
17
-
18
12
  /**
19
13
  * --------------------------------------------------------------------------
20
- * Bootstrap (v5.2.3): util/focustrap.js
14
+ * Bootstrap util/focustrap.js
21
15
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
22
16
  * --------------------------------------------------------------------------
23
17
  */
18
+
24
19
  /**
25
20
  * Constants
26
21
  */
@@ -36,75 +31,66 @@
36
31
  const Default = {
37
32
  autofocus: true,
38
33
  trapElement: null // The element to trap focus inside of
39
-
40
34
  };
35
+
41
36
  const DefaultType = {
42
37
  autofocus: 'boolean',
43
38
  trapElement: 'element'
44
39
  };
40
+
45
41
  /**
46
42
  * Class definition
47
43
  */
48
44
 
49
- class FocusTrap extends Config__default.default {
45
+ class FocusTrap extends Config {
50
46
  constructor(config) {
51
47
  super();
52
48
  this._config = this._getConfig(config);
53
49
  this._isActive = false;
54
50
  this._lastTabNavDirection = null;
55
- } // Getters
56
-
51
+ }
57
52
 
53
+ // Getters
58
54
  static get Default() {
59
55
  return Default;
60
56
  }
61
-
62
57
  static get DefaultType() {
63
58
  return DefaultType;
64
59
  }
65
-
66
60
  static get NAME() {
67
61
  return NAME;
68
- } // Public
69
-
62
+ }
70
63
 
64
+ // Public
71
65
  activate() {
72
66
  if (this._isActive) {
73
67
  return;
74
68
  }
75
-
76
69
  if (this._config.autofocus) {
77
70
  this._config.trapElement.focus();
78
71
  }
79
-
80
- EventHandler__default.default.off(document, EVENT_KEY); // guard against infinite focus loop
81
-
82
- EventHandler__default.default.on(document, EVENT_FOCUSIN, event => this._handleFocusin(event));
83
- EventHandler__default.default.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event));
72
+ EventHandler.off(document, EVENT_KEY); // guard against infinite focus loop
73
+ EventHandler.on(document, EVENT_FOCUSIN, event => this._handleFocusin(event));
74
+ EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event));
84
75
  this._isActive = true;
85
76
  }
86
-
87
77
  deactivate() {
88
78
  if (!this._isActive) {
89
79
  return;
90
80
  }
91
-
92
81
  this._isActive = false;
93
- EventHandler__default.default.off(document, EVENT_KEY);
94
- } // Private
95
-
82
+ EventHandler.off(document, EVENT_KEY);
83
+ }
96
84
 
85
+ // Private
97
86
  _handleFocusin(event) {
98
87
  const {
99
88
  trapElement
100
89
  } = this._config;
101
-
102
90
  if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {
103
91
  return;
104
92
  }
105
-
106
- const elements = SelectorEngine__default.default.focusableChildren(trapElement);
107
-
93
+ const elements = SelectorEngine.focusableChildren(trapElement);
108
94
  if (elements.length === 0) {
109
95
  trapElement.focus();
110
96
  } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {
@@ -113,15 +99,12 @@
113
99
  elements[0].focus();
114
100
  }
115
101
  }
116
-
117
102
  _handleKeydown(event) {
118
103
  if (event.key !== TAB_KEY) {
119
104
  return;
120
105
  }
121
-
122
106
  this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;
123
107
  }
124
-
125
108
  }
126
109
 
127
110
  return FocusTrap;