UNPKG

6.64 kBJavaScriptView Raw
1/*
2 d3plus-common v0.6.42
3 Common functions and methods used across D3plus modules.
4 Copyright (c) 2018 D3plus - https://d3plus.org
5 @license MIT
6*/
7if(typeof Object.assign!=="function"){Object.defineProperty(Object,"assign",{value:function e(n){"use strict";if(n===null){throw new TypeError("Cannot convert undefined or null to object")}var r=Object(n);for(var t=1;t<arguments.length;t++){var i=arguments[t];if(i!==null){for(var o in i){if(Object.prototype.hasOwnProperty.call(i,o)){r[o]=i[o]}}}}return r},writable:true,configurable:true})}if(!Array.prototype.includes){Object.defineProperty(Array.prototype,"includes",{value:function e(n,r){var t=Object(this);var i=t.length>>>0;if(i===0)return false;var o=r|0;var f=Math.max(o>=0?o:i-Math.abs(o),0);function a(e,n){return e===n||typeof e==="number"&&typeof n==="number"&&isNaN(e)&&isNaN(n)}while(f<i){if(a(t[f],n)){return true}f++}return false}})}(function(e,n){typeof exports==="object"&&typeof module!=="undefined"?n(exports,require("d3-selection"),require("d3-transition"),require("d3-array"),require("d3-collection")):typeof define==="function"&&define.amd?define("d3plus-common",["exports","d3-selection","d3-transition","d3-array","d3-collection"],n):n(e.d3plus={},e.d3Selection,e.d3Transition,e.d3Array,e.d3Collection)})(this,function(e,u,s,a,n){"use strict";function r(n,r){if(r===void 0){return function(e){return e[n]}}return function(e){return e[n]===void 0?r:e[n]}}function c(e){return e&&typeof e==="object"&&(typeof window==="undefined"||e!==window&&e!==window.document&&!(e instanceof Element))&&!Array.isArray(e)?true:false}function o(e){if(typeof window==="undefined"){return true}else{return e!==window&&e!==document}}function l(){var n=[],e=arguments.length;while(e--)n[e]=arguments[e];var i=n[0];var r=function(e){var r=n[e];Object.keys(r).forEach(function(e){var n=r[e];if(c(n)&&o(n)){if(i.hasOwnProperty(e)&&c(i[e])){i[e]=l({},i[e],n)}else{i[e]=l({},n)}}else if(Array.isArray(n)){if(i.hasOwnProperty(e)&&Array.isArray(i[e])){var t=i[e];n.forEach(function(e,n){if(n<t.length){var r=t[n];if(Object.is(r,e)){return}if(c(r)&&c(e)||Array.isArray(r)&&Array.isArray(e)){t[n]=l({},r,e)}else{t[n]=e}}else{t.push(e)}})}else{i[e]=n}}else{i[e]=n}})};for(var t=1;t<n.length;t++)r(t);return i}function d(e,n){if(n===void 0)n={};for(var r in n){if({}.hasOwnProperty.call(n,r)){e.attr(r,n[r])}}}function t(){return Math.floor((1+Math.random())*65536).toString(16).substring(1)}function i(){return""+t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()}var y="D3PLUS-COMMON-RESET";function p(e,n){if(c(e)){for(var r in e){if({}.hasOwnProperty.call(e,r)&&!r.startsWith("_")){var t=n&&c(n)?n[r]:undefined;if(e[r]===y){e[r]=t}else if(c(e[r])){p(e[r],t)}}}}}var f=function e(){this._on={};this._uuid=i()};f.prototype.config=function e(n){var r=this;if(!this._configDefault){var e={};for(var t in r.__proto__){if(t.indexOf("_")!==0&&!["config","constructor","render"].includes(t)){var i=r[t]();e[t]=c(i)?l({},i):i}}this._configDefault=e}if(arguments.length){for(var o in n){if({}.hasOwnProperty.call(n,o)&&o in r){var f=n[o];if(f===y){if(o==="on"){r._on=r._configDefault[o]}else{r[o](r._configDefault[o])}}else{p(f,r._configDefault[o]);r[o](f)}}}return this}else{var a={};for(var u in r.__proto__){if(u.indexOf("_")!==0&&!["config","constructor","render"].includes(u)){a[u]=r[u]()}}return a}};f.prototype.on=function e(n,r){return arguments.length===2?(this._on[n]=r,this):arguments.length?typeof n==="string"?this._on[n]:(this._on=Object.assign({},this._on,n),this):this._on};function h(r,e){if(e===void 0)e=[];if(!e||!(e instanceof Array)||!e.length){return undefined}return e.reduce(function(e,n){return Math.abs(n-r)<Math.abs(e-r)?n:e})}function v(e,t,n){var i=this;if(e===void 0)e=this._shapeConfig;if(t===void 0)t="shape";if(n===void 0)n=false;var r={duration:this._duration,on:{}};var o=function(t){return function(e,n,r){while(e.__d3plus__){n=e.i;e=e.data||e.feature}return t.bind(i)(e,n,r)}};var f=function(e,n){for(var r in n){if({}.hasOwnProperty.call(n,r)&&!r.includes(".")||r.includes("."+t)){e.on[r]=o(n[r])}}};var a=function(e,n){for(var r in n){if({}.hasOwnProperty.call(n,r)){if(r==="on"){f(e,n[r])}else if(typeof n[r]==="function"){e[r]=o(n[r])}else if(typeof n[r]==="object"&&!(n instanceof Array)){e[r]={on:{}};a(e[r],n[r])}else{e[r]=n[r]}}}};a(r,e);if(this._on){f(r,this._on)}if(n&&e[n]){a(r,e[n]);if(e[n].on){f(r,e[n].on)}}return r}function g(n){return function e(){return n}}function m(e,n){n=Object.assign({},{condition:true,enter:{},exit:{},parent:u.select("body"),transition:s.transition().duration(0),update:{}},n);var r=/\.([^#]+)/g.exec(e),t=/#([^\.]+)/g.exec(e),i=/^([^.^#]+)/g.exec(e)[1];var o=n.parent.selectAll(e.includes(":")?e.split(":")[1]:e).data(n.condition?[null]:[]);var f=o.enter().append(i).call(d,n.enter);if(t){f.attr("id",t[1])}if(r){f.attr("class",r[1])}o.exit().transition(n.transition).call(d,n.exit).remove();var a=f.merge(o);a.transition(n.transition).call(d,n.update);return a}function b(i,o){if(o===void 0)o={};var e=new Set(a.merge(i.map(function(e){return n.keys(e)}))),f={};e.forEach(function(n){var e=i.map(function(e){return e[n]});var r;if(o[n]){r=o[n](e)}else{var t=e.map(function(e){return e||e===false?e.constructor:e}).filter(function(e){return e!==void 0});if(!t.length){r=undefined}else if(t.indexOf(Array)>=0){r=a.merge(e.map(function(e){return e instanceof Array?e:[e]}));r=Array.from(new Set(r));if(r.length===1){r=r[0]}}else if(t.indexOf(String)>=0){r=Array.from(new Set(e));if(r.length===1){r=r[0]}}else if(t.indexOf(Number)>=0){r=a.sum(e)}else if(t.indexOf(Object)>=0){r=b(e.filter(function(e){return e}))}else{r=Array.from(new Set(e.filter(function(e){return e!==void 0})));if(r.length===1){r=r[0]}}}f[n]=r});return f}function _(e){var i;if(typeof e==="number"){i=[e]}else{i=e.split(/\s+/)}if(i.length===1){i=[i[0],i[0],i[0],i[0]]}else if(i.length===2){i=i.concat(i)}else if(i.length===3){i.push(i[1])}return["top","right","bottom","left"].reduce(function(e,n,r){var t=parseFloat(i[r]);e[n]=t||0;return e},{})}function w(){if("-webkit-transform"in document.body.style){return"-webkit-"}else if("-moz-transform"in document.body.style){return"-moz-"}else if("-ms-transform"in document.body.style){return"-ms-"}else if("-o-transform"in document.body.style){return"-o-"}else{return""}}function O(e,n){if(n===void 0)n={};for(var r in n){if({}.hasOwnProperty.call(n,r)){e.style(r,n[r])}}}e.accessor=r;e.assign=l;e.attrize=d;e.BaseClass=f;e.closest=h;e.configPrep=v;e.constant=g;e.elem=m;e.isObject=c;e.merge=b;e.parseSides=_;e.prefix=w;e.RESET=y;e.stylize=O;e.uuid=i;Object.defineProperty(e,"__esModule",{value:true})});
\No newline at end of file