bootstrap-propshaft 5.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (185) hide show
  1. checksums.yaml +7 -0
  2. data/.gitattributes +14 -0
  3. data/.github/workflows/ci.yml +61 -0
  4. data/.gitignore +19 -0
  5. data/CHANGELOG.md +25 -0
  6. data/Gemfile +12 -0
  7. data/LICENSE +21 -0
  8. data/README.md +138 -0
  9. data/Rakefile +89 -0
  10. data/assets/javascripts/bootstrap/alert.js +89 -0
  11. data/assets/javascripts/bootstrap/base-component.js +83 -0
  12. data/assets/javascripts/bootstrap/button.js +78 -0
  13. data/assets/javascripts/bootstrap/carousel.js +387 -0
  14. data/assets/javascripts/bootstrap/collapse.js +248 -0
  15. data/assets/javascripts/bootstrap/dom/data.js +62 -0
  16. data/assets/javascripts/bootstrap/dom/event-handler.js +236 -0
  17. data/assets/javascripts/bootstrap/dom/manipulator.js +71 -0
  18. data/assets/javascripts/bootstrap/dom/selector-engine.js +103 -0
  19. data/assets/javascripts/bootstrap/dropdown.js +401 -0
  20. data/assets/javascripts/bootstrap/modal.js +319 -0
  21. data/assets/javascripts/bootstrap/offcanvas.js +245 -0
  22. data/assets/javascripts/bootstrap/popover.js +95 -0
  23. data/assets/javascripts/bootstrap/scrollspy.js +274 -0
  24. data/assets/javascripts/bootstrap/tab.js +284 -0
  25. data/assets/javascripts/bootstrap/toast.js +198 -0
  26. data/assets/javascripts/bootstrap/tooltip.js +545 -0
  27. data/assets/javascripts/bootstrap/util/backdrop.js +139 -0
  28. data/assets/javascripts/bootstrap/util/component-functions.js +41 -0
  29. data/assets/javascripts/bootstrap/util/config.js +67 -0
  30. data/assets/javascripts/bootstrap/util/focustrap.js +113 -0
  31. data/assets/javascripts/bootstrap/util/index.js +281 -0
  32. data/assets/javascripts/bootstrap/util/sanitizer.js +110 -0
  33. data/assets/javascripts/bootstrap/util/scrollbar.js +112 -0
  34. data/assets/javascripts/bootstrap/util/swipe.js +134 -0
  35. data/assets/javascripts/bootstrap/util/template-factory.js +150 -0
  36. data/assets/javascripts/bootstrap-global-this-define.js +6 -0
  37. data/assets/javascripts/bootstrap-global-this-undefine.js +2 -0
  38. data/assets/javascripts/bootstrap-sprockets.js +28 -0
  39. data/assets/javascripts/bootstrap.js +4493 -0
  40. data/assets/javascripts/bootstrap.min.js +6 -0
  41. data/assets/stylesheets/_bootstrap-grid.scss +62 -0
  42. data/assets/stylesheets/_bootstrap-reboot.scss +10 -0
  43. data/assets/stylesheets/_bootstrap-utilities.scss +19 -0
  44. data/assets/stylesheets/_bootstrap.scss +52 -0
  45. data/assets/stylesheets/bootstrap/_accordion.scss +158 -0
  46. data/assets/stylesheets/bootstrap/_alert.scss +68 -0
  47. data/assets/stylesheets/bootstrap/_badge.scss +38 -0
  48. data/assets/stylesheets/bootstrap/_breadcrumb.scss +40 -0
  49. data/assets/stylesheets/bootstrap/_button-group.scss +142 -0
  50. data/assets/stylesheets/bootstrap/_buttons.scss +207 -0
  51. data/assets/stylesheets/bootstrap/_card.scss +239 -0
  52. data/assets/stylesheets/bootstrap/_carousel.scss +244 -0
  53. data/assets/stylesheets/bootstrap/_close.scss +63 -0
  54. data/assets/stylesheets/bootstrap/_containers.scss +41 -0
  55. data/assets/stylesheets/bootstrap/_dropdown.scss +250 -0
  56. data/assets/stylesheets/bootstrap/_forms.scss +9 -0
  57. data/assets/stylesheets/bootstrap/_functions.scss +302 -0
  58. data/assets/stylesheets/bootstrap/_grid.scss +39 -0
  59. data/assets/stylesheets/bootstrap/_helpers.scss +12 -0
  60. data/assets/stylesheets/bootstrap/_images.scss +42 -0
  61. data/assets/stylesheets/bootstrap/_list-group.scss +197 -0
  62. data/assets/stylesheets/bootstrap/_maps.scss +174 -0
  63. data/assets/stylesheets/bootstrap/_mixins.scss +42 -0
  64. data/assets/stylesheets/bootstrap/_modal.scss +237 -0
  65. data/assets/stylesheets/bootstrap/_nav.scss +197 -0
  66. data/assets/stylesheets/bootstrap/_navbar.scss +289 -0
  67. data/assets/stylesheets/bootstrap/_offcanvas.scss +146 -0
  68. data/assets/stylesheets/bootstrap/_pagination.scss +109 -0
  69. data/assets/stylesheets/bootstrap/_placeholders.scss +51 -0
  70. data/assets/stylesheets/bootstrap/_popover.scss +196 -0
  71. data/assets/stylesheets/bootstrap/_progress.scss +68 -0
  72. data/assets/stylesheets/bootstrap/_reboot.scss +611 -0
  73. data/assets/stylesheets/bootstrap/_root.scss +187 -0
  74. data/assets/stylesheets/bootstrap/_spinners.scss +85 -0
  75. data/assets/stylesheets/bootstrap/_tables.scss +171 -0
  76. data/assets/stylesheets/bootstrap/_toasts.scss +73 -0
  77. data/assets/stylesheets/bootstrap/_tooltip.scss +119 -0
  78. data/assets/stylesheets/bootstrap/_transitions.scss +27 -0
  79. data/assets/stylesheets/bootstrap/_type.scss +106 -0
  80. data/assets/stylesheets/bootstrap/_utilities.scss +806 -0
  81. data/assets/stylesheets/bootstrap/_variables-dark.scss +87 -0
  82. data/assets/stylesheets/bootstrap/_variables.scss +1747 -0
  83. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +95 -0
  84. data/assets/stylesheets/bootstrap/forms/_form-check.scss +189 -0
  85. data/assets/stylesheets/bootstrap/forms/_form-control.scss +214 -0
  86. data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
  87. data/assets/stylesheets/bootstrap/forms/_form-select.scss +80 -0
  88. data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
  89. data/assets/stylesheets/bootstrap/forms/_input-group.scss +132 -0
  90. data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
  91. data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
  92. data/assets/stylesheets/bootstrap/helpers/_clearfix.scss +3 -0
  93. data/assets/stylesheets/bootstrap/helpers/_color-bg.scss +7 -0
  94. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +30 -0
  95. data/assets/stylesheets/bootstrap/helpers/_focus-ring.scss +5 -0
  96. data/assets/stylesheets/bootstrap/helpers/_icon-link.scss +25 -0
  97. data/assets/stylesheets/bootstrap/helpers/_position.scss +36 -0
  98. data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -0
  99. data/assets/stylesheets/bootstrap/helpers/_stacks.scss +15 -0
  100. data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
  101. data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
  102. data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +8 -0
  103. data/assets/stylesheets/bootstrap/helpers/_vr.scss +8 -0
  104. data/assets/stylesheets/bootstrap/mixins/_alert.scss +18 -0
  105. data/assets/stylesheets/bootstrap/mixins/_backdrop.scss +14 -0
  106. data/assets/stylesheets/bootstrap/mixins/_banner.scss +7 -0
  107. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +78 -0
  108. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +18 -0
  109. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +127 -0
  110. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +70 -0
  111. data/assets/stylesheets/bootstrap/mixins/_caret.scss +69 -0
  112. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +9 -0
  113. data/assets/stylesheets/bootstrap/mixins/_color-mode.scss +21 -0
  114. data/assets/stylesheets/bootstrap/mixins/_color-scheme.scss +7 -0
  115. data/assets/stylesheets/bootstrap/mixins/_container.scss +11 -0
  116. data/assets/stylesheets/bootstrap/mixins/_deprecate.scss +10 -0
  117. data/assets/stylesheets/bootstrap/mixins/_forms.scss +153 -0
  118. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +47 -0
  119. data/assets/stylesheets/bootstrap/mixins/_grid.scss +151 -0
  120. data/assets/stylesheets/bootstrap/mixins/_image.scss +16 -0
  121. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +26 -0
  122. data/assets/stylesheets/bootstrap/mixins/_lists.scss +7 -0
  123. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +10 -0
  124. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +17 -0
  125. data/assets/stylesheets/bootstrap/mixins/_resize.scss +6 -0
  126. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +24 -0
  127. data/assets/stylesheets/bootstrap/mixins/_text-truncate.scss +8 -0
  128. data/assets/stylesheets/bootstrap/mixins/_transition.scss +26 -0
  129. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +97 -0
  130. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +33 -0
  131. data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
  132. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +348 -0
  133. data/bootstrap.gemspec +39 -0
  134. data/lib/bootstrap/engine.rb +22 -0
  135. data/lib/bootstrap/version.rb +6 -0
  136. data/lib/bootstrap.rb +75 -0
  137. data/tasks/updater/js.rb +92 -0
  138. data/tasks/updater/logger.rb +57 -0
  139. data/tasks/updater/network.rb +109 -0
  140. data/tasks/updater/scss.rb +26 -0
  141. data/tasks/updater.rb +67 -0
  142. data/test/dummy_rails/README.rdoc +3 -0
  143. data/test/dummy_rails/Rakefile +6 -0
  144. data/test/dummy_rails/app/assets/config/manifest.js +3 -0
  145. data/test/dummy_rails/app/assets/images/.keep +0 -0
  146. data/test/dummy_rails/app/assets/javascripts/application.js +8 -0
  147. data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
  148. data/test/dummy_rails/app/assets/stylesheets/application.sass +4 -0
  149. data/test/dummy_rails/app/controllers/application_controller.rb +5 -0
  150. data/test/dummy_rails/app/controllers/pages_controller.rb +4 -0
  151. data/test/dummy_rails/app/helpers/application_helper.rb +2 -0
  152. data/test/dummy_rails/app/views/layouts/application.html.erb +16 -0
  153. data/test/dummy_rails/app/views/pages/root.html +89 -0
  154. data/test/dummy_rails/config/application.rb +32 -0
  155. data/test/dummy_rails/config/boot.rb +5 -0
  156. data/test/dummy_rails/config/environment.rb +5 -0
  157. data/test/dummy_rails/config/environments/development.rb +23 -0
  158. data/test/dummy_rails/config/environments/production.rb +82 -0
  159. data/test/dummy_rails/config/environments/test.rb +38 -0
  160. data/test/dummy_rails/config/initializers/backtrace_silencers.rb +7 -0
  161. data/test/dummy_rails/config/initializers/filter_parameter_logging.rb +4 -0
  162. data/test/dummy_rails/config/initializers/inflections.rb +16 -0
  163. data/test/dummy_rails/config/initializers/mime_types.rb +5 -0
  164. data/test/dummy_rails/config/initializers/secret_token.rb +18 -0
  165. data/test/dummy_rails/config/initializers/session_store.rb +3 -0
  166. data/test/dummy_rails/config/initializers/wrap_parameters.rb +14 -0
  167. data/test/dummy_rails/config/locales/en.yml +3 -0
  168. data/test/dummy_rails/config/locales/es.yml +3 -0
  169. data/test/dummy_rails/config/routes.rb +3 -0
  170. data/test/dummy_rails/config.ru +4 -0
  171. data/test/dummy_rails/log/.keep +0 -0
  172. data/test/gemfiles/rails_4_2.gemfile +7 -0
  173. data/test/gemfiles/rails_5_0.gemfile +8 -0
  174. data/test/gemfiles/rails_5_1.gemfile +8 -0
  175. data/test/gemfiles/rails_5_2.gemfile +8 -0
  176. data/test/gemfiles/rails_6_0.gemfile +8 -0
  177. data/test/gemfiles/rails_6_1.gemfile +8 -0
  178. data/test/gemfiles/rails_7_0_dartsass.gemfile +8 -0
  179. data/test/gemfiles/rails_7_0_sassc.gemfile +8 -0
  180. data/test/rails_test.rb +24 -0
  181. data/test/support/dummy_rails_integration.rb +31 -0
  182. data/test/support/reporting.rb +27 -0
  183. data/test/test_helper.rb +42 -0
  184. data/test/test_helper_rails.rb +6 -0
  185. metadata +471 -0
@@ -0,0 +1,112 @@
1
+ /*!
2
+ * Bootstrap scrollbar.js v5.3.2 (https://getbootstrap.com/)
3
+ * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ */
6
+ (function (global, factory) {
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('../dom/manipulator.js'), require('../dom/selector-engine.js'), require('./index.js')) :
8
+ typeof define === 'function' && define.amd ? define(['../dom/manipulator', '../dom/selector-engine', './index'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Scrollbar = factory(global.Manipulator, global.SelectorEngine, global.Index));
10
+ })(this, (function (Manipulator, SelectorEngine, index_js) { 'use strict';
11
+
12
+ /**
13
+ * --------------------------------------------------------------------------
14
+ * Bootstrap util/scrollBar.js
15
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
16
+ * --------------------------------------------------------------------------
17
+ */
18
+
19
+
20
+ /**
21
+ * Constants
22
+ */
23
+
24
+ const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
25
+ const SELECTOR_STICKY_CONTENT = '.sticky-top';
26
+ const PROPERTY_PADDING = 'padding-right';
27
+ const PROPERTY_MARGIN = 'margin-right';
28
+
29
+ /**
30
+ * Class definition
31
+ */
32
+
33
+ class ScrollBarHelper {
34
+ constructor() {
35
+ this._element = document.body;
36
+ }
37
+
38
+ // Public
39
+ getWidth() {
40
+ // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes
41
+ const documentWidth = document.documentElement.clientWidth;
42
+ return Math.abs(window.innerWidth - documentWidth);
43
+ }
44
+ hide() {
45
+ const width = this.getWidth();
46
+ this._disableOverFlow();
47
+ // give padding to element to balance the hidden scrollbar width
48
+ this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width);
49
+ // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth
50
+ this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width);
51
+ this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width);
52
+ }
53
+ reset() {
54
+ this._resetElementAttributes(this._element, 'overflow');
55
+ this._resetElementAttributes(this._element, PROPERTY_PADDING);
56
+ this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);
57
+ this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);
58
+ }
59
+ isOverflowing() {
60
+ return this.getWidth() > 0;
61
+ }
62
+
63
+ // Private
64
+ _disableOverFlow() {
65
+ this._saveInitialAttribute(this._element, 'overflow');
66
+ this._element.style.overflow = 'hidden';
67
+ }
68
+ _setElementAttributes(selector, styleProperty, callback) {
69
+ const scrollbarWidth = this.getWidth();
70
+ const manipulationCallBack = element => {
71
+ if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {
72
+ return;
73
+ }
74
+ this._saveInitialAttribute(element, styleProperty);
75
+ const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);
76
+ element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);
77
+ };
78
+ this._applyManipulationCallback(selector, manipulationCallBack);
79
+ }
80
+ _saveInitialAttribute(element, styleProperty) {
81
+ const actualValue = element.style.getPropertyValue(styleProperty);
82
+ if (actualValue) {
83
+ Manipulator.setDataAttribute(element, styleProperty, actualValue);
84
+ }
85
+ }
86
+ _resetElementAttributes(selector, styleProperty) {
87
+ const manipulationCallBack = element => {
88
+ const value = Manipulator.getDataAttribute(element, styleProperty);
89
+ // We only want to remove the property if the value is `null`; the value can also be zero
90
+ if (value === null) {
91
+ element.style.removeProperty(styleProperty);
92
+ return;
93
+ }
94
+ Manipulator.removeDataAttribute(element, styleProperty);
95
+ element.style.setProperty(styleProperty, value);
96
+ };
97
+ this._applyManipulationCallback(selector, manipulationCallBack);
98
+ }
99
+ _applyManipulationCallback(selector, callBack) {
100
+ if (index_js.isElement(selector)) {
101
+ callBack(selector);
102
+ return;
103
+ }
104
+ for (const sel of SelectorEngine.find(selector, this._element)) {
105
+ callBack(sel);
106
+ }
107
+ }
108
+ }
109
+
110
+ return ScrollBarHelper;
111
+
112
+ }));
@@ -0,0 +1,134 @@
1
+ /*!
2
+ * Bootstrap swipe.js v5.3.2 (https://getbootstrap.com/)
3
+ * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ */
6
+ (function (global, factory) {
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.Swipe = factory(global.EventHandler, global.Config, global.Index));
10
+ })(this, (function (EventHandler, Config, index_js) { 'use strict';
11
+
12
+ /**
13
+ * --------------------------------------------------------------------------
14
+ * Bootstrap util/swipe.js
15
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
16
+ * --------------------------------------------------------------------------
17
+ */
18
+
19
+
20
+ /**
21
+ * Constants
22
+ */
23
+
24
+ const NAME = 'swipe';
25
+ const EVENT_KEY = '.bs.swipe';
26
+ const EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`;
27
+ const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`;
28
+ const EVENT_TOUCHEND = `touchend${EVENT_KEY}`;
29
+ const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`;
30
+ const EVENT_POINTERUP = `pointerup${EVENT_KEY}`;
31
+ const POINTER_TYPE_TOUCH = 'touch';
32
+ const POINTER_TYPE_PEN = 'pen';
33
+ const CLASS_NAME_POINTER_EVENT = 'pointer-event';
34
+ const SWIPE_THRESHOLD = 40;
35
+ const Default = {
36
+ endCallback: null,
37
+ leftCallback: null,
38
+ rightCallback: null
39
+ };
40
+ const DefaultType = {
41
+ endCallback: '(function|null)',
42
+ leftCallback: '(function|null)',
43
+ rightCallback: '(function|null)'
44
+ };
45
+
46
+ /**
47
+ * Class definition
48
+ */
49
+
50
+ class Swipe extends Config {
51
+ constructor(element, config) {
52
+ super();
53
+ this._element = element;
54
+ if (!element || !Swipe.isSupported()) {
55
+ return;
56
+ }
57
+ this._config = this._getConfig(config);
58
+ this._deltaX = 0;
59
+ this._supportPointerEvents = Boolean(window.PointerEvent);
60
+ this._initEvents();
61
+ }
62
+
63
+ // Getters
64
+ static get Default() {
65
+ return Default;
66
+ }
67
+ static get DefaultType() {
68
+ return DefaultType;
69
+ }
70
+ static get NAME() {
71
+ return NAME;
72
+ }
73
+
74
+ // Public
75
+ dispose() {
76
+ EventHandler.off(this._element, EVENT_KEY);
77
+ }
78
+
79
+ // Private
80
+ _start(event) {
81
+ if (!this._supportPointerEvents) {
82
+ this._deltaX = event.touches[0].clientX;
83
+ return;
84
+ }
85
+ if (this._eventIsPointerPenTouch(event)) {
86
+ this._deltaX = event.clientX;
87
+ }
88
+ }
89
+ _end(event) {
90
+ if (this._eventIsPointerPenTouch(event)) {
91
+ this._deltaX = event.clientX - this._deltaX;
92
+ }
93
+ this._handleSwipe();
94
+ index_js.execute(this._config.endCallback);
95
+ }
96
+ _move(event) {
97
+ this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;
98
+ }
99
+ _handleSwipe() {
100
+ const absDeltaX = Math.abs(this._deltaX);
101
+ if (absDeltaX <= SWIPE_THRESHOLD) {
102
+ return;
103
+ }
104
+ const direction = absDeltaX / this._deltaX;
105
+ this._deltaX = 0;
106
+ if (!direction) {
107
+ return;
108
+ }
109
+ index_js.execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);
110
+ }
111
+ _initEvents() {
112
+ if (this._supportPointerEvents) {
113
+ EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event));
114
+ EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event));
115
+ this._element.classList.add(CLASS_NAME_POINTER_EVENT);
116
+ } else {
117
+ EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event));
118
+ EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event));
119
+ EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event));
120
+ }
121
+ }
122
+ _eventIsPointerPenTouch(event) {
123
+ return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);
124
+ }
125
+
126
+ // Static
127
+ static isSupported() {
128
+ return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
129
+ }
130
+ }
131
+
132
+ return Swipe;
133
+
134
+ }));
@@ -0,0 +1,150 @@
1
+ /*!
2
+ * Bootstrap template-factory.js v5.3.2 (https://getbootstrap.com/)
3
+ * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ */
6
+ (function (global, factory) {
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('../dom/selector-engine.js'), require('./config.js'), require('./sanitizer.js'), require('./index.js')) :
8
+ typeof define === 'function' && define.amd ? define(['../dom/selector-engine', './config', './sanitizer', './index'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.TemplateFactory = factory(global.SelectorEngine, global.Config, global.Sanitizer, global.Index));
10
+ })(this, (function (SelectorEngine, Config, sanitizer_js, index_js) { 'use strict';
11
+
12
+ /**
13
+ * --------------------------------------------------------------------------
14
+ * Bootstrap util/template-factory.js
15
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
16
+ * --------------------------------------------------------------------------
17
+ */
18
+
19
+
20
+ /**
21
+ * Constants
22
+ */
23
+
24
+ const NAME = 'TemplateFactory';
25
+ const Default = {
26
+ allowList: sanitizer_js.DefaultAllowlist,
27
+ content: {},
28
+ // { selector : text , selector2 : text2 , }
29
+ extraClass: '',
30
+ html: false,
31
+ sanitize: true,
32
+ sanitizeFn: null,
33
+ template: '<div></div>'
34
+ };
35
+ const DefaultType = {
36
+ allowList: 'object',
37
+ content: 'object',
38
+ extraClass: '(string|function)',
39
+ html: 'boolean',
40
+ sanitize: 'boolean',
41
+ sanitizeFn: '(null|function)',
42
+ template: 'string'
43
+ };
44
+ const DefaultContentType = {
45
+ entry: '(string|element|function|null)',
46
+ selector: '(string|element)'
47
+ };
48
+
49
+ /**
50
+ * Class definition
51
+ */
52
+
53
+ class TemplateFactory extends Config {
54
+ constructor(config) {
55
+ super();
56
+ this._config = this._getConfig(config);
57
+ }
58
+
59
+ // Getters
60
+ static get Default() {
61
+ return Default;
62
+ }
63
+ static get DefaultType() {
64
+ return DefaultType;
65
+ }
66
+ static get NAME() {
67
+ return NAME;
68
+ }
69
+
70
+ // Public
71
+ getContent() {
72
+ return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean);
73
+ }
74
+ hasContent() {
75
+ return this.getContent().length > 0;
76
+ }
77
+ changeContent(content) {
78
+ this._checkContent(content);
79
+ this._config.content = {
80
+ ...this._config.content,
81
+ ...content
82
+ };
83
+ return this;
84
+ }
85
+ toHtml() {
86
+ const templateWrapper = document.createElement('div');
87
+ templateWrapper.innerHTML = this._maybeSanitize(this._config.template);
88
+ for (const [selector, text] of Object.entries(this._config.content)) {
89
+ this._setContent(templateWrapper, text, selector);
90
+ }
91
+ const template = templateWrapper.children[0];
92
+ const extraClass = this._resolvePossibleFunction(this._config.extraClass);
93
+ if (extraClass) {
94
+ template.classList.add(...extraClass.split(' '));
95
+ }
96
+ return template;
97
+ }
98
+
99
+ // Private
100
+ _typeCheckConfig(config) {
101
+ super._typeCheckConfig(config);
102
+ this._checkContent(config.content);
103
+ }
104
+ _checkContent(arg) {
105
+ for (const [selector, content] of Object.entries(arg)) {
106
+ super._typeCheckConfig({
107
+ selector,
108
+ entry: content
109
+ }, DefaultContentType);
110
+ }
111
+ }
112
+ _setContent(template, content, selector) {
113
+ const templateElement = SelectorEngine.findOne(selector, template);
114
+ if (!templateElement) {
115
+ return;
116
+ }
117
+ content = this._resolvePossibleFunction(content);
118
+ if (!content) {
119
+ templateElement.remove();
120
+ return;
121
+ }
122
+ if (index_js.isElement(content)) {
123
+ this._putElementInTemplate(index_js.getElement(content), templateElement);
124
+ return;
125
+ }
126
+ if (this._config.html) {
127
+ templateElement.innerHTML = this._maybeSanitize(content);
128
+ return;
129
+ }
130
+ templateElement.textContent = content;
131
+ }
132
+ _maybeSanitize(arg) {
133
+ return this._config.sanitize ? sanitizer_js.sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;
134
+ }
135
+ _resolvePossibleFunction(arg) {
136
+ return index_js.execute(arg, [this]);
137
+ }
138
+ _putElementInTemplate(element, templateElement) {
139
+ if (this._config.html) {
140
+ templateElement.innerHTML = '';
141
+ templateElement.append(element);
142
+ return;
143
+ }
144
+ templateElement.textContent = element.textContent;
145
+ }
146
+ }
147
+
148
+ return TemplateFactory;
149
+
150
+ }));
@@ -0,0 +1,6 @@
1
+ // Set a `globalThis` so that bootstrap components are defined on window.bootstrap instead of window.
2
+ window['bootstrap'] = {
3
+ "@popperjs/core": window.Popper,
4
+ _originalGlobalThis: window['globalThis']
5
+ };
6
+ window['globalThis'] = window['bootstrap'];
@@ -0,0 +1,2 @@
1
+ window['globalThis'] = window['bootstrap']._originalGlobalThis;
2
+ window['bootstrap']._originalGlobalThis = null;
@@ -0,0 +1,28 @@
1
+ //= require ./bootstrap-global-this-define
2
+ //= require ./bootstrap/dom/data
3
+ //= require ./bootstrap/util/index
4
+ //= require ./bootstrap/dom/event-handler
5
+ //= require ./bootstrap/dom/manipulator
6
+ //= require ./bootstrap/util/config
7
+ //= require ./bootstrap/base-component
8
+ //= require ./bootstrap/dom/selector-engine
9
+ //= require ./bootstrap/collapse
10
+ //= require ./bootstrap/util/sanitizer
11
+ //= require ./bootstrap/util/backdrop
12
+ //= require ./bootstrap/util/scrollbar
13
+ //= require ./bootstrap/util/component-functions
14
+ //= require ./bootstrap/util/focustrap
15
+ //= require ./bootstrap/modal
16
+ //= require ./bootstrap/util/template-factory
17
+ //= require ./bootstrap/tooltip
18
+ //= require ./bootstrap/offcanvas
19
+ //= require ./bootstrap/util/swipe
20
+ //= require ./bootstrap/toast
21
+ //= require ./bootstrap/button
22
+ //= require ./bootstrap/alert
23
+ //= require ./bootstrap/popover
24
+ //= require ./bootstrap/scrollspy
25
+ //= require ./bootstrap/dropdown
26
+ //= require ./bootstrap/tab
27
+ //= require ./bootstrap/carousel
28
+ //= require ./bootstrap-global-this-undefine