Dashboard sipadu mbip
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

Popper.js 8.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. "use strict";
  2. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
  3. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  4. Object.defineProperty(exports, "__esModule", {
  5. value: true
  6. });
  7. exports.default = Popper;
  8. exports.placements = exports.InnerPopper = void 0;
  9. var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
  10. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  11. var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
  12. var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
  13. var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
  14. var React = _interopRequireWildcard(require("react"));
  15. var _popper = _interopRequireDefault(require("popper.js"));
  16. var _Manager = require("./Manager");
  17. var _utils = require("./utils");
  18. var initialStyle = {
  19. position: 'absolute',
  20. top: 0,
  21. left: 0,
  22. opacity: 0,
  23. pointerEvents: 'none'
  24. };
  25. var initialArrowStyle = {};
  26. var InnerPopper =
  27. /*#__PURE__*/
  28. function (_React$Component) {
  29. (0, _inheritsLoose2.default)(InnerPopper, _React$Component);
  30. function InnerPopper() {
  31. var _this;
  32. for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
  33. args[_key] = arguments[_key];
  34. }
  35. _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
  36. (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", {
  37. data: undefined,
  38. placement: undefined
  39. });
  40. (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "popperInstance", void 0);
  41. (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "popperNode", null);
  42. (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "arrowNode", null);
  43. (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setPopperNode", function (popperNode) {
  44. if (!popperNode || _this.popperNode === popperNode) return;
  45. (0, _utils.setRef)(_this.props.innerRef, popperNode);
  46. _this.popperNode = popperNode;
  47. _this.updatePopperInstance();
  48. });
  49. (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setArrowNode", function (arrowNode) {
  50. _this.arrowNode = arrowNode;
  51. });
  52. (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "updateStateModifier", {
  53. enabled: true,
  54. order: 900,
  55. fn: function fn(data) {
  56. var placement = data.placement;
  57. _this.setState({
  58. data: data,
  59. placement: placement
  60. });
  61. return data;
  62. }
  63. });
  64. (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getOptions", function () {
  65. return {
  66. placement: _this.props.placement,
  67. eventsEnabled: _this.props.eventsEnabled,
  68. positionFixed: _this.props.positionFixed,
  69. modifiers: (0, _extends2.default)({}, _this.props.modifiers, {
  70. arrow: (0, _extends2.default)({}, _this.props.modifiers && _this.props.modifiers.arrow, {
  71. enabled: !!_this.arrowNode,
  72. element: _this.arrowNode
  73. }),
  74. applyStyle: {
  75. enabled: false
  76. },
  77. updateStateModifier: _this.updateStateModifier
  78. })
  79. };
  80. });
  81. (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getPopperStyle", function () {
  82. return !_this.popperNode || !_this.state.data ? initialStyle : (0, _extends2.default)({
  83. position: _this.state.data.offsets.popper.position
  84. }, _this.state.data.styles);
  85. });
  86. (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getPopperPlacement", function () {
  87. return !_this.state.data ? undefined : _this.state.placement;
  88. });
  89. (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getArrowStyle", function () {
  90. return !_this.arrowNode || !_this.state.data ? initialArrowStyle : _this.state.data.arrowStyles;
  91. });
  92. (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getOutOfBoundariesState", function () {
  93. return _this.state.data ? _this.state.data.hide : undefined;
  94. });
  95. (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "destroyPopperInstance", function () {
  96. if (!_this.popperInstance) return;
  97. _this.popperInstance.destroy();
  98. _this.popperInstance = null;
  99. });
  100. (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "updatePopperInstance", function () {
  101. _this.destroyPopperInstance();
  102. var _assertThisInitialize = (0, _assertThisInitialized2.default)(_this),
  103. popperNode = _assertThisInitialize.popperNode;
  104. var referenceElement = _this.props.referenceElement;
  105. if (!referenceElement || !popperNode) return;
  106. _this.popperInstance = new _popper.default(referenceElement, popperNode, _this.getOptions());
  107. });
  108. (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "scheduleUpdate", function () {
  109. if (_this.popperInstance) {
  110. _this.popperInstance.scheduleUpdate();
  111. }
  112. });
  113. return _this;
  114. }
  115. var _proto = InnerPopper.prototype;
  116. _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
  117. // If the Popper.js options have changed, update the instance (destroy + create)
  118. if (this.props.placement !== prevProps.placement || this.props.referenceElement !== prevProps.referenceElement || this.props.positionFixed !== prevProps.positionFixed || this.props.modifiers !== prevProps.modifiers) {
  119. // develop only check that modifiers isn't being updated needlessly
  120. if (process.env.NODE_ENV === "development") {
  121. if (this.props.modifiers !== prevProps.modifiers && this.props.modifiers != null && prevProps.modifiers != null && (0, _utils.shallowEqual)(this.props.modifiers, prevProps.modifiers)) {
  122. console.warn("'modifiers' prop reference updated even though all values appear the same.\nConsider memoizing the 'modifiers' object to avoid needless rendering.");
  123. }
  124. }
  125. this.updatePopperInstance();
  126. } else if (this.props.eventsEnabled !== prevProps.eventsEnabled && this.popperInstance) {
  127. this.props.eventsEnabled ? this.popperInstance.enableEventListeners() : this.popperInstance.disableEventListeners();
  128. } // A placement difference in state means popper determined a new placement
  129. // apart from the props value. By the time the popper element is rendered with
  130. // the new position Popper has already measured it, if the place change triggers
  131. // a size change it will result in a misaligned popper. So we schedule an update to be sure.
  132. if (prevState.placement !== this.state.placement) {
  133. this.scheduleUpdate();
  134. }
  135. };
  136. _proto.componentWillUnmount = function componentWillUnmount() {
  137. (0, _utils.setRef)(this.props.innerRef, null);
  138. this.destroyPopperInstance();
  139. };
  140. _proto.render = function render() {
  141. return (0, _utils.unwrapArray)(this.props.children)({
  142. ref: this.setPopperNode,
  143. style: this.getPopperStyle(),
  144. placement: this.getPopperPlacement(),
  145. outOfBoundaries: this.getOutOfBoundariesState(),
  146. scheduleUpdate: this.scheduleUpdate,
  147. arrowProps: {
  148. ref: this.setArrowNode,
  149. style: this.getArrowStyle()
  150. }
  151. });
  152. };
  153. return InnerPopper;
  154. }(React.Component);
  155. exports.InnerPopper = InnerPopper;
  156. (0, _defineProperty2.default)(InnerPopper, "defaultProps", {
  157. placement: 'bottom',
  158. eventsEnabled: true,
  159. referenceElement: undefined,
  160. positionFixed: false
  161. });
  162. var placements = _popper.default.placements;
  163. exports.placements = placements;
  164. function Popper(_ref) {
  165. var referenceElement = _ref.referenceElement,
  166. props = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["referenceElement"]);
  167. return React.createElement(_Manager.ManagerReferenceNodeContext.Consumer, null, function (referenceNode) {
  168. return React.createElement(InnerPopper, (0, _extends2.default)({
  169. referenceElement: referenceElement !== undefined ? referenceElement : referenceNode
  170. }, props));
  171. });
  172. }