UNPKG

d3plus-common

Version:

Common functions and methods used across D3plus modules.

7 lines 6.6 kB
/* d3plus-common v0.6.43 Common functions and methods used across D3plus modules. Copyright (c) 2018 D3plus - https://d3plus.org @license MIT */ if(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 t=Object(n);for(var r=1;r<arguments.length;r++){var i=arguments[r];if(i!==null){for(var o in i){if(Object.prototype.hasOwnProperty.call(i,o)){t[o]=i[o]}}}}return t},writable:true,configurable:true})}if(!Array.prototype.includes){Object.defineProperty(Array.prototype,"includes",{value:function e(n,t){var r=Object(this);var i=r.length>>>0;if(i===0)return false;var o=t|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(r[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 t(n,t){if(t===void 0){return function(e){return e[n]}}return function(e){return e[n]===void 0?t: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 t=function(e){var t=n[e];Object.keys(t).forEach(function(e){var n=t[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 r=i[e];n.forEach(function(e,n){if(n<r.length){var t=r[n];if(Object.is(t,e)){return}if(c(t)&&c(e)){r[n]=l({},t,e)}else{r[n]=e}}else{r.push(e)}})}else{i[e]=n}}else{i[e]=n}})};for(var r=1;r<n.length;r++)t(r);return i}function d(e,n){if(n===void 0)n={};for(var t in n){if({}.hasOwnProperty.call(n,t)){e.attr(t,n[t])}}}function r(){return Math.floor((1+Math.random())*65536).toString(16).substring(1)}function i(){return""+r()+r()+"-"+r()+"-"+r()+"-"+r()+"-"+r()+r()+r()}var p="D3PLUS-COMMON-RESET";function h(e,n){if(c(e)){for(var t in e){if({}.hasOwnProperty.call(e,t)&&!t.startsWith("_")){var r=n&&c(n)?n[t]:undefined;if(e[t]===p){e[t]=r}else if(c(e[t])){h(e[t],r)}}}}}var f=function e(){this._on={};this._uuid=i()};f.prototype.config=function e(n){var t=this;if(!this._configDefault){var e={};for(var r in t.__proto__){if(r.indexOf("_")!==0&&!["config","constructor","render"].includes(r)){var i=t[r]();e[r]=c(i)?l({},i):i}}this._configDefault=e}if(arguments.length){for(var o in n){if({}.hasOwnProperty.call(n,o)&&o in t){var f=n[o];if(f===p){if(o==="on"){t._on=t._configDefault[o]}else{t[o](t._configDefault[o])}}else{h(f,t._configDefault[o]);t[o](f)}}}return this}else{var a={};for(var u in t.__proto__){if(u.indexOf("_")!==0&&!["config","constructor","render"].includes(u)){a[u]=t[u]()}}return a}};f.prototype.on=function e(n,t){return arguments.length===2?(this._on[n]=t,this):arguments.length?typeof n==="string"?this._on[n]:(this._on=Object.assign({},this._on,n),this):this._on};function v(t,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-t)<Math.abs(e-t)?n:e})}function y(e,r,n){var i=this;if(e===void 0)e=this._shapeConfig;if(r===void 0)r="shape";if(n===void 0)n=false;var t={duration:this._duration,on:{}};var o=function(r){return function(e,n,t){while(e.__d3plus__){n=e.i;e=e.data||e.feature}return r.bind(i)(e,n,t)}};var f=function(e,n){for(var t in n){if({}.hasOwnProperty.call(n,t)&&!t.includes(".")||t.includes("."+r)){e.on[t]=o(n[t])}}};var a=function(e,n){for(var t in n){if({}.hasOwnProperty.call(n,t)){if(t==="on"){f(e,n[t])}else if(typeof n[t]==="function"){e[t]=o(n[t])}else if(typeof n[t]==="object"&&!(n instanceof Array)){e[t]={on:{}};a(e[t],n[t])}else{e[t]=n[t]}}}};a(t,e);if(this._on){f(t,this._on)}if(n&&e[n]){a(t,e[n]);if(e[n].on){f(t,e[n].on)}}return t}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 t=/\.([^#]+)/g.exec(e),r=/#([^\.]+)/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(r){f.attr("id",r[1])}if(t){f.attr("class",t[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 t;if(o[n]){t=o[n](e)}else{var r=e.map(function(e){return e||e===false?e.constructor:e}).filter(function(e){return e!==void 0});if(!r.length){t=undefined}else if(r.indexOf(Array)>=0){t=a.merge(e.map(function(e){return e instanceof Array?e:[e]}));t=Array.from(new Set(t));if(t.length===1){t=t[0]}}else if(r.indexOf(String)>=0){t=Array.from(new Set(e));if(t.length===1){t=t[0]}}else if(r.indexOf(Number)>=0){t=a.sum(e)}else if(r.indexOf(Object)>=0){t=b(e.filter(function(e){return e}))}else{t=Array.from(new Set(e.filter(function(e){return e!==void 0})));if(t.length===1){t=t[0]}}}f[n]=t});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,t){var r=parseFloat(i[t]);e[n]=r||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 t in n){if({}.hasOwnProperty.call(n,t)){e.style(t,n[t])}}}e.accessor=t;e.assign=l;e.attrize=d;e.BaseClass=f;e.closest=v;e.configPrep=y;e.constant=g;e.elem=m;e.isObject=c;e.merge=b;e.parseSides=_;e.prefix=w;e.RESET=p;e.stylize=O;e.uuid=i;Object.defineProperty(e,"__esModule",{value:true})});