394 lines
10 KiB
JavaScript
394 lines
10 KiB
JavaScript
(function webpackUniversalModuleDefinition(root, factory) {
|
|
if(typeof exports === 'object' && typeof module === 'object')
|
|
module.exports = factory(require("@popperjs/core"));
|
|
else if(typeof define === 'function' && define.amd)
|
|
define(["@popperjs/core"], factory);
|
|
else if(typeof exports === 'object')
|
|
exports["cytoscapePopper"] = factory(require("@popperjs/core"));
|
|
else
|
|
root["cytoscapePopper"] = factory(root["Popper"]);
|
|
})(this, function(__WEBPACK_EXTERNAL_MODULE_8__) {
|
|
return /******/ (function(modules) { // webpackBootstrap
|
|
/******/ // The module cache
|
|
/******/ var installedModules = {};
|
|
/******/
|
|
/******/ // The require function
|
|
/******/ function __webpack_require__(moduleId) {
|
|
/******/
|
|
/******/ // Check if module is in cache
|
|
/******/ if(installedModules[moduleId]) {
|
|
/******/ return installedModules[moduleId].exports;
|
|
/******/ }
|
|
/******/ // Create a new module (and put it into the cache)
|
|
/******/ var module = installedModules[moduleId] = {
|
|
/******/ i: moduleId,
|
|
/******/ l: false,
|
|
/******/ exports: {}
|
|
/******/ };
|
|
/******/
|
|
/******/ // Execute the module function
|
|
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
|
/******/
|
|
/******/ // Flag the module as loaded
|
|
/******/ module.l = true;
|
|
/******/
|
|
/******/ // Return the exports of the module
|
|
/******/ return module.exports;
|
|
/******/ }
|
|
/******/
|
|
/******/
|
|
/******/ // expose the modules object (__webpack_modules__)
|
|
/******/ __webpack_require__.m = modules;
|
|
/******/
|
|
/******/ // expose the module cache
|
|
/******/ __webpack_require__.c = installedModules;
|
|
/******/
|
|
/******/ // identity function for calling harmony imports with the correct context
|
|
/******/ __webpack_require__.i = function(value) { return value; };
|
|
/******/
|
|
/******/ // define getter function for harmony exports
|
|
/******/ __webpack_require__.d = function(exports, name, getter) {
|
|
/******/ if(!__webpack_require__.o(exports, name)) {
|
|
/******/ Object.defineProperty(exports, name, {
|
|
/******/ configurable: false,
|
|
/******/ enumerable: true,
|
|
/******/ get: getter
|
|
/******/ });
|
|
/******/ }
|
|
/******/ };
|
|
/******/
|
|
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
|
/******/ __webpack_require__.n = function(module) {
|
|
/******/ var getter = module && module.__esModule ?
|
|
/******/ function getDefault() { return module['default']; } :
|
|
/******/ function getModuleExports() { return module; };
|
|
/******/ __webpack_require__.d(getter, 'a', getter);
|
|
/******/ return getter;
|
|
/******/ };
|
|
/******/
|
|
/******/ // Object.prototype.hasOwnProperty.call
|
|
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
|
/******/
|
|
/******/ // __webpack_public_path__
|
|
/******/ __webpack_require__.p = "";
|
|
/******/
|
|
/******/ // Load entry module and return exports
|
|
/******/ return __webpack_require__(__webpack_require__.s = 7);
|
|
/******/ })
|
|
/************************************************************************/
|
|
/******/ ([
|
|
/* 0 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
|
|
// Simple, internal Object.assign() polyfill for options objects etc.
|
|
|
|
module.exports = Object.assign != null ? Object.assign.bind(Object) : function (tgt) {
|
|
for (var _len = arguments.length, srcs = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
srcs[_key - 1] = arguments[_key];
|
|
}
|
|
|
|
srcs.forEach(function (src) {
|
|
if (src !== null && src !== undefined) {
|
|
Object.keys(src).forEach(function (k) {
|
|
return tgt[k] = src[k];
|
|
});
|
|
}
|
|
});
|
|
|
|
return tgt;
|
|
};
|
|
|
|
/***/ }),
|
|
/* 1 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
|
|
var _require = __webpack_require__(5),
|
|
getBoundingBox = _require.getBoundingBox;
|
|
|
|
// Create a popper virtual element (aka popper v1 reference object)
|
|
// https://popper.js.org/docs/v2/virtual-elements/
|
|
|
|
|
|
function getRef(target, opts) {
|
|
|
|
//Define popper reference object and cy reference object
|
|
var refObject = {
|
|
getBoundingClientRect: function getBoundingClientRect() {
|
|
return getBoundingBox(target, opts);
|
|
}
|
|
};
|
|
|
|
return refObject;
|
|
}
|
|
|
|
module.exports = { getRef: getRef };
|
|
|
|
/***/ }),
|
|
/* 2 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
|
|
var assign = __webpack_require__(0);
|
|
|
|
var _require = __webpack_require__(1),
|
|
getRef = _require.getRef;
|
|
|
|
var _require2 = __webpack_require__(6),
|
|
getContent = _require2.getContent;
|
|
|
|
var popperDefaults = {};
|
|
|
|
var _require3 = __webpack_require__(8),
|
|
createPopper = _require3.createPopper;
|
|
|
|
// Create a new popper object for a core or element target
|
|
|
|
|
|
function getPopper(target, opts) {
|
|
var refObject = getRef(target, opts);
|
|
var content = getContent(target, opts.content);
|
|
var popperOpts = assign({}, popperDefaults, opts.popper);
|
|
|
|
return createPopper(refObject, content, popperOpts);
|
|
}
|
|
|
|
module.exports = { getPopper: getPopper };
|
|
|
|
/***/ }),
|
|
/* 3 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
|
|
var assign = __webpack_require__(0);
|
|
|
|
var _require = __webpack_require__(2),
|
|
getPopper = _require.getPopper;
|
|
|
|
var _require2 = __webpack_require__(1),
|
|
getRef = _require2.getRef;
|
|
|
|
function popper(opts) {
|
|
checkForWarning(this);
|
|
|
|
return getPopper(this[0], createOptionsObject(this[0], opts));
|
|
}
|
|
|
|
function popperRef(opts) {
|
|
checkForWarning(this);
|
|
|
|
return getRef(this[0], createOptionsObject(this[0], opts));
|
|
}
|
|
|
|
function createOptionsObject(target, opts) {
|
|
var renderedDimensions = function renderedDimensions(el) {
|
|
return el.isNode() ? { w: el.renderedWidth(), h: el.renderedHeight() } : { w: 3, h: 3 };
|
|
};
|
|
var renderedPosition = function renderedPosition(el) {
|
|
return el.isNode() ? getRenderedCenter(el, renderedDimensions) : getRenderedMidpoint(el);
|
|
};
|
|
var popper = {};
|
|
var cy = target.cy();
|
|
|
|
var defaults = { renderedDimensions: renderedDimensions, renderedPosition: renderedPosition, popper: popper, cy: cy };
|
|
|
|
return assign({}, defaults, opts);
|
|
}
|
|
|
|
//Get the rendered center
|
|
function getRenderedCenter(target, renderedDimensions) {
|
|
var pos = target.renderedPosition();
|
|
var dimensions = renderedDimensions(target);
|
|
var offsetX = dimensions.w / 2;
|
|
var offsetY = dimensions.h / 2;
|
|
|
|
return {
|
|
x: pos.x - offsetX,
|
|
y: pos.y - offsetY
|
|
};
|
|
}
|
|
|
|
//Get the rendered position of the midpoint
|
|
function getRenderedMidpoint(target) {
|
|
var p = target.midpoint();
|
|
var pan = target.cy().pan();
|
|
var zoom = target.cy().zoom();
|
|
|
|
return {
|
|
x: p.x * zoom + pan.x,
|
|
y: p.y * zoom + pan.y
|
|
};
|
|
}
|
|
|
|
//Warn user about misuse of the plugin
|
|
function checkForWarning(elements) {
|
|
/* eslint-disable no-console */
|
|
|
|
//Popper.js Should only be used on 1 element
|
|
if (elements.length > 1) {
|
|
console.warn("Popper.js Extension should only be used on one element.");
|
|
console.warn("Ignoring all subsequent elements");
|
|
}
|
|
|
|
/* eslint-enable */
|
|
}
|
|
|
|
module.exports = { popper: popper, popperRef: popperRef };
|
|
|
|
/***/ }),
|
|
/* 4 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
|
|
var assign = __webpack_require__(0);
|
|
|
|
var _require = __webpack_require__(2),
|
|
getPopper = _require.getPopper;
|
|
|
|
var _require2 = __webpack_require__(1),
|
|
getRef = _require2.getRef;
|
|
|
|
function popper(opts) {
|
|
return getPopper(this, createOptionsObject(this, opts));
|
|
}
|
|
|
|
function popperRef(opts) {
|
|
return getRef(this, createOptionsObject(this, opts));
|
|
}
|
|
|
|
//Create a options object with required default values
|
|
function createOptionsObject(target, opts) {
|
|
var defaults = {
|
|
boundingBox: {
|
|
top: 0,
|
|
left: 0,
|
|
right: 0,
|
|
bottom: 0,
|
|
w: 3,
|
|
h: 3
|
|
},
|
|
renderedDimensions: function renderedDimensions() {
|
|
return { w: 3, h: 3 };
|
|
},
|
|
renderedPosition: function renderedPosition() {
|
|
return { x: 0, y: 0 };
|
|
},
|
|
popper: {},
|
|
cy: target
|
|
};
|
|
|
|
return assign({}, defaults, opts);
|
|
}
|
|
|
|
module.exports = { popper: popper, popperRef: popperRef };
|
|
|
|
/***/ }),
|
|
/* 5 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
|
|
function getBoundingBox(target, opts) {
|
|
var renderedPosition = opts.renderedPosition,
|
|
cy = opts.cy,
|
|
renderedDimensions = opts.renderedDimensions;
|
|
|
|
var offset = cy.container().getBoundingClientRect();
|
|
var dims = renderedDimensions(target);
|
|
var pos = renderedPosition(target);
|
|
|
|
return {
|
|
top: pos.y + offset.top,
|
|
left: pos.x + offset.left,
|
|
right: pos.x + dims.w + offset.left,
|
|
bottom: pos.y + dims.h + offset.top,
|
|
width: dims.w,
|
|
height: dims.h
|
|
};
|
|
}
|
|
|
|
module.exports = { getBoundingBox: getBoundingBox };
|
|
|
|
/***/ }),
|
|
/* 6 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
|
|
function getContent(target, content) {
|
|
var contentObject = null;
|
|
|
|
if (typeof content === "function") {
|
|
//Execute function if user opted for a dyanamic target
|
|
contentObject = content(target);
|
|
} else if (content instanceof HTMLElement) {
|
|
//Target option is an HTML element
|
|
return content;
|
|
} else {
|
|
throw new Error("Can not create popper from 'target' with unknown type");
|
|
}
|
|
|
|
// Check validity of parsed target
|
|
if (contentObject === null) {
|
|
throw new Error("No 'target' specified to create popper");
|
|
} else {
|
|
return contentObject;
|
|
}
|
|
}
|
|
|
|
module.exports = { getContent: getContent };
|
|
|
|
/***/ }),
|
|
/* 7 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
|
|
/* global cytoscape */
|
|
|
|
var coreImpl = __webpack_require__(4);
|
|
var collectionImpl = __webpack_require__(3);
|
|
|
|
// registers the extension on a cytoscape lib ref
|
|
var register = function register(cytoscape) {
|
|
if (!cytoscape) {
|
|
return;
|
|
} // can't register if cytoscape unspecified
|
|
|
|
// register with cytoscape.js
|
|
cytoscape('core', 'popper', coreImpl.popper); //Cytoscape Core
|
|
cytoscape('collection', 'popper', collectionImpl.popper); //Cytoscape Collections
|
|
cytoscape('core', 'popperRef', coreImpl.popperRef); //Cytoscape Core for References
|
|
cytoscape('collection', 'popperRef', collectionImpl.popperRef); //Cytoscape Collections for References
|
|
};
|
|
|
|
if (typeof cytoscape !== 'undefined') {
|
|
// expose to global cytoscape (i.e. window.cytoscape)
|
|
register(cytoscape);
|
|
}
|
|
|
|
module.exports = register;
|
|
|
|
/***/ }),
|
|
/* 8 */
|
|
/***/ (function(module, exports) {
|
|
|
|
module.exports = __WEBPACK_EXTERNAL_MODULE_8__;
|
|
|
|
/***/ })
|
|
/******/ ]);
|
|
}); |