Dashboard sipadu mbip
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

BootstrapModalManager.js 3.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. exports.__esModule = true;
  4. exports.default = void 0;
  5. var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
  6. var _querySelectorAll = _interopRequireDefault(require("dom-helpers/query/querySelectorAll"));
  7. var _style = _interopRequireDefault(require("dom-helpers/style"));
  8. var _scrollbarSize = _interopRequireDefault(require("dom-helpers/util/scrollbarSize"));
  9. var _ModalManager2 = _interopRequireDefault(require("react-overlays/ModalManager"));
  10. var Selector = {
  11. FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
  12. STICKY_CONTENT: '.sticky-top',
  13. NAVBAR_TOGGLER: '.navbar-toggler'
  14. };
  15. var BootstrapModalManager =
  16. /*#__PURE__*/
  17. function (_ModalManager) {
  18. (0, _inheritsLoose2.default)(BootstrapModalManager, _ModalManager);
  19. function BootstrapModalManager() {
  20. var _this;
  21. for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
  22. args[_key] = arguments[_key];
  23. }
  24. _this = _ModalManager.call.apply(_ModalManager, [this].concat(args)) || this;
  25. _this.adjustAndStore = function (prop, element, adjust) {
  26. var actual = element.style[prop];
  27. element.dataset[prop] = actual;
  28. (0, _style.default)(element, prop, parseFloat((0, _style.default)(element, prop)) + adjust + "px");
  29. };
  30. _this.restore = function (prop, element) {
  31. var value = element.dataset[prop];
  32. if (value !== undefined) {
  33. delete element.dataset[prop];
  34. (0, _style.default)(element, prop, value);
  35. }
  36. };
  37. return _this;
  38. }
  39. var _proto = BootstrapModalManager.prototype;
  40. _proto.setContainerStyle = function setContainerStyle(containerState, container) {
  41. var _this2 = this;
  42. _ModalManager.prototype.setContainerStyle.call(this, containerState, container);
  43. if (!containerState.overflowing) return;
  44. var size = (0, _scrollbarSize.default)();
  45. (0, _querySelectorAll.default)(container, Selector.FIXED_CONTENT).forEach(function (el) {
  46. return _this2.adjustAndStore('paddingRight', el, size);
  47. });
  48. (0, _querySelectorAll.default)(container, Selector.STICKY_CONTENT).forEach(function (el) {
  49. return _this2.adjustAndStore('margingRight', el, -size);
  50. });
  51. (0, _querySelectorAll.default)(container, Selector.NAVBAR_TOGGLER).forEach(function (el) {
  52. return _this2.adjustAndStore('margingRight', el, size);
  53. });
  54. };
  55. _proto.removeContainerStyle = function removeContainerStyle(containerState, container) {
  56. var _this3 = this;
  57. _ModalManager.prototype.removeContainerStyle.call(this, containerState, container);
  58. (0, _querySelectorAll.default)(container, Selector.FIXED_CONTENT).forEach(function (el) {
  59. return _this3.restore('paddingRight', el);
  60. });
  61. (0, _querySelectorAll.default)(container, Selector.STICKY_CONTENT).forEach(function (el) {
  62. return _this3.restore('margingRight', el);
  63. });
  64. (0, _querySelectorAll.default)(container, Selector.NAVBAR_TOGGLER).forEach(function (el) {
  65. return _this3.restore('margingRight', el);
  66. });
  67. };
  68. return BootstrapModalManager;
  69. }(_ModalManager2.default);
  70. exports.default = BootstrapModalManager;
  71. module.exports = exports["default"];