@openeuropa/bcl-bootstrap 0.14.0 → 0.18.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 (81) hide show
  1. package/bin/build-plugins.js +77 -160
  2. package/bootstrap-icons.js +211 -1
  3. package/js/dist/alert.js +6 -137
  4. package/js/dist/alert.js.map +1 -1
  5. package/js/dist/base-component.js +7 -109
  6. package/js/dist/base-component.js.map +1 -1
  7. package/js/dist/button.js +5 -65
  8. package/js/dist/button.js.map +1 -1
  9. package/js/dist/carousel.js +13 -190
  10. package/js/dist/carousel.js.map +1 -1
  11. package/js/dist/collapse.js +12 -170
  12. package/js/dist/collapse.js.map +1 -1
  13. package/js/dist/dom/data.js +0 -5
  14. package/js/dist/dom/data.js.map +1 -1
  15. package/js/dist/dom/event-handler.js +5 -29
  16. package/js/dist/dom/event-handler.js.map +1 -1
  17. package/js/dist/dom/manipulator.js +0 -5
  18. package/js/dist/dom/manipulator.js.map +1 -1
  19. package/js/dist/dom/selector-engine.js +5 -53
  20. package/js/dist/dom/selector-engine.js.map +1 -1
  21. package/js/dist/dropdown.js +23 -212
  22. package/js/dist/dropdown.js.map +1 -1
  23. package/js/dist/modal.js +18 -611
  24. package/js/dist/modal.js.map +1 -1
  25. package/js/dist/offcanvas.js +19 -610
  26. package/js/dist/offcanvas.js.map +1 -1
  27. package/js/dist/popover.js +5 -65
  28. package/js/dist/popover.js.map +1 -1
  29. package/js/dist/scrollspy.js +8 -147
  30. package/js/dist/scrollspy.js.map +1 -1
  31. package/js/dist/tab.js +8 -127
  32. package/js/dist/tab.js.map +1 -1
  33. package/js/dist/toast.js +8 -185
  34. package/js/dist/toast.js.map +1 -1
  35. package/js/dist/tooltip.js +18 -277
  36. package/js/dist/tooltip.js.map +1 -1
  37. package/js/dist/util/backdrop.js +138 -0
  38. package/js/dist/util/backdrop.js.map +1 -0
  39. package/js/dist/util/component-functions.js +42 -0
  40. package/js/dist/util/component-functions.js.map +1 -0
  41. package/js/dist/util/focustrap.js +118 -0
  42. package/js/dist/util/focustrap.js.map +1 -0
  43. package/js/dist/util/index.js +342 -0
  44. package/js/dist/util/index.js.map +1 -0
  45. package/js/dist/util/sanitizer.js +125 -0
  46. package/js/dist/util/sanitizer.js.map +1 -0
  47. package/js/dist/util/scrollbar.js +119 -0
  48. package/js/dist/util/scrollbar.js.map +1 -0
  49. package/package.json +4 -3
  50. package/plugins/alert.js +0 -230
  51. package/plugins/alert.js.map +0 -1
  52. package/plugins/base-component.js +0 -178
  53. package/plugins/base-component.js.map +0 -1
  54. package/plugins/button.js +0 -141
  55. package/plugins/button.js.map +0 -1
  56. package/plugins/carousel.js +0 -738
  57. package/plugins/carousel.js.map +0 -1
  58. package/plugins/collapse.js +0 -490
  59. package/plugins/collapse.js.map +0 -1
  60. package/plugins/dom/data.js +0 -64
  61. package/plugins/dom/data.js.map +0 -1
  62. package/plugins/dom/event-handler.js +0 -317
  63. package/plugins/dom/event-handler.js.map +0 -1
  64. package/plugins/dom/manipulator.js +0 -84
  65. package/plugins/dom/manipulator.js.map +0 -1
  66. package/plugins/dom/selector-engine.js +0 -123
  67. package/plugins/dom/selector-engine.js.map +0 -1
  68. package/plugins/dropdown.js +0 -682
  69. package/plugins/dropdown.js.map +0 -1
  70. package/plugins/modal.js +0 -1037
  71. package/plugins/modal.js.map +0 -1
  72. package/plugins/popover.js +0 -179
  73. package/plugins/popover.js.map +0 -1
  74. package/plugins/scrollspy.js +0 -386
  75. package/plugins/scrollspy.js.map +0 -1
  76. package/plugins/tab.js +0 -328
  77. package/plugins/tab.js.map +0 -1
  78. package/plugins/toast.js +0 -418
  79. package/plugins/toast.js.map +0 -1
  80. package/plugins/tooltip.js +0 -1001
  81. package/plugins/tooltip.js.map +0 -1
@@ -0,0 +1,138 @@
1
+ (function (global, factory) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('../dom/event-handler'), require('./index')) :
3
+ typeof define === 'function' && define.amd ? define(['../dom/event-handler', './index'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Backdrop = factory(global.EventHandler, global.Index));
5
+ })(this, (function (EventHandler, index) { 'use strict';
6
+
7
+ const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
8
+
9
+ const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
10
+
11
+ /**
12
+ * --------------------------------------------------------------------------
13
+ * Bootstrap (v5.1.3): util/backdrop.js
14
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
15
+ * --------------------------------------------------------------------------
16
+ */
17
+ const Default = {
18
+ className: 'modal-backdrop',
19
+ isVisible: true,
20
+ // if false, we use the backdrop helper without adding any element to the dom
21
+ isAnimated: false,
22
+ rootElement: 'body',
23
+ // give the choice to place backdrop under different elements
24
+ clickCallback: null
25
+ };
26
+ const DefaultType = {
27
+ className: 'string',
28
+ isVisible: 'boolean',
29
+ isAnimated: 'boolean',
30
+ rootElement: '(element|string)',
31
+ clickCallback: '(function|null)'
32
+ };
33
+ const NAME = 'backdrop';
34
+ const CLASS_NAME_FADE = 'fade';
35
+ const CLASS_NAME_SHOW = 'show';
36
+ const EVENT_MOUSEDOWN = `mousedown.bs.${NAME}`;
37
+
38
+ class Backdrop {
39
+ constructor(config) {
40
+ this._config = this._getConfig(config);
41
+ this._isAppended = false;
42
+ this._element = null;
43
+ }
44
+
45
+ show(callback) {
46
+ if (!this._config.isVisible) {
47
+ index.execute(callback);
48
+ return;
49
+ }
50
+
51
+ this._append();
52
+
53
+ if (this._config.isAnimated) {
54
+ index.reflow(this._getElement());
55
+ }
56
+
57
+ this._getElement().classList.add(CLASS_NAME_SHOW);
58
+
59
+ this._emulateAnimation(() => {
60
+ index.execute(callback);
61
+ });
62
+ }
63
+
64
+ hide(callback) {
65
+ if (!this._config.isVisible) {
66
+ index.execute(callback);
67
+ return;
68
+ }
69
+
70
+ this._getElement().classList.remove(CLASS_NAME_SHOW);
71
+
72
+ this._emulateAnimation(() => {
73
+ this.dispose();
74
+ index.execute(callback);
75
+ });
76
+ } // Private
77
+
78
+
79
+ _getElement() {
80
+ if (!this._element) {
81
+ const backdrop = document.createElement('div');
82
+ backdrop.className = this._config.className;
83
+
84
+ if (this._config.isAnimated) {
85
+ backdrop.classList.add(CLASS_NAME_FADE);
86
+ }
87
+
88
+ this._element = backdrop;
89
+ }
90
+
91
+ return this._element;
92
+ }
93
+
94
+ _getConfig(config) {
95
+ config = { ...Default,
96
+ ...(typeof config === 'object' ? config : {})
97
+ }; // use getElement() with the default "body" to get a fresh Element on each instantiation
98
+
99
+ config.rootElement = index.getElement(config.rootElement);
100
+ index.typeCheckConfig(NAME, config, DefaultType);
101
+ return config;
102
+ }
103
+
104
+ _append() {
105
+ if (this._isAppended) {
106
+ return;
107
+ }
108
+
109
+ this._config.rootElement.append(this._getElement());
110
+
111
+ EventHandler__default.default.on(this._getElement(), EVENT_MOUSEDOWN, () => {
112
+ index.execute(this._config.clickCallback);
113
+ });
114
+ this._isAppended = true;
115
+ }
116
+
117
+ dispose() {
118
+ if (!this._isAppended) {
119
+ return;
120
+ }
121
+
122
+ EventHandler__default.default.off(this._element, EVENT_MOUSEDOWN);
123
+
124
+ this._element.remove();
125
+
126
+ this._isAppended = false;
127
+ }
128
+
129
+ _emulateAnimation(callback) {
130
+ index.executeAfterTransition(callback, this._getElement(), this._config.isAnimated);
131
+ }
132
+
133
+ }
134
+
135
+ return Backdrop;
136
+
137
+ }));
138
+ //# sourceMappingURL=backdrop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backdrop.js","sources":["../../src/util/backdrop.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler'\nimport { execute, executeAfterTransition, getElement, reflow, typeCheckConfig } from './index'\n\nconst Default = {\n className: 'modal-backdrop',\n isVisible: true, // if false, we use the backdrop helper without adding any element to the dom\n isAnimated: false,\n rootElement: 'body', // give the choice to place backdrop under different elements\n clickCallback: null\n}\n\nconst DefaultType = {\n className: 'string',\n isVisible: 'boolean',\n isAnimated: 'boolean',\n rootElement: '(element|string)',\n clickCallback: '(function|null)'\n}\nconst NAME = 'backdrop'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME}`\n\nclass Backdrop {\n constructor(config) {\n this._config = this._getConfig(config)\n this._isAppended = false\n this._element = null\n }\n\n show(callback) {\n if (!this._config.isVisible) {\n execute(callback)\n return\n }\n\n this._append()\n\n if (this._config.isAnimated) {\n reflow(this._getElement())\n }\n\n this._getElement().classList.add(CLASS_NAME_SHOW)\n\n this._emulateAnimation(() => {\n execute(callback)\n })\n }\n\n hide(callback) {\n if (!this._config.isVisible) {\n execute(callback)\n return\n }\n\n this._getElement().classList.remove(CLASS_NAME_SHOW)\n\n this._emulateAnimation(() => {\n this.dispose()\n execute(callback)\n })\n }\n\n // Private\n\n _getElement() {\n if (!this._element) {\n const backdrop = document.createElement('div')\n backdrop.className = this._config.className\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE)\n }\n\n this._element = backdrop\n }\n\n return this._element\n }\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' ? config : {})\n }\n\n // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n config.rootElement = getElement(config.rootElement)\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _append() {\n if (this._isAppended) {\n return\n }\n\n this._config.rootElement.append(this._getElement())\n\n EventHandler.on(this._getElement(), EVENT_MOUSEDOWN, () => {\n execute(this._config.clickCallback)\n })\n\n this._isAppended = true\n }\n\n dispose() {\n if (!this._isAppended) {\n return\n }\n\n EventHandler.off(this._element, EVENT_MOUSEDOWN)\n\n this._element.remove()\n this._isAppended = false\n }\n\n _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated)\n }\n}\n\nexport default Backdrop\n"],"names":["Default","className","isVisible","isAnimated","rootElement","clickCallback","DefaultType","NAME","CLASS_NAME_FADE","CLASS_NAME_SHOW","EVENT_MOUSEDOWN","Backdrop","constructor","config","_config","_getConfig","_isAppended","_element","show","callback","execute","_append","reflow","_getElement","classList","add","_emulateAnimation","hide","remove","dispose","backdrop","document","createElement","getElement","typeCheckConfig","append","EventHandler","on","off","executeAfterTransition"],"mappings":";;;;;;;;;;EAAA;EACA;EACA;EACA;EACA;EACA;EAKA,MAAMA,OAAO,GAAG;EACdC,EAAAA,SAAS,EAAE,gBADG;EAEdC,EAAAA,SAAS,EAAE,IAFG;EAEG;EACjBC,EAAAA,UAAU,EAAE,KAHE;EAIdC,EAAAA,WAAW,EAAE,MAJC;EAIO;EACrBC,EAAAA,aAAa,EAAE;EALD,CAAhB;EAQA,MAAMC,WAAW,GAAG;EAClBL,EAAAA,SAAS,EAAE,QADO;EAElBC,EAAAA,SAAS,EAAE,SAFO;EAGlBC,EAAAA,UAAU,EAAE,SAHM;EAIlBC,EAAAA,WAAW,EAAE,kBAJK;EAKlBC,EAAAA,aAAa,EAAE;EALG,CAApB;EAOA,MAAME,IAAI,GAAG,UAAb;EACA,MAAMC,eAAe,GAAG,MAAxB;EACA,MAAMC,eAAe,GAAG,MAAxB;EAEA,MAAMC,eAAe,GAAI,gBAAeH,IAAK,EAA7C;;EAEA,MAAMI,QAAN,CAAe;EACbC,EAAAA,WAAW,CAACC,MAAD,EAAS;EAClB,SAAKC,OAAL,GAAe,KAAKC,UAAL,CAAgBF,MAAhB,CAAf;EACA,SAAKG,WAAL,GAAmB,KAAnB;EACA,SAAKC,QAAL,GAAgB,IAAhB;EACD;;EAEDC,EAAAA,IAAI,CAACC,QAAD,EAAW;EACb,QAAI,CAAC,KAAKL,OAAL,CAAaZ,SAAlB,EAA6B;EAC3BkB,MAAAA,aAAO,CAACD,QAAD,CAAP;EACA;EACD;;EAED,SAAKE,OAAL;;EAEA,QAAI,KAAKP,OAAL,CAAaX,UAAjB,EAA6B;EAC3BmB,MAAAA,YAAM,CAAC,KAAKC,WAAL,EAAD,CAAN;EACD;;EAED,SAAKA,WAAL,GAAmBC,SAAnB,CAA6BC,GAA7B,CAAiChB,eAAjC;;EAEA,SAAKiB,iBAAL,CAAuB,MAAM;EAC3BN,MAAAA,aAAO,CAACD,QAAD,CAAP;EACD,KAFD;EAGD;;EAEDQ,EAAAA,IAAI,CAACR,QAAD,EAAW;EACb,QAAI,CAAC,KAAKL,OAAL,CAAaZ,SAAlB,EAA6B;EAC3BkB,MAAAA,aAAO,CAACD,QAAD,CAAP;EACA;EACD;;EAED,SAAKI,WAAL,GAAmBC,SAAnB,CAA6BI,MAA7B,CAAoCnB,eAApC;;EAEA,SAAKiB,iBAAL,CAAuB,MAAM;EAC3B,WAAKG,OAAL;EACAT,MAAAA,aAAO,CAACD,QAAD,CAAP;EACD,KAHD;EAID,GAtCY;;;EA0CbI,EAAAA,WAAW,GAAG;EACZ,QAAI,CAAC,KAAKN,QAAV,EAAoB;EAClB,YAAMa,QAAQ,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAjB;EACAF,MAAAA,QAAQ,CAAC7B,SAAT,GAAqB,KAAKa,OAAL,CAAab,SAAlC;;EACA,UAAI,KAAKa,OAAL,CAAaX,UAAjB,EAA6B;EAC3B2B,QAAAA,QAAQ,CAACN,SAAT,CAAmBC,GAAnB,CAAuBjB,eAAvB;EACD;;EAED,WAAKS,QAAL,GAAgBa,QAAhB;EACD;;EAED,WAAO,KAAKb,QAAZ;EACD;;EAEDF,EAAAA,UAAU,CAACF,MAAD,EAAS;EACjBA,IAAAA,MAAM,GAAG,EACP,GAAGb,OADI;EAEP,UAAI,OAAOa,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsC,EAA1C;EAFO,KAAT,CADiB;;EAOjBA,IAAAA,MAAM,CAACT,WAAP,GAAqB6B,gBAAU,CAACpB,MAAM,CAACT,WAAR,CAA/B;EACA8B,IAAAA,qBAAe,CAAC3B,IAAD,EAAOM,MAAP,EAAeP,WAAf,CAAf;EACA,WAAOO,MAAP;EACD;;EAEDQ,EAAAA,OAAO,GAAG;EACR,QAAI,KAAKL,WAAT,EAAsB;EACpB;EACD;;EAED,SAAKF,OAAL,CAAaV,WAAb,CAAyB+B,MAAzB,CAAgC,KAAKZ,WAAL,EAAhC;;EAEAa,IAAAA,6BAAY,CAACC,EAAb,CAAgB,KAAKd,WAAL,EAAhB,EAAoCb,eAApC,EAAqD,MAAM;EACzDU,MAAAA,aAAO,CAAC,KAAKN,OAAL,CAAaT,aAAd,CAAP;EACD,KAFD;EAIA,SAAKW,WAAL,GAAmB,IAAnB;EACD;;EAEDa,EAAAA,OAAO,GAAG;EACR,QAAI,CAAC,KAAKb,WAAV,EAAuB;EACrB;EACD;;EAEDoB,IAAAA,6BAAY,CAACE,GAAb,CAAiB,KAAKrB,QAAtB,EAAgCP,eAAhC;;EAEA,SAAKO,QAAL,CAAcW,MAAd;;EACA,SAAKZ,WAAL,GAAmB,KAAnB;EACD;;EAEDU,EAAAA,iBAAiB,CAACP,QAAD,EAAW;EAC1BoB,IAAAA,4BAAsB,CAACpB,QAAD,EAAW,KAAKI,WAAL,EAAX,EAA+B,KAAKT,OAAL,CAAaX,UAA5C,CAAtB;EACD;;EA/FY;;;;;;;;"}
@@ -0,0 +1,42 @@
1
+ (function (global, factory) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('../dom/event-handler'), require('./index')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', '../dom/event-handler', './index'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ComponentFunctions = {}, global.EventHandler, global.Index));
5
+ })(this, (function (exports, EventHandler, index) { 'use strict';
6
+
7
+ const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
8
+
9
+ const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
10
+
11
+ /**
12
+ * --------------------------------------------------------------------------
13
+ * Bootstrap (v5.1.3): util/component-functions.js
14
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
15
+ * --------------------------------------------------------------------------
16
+ */
17
+
18
+ const enableDismissTrigger = (component, method = 'hide') => {
19
+ const clickEvent = `click.dismiss${component.EVENT_KEY}`;
20
+ const name = component.NAME;
21
+ EventHandler__default.default.on(document, clickEvent, `[data-bs-dismiss="${name}"]`, function (event) {
22
+ if (['A', 'AREA'].includes(this.tagName)) {
23
+ event.preventDefault();
24
+ }
25
+
26
+ if (index.isDisabled(this)) {
27
+ return;
28
+ }
29
+
30
+ const target = index.getElementFromSelector(this) || this.closest(`.${name}`);
31
+ const instance = component.getOrCreateInstance(target); // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method
32
+
33
+ instance[method]();
34
+ });
35
+ };
36
+
37
+ exports.enableDismissTrigger = enableDismissTrigger;
38
+
39
+ Object.defineProperty(exports, '__esModule', { value: true });
40
+
41
+ }));
42
+ //# sourceMappingURL=component-functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-functions.js","sources":["../../src/util/component-functions.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler'\nimport { getElementFromSelector, isDisabled } from './index'\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`\n const name = component.NAME\n\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n const target = getElementFromSelector(this) || this.closest(`.${name}`)\n const instance = component.getOrCreateInstance(target)\n\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n instance[method]()\n })\n}\n\nexport {\n enableDismissTrigger\n}\n"],"names":["enableDismissTrigger","component","method","clickEvent","EVENT_KEY","name","NAME","EventHandler","on","document","event","includes","tagName","preventDefault","isDisabled","target","getElementFromSelector","closest","instance","getOrCreateInstance"],"mappings":";;;;;;;;;;EAAA;EACA;EACA;EACA;EACA;EACA;;QAKMA,oBAAoB,GAAG,CAACC,SAAD,EAAYC,MAAM,GAAG,MAArB,KAAgC;EAC3D,QAAMC,UAAU,GAAI,gBAAeF,SAAS,CAACG,SAAU,EAAvD;EACA,QAAMC,IAAI,GAAGJ,SAAS,CAACK,IAAvB;EAEAC,EAAAA,6BAAY,CAACC,EAAb,CAAgBC,QAAhB,EAA0BN,UAA1B,EAAuC,qBAAoBE,IAAK,IAAhE,EAAqE,UAAUK,KAAV,EAAiB;EACpF,QAAI,CAAC,GAAD,EAAM,MAAN,EAAcC,QAAd,CAAuB,KAAKC,OAA5B,CAAJ,EAA0C;EACxCF,MAAAA,KAAK,CAACG,cAAN;EACD;;EAED,QAAIC,gBAAU,CAAC,IAAD,CAAd,EAAsB;EACpB;EACD;;EAED,UAAMC,MAAM,GAAGC,4BAAsB,CAAC,IAAD,CAAtB,IAAgC,KAAKC,OAAL,CAAc,IAAGZ,IAAK,EAAtB,CAA/C;EACA,UAAMa,QAAQ,GAAGjB,SAAS,CAACkB,mBAAV,CAA8BJ,MAA9B,CAAjB,CAVoF;;EAapFG,IAAAA,QAAQ,CAAChB,MAAD,CAAR;EACD,GAdD;EAeD;;;;;;;;;;"}
@@ -0,0 +1,118 @@
1
+ (function (global, factory) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('../dom/event-handler'), require('../dom/selector-engine'), require('./index')) :
3
+ typeof define === 'function' && define.amd ? define(['../dom/event-handler', '../dom/selector-engine', './index'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Focustrap = factory(global.EventHandler, global.SelectorEngine, global.Index));
5
+ })(this, (function (EventHandler, SelectorEngine, index) { 'use strict';
6
+
7
+ const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
8
+
9
+ const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
10
+ const SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
11
+
12
+ /**
13
+ * --------------------------------------------------------------------------
14
+ * Bootstrap (v5.1.3): util/focustrap.js
15
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
16
+ * --------------------------------------------------------------------------
17
+ */
18
+ const Default = {
19
+ trapElement: null,
20
+ // The element to trap focus inside of
21
+ autofocus: true
22
+ };
23
+ const DefaultType = {
24
+ trapElement: 'element',
25
+ autofocus: 'boolean'
26
+ };
27
+ const NAME = 'focustrap';
28
+ const DATA_KEY = 'bs.focustrap';
29
+ const EVENT_KEY = `.${DATA_KEY}`;
30
+ const EVENT_FOCUSIN = `focusin${EVENT_KEY}`;
31
+ const EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY}`;
32
+ const TAB_KEY = 'Tab';
33
+ const TAB_NAV_FORWARD = 'forward';
34
+ const TAB_NAV_BACKWARD = 'backward';
35
+
36
+ class FocusTrap {
37
+ constructor(config) {
38
+ this._config = this._getConfig(config);
39
+ this._isActive = false;
40
+ this._lastTabNavDirection = null;
41
+ }
42
+
43
+ activate() {
44
+ const {
45
+ trapElement,
46
+ autofocus
47
+ } = this._config;
48
+
49
+ if (this._isActive) {
50
+ return;
51
+ }
52
+
53
+ if (autofocus) {
54
+ trapElement.focus();
55
+ }
56
+
57
+ EventHandler__default.default.off(document, EVENT_KEY); // guard against infinite focus loop
58
+
59
+ EventHandler__default.default.on(document, EVENT_FOCUSIN, event => this._handleFocusin(event));
60
+ EventHandler__default.default.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event));
61
+ this._isActive = true;
62
+ }
63
+
64
+ deactivate() {
65
+ if (!this._isActive) {
66
+ return;
67
+ }
68
+
69
+ this._isActive = false;
70
+ EventHandler__default.default.off(document, EVENT_KEY);
71
+ } // Private
72
+
73
+
74
+ _handleFocusin(event) {
75
+ const {
76
+ target
77
+ } = event;
78
+ const {
79
+ trapElement
80
+ } = this._config;
81
+
82
+ if (target === document || target === trapElement || trapElement.contains(target)) {
83
+ return;
84
+ }
85
+
86
+ const elements = SelectorEngine__default.default.focusableChildren(trapElement);
87
+
88
+ if (elements.length === 0) {
89
+ trapElement.focus();
90
+ } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {
91
+ elements[elements.length - 1].focus();
92
+ } else {
93
+ elements[0].focus();
94
+ }
95
+ }
96
+
97
+ _handleKeydown(event) {
98
+ if (event.key !== TAB_KEY) {
99
+ return;
100
+ }
101
+
102
+ this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;
103
+ }
104
+
105
+ _getConfig(config) {
106
+ config = { ...Default,
107
+ ...(typeof config === 'object' ? config : {})
108
+ };
109
+ index.typeCheckConfig(NAME, config, DefaultType);
110
+ return config;
111
+ }
112
+
113
+ }
114
+
115
+ return FocusTrap;
116
+
117
+ }));
118
+ //# sourceMappingURL=focustrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focustrap.js","sources":["../../src/util/focustrap.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler'\nimport SelectorEngine from '../dom/selector-engine'\nimport { typeCheckConfig } from './index'\n\nconst Default = {\n trapElement: null, // The element to trap focus inside of\n autofocus: true\n}\n\nconst DefaultType = {\n trapElement: 'element',\n autofocus: 'boolean'\n}\n\nconst NAME = 'focustrap'\nconst DATA_KEY = 'bs.focustrap'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY}`\n\nconst TAB_KEY = 'Tab'\nconst TAB_NAV_FORWARD = 'forward'\nconst TAB_NAV_BACKWARD = 'backward'\n\nclass FocusTrap {\n constructor(config) {\n this._config = this._getConfig(config)\n this._isActive = false\n this._lastTabNavDirection = null\n }\n\n activate() {\n const { trapElement, autofocus } = this._config\n\n if (this._isActive) {\n return\n }\n\n if (autofocus) {\n trapElement.focus()\n }\n\n EventHandler.off(document, EVENT_KEY) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => this._handleFocusin(event))\n EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event))\n\n this._isActive = true\n }\n\n deactivate() {\n if (!this._isActive) {\n return\n }\n\n this._isActive = false\n EventHandler.off(document, EVENT_KEY)\n }\n\n // Private\n\n _handleFocusin(event) {\n const { target } = event\n const { trapElement } = this._config\n\n if (target === document || target === trapElement || trapElement.contains(target)) {\n return\n }\n\n const elements = SelectorEngine.focusableChildren(trapElement)\n\n if (elements.length === 0) {\n trapElement.focus()\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\n elements[elements.length - 1].focus()\n } else {\n elements[0].focus()\n }\n }\n\n _handleKeydown(event) {\n if (event.key !== TAB_KEY) {\n return\n }\n\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD\n }\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' ? config : {})\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n}\n\nexport default FocusTrap\n"],"names":["Default","trapElement","autofocus","DefaultType","NAME","DATA_KEY","EVENT_KEY","EVENT_FOCUSIN","EVENT_KEYDOWN_TAB","TAB_KEY","TAB_NAV_FORWARD","TAB_NAV_BACKWARD","FocusTrap","constructor","config","_config","_getConfig","_isActive","_lastTabNavDirection","activate","focus","EventHandler","off","document","on","event","_handleFocusin","_handleKeydown","deactivate","target","contains","elements","SelectorEngine","focusableChildren","length","key","shiftKey","typeCheckConfig"],"mappings":"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"}
@@ -0,0 +1,342 @@
1
+ (function (global, factory) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
3
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Index = {}));
5
+ })(this, (function (exports) { 'use strict';
6
+
7
+ /**
8
+ * --------------------------------------------------------------------------
9
+ * Bootstrap (v5.1.3): util/index.js
10
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
11
+ * --------------------------------------------------------------------------
12
+ */
13
+ const MAX_UID = 1000000;
14
+ const MILLISECONDS_MULTIPLIER = 1000;
15
+ const TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
16
+
17
+ const toType = obj => {
18
+ if (obj === null || obj === undefined) {
19
+ return `${obj}`;
20
+ }
21
+
22
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
23
+ };
24
+ /**
25
+ * --------------------------------------------------------------------------
26
+ * Public Util Api
27
+ * --------------------------------------------------------------------------
28
+ */
29
+
30
+
31
+ const getUID = prefix => {
32
+ do {
33
+ prefix += Math.floor(Math.random() * MAX_UID);
34
+ } while (document.getElementById(prefix));
35
+
36
+ return prefix;
37
+ };
38
+
39
+ const getSelector = element => {
40
+ let selector = element.getAttribute('data-bs-target');
41
+
42
+ if (!selector || selector === '#') {
43
+ let hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
44
+ // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
45
+ // `document.querySelector` will rightfully complain it is invalid.
46
+ // See https://github.com/twbs/bootstrap/issues/32273
47
+
48
+ if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
49
+ return null;
50
+ } // Just in case some CMS puts out a full URL with the anchor appended
51
+
52
+
53
+ if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
54
+ hrefAttr = `#${hrefAttr.split('#')[1]}`;
55
+ }
56
+
57
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
58
+ }
59
+
60
+ return selector;
61
+ };
62
+
63
+ const getSelectorFromElement = element => {
64
+ const selector = getSelector(element);
65
+
66
+ if (selector) {
67
+ return document.querySelector(selector) ? selector : null;
68
+ }
69
+
70
+ return null;
71
+ };
72
+
73
+ const getElementFromSelector = element => {
74
+ const selector = getSelector(element);
75
+ return selector ? document.querySelector(selector) : null;
76
+ };
77
+
78
+ const getTransitionDurationFromElement = element => {
79
+ if (!element) {
80
+ return 0;
81
+ } // Get transition-duration of the element
82
+
83
+
84
+ let {
85
+ transitionDuration,
86
+ transitionDelay
87
+ } = window.getComputedStyle(element);
88
+ const floatTransitionDuration = Number.parseFloat(transitionDuration);
89
+ const floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
90
+
91
+ if (!floatTransitionDuration && !floatTransitionDelay) {
92
+ return 0;
93
+ } // If multiple durations are defined, take the first
94
+
95
+
96
+ transitionDuration = transitionDuration.split(',')[0];
97
+ transitionDelay = transitionDelay.split(',')[0];
98
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
99
+ };
100
+
101
+ const triggerTransitionEnd = element => {
102
+ element.dispatchEvent(new Event(TRANSITION_END));
103
+ };
104
+
105
+ const isElement = obj => {
106
+ if (!obj || typeof obj !== 'object') {
107
+ return false;
108
+ }
109
+
110
+ if (typeof obj.jquery !== 'undefined') {
111
+ obj = obj[0];
112
+ }
113
+
114
+ return typeof obj.nodeType !== 'undefined';
115
+ };
116
+
117
+ const getElement = obj => {
118
+ if (isElement(obj)) {
119
+ // it's a jQuery object or a node element
120
+ return obj.jquery ? obj[0] : obj;
121
+ }
122
+
123
+ if (typeof obj === 'string' && obj.length > 0) {
124
+ return document.querySelector(obj);
125
+ }
126
+
127
+ return null;
128
+ };
129
+
130
+ const typeCheckConfig = (componentName, config, configTypes) => {
131
+ Object.keys(configTypes).forEach(property => {
132
+ const expectedTypes = configTypes[property];
133
+ const value = config[property];
134
+ const valueType = value && isElement(value) ? 'element' : toType(value);
135
+
136
+ if (!new RegExp(expectedTypes).test(valueType)) {
137
+ throw new TypeError(`${componentName.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);
138
+ }
139
+ });
140
+ };
141
+
142
+ const isVisible = element => {
143
+ if (!isElement(element) || element.getClientRects().length === 0) {
144
+ return false;
145
+ }
146
+
147
+ return getComputedStyle(element).getPropertyValue('visibility') === 'visible';
148
+ };
149
+
150
+ const isDisabled = element => {
151
+ if (!element || element.nodeType !== Node.ELEMENT_NODE) {
152
+ return true;
153
+ }
154
+
155
+ if (element.classList.contains('disabled')) {
156
+ return true;
157
+ }
158
+
159
+ if (typeof element.disabled !== 'undefined') {
160
+ return element.disabled;
161
+ }
162
+
163
+ return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';
164
+ };
165
+
166
+ const findShadowRoot = element => {
167
+ if (!document.documentElement.attachShadow) {
168
+ return null;
169
+ } // Can find the shadow root otherwise it'll return the document
170
+
171
+
172
+ if (typeof element.getRootNode === 'function') {
173
+ const root = element.getRootNode();
174
+ return root instanceof ShadowRoot ? root : null;
175
+ }
176
+
177
+ if (element instanceof ShadowRoot) {
178
+ return element;
179
+ } // when we don't find a shadow root
180
+
181
+
182
+ if (!element.parentNode) {
183
+ return null;
184
+ }
185
+
186
+ return findShadowRoot(element.parentNode);
187
+ };
188
+
189
+ const noop = () => {};
190
+ /**
191
+ * Trick to restart an element's animation
192
+ *
193
+ * @param {HTMLElement} element
194
+ * @return void
195
+ *
196
+ * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation
197
+ */
198
+
199
+
200
+ const reflow = element => {
201
+ // eslint-disable-next-line no-unused-expressions
202
+ element.offsetHeight;
203
+ };
204
+
205
+ const getjQuery = () => {
206
+ const {
207
+ jQuery
208
+ } = window;
209
+
210
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
211
+ return jQuery;
212
+ }
213
+
214
+ return null;
215
+ };
216
+
217
+ const DOMContentLoadedCallbacks = [];
218
+
219
+ const onDOMContentLoaded = callback => {
220
+ if (document.readyState === 'loading') {
221
+ // add listener on the first call when the document is in loading state
222
+ if (!DOMContentLoadedCallbacks.length) {
223
+ document.addEventListener('DOMContentLoaded', () => {
224
+ DOMContentLoadedCallbacks.forEach(callback => callback());
225
+ });
226
+ }
227
+
228
+ DOMContentLoadedCallbacks.push(callback);
229
+ } else {
230
+ callback();
231
+ }
232
+ };
233
+
234
+ const isRTL = () => document.documentElement.dir === 'rtl';
235
+
236
+ const defineJQueryPlugin = plugin => {
237
+ onDOMContentLoaded(() => {
238
+ const $ = getjQuery();
239
+ /* istanbul ignore if */
240
+
241
+ if ($) {
242
+ const name = plugin.NAME;
243
+ const JQUERY_NO_CONFLICT = $.fn[name];
244
+ $.fn[name] = plugin.jQueryInterface;
245
+ $.fn[name].Constructor = plugin;
246
+
247
+ $.fn[name].noConflict = () => {
248
+ $.fn[name] = JQUERY_NO_CONFLICT;
249
+ return plugin.jQueryInterface;
250
+ };
251
+ }
252
+ });
253
+ };
254
+
255
+ const execute = callback => {
256
+ if (typeof callback === 'function') {
257
+ callback();
258
+ }
259
+ };
260
+
261
+ const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {
262
+ if (!waitForTransition) {
263
+ execute(callback);
264
+ return;
265
+ }
266
+
267
+ const durationPadding = 5;
268
+ const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;
269
+ let called = false;
270
+
271
+ const handler = ({
272
+ target
273
+ }) => {
274
+ if (target !== transitionElement) {
275
+ return;
276
+ }
277
+
278
+ called = true;
279
+ transitionElement.removeEventListener(TRANSITION_END, handler);
280
+ execute(callback);
281
+ };
282
+
283
+ transitionElement.addEventListener(TRANSITION_END, handler);
284
+ setTimeout(() => {
285
+ if (!called) {
286
+ triggerTransitionEnd(transitionElement);
287
+ }
288
+ }, emulatedDuration);
289
+ };
290
+ /**
291
+ * Return the previous/next element of a list.
292
+ *
293
+ * @param {array} list The list of elements
294
+ * @param activeElement The active element
295
+ * @param shouldGetNext Choose to get next or previous element
296
+ * @param isCycleAllowed
297
+ * @return {Element|elem} The proper element
298
+ */
299
+
300
+
301
+ const getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {
302
+ let index = list.indexOf(activeElement); // if the element does not exist in the list return an element depending on the direction and if cycle is allowed
303
+
304
+ if (index === -1) {
305
+ return list[!shouldGetNext && isCycleAllowed ? list.length - 1 : 0];
306
+ }
307
+
308
+ const listLength = list.length;
309
+ index += shouldGetNext ? 1 : -1;
310
+
311
+ if (isCycleAllowed) {
312
+ index = (index + listLength) % listLength;
313
+ }
314
+
315
+ return list[Math.max(0, Math.min(index, listLength - 1))];
316
+ };
317
+
318
+ exports.defineJQueryPlugin = defineJQueryPlugin;
319
+ exports.execute = execute;
320
+ exports.executeAfterTransition = executeAfterTransition;
321
+ exports.findShadowRoot = findShadowRoot;
322
+ exports.getElement = getElement;
323
+ exports.getElementFromSelector = getElementFromSelector;
324
+ exports.getNextActiveElement = getNextActiveElement;
325
+ exports.getSelectorFromElement = getSelectorFromElement;
326
+ exports.getTransitionDurationFromElement = getTransitionDurationFromElement;
327
+ exports.getUID = getUID;
328
+ exports.getjQuery = getjQuery;
329
+ exports.isDisabled = isDisabled;
330
+ exports.isElement = isElement;
331
+ exports.isRTL = isRTL;
332
+ exports.isVisible = isVisible;
333
+ exports.noop = noop;
334
+ exports.onDOMContentLoaded = onDOMContentLoaded;
335
+ exports.reflow = reflow;
336
+ exports.triggerTransitionEnd = triggerTransitionEnd;
337
+ exports.typeCheckConfig = typeCheckConfig;
338
+
339
+ Object.defineProperty(exports, '__esModule', { value: true });
340
+
341
+ }));
342
+ //# sourceMappingURL=index.js.map