!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("d3-array")):"function"==typeof define&&define.amd?define(["exports","d3-array"],r):r(e.d3=e.d3||{},e.d3)}(this,function(e,r){"use strict";function n(e,n,o){var a=e.layout,i=[],f=0;Object.keys(e.hexes).forEach(function(r){e.hexes[r].key=r,i.push(e.hexes[r])});var h=r.max(i,function(e){return+e.q}),d=r.min(i,function(e){return+e.q}),x=r.max(i,function(e){return+e.r}),y=r.min(i,function(e){return+e.r}),p=h-d+1,q=x-y+1;f="odd-r"===a||"even-r"===a?r.min([n/((p+.5)*Math.sqrt(3)),o/(1.5*(q+1/3))]):r.min([o/((q+.5)*Math.sqrt(3)),n/(1.5*(p+1/3))]);var v=f*Math.sqrt(3),m=c(a,v,f),b=s(m);return i.forEach(function(e){e.qc=e.q-d,e.rc=x-e.r,e.x=t(e,a,v,f),e.y=u(e,a,v,f),e.vertices=m,e.points=b}),i}function t(e,r,n,t){var u=0,c=0;switch(r){case"odd-r":c=e.rc%2==1?n:n/2,u=e.qc*n+c;break;case"even-r":c=e.rc%2==0?n:n/2,u=e.qc*n+c;break;case"odd-q":case"even-q":u=e.qc*t*1.5+t}return u}function u(e,r,n,t){var u=0,c=0;switch(r){case"odd-r":case"even-r":u=e.rc*t*1.5+t;break;case"odd-q":c=e.qc%2==1?n:n/2,u=e.rc*n+c;break;case"even-q":c=e.qc%2==0?n:n/2,u=e.rc*n+c}return u}function c(e,r,n){var t=[];switch(e){case"odd-r":case"even-r":t.push({x:0,y:0-n}),t.push({x:0+.5*r,y:0-.5*n}),t.push({x:0+.5*r,y:0+.5*n}),t.push({x:0,y:0+n}),t.push({x:0-.5*r,y:0+.5*n}),t.push({x:0-.5*r,y:0-.5*n});break;case"odd-q":case"even-q":t.push({x:0-n,y:0}),t.push({x:0-.5*n,y:0-.5*r}),t.push({x:0+.5*n,y:0-.5*r}),t.push({x:0+n,y:0}),t.push({x:0+.5*n,y:0+.5*r}),t.push({x:0-.5*n,y:0+.5*r})}return t}function s(e){var r="";return e.forEach(function(e){r+=e.x+","+e.y+" "}),r.substring(0,r.length-1)}function o(e){var n={};n.layout=e.layout,n.hexes={};var t=[];Object.keys(e.hexes).forEach(function(r){t.push(e.hexes[r])});var u,c,s,o=r.max(t,function(e){return+e.q}),a=r.min(t,function(e){return+e.q}),i=r.max(t,function(e){return+e.r}),f=r.min(t,function(e){return+e.r});for(u=a;u<=o;u++)for(c=f;c<=i;c++)s="Q"+u+"R"+c,n.hexes[s]={q:u,r:c};return n}e.renderHexJSON=n,e.getGridForHexJSON=o,Object.defineProperty(e,"__esModule",{value:!0})});