{"version":3,"file":"daisho.mjs","sources":["../src/events.coffee","../src/services/menu.coffee","../src/utils.coffee","../src/services/page.coffee","../src/services/command.coffee","../src/services/navigation.coffee","../src/services/index.coffee","../src/views/controls/switch.coffee","../src/views/controls/checkbox.coffee","../src/vendor/baremetrics-calendar/calendar.coffee","../src/views/controls/date-range-picker.coffee","../src/views/controls/numeric.coffee","../src/views/controls/index.coffee","../src/views/dynamic.coffee","../node_modules/d3-collection/src/map.js","../node_modules/d3-collection/src/set.js","../node_modules/d3-scale/src/array.js","../node_modules/d3-scale/src/ordinal.js","../node_modules/d3-scale/src/constant.js","../node_modules/d3-scale/src/number.js","../node_modules/d3-scale/src/continuous.js","../node_modules/d3-format/src/formatDecimal.js","../node_modules/d3-format/src/exponent.js","../node_modules/d3-format/src/formatGroup.js","../node_modules/d3-format/src/formatDefault.js","../node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/d3-format/src/formatRounded.js","../node_modules/d3-format/src/formatTypes.js","../node_modules/d3-format/src/formatSpecifier.js","../node_modules/d3-format/src/locale.js","../node_modules/d3-format/src/defaultLocale.js","../node_modules/d3-format/src/precisionFixed.js","../node_modules/d3-format/src/precisionPrefix.js","../node_modules/d3-format/src/precisionRound.js","../node_modules/d3-scale/src/tickFormat.js","../node_modules/d3-scale/src/linear.js","../node_modules/d3-scale/src/nice.js","../node_modules/d3-time/src/interval.js","../node_modules/d3-time/src/millisecond.js","../node_modules/d3-time/src/duration.js","../node_modules/d3-time/src/second.js","../node_modules/d3-time/src/minute.js","../node_modules/d3-time/src/hour.js","../node_modules/d3-time/src/day.js","../node_modules/d3-time/src/week.js","../node_modules/d3-time/src/month.js","../node_modules/d3-time/src/year.js","../node_modules/d3-time/src/utcMinute.js","../node_modules/d3-time/src/utcHour.js","../node_modules/d3-time/src/utcDay.js","../node_modules/d3-time/src/utcWeek.js","../node_modules/d3-time/src/utcMonth.js","../node_modules/d3-time/src/utcYear.js","../node_modules/d3-time-format/src/locale.js","../node_modules/d3-time-format/src/defaultLocale.js","../node_modules/d3-time-format/src/isoFormat.js","../node_modules/d3-time-format/src/isoParse.js","../node_modules/d3-scale/src/time.js","../node_modules/d3-scale/src/colors.js","../node_modules/d3-scale/src/category10.js","../node_modules/d3-scale/src/category20b.js","../node_modules/d3-scale/src/category20c.js","../node_modules/d3-scale/src/category20.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-color/src/math.js","../node_modules/d3-color/src/lab.js","../node_modules/d3-color/src/cubehelix.js","../node_modules/d3-scale/src/cubehelix.js","../node_modules/d3-scale/src/rainbow.js","../node_modules/d3-scale/src/viridis.js","../src/views/graphics/d3.coffee","../src/views/graphics/chart.coffee","../src/views/graphics/counter.coffee","../src/views/graphics/model.coffee","../src/views/graphics/index.coffee","../src/views/table.coffee","../src/views/table-row.coffee","../src/views/command-bar.coffee","../src/views/dynamic-table.coffee","../src/views/hanzo-dynamic-table.coffee","../src/views/hanzo-static-table.coffee","../src/mediator.coffee","../src/views/middleware/index.coffee","../src/views/login.coffee","../src/views/main.coffee","../src/views/menu.coffee","../src/views/modal.coffee","../src/views/filter-facets.coffee","../src/views/index.coffee","../src/blueprints.coffee","../src/index.coffee"],"sourcesContent":["Events =\n  Change:\n    'change'\n  ChangeSuccess:\n    'change.success'\n  ChangeFailed:\n    'change.failed'\n\n  Login:\n    'daisho.login'\n  LoginSuccess:\n    'daisho.login.success'\n  LoginFailed:\n    'daisho.login.failed'\n\n  Logout:\n    'daisho.logout'\n\n  Refresh:\n    'daisho.refresh'\n  ForceRefresh:\n    'daisho.refresh.force'\n\nexport default Events\n","import isFunction from 'es-is/function'\n\n\nclass MenuService\n  menu:   null\n  menuHash: null\n  initFn: null\n  daisho: null\n  debug:  false\n\n  constructor: (@daisho, @debug) ->\n    @menu = []\n    @menuHash = {}\n\n  register: (name, opts) ->\n    if @menuHash[name]\n      console.log '---MENU SERVICE---\\nCollision for ' + name\n\n    action = @run name\n    @menuHash[name] =\n      name:   name\n      action: action\n      icon:   opts.icon\n      fn:     if isFunction opts then opts else opts.action\n    @menu.push @menuHash[name]\n\n  run: (name) ->\n    return =>\n      data = @menuHash[name]\n      if !data.action && @debug\n        console.log '---MENU SERVICE---\\n' + name + ' not registered'\n      data.fn()\n\nexport default MenuService\n","import moment    from 'moment-timezone'\nimport analytics from 'shop.js-util/src/analytics'\n\nimport {\n  requiresPostalCode\n  requiresState\n} from 'shop.js-util/src/country'\n\nimport {\n  luhnCheck\n  cardFromNumber\n  cardType\n  restrictNumeric\n} from 'shop.js-util/src/card'\n\nimport {\n  isZeroDecimal\n  isCrypto\n  renderUpdatedUICurrency\n  renderUICurrencyFromJSON\n  renderJSONCurrencyFromUI\n} from 'shop.js-util/src/currency'\n\nimport {\n  rfc3339\n  mmddyyyy\n  yyyymmdd\n  ddmmyyyy\n  renderDate\n  renderUIDate\n  renderJSONDate\n} from 'shop.js-util/src/dates'\n\nimport {\n  getLanguage\n} from 'shop.js-util/src/language'\n\nimport {\n  renderCryptoQR\n} from 'shop.js-util/src/qrcodes'\n\nimport {\n  getQueries\n  getReferrer\n  getMCIds\n} from 'shop.js-util/src/uri'\n\nexport default utils =\n  analytics:    analytics\n\n  country:\n    requiresPostalCode: requiresPostalCode\n    requiresState:      requiresState\n\n  card:\n    luhnCheck:          luhnCheck\n    cardFromNumber:     cardFromNumber\n    cardType:           cardType\n    restrictNumeric:    restrictNumeric\n\n  currency:\n    isZeroDecimal:  isZeroDecimal\n    isCrypto:       isCrypto\n\n    renderUpdatedUICurrency:    renderUpdatedUICurrency\n    renderUICurrencyFromJSON:   renderUICurrencyFromJSON\n    renderJSONCurrencyFromUI:   renderJSONCurrencyFromUI\n\n    renderCurrency: renderUICurrencyFromJSON\n\n  date:\n    rfc3339:    rfc3339\n    mmddyyyy:   mmddyyyy\n    yyyymmdd:   yyyymmdd\n    ddmmyyyy:   ddmmyyyy\n\n    renderDate:     renderDate\n    renderUIDate:   renderUIDate\n    renderJSONDate: renderJSONDate\n    moment:         moment\n\n  language:\n    getLanguage: getLanguage\n\n  qrcode:\n    renderCryptoQR: renderCryptoQR\n\n  uri:\n    getQueries:     getQueries\n    getReferrer:    getReferrer\n    getMCIds:       getMCIds\n\n# alias incase you don't remember\nutils.time = utils.date\n\nutils.nav =\n  encode: (id, opts) ->\n    str = '/' + id + '/'\n    if !opts?\n      return str\n\n    if typeof opts == 'string'\n      if opts != ''\n        return str + opts + '/'\n\n      return str\n\n    for k, v of opts\n      str += k + ':' + v + '/'\n\n    return str\n\n  decode: (str) ->\n    opts = {}\n\n    parts = str.split '/'\n    id = parts.shift()\n\n    for k, v of parts\n      if v == ''\n        continue\n\n      vs = v.split ':'\n\n      if vs.length == 1\n        return [id, vs[0]]\n\n      opts[k] = v\n\n    return [id, opts]\n\n\n","  import utils from '../utils'\n\n  # PageService manages the page life cycle (doesn't do rendering)\n  class PageService\n    cache:        null\n    daisho:       null\n    debug:        false\n    current:      null\n    initState:    null\n    pushState:    true\n    # replaceState overwrites pushstate\n    replaceState: false\n\n    # Create the service\n    constructor: (@daisho, @debug)->\n      # Initialize the page cache\n      @cache = {}\n\n    mount:  ->\n    update: ->\n\n    has: (id) ->\n      return @cache[id]?\n\n    # Register a page and its life cycle callbacks, then store the page in the\n    # cache.\n    register: (id, enterFn, startFn, stopFn) ->\n      if @cache[id]\n        console.log '---PAGE SERVICE---\\nCollision for ' + id\n\n      if enterFn && startFn && stopFn\n        opts =\n          enterFn: enterFn\n          startFn: startFn\n          stopFn:  stopFn\n      else if enterFn\n        opts = enterFn\n\n      @cache[id] =\n        id:    id\n        enter: opts.enterFn\n        start: opts.startFn\n        stop:  opts.stopFn\n        root:  null\n        opts:  null\n        state: {}\n\n      # set the initial state\n      if !@initState?\n        @initState = @daisho.services.navigation.getState()\n        if !@initState?\n          [id2, opts] = utils.nav.decode window.location.pathname.substr 1\n\n          id = id2 if id2\n\n          @initState =\n            id:   id\n            opts: opts\n          @replaceState = true\n        else\n          @pushState = false\n\n    # Show a registered page from the cache\n    show: (id, opts = {}) ->\n      page = @cache[id]\n      page.opts = opts if opts?\n      opts = page.opts\n\n      if !page?\n        console.log '---PAGE SERVICE---\\n' + id + ' not registered'\n\n      if @current?\n        @current.root = @current.stop.call page.state, @\n\n      if !page.root\n        page.root = page.enter.call page.state, @, opts\n        page.root = page.start.call page.state, @, opts\n        if @debug\n          console.log '---PAGE SERVICE---\\nDone serving page ' + id\n      else\n        page.root = page.start.call page.state, @, opts\n        if @debug\n          console.log '---PAGE SERVICE---\\nDone serving page ' + id\n\n      # replace state\n      if @replaceState\n        # overwrite push state\n        @pushState = true\n        @replaceState = false\n\n        @daisho.services.navigation.replaceState(id, opts)\n      # don't push state\n      else if !@pushState\n        @pushState = true\n        @replaceState = false\n      # push state\n      else\n        @daisho.services.navigation.pushState(id, opts)\n      @initState = null\n\n      @daisho.scheduleUpdate()\n\n      @current = page\n      @current\n\n    start: ()->\n      @daisho.services.navigation.onPopState (state)=>\n        @pushState = false\n        @initState = state\n        @show state.id, state.opts\n\n      @show @initState.id, @initState.opts\n\n  export default PageService\n","class CommandService\n  commands: null\n  daisho:   null\n\n  constructor: (@daisho, @debug) ->\n    @commands = {}\n\n  register: (command, hint, fn) ->\n    if @commands[command]\n      console.log '---CMD SERVICE---\\nCollision for ' + name\n\n    @commands[command] =\n      command: command\n      hint: hint\n      fn: fn\n\n  find: (command) ->\n    found = []\n    for cmd, opts of @commands\n      if opts.command.indexOf(command)== 0\n        found.push opts\n\n    found.sort (a,b) ->\n      nameA = a.command.toLowerCase()\n      nameB = b.command.toLowerCase()\n      if (nameA < nameB)\n        return -1\n      if (nameA > nameB)\n        return 1\n      return 0\n\n    found\n\n  execute: (command, args) ->\n    for i, arg of args\n      # strip quotes\n      if arg[0] == '\"'\n        args[i]  = args[i].substr 1\n      if arg.substr(-1) == '\"'\n        args[i]  = args[i].slice 0, -1\n    cmd = @commands[command]\n    if !cmd\n      console.log '---COMMAND SERVICE---\\n' + command + ' not registered'\n    cmd.fn.apply @, args\n\nexport default CommandService\n","# encode key value pairs\nimport utils from '../utils'\n\nclass NavService\n  constructor: (@daisho, @debug)->\n\n  replaceState: (id, opts)->\n    url = utils.nav.encode id, opts\n\n    history.replaceState JSON.stringify(\n      id:   id\n      opts: opts\n    ), id, url\n\n  pushState: (id, opts)->\n    url = utils.nav.encode id, opts\n\n    history.pushState JSON.stringify(\n      id:   id\n      opts: opts\n    ), id, url\n\n  getState: ()->\n    json = null\n    try\n      json = JSON.parse history?.state\n    catch e\n      console.log '---NAV SERVICE---\\ncould not parse history state'\n\n    return json\n\n  onPopState: (cb)->\n    json = null\n    window.onpopstate = (event)->\n      try\n        json = JSON.parse event.state\n      catch e\n        console.log '---NAV SERVICE---\\ncould not parse history state'\n\n      cb json\n\nexport default NavService\n\n","import Menu         from './menu'\nimport Page         from './page'\nimport Command      from './command'\nimport Navigation   from './navigation'\n\nexport default Services =\n  Menu:       Menu\n  Page:       Page\n  Command:    Command\n  Navigation: Navigation\n","import Checkbox from 'el-controls/src/controls/checkbox'\n\nimport html from '../../templates/controls/switch'\n\nexport default class Switch extends Checkbox\n  tag: 'switch'\n  html: html\n  getValue: (event)->\n    return event.target.checked\n\nSwitch.register()\n","import Switch from './switch'\n\nimport html from '../../templates/controls/checkbox'\n\nexport default class BetterCheckbox extends Switch\n  tag: 'checkbox'\n  html: html\n  getValue: (event)->\n    return event.target.checked\n\nBetterCheckbox.register()\n\n","# Design by Chris Meeks\n# Code by Tyler van der Hoeven\n# https://github.com/Baremetrics/calendar\nimport moment  from 'moment-timezone'\n\nCalendar = (settings) ->\n  self = this\n  @settings = settings\n  @calIsOpen = false\n  @presetIsOpen = false\n  @sameDayRange = settings.same_day_range or false\n  @element = settings.element or $('.daterange')\n  @selected = null\n  @type = if @element.hasClass('daterange--single') then 'single' else 'double'\n  @required = if settings.required == false then false else true\n  @format = settings.format or {}\n  @format.input = settings.format and settings.format.input or 'MMMM D, YYYY'\n  @format.preset = settings.format and settings.format.preset or 'll'\n  @format.jump_month = settings.format and settings.format.jump_month or 'MMMM'\n  @format.jump_year = settings.format and settings.format.jump_year or 'YYYY'\n  @placeholder = settings.placeholder or @format.input\n  @days_array = if settings.days_array and settings.days_array.length == 7 then settings.days_array else moment.weekdaysMin()\n  @orig_start_date = null\n  @orig_end_date = null\n  @orig_current_date = null\n  @earliest_date = if settings.earliest_date then moment(settings.earliest_date) else moment('1900-01-01')\n  @latest_date = if settings.latest_date then moment(settings.latest_date) else moment('2900-12-31')\n  @end_date = if settings.end_date then moment(settings.end_date) else if @type == 'double' then moment() else null\n  @start_date = if settings.start_date then moment(settings.start_date) else if @type == 'double' then @end_date.clone().subtract(1, 'month') else null\n  @current_date = if settings.current_date then moment(settings.current_date) else if @type == 'single' then moment() else null\n  @presets = if settings.presets == false or @type == 'single' then false else true\n  @callback = settings.callback or @calendarSetDates\n  @calendarHTML @type\n  $('.dr-presets', @element).click ->\n    self.presetToggle()\n    return\n  $('.dr-list-item', @element).click ->\n    start = $('.dr-item-aside', this).data('start')\n    end = $('.dr-item-aside', this).data('end')\n    self.start_date = self.calendarCheckDate(start)\n    self.end_date = self.calendarCheckDate(end)\n    self.calendarSetDates()\n    self.presetToggle()\n    self.calendarSaveDates()\n    return\n  $('.dr-date', @element).on\n    'click': ->\n      self.calendarOpen this\n      return\n    'keyup': (event) ->\n      if event.keyCode == 9 and !self.calIsOpen and !self.start_date and !self.end_date\n        self.calendarOpen this\n      return\n    'keydown': (event) ->\n      `var timeframe`\n      switch event.keyCode\n        when 9\n          # Tab\n          if $(self.selected).hasClass('dr-date-start')\n            event.preventDefault()\n            self.calendarCheckDates()\n            self.calendarSetDates()\n            $('.dr-date-end', self.element).trigger 'click'\n          else\n            self.calendarCheckDates()\n            self.calendarSetDates()\n            self.calendarSaveDates()\n            self.calendarClose 'force'\n        when 13\n          # Enter\n          event.preventDefault()\n          self.calendarCheckDates()\n          self.calendarSetDates()\n          self.calendarSaveDates()\n          self.calendarClose 'force'\n        when 27\n          # ESC\n          self.calendarSetDates()\n          self.calendarClose 'force'\n        when 38\n          # Up\n          event.preventDefault()\n          timeframe = 'day'\n          if event.shiftKey\n            timeframe = 'week'\n          if event.metaKey\n            timeframe = 'month'\n          back = moment(self.current_date).subtract(1, timeframe)\n          $(this).html back.format(self.format.input)\n          self.current_date = back\n        when 40\n          # Down\n          event.preventDefault()\n          timeframe = 'day'\n          if event.shiftKey\n            timeframe = 'week'\n          if event.metaKey\n            timeframe = 'month'\n          forward = moment(self.current_date).add(1, timeframe)\n          $(this).html forward.format(self.format.input)\n          self.current_date = forward\n      return\n  $('.dr-month-switcher i', @element).click ->\n    m = $('.dr-month-switcher span', self.element).data('month')\n    y = $('.dr-year-switcher span', self.element).data('year')\n    this_moment = moment([\n      y\n      m\n      1\n    ])\n    back = this_moment.clone().subtract(1, 'month')\n    forward = this_moment.clone().add(1, 'month').startOf('day')\n    if $(this).hasClass('dr-left')\n      self.calendarOpen self.selected, back\n    else if $(this).hasClass('dr-right')\n      self.calendarOpen self.selected, forward\n    return\n  $('.dr-year-switcher i', @element).click ->\n    m = $('.dr-month-switcher span', self.element).data('month')\n    y = $('.dr-year-switcher span', self.element).data('year')\n    this_moment = moment([\n      y\n      m\n      1\n    ])\n    back = this_moment.clone().subtract(1, 'year')\n    forward = this_moment.clone().add(1, 'year').startOf('day')\n    if $(this).hasClass('dr-left')\n      self.calendarOpen self.selected, back\n    else if $(this).hasClass('dr-right')\n      self.calendarOpen self.selected, forward\n    return\n  $('.dr-dates-dash', @element).click ->\n    $('.dr-date-start', self.element).trigger 'click'\n    return\n  # Once you click into a selection.. this lets you click out\n  @element.on 'click', ->\n    document.addEventListener 'click', (f) ->\n      contains = self.element.find(f.path[0])\n      if !contains.length\n        if self.presetIsOpen\n          self.presetToggle()\n        if self.calIsOpen\n          if $(self.selected).hasClass('dr-date-end')\n            self.calendarSaveDates()\n          self.calendarSetDates()\n          self.calendarClose 'force'\n      return\n    return\n  return\n\nselectOneDate = (other, cal, date) ->\n  string = moment(date).format(cal.format.input)\n  if other\n    $('.dr-date', cal.element).not(cal.selected).html other.format(cal.format.input)\n  $(cal.selected).html string\n  cal.calendarOpen cal.selected\n  if $(cal.selected).hasClass('dr-date-start')\n    $('.dr-date-end', cal.element).trigger 'click'\n  else\n    cal.calendarSaveDates()\n    cal.calendarClose 'force'\n  return\n\nCalendar::presetToggle = ->\n  if @presetIsOpen == false\n    @orig_start_date = @start_date\n    @orig_end_date = @end_date\n    @orig_current_date = @current_date\n    @presetIsOpen = true\n  else if @presetIsOpen\n    @presetIsOpen = false\n  if @calIsOpen == true\n    @calendarClose()\n  $('.dr-preset-list', @element).slideToggle 200\n  $('.dr-input', @element).toggleClass 'dr-active'\n  $('.dr-presets', @element).toggleClass 'dr-active'\n  @element.toggleClass 'dr-active'\n  return\n\nCalendar::presetCreate = ->\n  self = this\n  ul_presets = $('<ul class=\"dr-preset-list\" style=\"display: none;\"></ul>')\n  presets = if typeof self.settings.presets == 'object' then self.settings.presets else [\n    {\n      label: 'Last 30 days'\n      start: moment(self.latest_date).subtract(29, 'days')\n      end: self.latest_date\n    }\n    {\n      label: 'Last month'\n      start: moment(self.latest_date).subtract(1, 'month').startOf('month')\n      end: moment(self.latest_date).subtract(1, 'month').endOf('month')\n    }\n    {\n      label: 'Last 3 months'\n      start: moment(self.latest_date).subtract(3, 'month').startOf('month')\n      end: moment(self.latest_date).subtract(1, 'month').endOf('month')\n    }\n    {\n      label: 'Last 6 months'\n      start: moment(self.latest_date).subtract(6, 'month').startOf('month')\n      end: moment(self.latest_date).subtract(1, 'month').endOf('month')\n    }\n    {\n      label: 'Last year'\n      start: moment(self.latest_date).subtract(12, 'month').startOf('month')\n      end: moment(self.latest_date).subtract(1, 'month').endOf('month')\n    }\n    {\n      label: 'All time'\n      start: self.earliest_date\n      end: self.latest_date\n    }\n  ]\n  if moment(self.latest_date).diff(moment(self.latest_date).startOf('month'), 'days') >= 6 and typeof self.settings.presets != 'object'\n    presets.splice 1, 0,\n      label: 'This month'\n      start: moment(self.latest_date).startOf('month')\n      end: self.latest_date\n  $.each presets, (i, d) ->\n    if moment(d.start).isBefore(self.earliest_date)\n      d.start = self.earliest_date\n    if moment(d.start).isAfter(self.latest_date)\n      d.start = self.latest_date\n    if moment(d.end).isBefore(self.earliest_date)\n      d.end = self.earliest_date\n    if moment(d.end).isAfter(self.latest_date)\n      d.end = self.latest_date\n    startISO = moment(d.start).toISOString()\n    endISO = moment(d.end).toISOString()\n    string = moment(d.start).format(self.format.preset) + ' &ndash; ' + moment(d.end).format(self.format.preset)\n    if $('.dr-preset-list', self.element).length\n      item = $('.dr-preset-list .dr-list-item:nth-of-type(' + i + 1 + ') .dr-item-aside', self.element)\n      item.data 'start', startISO\n      item.data 'end', endISO\n      item.html string\n    else\n      ul_presets.append '<li class=\"dr-list-item\">' + d.label + '<span class=\"dr-item-aside\" data-start=\"' + startISO + '\" data-end=\"' + endISO + '\">' + string + '</span>' + '</li>'\n    return\n  ul_presets\n\nCalendar::calendarSetDates = ->\n  $('.dr-date-start', @element).html moment(@start_date).format(@format.input)\n  $('.dr-date-end', @element).html moment(@end_date).format(@format.input)\n  if !@start_date and !@end_date\n    old_date = $('.dr-date', @element).html()\n    new_date = moment(@current_date).format(@format.input)\n    if old_date.length == 0 and !@required\n      new_date = ''\n    if old_date != new_date\n      $('.dr-date', @element).html new_date\n  return\n\nCalendar::calendarSaveDates = ->\n  if @type == 'double'\n    if !moment(@orig_end_date).isSame(@end_date) or !moment(@orig_start_date).isSame(@start_date)\n      return @callback()\n  else\n    if !@required or !moment(@orig_current_date).isSame(@current_date)\n      return @callback()\n  return\n\nCalendar::calendarCheckDate = (d) ->\n  # Today\n  if d == 'today' or d == 'now'\n    return if moment().isAfter(@latest_date) then @latest_date else if moment().isBefore(@earliest_date) then @earliest_date else moment()\n  # Earliest\n  if d == 'earliest'\n    return @earliest_date\n  # Latest\n  if d == 'latest'\n    return @latest_date\n  # Convert string to a date if keyword ago or ahead exists\n  if d and (/\\bago\\b/.test(d) or /\\bahead\\b/.test(d))\n    return @stringToDate(d)\n  regex = /(?:\\d)((?:st|nd|rd|th)?,?)/\n  d_array = if d then d.replace(regex, '').split(' ') else []\n  # Add current year if year is not included\n  if d_array.length == 2\n    d_array.push moment().format(@format.jump_year)\n    d = d_array.join(' ')\n  # Convert using settings format\n  parsed_d = @parseDate(d)\n  if !parsed_d.isValid()\n    return moment(d)\n  # occurs when parsing preset dates\n  parsed_d\n\nCalendar::calendarCheckDates = ->\n  startTxt = $('.dr-date-start', @element).html()\n  endTxt = $('.dr-date-end', @element).html()\n  c = @calendarCheckDate($(@selected).html())\n  s = undefined\n  e = undefined\n  # Modify strings via some specific keywords to create valid dates\n  # Finally set all strings as dates\n  if startTxt == 'ytd' or endTxt == 'ytd'\n    # Year to date\n    s = moment().startOf('year')\n    e = moment().endOf('year')\n  else\n    s = @calendarCheckDate(startTxt)\n    e = @calendarCheckDate(endTxt)\n  if c.isBefore(@earliest_date)\n    c = @earliest_date\n  if s.isBefore(@earliest_date)\n    s = @earliest_date\n  if e.isBefore(@earliest_date) or e.isBefore(s)\n    e = s.clone().add(6, 'day')\n  if c.isAfter(@latest_date)\n    c = @latest_date\n  if e.isAfter(@latest_date)\n    e = @latest_date\n  if s.isAfter(@latest_date) or s.isAfter(e)\n    s = e.clone().subtract(6, 'day')\n  # Push and save if it's valid otherwise return to previous state\n  if @type == 'double'\n    # Is this a valid date?\n    if s.isSame(e) and !@sameDayRange\n      return @calendarSetDates()\n    @start_date = if s.isValid() then s else @start_date\n    @end_date = if e.isValid() then e else @end_date\n  @current_date = if c.isValid() then c else @current_date\n  return\n\nCalendar::stringToDate = (str) ->\n  date_arr = str.split(' ')\n  if date_arr[2] == 'ago'\n    return moment(@current_date).subtract(date_arr[0], date_arr[1])\n  else if date_arr[2] == 'ahead'\n    return moment(@current_date).add(date_arr[0], date_arr[1])\n  @current_date\n\nCalendar::calendarOpen = (selected, switcher) ->\n  self = this\n  other = undefined\n  cal_width = $('.dr-dates', @element).innerWidth() - 8\n  @selected = selected or @selected\n  if @presetIsOpen == true\n    @presetToggle()\n  if @calIsOpen == true\n    @calendarClose if switcher then 'switcher' else undefined\n  else if $(@selected).html().length\n    @orig_start_date = @start_date\n    @orig_end_date = @end_date\n    @orig_current_date = @current_date\n  @calendarCheckDates()\n  @calendarCreate switcher\n  @calendarSetDates()\n  next_month = moment(switcher or @current_date).add(1, 'month').startOf('month').startOf('day')\n  past_month = moment(switcher or @current_date).subtract(1, 'month').endOf('month')\n  next_year = moment(switcher or @current_date).add(1, 'year').startOf('month').startOf('day')\n  past_year = moment(switcher or @current_date).subtract(1, 'year').endOf('month')\n  this_moment = moment(switcher or @current_date)\n  $('.dr-month-switcher span', @element).data('month', this_moment.month()).html this_moment.format(@format.jump_month)\n  $('.dr-year-switcher span', @element).data('year', this_moment.year()).html this_moment.format(@format.jump_year)\n  $('.dr-switcher i', @element).removeClass 'dr-disabled'\n  if next_month.isAfter(@latest_date)\n    $('.dr-month-switcher .dr-right', @element).addClass 'dr-disabled'\n  if past_month.isBefore(@earliest_date)\n    $('.dr-month-switcher .dr-left', @element).addClass 'dr-disabled'\n  if next_year.isAfter(@latest_date)\n    $('.dr-year-switcher .dr-right', @element).addClass 'dr-disabled'\n  if past_year.isBefore(@earliest_date)\n    $('.dr-year-switcher .dr-left', @element).addClass 'dr-disabled'\n  $('.dr-day', @element).on\n    mouseenter: ->\n      `var selected`\n      selected = $(this)\n      start_date = moment(self.start_date)\n      end_date = moment(self.end_date)\n      current_date = moment(self.current_date)\n\n      setMaybeRange = (type) ->\n        other = undefined\n        self.range(6 * 7).forEach (i) ->\n          next = selected.next().data('date')\n          prev = selected.prev().data('date')\n          curr = selected.data('date')\n          if !curr\n            return false\n          if !prev\n            prev = curr\n          if !next\n            next = curr\n          if type == 'start'\n            if moment(next).isSame(self.end_date) or self.sameDayRange and moment(curr).isSame(self.end_date)\n              return false\n            if moment(curr).isAfter(self.end_date)\n              other = other or moment(curr).add(6, 'day').startOf('day')\n              if i > 5 or (if next then moment(next).isAfter(self.latest_date) else false)\n                $(selected).addClass 'dr-end'\n                other = moment(curr)\n                return false\n            selected = selected.next().addClass('dr-maybe')\n          else if type == 'end'\n            if moment(prev).isSame(self.start_date) or self.sameDayRange and moment(curr).isSame(self.start_date)\n              return false\n            if moment(curr).isBefore(self.start_date)\n              other = other or moment(curr).subtract(6, 'day')\n              if i > 5 or (if prev then moment(prev).isBefore(self.earliest_date) else false)\n                $(selected).addClass 'dr-start'\n                other = moment(curr)\n                return false\n            selected = selected.prev().addClass('dr-maybe')\n          return\n        return\n\n      if $(self.selected).hasClass('dr-date-start')\n        selected.addClass 'dr-hover dr-hover-before'\n        $('.dr-start', self.element).css\n          'border': 'none'\n          'padding-left': '0.3125rem'\n        setMaybeRange 'start'\n      if $(self.selected).hasClass('dr-date-end')\n        selected.addClass 'dr-hover dr-hover-after'\n        $('.dr-end', self.element).css\n          'border': 'none'\n          'padding-right': '0.3125rem'\n        setMaybeRange 'end'\n      if !self.start_date and !self.end_date\n        selected.addClass 'dr-maybe'\n      $('.dr-selected', self.element).css 'background-color', 'transparent'\n      return\n    mouseleave: ->\n      if $(this).hasClass('dr-hover-before dr-end')\n        $(this).removeClass 'dr-end'\n      if $(this).hasClass('dr-hover-after dr-start')\n        $(this).removeClass 'dr-start'\n      $(this).removeClass 'dr-hover dr-hover-before dr-hover-after'\n      $('.dr-start, .dr-end', self.element).css\n        'border': ''\n        'padding': ''\n      $('.dr-maybe:not(.dr-current)', self.element).removeClass 'dr-start dr-end'\n      $('.dr-day', self.element).removeClass 'dr-maybe'\n      $('.dr-selected', self.element).css 'background-color', ''\n      return\n  if /iPad|iPhone|iPod/.test(navigator.userAgent) and !window.MSStream\n    $('.dr-day', @element).on touchstart: ->\n      selectOneDate other, self, $(this).data('date')\n      return\n    $('div[contenteditable]', @element).removeAttr 'contenteditable'\n  else\n    $('.dr-day', @element).on mousedown: ->\n      selectOneDate other, self, $(this).data('date')\n      return\n  $('.dr-calendar', @element).css('width', cal_width).slideDown 200\n  $('.dr-input', @element).addClass 'dr-active'\n  $(selected).addClass('dr-active').focus()\n  @element.addClass 'dr-active'\n  @calIsOpen = true\n  return\n\nCalendar::calendarClose = (type) ->\n  self = this\n  if !@calIsOpen or @presetIsOpen or type == 'force'\n    $('.dr-calendar', @element).slideUp 200, ->\n      $('.dr-day', self.element).remove()\n      return\n  else\n    $('.dr-day', @element).remove()\n  if type == 'switcher'\n    return false\n  $('.dr-input, .dr-date', @element).removeClass 'dr-active'\n  @element.removeClass 'dr-active'\n  @calIsOpen = false\n  return\n\nCalendar::calendarCreate = (switcher) ->\n  self = this\n  array = @calendarArray(@start_date, @end_date, @current_date, switcher)\n  array.forEach (d, i) ->\n    classString = 'dr-day'\n    if d.fade\n      classString += ' dr-fade'\n    if d.start\n      classString += ' dr-start'\n    if d.end\n      classString += ' dr-end'\n    if d.current\n      classString += ' dr-current'\n    if d.selected\n      classString += ' dr-selected'\n    if d.outside\n      classString += ' dr-outside'\n    $('.dr-day-list', self.element).append '<li class=\"' + classString + '\" data-date=\"' + d.date + '\">' + d.str + '</li>'\n    return\n  return\n\nCalendar::calendarArray = (start, end, current, switcher) ->\n  self = this\n  current = moment(current or start or end).startOf('day')\n  reference = switcher or current or start or end\n  startRange = moment(reference).startOf('month').startOf('week')\n  endRange = moment(startRange).add(6 * 7 - 1, 'days').endOf('day')\n  daysInRange = []\n  d = moment(startRange)\n  while d.isBefore(endRange)\n    daysInRange.push\n      str: +d.format('D')\n      start: start and d.isSame(start, 'day')\n      end: end and d.isSame(end, 'day')\n      current: current and d.isSame(current, 'day')\n      selected: start and end and d.isBetween(start, end)\n      date: d.toISOString()\n      outside: d.isBefore(self.earliest_date) or d.isAfter(self.latest_date)\n      fade: !d.isSame(reference, 'month')\n    d.add 1, 'd'\n  daysInRange\n\nCalendar::calendarHTML = (type) ->\n  ul_days_of_the_week = $('<ul class=\"dr-days-of-week-list\"></ul>')\n  days = @days_array.splice(moment.localeData().firstDayOfWeek()).concat(@days_array.splice(0, moment.localeData().firstDayOfWeek()))\n  $.each days, (i, elem) ->\n    ul_days_of_the_week.append '<li class=\"dr-day-of-week\">' + elem + '</li>'\n    return\n  if type == 'double'\n    return @element.append('<div class=\"dr-input\">' + '<div class=\"dr-dates\">' + '<div class=\"dr-date dr-date-start\" contenteditable>' + moment(@start_date).format(@format.input) + '</div>' + '<span class=\"dr-dates-dash\">&ndash;</span>' + '<div class=\"dr-date dr-date-end\" contenteditable>' + moment(@end_date).format(@format.input) + '</div>' + '</div>' + (if @presets then '<div class=\"dr-presets\">' + '<span class=\"dr-preset-bar\"></span>' + '<span class=\"dr-preset-bar\"></span>' + '<span class=\"dr-preset-bar\"></span>' + '</div>' else '') + '</div>' + '<div class=\"dr-selections\">' + '<div class=\"dr-calendar\" style=\"display: none;\">' + '<div class=\"dr-range-switcher\">' + '<div class=\"dr-switcher dr-month-switcher\">' + '<i class=\"dr-left\"></i>' + '<span>April</span>' + '<i class=\"dr-right\"></i>' + '</div>' + '<div class=\"dr-switcher dr-year-switcher\">' + '<i class=\"dr-left\"></i>' + '<span>2015</span>' + '<i class=\"dr-right\"></i>' + '</div>' + '</div>' + ul_days_of_the_week[0].outerHTML + '<ul class=\"dr-day-list\"></ul>' + '</div>' + (if @presets then @presetCreate()[0].outerHTML else '') + '</div>')\n  @element.append '<div class=\"dr-input\">' + '<div class=\"dr-dates\">' + '<div class=\"dr-date\" contenteditable placeholder=\"' + @placeholder + '\">' + (if @settings.current_date then moment(@current_date).format(@format.input) else '') + '</div>' + '</div>' + '</div>' + '<div class=\"dr-selections\">' + '<div class=\"dr-calendar\" style=\"display: none;\">' + '<div class=\"dr-range-switcher\">' + '<div class=\"dr-switcher dr-month-switcher\">' + '<i class=\"dr-left\"></i>' + '<span></span>' + '<i class=\"dr-right\"></i>' + '</div>' + '<div class=\"dr-switcher dr-year-switcher\">' + '<i class=\"dr-left\"></i>' + '<span></span>' + '<i class=\"dr-right\"></i>' + '</div>' + '</div>' + ul_days_of_the_week[0].outerHTML + '<ul class=\"dr-day-list\"></ul>' + '</div>' + '</div>'\n\nCalendar::parseDate = (d) ->\n  if moment.defaultZone != null and moment.hasOwnProperty('tz')\n    moment.tz d, @format.input, moment.defaultZone.name\n  else\n    moment d, @format.input\n\nCalendar::range = (length) ->\n  range = new Array(length)\n  idx = 0\n  while idx < length\n    range[idx] = idx\n    idx++\n  range\n\nexport default Calendar\n","import Calendar from '../../vendor/baremetrics-calendar/calendar'\nimport Text     from 'el-controls/src/controls/text'\nimport utils    from '../../utils'\nimport html     from '../../templates/controls/date-range-picker'\n\nmoment = utils.date.moment\n\nexport default class DateRangePicker extends Text\n  tag:  'date-range-picker-control'\n  html: html\n\n  after: '2015-01-01'\n  before: moment()\n\n  events:\n    updated: ->\n      @onUpdated()\n\n    mount: ->\n      @onUpdated()\n\n  init: -> super()\n\n  onUpdated: ->\n    if !@calendar\n      filter = @data.get 'filter'\n      self = @\n      @calendar = new Calendar\n        element:       $(@root).find('.daterange')\n        earliest_date: moment @after\n        latest_date:   moment @before\n        start_date:    filter[0]\n        end_date:      filter[1]\n        callback: ->\n          start = utils.date.renderJSONDate @start_date\n          end   = utils.date.renderJSONDate @end_date\n\n          console.log 'Start Date: ' + start + '\\nEnd Date: ' + end\n\n          val = [start, end]\n          self.data.set 'filter', val\n\n          self.change()\n          self.changed val\n\n  getValue: (e) -> @data.get 'filter'\n","import Text from 'el-controls/src/controls/text'\n\nimport html from '../../templates/controls/numeric'\n\nclass Numeric extends Text\n  tag:  'numeric'\n  html: html\n\n  numericValue: ()->\n    val = parseFloat @input.ref.get(@input.name)\n    val = null if isNaN val\n\n    return val\n\n  getValue: ()->\n    val = super\n    val = parseFloat val\n    val = null if isNaN val\n\n    return val\n\nexport default Numeric\n\n","import Checkbox from './checkbox'\nimport DateRangePicker from './date-range-picker'\nimport Numeric from './numeric'\nimport Switch from './switch'\n\nimport * as ElControls from 'el-controls/src'\n\nexport default Controls =\n  Checkbox:        Checkbox\n  DateRangePicker: DateRangePicker\n  Numeric:         Numeric\n  Switch:          Switch\n\n  register: ->\n    Checkbox.register()\n    DateRangePicker.register()\n    Numeric.register()\n    Switch.register()\n","import El     from 'el.js'\nimport Events from '../events'\n\n# View with built-in caching for optimizing frequently updated data-driven\n# views.\nclass DynamicView extends El.Form\n  tag:  'daisho-dynamic'\n  html: ''\n\n  # data.get field for caching staleness\n  # null means we cache on the entire data object\n  _dataStaleField: null\n\n  # last version of data cached for staleness check\n  _dataStaleCached: ''\n\n  # refresh lock\n  _locked: false\n\n  # should automatically refresh on an update call?\n  autoRefresh: true\n\n  # can be before or after\n  refreshTiming: 'before'\n\n  _p: false\n\n  # add some helpers to automagically bind refresh function\n  init: ->\n    # make @_refresh automatically save the stale data\n    r = @_refresh\n    @_refresh = =>\n      if @_locked\n        return @locked\n\n      @_locked = true\n      p = r.apply @, arguments\n      @_locked = p\n      if p?.then?\n        p.then =>\n          try\n            @_dataStaleCached = JSON.stringify @data.get @_dataStaleField\n          catch e\n            console.error 'could not save stale data', e\n          @_locked = false\n        .catch (e)->\n          console.error 'count not save stale data', e\n      else\n        try\n          @_dataStaleCached = JSON.stringify @data.get @_dataStaleField\n        catch e\n          console.error 'could not save stale data'\n        @_locked = false\n      return p\n\n    if @autoRefresh\n      if @mediator?\n        @mediator.on Events.Refresh, =>\n          return @refresh.apply @, arguments\n\n      if @refreshTiming == 'before'\n        @on 'update', ()=>\n          return @refresh.apply @, arguments\n      else\n        @on 'updated', ()=>\n          return @refresh.apply @, arguments\n\n    # this bypasses all the staleness checks\n    if @mediator?\n      @mediator.on Events.ForceRefresh, =>\n        return @_refresh.apply @, arguments\n\n    super()\n\n  # refresh checks if something is stale\n  refresh: ->\n    # abort if root isn't attached to the dom\n    if !$(@root).closest('body')[0]?\n      return\n\n    # abort if data isn't stale\n    _dataStaleCached = JSON.stringify @data.get @_dataStaleField\n    if _dataStaleCached == @_dataStaleCached\n      return\n\n    return @_refresh.apply @, arguments\n\n  # overwrite with refresh implementation\n  # _refresh: ->\n\n  # simple page change api\n  show: (id, opts) ->\n    return ()=>\n      @services.page.show id, opts\n\n\nexport default DynamicView\n","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n  constructor: Map,\n  has: function(key) {\n    return (prefix + key) in this;\n  },\n  get: function(key) {\n    return this[prefix + key];\n  },\n  set: function(key, value) {\n    this[prefix + key] = value;\n    return this;\n  },\n  remove: function(key) {\n    var property = prefix + key;\n    return property in this && delete this[property];\n  },\n  clear: function() {\n    for (var property in this) if (property[0] === prefix) delete this[property];\n  },\n  keys: function() {\n    var keys = [];\n    for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n    return keys;\n  },\n  values: function() {\n    var values = [];\n    for (var property in this) if (property[0] === prefix) values.push(this[property]);\n    return values;\n  },\n  entries: function() {\n    var entries = [];\n    for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n    return entries;\n  },\n  size: function() {\n    var size = 0;\n    for (var property in this) if (property[0] === prefix) ++size;\n    return size;\n  },\n  empty: function() {\n    for (var property in this) if (property[0] === prefix) return false;\n    return true;\n  },\n  each: function(f) {\n    for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n  }\n};\n\nfunction map(object, f) {\n  var map = new Map;\n\n  // Copy constructor.\n  if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n  // Index array by numeric index or specified key function.\n  else if (Array.isArray(object)) {\n    var i = -1,\n        n = object.length,\n        o;\n\n    if (f == null) while (++i < n) map.set(i, object[i]);\n    else while (++i < n) map.set(f(o = object[i], i, object), o);\n  }\n\n  // Convert object to map.\n  else if (object) for (var key in object) map.set(key, object[key]);\n\n  return map;\n}\n\nexport default map;\n","import {default as map, prefix} from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\n\nSet.prototype = set.prototype = {\n  constructor: Set,\n  has: proto.has,\n  add: function(value) {\n    value += \"\";\n    this[prefix + value] = value;\n    return this;\n  },\n  remove: proto.remove,\n  clear: proto.clear,\n  values: proto.keys,\n  size: proto.size,\n  empty: proto.empty,\n  each: proto.each\n};\n\nfunction set(object, f) {\n  var set = new Set;\n\n  // Copy constructor.\n  if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n  // Otherwise, assume it’s an array.\n  else if (object) {\n    var i = -1, n = object.length;\n    if (f == null) while (++i < n) set.add(object[i]);\n    else while (++i < n) set.add(f(object[i], i, object));\n  }\n\n  return set;\n}\n\nexport default set;\n","var array = Array.prototype;\n\nexport var map = array.map;\nexport var slice = array.slice;\n","import {map} from \"d3-collection\";\nimport {slice} from \"./array\";\n\nexport var implicit = {name: \"implicit\"};\n\nexport default function ordinal(range) {\n  var index = map(),\n      domain = [],\n      unknown = implicit;\n\n  range = range == null ? [] : slice.call(range);\n\n  function scale(d) {\n    var key = d + \"\", i = index.get(key);\n    if (!i) {\n      if (unknown !== implicit) return unknown;\n      index.set(key, i = domain.push(d));\n    }\n    return range[(i - 1) % range.length];\n  }\n\n  scale.domain = function(_) {\n    if (!arguments.length) return domain.slice();\n    domain = [], index = map();\n    var i = -1, n = _.length, d, key;\n    while (++i < n) if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n    return scale;\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (range = slice.call(_), scale) : range.slice();\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  scale.copy = function() {\n    return ordinal()\n        .domain(domain)\n        .range(range)\n        .unknown(unknown);\n  };\n\n  return scale;\n}\n","export default function(x) {\n  return function() {\n    return x;\n  };\n}\n","export default function(x) {\n  return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateRound} from \"d3-interpolate\";\nimport {map, slice} from \"./array\";\nimport constant from \"./constant\";\nimport number from \"./number\";\n\nvar unit = [0, 1];\n\nexport function deinterpolateLinear(a, b) {\n  return (b -= (a = +a))\n      ? function(x) { return (x - a) / b; }\n      : constant(b);\n}\n\nfunction deinterpolateClamp(deinterpolate) {\n  return function(a, b) {\n    var d = deinterpolate(a = +a, b = +b);\n    return function(x) { return x <= a ? 0 : x >= b ? 1 : d(x); };\n  };\n}\n\nfunction reinterpolateClamp(reinterpolate) {\n  return function(a, b) {\n    var r = reinterpolate(a = +a, b = +b);\n    return function(t) { return t <= 0 ? a : t >= 1 ? b : r(t); };\n  };\n}\n\nfunction bimap(domain, range, deinterpolate, reinterpolate) {\n  var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n  if (d1 < d0) d0 = deinterpolate(d1, d0), r0 = reinterpolate(r1, r0);\n  else d0 = deinterpolate(d0, d1), r0 = reinterpolate(r0, r1);\n  return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, deinterpolate, reinterpolate) {\n  var j = Math.min(domain.length, range.length) - 1,\n      d = new Array(j),\n      r = new Array(j),\n      i = -1;\n\n  // Reverse descending domains.\n  if (domain[j] < domain[0]) {\n    domain = domain.slice().reverse();\n    range = range.slice().reverse();\n  }\n\n  while (++i < j) {\n    d[i] = deinterpolate(domain[i], domain[i + 1]);\n    r[i] = reinterpolate(range[i], range[i + 1]);\n  }\n\n  return function(x) {\n    var i = bisect(domain, x, 1, j) - 1;\n    return r[i](d[i](x));\n  };\n}\n\nexport function copy(source, target) {\n  return target\n      .domain(source.domain())\n      .range(source.range())\n      .interpolate(source.interpolate())\n      .clamp(source.clamp());\n}\n\n// deinterpolate(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// reinterpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding domain value x in [a,b].\nexport default function continuous(deinterpolate, reinterpolate) {\n  var domain = unit,\n      range = unit,\n      interpolate = interpolateValue,\n      clamp = false,\n      piecewise,\n      output,\n      input;\n\n  function rescale() {\n    piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;\n    output = input = null;\n    return scale;\n  }\n\n  function scale(x) {\n    return (output || (output = piecewise(domain, range, clamp ? deinterpolateClamp(deinterpolate) : deinterpolate, interpolate)))(+x);\n  }\n\n  scale.invert = function(y) {\n    return (input || (input = piecewise(range, domain, deinterpolateLinear, clamp ? reinterpolateClamp(reinterpolate) : reinterpolate)))(+y);\n  };\n\n  scale.domain = function(_) {\n    return arguments.length ? (domain = map.call(_, number), rescale()) : domain.slice();\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n  };\n\n  scale.rangeRound = function(_) {\n    return range = slice.call(_), interpolate = interpolateRound, rescale();\n  };\n\n  scale.clamp = function(_) {\n    return arguments.length ? (clamp = !!_, rescale()) : clamp;\n  };\n\n  scale.interpolate = function(_) {\n    return arguments.length ? (interpolate = _, rescale()) : interpolate;\n  };\n\n  return rescale();\n}\n","// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimal(1.23) returns [\"123\", 0].\nexport default function(x, p) {\n  if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n  var i, coefficient = x.slice(0, i);\n\n  // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n  // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n  return [\n    coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n    +x.slice(i + 1)\n  ];\n}\n","import formatDecimal from \"./formatDecimal\";\n\nexport default function(x) {\n  return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n  return function(value, width) {\n    var i = value.length,\n        t = [],\n        j = 0,\n        g = grouping[0],\n        length = 0;\n\n    while (i > 0 && g > 0) {\n      if (length + g + 1 > width) g = Math.max(1, width - length);\n      t.push(value.substring(i -= g, i + g));\n      if ((length += g + 1) > width) break;\n      g = grouping[j = (j + 1) % grouping.length];\n    }\n\n    return t.reverse().join(thousands);\n  };\n}\n","export default function(x, p) {\n  x = x.toPrecision(p);\n\n  out: for (var n = x.length, i = 1, i0 = -1, i1; i < n; ++i) {\n    switch (x[i]) {\n      case \".\": i0 = i1 = i; break;\n      case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n      case \"e\": break out;\n      default: if (i0 > 0) i0 = 0; break;\n    }\n  }\n\n  return i0 > 0 ? x.slice(0, i0) + x.slice(i1 + 1) : x;\n}\n","import formatDecimal from \"./formatDecimal\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n  var d = formatDecimal(x, p);\n  if (!d) return x + \"\";\n  var coefficient = d[0],\n      exponent = d[1],\n      i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n      n = coefficient.length;\n  return i === n ? coefficient\n      : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n      : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n      : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import formatDecimal from \"./formatDecimal\";\n\nexport default function(x, p) {\n  var d = formatDecimal(x, p);\n  if (!d) return x + \"\";\n  var coefficient = d[0],\n      exponent = d[1];\n  return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n      : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n      : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDefault from \"./formatDefault\";\nimport formatPrefixAuto from \"./formatPrefixAuto\";\nimport formatRounded from \"./formatRounded\";\n\nexport default {\n  \"\": formatDefault,\n  \"%\": function(x, p) { return (x * 100).toFixed(p); },\n  \"b\": function(x) { return Math.round(x).toString(2); },\n  \"c\": function(x) { return x + \"\"; },\n  \"d\": function(x) { return Math.round(x).toString(10); },\n  \"e\": function(x, p) { return x.toExponential(p); },\n  \"f\": function(x, p) { return x.toFixed(p); },\n  \"g\": function(x, p) { return x.toPrecision(p); },\n  \"o\": function(x) { return Math.round(x).toString(8); },\n  \"p\": function(x, p) { return formatRounded(x * 100, p); },\n  \"r\": formatRounded,\n  \"s\": formatPrefixAuto,\n  \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n  \"x\": function(x) { return Math.round(x).toString(16); }\n};\n","import formatTypes from \"./formatTypes\";\n\n// [[fill]align][sign][symbol][0][width][,][.precision][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-\\( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?([a-z%])?$/i;\n\nexport default function(specifier) {\n  return new FormatSpecifier(specifier);\n}\n\nfunction FormatSpecifier(specifier) {\n  if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n\n  var match,\n      fill = match[1] || \" \",\n      align = match[2] || \">\",\n      sign = match[3] || \"-\",\n      symbol = match[4] || \"\",\n      zero = !!match[5],\n      width = match[6] && +match[6],\n      comma = !!match[7],\n      precision = match[8] && +match[8].slice(1),\n      type = match[9] || \"\";\n\n  // The \"n\" type is an alias for \",g\".\n  if (type === \"n\") comma = true, type = \"g\";\n\n  // Map invalid types to the default format.\n  else if (!formatTypes[type]) type = \"\";\n\n  // If zero fill is specified, padding goes after sign and before digits.\n  if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n  this.fill = fill;\n  this.align = align;\n  this.sign = sign;\n  this.symbol = symbol;\n  this.zero = zero;\n  this.width = width;\n  this.comma = comma;\n  this.precision = precision;\n  this.type = type;\n}\n\nFormatSpecifier.prototype.toString = function() {\n  return this.fill\n      + this.align\n      + this.sign\n      + this.symbol\n      + (this.zero ? \"0\" : \"\")\n      + (this.width == null ? \"\" : Math.max(1, this.width | 0))\n      + (this.comma ? \",\" : \"\")\n      + (this.precision == null ? \"\" : \".\" + Math.max(0, this.precision | 0))\n      + this.type;\n};\n","import exponent from \"./exponent\";\nimport formatGroup from \"./formatGroup\";\nimport formatSpecifier from \"./formatSpecifier\";\nimport formatTypes from \"./formatTypes\";\nimport {prefixExponent} from \"./formatPrefixAuto\";\n\nvar prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nfunction identity(x) {\n  return x;\n}\n\nexport default function(locale) {\n  var group = locale.grouping && locale.thousands ? formatGroup(locale.grouping, locale.thousands) : identity,\n      currency = locale.currency,\n      decimal = locale.decimal;\n\n  function newFormat(specifier) {\n    specifier = formatSpecifier(specifier);\n\n    var fill = specifier.fill,\n        align = specifier.align,\n        sign = specifier.sign,\n        symbol = specifier.symbol,\n        zero = specifier.zero,\n        width = specifier.width,\n        comma = specifier.comma,\n        precision = specifier.precision,\n        type = specifier.type;\n\n    // Compute the prefix and suffix.\n    // For SI-prefix, the suffix is lazily computed.\n    var prefix = symbol === \"$\" ? currency[0] : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n        suffix = symbol === \"$\" ? currency[1] : /[%p]/.test(type) ? \"%\" : \"\";\n\n    // What format function should we use?\n    // Is this an integer type?\n    // Can this type generate exponential notation?\n    var formatType = formatTypes[type],\n        maybeSuffix = !type || /[defgprs%]/.test(type);\n\n    // Set the default precision if not specified,\n    // or clamp the specified precision to the supported range.\n    // For significant precision, it must be in [1, 21].\n    // For fixed precision, it must be in [0, 20].\n    precision = precision == null ? (type ? 6 : 12)\n        : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n        : Math.max(0, Math.min(20, precision));\n\n    function format(value) {\n      var valuePrefix = prefix,\n          valueSuffix = suffix,\n          i, n, c;\n\n      if (type === \"c\") {\n        valueSuffix = formatType(value) + valueSuffix;\n        value = \"\";\n      } else {\n        value = +value;\n\n        // Convert negative to positive, and compute the prefix.\n        // Note that -0 is not less than 0, but 1 / -0 is!\n        var valueNegative = (value < 0 || 1 / value < 0) && (value *= -1, true);\n\n        // Perform the initial formatting.\n        value = formatType(value, precision);\n\n        // If the original value was negative, it may be rounded to zero during\n        // formatting; treat this as (positive) zero.\n        if (valueNegative) {\n          i = -1, n = value.length;\n          valueNegative = false;\n          while (++i < n) {\n            if (c = value.charCodeAt(i), (48 < c && c < 58)\n                || (type === \"x\" && 96 < c && c < 103)\n                || (type === \"X\" && 64 < c && c < 71)) {\n              valueNegative = true;\n              break;\n            }\n          }\n        }\n\n        // Compute the prefix and suffix.\n        valuePrefix = (valueNegative ? (sign === \"(\" ? sign : \"-\") : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n        valueSuffix = valueSuffix + (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n        // Break the formatted value into the integer “value” part that can be\n        // grouped, and fractional or exponential “suffix” part that is not.\n        if (maybeSuffix) {\n          i = -1, n = value.length;\n          while (++i < n) {\n            if (c = value.charCodeAt(i), 48 > c || c > 57) {\n              valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n              value = value.slice(0, i);\n              break;\n            }\n          }\n        }\n      }\n\n      // If the fill character is not \"0\", grouping is applied before padding.\n      if (comma && !zero) value = group(value, Infinity);\n\n      // Compute the padding.\n      var length = valuePrefix.length + value.length + valueSuffix.length,\n          padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n      // If the fill character is \"0\", grouping is applied after padding.\n      if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n      // Reconstruct the final output based on the desired alignment.\n      switch (align) {\n        case \"<\": return valuePrefix + value + valueSuffix + padding;\n        case \"=\": return valuePrefix + padding + value + valueSuffix;\n        case \"^\": return padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);\n      }\n      return padding + valuePrefix + value + valueSuffix;\n    }\n\n    format.toString = function() {\n      return specifier + \"\";\n    };\n\n    return format;\n  }\n\n  function formatPrefix(specifier, value) {\n    var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n        e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n        k = Math.pow(10, -e),\n        prefix = prefixes[8 + e / 3];\n    return function(value) {\n      return f(k * value) + prefix;\n    };\n  }\n\n  return {\n    format: newFormat,\n    formatPrefix: formatPrefix\n  };\n}\n","import formatLocale from \"./locale\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n  decimal: \".\",\n  thousands: \",\",\n  grouping: [3],\n  currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n  locale = formatLocale(definition);\n  format = locale.format;\n  formatPrefix = locale.formatPrefix;\n  return locale;\n}\n","import exponent from \"./exponent\";\n\nexport default function(step) {\n  return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent\";\n\nexport default function(step, value) {\n  return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent\";\n\nexport default function(step, max) {\n  step = Math.abs(step), max = Math.abs(max) - step;\n  return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function(domain, count, specifier) {\n  var start = domain[0],\n      stop = domain[domain.length - 1],\n      step = tickStep(start, stop, count == null ? 10 : count),\n      precision;\n  specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n  switch (specifier.type) {\n    case \"s\": {\n      var value = Math.max(Math.abs(start), Math.abs(stop));\n      if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n      return formatPrefix(specifier, value);\n    }\n    case \"\":\n    case \"e\":\n    case \"g\":\n    case \"p\":\n    case \"r\": {\n      if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n      break;\n    }\n    case \"f\":\n    case \"%\": {\n      if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n      break;\n    }\n  }\n  return format(specifier);\n}\n","import {ticks, tickStep} from \"d3-array\";\nimport {interpolateNumber as reinterpolate} from \"d3-interpolate\";\nimport {default as continuous, copy, deinterpolateLinear as deinterpolate} from \"./continuous\";\nimport tickFormat from \"./tickFormat\";\n\nexport function linearish(scale) {\n  var domain = scale.domain;\n\n  scale.ticks = function(count) {\n    var d = domain();\n    return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n  };\n\n  scale.tickFormat = function(count, specifier) {\n    return tickFormat(domain(), count, specifier);\n  };\n\n  scale.nice = function(count) {\n    var d = domain(),\n        i = d.length - 1,\n        n = count == null ? 10 : count,\n        start = d[0],\n        stop = d[i],\n        step = tickStep(start, stop, n);\n\n    if (step) {\n      step = tickStep(Math.floor(start / step) * step, Math.ceil(stop / step) * step, n);\n      d[0] = Math.floor(start / step) * step;\n      d[i] = Math.ceil(stop / step) * step;\n      domain(d);\n    }\n\n    return scale;\n  };\n\n  return scale;\n}\n\nexport default function linear() {\n  var scale = continuous(deinterpolate, reinterpolate);\n\n  scale.copy = function() {\n    return copy(scale, linear());\n  };\n\n  return linearish(scale);\n}\n","export default function(domain, interval) {\n  domain = domain.slice();\n\n  var i0 = 0,\n      i1 = domain.length - 1,\n      x0 = domain[i0],\n      x1 = domain[i1],\n      t;\n\n  if (x1 < x0) {\n    t = i0, i0 = i1, i1 = t;\n    t = x0, x0 = x1, x1 = t;\n  }\n\n  domain[i0] = interval.floor(x0);\n  domain[i1] = interval.ceil(x1);\n  return domain;\n}\n","var t0 = new Date,\n    t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n  function interval(date) {\n    return floori(date = new Date(+date)), date;\n  }\n\n  interval.floor = interval;\n\n  interval.ceil = function(date) {\n    return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n  };\n\n  interval.round = function(date) {\n    var d0 = interval(date),\n        d1 = interval.ceil(date);\n    return date - d0 < d1 - date ? d0 : d1;\n  };\n\n  interval.offset = function(date, step) {\n    return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n  };\n\n  interval.range = function(start, stop, step) {\n    var range = [], previous;\n    start = interval.ceil(start);\n    step = step == null ? 1 : Math.floor(step);\n    if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n    do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n    while (previous < start && start < stop);\n    return range;\n  };\n\n  interval.filter = function(test) {\n    return newInterval(function(date) {\n      if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n    }, function(date, step) {\n      if (date >= date) {\n        if (step < 0) while (++step <= 0) {\n          while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n        } else while (--step >= 0) {\n          while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n        }\n      }\n    });\n  };\n\n  if (count) {\n    interval.count = function(start, end) {\n      t0.setTime(+start), t1.setTime(+end);\n      floori(t0), floori(t1);\n      return Math.floor(count(t0, t1));\n    };\n\n    interval.every = function(step) {\n      step = Math.floor(step);\n      return !isFinite(step) || !(step > 0) ? null\n          : !(step > 1) ? interval\n          : interval.filter(field\n              ? function(d) { return field(d) % step === 0; }\n              : function(d) { return interval.count(0, d) % step === 0; });\n    };\n  }\n\n  return interval;\n}\n","import interval from \"./interval\";\n\nvar millisecond = interval(function() {\n  // noop\n}, function(date, step) {\n  date.setTime(+date + step);\n}, function(start, end) {\n  return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n  k = Math.floor(k);\n  if (!isFinite(k) || !(k > 0)) return null;\n  if (!(k > 1)) return millisecond;\n  return interval(function(date) {\n    date.setTime(Math.floor(date / k) * k);\n  }, function(date, step) {\n    date.setTime(+date + step * k);\n  }, function(start, end) {\n    return (end - start) / k;\n  });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval\";\nimport {durationSecond} from \"./duration\";\n\nvar second = interval(function(date) {\n  date.setTime(Math.floor(date / durationSecond) * durationSecond);\n}, function(date, step) {\n  date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n  return (end - start) / durationSecond;\n}, function(date) {\n  return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval\";\nimport {durationMinute} from \"./duration\";\n\nvar minute = interval(function(date) {\n  date.setTime(Math.floor(date / durationMinute) * durationMinute);\n}, function(date, step) {\n  date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n  return (end - start) / durationMinute;\n}, function(date) {\n  return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval\";\nimport {durationHour, durationMinute} from \"./duration\";\n\nvar hour = interval(function(date) {\n  var offset = date.getTimezoneOffset() * durationMinute % durationHour;\n  if (offset < 0) offset += durationHour;\n  date.setTime(Math.floor((+date - offset) / durationHour) * durationHour + offset);\n}, function(date, step) {\n  date.setTime(+date + step * durationHour);\n}, function(start, end) {\n  return (end - start) / durationHour;\n}, function(date) {\n  return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval\";\nimport {durationDay, durationMinute} from \"./duration\";\n\nvar day = interval(function(date) {\n  date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setDate(date.getDate() + step);\n}, function(start, end) {\n  return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n  return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval\";\nimport {durationMinute, durationWeek} from \"./duration\";\n\nfunction weekday(i) {\n  return interval(function(date) {\n    date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n    date.setHours(0, 0, 0, 0);\n  }, function(date, step) {\n    date.setDate(date.getDate() + step * 7);\n  }, function(start, end) {\n    return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n  });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval\";\n\nvar month = interval(function(date) {\n  date.setDate(1);\n  date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n  return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n  return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval\";\n\nvar year = interval(function(date) {\n  date.setMonth(0, 1);\n  date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n  return end.getFullYear() - start.getFullYear();\n}, function(date) {\n  return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n    date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n    date.setMonth(0, 1);\n    date.setHours(0, 0, 0, 0);\n  }, function(date, step) {\n    date.setFullYear(date.getFullYear() + step * k);\n  });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval\";\nimport {durationMinute} from \"./duration\";\n\nvar utcMinute = interval(function(date) {\n  date.setUTCSeconds(0, 0);\n}, function(date, step) {\n  date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n  return (end - start) / durationMinute;\n}, function(date) {\n  return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval\";\nimport {durationHour} from \"./duration\";\n\nvar utcHour = interval(function(date) {\n  date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n  date.setTime(+date + step * durationHour);\n}, function(start, end) {\n  return (end - start) / durationHour;\n}, function(date) {\n  return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval\";\nimport {durationDay} from \"./duration\";\n\nvar utcDay = interval(function(date) {\n  date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n  return (end - start) / durationDay;\n}, function(date) {\n  return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval\";\nimport {durationWeek} from \"./duration\";\n\nfunction utcWeekday(i) {\n  return interval(function(date) {\n    date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n    date.setUTCHours(0, 0, 0, 0);\n  }, function(date, step) {\n    date.setUTCDate(date.getUTCDate() + step * 7);\n  }, function(start, end) {\n    return (end - start) / durationWeek;\n  });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval\";\n\nvar utcMonth = interval(function(date) {\n  date.setUTCDate(1);\n  date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n  return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n  return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval\";\n\nvar utcYear = interval(function(date) {\n  date.setUTCMonth(0, 1);\n  date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n  return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n  return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n    date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n    date.setUTCMonth(0, 1);\n    date.setUTCHours(0, 0, 0, 0);\n  }, function(date, step) {\n    date.setUTCFullYear(date.getUTCFullYear() + step * k);\n  });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import {\n  timeDay,\n  timeSunday,\n  timeMonday,\n  timeThursday,\n  timeYear,\n  utcDay,\n  utcSunday,\n  utcMonday,\n  utcThursday,\n  utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n  if (0 <= d.y && d.y < 100) {\n    var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n    date.setFullYear(d.y);\n    return date;\n  }\n  return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n  if (0 <= d.y && d.y < 100) {\n    var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n    date.setUTCFullYear(d.y);\n    return date;\n  }\n  return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newYear(y) {\n  return {y: y, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n  var locale_dateTime = locale.dateTime,\n      locale_date = locale.date,\n      locale_time = locale.time,\n      locale_periods = locale.periods,\n      locale_weekdays = locale.days,\n      locale_shortWeekdays = locale.shortDays,\n      locale_months = locale.months,\n      locale_shortMonths = locale.shortMonths;\n\n  var periodRe = formatRe(locale_periods),\n      periodLookup = formatLookup(locale_periods),\n      weekdayRe = formatRe(locale_weekdays),\n      weekdayLookup = formatLookup(locale_weekdays),\n      shortWeekdayRe = formatRe(locale_shortWeekdays),\n      shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n      monthRe = formatRe(locale_months),\n      monthLookup = formatLookup(locale_months),\n      shortMonthRe = formatRe(locale_shortMonths),\n      shortMonthLookup = formatLookup(locale_shortMonths);\n\n  var formats = {\n    \"a\": formatShortWeekday,\n    \"A\": formatWeekday,\n    \"b\": formatShortMonth,\n    \"B\": formatMonth,\n    \"c\": null,\n    \"d\": formatDayOfMonth,\n    \"e\": formatDayOfMonth,\n    \"f\": formatMicroseconds,\n    \"H\": formatHour24,\n    \"I\": formatHour12,\n    \"j\": formatDayOfYear,\n    \"L\": formatMilliseconds,\n    \"m\": formatMonthNumber,\n    \"M\": formatMinutes,\n    \"p\": formatPeriod,\n    \"Q\": formatUnixTimestamp,\n    \"s\": formatUnixTimestampSeconds,\n    \"S\": formatSeconds,\n    \"u\": formatWeekdayNumberMonday,\n    \"U\": formatWeekNumberSunday,\n    \"V\": formatWeekNumberISO,\n    \"w\": formatWeekdayNumberSunday,\n    \"W\": formatWeekNumberMonday,\n    \"x\": null,\n    \"X\": null,\n    \"y\": formatYear,\n    \"Y\": formatFullYear,\n    \"Z\": formatZone,\n    \"%\": formatLiteralPercent\n  };\n\n  var utcFormats = {\n    \"a\": formatUTCShortWeekday,\n    \"A\": formatUTCWeekday,\n    \"b\": formatUTCShortMonth,\n    \"B\": formatUTCMonth,\n    \"c\": null,\n    \"d\": formatUTCDayOfMonth,\n    \"e\": formatUTCDayOfMonth,\n    \"f\": formatUTCMicroseconds,\n    \"H\": formatUTCHour24,\n    \"I\": formatUTCHour12,\n    \"j\": formatUTCDayOfYear,\n    \"L\": formatUTCMilliseconds,\n    \"m\": formatUTCMonthNumber,\n    \"M\": formatUTCMinutes,\n    \"p\": formatUTCPeriod,\n    \"Q\": formatUnixTimestamp,\n    \"s\": formatUnixTimestampSeconds,\n    \"S\": formatUTCSeconds,\n    \"u\": formatUTCWeekdayNumberMonday,\n    \"U\": formatUTCWeekNumberSunday,\n    \"V\": formatUTCWeekNumberISO,\n    \"w\": formatUTCWeekdayNumberSunday,\n    \"W\": formatUTCWeekNumberMonday,\n    \"x\": null,\n    \"X\": null,\n    \"y\": formatUTCYear,\n    \"Y\": formatUTCFullYear,\n    \"Z\": formatUTCZone,\n    \"%\": formatLiteralPercent\n  };\n\n  var parses = {\n    \"a\": parseShortWeekday,\n    \"A\": parseWeekday,\n    \"b\": parseShortMonth,\n    \"B\": parseMonth,\n    \"c\": parseLocaleDateTime,\n    \"d\": parseDayOfMonth,\n    \"e\": parseDayOfMonth,\n    \"f\": parseMicroseconds,\n    \"H\": parseHour24,\n    \"I\": parseHour24,\n    \"j\": parseDayOfYear,\n    \"L\": parseMilliseconds,\n    \"m\": parseMonthNumber,\n    \"M\": parseMinutes,\n    \"p\": parsePeriod,\n    \"Q\": parseUnixTimestamp,\n    \"s\": parseUnixTimestampSeconds,\n    \"S\": parseSeconds,\n    \"u\": parseWeekdayNumberMonday,\n    \"U\": parseWeekNumberSunday,\n    \"V\": parseWeekNumberISO,\n    \"w\": parseWeekdayNumberSunday,\n    \"W\": parseWeekNumberMonday,\n    \"x\": parseLocaleDate,\n    \"X\": parseLocaleTime,\n    \"y\": parseYear,\n    \"Y\": parseFullYear,\n    \"Z\": parseZone,\n    \"%\": parseLiteralPercent\n  };\n\n  // These recursive directive definitions must be deferred.\n  formats.x = newFormat(locale_date, formats);\n  formats.X = newFormat(locale_time, formats);\n  formats.c = newFormat(locale_dateTime, formats);\n  utcFormats.x = newFormat(locale_date, utcFormats);\n  utcFormats.X = newFormat(locale_time, utcFormats);\n  utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n  function newFormat(specifier, formats) {\n    return function(date) {\n      var string = [],\n          i = -1,\n          j = 0,\n          n = specifier.length,\n          c,\n          pad,\n          format;\n\n      if (!(date instanceof Date)) date = new Date(+date);\n\n      while (++i < n) {\n        if (specifier.charCodeAt(i) === 37) {\n          string.push(specifier.slice(j, i));\n          if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n          else pad = c === \"e\" ? \" \" : \"0\";\n          if (format = formats[c]) c = format(date, pad);\n          string.push(c);\n          j = i + 1;\n        }\n      }\n\n      string.push(specifier.slice(j, i));\n      return string.join(\"\");\n    };\n  }\n\n  function newParse(specifier, newDate) {\n    return function(string) {\n      var d = newYear(1900),\n          i = parseSpecifier(d, specifier, string += \"\", 0),\n          week, day;\n      if (i != string.length) return null;\n\n      // If a UNIX timestamp is specified, return it.\n      if (\"Q\" in d) return new Date(d.Q);\n\n      // The am-pm flag is 0 for AM, and 1 for PM.\n      if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n      // Convert day-of-week and week-of-year to day-of-year.\n      if (\"V\" in d) {\n        if (d.V < 1 || d.V > 53) return null;\n        if (!(\"w\" in d)) d.w = 1;\n        if (\"Z\" in d) {\n          week = utcDate(newYear(d.y)), day = week.getUTCDay();\n          week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n          week = utcDay.offset(week, (d.V - 1) * 7);\n          d.y = week.getUTCFullYear();\n          d.m = week.getUTCMonth();\n          d.d = week.getUTCDate() + (d.w + 6) % 7;\n        } else {\n          week = newDate(newYear(d.y)), day = week.getDay();\n          week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n          week = timeDay.offset(week, (d.V - 1) * 7);\n          d.y = week.getFullYear();\n          d.m = week.getMonth();\n          d.d = week.getDate() + (d.w + 6) % 7;\n        }\n      } else if (\"W\" in d || \"U\" in d) {\n        if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n        day = \"Z\" in d ? utcDate(newYear(d.y)).getUTCDay() : newDate(newYear(d.y)).getDay();\n        d.m = 0;\n        d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n      }\n\n      // If a time zone is specified, all fields are interpreted as UTC and then\n      // offset according to the specified time zone.\n      if (\"Z\" in d) {\n        d.H += d.Z / 100 | 0;\n        d.M += d.Z % 100;\n        return utcDate(d);\n      }\n\n      // Otherwise, all fields are in local time.\n      return newDate(d);\n    };\n  }\n\n  function parseSpecifier(d, specifier, string, j) {\n    var i = 0,\n        n = specifier.length,\n        m = string.length,\n        c,\n        parse;\n\n    while (i < n) {\n      if (j >= m) return -1;\n      c = specifier.charCodeAt(i++);\n      if (c === 37) {\n        c = specifier.charAt(i++);\n        parse = parses[c in pads ? specifier.charAt(i++) : c];\n        if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n      } else if (c != string.charCodeAt(j++)) {\n        return -1;\n      }\n    }\n\n    return j;\n  }\n\n  function parsePeriod(d, string, i) {\n    var n = periodRe.exec(string.slice(i));\n    return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n  }\n\n  function parseShortWeekday(d, string, i) {\n    var n = shortWeekdayRe.exec(string.slice(i));\n    return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n  }\n\n  function parseWeekday(d, string, i) {\n    var n = weekdayRe.exec(string.slice(i));\n    return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n  }\n\n  function parseShortMonth(d, string, i) {\n    var n = shortMonthRe.exec(string.slice(i));\n    return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n  }\n\n  function parseMonth(d, string, i) {\n    var n = monthRe.exec(string.slice(i));\n    return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n  }\n\n  function parseLocaleDateTime(d, string, i) {\n    return parseSpecifier(d, locale_dateTime, string, i);\n  }\n\n  function parseLocaleDate(d, string, i) {\n    return parseSpecifier(d, locale_date, string, i);\n  }\n\n  function parseLocaleTime(d, string, i) {\n    return parseSpecifier(d, locale_time, string, i);\n  }\n\n  function formatShortWeekday(d) {\n    return locale_shortWeekdays[d.getDay()];\n  }\n\n  function formatWeekday(d) {\n    return locale_weekdays[d.getDay()];\n  }\n\n  function formatShortMonth(d) {\n    return locale_shortMonths[d.getMonth()];\n  }\n\n  function formatMonth(d) {\n    return locale_months[d.getMonth()];\n  }\n\n  function formatPeriod(d) {\n    return locale_periods[+(d.getHours() >= 12)];\n  }\n\n  function formatUTCShortWeekday(d) {\n    return locale_shortWeekdays[d.getUTCDay()];\n  }\n\n  function formatUTCWeekday(d) {\n    return locale_weekdays[d.getUTCDay()];\n  }\n\n  function formatUTCShortMonth(d) {\n    return locale_shortMonths[d.getUTCMonth()];\n  }\n\n  function formatUTCMonth(d) {\n    return locale_months[d.getUTCMonth()];\n  }\n\n  function formatUTCPeriod(d) {\n    return locale_periods[+(d.getUTCHours() >= 12)];\n  }\n\n  return {\n    format: function(specifier) {\n      var f = newFormat(specifier += \"\", formats);\n      f.toString = function() { return specifier; };\n      return f;\n    },\n    parse: function(specifier) {\n      var p = newParse(specifier += \"\", localDate);\n      p.toString = function() { return specifier; };\n      return p;\n    },\n    utcFormat: function(specifier) {\n      var f = newFormat(specifier += \"\", utcFormats);\n      f.toString = function() { return specifier; };\n      return f;\n    },\n    utcParse: function(specifier) {\n      var p = newParse(specifier, utcDate);\n      p.toString = function() { return specifier; };\n      return p;\n    }\n  };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n    numberRe = /^\\s*\\d+/, // note: ignores next directive\n    percentRe = /^%/,\n    requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n  var sign = value < 0 ? \"-\" : \"\",\n      string = (sign ? -value : value) + \"\",\n      length = string.length;\n  return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n  return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n  return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n  var map = {}, i = -1, n = names.length;\n  while (++i < n) map[names[i].toLowerCase()] = i;\n  return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 1));\n  return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 1));\n  return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 4));\n  return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n  var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n  return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 3));\n  return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 3));\n  return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 6));\n  return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n  var n = percentRe.exec(string.slice(i, i + 1));\n  return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n  var n = numberRe.exec(string.slice(i));\n  return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i));\n  return n ? (d.Q = (+n[0]) * 1000, i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n  return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n  return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n  return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n  return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n  return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n  return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n  return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n  return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n  return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n  var day = d.getDay();\n  return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n  return pad(timeSunday.count(timeYear(d), d), p, 2);\n}\n\nfunction formatWeekNumberISO(d, p) {\n  var day = d.getDay();\n  d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n  return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n  return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n  return pad(timeMonday.count(timeYear(d), d), p, 2);\n}\n\nfunction formatYear(d, p) {\n  return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n  return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n  var z = d.getTimezoneOffset();\n  return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n      + pad(z / 60 | 0, \"0\", 2)\n      + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n  return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n  return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n  return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n  return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n  return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n  return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n  return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n  return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n  return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n  var dow = d.getUTCDay();\n  return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n  return pad(utcSunday.count(utcYear(d), d), p, 2);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n  var day = d.getUTCDay();\n  d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n  return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n  return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n  return pad(utcMonday.count(utcYear(d), d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n  return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n  return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n  return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n  return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n  return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n  return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n  dateTime: \"%x, %X\",\n  date: \"%-m/%-d/%Y\",\n  time: \"%-I:%M:%S %p\",\n  periods: [\"AM\", \"PM\"],\n  days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n  shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n  months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n  shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n  locale = formatLocale(definition);\n  timeFormat = locale.format;\n  timeParse = locale.parse;\n  utcFormat = locale.utcFormat;\n  utcParse = locale.utcParse;\n  return locale;\n}\n","import {utcFormat} from \"./defaultLocale\";\n\nexport var isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n  return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n    ? formatIsoNative\n    : utcFormat(isoSpecifier);\n\nexport default formatIso;\n","import {isoSpecifier} from \"./isoFormat\";\nimport {utcParse} from \"./defaultLocale\";\n\nfunction parseIsoNative(string) {\n  var date = new Date(string);\n  return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n    ? parseIsoNative\n    : utcParse(isoSpecifier);\n\nexport default parseIso;\n","import {bisector, tickStep} from \"d3-array\";\nimport {interpolateNumber as reinterpolate} from \"d3-interpolate\";\nimport {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport {map} from \"./array\";\nimport {default as continuous, copy, deinterpolateLinear as deinterpolate} from \"./continuous\";\nimport nice from \"./nice\";\n\nvar durationSecond = 1000,\n    durationMinute = durationSecond * 60,\n    durationHour = durationMinute * 60,\n    durationDay = durationHour * 24,\n    durationWeek = durationDay * 7,\n    durationMonth = durationDay * 30,\n    durationYear = durationDay * 365;\n\nfunction date(t) {\n  return new Date(t);\n}\n\nfunction number(t) {\n  return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n  var scale = continuous(deinterpolate, reinterpolate),\n      invert = scale.invert,\n      domain = scale.domain;\n\n  var formatMillisecond = format(\".%L\"),\n      formatSecond = format(\":%S\"),\n      formatMinute = format(\"%I:%M\"),\n      formatHour = format(\"%I %p\"),\n      formatDay = format(\"%a %d\"),\n      formatWeek = format(\"%b %d\"),\n      formatMonth = format(\"%B\"),\n      formatYear = format(\"%Y\");\n\n  var tickIntervals = [\n    [second,  1,      durationSecond],\n    [second,  5,  5 * durationSecond],\n    [second, 15, 15 * durationSecond],\n    [second, 30, 30 * durationSecond],\n    [minute,  1,      durationMinute],\n    [minute,  5,  5 * durationMinute],\n    [minute, 15, 15 * durationMinute],\n    [minute, 30, 30 * durationMinute],\n    [  hour,  1,      durationHour  ],\n    [  hour,  3,  3 * durationHour  ],\n    [  hour,  6,  6 * durationHour  ],\n    [  hour, 12, 12 * durationHour  ],\n    [   day,  1,      durationDay   ],\n    [   day,  2,  2 * durationDay   ],\n    [  week,  1,      durationWeek  ],\n    [ month,  1,      durationMonth ],\n    [ month,  3,  3 * durationMonth ],\n    [  year,  1,      durationYear  ]\n  ];\n\n  function tickFormat(date) {\n    return (second(date) < date ? formatMillisecond\n        : minute(date) < date ? formatSecond\n        : hour(date) < date ? formatMinute\n        : day(date) < date ? formatHour\n        : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n        : year(date) < date ? formatMonth\n        : formatYear)(date);\n  }\n\n  function tickInterval(interval, start, stop, step) {\n    if (interval == null) interval = 10;\n\n    // If a desired tick count is specified, pick a reasonable tick interval\n    // based on the extent of the domain and a rough estimate of tick size.\n    // Otherwise, assume interval is already a time interval and use it.\n    if (typeof interval === \"number\") {\n      var target = Math.abs(stop - start) / interval,\n          i = bisector(function(i) { return i[2]; }).right(tickIntervals, target);\n      if (i === tickIntervals.length) {\n        step = tickStep(start / durationYear, stop / durationYear, interval);\n        interval = year;\n      } else if (i) {\n        i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n        step = i[1];\n        interval = i[0];\n      } else {\n        step = tickStep(start, stop, interval);\n        interval = millisecond;\n      }\n    }\n\n    return step == null ? interval : interval.every(step);\n  }\n\n  scale.invert = function(y) {\n    return new Date(invert(y));\n  };\n\n  scale.domain = function(_) {\n    return arguments.length ? domain(map.call(_, number)) : domain().map(date);\n  };\n\n  scale.ticks = function(interval, step) {\n    var d = domain(),\n        t0 = d[0],\n        t1 = d[d.length - 1],\n        r = t1 < t0,\n        t;\n    if (r) t = t0, t0 = t1, t1 = t;\n    t = tickInterval(interval, t0, t1, step);\n    t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n    return r ? t.reverse() : t;\n  };\n\n  scale.tickFormat = function(count, specifier) {\n    return specifier == null ? tickFormat : format(specifier);\n  };\n\n  scale.nice = function(interval, step) {\n    var d = domain();\n    return (interval = tickInterval(interval, d[0], d[d.length - 1], step))\n        ? domain(nice(d, interval))\n        : scale;\n  };\n\n  scale.copy = function() {\n    return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n  };\n\n  return scale;\n}\n\nexport default function() {\n  return calendar(timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]);\n}\n","export default function(s) {\n  return s.match(/.{6}/g).map(function(x) {\n    return \"#\" + x;\n  });\n}\n","import colors from \"./colors\";\n\nexport default colors(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\");\n","import colors from \"./colors\";\n\nexport default colors(\"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6\");\n","import colors from \"./colors\";\n\nexport default colors(\"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9\");\n","import colors from \"./colors\";\n\nexport default colors(\"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5\");\n","export default function(constructor, factory, prototype) {\n  constructor.prototype = factory.prototype = prototype;\n  prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n  var prototype = Object.create(parent.prototype);\n  for (var key in definition) prototype[key] = definition[key];\n  return prototype;\n}\n","import define, {extend} from \"./define\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n    reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n    reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n    reHex3 = /^#([0-9a-f]{3})$/,\n    reHex6 = /^#([0-9a-f]{6})$/,\n    reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n    reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n    reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n    reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n    reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n    reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n  aliceblue: 0xf0f8ff,\n  antiquewhite: 0xfaebd7,\n  aqua: 0x00ffff,\n  aquamarine: 0x7fffd4,\n  azure: 0xf0ffff,\n  beige: 0xf5f5dc,\n  bisque: 0xffe4c4,\n  black: 0x000000,\n  blanchedalmond: 0xffebcd,\n  blue: 0x0000ff,\n  blueviolet: 0x8a2be2,\n  brown: 0xa52a2a,\n  burlywood: 0xdeb887,\n  cadetblue: 0x5f9ea0,\n  chartreuse: 0x7fff00,\n  chocolate: 0xd2691e,\n  coral: 0xff7f50,\n  cornflowerblue: 0x6495ed,\n  cornsilk: 0xfff8dc,\n  crimson: 0xdc143c,\n  cyan: 0x00ffff,\n  darkblue: 0x00008b,\n  darkcyan: 0x008b8b,\n  darkgoldenrod: 0xb8860b,\n  darkgray: 0xa9a9a9,\n  darkgreen: 0x006400,\n  darkgrey: 0xa9a9a9,\n  darkkhaki: 0xbdb76b,\n  darkmagenta: 0x8b008b,\n  darkolivegreen: 0x556b2f,\n  darkorange: 0xff8c00,\n  darkorchid: 0x9932cc,\n  darkred: 0x8b0000,\n  darksalmon: 0xe9967a,\n  darkseagreen: 0x8fbc8f,\n  darkslateblue: 0x483d8b,\n  darkslategray: 0x2f4f4f,\n  darkslategrey: 0x2f4f4f,\n  darkturquoise: 0x00ced1,\n  darkviolet: 0x9400d3,\n  deeppink: 0xff1493,\n  deepskyblue: 0x00bfff,\n  dimgray: 0x696969,\n  dimgrey: 0x696969,\n  dodgerblue: 0x1e90ff,\n  firebrick: 0xb22222,\n  floralwhite: 0xfffaf0,\n  forestgreen: 0x228b22,\n  fuchsia: 0xff00ff,\n  gainsboro: 0xdcdcdc,\n  ghostwhite: 0xf8f8ff,\n  gold: 0xffd700,\n  goldenrod: 0xdaa520,\n  gray: 0x808080,\n  green: 0x008000,\n  greenyellow: 0xadff2f,\n  grey: 0x808080,\n  honeydew: 0xf0fff0,\n  hotpink: 0xff69b4,\n  indianred: 0xcd5c5c,\n  indigo: 0x4b0082,\n  ivory: 0xfffff0,\n  khaki: 0xf0e68c,\n  lavender: 0xe6e6fa,\n  lavenderblush: 0xfff0f5,\n  lawngreen: 0x7cfc00,\n  lemonchiffon: 0xfffacd,\n  lightblue: 0xadd8e6,\n  lightcoral: 0xf08080,\n  lightcyan: 0xe0ffff,\n  lightgoldenrodyellow: 0xfafad2,\n  lightgray: 0xd3d3d3,\n  lightgreen: 0x90ee90,\n  lightgrey: 0xd3d3d3,\n  lightpink: 0xffb6c1,\n  lightsalmon: 0xffa07a,\n  lightseagreen: 0x20b2aa,\n  lightskyblue: 0x87cefa,\n  lightslategray: 0x778899,\n  lightslategrey: 0x778899,\n  lightsteelblue: 0xb0c4de,\n  lightyellow: 0xffffe0,\n  lime: 0x00ff00,\n  limegreen: 0x32cd32,\n  linen: 0xfaf0e6,\n  magenta: 0xff00ff,\n  maroon: 0x800000,\n  mediumaquamarine: 0x66cdaa,\n  mediumblue: 0x0000cd,\n  mediumorchid: 0xba55d3,\n  mediumpurple: 0x9370db,\n  mediumseagreen: 0x3cb371,\n  mediumslateblue: 0x7b68ee,\n  mediumspringgreen: 0x00fa9a,\n  mediumturquoise: 0x48d1cc,\n  mediumvioletred: 0xc71585,\n  midnightblue: 0x191970,\n  mintcream: 0xf5fffa,\n  mistyrose: 0xffe4e1,\n  moccasin: 0xffe4b5,\n  navajowhite: 0xffdead,\n  navy: 0x000080,\n  oldlace: 0xfdf5e6,\n  olive: 0x808000,\n  olivedrab: 0x6b8e23,\n  orange: 0xffa500,\n  orangered: 0xff4500,\n  orchid: 0xda70d6,\n  palegoldenrod: 0xeee8aa,\n  palegreen: 0x98fb98,\n  paleturquoise: 0xafeeee,\n  palevioletred: 0xdb7093,\n  papayawhip: 0xffefd5,\n  peachpuff: 0xffdab9,\n  peru: 0xcd853f,\n  pink: 0xffc0cb,\n  plum: 0xdda0dd,\n  powderblue: 0xb0e0e6,\n  purple: 0x800080,\n  rebeccapurple: 0x663399,\n  red: 0xff0000,\n  rosybrown: 0xbc8f8f,\n  royalblue: 0x4169e1,\n  saddlebrown: 0x8b4513,\n  salmon: 0xfa8072,\n  sandybrown: 0xf4a460,\n  seagreen: 0x2e8b57,\n  seashell: 0xfff5ee,\n  sienna: 0xa0522d,\n  silver: 0xc0c0c0,\n  skyblue: 0x87ceeb,\n  slateblue: 0x6a5acd,\n  slategray: 0x708090,\n  slategrey: 0x708090,\n  snow: 0xfffafa,\n  springgreen: 0x00ff7f,\n  steelblue: 0x4682b4,\n  tan: 0xd2b48c,\n  teal: 0x008080,\n  thistle: 0xd8bfd8,\n  tomato: 0xff6347,\n  turquoise: 0x40e0d0,\n  violet: 0xee82ee,\n  wheat: 0xf5deb3,\n  white: 0xffffff,\n  whitesmoke: 0xf5f5f5,\n  yellow: 0xffff00,\n  yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n  displayable: function() {\n    return this.rgb().displayable();\n  },\n  hex: function() {\n    return this.rgb().hex();\n  },\n  toString: function() {\n    return this.rgb() + \"\";\n  }\n});\n\nexport default function color(format) {\n  var m;\n  format = (format + \"\").trim().toLowerCase();\n  return (m = reHex3.exec(format)) ? (m = parseInt(m[1], 16), new Rgb((m >> 8 & 0xf) | (m >> 4 & 0x0f0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1)) // #f00\n      : (m = reHex6.exec(format)) ? rgbn(parseInt(m[1], 16)) // #ff0000\n      : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n      : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n      : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n      : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n      : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n      : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n      : named.hasOwnProperty(format) ? rgbn(named[format])\n      : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n      : null;\n}\n\nfunction rgbn(n) {\n  return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n  if (a <= 0) r = g = b = NaN;\n  return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n  if (!(o instanceof Color)) o = color(o);\n  if (!o) return new Rgb;\n  o = o.rgb();\n  return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n  return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n  this.r = +r;\n  this.g = +g;\n  this.b = +b;\n  this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n  brighter: function(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n  },\n  darker: function(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n  },\n  rgb: function() {\n    return this;\n  },\n  displayable: function() {\n    return (0 <= this.r && this.r <= 255)\n        && (0 <= this.g && this.g <= 255)\n        && (0 <= this.b && this.b <= 255)\n        && (0 <= this.opacity && this.opacity <= 1);\n  },\n  hex: function() {\n    return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n  },\n  toString: function() {\n    var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n    return (a === 1 ? \"rgb(\" : \"rgba(\")\n        + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n        + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n        + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n        + (a === 1 ? \")\" : \", \" + a + \")\");\n  }\n}));\n\nfunction hex(value) {\n  value = Math.max(0, Math.min(255, Math.round(value) || 0));\n  return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n  if (a <= 0) h = s = l = NaN;\n  else if (l <= 0 || l >= 1) h = s = NaN;\n  else if (s <= 0) h = NaN;\n  return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n  if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n  if (!(o instanceof Color)) o = color(o);\n  if (!o) return new Hsl;\n  if (o instanceof Hsl) return o;\n  o = o.rgb();\n  var r = o.r / 255,\n      g = o.g / 255,\n      b = o.b / 255,\n      min = Math.min(r, g, b),\n      max = Math.max(r, g, b),\n      h = NaN,\n      s = max - min,\n      l = (max + min) / 2;\n  if (s) {\n    if (r === max) h = (g - b) / s + (g < b) * 6;\n    else if (g === max) h = (b - r) / s + 2;\n    else h = (r - g) / s + 4;\n    s /= l < 0.5 ? max + min : 2 - max - min;\n    h *= 60;\n  } else {\n    s = l > 0 && l < 1 ? 0 : h;\n  }\n  return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n  return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n  this.h = +h;\n  this.s = +s;\n  this.l = +l;\n  this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n  brighter: function(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Hsl(this.h, this.s, this.l * k, this.opacity);\n  },\n  darker: function(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Hsl(this.h, this.s, this.l * k, this.opacity);\n  },\n  rgb: function() {\n    var h = this.h % 360 + (this.h < 0) * 360,\n        s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n        l = this.l,\n        m2 = l + (l < 0.5 ? l : 1 - l) * s,\n        m1 = 2 * l - m2;\n    return new Rgb(\n      hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n      hsl2rgb(h, m1, m2),\n      hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n      this.opacity\n    );\n  },\n  displayable: function() {\n    return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n        && (0 <= this.l && this.l <= 1)\n        && (0 <= this.opacity && this.opacity <= 1);\n  }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n  return (h < 60 ? m1 + (m2 - m1) * h / 60\n      : h < 180 ? m2\n      : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n      : m1) * 255;\n}\n","export var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;\n","import define, {extend} from \"./define\";\nimport {Color, rgbConvert, Rgb} from \"./color\";\nimport {deg2rad, rad2deg} from \"./math\";\n\n// https://beta.observablehq.com/@mbostock/lab-and-rgb\nvar K = 18,\n    Xn = 0.96422,\n    Yn = 1,\n    Zn = 0.82521,\n    t0 = 4 / 29,\n    t1 = 6 / 29,\n    t2 = 3 * t1 * t1,\n    t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n  if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n  if (o instanceof Hcl) {\n    if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n    var h = o.h * deg2rad;\n    return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n  }\n  if (!(o instanceof Rgb)) o = rgbConvert(o);\n  var r = rgb2lrgb(o.r),\n      g = rgb2lrgb(o.g),\n      b = rgb2lrgb(o.b),\n      y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n  if (r === g && g === b) x = z = y; else {\n    x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n    z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n  }\n  return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n  return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n  return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n  this.l = +l;\n  this.a = +a;\n  this.b = +b;\n  this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n  brighter: function(k) {\n    return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n  },\n  darker: function(k) {\n    return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n  },\n  rgb: function() {\n    var y = (this.l + 16) / 116,\n        x = isNaN(this.a) ? y : y + this.a / 500,\n        z = isNaN(this.b) ? y : y - this.b / 200;\n    x = Xn * lab2xyz(x);\n    y = Yn * lab2xyz(y);\n    z = Zn * lab2xyz(z);\n    return new Rgb(\n      lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n      lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n      lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n      this.opacity\n    );\n  }\n}));\n\nfunction xyz2lab(t) {\n  return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n  return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n  return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n  return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n  if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n  if (!(o instanceof Lab)) o = labConvert(o);\n  if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0, o.l, o.opacity);\n  var h = Math.atan2(o.b, o.a) * rad2deg;\n  return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n  return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n  return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n  this.h = +h;\n  this.c = +c;\n  this.l = +l;\n  this.opacity = +opacity;\n}\n\ndefine(Hcl, hcl, extend(Color, {\n  brighter: function(k) {\n    return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n  },\n  darker: function(k) {\n    return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n  },\n  rgb: function() {\n    return labConvert(this).rgb();\n  }\n}));\n","import define, {extend} from \"./define\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color\";\nimport {deg2rad, rad2deg} from \"./math\";\n\nvar A = -0.14861,\n    B = +1.78277,\n    C = -0.29227,\n    D = -0.90649,\n    E = +1.97294,\n    ED = E * D,\n    EB = E * B,\n    BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n  if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n  if (!(o instanceof Rgb)) o = rgbConvert(o);\n  var r = o.r / 255,\n      g = o.g / 255,\n      b = o.b / 255,\n      l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n      bl = b - l,\n      k = (E * (g - l) - C * bl) / D,\n      s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n      h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n  return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n  return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n  this.h = +h;\n  this.s = +s;\n  this.l = +l;\n  this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n  brighter: function(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n  },\n  darker: function(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n  },\n  rgb: function() {\n    var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n        l = +this.l,\n        a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n        cosh = Math.cos(h),\n        sinh = Math.sin(h);\n    return new Rgb(\n      255 * (l + a * (A * cosh + B * sinh)),\n      255 * (l + a * (C * cosh + D * sinh)),\n      255 * (l + a * (E * cosh)),\n      this.opacity\n    );\n  }\n}));\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport default interpolateCubehelixLong(cubehelix(300, 0.5, 0.0), cubehelix(-240, 0.5, 1.0));\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport var warm = interpolateCubehelixLong(cubehelix(-100, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nexport var cool = interpolateCubehelixLong(cubehelix(260, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nvar rainbow = cubehelix();\n\nexport default function(t) {\n  if (t < 0 || t > 1) t -= Math.floor(t);\n  var ts = Math.abs(t - 0.5);\n  rainbow.h = 360 * t - 100;\n  rainbow.s = 1.5 - 1.5 * ts;\n  rainbow.l = 0.8 - 0.9 * ts;\n  return rainbow + \"\";\n}\n","import colors from \"./colors\";\n\nfunction ramp(range) {\n  var n = range.length;\n  return function(t) {\n    return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n  };\n}\n\nexport default ramp(colors(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\"));\n\nexport var magma = ramp(colors(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\"));\n\nexport var inferno = ramp(colors(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\"));\n\nexport var plasma = ramp(colors(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"));\n","import extent         from 'd3-array/src/extent'\nimport {axisBottom}   from 'd3-axis'\nimport {axisLeft}     from 'd3-axis'\nimport {interpolate}  from 'd3-interpolate'\nimport {line}         from 'd3-shape'\nimport {scaleLinear}  from 'd3-scale'\nimport {scaleOrdinal} from 'd3-scale'\nimport {scaleTime}    from 'd3-scale'\nimport {select}       from 'd3-selection'\nimport {symbolCircle} from 'd3-shape'\nimport {symbol}       from 'd3-shape'\nimport {timeDay}      from 'd3-time'\nimport {timeParse}    from 'd3-time-format'\nimport {transition}   from 'd3-transition'\n\nimport legendColor from 'd3-svg-legend/src/color'\nimport tip from 'd3-tip'\n\nexport default {\n  axisBottom:   axisBottom\n  axisLeft:     axisLeft\n  extent:       extent\n  interpolate:  interpolate\n  legendColor:  legendColor\n  line:         line\n  scaleLinear:  scaleLinear\n  scaleOrdinal: scaleOrdinal\n  scaleTime:    scaleTime\n  select:       select\n  symbol:       symbol\n  symbolCircle: symbolCircle\n  timeDay:      timeDay\n  timeParse:    timeParse\n  tip:          tip\n  transition:   transition\n}\n","import Tween       from 'es-tween'\nimport randomColor from 'randomcolor'\n\nimport Dynamic from '../dynamic'\nimport d3      from './d3'\nimport html    from '../../templates/graphics/chart'\n\n# # http://big-elephants.com/2014-06/unrolling-line-charts-d3js/\n# getSmoothInterpolation = (lineFn, data) ->\n#   (d, i, a) ->\n#     interpolate = d3.scalelinear().domain([\n#       0\n#       1\n#     ]).range([\n#       1\n#       data.length + 1\n#     ])\n#     (t) ->\n#       flooredX = Math.floor(interpolate(t))\n#       weight = interpolate(t) - flooredX\n#       interpolatedLine = data.slice(0, flooredX)\n#       if flooredX > 0 and flooredX < 31\n#         weightedLineAverage = data[flooredX].y * weight + data[flooredX - 1].y * (1 - weight)\n#         interpolatedLine.push [interpolate(t) - 1, weightedLineAverage]\n#       lineFn interpolatedLine\n\n# --Chart--\n# A chart supports a model with many series with x/y values.\nclass Chart extends Dynamic\n  tag: 'daisho-graphics-chart'\n  html: html\n\n  margin:\n    top: 40\n    right: 40\n    bottom: 50\n    left: 90\n\n  width: 0\n  height: 400\n\n  yMin: 10\n\n  interpolationTime: 3000\n  redrawTime: 300\n\n  # SVG Bits\n  svg: null\n  chart: null\n  xA: null\n  yA: null\n  xAxis: null\n  yAxis: null\n  lines: null\n  points: null\n  notes: null\n  legend: null\n\n  lineWidth: 3\n  pointRadius: 6\n\n  # Update?\n  dataHash: ''\n\n  colorSeed: 10\n  colors: null\n\n  # from Dynamic\n  refreshTiming: 'after'\n  tips: null\n\n  nextColor: ()->\n    x = Math.sin(@_colorSeed++) * 10000\n    return randomColor(seed: Math.floor((x - Math.floor(x)) * 1000))#.replace new RegExp('-', 'g'), ''\n\n  init: ->\n    super()\n\n    @colors = []\n    @tips   = []\n\n    @on 'mount', =>\n      @svg = svg = d3.select @root\n        .select 'svg'\n\n      @parseTime = d3.timeParse '%Y-%m-%dT%H:%M:%S%Z'\n\n      @chart = chart = svg.append 'g'\n        .attr 'transform', 'translate(' + @margin.left + ',' + @margin.top + ')'\n\n      @lines = @chart.append 'g'\n        .classed 'lines', true\n\n      @points = @chart.append 'g'\n        .classed 'points-group', true\n\n      @notes = @chart.append 'g'\n        .classed 'notes', true\n\n      @xAxis = chart.append 'g'\n        .classed 'axis', true\n        .classed 'x-axis', true\n      @xAxis.append 'text'\n\n      @yAxis = chart.append 'g'\n        .classed 'axis', true\n        .classed 'y-axis', true\n      @yAxis.append 'text'\n\n      @legend = svg.append(\"g\")\n        .classed 'legend', true\n        .attr 'transform', 'translate(50,30)'\n\n      @xScale = d3.scaleTime()\n      @yScale = d3.scaleLinear()\n\n  _refresh: ->\n    width  = @width || $(@root).parent().width()\n    height = @height\n\n    if width <= 0 || height <= 0\n      return\n\n    @svg\n      .attr 'width',  width\n      .attr 'height', height\n\n    serieses = @data.get()\n    return if !serieses[0]\n\n    @_colorSeed =  @colorSeed\n    @colors.length = 0\n\n    width  -= @margin.left + @margin.right\n    height -= @margin.top  + @margin.bottom\n\n    xs = []\n    ys = []\n\n    xScale = @xScale\n    yScale = @yScale\n\n    xScale.rangeRound [0, width]\n      .ticks d3.timeDay.every 1\n    yScale.rangeRound [height, 0]\n\n    for i, series of serieses\n      if series.type == 'line' || series.type == 'bar'\n        xs = xs.concat series.xs\n        ys = ys.concat series.ys\n\n    ysBuf = ys.map serieses[0].fmt.y\n    ysBuf.push @yMin\n    xScale.domain d3.extent xs.map(serieses[0].fmt.x), (x)=> return @parseTime x\n    yScale.domain d3.extent ysBuf, (y)-> return y\n\n    # redraw/remove\n    if @xA && @yA\n      @xAxis.transition()\n        .duration @redrawTime\n        .call @xA.scale(xScale)\n      @yAxis.transition()\n        .duration @redrawTime\n        .call @yA.scale(yScale)\n    else\n      @xA = d3.axisBottom(xScale).tickFormat serieses[0].axis.x.ticks\n      @xAxis.call @xA\n        .attr 'transform', 'translate(0,' + height + ')'\n        .select 'text'\n        .attr 'fill', '#000'\n        .attr 'x', width\n        .attr 'y', -12\n        .attr 'dy', '0.71em'\n        .attr 'text-anchor', 'end'\n        .text series.axis.x.name\n\n      @yA = d3.axisLeft(yScale).tickFormat serieses[0].axis.y.ticks\n      @yAxis.call @yA\n        .select 'text'\n        .attr 'fill', '#000'\n        .attr 'transform', 'rotate(-90)'\n        .attr 'y', 6\n        .attr 'dy', '0.71em'\n        .attr 'text-anchor', 'end'\n        .text series.axis.y.name\n\n    @lines.selectAll '*'\n      .attr 'opacity', 1\n      .transition()\n      .duration @redrawTime\n      .attr 'opacity', 0\n      .attr 'd', lineFn\n      .remove()\n\n    @points.selectAll '*'\n      .attr 'opacity', 1\n      .transition()\n      .duration @redrawTime\n      .attr 'opacity', 0\n      .remove()\n\n    @notes.selectAll '*'\n      .attr 'opacity', 1\n      .transition()\n      .duration @redrawTime\n      .attr 'opacity', 0\n      .remove()\n\n    notes = []\n\n    do =>\n      for tip in @tips\n        tip.hide()\n\n      @tips = []\n\n    for i, series of serieses\n      if series.xs.length == 0 || series.ys.length == 0\n        continue\n\n      # line renderer\n      if series.type == 'line'\n        xys = series.xs.map (x, j)->\n          return [x, series.ys[j]]\n\n        lineFn = d3.line()\n          .x (d) => return xScale @parseTime(series.fmt.x(d[0] || 0))\n          .y (d) -> return yScale series.fmt.y(d[1] || 0)\n\n        line = @lines.append 'path'\n          .classed 'line', true\n          .classed 'line-' + series.series, true\n\n        color = @nextColor()\n        @colors.push color\n        line.datum xys\n          .attr 'fill', 'none'\n          .attr 'stroke', color\n          .attr 'stroke-linejoin', 'round'\n          .attr 'stroke-linecap', 'round'\n          .attr 'stroke-width', @lineWidth\n          .attr 'd', lineFn\n\n        do (series, line, color)=>\n          lineLength = line.node().getTotalLength()\n\n          tip = d3.tip()\n            .attr 'class', 'tip tip-' + series.series\n            .offset [-10, 0]\n            .html (d) ->\n              return \"\"\"\n                <div class='tip-group'>\n                  <span class='tip-label'>#{ series.axis.x.name }:</span>\n                  <span class='tip-value' style='color:#{ color }'>#{ series.tip.x(series.fmt.x(d[0] || 0)) }</span>\n                </div>\n                <div class='tip-group'>\n                  <span class='tip-label'>#{ series.axis.y.name }:</span>\n                  <pre class='tip-value' style='color:#{ color }'>#{ series.tip.y(series.fmt.y(d[1] || 0)) }</pre>\n                </div>\n                \"\"\"\n\n          @tips.push tip\n\n          # line stroke tween\n          # http://stackoverflow.com/questions/32789314/unrolling-line-in-d3js-linechart\n          point = @points.append 'g'\n            .classed 'points', true\n            .classed 'points-' + series.series, true\n\n          point.call tip\n\n          line\n            .attr 'stroke-dashoffset', lineLength\n            .attr 'stroke-dasharray', lineLength + ' ' + lineLength\n            .transition()\n            .duration @interpolationTime\n            .attrTween 'stroke-dashoffset', (ds)=>\n              j = 0\n              len = ds.length\n              lineInterpolator = d3.interpolate lineLength, 0\n              return (t)=>\n                if t >= j / len && ds[j]\n                  show = false\n                  p = point.append 'circle'\n                    .classed 'point', true\n                    .classed 'point-' + series.series, true\n                    .datum ds[j]\n                    .attr 'stroke', color\n                    .attr 'stroke-width', 0\n                    .attr 'stroke-opacity', 0\n                    .attr 'fill', color\n                    .attr 'cx', (d)=> return xScale @parseTime(series.fmt.x(d[0] || 0))\n                    .attr 'cy', (d)-> yScale series.fmt.y(d[1] || 0)\n                    .on 'mouseover', tip.show\n                    .on 'mouseout', (e)->\n                      if !show\n                        tip.hide(e)\n                    .on 'click', (e)->\n                      show = !show\n                      if show\n                        tip.show(e)\n                      else\n                        tip.hide(e)\n                  p\n                    .transition()\n                    .duration @redrawTime\n                    .attrTween 'r', (d)=>\n                      return d3.interpolate 0, @pointRadius\n                  j++\n\n                return lineInterpolator t\n\n      # line renderer\n      # else if series.type == 'bar'\n      # else if series.type == 'note'\n      #   1 == 1\n        # do a thing\n\n    # Aggregate data like legends and notes go after here\n    notes = {}\n    maxes = []\n\n    for series in serieses\n      if series.type == 'notes'\n        xs = series.xs\n        ys = series.ys\n        for i, x of xs\n          if notes[x]\n            notes[x].push ys[i]\n          else\n            notes[x] = [ys[i]]\n      else\n        xs = series.xs\n        ys = series.ys\n        for i, x of xs\n          if !maxes[x]? || maxes[x] < ys[i]\n            maxes[x] = ys[i]\n\n    for x, ys of notes\n      datum = [x, maxes[x]]\n\n      do (datum, ys)=>\n        tip = d3.tip()\n          .attr 'class', 'tip tip-notes'\n          .offset [-10, 0]\n          .html (d) ->\n            return \"\"\"\n              <div class='tip-group'>\n                <span class='tip-label'>#{ serieses[0].axis.x.name }:</span>\n                <span class='tip-value'>#{ serieses[0].tip.x(series.fmt.x(d[0] || 0)) }</span>\n              </div>\n              <div class='tip-group'>\n                <span class='tip-label'>Notes:</span>\n                <pre class='tip-value'>#{ ys.join '\\n' }</pre>\n              </div>\n              \"\"\"\n\n        @tips.push tip\n\n        point = @notes.append 'circle'\n          .classed 'point', true\n          .classed 'point-notes', true\n\n        point.call tip\n\n        show = false\n        point.datum datum\n          .attr 'stroke', '#048ba8'\n          .attr 'stroke-width', 0\n          .attr 'stroke-opacity', 0\n          .attr 'fill', '#048ba8'\n          .attr 'cx', (d)=> return xScale @parseTime(serieses[0].fmt.x(d[0] || 0))\n          .attr 'cy', (d)-> yScale(serieses[0].fmt.y(d[1] || 0)) - 20\n          .on 'mouseover', tip.show\n          .on 'mouseout', tip.hide\n          # .on 'mouseout', (e)->\n          #   # if !show\n          #   tip.hide(e)\n          # .on 'click', (e)->\n          #   show = !show\n          #   if show\n          #     tip.show(e)\n          #   else\n          #     tip.hide(e)\n\n        point.transition()\n          .duration @redrawTime\n          .attrTween 'r', (d)=>\n            return d3.interpolate 0, @pointRadius * 1.5\n\n    ordinal = d3.scaleOrdinal()\n      .domain serieses.map((s)-> return s.series).filter (s)-> return !!s\n      .range @colors\n\n    @legend.attr 'transform', 'translate(' + width + ',' + @margin.top + ')'\n\n    legendOrdinal = d3.legendColor()\n      .shape 'path', d3.symbol().type(d3.symbolCircle).size(150)()\n      .shapePadding 10\n      # .cellFilter (d)-> return d.label !== 'e'\n      .scale ordinal\n\n    @legend.call legendOrdinal\n\nexport default Chart\n","import Tween   from 'es-tween'\n\nimport Dynamic from '../dynamic'\nimport html from '../../templates/graphics/counter'\n\n# --Counter--\n# A counter supports a model with 2 series.  It will display the first\n# datapoint in each series and display a comparison in the two series case or\n# just a single number\nclass Counter extends Dynamic\n  tag:    'daisho-graphics-counter'\n  html:   html\n  value0: 0\n  value1: 0\n  tween0: null\n  tween1: null\n  timer:  1000\n\n  init: -> super()\n\n  _refresh: ->\n    data = @data\n    self = @\n    if !@tween0 && data.get '0'\n      value0 = data.get(0 + '.ys.0')\n      if value0? && value0 != @value0\n        @tween0 = new Tween.Tween\n          v: @value0\n        .to { v: value0 }, @timer\n        .onUpdate ->\n          self.value0 = @v\n          #needs to be update since its already in a RAF\n          self.update()\n        .onComplete =>\n          @tween0 = null\n          @value0 = value0\n          @scheduleUpdate()\n        .start()\n\n    if !@tween1 && data.get '1'\n      value1 =  data.get(1 + '.ys.0')\n      if value1? && value1 != @value1\n        @tween1 = new Tween.Tween\n          v: @value1\n        .to { v: value1 }, @timer\n        .onUpdate ->\n          self.value1 = @v\n          #needs to be update since its already in a RAF\n          self.update()\n        .onComplete =>\n          @tween1 = null\n          @value1 = value1\n          @scheduleUpdate()\n        .start()\n\n  getNumber: (index) ->\n    if index == 0\n      return @value0 if !@data.get(0 + '.fmt.y')\n      @data.get(0 + '.fmt.y') @value0\n    else\n      return @value1 if !@data.get(1 + '.fmt.y')\n      @data.get(1 + '.fmt.y') @value1\n\nexport default Counter\n","export default Model =\n  new: ->\n    # multi-series model\n    return [@newSeries()]\n\n  newSeries: ->\n    series: ''      # name of series\n    type:   'line'  # type of series rendering\n    xs:     []      # x values\n    ys:     []      # y values\n\n    # formatting functions\n    fmt:\n      x: (n)-> n\n      y: (n)-> n\n\n    tip:\n      x: (n)-> n\n      y: (n)-> n\n\n    # axis configuration\n    axis:\n      x:\n        name:  ''\n        scale: null\n        fmt:   (n) -> n\n        ticks: (n) ->\n          n # return a d3 tick object\n      y:\n        name:  ''\n        scale: null\n        fmt:   (n) -> n\n        ticks: (n) ->\n          n # return a d3 tick object\n","import Chart   from './chart'\nimport Counter from './counter'\nimport Model   from './model'\n\nexport default Graphics =\n  Model:   Model\n  Chart:   Chart\n  Counter: Counter\n\n  register: ->\n    @Chart.register()\n    @Counter.register()\n","import El from 'el.js'\n\nimport html from '../templates/table'\n\nclass Table extends El.View\n  tag:  'daisho-table'\n  html: html\n\n  # tableColumns: []\n  # tableField: undefined\n\n  init: -> super()\n\nexport default Table\n","import El from 'el.js'\n\nimport html from '../templates/table-row'\n\nclass TableRow extends El.Form\n  tag:  'daisho-table-row'\n  html: html\n  init: -> super()\n\nexport default TableRow\n","import { Text } from 'el-controls'\nimport Events from '../events'\n\nregex = /(\".*?\"|[^\"\\s]+)+(?=\\s*|\\s*$)/g\n\nimport html from '../templates/command-bar'\n\nclass CommandBar extends Text\n  tag:    'daisho-command-bar'\n  html:   html\n  lookup: 'search'\n\n  init: ->\n    super()\n\n    @on 'mount', =>\n      $(@root).find('input').on 'keydown', (e) =>\n        @keydown.apply @, arguments\n\n    @on 'update', ->\n      # stuff\n\n  keydown: (event) ->\n    if event.which == 9\n      cmd = @getValue event\n      # commands start with '/'\n      if cmd && cmd[0] == '/'\n        # autoComplete\n        found = @found()\n        if found[0]?\n          if cmd.indexOf(found[0].command) != 1\n            $(@root).find('input').val '/' + found[0].command\n            @change event\n          return false\n    else if event.which == 13\n      @execute()\n      return false\n\n    @scheduleUpdate()\n\n    return true\n\n  pick: (command) ->\n    =>\n      $(@root).find('input').val '/' + command\n\n\n  found: ->\n    target = $(@root).find('input')[0]\n    return [] if !target\n\n    cmd = @getValue(target: target)\n    # commands start with '/'\n    if cmd && cmd[0] == '/'\n      args = cmd.match(regex).map (str)->\n        return str.trim()\n\n      @services.command.find args[0].substr 1\n    else\n      []\n\n  execute: ->\n    $el = $(@root).find('input')\n    target = $el[0]\n    return false if !target\n\n    cmd = @getValue(target: target)\n    # commands start with '/'\n    if cmd && cmd[0] == '/'\n      args = cmd.match(regex).map (str)->\n        return str.trim()\n\n      $el.val ''\n      @change(target: $el)\n\n      try\n        @services.command.execute args.shift().substr(1), args\n        @mediator.trigger Events.ForceRefresh\n      catch e\n        console.log e\n\n    true\n\nexport default CommandBar\n","import Dynamic from './dynamic'\nimport html from '../templates/dynamic-table'\nimport Events from '../events'\nimport ref from 'referential'\n\ntables = 0\n\nexport default class DynamicTable extends Dynamic\n  tag:  'daisho-dynamic-table'\n  html: html\n\n  # table header data\n  headers: []\n\n  # local count\n  count: 0\n\n  # amount of results to display\n  display: 20\n\n  # starting page\n  page: 1\n\n  # set to true when loading\n  loading: false\n\n  # count field name\n  countField: 'count'\n\n  # results field name\n  resultsField: 'results'\n\n  # facet results file name\n  facetsResultsField: 'facets.results'\n\n  init: ->\n    # generate unique ids for each of the fields\n    @countField         += tables\n    @resultsField       += tables\n    @facetsResultsField += tables\n\n    tables++\n\n    super arguments...\n\n    for header in @headers\n      if !header.onclick\n        header.onclick = 'onheader'\n\n  onheader: (header) ->\n    return (e) => @_onheader header, e\n\n  # overwrite this with sort handlers and things like that\n  # _onheader: (header, e) ->\n\n  # check if there's more results\n  hasMore: ->\n    return @page * @display < @count\n\n  moreCount: ->\n    return Math.min @remaining(), @display\n\n  remaining: ->\n    return 0 if !@hasMore()\n    return @count - @page * @display\n\n  # trigger load more\n  loadMore: ->\n    if @loading || !@hasMore()\n      return\n\n    @loading = true\n    @scheduleUpdate()\n\n    if !@hasMore()\n      return false\n\n    @page++\n\n    p = @_loadMore.apply @, arguments\n\n    if p?.finally\n      p.finally =>\n        @loading = false\n        @scheduleUpdate()\n    else\n      @loading = false\n      @scheduleUpdate()\n\n  # overwrite this with sort handlers and things like that\n  # return a promise for asynchronous loading\n  # _loadMore: ->\n\n  load: ->\n    if @loading\n      return\n\n    @loading = true\n    @scheduleUpdate()\n\n    p = @_load.apply @, arguments\n\n    if p?.finally\n      p.finally =>\n        @loading = false\n        @scheduleUpdate()\n    else\n      @loading = false\n      @scheduleUpdate()\n\n  # overwrite this with custom loading\n  # return a promise for asynchronous loading\n  # _load: ->\n\n  # call this with client results\n  onload: (res) ->\n    if Array.isArray res\n      models = res\n      res =\n        models:  models\n        count:   models.length\n        display: models.length\n        page:    1\n\n    # TODO: investigate why Events.Change must be called manually\n    @count = res.count\n    @data.set @countField, res.count\n    @data.set @resultsField, undefined\n    @data.set @resultsField, res.models\n\n    @data.set @facetsResultsField, undefined\n    @data.set @facetsResultsField, res.facets\n\n    @mediator.trigger Events.Change\n    @scheduleUpdate()\n\n  # call this with client results\n  onloadMore: (res)->\n    if Array.isArray res\n      models = res\n      res =\n        models:  models\n        count:   models.length\n        display: models.length\n        page:    1\n\n    # TODO: investigate why Events.Change must be called manually\n    results = @data.get(@resultsField) ? []\n\n    @count = res.count\n    @data.set @countField, res.count\n    @data.set @resultsField, undefined\n    @data.set @resultsField, results.concat res.models\n\n    @data.set @facetsResultsField, undefined\n    @data.set @facetsResultsField, res.facets\n\n    @mediator.trigger Events.Change\n    @scheduleUpdate()\n","import Dynamic from './dynamic-table'\nimport html from '../templates/hanzo-dynamic-table'\n\n# helper for facets\ngetFacets = (options) ->\n  facets =\n    string: []\n    range: []\n\n  hasFacets = false\n  if options && options.string\n    for k, v of options.string\n      hasFacets = true\n\n      vals = []\n\n      for k2, v2 of v\n        if v2\n          facets.string.push\n            name: k\n            value: k2\n\n  if options && options.range\n    for k, v of options.range\n      hasFacets = true\n      facets.range.push\n        name: k\n        value:\n          start: v.from\n          end: v.to\n\n  return facets if hasFacets\n\n  return\n\nexport default class HanzoDynamicTable extends Dynamic\n  tag:  'daisho-hanzo-dynamic-table'\n  html: html\n\n  # Name of item in table\n  # name: ''\n\n  # filter config\n  configs:\n    'filter': []\n\n  initialized: false\n  loading: false\n\n  # a map of all the range facets that should use currency instead of numeric\n  # for example\n  # facetCurrency:\n  #   price: true\n  #   listPrice: true\n  #   inventoryCost: true\n\n  facetCurrency: {}\n\n  openFilter: false\n\n  init: ->\n    super\n\n  # generate header onclick events\n  _onheader: (header, e) ->\n    if @data.get('sort') == header.field\n      @data.set 'asc', !@data.get('asc')\n    else\n      @data.set 'asc', true\n    @data.set 'sort', header.field\n    @_refresh e\n\n  onsearch: (e, facet) ->\n    @load true\n\n  # return the query string\n  getFacetQuery: ->\n    return @data.get 'facets.query'\n\n  # return the facet filter options\n  getFacetOptions: ->\n    return @data.get 'facets.options'\n\n  # load?\n  doLoad: ->\n    return true\n\n  # overwrite with search function call and return promise\n  # list: (opts) ->\n\n  _refresh: (force, fn) ->\n    @load force, fn\n\n  _load: (force, fn) ->\n    if @initialized && !force\n      return\n\n    if !@doLoad()\n      return\n\n    org = @daisho.akasha.get('orgs')[@daisho.akasha.get('activeOrg')]\n    @data.set 'facets.currency', org.currency\n\n    @initialized = true\n\n    #default sorting\n    if !@data.get('sort')?\n      @data.set 'sort', 'UpdatedAt'\n      @data.set 'asc', false\n\n    # filter = @data.get 'filter'\n    opts =\n      sort: if @data.get('asc') then '-' + @data.get('sort') else @data.get('sort')\n      display: @page * @display\n      page: 1\n\n    q = @getFacetQuery()\n    opts.q = q if q\n\n    options = @getFacetOptions()\n\n    if facets = getFacets options\n      opts.facets = JSON.stringify facets\n\n    p = @list(opts) ? []\n\n    if p.then\n      p.then (res) =>\n        if fn? then fn(res) else @onload(res)\n    else\n      if fn? then fn(p) else @onload(p)\n\n  _loadMore: ->\n    org = @daisho.akasha.get('orgs')[@daisho.akasha.get('activeOrg')]\n    @data.set 'facets.currency', org.currency\n\n    @initialized = true\n\n    #default sorting\n    if !@data.get('sort')?\n      @data.set 'sort', 'UpdatedAt'\n      @data.set 'asc', false\n\n    # filter = @data.get 'filter'\n    opts =\n      sort: if @data.get('asc') then '-' + @data.get('sort') else @data.get('sort')\n      display: @display\n      page: @page\n\n    q = @data.get 'facets.query'\n    opts.q = q if q\n\n    options = @data.get 'facets.options'\n\n    if facets = getFacets options\n      opts.facets = JSON.stringify facets\n\n    p = @list(opts) ? []\n\n    if p.then\n      p.then (res) =>\n        if fn? then fn(res) else @onloadMore(res)\n    else\n      if fn? then fn(p) else @onloadMore(p)\n\n  toggleFilterMenu: ()->\n    @openFilter = !@openFilter\n","import HanzoDynamicTable from './hanzo-dynamic-table'\nimport html from '../templates/hanzo-static-table'\n\n# helper for facets\ngetFacets = (options) ->\n  facets =\n    string: []\n    range: []\n\n  hasFacets = false\n  if options && options.string\n    for k, v of options.string\n      hasFacets = true\n\n      vals = []\n\n      for k2, v2 of v\n        if v2\n          facets.string.push\n            name: k\n            value: k2\n\n  if options && options.range\n    for k, v of options.range\n      hasFacets = true\n      facets.range.push\n        name: k\n        value:\n          start: v.from\n          end: v.to\n\n  return facets if hasFacets\n\n  return\n\nexport default class HanzoStaticTable extends HanzoDynamicTable\n  tag:  'daisho-hanzo-static-table'\n  html: html\n\n  init: ->\n    super\n\n  _onheader: ->\n    return (e) -> return true\n\n  doLoad: ->\n    return true\n\n  getFacetQuery: ->\n    return ''\n\n","import observable from 'riot-observable'\n\nexport default observable {}\n","emailRe = /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/\n\nexport isRequired = (value) ->\n  return value if value? && value != ''\n  throw new Error 'Required'\n\nexport isEmail = (value) ->\n  return value unless value?\n  return value.toLowerCase() if emailRe.test value\n  throw new Error 'Enter a valid email'\n\nexport isPassword = (value) ->\n  unless value?\n    throw new Error 'Required'\n  return value if value.length >= 6\n  throw new Error 'Password must be atleast 6 characters long'\n","import El from 'el.js'\n\nimport Events from '../events'\nimport m      from '../mediator'\nimport {\n  isRequired,\n  isEmail,\n  isPassword,\n} from './middleware'\n\nimport html from '../templates/login'\n\n\nclass Login extends El.Form\n  tag: 'daisho-login'\n  html: html\n\n  configs:\n    'account.email':    [ isRequired, isEmail ]\n    'account.password': [ isPassword ]\n\n  error: null\n  disabled: false\n\n  init: ->\n    if !@data.get 'account'\n      @data.set 'account',\n        email: ''\n        password: ''\n\n    super\n\n  _submit: (event) ->\n    opts =\n      email:      @data.get 'account.email'\n      password:   @data.get 'account.password'\n      # client_id:  @data.get 'organization'\n      # grant_type: 'password'\n\n    @error = null\n\n    m.trigger Events.Login\n    @disabled = true\n    @scheduleUpdate()\n\n    @client.dashv2.login(opts).then (res) =>\n      @disabled = false\n      @data.set 'account.password', ''\n      @data.set 'account', res.user\n      @data.set 'orgs', res.organizations\n      @data.set 'activeOrg', 0\n      m.trigger Events.LoginSuccess, res\n      @scheduleUpdate()\n    .catch (err) =>\n      @disabled = false\n      @error    = err.message\n      m.trigger Events.LoginFailed, err\n      @scheduleUpdate()\n\nexport default Login\n","import El from 'el.js'\n\nimport Events from '../events'\nimport m      from '../mediator'\n\nimport html from '../templates/main'\n\nexport default class Main extends El.Form\n  tag: 'daisho-main'\n  html: html\n\n  configs:\n    'activeOrg':    []\n    'search':       []\n\n  error: null\n  orgs:  null\n  lastRoot: null\n\n  init: ->\n    # use the parent data as data, this is special case\n    @data = @parentData\n\n    super()\n\n    # should have logged in by now do grab the orgs and look up active org key\n    @orgs = {}\n    for i, org of @data.get 'orgs'\n      @orgs[i] = org.fullName\n\n    @client.setKey @data.get('orgs')[@data.get('activeOrg')]['live-secret-key']\n\n    # when things are updated, update to latest page\n    @on 'update', =>\n      current = @services?.page?.current?.root\n      if current? && current != @lastRoot\n        $el = $(current)\n        $page = $(@root).find '#page'\n        $page.children().detach()\n        $page.append $el\n        current.scheduleUpdate?()\n        @lastRoot = current\n\n    # if active org is updated, restart the app\n    m.on Events.Change, (name, val)=>\n      if name == 'activeOrg'\n        @client.setKey @data.get('orgs')[val]['live-secret-key']\n        requestAnimationFrame ->\n          window.location.reload()\n\n  logout: ->\n    m.trigger Events.Logout, res\n    window.location.reload()\n\n  _submit: (event) ->\n","import El from 'el.js'\n\nimport html from '../templates/menu'\n\nexport default class Menu extends El.View\n  tag: 'daisho-menu'\n  html: html\n\n  error: null\n\n  init: -> super()\n\n  items:->\n    return @services.menu.menu\n","import El from 'el.js'\n\nimport html from '../templates/modal'\n\nexport default class Modal extends El.View\n  tag: 'daisho-modal'\n  html: html\n","import El from 'el.js'\nimport html from '../templates/filter-facets'\nimport Events from '../events'\nimport utils    from '../utils'\n\nmoment = utils.date.moment\n\nyyyymmdd =  utils.date.yyyymmdd\n\nclass FilterFacets extends El.Form\n  tag: 'daisho-filter-facets'\n  html: html\n\n  # Supply an object with the mapping of facet fields to display names\n  #\n  # facetNames: {\n  #   facet: 'name'\n  # }\n  #\n  # facetCurrency: {\n  #   facet: true\n  # }\n\n  # Facets received from server should be under .results,\n  # Facet configuration should be under .options\n  # Filter query string should be set to .query\n  #\n  # data: {\n  #   results:\n  #     string: ...\n  #     range: ...\n  #   options: ...\n  #   query: 'string query'\n  # }\n\n  init: ->\n    super\n\n    if !@facetNames\n      @facetNames = {}\n\n    @on 'update', =>\n      ranges = @data.get 'options.range'\n      if ranges?\n        for k, range of ranges\n          if range.to < range.from\n            z = range.from\n            @data.set 'options.range.' + k + '.from', range.to\n            @data.set 'options.range.' + k + '.to', z\n            @scheduleUpdate()\n\n    @data.set 'filter', [moment('2015-01-01').format(yyyymmdd), moment().format(yyyymmdd)]\n\n  loading: false\n\n  # check if we have a facet result with the name\n  hasResult: (name)->\n    for facet in @data.get 'results'\n      if facet[0] && facet[0].Name == name\n        if facet[0].Count? && facet[0].Count == 1 && typeof facet[0].Value != 'string'\n          return false\n        return true\n    return false\n\n  # Rewrite name?\n  createName: (name)->\n     name = name.split(/(?=[A-Z])/).join(' ')\n     return name.charAt(0).toUpperCase() + name.slice(1)\n\n  # Get the number of records\n  count: ()->\n    for facet in @data.get 'facets'\n      if facet[0] && facet[0].Name == 'Kind'\n        return facet[0].Count\n    return 0\n\n  # Is the facet a string checkbox?\n  isStringFacet: (facet)->\n    return facet && facet[0] && typeof facet[0].Value == 'string' && facet[0].Name != 'Kind'\n\n  # Is the facet a range selector?\n  isRangeFacet: (facet)->\n    return !@isStringFacet(facet) && facet[0].Name != 'Kind' && facet[0].Count > 1\n\n  reset: (e)->\n    # investigate why Events.Change must be called manually\n    if @onreset?\n      if @onreset(e) != false\n        @mediator.trigger Events.Change\n\n        @data.set 'options', undefined\n        @data.set 'query', undefined\n        @search(e)\n    else\n      @mediator.trigger Events.Change\n\n      @data.set 'options', undefined\n      @data.set 'query', undefined\n      @search(e)\n\n  search: (e)->\n    p = @onsearch(e, @data.get()) if @onsearch?\n    if p? && p.then?\n      @loading = true\n      p.then =>\n        @loading = false\n        @scheduleUpdate()\n      if p.catch?\n        p.catch =>\n          @loading = false\n          @scheduleUpdate()\n\n      @scheduleUpdate()\n    return p\n\n\nexport default FilterFacets\n","import Controls     from './controls'\nimport Graphics     from './graphics'\n\nimport Table        from './table'\nimport TableRow     from './table-row'\n\nimport CommandBar        from './command-bar'\nimport Dynamic           from './dynamic'\nimport DynamicTable      from './dynamic-table'\nimport HanzoDynamicTable from './hanzo-dynamic-table'\nimport HanzoStaticTable  from './hanzo-static-table'\nimport Login             from './login'\nimport Main              from './main'\nimport Menu              from './menu'\nimport Modal             from './modal'\n\nimport FilterFacets from './filter-facets'\n\nexport default Views =\n  Controls:     Controls\n  Graphics:     Graphics\n\n  Table:        Table\n  TableRow:     TableRow\n\n  CommandBar:        CommandBar\n  Dynamic:           Dynamic\n  DynamicTable:      DynamicTable\n  HanzoDynamicTable: HanzoDynamicTable\n  HanzoStaticTable:  HanzoStaticTable\n  Login:             Login\n  Main:              Main\n  Menu:              Menu\n  Modal:             Modal\n\n  FilterFacets: FilterFacets\n\n  register: ->\n    @Controls.register()\n    @Graphics.register()\n\n    @Table.register()\n    @TableRow.register()\n\n    @CommandBar.register()\n    @Login.register()\n    @Main.register()\n    @Menu.register()\n    @Modal.register()\n    @FilterFacets.register()\n","import isFunction from 'es-is/function'\n\nsp = (u) ->\n  (x) ->\n    if isFunction u\n      url = u x\n    else\n      url = u\n\n    if @storeId?\n      \"/store/#{@storeId}\" + url\n    else\n      url\n\nbyId = (name) ->\n  switch name\n    when 'coupon'\n      sp (x) -> \"/coupon/#{x.code ? x}\"\n    # when 'collection'\n    #   sp (x) -> \"/collection/#{x.slug ? x}\"\n    when 'product'\n      sp (x) -> \"/product/#{x.id ? x.slug ? x}\"\n    # when 'variant'\n    #   sp (x) -> \"/variant/#{x.id ? x.sku ? x}\"\n    when 'user'\n      sp (x) -> \"/user/#{x.id ? x.email ? x}\"\n    # when 'site'\n    #   (x) -> \"/site/#{x.id ? x.name ? x}\"\n    else\n      (x) -> \"/#{name}/#{x.id ? x}\"\n\nstatusOk        = (res) -> res.status is 200\nstatusCreated   = (res) -> res.status is 201\nstatusNoContent = (res) -> res.status is 204\n\n# Complete RESTful API available with secret key, so all methods are\n# exposed in server environment.\ncreateBlueprint = (name) ->\n  endpoint = \"/#{name}\"\n\n  url = byId name\n\n  list:\n    url:    endpoint\n    method: 'GET'\n  get:\n    url:     url\n    method:  'GET'\n    expects: statusOk\n  create:\n    url:     endpoint\n    method:  'POST'\n    expects: statusCreated\n  update:\n    url:     url\n    method:  'PATCH'\n    expects: statusOk\n  delete:\n    url:     url\n    method:  'DELETE'\n    expects: statusNoContent\n\nblueprints =\n  oauth:\n    auth:\n      # expects: statusOk\n      method: 'POST'\n      url:    '/auth'\n\n  account:\n    organization:\n      method: 'GET'\n      url:    '/_/account/organizations'\n\n  dashv2:\n    login:\n      method: 'POST'\n      url:    '/dashv2/login'\n\n  counter:\n    search:\n      method: 'POST'\n      url:    '/counter'\n\n  library:\n    daisho:\n      method: 'GET'\n      url:    '/library/daisho'\n\nmodels = [\n  'order'\n  'note'\n  'product'\n  'subscriber'\n  'user'\n  'wallet'\n  'tokentransaction'\n]\n\nfor model in models\n  do (model) ->\n    blueprints[model] = createBlueprint model\n\nblueprints.note.search =\n  method: 'POST'\n  url:    '/search/note'\n\nblueprints.user.orders =\n  method: 'GET'\n  url:    (x) -> \"/user/#{x.id ? x}/orders\"\n  expects:  statusOk\n\nblueprints.user.transactions =\n  method: 'GET'\n  url:    (x) -> \"/user/#{x.id ? x}/transactions\"\n  expects:  statusOk\n\nblueprints.user.tokentransactions =\n  method: 'GET'\n  url:    (x) -> \"/user/#{x.id ? x}/tokentransactions\"\n  expects:  statusOk\n\nblueprints.user.referrals =\n  method: 'GET'\n  url:    (x) -> \"/user/#{x.id ? x}/referrals\"\n  expects:  statusOk\n\nblueprints.user.referrers =\n  method: 'GET'\n  url:    (x) -> \"/user/#{x.id ? x}/referrers\"\n  expects:  statusOk\n\nblueprints.user.resetPassword =\n  method: 'GET'\n  url:    (x) -> \"/user/#{x.id ? x}/password/reset\"\n  expects:  statusOk\n\nblueprints.user.wallet =\n  method: 'GET'\n  url:    (x) -> \"/user/#{x.id ? x}/wallet\"\n  expects:  statusOk\n\nblueprints.transaction =\n  create:\n    url:     '/transaction'\n    method:  'POST'\n    expects: statusCreated\n\nblueprints.library.daisho =\n  url:     '/library/daisho'\n  method:  'POST'\n  expects: statusOk\n\nblueprints.order.sendOrderConfirmation =\n  method: 'GET'\n  url:    (x) -> \"/order/#{x.id ? x}/sendorderconfirmation\"\n  expects:  statusNoContent\n\nblueprints.order.sendRefundConfirmation =\n  method: 'GET'\n  url:    (x) -> \"/order/#{x.id ? x}/sendrefundconfirmation\"\n  expects:  statusNoContent\n\nblueprints.order.sendFulfillmentConfirmation =\n  method: 'GET'\n  url:    (x) -> \"/order/#{x.id ? x}/sendfulfillmentconfirmation\"\n  expects:  statusNoContent\n\nblueprints.order.payments =\n  method: 'GET'\n  url:    (x) -> \"/order/#{x.id ? x}/payments\"\n  expects:  statusOk\n\nblueprints.organization =\n  get:\n    url:     (x) -> \"/c/organization/#{x.id ? x}\"\n    method:  'GET'\n    expects: statusOk\n  update:\n    url:     (x) -> \"/c/organization/#{x.id ? x}\"\n    method:  'PATCH'\n    expects: statusOk\n\nexport default blueprints\n","import El     from 'el.js'\nimport Hanzo  from 'hanzo.js'\nimport Tween  from 'es-tween'\nimport {raf}  from 'es-raf'\nimport akasha from 'akasha'\n\nimport Events     from './events'\nimport Services   from './services'\nimport Views      from './views'\nimport blueprints from './blueprints'\nimport mediator   from './mediator'\nimport utils      from './utils'\nimport currencies from 'shop.js-util/src/data/currencies'\n\nanimate = (time) ->\n  raf animate\n  Tween.update time\n\nraf animate\n\nreservedTags = {}\n\n# Monkey patch el.js so all registration can be validated\nEl.Views.Form.register = El.Views.View.register = ->\n  if reservedTags[@tag]\n    throw new Error \"#{@tag} is reserved:\", reservedTags[@tag]\n  r = new @\n  @tag = r.tag\n  reservedTags[@tag] = @\n  return r\n\nViews.register()\n\nexport default class Daisho\n  @El:          El\n  @Views:       Views\n  @Graphics:    Views.Graphics\n  @Services:    Services\n  @Events:      Events\n  @mediator:    mediator\n  @utils:       utils\n  @currencies:  currencies\n\n  client:       null\n  data:         null\n  settings:     null\n  modules:      null\n  debug:        false\n  services:     null\n  utils:        Daisho.utils\n  currencies:   currencies\n  countries:    []\n\n  constructor: (url, modules, @data, @settings, debug = false) ->\n    @client = new Hanzo.Api\n      debug:    debug\n      endpoint: url\n\n    @debug = debug\n\n    @services =\n      menu:       new Services.Menu       @, debug\n      page:       new Services.Page       @, debug\n      command:    new Services.Command    @, debug\n      navigation: new Services.Navigation @, debug\n\n    @services.page.mount = =>\n      @mount.apply @, arguments\n    @services.page.update = =>\n      @update.apply @, arguments\n\n    @client.addBlueprints k,v for k,v of blueprints\n    @modules = modules\n\n    lastChecked   = akasha.get 'lastChecked'\n    countries     = akasha.get 'countries'\n    @countries.push.apply @countries, countries\n    Daisho.countries = @countries\n\n    lastChecked = utils.date.renderDate(new Date(), utils.date.rfc3339)\n\n    @client.library.daisho(\n      hasCountries: !!countries && countries.length != 0\n      lastChecked:  utils.date.renderDate(lastChecked || '2000-01-01', utils.date.rfc3339)\n    ).then (res) =>\n      if res.countries?\n        @countries.length = 0\n        @countries.push.apply @countries, res.countries\n\n      akasha.set 'countries', @countries\n      akasha.set 'lastChecked', lastChecked\n\n      @data.set 'countries', @countries\n      @scheduleUpdate()\n    .catch (err) =>\n      console.log 'Could not load countries data.', err\n\n  start: ->\n    modules = @modules\n\n    for k, module of modules\n      if typeof module == 'string'\n        # do something\n      else\n        new module @, @services.page, @services.menu, @services.command, @services.navigation\n\n    @services.page.start()\n\n  mount: (tag, opts = {}) ->\n    isHTML = tag instanceof HTMLElement\n    if isHTML\n      tagName = tag.tagName.toLowerCase()\n    else\n      tagName = tag\n\n    if !opts.client\n      opts.client = @client\n\n    if !opts.data\n      if !@data.get tagName\n        @data.set tagName, {}\n      opts.data = @data.ref tagName\n\n    if !opts.parentData\n      opts.parentData = @data\n\n    if !opts.services\n      opts.settings = @settings\n\n    if !opts.services\n      opts.services = @services\n\n    if !opts.util\n      opts.utils = @utils\n\n    if !opts.currencies\n      opts.currencies = @currencies\n\n    if !opts.countries\n      opts.countries = @countries\n\n    if !opts.mediator\n      opts.mediator = Daisho.mediator\n\n    if !opts.daisho\n      opts.daisho = @\n\n    if typeof tag == 'string'\n      El.mount tag, opts\n    else if isHTML\n      El.mount tag, tagName, opts\n\n  scheduleUpdate: ->\n    El.scheduleUpdate.apply El, arguments\n"],"names":["utils","extend","html","Switch","moment","Calendar","Checkbox","DateRangePicker","Numeric","Events","map","interpolate","interpolateValue","symbol","deinterpolate","reinterpolate","interval","formatLocale","day","timeMonday","timeDay","timeYear","timeSunday","timeThursday","locale","defaultLocale","durationSecond","durationMinute","durationHour","durationDay","durationWeek","number","year","month","hour","minute","second","millisecond","timeMonth","timeWeek","timeHour","timeMinute","timeSecond","timeMillisecond","t0","t1","scaleLinear","scaleOrdinal","tip","line","Model","Chart","Counter","Text","Dynamic","HanzoDynamicTable","Menu","yyyymmdd","Controls","Graphics","Table","TableRow","CommandBar","DynamicTable","HanzoStaticTable","Login","Main","Modal","FilterFacets","Views","Services","mediator"],"mappings":"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"}