UNPKG

3.38 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5exports.__esModule = true;
6exports.default = void 0;
7
8var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
9
10var _css3 = _interopRequireDefault(require("dom-helpers/css"));
11
12var _querySelectorAll = _interopRequireDefault(require("dom-helpers/querySelectorAll"));
13
14var _scrollbarSize = _interopRequireDefault(require("dom-helpers/scrollbarSize"));
15
16var _ModalManager2 = _interopRequireDefault(require("react-overlays/ModalManager"));
17
18var Selector = {
19 FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
20 STICKY_CONTENT: '.sticky-top',
21 NAVBAR_TOGGLER: '.navbar-toggler'
22};
23
24var BootstrapModalManager =
25/*#__PURE__*/
26function (_ModalManager) {
27 (0, _inheritsLoose2.default)(BootstrapModalManager, _ModalManager);
28
29 function BootstrapModalManager() {
30 var _this;
31
32 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
33 args[_key] = arguments[_key];
34 }
35
36 _this = _ModalManager.call.apply(_ModalManager, [this].concat(args)) || this;
37
38 _this.adjustAndStore = function (prop, element, adjust) {
39 var _css;
40
41 var actual = element.style[prop];
42 element.dataset[prop] = actual;
43 (0, _css3.default)(element, (_css = {}, _css[prop] = parseFloat((0, _css3.default)(element, prop)) + adjust + "px", _css));
44 };
45
46 _this.restore = function (prop, element) {
47 var value = element.dataset[prop];
48
49 if (value !== undefined) {
50 var _css2;
51
52 delete element.dataset[prop];
53 (0, _css3.default)(element, (_css2 = {}, _css2[prop] = value, _css2));
54 }
55 };
56
57 return _this;
58 }
59
60 var _proto = BootstrapModalManager.prototype;
61
62 _proto.setContainerStyle = function setContainerStyle(containerState, container) {
63 var _this2 = this;
64
65 _ModalManager.prototype.setContainerStyle.call(this, containerState, container);
66
67 if (!containerState.overflowing) return;
68 var size = (0, _scrollbarSize.default)();
69 (0, _querySelectorAll.default)(container, Selector.FIXED_CONTENT).forEach(function (el) {
70 return _this2.adjustAndStore('paddingRight', el, size);
71 });
72 (0, _querySelectorAll.default)(container, Selector.STICKY_CONTENT).forEach(function (el) {
73 return _this2.adjustAndStore('margingRight', el, -size);
74 });
75 (0, _querySelectorAll.default)(container, Selector.NAVBAR_TOGGLER).forEach(function (el) {
76 return _this2.adjustAndStore('margingRight', el, size);
77 });
78 };
79
80 _proto.removeContainerStyle = function removeContainerStyle(containerState, container) {
81 var _this3 = this;
82
83 _ModalManager.prototype.removeContainerStyle.call(this, containerState, container);
84
85 (0, _querySelectorAll.default)(container, Selector.FIXED_CONTENT).forEach(function (el) {
86 return _this3.restore('paddingRight', el);
87 });
88 (0, _querySelectorAll.default)(container, Selector.STICKY_CONTENT).forEach(function (el) {
89 return _this3.restore('margingRight', el);
90 });
91 (0, _querySelectorAll.default)(container, Selector.NAVBAR_TOGGLER).forEach(function (el) {
92 return _this3.restore('margingRight', el);
93 });
94 };
95
96 return BootstrapModalManager;
97}(_ModalManager2.default);
98
99exports.default = BootstrapModalManager;
100module.exports = exports["default"];
\No newline at end of file