UNPKG

billboard.js

Version:

Re-usable easy interface JavaScript chart library, based on D3 v4+

184 lines (177 loc) • 7.16 kB
/*! * Copyright (c) 2017 ~ present NAVER Corp. * billboard.js project is licensed under the MIT license * * billboard.js, JavaScript chart library * https://naver.github.io/billboard.js/ * * @version 4.1.1 */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("react")); else if(typeof define === 'function' && define.amd) define(["react"], factory); else if(typeof exports === 'object') exports["BillboardReact"] = factory(require("react")); else root["BillboardReact"] = factory(root["React"]); })(this, function(__WEBPACK_EXTERNAL_MODULE__13__) { return /******/ (function() { // webpackBootstrap /******/ // runtime can't be in strict mode because 'output.globalObject' reads 'this'. /******/ var __webpack_modules__ = ({ /***/ 13: /***/ (function(module) { "use strict"; module.exports = __WEBPACK_EXTERNAL_MODULE__13__; /***/ }) /******/ }); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/compat get default export */ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function() { return module['default']; } : /******/ function() { return module; }; /******/ __webpack_require__.d(getter, { a: getter }); /******/ return getter; /******/ }; /******/ /******/ /* webpack/runtime/define property getters */ /******/ // define getter/value functions for harmony exports /******/ __webpack_require__.d = function(exports, definition) { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }; /******/ /******/ /* webpack/runtime/make namespace object */ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry needs to be wrapped in an IIFE because it needs to be in strict mode. !function() { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Chart: function() { return /* binding */ Chart; } /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); var __objRest = (source, exclude) => { var target = {}; for (var prop in source) if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) target[prop] = source[prop]; if (source != null && __getOwnPropSymbols) for (var prop of __getOwnPropSymbols(source)) { if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) target[prop] = source[prop]; } return target; }; function resolveType(type) { return typeof type === "function" ? type() : type; } function getOptions(options, type) { const resolvedType = resolveType(type); return __spreadValues(__spreadValues({}, options), resolvedType ? { data: __spreadProps(__spreadValues({}, options.data), { type: resolvedType }) } : {}); } const Chart = (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((props, ref) => { const container = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null); const instance = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null); const _a = props, { bb: billboard, options, type, modules } = _a, htmlDivProps = __objRest(_a, ["bb", "options", "type", "modules"]); (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { if (!billboard || !options) { console.warn("Required props('bb' or 'options') are not defined."); return; } modules == null ? void 0 : modules.forEach((register) => register()); const chartOptions = getOptions(options, type); chartOptions.bindto = container.current; instance.current = billboard.generate(chartOptions); return () => { var _a2; (_a2 = instance.current) == null ? void 0 : _a2.destroy(); instance.current = null; }; }, []); (0,react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle)( ref, () => ({ get instance() { return instance.current; } }), [] ); return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", __spreadProps(__spreadValues({}, htmlDivProps), { ref: container })); }); /* harmony default export */ __webpack_exports__["default"] = (Chart); }(); /******/ return __webpack_exports__; /******/ })() ; });