1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4 |
|
5 | exports.__esModule = true;
|
6 | exports.default = void 0;
|
7 |
|
8 | var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
|
9 |
|
10 | var _css3 = _interopRequireDefault(require("dom-helpers/css"));
|
11 |
|
12 | var _querySelectorAll = _interopRequireDefault(require("dom-helpers/querySelectorAll"));
|
13 |
|
14 | var _scrollbarSize = _interopRequireDefault(require("dom-helpers/scrollbarSize"));
|
15 |
|
16 | var _ModalManager2 = _interopRequireDefault(require("react-overlays/ModalManager"));
|
17 |
|
18 | var Selector = {
|
19 | FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
|
20 | STICKY_CONTENT: '.sticky-top',
|
21 | NAVBAR_TOGGLER: '.navbar-toggler'
|
22 | };
|
23 |
|
24 | var BootstrapModalManager =
|
25 |
|
26 | function (_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 |
|
99 | exports.default = BootstrapModalManager;
|
100 | module.exports = exports["default"]; |
\ | No newline at end of file |