@d3plus/dom 3.0.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  /*
2
- @d3plus/dom v3.0.0
2
+ @d3plus/dom v3.0.1
3
3
  JavaScript functions for manipulating and analyzing DOM elements.
4
4
  Copyright (c) 2025 D3plus - https://d3plus.org
5
5
  @license MIT
@@ -28,14 +28,14 @@
28
28
  @description Returns a javascript Date object for a given a Number (representing either a 4-digit year or milliseconds since epoch), a String representing a Quarter (ie. "Q2 1987", mapping to the last day in that quarter), or a String that is in [valid dateString format](http://dygraphs.com/date-formats.html). Besides the 4-digit year parsing, this function is useful when needing to parse negative (BC) years, which the vanilla Date object cannot parse.
29
29
  @param {Number|String} *date*
30
30
  */var j="http://www.w3.org/1999/xhtml",z={svg:"http://www.w3.org/2000/svg",xhtml:j,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function i(t){var n=t+="",e=n.indexOf(":");return 0<=e&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),z.hasOwnProperty(n)?{space:z[n],local:t}:t;// eslint-disable-line no-prototype-builtins
31
- }function F(t){t=i(t);return(t.local?function(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}:function(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===j&&t.documentElement.namespaceURI===j?t.createElement(e):t.createElementNS(n,e)}})(t)}function H(){}function R(t){return null==t?H:function(){return this.querySelector(t)}}function L(){return[]}function X(t){return null==t?L:function(){return this.querySelectorAll(t)}}function V(n){return function(){return null==(t=n.apply(this,arguments))?[]:Array.isArray(t)?t:Array.from(t);
31
+ }function F(t){t=i(t);return(t.local?function(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}:function(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===j&&t.documentElement.namespaceURI===j?t.createElement(e):t.createElementNS(n,e)}})(t)}function R(){}function H(t){return null==t?R:function(){return this.querySelector(t)}}function L(){return[]}function X(t){return null==t?L:function(){return this.querySelectorAll(t)}}function Y(n){return function(){return null==(t=n.apply(this,arguments))?[]:Array.isArray(t)?t:Array.from(t);
32
32
  // Given something array like (or null), returns something that is strictly an
33
33
  // array. This is used to ensure that array-like objects passed to d3.selectAll
34
34
  // or selection.selectAll are converted into proper arrays when creating a
35
35
  // selection; we don’t ever want to create a selection backed by a live
36
36
  // HTMLCollection or NodeList. However, note that selection.selectAll will use a
37
37
  // static NodeList as a group, since it safely derived from querySelectorAll.
38
- var t}}function Y(t){return function(){return this.matches(t)}}function I(n){return function(t){return t.matches(n)}}var B=Array.prototype.find;function G(){return this.firstElementChild}var U=Array.prototype.filter;function Q(){return Array.from(this.children)}function W(t){return new Array(t.length)}function d(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function K(t,n,e,r,i,o){
38
+ var t}}function V(t){return function(){return this.matches(t)}}function I(n){return function(t){return t.matches(n)}}var B=Array.prototype.find;function G(){return this.firstElementChild}var U=Array.prototype.filter;function Q(){return Array.from(this.children)}function W(t){return new Array(t.length)}function d(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function K(t,n,e,r,i,o){
39
39
  // Put any non-null nodes that fit into update.
40
40
  // Put any null nodes into enter.
41
41
  // Put any remaining data into enter.
@@ -51,7 +51,7 @@ for(var u,s,l=new Map,c=n.length,h=o.length,f=new Array(c),p=0;p<c;++p)(u=n[p])&
51
51
  for(p=0;p<h;++p)s=a.call(t,o[p],p,o)+"",(u=l.get(s))?((r[p]=u).__data__=o[p],l.delete(s)):e[p]=new d(t,o[p]);
52
52
  // Add any remaining nodes that were not bound to data to exit.
53
53
  for(p=0;p<c;++p)(u=n[p])&&l.get(f[p])===u&&(i[p]=u)}function Z(t){return t.__data__}function tt(t,n){return t<n?-1:n<t?1:n<=t?0:NaN}function nt(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView;// node is a Document
54
- }function $(t,n){return t.style.getPropertyValue(n)||nt(t).getComputedStyle(t,null).getPropertyValue(n)}function et(t){return t.trim().split(/^|\s+/)}function rt(t){return t.classList||new it(t)}function it(t){this._node=t,this._names=et(t.getAttribute("class")||"")}function ot(t,n){for(var e=rt(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function at(t,n){for(var e=rt(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function ut(){this.textContent=""}function st(){this.innerHTML=""}function lt(){this.nextSibling&&this.parentNode.appendChild(this)}function ct(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function ht(){return null}function ft(){var t=this.parentNode;t&&t.removeChild(this)}function pt(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function dt(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function yt(o){return function(){var t=this.__on;if(t){for(var n,e=0,r=-1,i=t.length;e<i;++e)n=t[e],o.type&&n.type!==o.type||n.name!==o.name?t[++r]=n:this.removeEventListener(n.type,n.listener,n.options);++r?t.length=r:delete this.__on}}}function gt(a,u,s){return function(){function t(t){e.call(this,t,this.__data__)}var n,e,r=this.__on;e=u;if(r)for(var i=0,o=r.length;i<o;++i)if((n=r[i]).type===a.type&&n.name===a.name)return this.removeEventListener(n.type,n.listener,n.options),this.addEventListener(n.type,n.listener=t,n.options=s),void(n.value=u);this.addEventListener(a.type,t,s),n={type:a.type,name:a.name,value:u,listener:t,options:s},r?r.push(n):this.__on=[n]}}function mt(t,n,e){var r=nt(t),i=r.CustomEvent;"function"==typeof i?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}d.prototype={constructor:d,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},it.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){t=this._names.indexOf(t);0<=t&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return 0<=this._names.indexOf(t)}};var wt=[null];function x(t,n){this._groups=t,this._parents=n}function n(){return new x([[document.documentElement]],wt)}function s(t){return"string"==typeof t?new x([[document.querySelector(t)]],[document.documentElement]):new x([[t]],wt)}x.prototype=n.prototype={constructor:x,select:function(t){"function"!=typeof t&&(t=R(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a,u=n[i],s=u.length,l=r[i]=new Array(s),c=0;c<s;++c)(o=u[c])&&(a=t.call(o,o.__data__,c,u))&&("__data__"in o&&(a.__data__=o.__data__),l[c]=a);return new x(r,this._parents)},selectAll:function(t){t=("function"==typeof t?V:X)(t);for(var n=this._groups,e=n.length,r=[],i=[],o=0;o<e;++o)for(var a,u=n[o],s=u.length,l=0;l<s;++l)(a=u[l])&&(r.push(t.call(a,a.__data__,l,u)),i.push(a));return new x(r,i)},selectChild:function(t){return this.select(null==t?G:(n="function"==typeof t?t:I(t),function(){return B.call(this.children,n)}));var n},selectChildren:function(t){return this.selectAll(null==t?Q:(n="function"==typeof t?t:I(t),function(){return U.call(this.children,n)}));var n},filter:function(t){"function"!=typeof t&&(t=Y(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a=n[i],u=a.length,s=r[i]=[],l=0;l<u;++l)(o=a[l])&&t.call(o,o.__data__,l,a)&&s.push(o);return new x(r,this._parents)},data:function(t,n){if(!arguments.length)return Array.from(this,Z);var e,r=n?J:K,i=this._parents,o=this._groups;"function"!=typeof t&&(e=t,t=function(){return e});for(var a=o.length,u=new Array(a),s=new Array(a),l=new Array(a),c=0;c<a;++c){var h=i[c],f=o[c],p=f.length,d="object"==typeof(d=t.call(h,h&&h.__data__,c,i))&&"length"in d?d:Array.from(d),y=d.length,g=s[c]=new Array(y),m=u[c]=new Array(y);r(h,f,g,m,l[c]=new Array(p),d,n);
54
+ }function $(t,n){return t.style.getPropertyValue(n)||nt(t).getComputedStyle(t,null).getPropertyValue(n)}function et(t){return t.trim().split(/^|\s+/)}function rt(t){return t.classList||new it(t)}function it(t){this._node=t,this._names=et(t.getAttribute("class")||"")}function ot(t,n){for(var e=rt(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function at(t,n){for(var e=rt(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function ut(){this.textContent=""}function st(){this.innerHTML=""}function lt(){this.nextSibling&&this.parentNode.appendChild(this)}function ct(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function ht(){return null}function ft(){var t=this.parentNode;t&&t.removeChild(this)}function pt(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function dt(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function yt(o){return function(){var t=this.__on;if(t){for(var n,e=0,r=-1,i=t.length;e<i;++e)n=t[e],o.type&&n.type!==o.type||n.name!==o.name?t[++r]=n:this.removeEventListener(n.type,n.listener,n.options);++r?t.length=r:delete this.__on}}}function gt(a,u,s){return function(){function t(t){e.call(this,t,this.__data__)}var n,e,r=this.__on;e=u;if(r)for(var i=0,o=r.length;i<o;++i)if((n=r[i]).type===a.type&&n.name===a.name)return this.removeEventListener(n.type,n.listener,n.options),this.addEventListener(n.type,n.listener=t,n.options=s),void(n.value=u);this.addEventListener(a.type,t,s),n={type:a.type,name:a.name,value:u,listener:t,options:s},r?r.push(n):this.__on=[n]}}function mt(t,n,e){var r=nt(t),i=r.CustomEvent;"function"==typeof i?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}d.prototype={constructor:d,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},it.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){t=this._names.indexOf(t);0<=t&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return 0<=this._names.indexOf(t)}};var wt=[null];function x(t,n){this._groups=t,this._parents=n}function n(){return new x([[document.documentElement]],wt)}function s(t){return"string"==typeof t?new x([[document.querySelector(t)]],[document.documentElement]):new x([[t]],wt)}x.prototype=n.prototype={constructor:x,select:function(t){"function"!=typeof t&&(t=H(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a,u=n[i],s=u.length,l=r[i]=new Array(s),c=0;c<s;++c)(o=u[c])&&(a=t.call(o,o.__data__,c,u))&&("__data__"in o&&(a.__data__=o.__data__),l[c]=a);return new x(r,this._parents)},selectAll:function(t){t=("function"==typeof t?Y:X)(t);for(var n=this._groups,e=n.length,r=[],i=[],o=0;o<e;++o)for(var a,u=n[o],s=u.length,l=0;l<s;++l)(a=u[l])&&(r.push(t.call(a,a.__data__,l,u)),i.push(a));return new x(r,i)},selectChild:function(t){return this.select(null==t?G:(n="function"==typeof t?t:I(t),function(){return B.call(this.children,n)}));var n},selectChildren:function(t){return this.selectAll(null==t?Q:(n="function"==typeof t?t:I(t),function(){return U.call(this.children,n)}));var n},filter:function(t){"function"!=typeof t&&(t=V(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a=n[i],u=a.length,s=r[i]=[],l=0;l<u;++l)(o=a[l])&&t.call(o,o.__data__,l,a)&&s.push(o);return new x(r,this._parents)},data:function(t,n){if(!arguments.length)return Array.from(this,Z);var e,r=n?J:K,i=this._parents,o=this._groups;"function"!=typeof t&&(e=t,t=function(){return e});for(var a=o.length,u=new Array(a),s=new Array(a),l=new Array(a),c=0;c<a;++c){var h=i[c],f=o[c],p=f.length,d="object"==typeof(d=t.call(h,h&&h.__data__,c,i))&&"length"in d?d:Array.from(d),y=d.length,g=s[c]=new Array(y),m=u[c]=new Array(y);r(h,f,g,m,l[c]=new Array(p),d,n);
55
55
  // Now connect the enter nodes to their following update node, such that
56
56
  // appendChild can insert the materialized enter node before this node,
57
57
  // rather than at the end of the parent node.
@@ -63,24 +63,24 @@ for(var w,v,_=0,b=0;_<y;++_)if(w=g[_]){for(b<=_&&(b=_+1);!(v=m[b])&&++b<y;);w._n
63
63
  // cause the data to change while iterating by using a key function, but please
64
64
  // don’t; we’d rather avoid a gratuitous copy.)
65
65
  ,enter:function(){return new x(this._enter||this._groups.map(W),this._parents)},exit:function(){return new x(this._exit||this._groups.map(W),this._parents)},join:function(t,n,e){var r=this.enter(),i=this,o=this.exit(),r="function"==typeof t?(r=t(r))&&r.selection():r.append(t+"");return null!=n&&(i=(i=n(i))&&i.selection()),null==e?o.remove():e(o),r&&i?r.merge(i).order():i},merge:function(t){for(var t=t.selection?t.selection():t,n=this._groups,e=t._groups,r=n.length,t=e.length,i=Math.min(r,t),o=new Array(r),a=0;a<i;++a)for(var u,s=n[a],l=e[a],c=s.length,h=o[a]=new Array(c),f=0;f<c;++f)(u=s[f]||l[f])&&(h[f]=u);for(;a<r;++a)o[a]=n[a];return new x(o,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],o=i.length-1,a=i[o];0<=--o;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e=e||tt;for(var n=this._groups,r=n.length,i=new Array(r),o=0;o<r;++o){for(var a,u=n[o],s=u.length,l=i[o]=new Array(s),c=0;c<s;++c)(a=u[c])&&(l[c]=a);l.sort(t)}return new x(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null},size:function(){let t=0;for(var n of this)++t;// eslint-disable-line no-unused-vars
66
- return t},empty:function(){return!this.node()},each:function(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i,o=n[e],a=0,u=o.length;a<u;++a)(i=o[a])&&t.call(i,i.__data__,a,o);return this},attr:function(t,n){var e,t=i(t);return arguments.length<2?(e=this.node(),t.local?e.getAttributeNS(t.space,t.local):e.getAttribute(t)):this.each((null==n?t.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}}:"function"==typeof n?t.local?function(n,e){return function(){var t=e.apply(this,arguments);null==t?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,t)}}:function(n,e){return function(){var t=e.apply(this,arguments);null==t?this.removeAttribute(n):this.setAttribute(n,t)}}:t.local?function(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}:function(t,n){return function(){this.setAttribute(t,n)}})(t,n))},style:function(t,n,e){return 1<arguments.length?this.each((null==n?function(t){return function(){this.style.removeProperty(t)}}:"function"==typeof n?function(n,e,r){return function(){var t=e.apply(this,arguments);null==t?this.style.removeProperty(n):this.style.setProperty(n,t,r)}}:function(t,n,e){return function(){this.style.setProperty(t,n,e)}})(t,n,null==e?"":e)):$(this.node(),t)},property:function(t,n){return 1<arguments.length?this.each((null==n?function(t){return function(){delete this[t]}}:"function"==typeof n?function(n,e){return function(){var t=e.apply(this,arguments);null==t?delete this[n]:this[n]=t}}:function(t,n){return function(){this[t]=n}})(t,n)):this.node()[t]},classed:function(t,n){var e=et(t+"");if(arguments.length<2){for(var r=rt(this.node()),i=-1,o=e.length;++i<o;)if(!r.contains(e[i]))return!1;return!0}return this.each(("function"==typeof n?function(t,n){return function(){(n.apply(this,arguments)?ot:at)(this,t)}}:n?function(t){return function(){ot(this,t)}}:function(t){return function(){at(this,t)}})(e,n))},text:function(t){return arguments.length?this.each(null==t?ut:("function"==typeof t?function(n){return function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}}:function(t){return function(){this.textContent=t}})(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?st:("function"==typeof t?function(n){return function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}}:function(t){return function(){this.innerHTML=t}})(t)):this.node().innerHTML},raise:function(){return this.each(lt)},lower:function(){return this.each(ct)},append:function(t){var n="function"==typeof t?t:F(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})},insert:function(t,n){var e="function"==typeof t?t:F(t),r=null==n?ht:"function"==typeof n?n:R(n);return this.select(function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)})},remove:function(){return this.each(ft)},clone:function(t){return this.select(t?dt:pt)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,n,e){var r,i,o=(t+"").trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");return 0<=e&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}}),a=o.length;if(!(arguments.length<2)){for(u=n?gt:yt,r=0;r<a;++r)this.each(u(o[r],n,e));return this}var u=this.node().__on;if(u)for(var s,l=0,c=u.length;l<c;++l)for(r=0,s=u[l];r<a;++r)if((i=o[r]).type===s.type&&i.name===s.name)return s.value},dispatch:function(t,n){return this.each(("function"==typeof n?function(t,n){return function(){return mt(this,t,n.apply(this,arguments))}}:function(t,n){return function(){return mt(this,t,n)}})(t,n))},[Symbol.iterator]:function*(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r,i=t[n],o=0,a=i.length;o<a;++o)(r=i[o])&&(yield r)}};var vt={value:()=>{}};function _t(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+"")||t in r||/[\s.]/.test(t))throw new Error("illegal type: "+t);r[t]=[]}return new o(r)}function o(t){this._=t}function bt(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=vt,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=e&&t.push({name:n,value:e}),t}o.prototype=_t.prototype={constructor:o,on:function(t,n){var e,r,i=this._,o=(r=i,(t+"").trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");if(0<=e&&(n=t.slice(e+1),t=t.slice(0,e)),t&&!r.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}})),a=-1,u=o.length;
66
+ return t},empty:function(){return!this.node()},each:function(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i,o=n[e],a=0,u=o.length;a<u;++a)(i=o[a])&&t.call(i,i.__data__,a,o);return this},attr:function(t,n){var e,t=i(t);return arguments.length<2?(e=this.node(),t.local?e.getAttributeNS(t.space,t.local):e.getAttribute(t)):this.each((null==n?t.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}}:"function"==typeof n?t.local?function(n,e){return function(){var t=e.apply(this,arguments);null==t?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,t)}}:function(n,e){return function(){var t=e.apply(this,arguments);null==t?this.removeAttribute(n):this.setAttribute(n,t)}}:t.local?function(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}:function(t,n){return function(){this.setAttribute(t,n)}})(t,n))},style:function(t,n,e){return 1<arguments.length?this.each((null==n?function(t){return function(){this.style.removeProperty(t)}}:"function"==typeof n?function(n,e,r){return function(){var t=e.apply(this,arguments);null==t?this.style.removeProperty(n):this.style.setProperty(n,t,r)}}:function(t,n,e){return function(){this.style.setProperty(t,n,e)}})(t,n,null==e?"":e)):$(this.node(),t)},property:function(t,n){return 1<arguments.length?this.each((null==n?function(t){return function(){delete this[t]}}:"function"==typeof n?function(n,e){return function(){var t=e.apply(this,arguments);null==t?delete this[n]:this[n]=t}}:function(t,n){return function(){this[t]=n}})(t,n)):this.node()[t]},classed:function(t,n){var e=et(t+"");if(arguments.length<2){for(var r=rt(this.node()),i=-1,o=e.length;++i<o;)if(!r.contains(e[i]))return!1;return!0}return this.each(("function"==typeof n?function(t,n){return function(){(n.apply(this,arguments)?ot:at)(this,t)}}:n?function(t){return function(){ot(this,t)}}:function(t){return function(){at(this,t)}})(e,n))},text:function(t){return arguments.length?this.each(null==t?ut:("function"==typeof t?function(n){return function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}}:function(t){return function(){this.textContent=t}})(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?st:("function"==typeof t?function(n){return function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}}:function(t){return function(){this.innerHTML=t}})(t)):this.node().innerHTML},raise:function(){return this.each(lt)},lower:function(){return this.each(ct)},append:function(t){var n="function"==typeof t?t:F(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})},insert:function(t,n){var e="function"==typeof t?t:F(t),r=null==n?ht:"function"==typeof n?n:H(n);return this.select(function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)})},remove:function(){return this.each(ft)},clone:function(t){return this.select(t?dt:pt)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,n,e){var r,i,o=(t+"").trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");return 0<=e&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}}),a=o.length;if(!(arguments.length<2)){for(u=n?gt:yt,r=0;r<a;++r)this.each(u(o[r],n,e));return this}var u=this.node().__on;if(u)for(var s,l=0,c=u.length;l<c;++l)for(r=0,s=u[l];r<a;++r)if((i=o[r]).type===s.type&&i.name===s.name)return s.value},dispatch:function(t,n){return this.each(("function"==typeof n?function(t,n){return function(){return mt(this,t,n.apply(this,arguments))}}:function(t,n){return function(){return mt(this,t,n)}})(t,n))},[Symbol.iterator]:function*(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r,i=t[n],o=0,a=i.length;o<a;++o)(r=i[o])&&(yield r)}};var vt={value:()=>{}};function _t(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+"")||t in r||/[\s.]/.test(t))throw new Error("illegal type: "+t);r[t]=[]}return new o(r)}function o(t){this._=t}function bt(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=vt,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=e&&t.push({name:n,value:e}),t}o.prototype=_t.prototype={constructor:o,on:function(t,n){var e,r,i=this._,o=(r=i,(t+"").trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");if(0<=e&&(n=t.slice(e+1),t=t.slice(0,e)),t&&!r.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}})),a=-1,u=o.length;
67
67
  // If no callback was specified, return the callback of the given type and name.
68
68
  if(!(arguments.length<2)){
69
69
  // If a type was specified, set the callback for the given type and name.
70
70
  // Otherwise, if a null callback was specified, remove callbacks of the given name.
71
- if(null!=n&&"function"!=typeof n)throw new Error("invalid callback: "+n);for(;++a<u;)if(e=(t=o[a]).type)i[e]=bt(i[e],t.name,n);else if(null==n)for(e in i)i[e]=bt(i[e],t.name,null);return this}for(;++a<u;)if(e=(e=(t=o[a]).type)&&((t,n)=>{for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value})(i[e],t.name))return e},copy:function(){var t,n={},e=this._;for(t in e)n[t]=e[t].slice();return new o(n)},call:function(t,n){if(0<(e=arguments.length-2))for(var e,r,i=new Array(e),o=0;o<e;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,e=(r=this._[t]).length;o<e;++o)r[o].value.apply(n,i)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};var l,c,h=0,f=0,e=0,xt=1e3,p=0,y=0,g=0,m="object"==typeof performance&&performance.now?performance:Date,At="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Nt(){return y||(At(Et),y=m.now()+g)}function Et(){y=0}function w(){this._call=this._time=this._next=null}function kt(t,n,e){var r=new w;return r.restart(t,n,e),r}function St(){y=(p=m.now())+g,h=f=0;try{Nt(),// Get the current time, if not already set.
71
+ if(null!=n&&"function"!=typeof n)throw new Error("invalid callback: "+n);for(;++a<u;)if(e=(t=o[a]).type)i[e]=bt(i[e],t.name,n);else if(null==n)for(e in i)i[e]=bt(i[e],t.name,null);return this}for(;++a<u;)if(e=(e=(t=o[a]).type)&&((t,n)=>{for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value})(i[e],t.name))return e},copy:function(){var t,n={},e=this._;for(t in e)n[t]=e[t].slice();return new o(n)},call:function(t,n){if(0<(e=arguments.length-2))for(var e,r,i=new Array(e),o=0;o<e;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,e=(r=this._[t]).length;o<e;++o)r[o].value.apply(n,i)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};var l,c,h=0,f=0,e=0,xt=1e3,p=0,y=0,g=0,m="object"==typeof performance&&performance.now?performance:Date,At="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Et(){return y||(At(Nt),y=m.now()+g)}function Nt(){y=0}function w(){this._call=this._time=this._next=null}function kt(t,n,e){var r=new w;return r.restart(t,n,e),r}function St(){y=(p=m.now())+g,h=f=0;try{Et(),// Get the current time, if not already set.
72
72
  ++h;for(// Pretend we’ve set an alarm, if we haven’t already.
73
73
  var t,n=l;n;)0<=(t=y-n._time)&&n._call.call(void 0,t),n=n._next;--h}finally{for(var e,r,i=l,o=1/(h=0);i;)i=i._call?(o>i._time&&(o=i._time),(e=i)._next):(r=i._next,i._next=null,e?e._next=r:l=r);c=e,$t(o),y=0}}function Mt(){var t=m.now(),n=t-p;xt<n&&(g-=n,p=t)}function $t(t){h||(// Soonest alarm already set, or will be.
74
74
  f=f&&clearTimeout(f),// Strictly less than if we recomputed clockNow.
75
- 24<t-y?(t<1/0&&(f=setTimeout(St,t-m.now()-g)),e=e&&clearInterval(e)):(e||(p=m.now(),e=setInterval(Mt,xt)),h=1,At(St)))}function Ot(n,e,t){var r=new w;return e=null==e?0:+e,r.restart(t=>{r.stop(),n(t+e)},e,t),r}w.prototype=kt.prototype={constructor:w,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?Nt():+e)+(null==n?0:+n),this._next||c===this||(c?c._next=this:l=this,c=this),this._call=t,this._time=e,$t()},stop:function(){this._call&&(this._call=null,this._time=1/0,$t())}};var Ct=_t("start","end","cancel","interrupt"),Tt=[],qt=0,Pt=1,Dt=2,jt=3,zt=4,Ft=5,Ht=6;function Rt(t,n,e,r,i,o){var a,u,s,l,c,h=t.__transition;if(h){if(e in h)return}else t.__transition={};function f(t){var n,e,r,i;
75
+ 24<t-y?(t<1/0&&(f=setTimeout(St,t-m.now()-g)),e=e&&clearInterval(e)):(e||(p=m.now(),e=setInterval(Mt,xt)),h=1,At(St)))}function Ot(n,e,t){var r=new w;return e=null==e?0:+e,r.restart(t=>{r.stop(),n(t+e)},e,t),r}w.prototype=kt.prototype={constructor:w,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?Et():+e)+(null==n?0:+n),this._next||c===this||(c?c._next=this:l=this,c=this),this._call=t,this._time=e,$t()},stop:function(){this._call&&(this._call=null,this._time=1/0,$t())}};var Ct=_t("start","end","cancel","interrupt"),Tt=[],qt=0,Dt=1,Pt=2,jt=3,zt=4,Ft=5,Rt=6;function Ht(t,n,e,r,i,o){var a,u,s,l,c,h=t.__transition;if(h){if(e in h)return}else t.__transition={};function f(t){var n,e,r,i;
76
76
  // If the state is not SCHEDULED, then we previously errored on start.
77
- if(s.state!==Pt)return d();for(n in c)if((i=c[n]).name===s.name){
77
+ if(s.state!==Dt)return d();for(n in c)if((i=c[n]).name===s.name){
78
78
  // While this element already has a starting transition during this frame,
79
79
  // defer starting an interrupting transition until that transition has a
80
80
  // chance to tick (and possibly end); see d3/d3-transition#54!
81
81
  if(i.state===jt)return Ot(f);
82
82
  // Interrupt the active transition, if any.
83
- i.state===zt?(i.state=Ht,i.timer.stop(),i.on.call("interrupt",a,a.__data__,i.index,i.group),delete c[n]):+n<u&&(i.state=Ht,i.timer.stop(),i.on.call("cancel",a,a.__data__,i.index,i.group),delete c[n])}
83
+ i.state===zt?(i.state=Rt,i.timer.stop(),i.on.call("interrupt",a,a.__data__,i.index,i.group),delete c[n]):+n<u&&(i.state=Rt,i.timer.stop(),i.on.call("cancel",a,a.__data__,i.index,i.group),delete c[n])}
84
84
  // Defer the first tick to end of the current frame; see d3/d3#1576.
85
85
  // Note the transition may be canceled after start and before the first tick!
86
86
  // Note this must be scheduled before the start event; see d3/d3-transition#16!
@@ -88,38 +88,38 @@ i.state===zt?(i.state=Ht,i.timer.stop(),i.on.call("interrupt",a,a.__data__,i.ind
88
88
  if(Ot(function(){s.state===jt&&(s.state=zt,s.timer.restart(p,s.delay,s.time),p(t))}),
89
89
  // Dispatch the start event.
90
90
  // Note this must be done before the tween are initialized.
91
- s.state=Dt,s.on.call("start",a,a.__data__,s.index,s.group),s.state===Dt){for(// interrupted
91
+ s.state=Pt,s.on.call("start",a,a.__data__,s.index,s.group),s.state===Pt){for(// interrupted
92
92
  s.state=jt,
93
93
  // Initialize the tween, deleting null tween.
94
94
  l=new Array(r=s.tween.length),n=0,e=-1;n<r;++n)(i=s.tween[n].value.call(a,a.__data__,s.index,s.group))&&(l[++e]=i);l.length=e+1}}function p(t){for(var n=t<s.duration?s.ease.call(null,t/s.duration):(s.timer.restart(d),s.state=Ft,1),e=-1,r=l.length;++e<r;)l[e].call(a,n);
95
95
  // Dispatch the end event.
96
- s.state===Ft&&(s.on.call("end",a,a.__data__,s.index,s.group),d())}function d(){for(var t in s.state=Ht,s.timer.stop(),delete c[u],c)return;// eslint-disable-line no-unused-vars
96
+ s.state===Ft&&(s.on.call("end",a,a.__data__,s.index,s.group),d())}function d(){for(var t in s.state=Rt,s.timer.stop(),delete c[u],c)return;// eslint-disable-line no-unused-vars
97
97
  delete a.__transition}a=t,u=e,s={name:n,index:r,group:i,on:Ct,tween:Tt,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:qt},(
98
98
  // Initialize the self timer when the transition is created.
99
99
  // Note the actual delay is not known until the first callback!
100
- (c=a.__transition)[u]=s).timer=kt(function(t){s.state=Pt,s.timer.restart(f,s.delay,s.time),
100
+ (c=a.__transition)[u]=s).timer=kt(function(t){s.state=Dt,s.timer.restart(f,s.delay,s.time),
101
101
  // If the elapsed delay is less than our first sleep, start immediately.
102
- s.delay<=t&&f(t-s.delay)},0,s.time)}function Lt(t,n){t=v(t,n);if(t.state>qt)throw new Error("too late; already scheduled");return t}function O(t,n){t=v(t,n);if(t.state>jt)throw new Error("too late; already running");return t}function v(t,n){t=t.__transition;if(t=t&&t[n])return t;throw new Error("transition not found")}function Xt(t,n,e){(t.prototype=n.prototype=e).constructor=t}function Vt(t,n){var e,r=Object.create(t.prototype);for(e in n)r[e]=n[e];return r}function _(){}var r="\\s*([+-]?\\d+)\\s*",b="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",A="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Yt=/^#([0-9a-f]{3,8})$/,It=new RegExp(`^rgb\\(${r},${r},${r}\\)$`),Bt=new RegExp(`^rgb\\(${A},${A},${A}\\)$`),Gt=new RegExp(`^rgba\\(${r},${r},${r},${b}\\)$`),Ut=new RegExp(`^rgba\\(${A},${A},${A},${b}\\)$`),Qt=new RegExp(`^hsl\\(${b},${A},${A}\\)$`),Wt=new RegExp(`^hsla\\(${b},${A},${A},${b}\\)$`),Kt={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Jt(){return this.rgb().formatHex()}function Zt(){return this.rgb().formatRgb()}function N(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=Yt.exec(t))?(e=n[1].length,n=parseInt(n[1],16),6===e?tn(n):3===e?new E(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===e?nn(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===e?nn(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|240&n,((15&n)<<4|15&n)/255):null):(n=It.exec(t))?new E(n[1],n[2],n[3],1):(n=Bt.exec(t))?new E(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=Gt.exec(t))?nn(n[1],n[2],n[3],n[4]):(n=Ut.exec(t))?nn(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=Qt.exec(t))?un(n[1],n[2]/100,n[3]/100,1):(n=Wt.exec(t))?un(n[1],n[2]/100,n[3]/100,n[4]):Kt.hasOwnProperty(t)?tn(Kt[t]):"transparent"===t?new E(NaN,NaN,NaN,0):null}function tn(t){return new E(t>>16&255,t>>8&255,255&t,1)}function nn(t,n,e,r){return new E(t=r<=0?n=e=NaN:t,n,e,r)}function en(t,n,e,r){return 1===arguments.length?(i=(i=t)instanceof _?i:N(i))?new E((i=i.rgb()).r,i.g,i.b,i.opacity):new E:new E(t,n,e,null==r?1:r);var i}function E(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function rn(){return"#"+S(this.r)+S(this.g)+S(this.b)}function on(){var t=an(this.opacity);return(1===t?"rgb(":"rgba(")+k(this.r)+`, ${k(this.g)}, `+k(this.b)+(1===t?")":`, ${t})`)}function an(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function k(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function S(t){return((t=k(t))<16?"0":"")+t.toString(16)}function un(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||1<=e?t=n=NaN:n<=0&&(t=NaN),new M(t,n,e,r)}function sn(t){var n,e,r,i,o,a,u,s;return t instanceof M?new M(t.h,t.s,t.l,t.opacity):(t=t instanceof _?t:N(t))?t instanceof M?t:(n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),a=NaN,s=((o=Math.max(n,e,r))+i)/2,(u=o-i)?(a=n===o?(e-r)/u+6*(e<r):e===o?(r-n)/u+2:(n-e)/u+4,u/=s<.5?o+i:2-o-i,a*=60):u=0<s&&s<1?0:a,new M(a,u,s,t.opacity)):new M}function M(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function ln(t){return(t=(t||0)%360)<0?t+360:t}function cn(t){return Math.max(0,Math.min(1,t||0))}
103
- /* From FvD 13.37, CSS Color Module Level 3 */function hn(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}Xt(_,N,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Jt,formatHex:Jt,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return sn(this).formatHsl()},formatRgb:Zt,toString:Zt}),Xt(E,en,Vt(_,{brighter(t){return t=null==t?1/.7:Math.pow(1/.7,t),new E(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new E(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new E(k(this.r),k(this.g),k(this.b),an(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:rn,formatHex:rn,formatHex8:function(){return"#"+S(this.r)+S(this.g)+S(this.b)+S(255*(isNaN(this.opacity)?1:this.opacity))},formatRgb:on,toString:on})),Xt(M,function(t,n,e,r){return 1===arguments.length?sn(t):new M(t,n,e,null==r?1:r)},Vt(_,{brighter(t){return t=null==t?1/.7:Math.pow(1/.7,t),new M(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new M(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,n=e+(e<.5?e:1-e)*n,e=2*e-n;return new E(hn(240<=t?t-240:120+t,e,n),hn(t,e,n),hn(t<120?240+t:t-120,e,n),this.opacity)},clamp(){return new M(ln(this.h),cn(this.s),cn(this.l),an(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){var t=an(this.opacity);return(1===t?"hsl(":"hsla(")+ln(this.h)+`, ${100*cn(this.s)}%, ${100*cn(this.l)}%`+(1===t?")":`, ${t})`)}}));var fn=t=>()=>t;function pn(o){return 1==(o=+o)?dn:function(t,n){return n-t?(e=t,r=n,i=o,e=Math.pow(e,i),r=Math.pow(r,i)-e,i=1/i,function(t){return Math.pow(e+t*r,i)}):fn(isNaN(t)?n:t);var e,r,i}}function dn(t,n){var e,r,i=n-t;return i?(e=t,r=i,function(t){return e+t*r}):fn(isNaN(t)?n:t)}var yn=function t(n){var a=pn(n);function e(n,t){var e=a((n=en(n)).r,(t=en(t)).r),r=a(n.g,t.g),i=a(n.b,t.b),o=dn(n.opacity,t.opacity);return function(t){return n.r=e(t),n.g=r(t),n.b=i(t),n.opacity=o(t),n+""}}return e.gamma=t,e}(1);function C(n,e){return n=+n,e=+e,function(t){return n*(1-t)+e*t}}var gn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,mn=new RegExp(gn.source,"g");var wn,vn=180/Math.PI,_n={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function bn(t,n,e,r,i,o){var a,u,s;return(a=Math.sqrt(t*t+n*n))&&(t/=a,n/=a),(s=t*e+n*r)&&(e-=t*s,r-=n*s),(u=Math.sqrt(e*e+r*r))&&(e/=u,r/=u,s/=u),t*r<n*e&&(t=-t,n=-n,s=-s,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(n,t)*vn,skewX:Math.atan(s)*vn,scaleX:a,scaleY:u}}function xn(f,p,d,y){function g(t){return t.length?t.pop()+" ":""}return function(t,n){var e,r,i,o,a,u,s,l,c=[],h=[];// number interpolators
102
+ s.delay<=t&&f(t-s.delay)},0,s.time)}function Lt(t,n){t=v(t,n);if(t.state>qt)throw new Error("too late; already scheduled");return t}function O(t,n){t=v(t,n);if(t.state>jt)throw new Error("too late; already running");return t}function v(t,n){t=t.__transition;if(t=t&&t[n])return t;throw new Error("transition not found")}function Xt(t,n,e){(t.prototype=n.prototype=e).constructor=t}function Yt(t,n){var e,r=Object.create(t.prototype);for(e in n)r[e]=n[e];return r}function _(){}var r="\\s*([+-]?\\d+)\\s*",b="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",A="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Vt=/^#([0-9a-f]{3,8})$/,It=new RegExp(`^rgb\\(${r},${r},${r}\\)$`),Bt=new RegExp(`^rgb\\(${A},${A},${A}\\)$`),Gt=new RegExp(`^rgba\\(${r},${r},${r},${b}\\)$`),Ut=new RegExp(`^rgba\\(${A},${A},${A},${b}\\)$`),Qt=new RegExp(`^hsl\\(${b},${A},${A}\\)$`),Wt=new RegExp(`^hsla\\(${b},${A},${A},${b}\\)$`),Kt={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Jt(){return this.rgb().formatHex()}function Zt(){return this.rgb().formatRgb()}function E(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=Vt.exec(t))?(e=n[1].length,n=parseInt(n[1],16),6===e?tn(n):3===e?new N(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===e?nn(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===e?nn(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|240&n,((15&n)<<4|15&n)/255):null):(n=It.exec(t))?new N(n[1],n[2],n[3],1):(n=Bt.exec(t))?new N(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=Gt.exec(t))?nn(n[1],n[2],n[3],n[4]):(n=Ut.exec(t))?nn(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=Qt.exec(t))?un(n[1],n[2]/100,n[3]/100,1):(n=Wt.exec(t))?un(n[1],n[2]/100,n[3]/100,n[4]):Kt.hasOwnProperty(t)?tn(Kt[t]):"transparent"===t?new N(NaN,NaN,NaN,0):null}function tn(t){return new N(t>>16&255,t>>8&255,255&t,1)}function nn(t,n,e,r){return new N(t=r<=0?n=e=NaN:t,n,e,r)}function en(t,n,e,r){return 1===arguments.length?(i=(i=t)instanceof _?i:E(i))?new N((i=i.rgb()).r,i.g,i.b,i.opacity):new N:new N(t,n,e,null==r?1:r);var i}function N(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function rn(){return"#"+S(this.r)+S(this.g)+S(this.b)}function on(){var t=an(this.opacity);return(1===t?"rgb(":"rgba(")+k(this.r)+`, ${k(this.g)}, `+k(this.b)+(1===t?")":`, ${t})`)}function an(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function k(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function S(t){return((t=k(t))<16?"0":"")+t.toString(16)}function un(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||1<=e?t=n=NaN:n<=0&&(t=NaN),new M(t,n,e,r)}function sn(t){var n,e,r,i,o,a,u,s;return t instanceof M?new M(t.h,t.s,t.l,t.opacity):(t=t instanceof _?t:E(t))?t instanceof M?t:(n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),a=NaN,s=((o=Math.max(n,e,r))+i)/2,(u=o-i)?(a=n===o?(e-r)/u+6*(e<r):e===o?(r-n)/u+2:(n-e)/u+4,u/=s<.5?o+i:2-o-i,a*=60):u=0<s&&s<1?0:a,new M(a,u,s,t.opacity)):new M}function M(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function ln(t){return(t=(t||0)%360)<0?t+360:t}function cn(t){return Math.max(0,Math.min(1,t||0))}
103
+ /* From FvD 13.37, CSS Color Module Level 3 */function hn(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}Xt(_,E,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Jt,formatHex:Jt,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return sn(this).formatHsl()},formatRgb:Zt,toString:Zt}),Xt(N,en,Yt(_,{brighter(t){return t=null==t?1/.7:Math.pow(1/.7,t),new N(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new N(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new N(k(this.r),k(this.g),k(this.b),an(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:rn,formatHex:rn,formatHex8:function(){return"#"+S(this.r)+S(this.g)+S(this.b)+S(255*(isNaN(this.opacity)?1:this.opacity))},formatRgb:on,toString:on})),Xt(M,function(t,n,e,r){return 1===arguments.length?sn(t):new M(t,n,e,null==r?1:r)},Yt(_,{brighter(t){return t=null==t?1/.7:Math.pow(1/.7,t),new M(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new M(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,n=e+(e<.5?e:1-e)*n,e=2*e-n;return new N(hn(240<=t?t-240:120+t,e,n),hn(t,e,n),hn(t<120?240+t:t-120,e,n),this.opacity)},clamp(){return new M(ln(this.h),cn(this.s),cn(this.l),an(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){var t=an(this.opacity);return(1===t?"hsl(":"hsla(")+ln(this.h)+`, ${100*cn(this.s)}%, ${100*cn(this.l)}%`+(1===t?")":`, ${t})`)}}));var fn=t=>()=>t;function pn(o){return 1==(o=+o)?dn:function(t,n){return n-t?(e=t,r=n,i=o,e=Math.pow(e,i),r=Math.pow(r,i)-e,i=1/i,function(t){return Math.pow(e+t*r,i)}):fn(isNaN(t)?n:t);var e,r,i}}function dn(t,n){var e,r,i=n-t;return i?(e=t,r=i,function(t){return e+t*r}):fn(isNaN(t)?n:t)}var yn=function t(n){var a=pn(n);function e(n,t){var e=a((n=en(n)).r,(t=en(t)).r),r=a(n.g,t.g),i=a(n.b,t.b),o=dn(n.opacity,t.opacity);return function(t){return n.r=e(t),n.g=r(t),n.b=i(t),n.opacity=o(t),n+""}}return e.gamma=t,e}(1);function C(n,e){return n=+n,e=+e,function(t){return n*(1-t)+e*t}}var gn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,mn=new RegExp(gn.source,"g");var wn,vn=180/Math.PI,_n={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function bn(t,n,e,r,i,o){var a,u,s;return(a=Math.sqrt(t*t+n*n))&&(t/=a,n/=a),(s=t*e+n*r)&&(e-=t*s,r-=n*s),(u=Math.sqrt(e*e+r*r))&&(e/=u,r/=u,s/=u),t*r<n*e&&(t=-t,n=-n,s=-s,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(n,t)*vn,skewX:Math.atan(s)*vn,scaleX:a,scaleY:u}}function xn(f,p,d,y){function g(t){return t.length?t.pop()+" ":""}return function(t,n){var e,r,i,o,a,u,s,l,c=[],h=[];// number interpolators
104
104
  // gc
105
105
  return t=f(t),n=f(n),r=t.translateX,i=t.translateY,s=n.translateX,a=n.translateY,u=c,o=h,r!==s||i!==a?(e=u.push("translate(",null,p,null,d),o.push({i:e-4,x:C(r,s)},{i:e-2,x:C(i,a)})):(s||a)&&u.push("translate("+s+p+a+d),o=t.rotate,r=c,e=h,o!==(i=n.rotate)?(180<o-i?i+=360:180<i-o&&(o+=360),// shortest path
106
106
  e.push({i:r.push(g(r)+"rotate(",null,y)-2,x:C(o,i)})):i&&r.push(g(r)+"rotate("+i+y),u=t.skewX,s=c,a=h,u!==(o=n.skewX)?a.push({i:s.push(g(s)+"skewX(",null,y)-2,x:C(u,o)}):o&&s.push(g(s)+"skewX("+o+y),r=t.scaleX,i=t.scaleY,a=n.scaleY,u=c,s=h,r!==(o=n.scaleX)||i!==a?(l=u.push(g(u)+"scale(",null,",",null,")"),s.push({i:l-4,x:C(r,o)},{i:l-2,x:C(i,a)})):1===o&&1===a||u.push(g(u)+"scale("+o+","+a+")"),t=n=null,function(t){for(var n,e=-1,r=h.length;++e<r;)c[(n=h[e]).i]=n.x(t);return c.join("")}}}var An=xn(
107
- /* eslint-disable no-undef */function(t){return(t=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"")).isIdentity?_n:bn(t.a,t.b,t.c,t.d,t.e,t.f)},"px, ","px)","deg)"),Nn=xn(function(t){return null!=t&&((wn=wn||document.createElementNS("http://www.w3.org/2000/svg","g")).setAttribute("transform",t),t=wn.transform.baseVal.consolidate())?bn((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):_n},", ",")",")");function En(t,n,e){var r=t._id;return t.each(function(){var t=O(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)}),function(t){return v(t,r).value[n]}}function kn(t,n){var e;return("number"==typeof n?C:n instanceof N?yn:(e=N(n))?(n=e,yn):function(t,r){var n,e,i,o,a,u=gn.lastIndex=mn.lastIndex=0,s=-1,l=[],c=[];// number interpolators
107
+ /* eslint-disable no-undef */function(t){return(t=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"")).isIdentity?_n:bn(t.a,t.b,t.c,t.d,t.e,t.f)},"px, ","px)","deg)"),En=xn(function(t){return null!=t&&((wn=wn||document.createElementNS("http://www.w3.org/2000/svg","g")).setAttribute("transform",t),t=wn.transform.baseVal.consolidate())?bn((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):_n},", ",")",")");function Nn(t,n,e){var r=t._id;return t.each(function(){var t=O(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)}),function(t){return v(t,r).value[n]}}function kn(t,n){var e;return("number"==typeof n?C:n instanceof E?yn:(e=E(n))?(n=e,yn):function(t,r){var n,e,i,o,a,u=gn.lastIndex=mn.lastIndex=0,s=-1,l=[],c=[];// number interpolators
108
108
  // Coerce inputs to strings.
109
109
  // Interpolate pairs of numbers in a & b.
110
110
  for(t+="",r+="";(n=gn.exec(t))&&(e=mn.exec(r));)(i=e.index)>u&&(i=r.slice(u,i),l[s]?l[s]+=i:l[++s]=i),(n=n[0])===(e=e[0])?l[s]?l[s]+=e:l[++s]=e:(l[++s]=null,c.push({i:s,x:C(n,e)})),u=mn.lastIndex;
111
111
  // Add remains of b.
112
112
  // Special optimization for only a single match.
113
113
  // Otherwise, interpolate each of the numbers and rejoin the string.
114
- return u<r.length&&(i=r.slice(u),l[s]?l[s]+=i:l[++s]=i),l.length<2?c[0]?(a=c[0].x,function(t){return a(t)+""}):(o=r,function(){return o}):(r=c.length,function(t){for(var n,e=0;e<r;++e)l[(n=c[e]).i]=n.x(t);return l.join("")})})(t,n)}function Sn(r,i){var o,a;function t(){var n,e,t=i.apply(this,arguments);return o=t!==a?(a=t)&&(n=r,e=t,function(t){this.setAttributeNS(n.space,n.local,e.call(this,t))}):o}return t._value=i,t}function Mn(r,i){var o,a;function t(){var n,e,t=i.apply(this,arguments);return o=t!==a?(a=t)&&(n=r,e=t,function(t){this.setAttribute(n,e.call(this,t))}):o}return t._value=i,t}var $n=n.prototype.constructor;function On(t){return function(){this.style.removeProperty(t)}}function Cn(i,o,a){var u,s;function t(){var n,e,r,t=o.apply(this,arguments);return u=t!==s?(s=t)&&(n=i,e=t,r=a,function(t){this.style.setProperty(n,e.call(this,t),r)}):u}return t._value=o,t}function Tn(e){var r,i;function t(){var n,t=e.apply(this,arguments);return r=t!==i?(i=t)&&(n=t,function(t){this.textContent=n.call(this,t)}):r}return t._value=e,t}var qn=0;function T(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function Pn(t){return n().transition(t)}r=n.prototype;T.prototype=Pn.prototype={constructor:T,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=R(t));for(var r=this._groups,i=r.length,o=new Array(i),a=0;a<i;++a)for(var u,s,l=r[a],c=l.length,h=o[a]=new Array(c),f=0;f<c;++f)(u=l[f])&&(s=t.call(u,u.__data__,f,l))&&("__data__"in u&&(s.__data__=u.__data__),h[f]=s,Rt(h[f],n,e,f,h,v(u,e)));return new T(o,this._parents,n,e)},selectAll:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=X(t));for(var r=this._groups,i=r.length,o=[],a=[],u=0;u<i;++u)for(var s,l=r[u],c=l.length,h=0;h<c;++h)if(s=l[h]){for(var f,p=t.call(s,s.__data__,h,l),d=v(s,e),y=0,g=p.length;y<g;++y)(f=p[y])&&Rt(f,n,e,y,p,d);o.push(p),a.push(s)}return new T(o,a,n,e)},selectChild:r.selectChild,selectChildren:r.selectChildren,filter:function(t){"function"!=typeof t&&(t=Y(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a=n[i],u=a.length,s=r[i]=[],l=0;l<u;++l)(o=a[l])&&t.call(o,o.__data__,l,a)&&s.push(o);return new T(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,t=e.length,i=Math.min(r,t),o=new Array(r),a=0;a<i;++a)for(var u,s=n[a],l=e[a],c=s.length,h=o[a]=new Array(c),f=0;f<c;++f)(u=s[f]||l[f])&&(h[f]=u);for(;a<r;++a)o[a]=n[a];return new T(o,this._parents,this._name,this._id)},selection:function(){return new $n(this._groups,this._parents)},transition:function(){for(var t=this._name,n=this._id,e=++qn,r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],s=u.length,l=0;l<s;++l)(a=u[l])&&Rt(a,t,e,l,u,{time:(a=v(a,n)).time+a.delay+a.duration,delay:0,duration:a.duration,ease:a.ease});return new T(r,this._parents,t,e)},call:r.call,nodes:r.nodes,node:r.node,size:r.size,empty:r.empty,each:r.each,on:function(t,n){var e,r,i,o,a,u,s=this._id;return arguments.length<2?v(this.node(),s).on.on(t):this.each((e=s,i=n,u=((r=t)+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return!(t=0<=n?t.slice(0,n):t)||"start"===t})?Lt:O,function(){var t=u(this,e),n=t.on;
114
+ return u<r.length&&(i=r.slice(u),l[s]?l[s]+=i:l[++s]=i),l.length<2?c[0]?(a=c[0].x,function(t){return a(t)+""}):(o=r,function(){return o}):(r=c.length,function(t){for(var n,e=0;e<r;++e)l[(n=c[e]).i]=n.x(t);return l.join("")})})(t,n)}function Sn(r,i){var o,a;function t(){var n,e,t=i.apply(this,arguments);return o=t!==a?(a=t)&&(n=r,e=t,function(t){this.setAttributeNS(n.space,n.local,e.call(this,t))}):o}return t._value=i,t}function Mn(r,i){var o,a;function t(){var n,e,t=i.apply(this,arguments);return o=t!==a?(a=t)&&(n=r,e=t,function(t){this.setAttribute(n,e.call(this,t))}):o}return t._value=i,t}var $n=n.prototype.constructor;function On(t){return function(){this.style.removeProperty(t)}}function Cn(i,o,a){var u,s;function t(){var n,e,r,t=o.apply(this,arguments);return u=t!==s?(s=t)&&(n=i,e=t,r=a,function(t){this.style.setProperty(n,e.call(this,t),r)}):u}return t._value=o,t}function Tn(e){var r,i;function t(){var n,t=e.apply(this,arguments);return r=t!==i?(i=t)&&(n=t,function(t){this.textContent=n.call(this,t)}):r}return t._value=e,t}var qn=0;function T(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function Dn(t){return n().transition(t)}r=n.prototype;T.prototype=Dn.prototype={constructor:T,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=H(t));for(var r=this._groups,i=r.length,o=new Array(i),a=0;a<i;++a)for(var u,s,l=r[a],c=l.length,h=o[a]=new Array(c),f=0;f<c;++f)(u=l[f])&&(s=t.call(u,u.__data__,f,l))&&("__data__"in u&&(s.__data__=u.__data__),h[f]=s,Ht(h[f],n,e,f,h,v(u,e)));return new T(o,this._parents,n,e)},selectAll:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=X(t));for(var r=this._groups,i=r.length,o=[],a=[],u=0;u<i;++u)for(var s,l=r[u],c=l.length,h=0;h<c;++h)if(s=l[h]){for(var f,p=t.call(s,s.__data__,h,l),d=v(s,e),y=0,g=p.length;y<g;++y)(f=p[y])&&Ht(f,n,e,y,p,d);o.push(p),a.push(s)}return new T(o,a,n,e)},selectChild:r.selectChild,selectChildren:r.selectChildren,filter:function(t){"function"!=typeof t&&(t=V(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a=n[i],u=a.length,s=r[i]=[],l=0;l<u;++l)(o=a[l])&&t.call(o,o.__data__,l,a)&&s.push(o);return new T(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,t=e.length,i=Math.min(r,t),o=new Array(r),a=0;a<i;++a)for(var u,s=n[a],l=e[a],c=s.length,h=o[a]=new Array(c),f=0;f<c;++f)(u=s[f]||l[f])&&(h[f]=u);for(;a<r;++a)o[a]=n[a];return new T(o,this._parents,this._name,this._id)},selection:function(){return new $n(this._groups,this._parents)},transition:function(){for(var t=this._name,n=this._id,e=++qn,r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],s=u.length,l=0;l<s;++l)(a=u[l])&&Ht(a,t,e,l,u,{time:(a=v(a,n)).time+a.delay+a.duration,delay:0,duration:a.duration,ease:a.ease});return new T(r,this._parents,t,e)},call:r.call,nodes:r.nodes,node:r.node,size:r.size,empty:r.empty,each:r.each,on:function(t,n){var e,r,i,o,a,u,s=this._id;return arguments.length<2?v(this.node(),s).on.on(t):this.each((e=s,i=n,u=((r=t)+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return!(t=0<=n?t.slice(0,n):t)||"start"===t})?Lt:O,function(){var t=u(this,e),n=t.on;
115
115
  // If this node shared a dispatch with the previous node,
116
116
  // just assign the updated shared dispatch and we’re done!
117
117
  // Otherwise, copy-on-write.
118
- n!==o&&(a=(o=n).copy()).on(r,i),t.on=a}))},attr:function(t,n){var e=i(t),r="transform"===e?Nn:kn;return this.attrTween(t,"function"==typeof n?(e.local?function(r,i,o){var a,u,s;return function(){var t,n,e=o(this);if(null!=e)return(t=this.getAttributeNS(r.space,r.local))===(n=e+"")?null:t===a&&n===u?s:(u=n,s=i(a=t,e));this.removeAttributeNS(r.space,r.local)}}:function(r,i,o){var a,u,s;return function(){var t,n,e=o(this);if(null!=e)return(t=this.getAttribute(r))===(n=e+"")?null:t===a&&n===u?s:(u=n,s=i(a=t,e));this.removeAttribute(r)}})(e,r,En(this,"attr."+t,n)):null==n?(e.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}})(e):(e.local?function(n,e,r){var i,o,a=r+"";return function(){var t=this.getAttributeNS(n.space,n.local);return t===a?null:t===i?o:o=e(i=t,r)}}:function(n,e,r){var i,o,a=r+"";return function(){var t=this.getAttribute(n);return t===a?null:t===i?o:o=e(i=t,r)}})(e,r,n))},attrTween:function(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw new Error;return t=i(t),this.tween(e,(t.local?Sn:Mn)(t,n))},style:function(t,n,e){var r,i,o,a,u,s,l,c,h,f,p,d,y,g,m,w,v,_,b,x,A,N,E,k,S,M="transform"==(t+="")?An:kn;return null==n?this.styleTween(t,(A=t,N=M,function(){var t=$(this,A),n=(this.style.removeProperty(A),$(this,A));return t===n?null:t===E&&n===k?S:S=N(E=t,k=n)})).on("end.style."+t,On(t)):"function"==typeof n?this.styleTween(t,(w=M,v=En(this,"style."+(m=t),n),function(){var t=$(this,m),n=v(this),e=n+"";return null==n&&(this.style.removeProperty(m),e=n=$(this,m)),t===e?null:t===_&&e===b?x:(b=e,x=w(_=t,n))})).each((l=this._id,g="end."+(y="style."+(c=t)),function(){var t=O(this,l),n=t.on,e=null==t.value[y]?d=d||On(c):void 0;
118
+ n!==o&&(a=(o=n).copy()).on(r,i),t.on=a}))},attr:function(t,n){var e=i(t),r="transform"===e?En:kn;return this.attrTween(t,"function"==typeof n?(e.local?function(r,i,o){var a,u,s;return function(){var t,n,e=o(this);if(null!=e)return(t=this.getAttributeNS(r.space,r.local))===(n=e+"")?null:t===a&&n===u?s:(u=n,s=i(a=t,e));this.removeAttributeNS(r.space,r.local)}}:function(r,i,o){var a,u,s;return function(){var t,n,e=o(this);if(null!=e)return(t=this.getAttribute(r))===(n=e+"")?null:t===a&&n===u?s:(u=n,s=i(a=t,e));this.removeAttribute(r)}})(e,r,Nn(this,"attr."+t,n)):null==n?(e.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}})(e):(e.local?function(n,e,r){var i,o,a=r+"";return function(){var t=this.getAttributeNS(n.space,n.local);return t===a?null:t===i?o:o=e(i=t,r)}}:function(n,e,r){var i,o,a=r+"";return function(){var t=this.getAttribute(n);return t===a?null:t===i?o:o=e(i=t,r)}})(e,r,n))},attrTween:function(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw new Error;return t=i(t),this.tween(e,(t.local?Sn:Mn)(t,n))},style:function(t,n,e){var r,i,o,a,u,s,l,c,h,f,p,d,y,g,m,w,v,_,b,x,A,E,N,k,S,M="transform"==(t+="")?An:kn;return null==n?this.styleTween(t,(A=t,E=M,function(){var t=$(this,A),n=(this.style.removeProperty(A),$(this,A));return t===n?null:t===N&&n===k?S:S=E(N=t,k=n)})).on("end.style."+t,On(t)):"function"==typeof n?this.styleTween(t,(w=M,v=Nn(this,"style."+(m=t),n),function(){var t=$(this,m),n=v(this),e=n+"";return null==n&&(this.style.removeProperty(m),e=n=$(this,m)),t===e?null:t===_&&e===b?x:(b=e,x=w(_=t,n))})).each((l=this._id,g="end."+(y="style."+(c=t)),function(){var t=O(this,l),n=t.on,e=null==t.value[y]?d=d||On(c):void 0;
119
119
  // If this node shared a dispatch with the previous node,
120
120
  // just assign the updated shared dispatch and we’re done!
121
121
  // Otherwise, copy-on-write.
122
- n===h&&p===e||(f=(h=n).copy()).on(g,p=e),t.on=f})):this.styleTween(t,(r=t,i=M,s=(o=n)+"",function(){var t=$(this,r);return t===s?null:t===a?u:u=i(a=t,o)}),e).on("end.style."+t,null)},styleTween:function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw new Error;return this.tween(r,Cn(t,n,null==e?"":e))},text:function(t){return this.tween("text","function"==typeof t?(e=En(this,"text",t),function(){var t=e(this);this.textContent=null==t?"":t}):(n=null==t?"":t+"",function(){this.textContent=n}));var n,e},textTween:function(t){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw new Error;return this.tween(n,Tn(t))},remove:function(){return this.on("end.remove",(e=this._id,function(){var t,n=this.parentNode;for(t in this.__transition)if(+t!==e)return;n&&n.removeChild(this)}));var e},tween:function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=v(this.node(),e).tween,o=0,a=i.length;o<a;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==n?function(i,o){var a,u;return function(){var t=O(this,i),n=t.tween;
122
+ n===h&&p===e||(f=(h=n).copy()).on(g,p=e),t.on=f})):this.styleTween(t,(r=t,i=M,s=(o=n)+"",function(){var t=$(this,r);return t===s?null:t===a?u:u=i(a=t,o)}),e).on("end.style."+t,null)},styleTween:function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw new Error;return this.tween(r,Cn(t,n,null==e?"":e))},text:function(t){return this.tween("text","function"==typeof t?(e=Nn(this,"text",t),function(){var t=e(this);this.textContent=null==t?"":t}):(n=null==t?"":t+"",function(){this.textContent=n}));var n,e},textTween:function(t){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw new Error;return this.tween(n,Tn(t))},remove:function(){return this.on("end.remove",(e=this._id,function(){var t,n=this.parentNode;for(t in this.__transition)if(+t!==e)return;n&&n.removeChild(this)}));var e},tween:function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=v(this.node(),e).tween,o=0,a=i.length;o<a;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==n?function(i,o){var a,u;return function(){var t=O(this,i),n=t.tween;
123
123
  // If this node shared tween with the previous node,
124
124
  // just assign the updated shared tween and we’re done!
125
125
  // Otherwise, copy-on-write.
@@ -133,7 +133,7 @@ if(n!==s){l=(s=n).slice();for(var e={name:a,value:u},r=0,i=l.length;r<i;++r)if(l
133
133
  // Otherwise, copy-on-write.
134
134
  n!==i&&((o=(i=n).copy())._.cancel.push(e),o._.interrupt.push(e),o._.end.push(r)),t.on=o}),
135
135
  // The selection was empty, resolve end immediately
136
- 0===s&&t()})},[Symbol.iterator]:r[Symbol.iterator]};var Dn={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};
136
+ 0===s&&t()})},[Symbol.iterator]:r[Symbol.iterator]};var Pn={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};
137
137
  /**
138
138
  * Strips HTML and "un-escapes" escape characters.
139
139
  * @param {String} input
@@ -148,7 +148,7 @@ n!==i&&((o=(i=n).copy())._.cancel.push(e),o._.interrupt.push(e),o._.end.push(r))
148
148
  @function trim
149
149
  @desc Cross-browser implementation of [trim](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim).
150
150
  @param {String} str
151
- */n.prototype.interrupt=function(u){return this.each(function(){var t,n,e,r=this,i=u,o=r.__transition,a=!0;if(o){for(e in i=null==i?null:i+"",o)(t=o[e]).name!==i?a=!1:(n=Dt<t.state&&t.state<Ft,t.state=Ht,t.timer.stop(),t.on.call(n?"interrupt":"cancel",r,r.__data__,t.index,t.group),delete o[e]);a&&delete r.__transition}})},n.prototype.transition=function(t){var n,e;t=t instanceof T?(n=t._id,t._name):(n=++qn,(e=Dn).time=Nt(),null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],s=u.length,l=0;l<s;++l)(a=u[l])&&Rt(a,t,n,l,u,e||((t,n)=>{for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))throw new Error(`transition ${n} not found`);return e})(a,n));return new T(r,this._parents,t,n)};let P="abcdefghiABCDEFGHI_!@#$%^&*()_+1234567890",D={},zn,Fn,Hn,Rn;
151
+ */n.prototype.interrupt=function(u){return this.each(function(){var t,n,e,r=this,i=u,o=r.__transition,a=!0;if(o){for(e in i=null==i?null:i+"",o)(t=o[e]).name!==i?a=!1:(n=Pt<t.state&&t.state<Ft,t.state=Rt,t.timer.stop(),t.on.call(n?"interrupt":"cancel",r,r.__data__,t.index,t.group),delete o[e]);a&&delete r.__transition}})},n.prototype.transition=function(t){var n,e;t=t instanceof T?(n=t._id,t._name):(n=++qn,(e=Pn).time=Et(),null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],s=u.length,l=0;l<s;++l)(a=u[l])&&Ht(a,t,n,l,u,e||((t,n)=>{for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))throw new Error(`transition ${n} not found`);return e})(a,n));return new T(r,this._parents,t,n)};let D="abcdefghiABCDEFGHI_!@#$%^&*()_+1234567890",P={},zn,Fn,Rn,Hn;
152
152
  /**
153
153
  @desc Given an HTMLElement and a "width" or "height" string, this function returns the current calculated size for the DOM element.
154
154
  @private
@@ -171,9 +171,9 @@ n!==i&&((o=(i=n).copy())._.cancel.push(e),o._.interrupt.push(e),o._.end.push(r))
171
171
  // returns if falsey or already Date object
172
172
  if([!1,void 0,NaN].includes(t)||t.constructor===Date)return t;if(t.constructor===Number&&5<(""+t).length&&t%1==0)return new Date(t);let n=""+t;
173
173
  // tests for MM/DD/YYYY and MM-DD-YYYY format
174
- var e,r,i=new RegExp(/^\d{1,2}[./-]\d{1,2}[./-](-*\d{1,4})$/g).exec(n);return i?(0===(i=i[1]).indexOf("-")&&(n=n.replace(i,i.substring(1))),(e=new Date(n)).setFullYear(i),e):(i=new RegExp(/^[A-z]{1,3} [A-z]{1,3} \d{1,2} (-*\d{1,4}) \d{1,2}:\d{1,2}:\d{1,2} [A-z]{1,3}-*\d{1,4} \([A-z]{1,3}\)/g).exec(n))?(0===(e=i[1]).indexOf("-")&&(n=n.replace(e,e.substring(1))),(i=new Date(n)).setFullYear(e),i):(e=new RegExp(/^([qQ]{1}[1-4]{1}|[1-4]{1}[qQ]{1})[\s|-]{0,1}(-*\d{1,4})$/g).exec(n),i=new RegExp(/^(-*\d{1,4})[\s|-]{0,1}([qQ]{1}[1-4]{1}|[1-4]{1}[qQ]{1})$/g).exec(n),e||i?(r=+(e?e[1]:i[2]).toLowerCase().replace("q",""),e=+(e?e[2]:i[1]),(i=new Date(e,3*r-3,1)).setFullYear(e),i):
174
+ var e,r,i=new RegExp(/^\d{1,2}[./-]\d{1,2}[./-](-*\d{1,4})$/g).exec(n);return i?(0===(i=i[1]).indexOf("-")&&(n=n.replace(i,i.substring(1))),(r=new Date(n)).setFullYear(i),r):(i=new RegExp(/^[A-z]{1,3} [A-z]{1,3} \d{1,2} (-*\d{1,4}) \d{1,2}:\d{1,2}:\d{1,2} [A-z]{1,3}-*\d{1,4} \([A-z]{1,3}\)/g).exec(n))?(0===(r=i[1]).indexOf("-")&&(n=n.replace(r,r.substring(1))),(i=new Date(n)).setFullYear(r),i):(r=new RegExp(/^([qQ]{1}[1-4]{1}|[1-4]{1}[qQ]{1})[\s|-]{0,1}(-*\d{1,4})$/g).exec(n),i=new RegExp(/^(-*\d{1,4})[\s|-]{0,1}([qQ]{1}[1-4]{1}|[1-4]{1}[qQ]{1})$/g).exec(n),r||i?(e=+(r?r[1]:i[2]).toLowerCase().replace("q",""),r=+(r?r[2]:i[1]),(i=new Date(r,3*e-3,1)).setFullYear(r),i):(e=new RegExp(/^([-*\d]{1,2})\-(-*\d{1,4})$/g).exec(n),r=new RegExp(/^(-*\d{1,4})\-([-*\d]{1,2})$/g).exec(n),e||r?(i=+(e?e[1]:r[2]),e=+(e?e[2]:r[1]),(r=new Date(e,i-1,1)).setFullYear(e),r):
175
175
  // detects if only passing a year value
176
- n.includes("/")||n.includes(" ")||n.includes("-")&&n.indexOf("-")?new Date(n):((r=new Date(+n,0,1)).setFullYear(t),r));
176
+ n.includes("/")||n.includes(" ")||n.includes("-")&&n.indexOf("-")?new Date(n.replace(/-/g,"/")):((i=new Date(+n,0,1)).setFullYear(t),i)));
177
177
  // tests for full Date object string format
178
178
  },t.elem=
179
179
  /**
@@ -189,7 +189,7 @@ n.includes("/")||n.includes(" ")||n.includes("-")&&n.indexOf("-")?new Date(n):((
189
189
  @param {Object} [params.update = {}] A collection of key/value pairs that map to attributes to be given on update.
190
190
  */function(t,n){
191
191
  // overrides default params
192
- n=Object.assign({},{condition:!0,enter:{},exit:{},duration:0,parent:s("body"),update:{}},n);var e=/\.([^#]+)/g.exec(t),r=/#([^.]+)/g.exec(t),i=Pn().duration(n.duration),o=/^([^.^#]+)/g.exec(t)[1],o=(t=n.parent.selectAll(t.includes(":")?t.split(":")[1]:t).data(n.condition?[null]:[])).enter().append(o).call(u,n.enter),r=(r&&o.attr("id",r[1]),e&&o.attr("class",e[1]),(n.duration?t.exit().transition(i):t.exit()).call(u,n.exit).remove(),o.merge(t));return(n.duration?r.transition(i):r).call(u,n.update),r},t.fontExists=n=>{zn||(zn=q(P,{"font-family":"DejaVuSans","font-size":32}),Fn=q(P,{"font-family":"-apple-system","font-size":32}),Hn=q(P,{"font-family":"monospace","font-size":32}),Rn=q(P,{"font-family":"sans-serif","font-size":32})),n=(n=n instanceof Array?n:n.split(",")).map(t=>t.toString().replace(/^\s+|\s+$/g,""));for(let t=0;t<n.length;t++){var e=n[t];if(D[e]||["-apple-system","monospace","sans-serif","DejaVuSans"].includes(e))return e;if(!1!==D[e]){var r=q(P,{"font-family":e,"font-size":32});if(D[e]=r!==Hn,D[e]&&(D[e]=r!==Rn),Fn&&D[e]&&(D[e]=r!==Fn),zn&&D[e]&&(D[e]=r!==zn),D[e])return e}}return!1},t.getSize=function(t){return[Ln(t,"width"),Ln(t,"height")]}
192
+ n=Object.assign({},{condition:!0,enter:{},exit:{},duration:0,parent:s("body"),update:{}},n);var e=/\.([^#]+)/g.exec(t),r=/#([^.]+)/g.exec(t),i=Dn().duration(n.duration),o=/^([^.^#]+)/g.exec(t)[1],o=(t=n.parent.selectAll(t.includes(":")?t.split(":")[1]:t).data(n.condition?[null]:[])).enter().append(o).call(u,n.enter),r=(r&&o.attr("id",r[1]),e&&o.attr("class",e[1]),(n.duration?t.exit().transition(i):t.exit()).call(u,n.exit).remove(),o.merge(t));return(n.duration?r.transition(i):r).call(u,n.update),r},t.fontExists=n=>{zn||(zn=q(D,{"font-family":"DejaVuSans","font-size":32}),Fn=q(D,{"font-family":"-apple-system","font-size":32}),Rn=q(D,{"font-family":"monospace","font-size":32}),Hn=q(D,{"font-family":"sans-serif","font-size":32})),n=(n=n instanceof Array?n:n.split(",")).map(t=>t.toString().replace(/^\s+|\s+$/g,""));for(let t=0;t<n.length;t++){var e=n[t];if(P[e]||["-apple-system","monospace","sans-serif","DejaVuSans"].includes(e))return e;if(!1!==P[e]){var r=q(D,{"font-family":e,"font-size":32});if(P[e]=r!==Rn,P[e]&&(P[e]=r!==Hn),Fn&&P[e]&&(P[e]=r!==Fn),zn&&P[e]&&(P[e]=r!==zn),P[e])return e}}return!1},t.getSize=function(t){return[Ln(t,"width"),Ln(t,"height")]}
193
193
  /**
194
194
  @module inViewport
195
195
  @desc Returns a *Boolean* denoting whether or not a given DOM element is visible in the current window.
package/umd/d3plus-dom.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*
2
- @d3plus/dom v3.0.0
2
+ @d3plus/dom v3.0.1
3
3
  JavaScript functions for manipulating and analyzing DOM elements.
4
4
  Copyright (c) 2025 D3plus - https://d3plus.org
5
5
  @license MIT
@@ -197,7 +197,7 @@
197
197
  date.setFullYear(year);
198
198
  return date;
199
199
  }
200
- // tests for quarterly formats (ie. "QX YYYY")
200
+ // tests for quarterly formats (ie. "QX YYYY" and "YYYY QX")
201
201
  const quarterPrefix = new RegExp(/^([qQ]{1}[1-4]{1}|[1-4]{1}[qQ]{1})[\s|-]{0,1}(-*\d{1,4})$/g).exec(s);
202
202
  const quarterSuffix = new RegExp(/^(-*\d{1,4})[\s|-]{0,1}([qQ]{1}[1-4]{1}|[1-4]{1}[qQ]{1})$/g).exec(s);
203
203
  if (quarterPrefix || quarterSuffix) {
@@ -207,14 +207,24 @@
207
207
  date.setFullYear(year);
208
208
  return date;
209
209
  }
210
+ // tests for monthly formats (ie. "MM-YYYY" and "YYYY-MM")
211
+ const monthPrefix = new RegExp(/^([-*\d]{1,2})\-(-*\d{1,4})$/g).exec(s);
212
+ const monthSuffix = new RegExp(/^(-*\d{1,4})\-([-*\d]{1,2})$/g).exec(s);
213
+ if (monthPrefix || monthSuffix) {
214
+ const month = +(monthPrefix ? monthPrefix[1] : monthSuffix[2]);
215
+ const year = +(monthPrefix ? monthPrefix[2] : monthSuffix[1]);
216
+ const date = new Date(year, month - 1, 1);
217
+ date.setFullYear(year);
218
+ return date;
219
+ }
210
220
  // detects if only passing a year value
211
221
  if (!s.includes("/") && !s.includes(" ") && (!s.includes("-") || !s.indexOf("-"))) {
212
222
  const date = new Date(+s, 0, 1);
213
223
  date.setFullYear(d);
214
224
  return date;
215
225
  }
216
- // falls back to Date object
217
- return new Date(s);
226
+ // falls back to Date object, replacing hyphens with slashes
227
+ return new Date(s.replace(/-/g, "/"));
218
228
  }
219
229
 
220
230
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"d3plus-dom.js","sources":["../src/isObject.js","../src/assign.js","../src/attrize.js","../src/date.js","../src/elem.js","../src/textWidth.js","../src/fontExists.js","../src/getSize.js","../src/inViewport.js","../src/parseSides.js","../src/prefix.js","../src/rtl.js","../src/stylize.js"],"sourcesContent":["/**\n @function isObject\n @desc Detects if a variable is a javascript Object.\n @param {*} item\n*/\nexport default function(item) {\n return item &&\n typeof item === \"object\" &&\n (typeof window === \"undefined\" || item !== window && item !== window.document && !(item instanceof Element)) &&\n !Array.isArray(item)\n ? true : false;\n}\n","import isObject from \"./isObject.js\";\n\n/**\n @function validObject\n @desc Determines if the object passed is the document or window.\n @param {Object} obj\n @private\n*/\nfunction validObject(obj) {\n if (typeof window === \"undefined\") return true;\n else return obj !== window && obj !== document;\n}\n\n/**\n @function assign\n @desc A deeply recursive version of `Object.assign`.\n @param {...Object} objects\n @example <caption>this</caption>\nassign({id: \"foo\", deep: {group: \"A\"}}, {id: \"bar\", deep: {value: 20}}));\n @example <caption>returns this</caption>\n{id: \"bar\", deep: {group: \"A\", value: 20}}\n*/\nfunction assign(...objects) {\n\n const target = objects[0];\n for (let i = 1; i < objects.length; i++) {\n\n const source = objects[i];\n if (!isObject(source)) continue;\n\n Object.keys(source).forEach(prop => {\n\n const value = source[prop];\n\n if (isObject(value) && validObject(value)) {\n if (Object.prototype.hasOwnProperty.call(target, prop) && isObject(target[prop])) target[prop] = assign({}, target[prop], value);\n else target[prop] = assign({}, value);\n }\n else if (Array.isArray(value)) target[prop] = value.slice();\n else target[prop] = value;\n\n });\n }\n\n return target;\n\n}\n\nexport default assign;\n","/**\n @function attrize\n @desc Applies each key/value in an object as an attr.\n @param {D3selection} elem The D3 element to apply the styles to.\n @param {Object} attrs An object of key/value attr pairs.\n*/\nexport default function(e, a = {}) {\n for (const k in a) if ({}.hasOwnProperty.call(a, k)) e.attr(k, a[k]);\n}\n","/**\n @function date\n @summary Parses numbers and strings to valid Javascript Date objects.\n @description Returns a javascript Date object for a given a Number (representing either a 4-digit year or milliseconds since epoch), a String representing a Quarter (ie. \"Q2 1987\", mapping to the last day in that quarter), or a String that is in [valid dateString format](http://dygraphs.com/date-formats.html). Besides the 4-digit year parsing, this function is useful when needing to parse negative (BC) years, which the vanilla Date object cannot parse.\n @param {Number|String} *date*\n*/\nexport default function(d) {\n \n // returns if falsey or already Date object\n if ([false, undefined, NaN].includes(d) || d.constructor === Date) return d;\n // detects if milliseconds\n else if (d.constructor === Number && `${d}`.length > 5 && d % 1 === 0) return new Date(d);\n\n let s = `${d}`;\n\n // tests for MM/DD/YYYY and MM-DD-YYYY format\n const dayFormat = new RegExp(/^\\d{1,2}[./-]\\d{1,2}[./-](-*\\d{1,4})$/g).exec(s);\n if (dayFormat) {\n const year = dayFormat[1];\n if (year.indexOf(\"-\") === 0) s = s.replace(year, year.substring(1));\n const date = new Date(s);\n date.setFullYear(year);\n return date;\n }\n\n // tests for full Date object string format\n const strFormat = new RegExp(/^[A-z]{1,3} [A-z]{1,3} \\d{1,2} (-*\\d{1,4}) \\d{1,2}:\\d{1,2}:\\d{1,2} [A-z]{1,3}-*\\d{1,4} \\([A-z]{1,3}\\)/g).exec(s);\n if (strFormat) {\n const year = strFormat[1];\n if (year.indexOf(\"-\") === 0) s = s.replace(year, year.substring(1));\n const date = new Date(s);\n date.setFullYear(year);\n return date;\n }\n\n // tests for quarterly formats (ie. \"QX YYYY\")\n const quarterPrefix = new RegExp(/^([qQ]{1}[1-4]{1}|[1-4]{1}[qQ]{1})[\\s|-]{0,1}(-*\\d{1,4})$/g).exec(s);\n const quarterSuffix = new RegExp(/^(-*\\d{1,4})[\\s|-]{0,1}([qQ]{1}[1-4]{1}|[1-4]{1}[qQ]{1})$/g).exec(s);\n if (quarterPrefix || quarterSuffix) {\n const quarter = +(quarterPrefix ? quarterPrefix[1] : quarterSuffix[2]).toLowerCase().replace(\"q\", \"\");\n const year = +(quarterPrefix ? quarterPrefix[2] : quarterSuffix[1]);\n const date = new Date(year, quarter * 3 - 3, 1);\n date.setFullYear(year);\n return date;\n }\n\n // detects if only passing a year value\n if (!s.includes(\"/\") && !s.includes(\" \") && (!s.includes(\"-\") || !s.indexOf(\"-\"))) {\n const date = new Date(+s, 0, 1);\n date.setFullYear(d);\n return date;\n }\n\n // falls back to Date object\n return new Date(s);\n\n}\n","import {select} from \"d3-selection\";\nimport {transition} from \"d3-transition\";\n\nimport {default as attrize} from \"./attrize.js\";\n\n/**\n @function elem\n @desc Manages the enter/update/exit pattern for a single DOM element.\n @param {String} selector A D3 selector, which must include the tagname and a class and/or ID.\n @param {Object} params Additional parameters.\n @param {Boolean} [params.condition = true] Whether or not the element should be rendered (or removed).\n @param {Object} [params.enter = {}] A collection of key/value pairs that map to attributes to be given on enter.\n @param {Object} [params.exit = {}] A collection of key/value pairs that map to attributes to be given on exit.\n @param {D3Selection} [params.parent = d3.select(\"body\")] The parent element for this new element to be appended to.\n @param {Number} [params.duration = 0] The duration for the d3 transition.\n @param {Object} [params.update = {}] A collection of key/value pairs that map to attributes to be given on update.\n*/\nexport default function(selector, p) {\n\n // overrides default params\n p = Object.assign({}, {\n condition: true,\n enter: {},\n exit: {},\n duration: 0,\n parent: select(\"body\"),\n update: {}\n }, p);\n\n const className = (/\\.([^#]+)/g).exec(selector),\n id = (/#([^.]+)/g).exec(selector),\n t = transition().duration(p.duration),\n tag = (/^([^.^#]+)/g).exec(selector)[1];\n\n const elem = p.parent.selectAll(selector.includes(\":\") ? selector.split(\":\")[1] : selector)\n .data(p.condition ? [null] : []);\n\n const enter = elem.enter().append(tag).call(attrize, p.enter);\n\n if (id) enter.attr(\"id\", id[1]);\n if (className) enter.attr(\"class\", className[1]);\n\n if (p.duration) elem.exit().transition(t).call(attrize, p.exit).remove();\n else elem.exit().call(attrize, p.exit).remove();\n\n const update = enter.merge(elem);\n if (p.duration) update.transition(t).call(attrize, p.update);\n else update.call(attrize, p.update);\n\n return update;\n\n}\n","/**\n * Strips HTML and \"un-escapes\" escape characters.\n * @param {String} input\n */\nfunction htmlDecode(input) {\n if (input.replace(/\\s+/g, \"\") === \"\") return input;\n const doc = new DOMParser().parseFromString(input.replace(/<[^>]+>/g, \"\"), \"text/html\");\n return doc.documentElement ? doc.documentElement.textContent : input;\n}\n\n\n/**\n @function textWidth\n @desc Given a text string, returns the predicted pixel width of the string when placed into DOM.\n @param {String|Array} text Can be either a single string or an array of strings to analyze.\n @param {Object} [style] An object of CSS font styles to apply. Accepts any of the valid [CSS font property](http://www.w3schools.com/cssref/pr_font_font.asp) values.\n*/\nexport default function(text, style) {\n\n style = Object.assign({\n \"font-size\": 10,\n \"font-family\": \"sans-serif\",\n \"font-style\": \"normal\",\n \"font-weight\": 400,\n \"font-variant\": \"normal\"\n }, style);\n\n const context = document.createElement(\"canvas\").getContext(\"2d\");\n\n const font = [];\n font.push(style[\"font-style\"]);\n font.push(style[\"font-variant\"]);\n font.push(style[\"font-weight\"]);\n font.push(typeof style[\"font-size\"] === \"string\" ? style[\"font-size\"] : `${style[\"font-size\"]}px`);\n font.push(style[\"font-family\"]);\n\n context.font = font.join(\" \");\n\n if (text instanceof Array) return text.map(t => context.measureText(htmlDecode(t)).width);\n return context.measureText(htmlDecode(text)).width;\n\n}\n","import {default as textWidth} from \"./textWidth.js\";\nimport {trim} from \"@d3plus/text\";\n\nconst alpha = \"abcdefghiABCDEFGHI_!@#$%^&*()_+1234567890\",\n checked = {},\n height = 32;\n\nlet dejavu, macos, monospace, proportional;\n\n/**\n @function fontExists\n @desc Given either a single font-family or a list of fonts, returns the name of the first font that can be rendered, or `false` if none are installed on the user's machine.\n @param {String|Array} font Can be either a valid CSS font-family string (single or comma-separated names) or an Array of string names.\n*/\nconst fontExists = font => {\n\n if (!dejavu) {\n dejavu = textWidth(alpha, {\"font-family\": \"DejaVuSans\", \"font-size\": height});\n macos = textWidth(alpha, {\"font-family\": \"-apple-system\", \"font-size\": height});\n monospace = textWidth(alpha, {\"font-family\": \"monospace\", \"font-size\": height});\n proportional = textWidth(alpha, {\"font-family\": \"sans-serif\", \"font-size\": height});\n }\n\n if (!(font instanceof Array)) font = font.split(\",\");\n font = font.map(f => trim(f));\n\n for (let i = 0; i < font.length; i++) {\n const fam = font[i];\n if (checked[fam] || [\"-apple-system\", \"monospace\", \"sans-serif\", \"DejaVuSans\"].includes(fam)) return fam;\n else if (checked[fam] === false) continue;\n const width = textWidth(alpha, {\"font-family\": fam, \"font-size\": height});\n checked[fam] = width !== monospace;\n if (checked[fam]) checked[fam] = width !== proportional;\n if (macos && checked[fam]) checked[fam] = width !== macos;\n if (dejavu && checked[fam]) checked[fam] = width !== dejavu;\n if (checked[fam]) return fam;\n }\n\n return false;\n\n};\n\n\nexport default fontExists;\n","import {select} from \"d3-selection\";\n\n/**\n @desc Given an HTMLElement and a \"width\" or \"height\" string, this function returns the current calculated size for the DOM element.\n @private\n*/\nfunction _elementSize(element, s) {\n\n if (!element) return undefined;\n\n if (element.tagName === undefined || [\"BODY\", \"HTML\"].indexOf(element.tagName) >= 0) {\n\n let val = window[`inner${s.charAt(0).toUpperCase() + s.slice(1)}`];\n const elem = select(element);\n \n if (s === \"width\") {\n val -= parseFloat(elem.style(\"margin-left\"), 10);\n val -= parseFloat(elem.style(\"margin-right\"), 10);\n val -= parseFloat(elem.style(\"padding-left\"), 10);\n val -= parseFloat(elem.style(\"padding-right\"), 10);\n }\n else {\n val -= parseFloat(elem.style(\"margin-top\"), 10);\n val -= parseFloat(elem.style(\"margin-bottom\"), 10);\n val -= parseFloat(elem.style(\"padding-top\"), 10);\n val -= parseFloat(elem.style(\"padding-bottom\"), 10);\n }\n\n return val;\n\n }\n else {\n let val = parseFloat(select(element).style(s), 10);\n if (typeof val === \"number\" && val > 0) {\n if (s === \"height\") {\n val -= parseFloat(select(element).style(\"padding-top\"), 10);\n val -= parseFloat(select(element).style(\"padding-bottom\"), 10);\n }\n return val;\n }\n else return _elementSize(element.parentNode, s);\n\n }\n}\n\n/**\n @function getSize\n @desc Finds the available width and height for a specified HTMLElement, traversing it's parents until it finds something with constrained dimensions. Falls back to the inner dimensions of the browser window if none is found.\n @param {HTMLElement} elem The HTMLElement to find dimensions for.\n @private\n*/\nexport default function(elem) {\n return [_elementSize(elem, \"width\"), _elementSize(elem, \"height\")];\n}\n","/**\n @module inViewport\n @desc Returns a *Boolean* denoting whether or not a given DOM element is visible in the current window.\n @param {DOMElement} elem The DOM element to analyze.\n @param {Number} [buffer = 0] A pixel offset from the edge of the top and bottom of the screen. If a positive value, the element will be deemed visible when it is that many pixels away from entering the viewport. If negative, the element will have to enter the viewport by that many pixels before being deemed visible.\n @private\n*/\nexport default function(elem, buffer = 0) {\n\n const pageX = window.pageXOffset !== undefined ? window.pageXOffset\n : (document.documentElement || document.body.parentNode || document.body).scrollLeft;\n\n const pageY = window.pageYOffset !== undefined ? window.pageYOffset\n : (document.documentElement || document.body.parentNode || document.body).scrollTop;\n\n const bounds = elem.getBoundingClientRect();\n const height = bounds.height,\n left = bounds.left + pageX,\n top = bounds.top + pageY,\n width = bounds.width;\n\n return pageY + window.innerHeight > top + buffer && pageY + buffer < top + height &&\n pageX + window.innerWidth > left + buffer && pageX + buffer < left + width;\n\n}\n","/**\n @function parseSides\n @desc Converts a string of directional CSS shorthand values into an object with the values expanded.\n @param {String|Number} sides The CSS shorthand string to expand.\n */\nexport default function(sides) {\n let values;\n if (typeof sides === \"number\") values = [sides];\n else values = sides.split(/\\s+/);\n\n if (values.length === 1) values = [values[0], values[0], values[0], values[0]];\n else if (values.length === 2) values = values.concat(values);\n else if (values.length === 3) values.push(values[1]);\n\n return [\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n ].reduce((acc, direction, i) => {\n const value = parseFloat(values[i]);\n acc[direction] = value || 0;\n return acc;\n }, {});\n}\n","/**\n @function prefix\n @desc Returns the appropriate CSS vendor prefix, given the current browser.\n*/\nexport default function() {\n if (\"-webkit-transform\" in document.body.style) return \"-webkit-\";\n else if (\"-moz-transform\" in document.body.style) return \"-moz-\";\n else if (\"-ms-transform\" in document.body.style) return \"-ms-\";\n else if (\"-o-transform\" in document.body.style) return \"-o-\";\n else return \"\";\n}\n","import {select} from \"d3-selection\";\n\n/**\n @function rtl\n @desc Returns `true` if the HTML or body element has either the \"dir\" HTML attribute or the \"direction\" CSS property set to \"rtl\".\n*/\nexport default () =>\n select(\"html\").attr(\"dir\") === \"rtl\" ||\n select(\"body\").attr(\"dir\") === \"rtl\" ||\n select(\"html\").style(\"direction\") === \"rtl\" ||\n select(\"body\").style(\"direction\") === \"rtl\";\n","/**\n @function stylize\n @desc Applies each key/value in an object as a style.\n @param {D3selection} elem The D3 element to apply the styles to.\n @param {Object} styles An object of key/value style pairs.\n*/\nexport default function(e, s = {}) {\n for (const k in s) if ({}.hasOwnProperty.call(s, k)) e.style(k, s[k]);\n}\n"],"names":["item","window","document","Element","Array","isArray","validObject","obj","assign","objects","target","i","length","source","isObject","Object","keys","forEach","prop","value","prototype","hasOwnProperty","call","slice","e","a","k","attr","d","undefined","NaN","includes","constructor","Date","Number","s","dayFormat","RegExp","exec","year","indexOf","replace","substring","date","setFullYear","strFormat","quarterPrefix","quarterSuffix","quarter","toLowerCase","selector","p","condition","enter","exit","duration","parent","select","update","className","id","t","transition","tag","elem","selectAll","split","data","append","attrize","remove","merge","htmlDecode","input","doc","DOMParser","parseFromString","documentElement","textContent","text","style","context","createElement","getContext","font","push","join","map","measureText","width","alpha","checked","height","dejavu","macos","monospace","proportional","fontExists","textWidth","f","trim","fam","_elementSize","element","tagName","val","charAt","toUpperCase","parseFloat","parentNode","buffer","pageX","pageXOffset","body","scrollLeft","pageY","pageYOffset","scrollTop","bounds","getBoundingClientRect","left","top","innerHeight","innerWidth","sides","values","concat","reduce","acc","direction"],"mappings":"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"}
1
+ {"version":3,"file":"d3plus-dom.js","sources":["../src/isObject.js","../src/assign.js","../src/attrize.js","../src/date.js","../src/elem.js","../src/textWidth.js","../src/fontExists.js","../src/getSize.js","../src/inViewport.js","../src/parseSides.js","../src/prefix.js","../src/rtl.js","../src/stylize.js"],"sourcesContent":["/**\n @function isObject\n @desc Detects if a variable is a javascript Object.\n @param {*} item\n*/\nexport default function(item) {\n return item &&\n typeof item === \"object\" &&\n (typeof window === \"undefined\" || item !== window && item !== window.document && !(item instanceof Element)) &&\n !Array.isArray(item)\n ? true : false;\n}\n","import isObject from \"./isObject.js\";\n\n/**\n @function validObject\n @desc Determines if the object passed is the document or window.\n @param {Object} obj\n @private\n*/\nfunction validObject(obj) {\n if (typeof window === \"undefined\") return true;\n else return obj !== window && obj !== document;\n}\n\n/**\n @function assign\n @desc A deeply recursive version of `Object.assign`.\n @param {...Object} objects\n @example <caption>this</caption>\nassign({id: \"foo\", deep: {group: \"A\"}}, {id: \"bar\", deep: {value: 20}}));\n @example <caption>returns this</caption>\n{id: \"bar\", deep: {group: \"A\", value: 20}}\n*/\nfunction assign(...objects) {\n\n const target = objects[0];\n for (let i = 1; i < objects.length; i++) {\n\n const source = objects[i];\n if (!isObject(source)) continue;\n\n Object.keys(source).forEach(prop => {\n\n const value = source[prop];\n\n if (isObject(value) && validObject(value)) {\n if (Object.prototype.hasOwnProperty.call(target, prop) && isObject(target[prop])) target[prop] = assign({}, target[prop], value);\n else target[prop] = assign({}, value);\n }\n else if (Array.isArray(value)) target[prop] = value.slice();\n else target[prop] = value;\n\n });\n }\n\n return target;\n\n}\n\nexport default assign;\n","/**\n @function attrize\n @desc Applies each key/value in an object as an attr.\n @param {D3selection} elem The D3 element to apply the styles to.\n @param {Object} attrs An object of key/value attr pairs.\n*/\nexport default function(e, a = {}) {\n for (const k in a) if ({}.hasOwnProperty.call(a, k)) e.attr(k, a[k]);\n}\n","/**\n @function date\n @summary Parses numbers and strings to valid Javascript Date objects.\n @description Returns a javascript Date object for a given a Number (representing either a 4-digit year or milliseconds since epoch), a String representing a Quarter (ie. \"Q2 1987\", mapping to the last day in that quarter), or a String that is in [valid dateString format](http://dygraphs.com/date-formats.html). Besides the 4-digit year parsing, this function is useful when needing to parse negative (BC) years, which the vanilla Date object cannot parse.\n @param {Number|String} *date*\n*/\nexport default function(d) {\n \n // returns if falsey or already Date object\n if ([false, undefined, NaN].includes(d) || d.constructor === Date) return d;\n // detects if milliseconds\n else if (d.constructor === Number && `${d}`.length > 5 && d % 1 === 0) return new Date(d);\n\n let s = `${d}`;\n\n // tests for MM/DD/YYYY and MM-DD-YYYY format\n const dayFormat = new RegExp(/^\\d{1,2}[./-]\\d{1,2}[./-](-*\\d{1,4})$/g).exec(s);\n if (dayFormat) {\n const year = dayFormat[1];\n if (year.indexOf(\"-\") === 0) s = s.replace(year, year.substring(1));\n const date = new Date(s);\n date.setFullYear(year);\n return date;\n }\n\n // tests for full Date object string format\n const strFormat = new RegExp(/^[A-z]{1,3} [A-z]{1,3} \\d{1,2} (-*\\d{1,4}) \\d{1,2}:\\d{1,2}:\\d{1,2} [A-z]{1,3}-*\\d{1,4} \\([A-z]{1,3}\\)/g).exec(s);\n if (strFormat) {\n const year = strFormat[1];\n if (year.indexOf(\"-\") === 0) s = s.replace(year, year.substring(1));\n const date = new Date(s);\n date.setFullYear(year);\n return date;\n }\n\n // tests for quarterly formats (ie. \"QX YYYY\" and \"YYYY QX\")\n const quarterPrefix = new RegExp(/^([qQ]{1}[1-4]{1}|[1-4]{1}[qQ]{1})[\\s|-]{0,1}(-*\\d{1,4})$/g).exec(s);\n const quarterSuffix = new RegExp(/^(-*\\d{1,4})[\\s|-]{0,1}([qQ]{1}[1-4]{1}|[1-4]{1}[qQ]{1})$/g).exec(s);\n if (quarterPrefix || quarterSuffix) {\n const quarter = +(quarterPrefix ? quarterPrefix[1] : quarterSuffix[2]).toLowerCase().replace(\"q\", \"\");\n const year = +(quarterPrefix ? quarterPrefix[2] : quarterSuffix[1]);\n const date = new Date(year, quarter * 3 - 3, 1);\n date.setFullYear(year);\n return date;\n }\n\n // tests for monthly formats (ie. \"MM-YYYY\" and \"YYYY-MM\")\n const monthPrefix = new RegExp(/^([-*\\d]{1,2})\\-(-*\\d{1,4})$/g).exec(s);\n const monthSuffix = new RegExp(/^(-*\\d{1,4})\\-([-*\\d]{1,2})$/g).exec(s);\n if (monthPrefix || monthSuffix) {\n const month = +(monthPrefix ? monthPrefix[1] : monthSuffix[2]);\n const year = +(monthPrefix ? monthPrefix[2] : monthSuffix[1]);\n const date = new Date(year, month - 1, 1);\n date.setFullYear(year);\n return date;\n }\n\n // detects if only passing a year value\n if (!s.includes(\"/\") && !s.includes(\" \") && (!s.includes(\"-\") || !s.indexOf(\"-\"))) {\n const date = new Date(+s, 0, 1);\n date.setFullYear(d);\n return date;\n }\n\n // falls back to Date object, replacing hyphens with slashes\n return new Date(s.replace(/-/g, \"/\"));\n\n}\n","import {select} from \"d3-selection\";\nimport {transition} from \"d3-transition\";\n\nimport {default as attrize} from \"./attrize.js\";\n\n/**\n @function elem\n @desc Manages the enter/update/exit pattern for a single DOM element.\n @param {String} selector A D3 selector, which must include the tagname and a class and/or ID.\n @param {Object} params Additional parameters.\n @param {Boolean} [params.condition = true] Whether or not the element should be rendered (or removed).\n @param {Object} [params.enter = {}] A collection of key/value pairs that map to attributes to be given on enter.\n @param {Object} [params.exit = {}] A collection of key/value pairs that map to attributes to be given on exit.\n @param {D3Selection} [params.parent = d3.select(\"body\")] The parent element for this new element to be appended to.\n @param {Number} [params.duration = 0] The duration for the d3 transition.\n @param {Object} [params.update = {}] A collection of key/value pairs that map to attributes to be given on update.\n*/\nexport default function(selector, p) {\n\n // overrides default params\n p = Object.assign({}, {\n condition: true,\n enter: {},\n exit: {},\n duration: 0,\n parent: select(\"body\"),\n update: {}\n }, p);\n\n const className = (/\\.([^#]+)/g).exec(selector),\n id = (/#([^.]+)/g).exec(selector),\n t = transition().duration(p.duration),\n tag = (/^([^.^#]+)/g).exec(selector)[1];\n\n const elem = p.parent.selectAll(selector.includes(\":\") ? selector.split(\":\")[1] : selector)\n .data(p.condition ? [null] : []);\n\n const enter = elem.enter().append(tag).call(attrize, p.enter);\n\n if (id) enter.attr(\"id\", id[1]);\n if (className) enter.attr(\"class\", className[1]);\n\n if (p.duration) elem.exit().transition(t).call(attrize, p.exit).remove();\n else elem.exit().call(attrize, p.exit).remove();\n\n const update = enter.merge(elem);\n if (p.duration) update.transition(t).call(attrize, p.update);\n else update.call(attrize, p.update);\n\n return update;\n\n}\n","/**\n * Strips HTML and \"un-escapes\" escape characters.\n * @param {String} input\n */\nfunction htmlDecode(input) {\n if (input.replace(/\\s+/g, \"\") === \"\") return input;\n const doc = new DOMParser().parseFromString(input.replace(/<[^>]+>/g, \"\"), \"text/html\");\n return doc.documentElement ? doc.documentElement.textContent : input;\n}\n\n\n/**\n @function textWidth\n @desc Given a text string, returns the predicted pixel width of the string when placed into DOM.\n @param {String|Array} text Can be either a single string or an array of strings to analyze.\n @param {Object} [style] An object of CSS font styles to apply. Accepts any of the valid [CSS font property](http://www.w3schools.com/cssref/pr_font_font.asp) values.\n*/\nexport default function(text, style) {\n\n style = Object.assign({\n \"font-size\": 10,\n \"font-family\": \"sans-serif\",\n \"font-style\": \"normal\",\n \"font-weight\": 400,\n \"font-variant\": \"normal\"\n }, style);\n\n const context = document.createElement(\"canvas\").getContext(\"2d\");\n\n const font = [];\n font.push(style[\"font-style\"]);\n font.push(style[\"font-variant\"]);\n font.push(style[\"font-weight\"]);\n font.push(typeof style[\"font-size\"] === \"string\" ? style[\"font-size\"] : `${style[\"font-size\"]}px`);\n font.push(style[\"font-family\"]);\n\n context.font = font.join(\" \");\n\n if (text instanceof Array) return text.map(t => context.measureText(htmlDecode(t)).width);\n return context.measureText(htmlDecode(text)).width;\n\n}\n","import {default as textWidth} from \"./textWidth.js\";\nimport {trim} from \"@d3plus/text\";\n\nconst alpha = \"abcdefghiABCDEFGHI_!@#$%^&*()_+1234567890\",\n checked = {},\n height = 32;\n\nlet dejavu, macos, monospace, proportional;\n\n/**\n @function fontExists\n @desc Given either a single font-family or a list of fonts, returns the name of the first font that can be rendered, or `false` if none are installed on the user's machine.\n @param {String|Array} font Can be either a valid CSS font-family string (single or comma-separated names) or an Array of string names.\n*/\nconst fontExists = font => {\n\n if (!dejavu) {\n dejavu = textWidth(alpha, {\"font-family\": \"DejaVuSans\", \"font-size\": height});\n macos = textWidth(alpha, {\"font-family\": \"-apple-system\", \"font-size\": height});\n monospace = textWidth(alpha, {\"font-family\": \"monospace\", \"font-size\": height});\n proportional = textWidth(alpha, {\"font-family\": \"sans-serif\", \"font-size\": height});\n }\n\n if (!(font instanceof Array)) font = font.split(\",\");\n font = font.map(f => trim(f));\n\n for (let i = 0; i < font.length; i++) {\n const fam = font[i];\n if (checked[fam] || [\"-apple-system\", \"monospace\", \"sans-serif\", \"DejaVuSans\"].includes(fam)) return fam;\n else if (checked[fam] === false) continue;\n const width = textWidth(alpha, {\"font-family\": fam, \"font-size\": height});\n checked[fam] = width !== monospace;\n if (checked[fam]) checked[fam] = width !== proportional;\n if (macos && checked[fam]) checked[fam] = width !== macos;\n if (dejavu && checked[fam]) checked[fam] = width !== dejavu;\n if (checked[fam]) return fam;\n }\n\n return false;\n\n};\n\n\nexport default fontExists;\n","import {select} from \"d3-selection\";\n\n/**\n @desc Given an HTMLElement and a \"width\" or \"height\" string, this function returns the current calculated size for the DOM element.\n @private\n*/\nfunction _elementSize(element, s) {\n\n if (!element) return undefined;\n\n if (element.tagName === undefined || [\"BODY\", \"HTML\"].indexOf(element.tagName) >= 0) {\n\n let val = window[`inner${s.charAt(0).toUpperCase() + s.slice(1)}`];\n const elem = select(element);\n \n if (s === \"width\") {\n val -= parseFloat(elem.style(\"margin-left\"), 10);\n val -= parseFloat(elem.style(\"margin-right\"), 10);\n val -= parseFloat(elem.style(\"padding-left\"), 10);\n val -= parseFloat(elem.style(\"padding-right\"), 10);\n }\n else {\n val -= parseFloat(elem.style(\"margin-top\"), 10);\n val -= parseFloat(elem.style(\"margin-bottom\"), 10);\n val -= parseFloat(elem.style(\"padding-top\"), 10);\n val -= parseFloat(elem.style(\"padding-bottom\"), 10);\n }\n\n return val;\n\n }\n else {\n let val = parseFloat(select(element).style(s), 10);\n if (typeof val === \"number\" && val > 0) {\n if (s === \"height\") {\n val -= parseFloat(select(element).style(\"padding-top\"), 10);\n val -= parseFloat(select(element).style(\"padding-bottom\"), 10);\n }\n return val;\n }\n else return _elementSize(element.parentNode, s);\n\n }\n}\n\n/**\n @function getSize\n @desc Finds the available width and height for a specified HTMLElement, traversing it's parents until it finds something with constrained dimensions. Falls back to the inner dimensions of the browser window if none is found.\n @param {HTMLElement} elem The HTMLElement to find dimensions for.\n @private\n*/\nexport default function(elem) {\n return [_elementSize(elem, \"width\"), _elementSize(elem, \"height\")];\n}\n","/**\n @module inViewport\n @desc Returns a *Boolean* denoting whether or not a given DOM element is visible in the current window.\n @param {DOMElement} elem The DOM element to analyze.\n @param {Number} [buffer = 0] A pixel offset from the edge of the top and bottom of the screen. If a positive value, the element will be deemed visible when it is that many pixels away from entering the viewport. If negative, the element will have to enter the viewport by that many pixels before being deemed visible.\n @private\n*/\nexport default function(elem, buffer = 0) {\n\n const pageX = window.pageXOffset !== undefined ? window.pageXOffset\n : (document.documentElement || document.body.parentNode || document.body).scrollLeft;\n\n const pageY = window.pageYOffset !== undefined ? window.pageYOffset\n : (document.documentElement || document.body.parentNode || document.body).scrollTop;\n\n const bounds = elem.getBoundingClientRect();\n const height = bounds.height,\n left = bounds.left + pageX,\n top = bounds.top + pageY,\n width = bounds.width;\n\n return pageY + window.innerHeight > top + buffer && pageY + buffer < top + height &&\n pageX + window.innerWidth > left + buffer && pageX + buffer < left + width;\n\n}\n","/**\n @function parseSides\n @desc Converts a string of directional CSS shorthand values into an object with the values expanded.\n @param {String|Number} sides The CSS shorthand string to expand.\n */\nexport default function(sides) {\n let values;\n if (typeof sides === \"number\") values = [sides];\n else values = sides.split(/\\s+/);\n\n if (values.length === 1) values = [values[0], values[0], values[0], values[0]];\n else if (values.length === 2) values = values.concat(values);\n else if (values.length === 3) values.push(values[1]);\n\n return [\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n ].reduce((acc, direction, i) => {\n const value = parseFloat(values[i]);\n acc[direction] = value || 0;\n return acc;\n }, {});\n}\n","/**\n @function prefix\n @desc Returns the appropriate CSS vendor prefix, given the current browser.\n*/\nexport default function() {\n if (\"-webkit-transform\" in document.body.style) return \"-webkit-\";\n else if (\"-moz-transform\" in document.body.style) return \"-moz-\";\n else if (\"-ms-transform\" in document.body.style) return \"-ms-\";\n else if (\"-o-transform\" in document.body.style) return \"-o-\";\n else return \"\";\n}\n","import {select} from \"d3-selection\";\n\n/**\n @function rtl\n @desc Returns `true` if the HTML or body element has either the \"dir\" HTML attribute or the \"direction\" CSS property set to \"rtl\".\n*/\nexport default () =>\n select(\"html\").attr(\"dir\") === \"rtl\" ||\n select(\"body\").attr(\"dir\") === \"rtl\" ||\n select(\"html\").style(\"direction\") === \"rtl\" ||\n select(\"body\").style(\"direction\") === \"rtl\";\n","/**\n @function stylize\n @desc Applies each key/value in an object as a style.\n @param {D3selection} elem The D3 element to apply the styles to.\n @param {Object} styles An object of key/value style pairs.\n*/\nexport default function(e, s = {}) {\n for (const k in s) if ({}.hasOwnProperty.call(s, k)) e.style(k, s[k]);\n}\n"],"names":["item","window","document","Element","Array","isArray","validObject","obj","assign","objects","target","i","length","source","isObject","Object","keys","forEach","prop","value","prototype","hasOwnProperty","call","slice","e","a","k","attr","d","undefined","NaN","includes","constructor","Date","Number","s","dayFormat","RegExp","exec","year","indexOf","replace","substring","date","setFullYear","strFormat","quarterPrefix","quarterSuffix","quarter","toLowerCase","monthPrefix","monthSuffix","month","selector","p","condition","enter","exit","duration","parent","select","update","className","id","t","transition","tag","elem","selectAll","split","data","append","attrize","remove","merge","htmlDecode","input","doc","DOMParser","parseFromString","documentElement","textContent","text","style","context","createElement","getContext","font","push","join","map","measureText","width","alpha","checked","height","dejavu","macos","monospace","proportional","fontExists","textWidth","f","trim","fam","_elementSize","element","tagName","val","charAt","toUpperCase","parseFloat","parentNode","buffer","pageX","pageXOffset","body","scrollLeft","pageY","pageYOffset","scrollTop","bounds","getBoundingClientRect","left","top","innerHeight","innerWidth","sides","values","concat","reduce","acc","direction"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /*
2
- @d3plus/dom v3.0.0
2
+ @d3plus/dom v3.0.1
3
3
  JavaScript functions for manipulating and analyzing DOM elements.
4
4
  Copyright (c) 2025 D3plus - https://d3plus.org
5
5
  @license MIT
@@ -60,9 +60,9 @@
60
60
  // returns if falsey or already Date object
61
61
  if([!1,void 0,NaN].includes(e)||e.constructor===Date)return e;if(e.constructor===Number&&5<(""+e).length&&e%1==0)return new Date(e);let t=""+e;
62
62
  // tests for MM/DD/YYYY and MM-DD-YYYY format
63
- var n,r,o=new RegExp(/^\d{1,2}[./-]\d{1,2}[./-](-*\d{1,4})$/g).exec(t);return o?(0===(o=o[1]).indexOf("-")&&(t=t.replace(o,o.substring(1))),(n=new Date(t)).setFullYear(o),n):(o=new RegExp(/^[A-z]{1,3} [A-z]{1,3} \d{1,2} (-*\d{1,4}) \d{1,2}:\d{1,2}:\d{1,2} [A-z]{1,3}-*\d{1,4} \([A-z]{1,3}\)/g).exec(t))?(0===(n=o[1]).indexOf("-")&&(t=t.replace(n,n.substring(1))),(o=new Date(t)).setFullYear(n),o):(n=new RegExp(/^([qQ]{1}[1-4]{1}|[1-4]{1}[qQ]{1})[\s|-]{0,1}(-*\d{1,4})$/g).exec(t),o=new RegExp(/^(-*\d{1,4})[\s|-]{0,1}([qQ]{1}[1-4]{1}|[1-4]{1}[qQ]{1})$/g).exec(t),n||o?(r=+(n?n[1]:o[2]).toLowerCase().replace("q",""),n=+(n?n[2]:o[1]),(o=new Date(n,3*r-3,1)).setFullYear(n),o):
63
+ var n,r,o=new RegExp(/^\d{1,2}[./-]\d{1,2}[./-](-*\d{1,4})$/g).exec(t);return o?(0===(o=o[1]).indexOf("-")&&(t=t.replace(o,o.substring(1))),(r=new Date(t)).setFullYear(o),r):(o=new RegExp(/^[A-z]{1,3} [A-z]{1,3} \d{1,2} (-*\d{1,4}) \d{1,2}:\d{1,2}:\d{1,2} [A-z]{1,3}-*\d{1,4} \([A-z]{1,3}\)/g).exec(t))?(0===(r=o[1]).indexOf("-")&&(t=t.replace(r,r.substring(1))),(o=new Date(t)).setFullYear(r),o):(r=new RegExp(/^([qQ]{1}[1-4]{1}|[1-4]{1}[qQ]{1})[\s|-]{0,1}(-*\d{1,4})$/g).exec(t),o=new RegExp(/^(-*\d{1,4})[\s|-]{0,1}([qQ]{1}[1-4]{1}|[1-4]{1}[qQ]{1})$/g).exec(t),r||o?(n=+(r?r[1]:o[2]).toLowerCase().replace("q",""),r=+(r?r[2]:o[1]),(o=new Date(r,3*n-3,1)).setFullYear(r),o):(n=new RegExp(/^([-*\d]{1,2})\-(-*\d{1,4})$/g).exec(t),r=new RegExp(/^(-*\d{1,4})\-([-*\d]{1,2})$/g).exec(t),n||r?(o=+(n?n[1]:r[2]),n=+(n?n[2]:r[1]),(r=new Date(n,o-1,1)).setFullYear(n),r):
64
64
  // detects if only passing a year value
65
- t.includes("/")||t.includes(" ")||t.includes("-")&&t.indexOf("-")?new Date(t):((r=new Date(+t,0,1)).setFullYear(e),r));
65
+ t.includes("/")||t.includes(" ")||t.includes("-")&&t.indexOf("-")?new Date(t.replace(/-/g,"/")):((o=new Date(+t,0,1)).setFullYear(e),o)));
66
66
  // tests for full Date object string format
67
67
  }
68
68
  /**