react-tether-seb
Version:
Drop content anywhere on the page.
1 lines • 6.22 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("React"),require("ReactDOM"),require("Tether")):"function"==typeof define&&define.amd?define(["React","ReactDOM","Tether"],t):"object"==typeof exports?exports.TetherComponent=t(require("React"),require("ReactDOM"),require("Tether")):e.TetherComponent=t(e.React,e.ReactDOM,e.Tether)}(this,function(e,t,r){return function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var r={};return t.m=e,t.c=r,t.p="dist/",t(0)}([function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=r(1),i=n(o);t["default"]=i["default"],e.exports=t["default"]},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},l=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),u=function(e,t,r){for(var n=!0;n;){var o=e,i=t,s=r;n=!1,null===o&&(o=Function.prototype);var a=Object.getOwnPropertyDescriptor(o,i);if(void 0!==a){if("value"in a)return a.value;var l=a.get;if(void 0===l)return;return l.call(s)}var u=Object.getPrototypeOf(o);if(null===u)return;e=u,t=i,r=s,n=!0,a=u=void 0}},p=r(2),d=(n(p),r(3)),c=n(d),h=r(4),f=n(h);f["default"]||console.error("It looks like Tether has not been included. Please load this dependency first https://github.com/HubSpot/tether");var y=[p.PropTypes.string,p.PropTypes.shape({appendChild:p.PropTypes.func.isRequired})],m=function(e,t,r){var n=e.children,o=p.Children.count(n);return o<=0?new Error(r+" expects at least one child to use as the target element."):o>2?new Error("Only a max of two children allowed in "+r+"."):void 0},_=["top left","top center","top right","middle left","middle center","middle right","bottom left","bottom center","bottom right"],TetherComponent=function(e){function TetherComponent(){i(this,TetherComponent),u(Object.getPrototypeOf(TetherComponent.prototype),"constructor",this).apply(this,arguments),this._targetNode=null,this._elementParentNode=null,this._tether=!1}return s(TetherComponent,e),l(TetherComponent,[{key:"componentDidMount",value:function(){this._targetNode=c["default"].findDOMNode(this),this._update(),this._registerEventListeners()}},{key:"componentDidUpdate",value:function(e){this._update()}},{key:"componentWillUnmount",value:function(){this._destroy()}},{key:"getTether",value:function(){return this._tether}},{key:"disable",value:function(){this._tether.disable()}},{key:"enable",value:function(){this._tether.enable()}},{key:"on",value:function(e,t,r){this._tether.on(e,t,r)}},{key:"once",value:function(e,t,r){this._tether.once(e,t,r)}},{key:"off",value:function(e,t){this._tether.off(e,t)}},{key:"position",value:function(){this._tether.position()}},{key:"_registerEventListeners",value:function(){this.props.onUpdate&&this.on("update",this.props.onUpdate),this.props.onRepositioned&&this.on("repositioned",this.props.onRepositioned)}},{key:"_destroy",value:function(){this._elementParentNode&&(c["default"].unmountComponentAtNode(this._elementParentNode),this._elementParentNode.parentNode.removeChild(this._elementParentNode)),this._tether&&this._tether.destroy(),this._elementParentNode=null,this._tether=null}},{key:"_update",value:function(){var e=this,t=this.props,r=t.children,n=t.renderElementTag,o=p.Children.toArray(r)[1];return o?(this._elementParentNode||(this._elementParentNode=document.createElement(n),this._renderNode.appendChild(this._elementParentNode)),void c["default"].unstable_renderSubtreeIntoContainer(this,o,this._elementParentNode,function(){e._updateTether()})):void(this._tether&&this._destroy())}},{key:"_updateTether",value:function(){var e=this,t=this.props,r=(t.children,t.renderElementTag,t.renderElementTo,t.id),n=t.className,i=t.style,s=o(t,["children","renderElementTag","renderElementTo","id","className","style"]),l=a({target:this._targetNode,element:this._elementParentNode},s);r&&(this._elementParentNode.id=r),n&&(this._elementParentNode.className=n),i&&Object.keys(i).forEach(function(t){e._elementParentNode.style[t]=i[t]}),this._tether?this._tether.setOptions(l):this._tether=new f["default"](l),this._tether.position()}},{key:"render",value:function(){return p.Children.toArray(this.props.children)[0]}},{key:"_renderNode",get:function(){var e=this.props.renderElementTo;return"string"==typeof e?document.querySelector(e):e||document.body}}],[{key:"propTypes",value:{renderElementTag:p.PropTypes.string,renderElementTo:p.PropTypes.oneOfType(y),attachment:p.PropTypes.oneOf(_).isRequired,targetAttachment:p.PropTypes.oneOf(_),offset:p.PropTypes.string,targetOffset:p.PropTypes.string,targetModifier:p.PropTypes.string,enabled:p.PropTypes.bool,classes:p.PropTypes.object,classPrefix:p.PropTypes.string,optimizations:p.PropTypes.object,constraints:p.PropTypes.array,id:p.PropTypes.string,className:p.PropTypes.string,style:p.PropTypes.object,onUpdate:p.PropTypes.func,onRepositioned:p.PropTypes.func,children:m},enumerable:!0},{key:"defaultProps",value:{renderElementTag:"div",renderElementTo:null},enumerable:!0}]),TetherComponent}(p.Component);t["default"]=TetherComponent,e.exports=t["default"]},function(t,r){t.exports=e},function(e,r){e.exports=t},function(e,t){e.exports=r}])});