[
  {
    "__docId__": 0,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/action_sheet/index.js",
    "memberof": null,
    "longname": "src/components/action_sheet/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../core/bane\";\nimport $ from \"jquery\";\nimport urlencode from \"urlencode\";\nimport \"./action_sheet.scss\";\n\nclass ActionSheetComponent extends Component {\n  initialize() {\n    this.isActionSheetMenuHidden = false;\n\n    this.events = {\n      \"click .js-action-sheet-menu-control\": \"actionSheetMenuControlClicked\",\n      \"click .js-action-sheet-share-control\": \"actionSheetShareControlClicked\"\n    };\n  }\n\n  actionSheetMenuControlClicked(event) {\n    let $el = $(event.currentTarget);\n    let id = \"#\" + $el.attr(\"aria-owns\"),\n        $menu = $el.siblings(id);\n\n    if (this.isActionSheetMenuHidden) {\n      this._hideActionSheetMenu($menu);\n      this.isActionSheetMenuHidden = false;\n    } else {\n      this._showActionSheetMenu($menu);\n      this.isActionSheetMenuHidden = true;\n    }\n\n    event.preventDefault();\n  }\n\n  actionSheetShareControlClicked(event) {\n    let $el = $(event.currentTarget);\n\n    let width = 550,\n        height = 420,\n        winHeight = $(window).height(),\n        winWidth = $(window).width(),\n        left,\n        top;\n\n    let title = $el.closest(\".article\").find(\"meta[itemprop=\\\"headline\\\"]\")[0].content,\n        url = window.location.href,\n        network = $el.data(\"network\");\n\n    let tweet = `${urlencode(title)} ${urlencode(url)} via @lonelyplanet`;\n\n    left = Math.round((winWidth / 2) - (width / 2));\n    top = 0;\n\n    if (winHeight > height) {\n      top = Math.round((winHeight / 2) - (height / 2));\n    }\n\n    let windowOptions = \"toolbar=no,menubar=no,location=yes,resizable=no,scrollbars=yes\",\n        windowSize = `width=${width},height=${height},left=${left},left=${top}`;\n\n    if (network === \"twitter\") {\n      window.open(\"https://twitter.com/intent/tweet?text=\" + tweet, \"share\", windowOptions + \",\" + windowSize);\n    }\n\n    if (network === \"facebook\") {\n      window.open(\"https://www.facebook.com/sharer/sharer.php?u=\" + url, \"share\", windowOptions + \",\" + windowSize);\n    }\n  }\n\n  _showActionSheetMenu($menu) {\n    $menu\n      .addClass(\"is-open\")\n      .prop(\"hidden\", false)\n      .attr(\"aria-hidden\", \"false\");\n  }\n\n  _hideActionSheetMenu($menu) {\n    $menu\n      .removeClass(\"is-open\")\n      .prop(\"hidden\", true)\n      .attr(\"aria-hidden\", \"true\");\n  }\n}\n\nexport default ActionSheetComponent;\n"
  },
  {
    "__docId__": 1,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "ActionSheetComponent",
    "memberof": "src/components/action_sheet/index.js",
    "longname": "src/components/action_sheet/index.js~ActionSheetComponent",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/action_sheet/index.js",
    "importStyle": "ActionSheetComponent",
    "description": null,
    "lineNumber": 6,
    "undocument": true,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 2,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/action_sheet/index.js~ActionSheetComponent",
    "longname": "src/components/action_sheet/index.js~ActionSheetComponent#initialize",
    "access": null,
    "description": null,
    "lineNumber": 7,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 3,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "isActionSheetMenuHidden",
    "memberof": "src/components/action_sheet/index.js~ActionSheetComponent",
    "longname": "src/components/action_sheet/index.js~ActionSheetComponent#isActionSheetMenuHidden",
    "access": null,
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "type": {
      "types": [
        "boolean"
      ]
    }
  },
  {
    "__docId__": 4,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "events",
    "memberof": "src/components/action_sheet/index.js~ActionSheetComponent",
    "longname": "src/components/action_sheet/index.js~ActionSheetComponent#events",
    "access": null,
    "description": null,
    "lineNumber": 10,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 5,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "actionSheetMenuControlClicked",
    "memberof": "src/components/action_sheet/index.js~ActionSheetComponent",
    "longname": "src/components/action_sheet/index.js~ActionSheetComponent#actionSheetMenuControlClicked",
    "access": null,
    "description": null,
    "lineNumber": 16,
    "undocument": true,
    "params": [
      {
        "name": "event",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 6,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "isActionSheetMenuHidden",
    "memberof": "src/components/action_sheet/index.js~ActionSheetComponent",
    "longname": "src/components/action_sheet/index.js~ActionSheetComponent#isActionSheetMenuHidden",
    "access": null,
    "description": null,
    "lineNumber": 23,
    "undocument": true,
    "type": {
      "types": [
        "boolean"
      ]
    }
  },
  {
    "__docId__": 7,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "isActionSheetMenuHidden",
    "memberof": "src/components/action_sheet/index.js~ActionSheetComponent",
    "longname": "src/components/action_sheet/index.js~ActionSheetComponent#isActionSheetMenuHidden",
    "access": null,
    "description": null,
    "lineNumber": 26,
    "undocument": true,
    "type": {
      "types": [
        "boolean"
      ]
    }
  },
  {
    "__docId__": 8,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "actionSheetShareControlClicked",
    "memberof": "src/components/action_sheet/index.js~ActionSheetComponent",
    "longname": "src/components/action_sheet/index.js~ActionSheetComponent#actionSheetShareControlClicked",
    "access": null,
    "description": null,
    "lineNumber": 32,
    "undocument": true,
    "params": [
      {
        "name": "event",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 9,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_showActionSheetMenu",
    "memberof": "src/components/action_sheet/index.js~ActionSheetComponent",
    "longname": "src/components/action_sheet/index.js~ActionSheetComponent#_showActionSheetMenu",
    "access": null,
    "description": null,
    "lineNumber": 67,
    "undocument": true,
    "params": [
      {
        "name": "$menu",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 10,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_hideActionSheetMenu",
    "memberof": "src/components/action_sheet/index.js~ActionSheetComponent",
    "longname": "src/components/action_sheet/index.js~ActionSheetComponent#_hideActionSheetMenu",
    "access": null,
    "description": null,
    "lineNumber": 74,
    "undocument": true,
    "params": [
      {
        "name": "$menu",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 11,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "actionSheetComponent",
    "memberof": "src/components/action_sheet/index.js",
    "longname": "src/components/action_sheet/index.js~actionSheetComponent",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/action_sheet/index.js",
    "importStyle": "actionSheetComponent",
    "description": null,
    "lineNumber": 82,
    "undocument": true,
    "type": {
      "types": [
        "src/components/action_sheet/index.js~ActionSheetComponent"
      ]
    }
  },
  {
    "__docId__": 12,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/analytics/index.js",
    "memberof": null,
    "longname": "src/components/analytics/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import Flamsteed from \"flamsteed\";\nimport CookieUtil from \"../../core/cookie_util\";\n\nwindow.lp = window.lp || {};\n\nwindow.lp.fs = {\n  buffer: [],\n  now: () => (Date.now ? Date.now() : new Date().getTime()),\n  log: (x) => this.buffer.push({ e: x, t: this.now() }),\n  time: (x) => !!window.performance && !!window.performance.now && this.buffer.push( { e: x, t: this.now()})\n};\n\nif (window.location.protocol !== \"https:\") {\n  window.lp.fs = new Flamsteed({\n    events: window.lp.fs.buffer,\n    u: new CookieUtil().getCookie(\"lpUid\") || \"\",\n    schema: \"0.3\"\n  });\n}\n"
  },
  {
    "__docId__": 13,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/article/index.js",
    "memberof": null,
    "longname": "src/components/article/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "require(\"./article.scss\");\n"
  },
  {
    "__docId__": 14,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/article_body/index.js",
    "memberof": null,
    "longname": "src/components/article_body/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../core/bane\";\nimport $ from \"jquery\";\nimport ImageGallery from \"../image_gallery\";\nimport moment from \"moment\";\nimport \"./article_body.scss\";\n\n/**\n * Enhances the body of articles with a gallery and more\n */\nexport default class ArticleBodyComponent extends Component {\n  initialize() {\n    this.imageContainerSelector = \".stack__article__image-container\";\n\n    this.loadImages().then(() => {\n      this.gallery = new ImageGallery({ el: \".article\" });\n    });\n\n    this.formatAndPositionDate();\n  }\n  /**\n   * Loads all the images in the body of the article\n   * @return {Promise} A promise for when all of the images have loaded\n   */\n  loadImages() {\n    let promises = [];\n\n    this.$el.find(this.imageContainerSelector).each((index, el) => {\n      let $img = $(el).find(\"img\"),\n          $a = $(el).find(\"a\"),\n          src = $($img).attr(\"src\");\n\n      let promise = this.loadImage(src).then((image) => {\n        $a.attr(\"data-size\", `${image.width}x${image.height}`);\n\n        if(image.width > 1000 && $img.hasClass(\"is-landscape\")) {\n          $a.closest(this.imageContainerSelector)\n            .addClass(\"is-wide\");\n        }\n\n        $a.closest(this.imageContainerSelector)\n          .addClass(\"is-visible\");\n      });\n      promises.push(promise);\n    });\n\n    return Promise.all(promises);\n  }\n  /**\n   * Preload an image\n   * @param  {String} url Url of the image to load\n   * @return {Promise} A promise for when the image loads\n   */\n  loadImage(url) {\n    let image = new Image();\n\n    return new Promise((resolve, reject) => {\n      image.src = url;\n      image.onload = function() {\n        resolve(image);\n      };\n      image.onerror = function() {\n        reject();\n      };\n\n      if (!url) {\n        reject();\n      }\n    });\n  }\n  /**\n   * Format the post date with moment.js and append it to the bottom of the article\n   */\n  formatAndPositionDate() {\n    let date = this.$el.data(\"post-date\"),\n        formattedDate = moment(date).format(\"MMMM YYYY\");\n\n    this.$el.find(\".article-body__content\").last()\n      .find(\"p:not(.stack__article__image-container)\").last()\n      .append(\"<span class=\\\"article-post-date\\\">Published <time datetime=\\\"\" + date + \"\\\">\" + formattedDate + \"</time></span>\");\n  }\n}\n"
  },
  {
    "__docId__": 15,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "ArticleBodyComponent",
    "memberof": "src/components/article_body/index.js",
    "longname": "src/components/article_body/index.js~ArticleBodyComponent",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/article_body/index.js",
    "importStyle": "ArticleBodyComponent",
    "description": "Enhances the body of articles with a gallery and more",
    "lineNumber": 10,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 16,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/article_body/index.js~ArticleBodyComponent",
    "longname": "src/components/article_body/index.js~ArticleBodyComponent#initialize",
    "access": null,
    "description": null,
    "lineNumber": 11,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 17,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "imageContainerSelector",
    "memberof": "src/components/article_body/index.js~ArticleBodyComponent",
    "longname": "src/components/article_body/index.js~ArticleBodyComponent#imageContainerSelector",
    "access": null,
    "description": null,
    "lineNumber": 12,
    "undocument": true,
    "type": {
      "types": [
        "string"
      ]
    }
  },
  {
    "__docId__": 18,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "gallery",
    "memberof": "src/components/article_body/index.js~ArticleBodyComponent",
    "longname": "src/components/article_body/index.js~ArticleBodyComponent#gallery",
    "access": null,
    "description": null,
    "lineNumber": 15,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 19,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "loadImages",
    "memberof": "src/components/article_body/index.js~ArticleBodyComponent",
    "longname": "src/components/article_body/index.js~ArticleBodyComponent#loadImages",
    "access": null,
    "description": "Loads all the images in the body of the article",
    "lineNumber": 24,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "Promise"
      ],
      "spread": false,
      "description": "A promise for when all of the images have loaded"
    },
    "generator": false
  },
  {
    "__docId__": 20,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "loadImage",
    "memberof": "src/components/article_body/index.js~ArticleBodyComponent",
    "longname": "src/components/article_body/index.js~ArticleBodyComponent#loadImage",
    "access": null,
    "description": "Preload an image",
    "lineNumber": 53,
    "params": [
      {
        "nullable": null,
        "types": [
          "String"
        ],
        "spread": false,
        "optional": false,
        "name": "url",
        "description": "Url of the image to load"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "Promise"
      ],
      "spread": false,
      "description": "A promise for when the image loads"
    },
    "generator": false
  },
  {
    "__docId__": 21,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "formatAndPositionDate",
    "memberof": "src/components/article_body/index.js~ArticleBodyComponent",
    "longname": "src/components/article_body/index.js~ArticleBodyComponent#formatAndPositionDate",
    "access": null,
    "description": "Format the post date with moment.js and append it to the bottom of the article",
    "lineNumber": 73,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 22,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/article_footer/index.js",
    "memberof": null,
    "longname": "src/components/article_footer/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "require(\"./article_footer.scss\");\n"
  },
  {
    "__docId__": 23,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/article_header/index.js",
    "memberof": null,
    "longname": "src/components/article_header/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "require(\"./article_header.scss\");\n"
  },
  {
    "__docId__": 24,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/article_pagination/index.js",
    "memberof": null,
    "longname": "src/components/article_pagination/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "require(\"./article_pagination.scss\");\n"
  },
  {
    "__docId__": 25,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/articles/index.js",
    "memberof": null,
    "longname": "src/components/articles/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../core/bane\";\nimport $clamp from \"clamp-js/clamp.js\";\nimport Tabs from \"../tabs/tabs_component\";\nimport $ from \"jquery\";\n\nimport \"./_articles.scss\";\n\nclass ArticlesComponent extends Component {\n  initialize(options) {\n    this.articles = this.$el.find(\".article\");\n    this.maxLines = options.maxLines || 6;\n    // Retrieved via getComputedStyle($0)[\"line-height\"] ish\n    this.titleLineHeight = options.titleLineHeight || { desktop: 35, mobile: 23 };\n    this.blurbLineHeight = options.blurbLineHeight || { desktop: 27, mobile: 18 };\n    this.mobileWidth = options.mobileWidth || 717;\n    this.screen = \"mobile\";\n    this.tabs = new Tabs({\n      el: $(\".articles\").find(\".tabs\")\n    });\n\n    if (!$(\"html\").hasClass(\"ie9\")) {\n      this._detectScreen();\n      this._clampText();\n\n      this.listenTo(this.tabs, \"tabs.activate\", this._reclamp.bind(this));\n      $(window).on(\"resize\", this._reclamp.bind(this));\n    }\n  }\n  widthWindow() {\n    return $(window).width();\n  }\n  isDesktop() {\n    return this.widthWindow() >= this.mobileWidth;\n  }\n  _reclamp() {\n    this._detectScreen();\n    this._clampText();\n  }\n  _detectScreen() {\n    return this.screen = this.isDesktop() ? \"desktop\" : \"mobile\";\n  }\n  _clampText() {\n    this.articles.each((index, article) => {\n      let {\n        titleLines,\n        teaserLines,\n        teaser,\n        blurb\n      } = this._findElements(article);\n\n      // aka 2 + 5 or something\n      if (titleLines + teaserLines > this.maxLines) {\n        let teaserClamp = Math.ceil(this.maxLines - titleLines);\n        $clamp(teaser.get(0), { clamp: teaserClamp });\n        teaser.addClass(\"article__info__teaser--small\");\n        blurb.prop(\"hidden\", true);\n      } else {\n        // Only clamp the blurb\n        let blurbClamp = Math.ceil(this.maxLines - titleLines - teaserLines);\n        $clamp(blurb.get(0), { clamp: blurbClamp });\n      }\n    });\n  }\n  _findElements(article) {\n    // Select all necessary elements\n    let $article = $(article),\n        title = $article.find(\".article__info__title\"),\n        teaser = $article.find(\".article__info__teaser\"),\n        blurb = $article.find(\".article__info__blurb\"),\n        // Find elements heights\n        titleHeight = parseInt(title.height(), 10) || 0,\n        teaserHeight = parseInt(teaser.height(), 10) || 0,\n        blurbHeight = parseInt(blurb.height(), 10) || 0,\n        // Figure out how many lines each element actually is based on line heights and height\n        blurbLines = blurbHeight / this.blurbLineHeight[this.screen],\n        teaserLines = teaserHeight / this.blurbLineHeight[this.screen],\n        titleLines = titleHeight / this.titleLineHeight[this.screen],\n\n        // Figure out how many lines need to be removed\n        linesAllowed = this.maxLines - titleLines,\n        removeLines = Math.floor(blurbLines + teaserLines - linesAllowed);\n\n    return {\n      removeLines: removeLines,\n      titleLines: titleLines,\n      teaserLines: teaserLines,\n      blurbLines: blurbLines,\n      teaser: teaser,\n      blurb: blurb\n    };\n  }\n}\n\nexport default ArticlesComponent;\n"
  },
  {
    "__docId__": 26,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "ArticlesComponent",
    "memberof": "src/components/articles/index.js",
    "longname": "src/components/articles/index.js~ArticlesComponent",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/articles/index.js",
    "importStyle": "ArticlesComponent",
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 27,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/articles/index.js~ArticlesComponent",
    "longname": "src/components/articles/index.js~ArticlesComponent#initialize",
    "access": null,
    "description": null,
    "lineNumber": 9,
    "undocument": true,
    "params": [
      {
        "name": "options",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 28,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "articles",
    "memberof": "src/components/articles/index.js~ArticlesComponent",
    "longname": "src/components/articles/index.js~ArticlesComponent#articles",
    "access": null,
    "description": null,
    "lineNumber": 10,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 29,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "maxLines",
    "memberof": "src/components/articles/index.js~ArticlesComponent",
    "longname": "src/components/articles/index.js~ArticlesComponent#maxLines",
    "access": null,
    "description": null,
    "lineNumber": 11,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 30,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "titleLineHeight",
    "memberof": "src/components/articles/index.js~ArticlesComponent",
    "longname": "src/components/articles/index.js~ArticlesComponent#titleLineHeight",
    "access": null,
    "description": null,
    "lineNumber": 13,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 31,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "blurbLineHeight",
    "memberof": "src/components/articles/index.js~ArticlesComponent",
    "longname": "src/components/articles/index.js~ArticlesComponent#blurbLineHeight",
    "access": null,
    "description": null,
    "lineNumber": 14,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 32,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "mobileWidth",
    "memberof": "src/components/articles/index.js~ArticlesComponent",
    "longname": "src/components/articles/index.js~ArticlesComponent#mobileWidth",
    "access": null,
    "description": null,
    "lineNumber": 15,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 33,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "screen",
    "memberof": "src/components/articles/index.js~ArticlesComponent",
    "longname": "src/components/articles/index.js~ArticlesComponent#screen",
    "access": null,
    "description": null,
    "lineNumber": 16,
    "undocument": true,
    "type": {
      "types": [
        "string"
      ]
    }
  },
  {
    "__docId__": 34,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "tabs",
    "memberof": "src/components/articles/index.js~ArticlesComponent",
    "longname": "src/components/articles/index.js~ArticlesComponent#tabs",
    "access": null,
    "description": null,
    "lineNumber": 17,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 35,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "widthWindow",
    "memberof": "src/components/articles/index.js~ArticlesComponent",
    "longname": "src/components/articles/index.js~ArticlesComponent#widthWindow",
    "access": null,
    "description": null,
    "lineNumber": 29,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 36,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "isDesktop",
    "memberof": "src/components/articles/index.js~ArticlesComponent",
    "longname": "src/components/articles/index.js~ArticlesComponent#isDesktop",
    "access": null,
    "description": null,
    "lineNumber": 32,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 37,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_reclamp",
    "memberof": "src/components/articles/index.js~ArticlesComponent",
    "longname": "src/components/articles/index.js~ArticlesComponent#_reclamp",
    "access": null,
    "description": null,
    "lineNumber": 35,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 38,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_detectScreen",
    "memberof": "src/components/articles/index.js~ArticlesComponent",
    "longname": "src/components/articles/index.js~ArticlesComponent#_detectScreen",
    "access": null,
    "description": null,
    "lineNumber": 39,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 39,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_clampText",
    "memberof": "src/components/articles/index.js~ArticlesComponent",
    "longname": "src/components/articles/index.js~ArticlesComponent#_clampText",
    "access": null,
    "description": null,
    "lineNumber": 42,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 40,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_findElements",
    "memberof": "src/components/articles/index.js~ArticlesComponent",
    "longname": "src/components/articles/index.js~ArticlesComponent#_findElements",
    "access": null,
    "description": null,
    "lineNumber": 64,
    "undocument": true,
    "params": [
      {
        "name": "article",
        "types": [
          "*"
        ]
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 41,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "articlesComponent",
    "memberof": "src/components/articles/index.js",
    "longname": "src/components/articles/index.js~articlesComponent",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/articles/index.js",
    "importStyle": "articlesComponent",
    "description": null,
    "lineNumber": 94,
    "undocument": true,
    "type": {
      "types": [
        "src/components/articles/index.js~ArticlesComponent"
      ]
    }
  },
  {
    "__docId__": 42,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/author/index.js",
    "memberof": null,
    "longname": "src/components/author/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "require(\"./author.scss\");\n"
  },
  {
    "__docId__": 43,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/avatar/index.js",
    "memberof": null,
    "longname": "src/components/avatar/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "require(\"./_avatar.scss\");\n"
  },
  {
    "__docId__": 44,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/category_list/index.js",
    "memberof": null,
    "longname": "src/components/category_list/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "require(\"./category_list.scss\");\n"
  },
  {
    "__docId__": 45,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/food_and_drink/index.js",
    "memberof": null,
    "longname": "src/components/food_and_drink/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "require(\"./_food_and_drink.scss\");\n"
  },
  {
    "__docId__": 46,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/footer/footer_component.js",
    "memberof": null,
    "longname": "src/components/footer/footer_component.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../core/bane\";\nimport $ from \"jquery\";\n\nclass Footer extends Component {\n  initialize() {\n    this.updateLocationOnChange();\n  }\n\n  updateLocationOnChange() {\n    $(\".js-language-select\").on(\"change\", function(event) {\n      let url = \"http://\" + $(this).val();\n\n      window.location = url;\n\n      event.preventDefault();\n    });\n  }\n}\n\nexport default Footer;\n"
  },
  {
    "__docId__": 47,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "Footer",
    "memberof": "src/components/footer/footer_component.js",
    "longname": "src/components/footer/footer_component.js~Footer",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/footer/footer_component.js",
    "importStyle": "Footer",
    "description": null,
    "lineNumber": 4,
    "undocument": true,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 48,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/footer/footer_component.js~Footer",
    "longname": "src/components/footer/footer_component.js~Footer#initialize",
    "access": null,
    "description": null,
    "lineNumber": 5,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 49,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "updateLocationOnChange",
    "memberof": "src/components/footer/footer_component.js~Footer",
    "longname": "src/components/footer/footer_component.js~Footer#updateLocationOnChange",
    "access": null,
    "description": null,
    "lineNumber": 9,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 50,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "footer",
    "memberof": "src/components/footer/footer_component.js",
    "longname": "src/components/footer/footer_component.js~footer",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/footer/footer_component.js",
    "importStyle": "footer",
    "description": null,
    "lineNumber": 20,
    "undocument": true,
    "type": {
      "types": [
        "src/components/footer/footer_component.js~Footer"
      ]
    }
  },
  {
    "__docId__": 51,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/footer/index.js",
    "memberof": null,
    "longname": "src/components/footer/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import Footer from \"./footer_component\";\n\nrequire(\"./_footer.scss\");\n\nexport default Footer;\n"
  },
  {
    "__docId__": 52,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/guidebook/index.js",
    "memberof": null,
    "longname": "src/components/guidebook/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "require(\"./_guidebook.scss\");\n"
  },
  {
    "__docId__": 53,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/header/header_component.js",
    "memberof": null,
    "longname": "src/components/header/header_component.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../core/bane\";\nimport SearchComponent from \"../search\";\nimport NavigationComponent from \"../navigation\";\nimport $ from \"jquery\";\n\nimport debounce from \"lodash/function/debounce\";\n\n/**\n * The page header which contains both search and navigation.\n * Clicking on the search icons opens the search.\n * Will re-render when the browser changes sizes\n */\nclass Header extends Component {\n\n  initialize() {\n    this.search = new SearchComponent();\n    this.navigation = new NavigationComponent({\n      el: $(\".navigation\")\n    });\n\n    this.events = {\n      \"click .js-search\": \"onSearchClick\",\n      \"click .js-search .navigation__link\": \"onSearchClick\",\n      \"click .js-menu\": \"onMobileMenuClick\"\n    };\n\n    this.$search = this.$el.find(\".header__search\");\n    this.$inner = this.$el.find(\".header__inner\");\n\n    $(window).resize(debounce(this.render.bind(this), 100));\n    this.render();\n  }\n  /**\n   * Add a class to the search when it's too big for the screen\n   * @return {Header} The instance of the header\n   */\n  render() {\n    let fadeClassName = \"header__search--fade\";\n\n    this.$search\n        .removeClass(fadeClassName)\n        .toggleClass(fadeClassName, this.isTooBig());\n\n    return this;\n  }\n  /**\n   * If the search box is too big based on the screen width\n   * @return {Boolean} \n   */\n  isTooBig() {\n    return this.$search.width() > this.$inner.width() * .42;\n  }\n  \n  onSearchClick(e) {\n    e.preventDefault();\n\n    this.search.show();\n  }\n\n  onMobileMenuClick(){\n    this.navigation._clickNav();\n  }\n}\n\nexport default Header;\n"
  },
  {
    "__docId__": 54,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "Header",
    "memberof": "src/components/header/header_component.js",
    "longname": "src/components/header/header_component.js~Header",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/header/header_component.js",
    "importStyle": "Header",
    "description": "The page header which contains both search and navigation.\nClicking on the search icons opens the search.\nWill re-render when the browser changes sizes",
    "lineNumber": 13,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 55,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/header/header_component.js~Header",
    "longname": "src/components/header/header_component.js~Header#initialize",
    "access": null,
    "description": null,
    "lineNumber": 15,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 56,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "search",
    "memberof": "src/components/header/header_component.js~Header",
    "longname": "src/components/header/header_component.js~Header#search",
    "access": null,
    "description": null,
    "lineNumber": 16,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 57,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "navigation",
    "memberof": "src/components/header/header_component.js~Header",
    "longname": "src/components/header/header_component.js~Header#navigation",
    "access": null,
    "description": null,
    "lineNumber": 17,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 58,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "events",
    "memberof": "src/components/header/header_component.js~Header",
    "longname": "src/components/header/header_component.js~Header#events",
    "access": null,
    "description": null,
    "lineNumber": 21,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 59,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "$search",
    "memberof": "src/components/header/header_component.js~Header",
    "longname": "src/components/header/header_component.js~Header#$search",
    "access": null,
    "description": null,
    "lineNumber": 27,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 60,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "$inner",
    "memberof": "src/components/header/header_component.js~Header",
    "longname": "src/components/header/header_component.js~Header#$inner",
    "access": null,
    "description": null,
    "lineNumber": 28,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 61,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "render",
    "memberof": "src/components/header/header_component.js~Header",
    "longname": "src/components/header/header_component.js~Header#render",
    "access": null,
    "description": "Add a class to the search when it's too big for the screen",
    "lineNumber": 37,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "Header"
      ],
      "spread": false,
      "description": "The instance of the header"
    },
    "generator": false
  },
  {
    "__docId__": 62,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "isTooBig",
    "memberof": "src/components/header/header_component.js~Header",
    "longname": "src/components/header/header_component.js~Header#isTooBig",
    "access": null,
    "description": "If the search box is too big based on the screen width",
    "lineNumber": 50,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "Boolean"
      ],
      "spread": false,
      "description": ""
    },
    "generator": false
  },
  {
    "__docId__": 63,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "onSearchClick",
    "memberof": "src/components/header/header_component.js~Header",
    "longname": "src/components/header/header_component.js~Header#onSearchClick",
    "access": null,
    "description": null,
    "lineNumber": 54,
    "undocument": true,
    "params": [
      {
        "name": "e",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 64,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "onMobileMenuClick",
    "memberof": "src/components/header/header_component.js~Header",
    "longname": "src/components/header/header_component.js~Header#onMobileMenuClick",
    "access": null,
    "description": null,
    "lineNumber": 60,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 65,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "header",
    "memberof": "src/components/header/header_component.js",
    "longname": "src/components/header/header_component.js~header",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/header/header_component.js",
    "importStyle": "header",
    "description": null,
    "lineNumber": 65,
    "undocument": true,
    "type": {
      "types": [
        "src/components/header/header_component.js~Header"
      ]
    }
  },
  {
    "__docId__": 66,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/header/index.js",
    "memberof": null,
    "longname": "src/components/header/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import HeaderComponent from \"./header_component\";\nimport \"./_header.scss\";\n\nexport default HeaderComponent;\n"
  },
  {
    "__docId__": 67,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/hotels/hotels.events.js",
    "memberof": null,
    "longname": "src/components/hotels/hotels.events.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "export default {\n  SEARCH: \"hotels.search\"\n};\n"
  },
  {
    "__docId__": 68,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/hotels/hotels_widget.js",
    "memberof": null,
    "longname": "src/components/hotels/hotels_widget.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../core/bane\";\nimport assign from \"lodash/object/assign\";\nimport \"pickadate/lib/picker.date\";\nimport HotelsEvents from \"./hotels.events\";\nimport publish from \"../../core/decorators/publish\";\nimport $ from \"jquery\";\nlet _ = { assign };\n\nconst dateDefaults = {\n  format: \"mm/d/yyyy\",\n  formatSubmit: \"dd/mm/yyyy\",\n  hiddenName: true,\n  labelMonthNext: \"Go to the next month\",\n  labelMonthPrev: \"Go to the previous month\",\n  labelMonthSelect: \"Pick a month from the dropdown\",\n  labelYearSelect: \"Pick a year from the dropdown\"\n};\n\nclass HotelsWidget extends Component {\n  get booking() {\n    let guests = this.$el.find(\"#js-guests\");\n\n    return {\n      startDate: new Date(this.startDate),\n      endDate: new Date(this.endDate),\n      guests: parseInt(guests.val(), 10)\n    };\n  }\n  get startDate() {\n    return this.$startDate.pickadate(\"picker\").get();\n  }\n  get endDate() {\n    return this.$endDate.pickadate(\"picker\").get();\n  }\n  initialize() {\n    this.events = {\n      \"submit #hotel-search-form\": \"searchHotels\"\n    };\n\n    let dates = this.$el.find(\"input[type='date']\"),\n        startDate = $(dates[0]),\n        endDate = $(dates[1]),\n        today = new Date();\n\n    this.$startDate = startDate.pickadate(_.assign({\n      min: today,\n    }, dateDefaults));\n\n    this.$endDate = endDate.pickadate(_.assign({\n      min: this.nextDate(today)\n    }, dateDefaults));\n\n    startDate.change(() => this.changeDate(this.endDate, this.startDate));\n  }\n  nextDate(date) {\n    let tmpDate = new Date(date);\n    tmpDate.setDate(date.getDate() + 1);\n    return tmpDate;\n  }\n  changeDate (endDate, startDate){\n    let existingEndDate = new Date(endDate),\n        newStartDate = new Date(startDate);\n    \n    if (existingEndDate.toString() === \"Invalid Date\" || newStartDate > existingEndDate) {\n      let newMinimumEndDate = new Date(newStartDate.getTime() + 24 * 60 * 60 * 1000);\n      this.updateEndDate(newMinimumEndDate);\n      return newMinimumEndDate;\n    }\n  }\n  updateEndDate(date) {\n    this.$endDate.pickadate(\"picker\").set({\n      \"min\": date,\n      \"select\": date\n    });\n  }\n  @publish(HotelsEvents.SEARCH)\n  searchHotels() {\n    return {\n      booking: this.booking\n    };\n  }\n}\n\nexport default HotelsWidget;\n"
  },
  {
    "__docId__": 69,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "_",
    "memberof": "src/components/hotels/hotels_widget.js",
    "longname": "src/components/hotels/hotels_widget.js~_",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/components/hotels/hotels_widget.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 7,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 70,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "dateDefaults",
    "memberof": "src/components/hotels/hotels_widget.js",
    "longname": "src/components/hotels/hotels_widget.js~dateDefaults",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/components/hotels/hotels_widget.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 9,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 71,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "HotelsWidget",
    "memberof": "src/components/hotels/hotels_widget.js",
    "longname": "src/components/hotels/hotels_widget.js~HotelsWidget",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/hotels/hotels_widget.js",
    "importStyle": "HotelsWidget",
    "description": null,
    "lineNumber": 19,
    "undocument": true,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 72,
    "kind": "get",
    "static": false,
    "variation": null,
    "name": "booking",
    "memberof": "src/components/hotels/hotels_widget.js~HotelsWidget",
    "longname": "src/components/hotels/hotels_widget.js~HotelsWidget#booking",
    "access": null,
    "description": null,
    "lineNumber": 20,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 73,
    "kind": "get",
    "static": false,
    "variation": null,
    "name": "startDate",
    "memberof": "src/components/hotels/hotels_widget.js~HotelsWidget",
    "longname": "src/components/hotels/hotels_widget.js~HotelsWidget#startDate",
    "access": null,
    "description": null,
    "lineNumber": 29,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 74,
    "kind": "get",
    "static": false,
    "variation": null,
    "name": "endDate",
    "memberof": "src/components/hotels/hotels_widget.js~HotelsWidget",
    "longname": "src/components/hotels/hotels_widget.js~HotelsWidget#endDate",
    "access": null,
    "description": null,
    "lineNumber": 32,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 75,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/hotels/hotels_widget.js~HotelsWidget",
    "longname": "src/components/hotels/hotels_widget.js~HotelsWidget#initialize",
    "access": null,
    "description": null,
    "lineNumber": 35,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 76,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "events",
    "memberof": "src/components/hotels/hotels_widget.js~HotelsWidget",
    "longname": "src/components/hotels/hotels_widget.js~HotelsWidget#events",
    "access": null,
    "description": null,
    "lineNumber": 36,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 77,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "$startDate",
    "memberof": "src/components/hotels/hotels_widget.js~HotelsWidget",
    "longname": "src/components/hotels/hotels_widget.js~HotelsWidget#$startDate",
    "access": null,
    "description": null,
    "lineNumber": 45,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 78,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "$endDate",
    "memberof": "src/components/hotels/hotels_widget.js~HotelsWidget",
    "longname": "src/components/hotels/hotels_widget.js~HotelsWidget#$endDate",
    "access": null,
    "description": null,
    "lineNumber": 49,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 79,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "nextDate",
    "memberof": "src/components/hotels/hotels_widget.js~HotelsWidget",
    "longname": "src/components/hotels/hotels_widget.js~HotelsWidget#nextDate",
    "access": null,
    "description": null,
    "lineNumber": 55,
    "undocument": true,
    "params": [
      {
        "name": "date",
        "types": [
          "*"
        ]
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 80,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "changeDate",
    "memberof": "src/components/hotels/hotels_widget.js~HotelsWidget",
    "longname": "src/components/hotels/hotels_widget.js~HotelsWidget#changeDate",
    "access": null,
    "description": null,
    "lineNumber": 60,
    "undocument": true,
    "params": [
      {
        "name": "endDate",
        "types": [
          "*"
        ]
      },
      {
        "name": "startDate",
        "types": [
          "*"
        ]
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 81,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "updateEndDate",
    "memberof": "src/components/hotels/hotels_widget.js~HotelsWidget",
    "longname": "src/components/hotels/hotels_widget.js~HotelsWidget#updateEndDate",
    "access": null,
    "description": null,
    "lineNumber": 70,
    "undocument": true,
    "params": [
      {
        "name": "date",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 82,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "searchHotels",
    "memberof": "src/components/hotels/hotels_widget.js~HotelsWidget",
    "longname": "src/components/hotels/hotels_widget.js~HotelsWidget#searchHotels",
    "access": null,
    "description": null,
    "lineNumber": 77,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 83,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "hotelsWidget",
    "memberof": "src/components/hotels/hotels_widget.js",
    "longname": "src/components/hotels/hotels_widget.js~hotelsWidget",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/hotels/hotels_widget.js",
    "importStyle": "hotelsWidget",
    "description": null,
    "lineNumber": 84,
    "undocument": true,
    "type": {
      "types": [
        "src/components/hotels/hotels_widget.js~HotelsWidget"
      ]
    }
  },
  {
    "__docId__": 84,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/hotels/index.js",
    "memberof": null,
    "longname": "src/components/hotels/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import HotelsWidget from \"./hotels_widget\";\n\nrequire(\"./_hotels.scss\");\n\nexport default HotelsWidget;\n"
  },
  {
    "__docId__": 85,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/image_gallery/image_gallery.js",
    "memberof": null,
    "longname": "src/components/image_gallery/image_gallery.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../core/bane\";\nimport $ from \"jquery\";\nimport PhotoSwipe from \"photoswipe\";\nimport PhotoSwipeUI_Default from \"photoswipe/dist/photoswipe-ui-default\";\n\n// Keep track of instance IDs\nlet instanceId = 0;\n\n/**\n * A component for creating an Image Gallery\n */\nexport default class ImageGalleryComponent extends Component {\n  /**\n   * Render the gallery viewer\n   * @return {jQuery} Returns the gallery element\n   */\n  get $pswp() {\n    if (this._$pswp) {\n      return this._$pswp;\n    }\n\n    return this._$pswp = $(this.template({})).appendTo(\"body\");\n  }\n  initialize({\n    galleryImageSelector = \".stack__article__image-container\"\n  } = {}) {\n    this.template = require(\"./image_gallery.hbs\");\n\n    this.$images = this.$el.find(galleryImageSelector);\n\n    this.events = {\n      [\"click \" + galleryImageSelector]: \"onGalleryClick\"\n    };\n\n    this.$el.attr({\n      \"data-pswp-uid\": ++instanceId,\n      \"data-gallery\": this\n    });\n  }\n  _parseThumbnailElements() {\n    if (this._items) {\n      return this._items;\n    }\n\n    let items = this._items = [];\n\n    this.$images.each((i, el) => {\n      let $galleryImage = $(el),\n          $linkEl = $galleryImage.find(\"a\"),\n          size = $linkEl.attr(\"data-size\").split(\"x\"),\n          // TODO: Do this on the Ruby side\n          largeImage = $linkEl.attr(\"href\").replace(\"travel-blog/tip-article/wordpress_uploads/\", \"\"),\n          smallImage = $linkEl.find(\"img\").attr(\"src\").replace(\"http://www.lonelyplanet.com/travel-blog/tip-article/wordpress_uploads/\", \"\");\n\n      let item = {\n        src: `https://lonelyplanetwp.imgix.net${largeImage}`,\n        el: $galleryImage[0],\n        w: parseInt(size[0], 10),\n        h: parseInt(size[1], 10)\n      };\n\n      let $caption;\n      if(($caption = $galleryImage.find(\"span\")).length) {\n        item.title = $caption.html();\n      }\n\n      if(smallImage) {\n        item.msrc = `https://lonelyplanetwp.imgix.net/${smallImage}`;\n      }\n\n      items.push(item);\n    });\n\n    return items;\n  }\n  /**\n   * Callback from clicking on a gallery image\n   * @param  {Event} e Event\n   * @return {Boolean} Returns false to prevent bubbling and cancel event\n   */\n  onGalleryClick(e) {\n    e.preventDefault();\n\n    let clickedListItem = e.currentTarget,\n        index = this.$images.index(clickedListItem);\n\n    if(index >= 0) {\n      this.openPhotoSwipe(index);\n    }\n\n    return false;\n  }\n  /**\n   * Open the photo gallery\n   * @param  {[type]} index [description]\n   * @return {[type]}       [description]\n   */\n  openPhotoSwipe(index = 0) {\n    let items = this._parseThumbnailElements();\n\n    let options = {\n      galleryUID: this.$el.attr(\"data-pswp-uid\"),\n      getThumbBoundsFn: function(index) {\n        let thumbnail = items[index].el, // find thumbnail\n            pageYScroll = window.pageYOffset || document.documentElement.scrollTop,\n            rect = thumbnail.getBoundingClientRect();\n\n        return { x: rect.left, y: rect.top + pageYScroll, w: rect.width };\n      },\n      index\n    };\n\n    this._gallery = new PhotoSwipe( this.$pswp[0], PhotoSwipeUI_Default, items, options );\n    this._gallery.init();\n  }\n}\n"
  },
  {
    "__docId__": 86,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "instanceId",
    "memberof": "src/components/image_gallery/image_gallery.js",
    "longname": "src/components/image_gallery/image_gallery.js~instanceId",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/components/image_gallery/image_gallery.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 7,
    "undocument": true,
    "type": {
      "types": [
        "number"
      ]
    }
  },
  {
    "__docId__": 87,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "ImageGalleryComponent",
    "memberof": "src/components/image_gallery/image_gallery.js",
    "longname": "src/components/image_gallery/image_gallery.js~ImageGalleryComponent",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/image_gallery/image_gallery.js",
    "importStyle": "ImageGalleryComponent",
    "description": "A component for creating an Image Gallery",
    "lineNumber": 12,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 88,
    "kind": "get",
    "static": false,
    "variation": null,
    "name": "$pswp",
    "memberof": "src/components/image_gallery/image_gallery.js~ImageGalleryComponent",
    "longname": "src/components/image_gallery/image_gallery.js~ImageGalleryComponent#$pswp",
    "access": null,
    "description": "Render the gallery viewer",
    "lineNumber": 17,
    "return": {
      "nullable": null,
      "types": [
        "jQuery"
      ],
      "spread": false,
      "description": "Returns the gallery element"
    },
    "type": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 89,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/image_gallery/image_gallery.js~ImageGalleryComponent",
    "longname": "src/components/image_gallery/image_gallery.js~ImageGalleryComponent#initialize",
    "access": null,
    "description": null,
    "lineNumber": 24,
    "undocument": true,
    "params": [
      {
        "name": "objectPattern",
        "optional": true,
        "types": [
          "{\"galleryImageSelector\": *}"
        ],
        "defaultRaw": {},
        "defaultValue": "{}"
      }
    ],
    "generator": false
  },
  {
    "__docId__": 90,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "template",
    "memberof": "src/components/image_gallery/image_gallery.js~ImageGalleryComponent",
    "longname": "src/components/image_gallery/image_gallery.js~ImageGalleryComponent#template",
    "access": null,
    "description": null,
    "lineNumber": 27,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 91,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "$images",
    "memberof": "src/components/image_gallery/image_gallery.js~ImageGalleryComponent",
    "longname": "src/components/image_gallery/image_gallery.js~ImageGalleryComponent#$images",
    "access": null,
    "description": null,
    "lineNumber": 29,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 92,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "events",
    "memberof": "src/components/image_gallery/image_gallery.js~ImageGalleryComponent",
    "longname": "src/components/image_gallery/image_gallery.js~ImageGalleryComponent#events",
    "access": null,
    "description": null,
    "lineNumber": 31,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 93,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_parseThumbnailElements",
    "memberof": "src/components/image_gallery/image_gallery.js~ImageGalleryComponent",
    "longname": "src/components/image_gallery/image_gallery.js~ImageGalleryComponent#_parseThumbnailElements",
    "access": null,
    "description": null,
    "lineNumber": 40,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 94,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "onGalleryClick",
    "memberof": "src/components/image_gallery/image_gallery.js~ImageGalleryComponent",
    "longname": "src/components/image_gallery/image_gallery.js~ImageGalleryComponent#onGalleryClick",
    "access": null,
    "description": "Callback from clicking on a gallery image",
    "lineNumber": 81,
    "params": [
      {
        "nullable": null,
        "types": [
          "Event"
        ],
        "spread": false,
        "optional": false,
        "name": "e",
        "description": "Event"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "Boolean"
      ],
      "spread": false,
      "description": "Returns false to prevent bubbling and cancel event"
    },
    "generator": false
  },
  {
    "__docId__": 95,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "openPhotoSwipe",
    "memberof": "src/components/image_gallery/image_gallery.js~ImageGalleryComponent",
    "longname": "src/components/image_gallery/image_gallery.js~ImageGalleryComponent#openPhotoSwipe",
    "access": null,
    "description": "Open the photo gallery",
    "lineNumber": 98,
    "params": [
      {
        "nullable": null,
        "types": [
          "[type]"
        ],
        "spread": false,
        "optional": false,
        "name": "index",
        "description": "[description]"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "[type]"
      ],
      "spread": false,
      "description": "[description]"
    },
    "generator": false
  },
  {
    "__docId__": 96,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "_gallery",
    "memberof": "src/components/image_gallery/image_gallery.js~ImageGalleryComponent",
    "longname": "src/components/image_gallery/image_gallery.js~ImageGalleryComponent#_gallery",
    "access": null,
    "description": null,
    "lineNumber": 113,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 97,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/image_gallery/index.js",
    "memberof": null,
    "longname": "src/components/image_gallery/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import ImageGallery from \"./image_gallery\";\nimport \"./image_gallery.scss\";\n\nexport default ImageGallery;\n"
  },
  {
    "__docId__": 98,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/interests/index.js",
    "memberof": null,
    "longname": "src/components/interests/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "require(\"./_interests.scss\");\n"
  },
  {
    "__docId__": 99,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/intro_narrative/index.js",
    "memberof": null,
    "longname": "src/components/intro_narrative/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "require(\"./_intro_narrative.scss\");\n"
  },
  {
    "__docId__": 100,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/login/login_manager.js",
    "memberof": null,
    "longname": "src/components/login/login_manager.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import $ from \"jquery\";\nimport publish from \"../../core/decorators/publish\";\nimport User from \"./user\";\n\nexport default class LoginManager {\n  constructor() {\n    this.statusUrl = \"https://auth.lonelyplanet.com/users/status.json\";\n    this.feedUrl = \"https://www.lonelyplanet.com/thorntree/users/feed\";\n    \n    this.checkStatus();\n  }\n  /**\n   * Check to see if the user is currently logged in.\n   * @return {jQuery.Deferred}\n   */\n  checkStatus() {\n    return $.ajax({\n      url: this.statusUrl,\n      dataType: \"jsonp\",\n      success: this.statusFetched.bind(this),\n      error: this.error.bind(this)\n    });\n  }\n  /**\n   * Callback from checking the user's login status.\n   * If the user is not logged in, it will publish a user with a null id.\n   * Will check for user notifications if the user is logged in.\n   * @param  {Object} user User login information\n   */\n  statusFetched(user) {\n    this.user = (user.username ? new User(user) : new User());\n    \n    if (!user.id) {\n      return this.updateStatus();\n    }\n\n    this.getNotifications().done((data) => {\n      this.notificationsFetched(data);\n      this.updateStatus();\n      this.pollForUpdates();\n    });\n  }\n  /**\n   * Update the user's notifications with data from Luna\n   * @param  {Object} data The new data\n   */\n  notificationsFetched(data) {\n    this.user.activities = data.activities;\n    this.user.messages = data.messages;\n  }\n  /**\n   * Set up an interval to check for Luna notification updates.\n   */\n  pollForUpdates() {\n    this.pollInterval = setInterval(() => {\n      this.getNotifications()\n        .done(this.checkNotifications.bind(this));\n    }, 15000);\n  }\n  /**\n   * Retrieve Thorntree notifications\n   * @return {jQuery.Deferred} A jQuery promise\n   */\n  getNotifications() {\n    return $.ajax({\n      url: this.feedUrl,\n      dataType: \"jsonp\"\n    });\n  }\n  /**\n   * Check to see if there are new notications from thorntree.\n   * If there are, it will update the user's messages and activity.\n   * @param  {Object} data Notification data from thorntree\n   */\n  checkNotifications(data) {\n    // Only update if things have changed\n    if(\n      JSON.stringify(data.messages) !== JSON.stringify(this.user.messages) || \n      JSON.stringify(data.activities) !== JSON.stringify(this.user.activities)\n    ) {\n      this.notificationsFetched(data);\n      this.updateNotifications();  \n    }\n  }\n  @publish(\"user.status.update\")\n  updateStatus() {\n    return this.user.toJSON();\n  }\n  @publish(\"user.notifications.update\")\n  updateNotifications() {\n    return this.user.toJSON();\n  }\n  error() {\n    throw \"Error retrieving luna login information\";\n  }\n}\n"
  },
  {
    "__docId__": 101,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "LoginManager",
    "memberof": "src/components/login/login_manager.js",
    "longname": "src/components/login/login_manager.js~LoginManager",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/login/login_manager.js",
    "importStyle": "LoginManager",
    "description": null,
    "lineNumber": 5,
    "undocument": true,
    "interface": false
  },
  {
    "__docId__": 102,
    "kind": "constructor",
    "static": false,
    "variation": null,
    "name": "constructor",
    "memberof": "src/components/login/login_manager.js~LoginManager",
    "longname": "src/components/login/login_manager.js~LoginManager#constructor",
    "access": null,
    "description": null,
    "lineNumber": 6,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 103,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "statusUrl",
    "memberof": "src/components/login/login_manager.js~LoginManager",
    "longname": "src/components/login/login_manager.js~LoginManager#statusUrl",
    "access": null,
    "description": null,
    "lineNumber": 7,
    "undocument": true,
    "type": {
      "types": [
        "string"
      ]
    }
  },
  {
    "__docId__": 104,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "feedUrl",
    "memberof": "src/components/login/login_manager.js~LoginManager",
    "longname": "src/components/login/login_manager.js~LoginManager#feedUrl",
    "access": null,
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "type": {
      "types": [
        "string"
      ]
    }
  },
  {
    "__docId__": 105,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "checkStatus",
    "memberof": "src/components/login/login_manager.js~LoginManager",
    "longname": "src/components/login/login_manager.js~LoginManager#checkStatus",
    "access": null,
    "description": "Check to see if the user is currently logged in.",
    "lineNumber": 16,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "jQuery.Deferred"
      ],
      "spread": false,
      "description": ""
    },
    "generator": false
  },
  {
    "__docId__": 106,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "statusFetched",
    "memberof": "src/components/login/login_manager.js~LoginManager",
    "longname": "src/components/login/login_manager.js~LoginManager#statusFetched",
    "access": null,
    "description": "Callback from checking the user's login status.\nIf the user is not logged in, it will publish a user with a null id.\nWill check for user notifications if the user is logged in.",
    "lineNumber": 30,
    "params": [
      {
        "nullable": null,
        "types": [
          "Object"
        ],
        "spread": false,
        "optional": false,
        "name": "user",
        "description": "User login information"
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 107,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "user",
    "memberof": "src/components/login/login_manager.js~LoginManager",
    "longname": "src/components/login/login_manager.js~LoginManager#user",
    "access": null,
    "description": null,
    "lineNumber": 31,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 108,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "notificationsFetched",
    "memberof": "src/components/login/login_manager.js~LoginManager",
    "longname": "src/components/login/login_manager.js~LoginManager#notificationsFetched",
    "access": null,
    "description": "Update the user's notifications with data from Luna",
    "lineNumber": 47,
    "params": [
      {
        "nullable": null,
        "types": [
          "Object"
        ],
        "spread": false,
        "optional": false,
        "name": "data",
        "description": "The new data"
      }
    ],
    "generator": false
  },
  {
    "__docId__": 109,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "pollForUpdates",
    "memberof": "src/components/login/login_manager.js~LoginManager",
    "longname": "src/components/login/login_manager.js~LoginManager#pollForUpdates",
    "access": null,
    "description": "Set up an interval to check for Luna notification updates.",
    "lineNumber": 54,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 110,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "pollInterval",
    "memberof": "src/components/login/login_manager.js~LoginManager",
    "longname": "src/components/login/login_manager.js~LoginManager#pollInterval",
    "access": null,
    "description": null,
    "lineNumber": 55,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 111,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getNotifications",
    "memberof": "src/components/login/login_manager.js~LoginManager",
    "longname": "src/components/login/login_manager.js~LoginManager#getNotifications",
    "access": null,
    "description": "Retrieve Thorntree notifications",
    "lineNumber": 64,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "jQuery.Deferred"
      ],
      "spread": false,
      "description": "A jQuery promise"
    },
    "generator": false
  },
  {
    "__docId__": 112,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "checkNotifications",
    "memberof": "src/components/login/login_manager.js~LoginManager",
    "longname": "src/components/login/login_manager.js~LoginManager#checkNotifications",
    "access": null,
    "description": "Check to see if there are new notications from thorntree.\nIf there are, it will update the user's messages and activity.",
    "lineNumber": 75,
    "params": [
      {
        "nullable": null,
        "types": [
          "Object"
        ],
        "spread": false,
        "optional": false,
        "name": "data",
        "description": "Notification data from thorntree"
      }
    ],
    "generator": false
  },
  {
    "__docId__": 113,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "updateStatus",
    "memberof": "src/components/login/login_manager.js~LoginManager",
    "longname": "src/components/login/login_manager.js~LoginManager#updateStatus",
    "access": null,
    "description": null,
    "lineNumber": 86,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 114,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "updateNotifications",
    "memberof": "src/components/login/login_manager.js~LoginManager",
    "longname": "src/components/login/login_manager.js~LoginManager#updateNotifications",
    "access": null,
    "description": null,
    "lineNumber": 90,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 115,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "error",
    "memberof": "src/components/login/login_manager.js~LoginManager",
    "longname": "src/components/login/login_manager.js~LoginManager#error",
    "access": null,
    "description": null,
    "lineNumber": 93,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 116,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/login/user.js",
    "memberof": null,
    "longname": "src/components/login/user.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "let rClass = /\\sclass=\\\"[a-zA-Z_-\\s]*\\\"/g;\n\nexport default class User {\n  constructor({\n    id,\n    email,\n    username,\n    facebookUid,\n    profileSlug,\n    avatar = \"http://dummyimage.com/80x80/4d494d/686a82.gif\",\n    messages = [],\n    activity = []\n  } = {}) {\n    this.id = id;\n    this.email = email;\n    this.username = username;\n    this.facebookUid = facebookUid;\n    this.profileSlug = profileSlug;\n    this.avatar = avatar.replace(/small/, \"large\");\n    this.messages = messages;\n    this.activity = activity;\n  }\n  toJSON() {\n    let obj = {};\n    for(let key in this) {\n      if (this.hasOwnProperty(key)) {\n        obj[key] = this[key];\n      }\n    }\n    \n    obj.messages = obj.messages.length ? obj.messages.map((msg) => {\n        return { \n          text: msg.text.replace(rClass, \"\"),\n          read: msg[\"read?\"]\n        };\n      }) : null;\n\n    obj.activity = obj.activity.length ? obj.activity : null;\n    \n    obj.activity_count = obj.activity ? obj.activity.length : null;\n    obj.unread_message_count = obj.messages ? obj.messages.filter((msg) => !msg.read).length : null;\n\n    obj.notification_count = (obj.activity_count || 0) + (obj.unread_message_count || 0);\n\n    return obj;\n  }\n}\n"
  },
  {
    "__docId__": 117,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "rClass",
    "memberof": "src/components/login/user.js",
    "longname": "src/components/login/user.js~rClass",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/components/login/user.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 1,
    "undocument": true,
    "type": {
      "types": [
        "object"
      ]
    }
  },
  {
    "__docId__": 118,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "User",
    "memberof": "src/components/login/user.js",
    "longname": "src/components/login/user.js~User",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/login/user.js",
    "importStyle": "User",
    "description": null,
    "lineNumber": 3,
    "undocument": true,
    "interface": false
  },
  {
    "__docId__": 119,
    "kind": "constructor",
    "static": false,
    "variation": null,
    "name": "constructor",
    "memberof": "src/components/login/user.js~User",
    "longname": "src/components/login/user.js~User#constructor",
    "access": null,
    "description": null,
    "lineNumber": 4,
    "undocument": true,
    "params": [
      {
        "name": "objectPattern",
        "optional": true,
        "types": [
          "{\"id\": *, \"email\": *, \"username\": *, \"facebookUid\": *, \"profileSlug\": *, \"avatar\": *, \"messages\": *, \"activity\": *}"
        ],
        "defaultRaw": {},
        "defaultValue": "{}"
      }
    ],
    "generator": false
  },
  {
    "__docId__": 120,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "id",
    "memberof": "src/components/login/user.js~User",
    "longname": "src/components/login/user.js~User#id",
    "access": null,
    "description": null,
    "lineNumber": 14,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 121,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "email",
    "memberof": "src/components/login/user.js~User",
    "longname": "src/components/login/user.js~User#email",
    "access": null,
    "description": null,
    "lineNumber": 15,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 122,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "username",
    "memberof": "src/components/login/user.js~User",
    "longname": "src/components/login/user.js~User#username",
    "access": null,
    "description": null,
    "lineNumber": 16,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 123,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "facebookUid",
    "memberof": "src/components/login/user.js~User",
    "longname": "src/components/login/user.js~User#facebookUid",
    "access": null,
    "description": null,
    "lineNumber": 17,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 124,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "profileSlug",
    "memberof": "src/components/login/user.js~User",
    "longname": "src/components/login/user.js~User#profileSlug",
    "access": null,
    "description": null,
    "lineNumber": 18,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 125,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "avatar",
    "memberof": "src/components/login/user.js~User",
    "longname": "src/components/login/user.js~User#avatar",
    "access": null,
    "description": null,
    "lineNumber": 19,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 126,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "messages",
    "memberof": "src/components/login/user.js~User",
    "longname": "src/components/login/user.js~User#messages",
    "access": null,
    "description": null,
    "lineNumber": 20,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 127,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "activity",
    "memberof": "src/components/login/user.js~User",
    "longname": "src/components/login/user.js~User#activity",
    "access": null,
    "description": null,
    "lineNumber": 21,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 128,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "toJSON",
    "memberof": "src/components/login/user.js~User",
    "longname": "src/components/login/user.js~User#toJSON",
    "access": null,
    "description": null,
    "lineNumber": 23,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 129,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/love_letter/index.js",
    "memberof": null,
    "longname": "src/components/love_letter/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "require(\"./_love_letter.scss\");\n"
  },
  {
    "__docId__": 130,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/map/actions.js",
    "memberof": null,
    "longname": "src/components/map/actions.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import Arkham from \"../../core/arkham\";\nimport times from \"lodash/utility/times\";\nimport assign from \"lodash/object/assign\";\nimport filter from \"lodash/collection/filter\";\nimport each from \"lodash/collection/each\";\nimport uniq from \"lodash/array/uniq\";\nimport MapApi from \"./map_api\";\n\nconst generatePlacements = () => {\n  let placement = {\n    divName: \"sponsored\",\n    networkId: 9807,\n    siteId: 316543,\n    adTypes: [ 43 ],\n    eventIds: [31, 32],\n    properties: {\n      \"place\": window.lp.place.name.toLowerCase()\n    }\n  };\n\n  const placements = [];\n\n  times(20, (i) => {\n    placements.push(assign({}, placement, {\n      divName: `sponsored${i + 1}`\n    }));\n  });\n\n  return placements;\n};\n\nlet MapActions = {\n\n  viewChange: (data) => {\n    Arkham.trigger(\"view.changed\", data);\n  },\n\n  gotoPlace: ({ placeTitle, place, breadcrumb, topic=\"\" }) => {\n    let query = topic ? `?topic=${topic.toLowerCase()}` : \"\",\n        url = `/${place}/map.json${query}`;\n\n    Arkham.trigger(\"place.fetching\", { placeTitle, breadcrumb, topic });\n\n    // TODO: JC, maybe this is cool, maybe not?\n    // let mapData = window.localStorage.getItem(url);\n\n    // if (mapData) {\n    //   return Arkham.trigger(\"place.fetched\", JSON.parse(mapData));\n    // }\n\n    MapApi.fetch(url).done((results) => {\n      // window.localStorage.setItem(url, JSON.stringify(results));\n      Arkham.trigger(\"place.fetched\", results);\n    });\n  },\n\n  poiOpen: (data) => {\n    Arkham.trigger(\"poi.opened\", data);\n  },\n\n  poiClose: () => {\n    Arkham.trigger(\"poi.closed\");\n  },\n\n  pinHover: (data) => {\n    Arkham.trigger(\"map.poihover\", data);\n  },\n\n  itemHighlight: (data) => {\n    Arkham.trigger(\"item.hovered\", data);\n  },\n\n  mapOpen: () => {\n    Arkham.trigger(\"map.opened\");\n  },\n\n  mapClose: () => {\n    Arkham.trigger(\"map.closed\");\n  },\n\n  setState: (state) => {\n    Arkham.trigger(\"state.setinitial\", state);\n  },\n\n  initMap: () => {\n    Arkham.trigger(\"map.init\");\n  },\n\n  customPanel: (data) => {\n    Arkham.trigger(\"custompanel.opened\", data);\n  },\n\n  fetchSponsors: () => {\n    let x = JSON.stringify({\n      placements: generatePlacements()\n    });\n\n    $.ajax({\n      url: \"http://engine.adzerk.net/api/v2\",\n      method: \"POST\",\n      contentType: \"application/json\",\n      data: x,\n      success: function(response) {\n        let set = { title: \"Sponsored\", items: [] },\n            decisions = uniq(filter(response.decisions, d => d), \"creativeId\");\n\n        each(decisions, decision => {\n          let poi = JSON.parse(decision.contents[0].body);\n              set.items.push(poi);\n        });\n\n        if (set.items.length) {\n          Arkham.trigger(\"sponsor.fetched\", set);\n        }\n      },\n      error: function() {\n        console.log(\"fail\");\n      }\n    });\n  }\n\n};\n\nexport default MapActions;\n"
  },
  {
    "__docId__": 131,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "generatePlacements",
    "memberof": "src/components/map/actions.js",
    "longname": "src/components/map/actions.js~generatePlacements",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/components/map/actions.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 9,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 132,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "MapActions",
    "memberof": "src/components/map/actions.js",
    "longname": "src/components/map/actions.js~MapActions",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/map/actions.js",
    "importStyle": "MapActions",
    "description": null,
    "lineNumber": 32,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 133,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/map/api.js",
    "memberof": null,
    "longname": "src/components/map/api.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import MapProvider from \"./mapbox\";\n\nlet MapAPI = {\n  /**\n   * Setup the map on an element\n   * @param el\n   */\n  launch: function(el) {\n    this.mapProvider = new MapProvider({\n      el: el\n    });\n    this.mapProvider.launch();\n  },\n  /**\n   * Destroy the map\n   */\n  kill: function() {\n    this.mapProvider.kill();\n  },\n  /**\n   * Redraw the map with a new list of POIS\n   * @param {Array} pois\n   */\n  redraw: function(pois) {\n    this.clear();\n    this.plot(pois);\n  },\n  /**\n   * Plots out an array of POIs\n   * @param {Array} pois\n   */\n  plot: function(pois) {\n    this.mapProvider.addMarkers(pois);\n  },\n  /**\n   * Remove all map markers\n   */\n  clear: function() {\n    this.mapProvider.removeMarkers();\n    this.mapProvider.removePopup();\n  }\n\n};\n\nexport default MapAPI;\n"
  },
  {
    "__docId__": 134,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "MapAPI",
    "memberof": "src/components/map/api.js",
    "longname": "src/components/map/api.js~MapAPI",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/map/api.js",
    "importStyle": "MapAPI",
    "description": null,
    "lineNumber": 3,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 135,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/map/index.js",
    "memberof": null,
    "longname": "src/components/map/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import Maps from \"./map_component\";\n\nrequire(\"mapbox.js/theme/style.css\");\nrequire(\"./map.scss\");\n\nexport default Maps;\n"
  },
  {
    "__docId__": 136,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/map/interactive-map.js",
    "memberof": null,
    "longname": "src/components/map/interactive-map.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import $ from \"jquery\";\nimport Arkham from \"../../core/arkham\";\nimport { Component } from \"../../core/bane\";\nimport MapActions from \"./actions\";\nimport MapState from \"./state\";\nimport MapAPI from \"./api\";\n\n/**\n * Wrapper around the map element\n */\nclass InteractiveMap extends Component {\n\n  initialize() {\n    Arkham.on(\"map.init\", () => {\n      this.launch();\n      this.changeView();\n    });\n\n    Arkham.on(\"view.changed\", () => {\n      this.changeView();\n    });\n\n    Arkham.on(\"place.fetched\", () => {\n      this.changeView();\n    });\n  }\n\n  launch() {\n    MapAPI.launch(this.$el);\n  }\n\n  kill() {\n    MapAPI.kill();\n  }\n\n  changeView() {\n    let state = MapState.getState();\n    let pois = [];\n\n    if (!state.sets[state.activeSetIndex]) {\n      pois.push(state.currentLocation);\n    } else {\n      pois = state.sets[state.activeSetIndex].items;\n    }\n\n    // Prevent double evnts\n    this.$el.off(\"click.marker\");\n\n    MapAPI.redraw(pois);\n  }\n\n  hasFetched() {\n    let state = MapState.getState();\n    let pois = state.sets[state.activeSetIndex].items;\n    MapAPI.plot(pois);\n  }\n\n  pinClick(e) {\n    let pinType = $(e.currentTarget).data(\"pintype\");\n\n    if(pinType === \"poi\") {\n      let data = {\n        poi: $(e.currentTarget).data(\"poi\")\n      };\n      MapActions.poiOpen(data);\n    } else {\n      let data = {\n        place: $(e.currentTarget).data(\"place\")\n      };\n      MapActions.gotoPlace(data);\n    }\n  }\n\n}\n\nexport default InteractiveMap;\n"
  },
  {
    "__docId__": 137,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "InteractiveMap",
    "memberof": "src/components/map/interactive-map.js",
    "longname": "src/components/map/interactive-map.js~InteractiveMap",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/map/interactive-map.js",
    "importStyle": "InteractiveMap",
    "description": "Wrapper around the map element",
    "lineNumber": 11,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 138,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/map/interactive-map.js~InteractiveMap",
    "longname": "src/components/map/interactive-map.js~InteractiveMap#initialize",
    "access": null,
    "description": null,
    "lineNumber": 13,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 139,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "launch",
    "memberof": "src/components/map/interactive-map.js~InteractiveMap",
    "longname": "src/components/map/interactive-map.js~InteractiveMap#launch",
    "access": null,
    "description": null,
    "lineNumber": 28,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 140,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "kill",
    "memberof": "src/components/map/interactive-map.js~InteractiveMap",
    "longname": "src/components/map/interactive-map.js~InteractiveMap#kill",
    "access": null,
    "description": null,
    "lineNumber": 32,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 141,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "changeView",
    "memberof": "src/components/map/interactive-map.js~InteractiveMap",
    "longname": "src/components/map/interactive-map.js~InteractiveMap#changeView",
    "access": null,
    "description": null,
    "lineNumber": 36,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 142,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "hasFetched",
    "memberof": "src/components/map/interactive-map.js~InteractiveMap",
    "longname": "src/components/map/interactive-map.js~InteractiveMap#hasFetched",
    "access": null,
    "description": null,
    "lineNumber": 52,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 143,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "pinClick",
    "memberof": "src/components/map/interactive-map.js~InteractiveMap",
    "longname": "src/components/map/interactive-map.js~InteractiveMap#pinClick",
    "access": null,
    "description": null,
    "lineNumber": 58,
    "undocument": true,
    "params": [
      {
        "name": "e",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 144,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "interactiveMap",
    "memberof": "src/components/map/interactive-map.js",
    "longname": "src/components/map/interactive-map.js~interactiveMap",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/map/interactive-map.js",
    "importStyle": "interactiveMap",
    "description": null,
    "lineNumber": 76,
    "undocument": true,
    "type": {
      "types": [
        "src/components/map/interactive-map.js~InteractiveMap"
      ]
    }
  },
  {
    "__docId__": 145,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/map/map_api.js",
    "memberof": null,
    "longname": "src/components/map/map_api.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import Arkham from \"../../core/arkham\";\nimport $ from \"jquery\";\n\nexport default {\n  fetch: (url) => {\n    return $.ajax({\n      url: url\n    }).error((results) => {\n      let error = {\n        message: \"There was an error fetching \" + url,\n        type: results.status\n      };\n      Arkham.trigger(\"place.errorfetching\", error);\n    });\n  } \n};\n"
  },
  {
    "__docId__": 146,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/map/map_component.js",
    "memberof": null,
    "longname": "src/components/map/map_component.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../core/bane\";\nimport React from \"react\";\nimport MainView from \"./views/main.jsx\";\nimport MapActions from \"./actions\";\nimport Arkham from \"../../core/arkham\";\nimport { createHistory } from \"history\";\nimport $ from \"jquery\"; \nimport MapApi from \"./map_api\";\n\nlet history = createHistory();\n\nclass MapComponent extends Component {\n\n  initialize() {\n    MapApi.fetch(`/${window.lp.place.slug}/map.json`).done((results) => {\n      MapActions.setState(results);\n      React.render(<MainView />, this.$el[0]);\n    });\n\n    Arkham.on(\"map.closed\", () => {\n      this.close();\n    });\n\n    $(\"body\").on(\"keyup\", this.onKeyup.bind(this));\n  }\n\n  open() {\n    this.$el.addClass(\"open\");\n    $(\"html,body\").addClass(\"noscroll\");\n    MapActions.mapOpen();\n\n    if (!this.isOnMap()) {\n      let pathname = this.getMapPath();\n      history.pushState({}, `${pathname}map/`);\n    }\n  }\n\n  isOnMap() {\n    return /map\\/?$/.test(window.location.pathname);\n  }\n\n  getMapPath() {\n    let pathname = window.location.pathname;\n    let lastChar = window.location.pathname.substr(-1); // Selects the last character\n    \n    if (lastChar !== \"/\") {         // If the last character is not a slash\n       pathname = pathname + \"/\";   // Append a slash to it.\n    }\n\n    return pathname;\n  }\n\n  close() {\n    $(\"html,body\").removeClass(\"noscroll\");\n    this.$el.removeClass(\"open\");\n\n    let path = window.location.pathname.replace(/map\\/?$/, \"\");\n    history.pushState({}, `${path}`);\n  }\n\n  onKeyup(e) {\n    if (e.keyCode === 27) {\n      this.close();\n    }\n  }\n\n}\n\nexport default MapComponent;\n"
  },
  {
    "__docId__": 147,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "history",
    "memberof": "src/components/map/map_component.js",
    "longname": "src/components/map/map_component.js~history",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/components/map/map_component.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 10,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 148,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "MapComponent",
    "memberof": "src/components/map/map_component.js",
    "longname": "src/components/map/map_component.js~MapComponent",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/map/map_component.js",
    "importStyle": "MapComponent",
    "description": null,
    "lineNumber": 12,
    "undocument": true,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 149,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/map/map_component.js~MapComponent",
    "longname": "src/components/map/map_component.js~MapComponent#initialize",
    "access": null,
    "description": null,
    "lineNumber": 14,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 150,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "open",
    "memberof": "src/components/map/map_component.js~MapComponent",
    "longname": "src/components/map/map_component.js~MapComponent#open",
    "access": null,
    "description": null,
    "lineNumber": 27,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 151,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "isOnMap",
    "memberof": "src/components/map/map_component.js~MapComponent",
    "longname": "src/components/map/map_component.js~MapComponent#isOnMap",
    "access": null,
    "description": null,
    "lineNumber": 38,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 152,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getMapPath",
    "memberof": "src/components/map/map_component.js~MapComponent",
    "longname": "src/components/map/map_component.js~MapComponent#getMapPath",
    "access": null,
    "description": null,
    "lineNumber": 42,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 153,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "close",
    "memberof": "src/components/map/map_component.js~MapComponent",
    "longname": "src/components/map/map_component.js~MapComponent#close",
    "access": null,
    "description": null,
    "lineNumber": 53,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 154,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "onKeyup",
    "memberof": "src/components/map/map_component.js~MapComponent",
    "longname": "src/components/map/map_component.js~MapComponent#onKeyup",
    "access": null,
    "description": null,
    "lineNumber": 61,
    "undocument": true,
    "params": [
      {
        "name": "e",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 155,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "mapComponent",
    "memberof": "src/components/map/map_component.js",
    "longname": "src/components/map/map_component.js~mapComponent",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/map/map_component.js",
    "importStyle": "mapComponent",
    "description": null,
    "lineNumber": 69,
    "undocument": true,
    "type": {
      "types": [
        "src/components/map/map_component.js~MapComponent"
      ]
    }
  },
  {
    "__docId__": 156,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/map/mapbox/index.js",
    "memberof": null,
    "longname": "src/components/map/mapbox/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../../core/bane\";\nimport MapboxMarkerSet from \"./markerset\";\nimport \"mapbox.js\";\n\nlet L = window.L;\nlet mapID = \"lonelyplanet.04cf7895\";\n\nL.mapbox.accessToken = \"pk.eyJ1IjoibG9uZWx5cGxhbmV0IiwiYSI6Imh1ODUtdUEifQ.OLLon0V6rcoTyayXzzUzsg\";\n\nclass MapProvider extends Component {\n  initialize() {\n    this.layer = L.mapbox.featureLayer();\n  }\n\n  launch() {\n    let options = {\n      zoomControl: true,\n      scrollWheelZoom: true\n    };\n    this.map = L.mapbox.map(this.$el[0], mapID, options);\n  }\n\n  kill() {\n    this.map.remove();\n  }\n\n  addMarkers(pois) {\n    this.markers = new MapboxMarkerSet({\n      el: this.el,\n      map: this.map,\n      layer: this.layer,\n      pois: pois\n    });\n  }\n\n  removeMarkers() {\n    delete this.markers;\n  }\n\n  removePopup() {\n    this.map.closePopup();\n  }\n\n}\n\nexport default MapProvider;\n"
  },
  {
    "__docId__": 157,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "L",
    "memberof": "src/components/map/mapbox/index.js",
    "longname": "src/components/map/mapbox/index.js~L",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/components/map/mapbox/index.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 5,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 158,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "mapID",
    "memberof": "src/components/map/mapbox/index.js",
    "longname": "src/components/map/mapbox/index.js~mapID",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/components/map/mapbox/index.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 6,
    "undocument": true,
    "type": {
      "types": [
        "string"
      ]
    }
  },
  {
    "__docId__": 159,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "MapProvider",
    "memberof": "src/components/map/mapbox/index.js",
    "longname": "src/components/map/mapbox/index.js~MapProvider",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/map/mapbox/index.js",
    "importStyle": "MapProvider",
    "description": null,
    "lineNumber": 10,
    "undocument": true,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 160,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/map/mapbox/index.js~MapProvider",
    "longname": "src/components/map/mapbox/index.js~MapProvider#initialize",
    "access": null,
    "description": null,
    "lineNumber": 11,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 161,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "layer",
    "memberof": "src/components/map/mapbox/index.js~MapProvider",
    "longname": "src/components/map/mapbox/index.js~MapProvider#layer",
    "access": null,
    "description": null,
    "lineNumber": 12,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 162,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "launch",
    "memberof": "src/components/map/mapbox/index.js~MapProvider",
    "longname": "src/components/map/mapbox/index.js~MapProvider#launch",
    "access": null,
    "description": null,
    "lineNumber": 15,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 163,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "map",
    "memberof": "src/components/map/mapbox/index.js~MapProvider",
    "longname": "src/components/map/mapbox/index.js~MapProvider#map",
    "access": null,
    "description": null,
    "lineNumber": 20,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 164,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "kill",
    "memberof": "src/components/map/mapbox/index.js~MapProvider",
    "longname": "src/components/map/mapbox/index.js~MapProvider#kill",
    "access": null,
    "description": null,
    "lineNumber": 23,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 165,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "addMarkers",
    "memberof": "src/components/map/mapbox/index.js~MapProvider",
    "longname": "src/components/map/mapbox/index.js~MapProvider#addMarkers",
    "access": null,
    "description": null,
    "lineNumber": 27,
    "undocument": true,
    "params": [
      {
        "name": "pois",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 166,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "markers",
    "memberof": "src/components/map/mapbox/index.js~MapProvider",
    "longname": "src/components/map/mapbox/index.js~MapProvider#markers",
    "access": null,
    "description": null,
    "lineNumber": 28,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 167,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "removeMarkers",
    "memberof": "src/components/map/mapbox/index.js~MapProvider",
    "longname": "src/components/map/mapbox/index.js~MapProvider#removeMarkers",
    "access": null,
    "description": null,
    "lineNumber": 36,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 168,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "removePopup",
    "memberof": "src/components/map/mapbox/index.js~MapProvider",
    "longname": "src/components/map/mapbox/index.js~MapProvider#removePopup",
    "access": null,
    "description": null,
    "lineNumber": 40,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 169,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "mapProvider",
    "memberof": "src/components/map/mapbox/index.js",
    "longname": "src/components/map/mapbox/index.js~mapProvider",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/map/mapbox/index.js",
    "importStyle": "mapProvider",
    "description": null,
    "lineNumber": 46,
    "undocument": true,
    "type": {
      "types": [
        "src/components/map/mapbox/index.js~MapProvider"
      ]
    }
  },
  {
    "__docId__": 170,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/map/mapbox/markerset.js",
    "memberof": null,
    "longname": "src/components/map/mapbox/markerset.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../../core/bane\";\nimport Arkham from \"../../../core/arkham\";\nimport MapActions from \"../actions\";\nimport MapState from \"../state\";\nimport React from \"react\";\nimport Pin from \"../views/pin.jsx\";\n\nimport \"mapbox.js\";\n\nlet L = window.L;\n\nclass MarkerSet extends Component {\n\n  initialize({ pois, map, layer }) {\n    this.events = {\n      // \"click.marker .poi\": \"_poiClick\", doesn't work, because marker is z-indexed lower than popup-pane?\n      \"click.marker .pin\": \"_poiClick\"\n    };\n\n    this.pois = pois;\n    this.map = map;\n    this.layer = layer;\n\n    this.listen();\n\n    this._createLayer();\n    this._clearMarkers();\n    this._createGeoJSON();\n    this._addIcons();\n\n    this.layer.addTo(this.map);\n    this.map.fitBounds(this.layer.getBounds(), { padding: [ 50, 50 ], maxZoom:  14 });\n  }\n\n  listen() {\n    let _this = this;\n\n    Arkham.off(\"map.poihover\");\n    Arkham.on(\"map.poihover\", (data) => {\n      let layer = _this._findLayerByIndex(data.poiIndex);\n      _this._poiHover(layer);\n    });\n\n    Arkham.off(\"map.poiunhover\");\n    Arkham.on(\"map.poiunhover\", (data) => {\n      let layer = _this._findLayerByIndex(data.poiIndex);\n      _this._poiUnhover(layer);\n    });\n\n  }\n\n  _findLayerByIndex(i) {\n    let l;\n\n    this.layer.eachLayer(function(layer) {\n      if (layer.feature.properties.index === (i)) {\n        l = layer;\n      }\n    });\n\n    return l;\n  }\n\n  _createGeoJSON() {\n    let geojson = {\n      type: \"FeatureCollection\",\n      features: []\n    };\n\n    for (let i = 0, l = this.pois.length; i < l; i++) {\n      let geo = this.pois[i].geo;\n\n      if(geo.geometry.coordinates[0] === null || geo.geometry.coordinates[1] === null) {\n        continue;\n      } else {\n        geo.properties.index = i;\n        geojson.features.push(geo);\n      }\n    }\n\n    this.layer.setGeoJSON(geojson);\n  }\n\n  _addIcons() {\n    this.layer.eachLayer(function(l) {\n      let myIcon = L.divIcon({\n        className: \"poi js-poi\",\n        iconSize: [14, 14]\n      });\n\n      l.setIcon(myIcon);\n    });\n  }\n\n  _createIcon(layer) {\n    let state = MapState.getState();\n    // If there's no active set for the current view, use the first set\n    let index = state.sets[state.activeSetIndex] ?\n      state.activeSetIndex :\n      state.lastActiveSetIndex;\n\n    let set = state.sets[index || 0];\n\n    if (!set) {\n      return;\n    }\n\n    let pin = set.items[layer.feature.properties.index];\n    let poi = { pin: pin };\n    let markup = React.renderToStaticMarkup(React.createElement(Pin, poi));\n    // let pin = PinTemplate(layer.feature.properties);\n    return markup;\n  }\n\n  _clearMarkers() {\n    this.layer.setGeoJSON([]);\n  }\n\n  _createLayer() {\n    this.layer\n      .off(\"mouseover\")\n      .off(\"mouseout\");\n\n    this.layer\n      .on(\"mouseover\", (e) => {\n        this._poiHover(e.layer);\n      })\n      .on(\"mouseout\", (e) => {\n        this._poiUnhover(e.layer);\n      });\n    \n    this.layer.off(\"click\");\n    this.layer.on(\"click\", (e) => {\n      this._poiClick(e);\n    });\n  }\n\n  _poiHover(layer) {\n    // this._fixzIndex(layer); Not needed since pop-ups moved off the markers?\n    let template = this._createIcon(layer),\n        lat = layer._latlng.lat,\n        lng = layer._latlng.lng;\n\n    this.activeLayer = layer;\n    this.popup = L.popup({\n        closeButton: false,\n        keepInView: true,\n        offset: L.point(0, -25)\n      })\n      .setLatLng(L.latLng(lat, lng))\n      .setContent(template)\n      .openOn(this.map);\n\n    let poiIndex = layer.feature.properties.index;\n    MapActions.itemHighlight(poiIndex);\n  }\n\n  // A layer argument is passed in, but it is not used\n  // The defined argument has been removed to pass ESLint\n  _poiUnhover(layer) {\n    // Use if needed\n    this.activeLayer = layer;\n  }\n\n  _poiClick(event) {\n    let poiIndex = (event.layer || this.activeLayer).feature.properties.index,\n        poi = this.pois[poiIndex];\n    if (poi.item_type === \"Place\") {\n      MapActions.gotoPlace({ place: poi.slug, placeTitle: poi.title, breadcrumb: poi.subtitle });\n    } else {\n      MapActions.poiOpen({ index: poiIndex, poi });\n    }\n  }\n\n  _fixzIndex(currentLayer) {\n    this.layer.eachLayer(function(layer) {\n      layer._icon.style.zIndex = layer._icon._leaflet_pos.y;\n    });\n    currentLayer._icon.style.zIndex = currentLayer._icon._leaflet_pos.y + currentLayer.options.zIndexOffset + 60;\n  }\n\n}\n\nexport default MarkerSet;\n"
  },
  {
    "__docId__": 171,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "L",
    "memberof": "src/components/map/mapbox/markerset.js",
    "longname": "src/components/map/mapbox/markerset.js~L",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/components/map/mapbox/markerset.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 10,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 172,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "MarkerSet",
    "memberof": "src/components/map/mapbox/markerset.js",
    "longname": "src/components/map/mapbox/markerset.js~MarkerSet",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/map/mapbox/markerset.js",
    "importStyle": "MarkerSet",
    "description": null,
    "lineNumber": 12,
    "undocument": true,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 173,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/map/mapbox/markerset.js~MarkerSet",
    "longname": "src/components/map/mapbox/markerset.js~MarkerSet#initialize",
    "access": null,
    "description": null,
    "lineNumber": 14,
    "undocument": true,
    "params": [
      {
        "name": "objectPattern",
        "types": [
          "{\"pois\": *, \"map\": *, \"layer\": *}"
        ],
        "defaultRaw": {
          "pois": null,
          "map": null,
          "layer": null
        },
        "defaultValue": "{\"pois\":null,\"map\":null,\"layer\":null}"
      }
    ],
    "generator": false
  },
  {
    "__docId__": 174,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "events",
    "memberof": "src/components/map/mapbox/markerset.js~MarkerSet",
    "longname": "src/components/map/mapbox/markerset.js~MarkerSet#events",
    "access": null,
    "description": null,
    "lineNumber": 15,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 175,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "pois",
    "memberof": "src/components/map/mapbox/markerset.js~MarkerSet",
    "longname": "src/components/map/mapbox/markerset.js~MarkerSet#pois",
    "access": null,
    "description": null,
    "lineNumber": 20,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 176,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "map",
    "memberof": "src/components/map/mapbox/markerset.js~MarkerSet",
    "longname": "src/components/map/mapbox/markerset.js~MarkerSet#map",
    "access": null,
    "description": null,
    "lineNumber": 21,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 177,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "layer",
    "memberof": "src/components/map/mapbox/markerset.js~MarkerSet",
    "longname": "src/components/map/mapbox/markerset.js~MarkerSet#layer",
    "access": null,
    "description": null,
    "lineNumber": 22,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 178,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "listen",
    "memberof": "src/components/map/mapbox/markerset.js~MarkerSet",
    "longname": "src/components/map/mapbox/markerset.js~MarkerSet#listen",
    "access": null,
    "description": null,
    "lineNumber": 35,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 179,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_findLayerByIndex",
    "memberof": "src/components/map/mapbox/markerset.js~MarkerSet",
    "longname": "src/components/map/mapbox/markerset.js~MarkerSet#_findLayerByIndex",
    "access": null,
    "description": null,
    "lineNumber": 52,
    "undocument": true,
    "params": [
      {
        "name": "i",
        "types": [
          "*"
        ]
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 180,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_createGeoJSON",
    "memberof": "src/components/map/mapbox/markerset.js~MarkerSet",
    "longname": "src/components/map/mapbox/markerset.js~MarkerSet#_createGeoJSON",
    "access": null,
    "description": null,
    "lineNumber": 64,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 181,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_addIcons",
    "memberof": "src/components/map/mapbox/markerset.js~MarkerSet",
    "longname": "src/components/map/mapbox/markerset.js~MarkerSet#_addIcons",
    "access": null,
    "description": null,
    "lineNumber": 84,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 182,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_createIcon",
    "memberof": "src/components/map/mapbox/markerset.js~MarkerSet",
    "longname": "src/components/map/mapbox/markerset.js~MarkerSet#_createIcon",
    "access": null,
    "description": null,
    "lineNumber": 95,
    "undocument": true,
    "params": [
      {
        "name": "layer",
        "types": [
          "*"
        ]
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 183,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_clearMarkers",
    "memberof": "src/components/map/mapbox/markerset.js~MarkerSet",
    "longname": "src/components/map/mapbox/markerset.js~MarkerSet#_clearMarkers",
    "access": null,
    "description": null,
    "lineNumber": 115,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 184,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_createLayer",
    "memberof": "src/components/map/mapbox/markerset.js~MarkerSet",
    "longname": "src/components/map/mapbox/markerset.js~MarkerSet#_createLayer",
    "access": null,
    "description": null,
    "lineNumber": 119,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 185,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_poiHover",
    "memberof": "src/components/map/mapbox/markerset.js~MarkerSet",
    "longname": "src/components/map/mapbox/markerset.js~MarkerSet#_poiHover",
    "access": null,
    "description": null,
    "lineNumber": 138,
    "undocument": true,
    "params": [
      {
        "name": "layer",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 186,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "activeLayer",
    "memberof": "src/components/map/mapbox/markerset.js~MarkerSet",
    "longname": "src/components/map/mapbox/markerset.js~MarkerSet#activeLayer",
    "access": null,
    "description": null,
    "lineNumber": 144,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 187,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "popup",
    "memberof": "src/components/map/mapbox/markerset.js~MarkerSet",
    "longname": "src/components/map/mapbox/markerset.js~MarkerSet#popup",
    "access": null,
    "description": null,
    "lineNumber": 145,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 188,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_poiUnhover",
    "memberof": "src/components/map/mapbox/markerset.js~MarkerSet",
    "longname": "src/components/map/mapbox/markerset.js~MarkerSet#_poiUnhover",
    "access": null,
    "description": null,
    "lineNumber": 160,
    "undocument": true,
    "params": [
      {
        "name": "layer",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 189,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "activeLayer",
    "memberof": "src/components/map/mapbox/markerset.js~MarkerSet",
    "longname": "src/components/map/mapbox/markerset.js~MarkerSet#activeLayer",
    "access": null,
    "description": null,
    "lineNumber": 162,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 190,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_poiClick",
    "memberof": "src/components/map/mapbox/markerset.js~MarkerSet",
    "longname": "src/components/map/mapbox/markerset.js~MarkerSet#_poiClick",
    "access": null,
    "description": null,
    "lineNumber": 165,
    "undocument": true,
    "params": [
      {
        "name": "event",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 191,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_fixzIndex",
    "memberof": "src/components/map/mapbox/markerset.js~MarkerSet",
    "longname": "src/components/map/mapbox/markerset.js~MarkerSet#_fixzIndex",
    "access": null,
    "description": null,
    "lineNumber": 175,
    "undocument": true,
    "params": [
      {
        "name": "currentLayer",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 192,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "markerSet",
    "memberof": "src/components/map/mapbox/markerset.js",
    "longname": "src/components/map/mapbox/markerset.js~markerSet",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/map/mapbox/markerset.js",
    "importStyle": "markerSet",
    "description": null,
    "lineNumber": 184,
    "undocument": true,
    "type": {
      "types": [
        "src/components/map/mapbox/markerset.js~MarkerSet"
      ]
    }
  },
  {
    "__docId__": 193,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/map/state.js",
    "memberof": null,
    "longname": "src/components/map/state.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import assign from \"lodash/object/assign\";\nimport Arkham from \"../../core/arkham\";\nimport Events from \"../../core/mixins/events\";\n// TODO: Pull in only delay method\nimport delay from \"lodash/function/delay\";\nimport find from \"lodash/collection/find\";\n\nlet _ = {\n  find, delay\n};\n\nlet CHANGE_EVENT = \"change\";\n\nlet state = {\n  isOpen: false,\n  isFetching: true,\n  fetchingPlace: \"\",\n  isDetail: false,\n  activeSetIndex: 0,\n  poi: 2,\n  currentLocation: {},\n  sets: [],\n  error: null,\n  hoveredPin: 0,\n  hoveredItem: null,\n  customPanel: \"\",\n  tabDropdownOpen: false,\n  placeParent: \"\",\n  topicClicked: \"\"\n};\n\nlet MapState = assign({\n\n  getState() {\n    return state;\n  },\n\n  emitChange() {\n    this.trigger(CHANGE_EVENT);\n  },\n\n  addChangeListener(cb) {\n    this.on(CHANGE_EVENT, cb);\n  },\n\n  removeChangeListener(cb) {\n    this.stopListening(CHANGE_EVENT, cb);\n  },\n\n  sortSets: (sets) => {\n    let headings = state.topics.concat([\n      \"Countries\", \"Cities\", \"Sponsored\", \"About\"\n    ]);\n\n    return headings.reduce((memo, heading) => {\n      let set = find(sets, (set) => set.title === heading);\n      if (set) {\n        memo.push(set);\n      }\n\n      return memo;\n    }, []);\n  }\n}, Events);\n\nArkham.on(\"map.opened\", () => {\n  state.isOpen = true;\n  MapState.emitChange();\n});\n\nArkham.on(\"map.closed\", () => {\n  state.isOpen = false;\n  MapState.emitChange();\n});\n\nArkham.on(\"view.changed\", (data) => {\n  state.hoveredItem = data;\n  state.activeSetIndex = data.view;\n  state.customPanel = \"\";\n  MapState.emitChange();\n});\n\nArkham.on(\"poi.opened\", (data) => {\n  state.poiIndex = parseInt(data.index, 10);\n  state.poi = data.poi;\n  state.isDetail = true;\n  MapState.emitChange();\n});\n\nArkham.on(\"poi.closed\", () => {\n  state.poi = null;\n  state.isDetail = false;\n  MapState.emitChange();\n});\n\nArkham.on(\"place.fetching\", (data) => {\n  state.isFetching = true;\n  state.fetchingPlace = data.placeTitle;\n  state.placeParent = data.breadcrumb;\n  state.topicClicked = data.topic;\n  MapState.emitChange();\n});\n\nArkham.on(\"place.fetched\", (data) => {\n  state.currentLocation = data.location;\n  state.topics = data.topics;\n  state.sets = MapState.sortSets(data.sets.filter((s) => !!s.items.length));\n  state.activeSetIndex = 0;\n  state.fetchingPlace = \"\";\n  state.isFetching = false;\n  state.customPanel = \"\";\n  MapState.emitChange();\n});\n\nArkham.on(\"place.errorfetching\", (data) => {\n  state.isFetching = false;\n  state.fetchingPlace = \"\";\n  state.error = data;\n  MapState.emitChange();\n  _.delay(function() {\n    state.error = null;\n    MapState.emitChange();\n  }, 3000);\n});\n\nArkham.on(\"state.setinitial\", (data) => {\n  state.isFetching = false;\n  state.topics = data.topics;\n  state.sets = MapState.sortSets(data.sets.filter((s) => !!s.items.length));\n  state.currentLocation = data.location;\n  MapState.emitChange();\n});\n\nArkham.on(\"poi.hover\", (data) => {\n  state.hoveredPin = data.pin;\n  MapState.emitChange();\n});\n\nArkham.on(\"item.hovered\", (data) => {\n  state.hoveredItem = data;\n  MapState.emitChange();\n});\n\nArkham.on(\"custompanel.opened\", (data) => {\n  state.lastActiveSetIndex = state.activeSetIndex;\n  state.activeSetIndex = data.view;\n  state.customPanel = data.panel;\n  MapState.emitChange();\n});\n\nArkham.on(\"sponsor.fetched\", (data) => {\n  state.sets.push(data);\n  MapState.emitChange();\n});\n\nexport default MapState;;\n"
  },
  {
    "__docId__": 194,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "_",
    "memberof": "src/components/map/state.js",
    "longname": "src/components/map/state.js~_",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/components/map/state.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 195,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "CHANGE_EVENT",
    "memberof": "src/components/map/state.js",
    "longname": "src/components/map/state.js~CHANGE_EVENT",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/components/map/state.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 12,
    "undocument": true,
    "type": {
      "types": [
        "string"
      ]
    }
  },
  {
    "__docId__": 196,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "state",
    "memberof": "src/components/map/state.js",
    "longname": "src/components/map/state.js~state",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/components/map/state.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 14,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 197,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "MapState",
    "memberof": "src/components/map/state.js",
    "longname": "src/components/map/state.js~MapState",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/map/state.js",
    "importStyle": "MapState",
    "description": null,
    "lineNumber": 32,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 198,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/map/tab_titles.js",
    "memberof": null,
    "longname": "src/components/map/tab_titles.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "/**\n * A way to alias category titles\n */\nexport default {\n  \"entertainment-nightlife\": \"Entertainment\"\n};\n"
  },
  {
    "__docId__": 199,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/map/views/about-panel.jsx",
    "memberof": null,
    "longname": "src/components/map/views/about-panel.jsx",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import React from \"react\";\nimport Slideshow from \"../../slideshow\";\nimport $ from \"jquery\";\n\nexport default class AboutPanel extends React.Component {\n  componentDidMount() {\n    if (this.props.location.images.length) {\n      this.slideshow = new Slideshow({\n        el: this.refs.slideshow.getDOMNode(),\n        type: \"fade\",\n        images: this.props.location.images,\n        height: 270,\n        showProgress: true\n      });\n    } else {\n      $(this.refs.slideshow.getDOMNode()).remove();\n    }\n  }\n  render() {\n    let place = this.props.location.title,\n        description = this.props.location.description,\n        // TODO Switch back to just ${this.props.location.slug} once this is live\n        slug = `https://www.lonelyplanet.com/${this.props.location.slug}`;\n\n    return (\n      <div className=\"panel\">\n        <div className=\"slideshow js-panel-slideshow\" ref=\"slideshow\">\n        </div>\n        <header className=\"panel__header\">Welcome to {place}</header>\n        <div className=\"panel__content\" dangerouslySetInnerHTML={{__html: description}}>\n        </div>\n        <footer className=\"panel__footer\">\n          <a className=\"panel__close\" href={slug}>\n            Close map and explore this destination\n            <i className=\"icon-chevron-right\" aria-hidden=\"true\"></i>\n          </a>\n        </footer>\n      </div>\n    );\n  }\n}\n"
  },
  {
    "__docId__": 200,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "AboutPanel",
    "memberof": "src/components/map/views/about-panel.jsx",
    "longname": "src/components/map/views/about-panel.jsx~AboutPanel",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/map/views/about-panel.jsx",
    "importStyle": "AboutPanel",
    "description": null,
    "lineNumber": 5,
    "undocument": true,
    "interface": false,
    "extends": [
      "react~React.Component"
    ]
  },
  {
    "__docId__": 201,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "componentDidMount",
    "memberof": "src/components/map/views/about-panel.jsx~AboutPanel",
    "longname": "src/components/map/views/about-panel.jsx~AboutPanel#componentDidMount",
    "access": null,
    "description": null,
    "lineNumber": 6,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 202,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "slideshow",
    "memberof": "src/components/map/views/about-panel.jsx~AboutPanel",
    "longname": "src/components/map/views/about-panel.jsx~AboutPanel#slideshow",
    "access": null,
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 203,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "render",
    "memberof": "src/components/map/views/about-panel.jsx~AboutPanel",
    "longname": "src/components/map/views/about-panel.jsx~AboutPanel#render",
    "access": null,
    "description": null,
    "lineNumber": 19,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 204,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/map/views/alert.jsx",
    "memberof": null,
    "longname": "src/components/map/views/alert.jsx",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import React from \"react\";\n\n/**\n * Alerts for the sidebar\n */\nexport default class AlertView extends React.Component {\n\n  render() {\n    let classString = \"alert\",\n        message = \"\";\n\n    if (this.props.error) {\n      message = this.props.error.message;\n      let type = this.props.error.type;\n      classString += \" active error\" + type;\n    }\n\n    return (\n      <div className={classString}>\n        {message}\n      </div>\n    );\n  }\n\n}\n"
  },
  {
    "__docId__": 205,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "AlertView",
    "memberof": "src/components/map/views/alert.jsx",
    "longname": "src/components/map/views/alert.jsx~AlertView",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/map/views/alert.jsx",
    "importStyle": "AlertView",
    "description": "Alerts for the sidebar",
    "lineNumber": 6,
    "interface": false,
    "extends": [
      "react~React.Component"
    ]
  },
  {
    "__docId__": 206,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "render",
    "memberof": "src/components/map/views/alert.jsx~AlertView",
    "longname": "src/components/map/views/alert.jsx~AlertView#render",
    "access": null,
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 207,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/map/views/item.jsx",
    "memberof": null,
    "longname": "src/components/map/views/item.jsx",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import React from \"react\";\nimport MapActions from \"../actions\";\n\n/**\n * Items on the map, or in the sidebar\n * @type {*|Function}x\n */\nexport default class ItemView extends React.Component {\n  render() {\n    let item = this.props.item,\n        title = item.title,\n        classString = \"place \",\n        picClass = \"place__pic\",\n        imgStyle;\n\n    if (item.onMap) {\n      classString += \"pin icon icon--chevron-right\";\n      if (title.length > 23) {\n        title = title.substr(0, 22) + \"...\";\n      }\n    } else {\n      classString += \"list\";\n      if (item.highlighted) {\n        classString += \" is-hovered\";\n      }\n      if (title.length > 36) {\n        title = title.substr(0, 35) + \"...\";\n      }\n    }\n    if (item.geo.properties.image) {\n      let imgSrc = \"http://images-resrc.staticlp.com/O=60/S=W80/\" + item.geo.properties.image;\n      imgStyle = { backgroundImage: `url(${imgSrc})` };\n    }\n    else {\n      // TODO: This will have to change when topics are correct\n      let type = this.props.item.item_type === \"Place\" ? \"sight\" : \"activity\";\n      picClass += ` topic__image topic__image--${type}`;\n    }\n\n    let subtitle;\n    if (item.subtitle) {\n      subtitle = <div className=\"subtitle\">{item.subtitle}</div>;\n    }\n\n    return (\n      <div className={classString} onMouseEnter={this.hoverItem.bind(this)} onClick={this.clickItem.bind(this)}>\n        <div className=\"place__pointer\"></div>\n        <div className={picClass} style={imgStyle}>\n        </div>\n        <div className=\"place__order\">{item.i+1}</div>\n        <div className=\"place__text\">\n          <div className=\"title\">{title}</div>\n          {subtitle}\n        </div>\n      </div>\n    );\n  }\n\n  clickItem() {\n    let props = this.props;\n    if(props.item.item_type === \"Place\") {\n      MapActions.gotoPlace({ place: props.item.slug, placeTitle: props.item.title, breadcrumb: props.item.subtitle });\n    } else {\n      MapActions.poiOpen({ index: props.item.i, poi: props.item });\n      MapActions.pinHover({ poiIndex: props.item.i });\n    }\n  }\n\n  hoverItem() {\n    let props = this.props;\n    MapActions.pinHover({ poiIndex: props.item.i });\n  }\n}\n"
  },
  {
    "__docId__": 208,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "ItemView",
    "memberof": "src/components/map/views/item.jsx",
    "longname": "src/components/map/views/item.jsx~ItemView",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/map/views/item.jsx",
    "importStyle": "ItemView",
    "description": "Items on the map, or in the sidebar",
    "lineNumber": 8,
    "type": {
      "nullable": null,
      "types": [
        "*"
      ],
      "spread": false,
      "description": null
    },
    "interface": false,
    "extends": [
      "react~React.Component"
    ]
  },
  {
    "__docId__": 209,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "render",
    "memberof": "src/components/map/views/item.jsx~ItemView",
    "longname": "src/components/map/views/item.jsx~ItemView#render",
    "access": null,
    "description": null,
    "lineNumber": 9,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 210,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "clickItem",
    "memberof": "src/components/map/views/item.jsx~ItemView",
    "longname": "src/components/map/views/item.jsx~ItemView#clickItem",
    "access": null,
    "description": null,
    "lineNumber": 59,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 211,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "hoverItem",
    "memberof": "src/components/map/views/item.jsx~ItemView",
    "longname": "src/components/map/views/item.jsx~ItemView#hoverItem",
    "access": null,
    "description": null,
    "lineNumber": 69,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 212,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/map/views/main.jsx",
    "memberof": null,
    "longname": "src/components/map/views/main.jsx",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import React from \"react\";\nimport Sidebar from \"./sidebar.jsx\";\nimport SidebarFetching from \"./sidebar-fetching.jsx\";\nimport SidebarDetails from \"./sidebar-details.jsx\";\nimport Map from \"./map.jsx\";\nimport Alert from \"./alert.jsx\";\nimport MapState from \"../state\";\nimport MapActions from \"../actions\";\n\nlet getMapState = function() {\n  return MapState.getState();\n};\n\n/**\n * Controls the sidebar views, and the map\n */\nexport default class MainView extends React.Component {\n  constructor(props) {\n    super(props);\n\n    this.state = getMapState();\n  }\n\n  componentDidMount() {\n    MapState.addChangeListener(this._onChange.bind(this));\n  }\n\n  componentWillUnmount() {\n    MapState.removeChangeListener(this._onChange.bind(this));\n  }\n\n  _onChange() {\n    this.setState(getMapState());\n  }\n\n  render() {\n    let sidebar;\n    let classString = \"map\";\n\n    if (this.state.isOpen) {\n      classString += \" open\";\n    }\n\n    if (this.state.isFetching) {\n      sidebar = <SidebarFetching location={this.state.currentLocation} place={this.state.fetchingPlace} breadcrumb={this.state.placeParent} />;\n    } else {\n      if (this.state.isDetail) {\n        sidebar = <SidebarDetails poi={this.state.poi} />;\n      } else {\n        sidebar = <Sidebar location={this.state.currentLocation} sets={this.state.sets} highlightedPoi={ this.state.hoveredItem } activeSetIndex={this.state.activeSetIndex} customPanel={this.state.customPanel} tabDropdownOpen={this.state.tabDropdownOpen}/>;\n      }\n    }\n\n    let activeSet = this.state.sets[this.state.activeSetIndex];\n\n    return (\n      <div className={classString}>\n        <div id=\"close-map--wrapper\" onClick={this.closeMap}>\n          <div className=\"close-map icon-close-small\">Close</div>\n        </div>\n        <Map pins={activeSet} location={this.state.currentLocation} index={this.state.activeIndex} />\n        {sidebar}\n        <Alert error={this.state.error} />\n      </div>\n    );\n  }\n\n  // TODO: Trigger an action here, try not to call dispatcher directly\n  closeMap() {\n    MapActions.mapClose();\n  }\n\n}\n"
  },
  {
    "__docId__": 213,
    "kind": "function",
    "static": true,
    "variation": null,
    "name": "getMapState",
    "memberof": "src/components/map/views/main.jsx",
    "longname": "src/components/map/views/main.jsx~getMapState",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/components/map/views/main.jsx",
    "importStyle": null,
    "description": null,
    "lineNumber": 10,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 214,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "MainView",
    "memberof": "src/components/map/views/main.jsx",
    "longname": "src/components/map/views/main.jsx~MainView",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/map/views/main.jsx",
    "importStyle": "MainView",
    "description": "Controls the sidebar views, and the map",
    "lineNumber": 17,
    "interface": false,
    "extends": [
      "react~React.Component"
    ]
  },
  {
    "__docId__": 215,
    "kind": "constructor",
    "static": false,
    "variation": null,
    "name": "constructor",
    "memberof": "src/components/map/views/main.jsx~MainView",
    "longname": "src/components/map/views/main.jsx~MainView#constructor",
    "access": null,
    "description": null,
    "lineNumber": 18,
    "undocument": true,
    "params": [
      {
        "name": "props",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 216,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "state",
    "memberof": "src/components/map/views/main.jsx~MainView",
    "longname": "src/components/map/views/main.jsx~MainView#state",
    "access": null,
    "description": null,
    "lineNumber": 21,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 217,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "componentDidMount",
    "memberof": "src/components/map/views/main.jsx~MainView",
    "longname": "src/components/map/views/main.jsx~MainView#componentDidMount",
    "access": null,
    "description": null,
    "lineNumber": 24,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 218,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "componentWillUnmount",
    "memberof": "src/components/map/views/main.jsx~MainView",
    "longname": "src/components/map/views/main.jsx~MainView#componentWillUnmount",
    "access": null,
    "description": null,
    "lineNumber": 28,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 219,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_onChange",
    "memberof": "src/components/map/views/main.jsx~MainView",
    "longname": "src/components/map/views/main.jsx~MainView#_onChange",
    "access": null,
    "description": null,
    "lineNumber": 32,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 220,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "render",
    "memberof": "src/components/map/views/main.jsx~MainView",
    "longname": "src/components/map/views/main.jsx~MainView#render",
    "access": null,
    "description": null,
    "lineNumber": 36,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 221,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "closeMap",
    "memberof": "src/components/map/views/main.jsx~MainView",
    "longname": "src/components/map/views/main.jsx~MainView#closeMap",
    "access": null,
    "description": null,
    "lineNumber": 69,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 222,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/map/views/map.jsx",
    "memberof": null,
    "longname": "src/components/map/views/map.jsx",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import React from \"react\";\nimport MapActions from \"../actions\";\nimport InteractiveMap from \"../interactive-map\";\n\n/**\n * The main component for the map view\n */\nexport default class MapView extends React.Component {\n  componentDidMount() {\n    this.interactiveMap = new InteractiveMap({\n      el: this.refs.map.getDOMNode()\n    });\n    MapActions.initMap();\n  }\n  render() {\n    return (\n      <div ref=\"map\" className=\"map-container\"></div>\n    );\n  }\n\n}\n"
  },
  {
    "__docId__": 223,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "MapView",
    "memberof": "src/components/map/views/map.jsx",
    "longname": "src/components/map/views/map.jsx~MapView",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/map/views/map.jsx",
    "importStyle": "MapView",
    "description": "The main component for the map view",
    "lineNumber": 8,
    "interface": false,
    "extends": [
      "react~React.Component"
    ]
  },
  {
    "__docId__": 224,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "componentDidMount",
    "memberof": "src/components/map/views/map.jsx~MapView",
    "longname": "src/components/map/views/map.jsx~MapView#componentDidMount",
    "access": null,
    "description": null,
    "lineNumber": 9,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 225,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "interactiveMap",
    "memberof": "src/components/map/views/map.jsx~MapView",
    "longname": "src/components/map/views/map.jsx~MapView#interactiveMap",
    "access": null,
    "description": null,
    "lineNumber": 10,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 226,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "render",
    "memberof": "src/components/map/views/map.jsx~MapView",
    "longname": "src/components/map/views/map.jsx~MapView#render",
    "access": null,
    "description": null,
    "lineNumber": 15,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 227,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/map/views/panel.jsx",
    "memberof": null,
    "longname": "src/components/map/views/panel.jsx",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import React from \"react\";\nimport Item from \"./item.jsx\";\n\n/**\n * The side panel view\n */\nexport default class PanelView extends React.Component {\n\n  render() {\n    let items = this.props.set.items.map((item, i) => {\n      item.i = i;\n      item.onMap = false;\n      item.highlighted = i === this.props.highlightedPoi;\n      return (\n        <Item item={item}/>\n      );\n    });\n\n    return (\n      <div className=\"panel\">\n        <div className=\"listing\">\n          {items}\n        </div>\n      </div>\n    );\n  }\n\n}\n"
  },
  {
    "__docId__": 228,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "PanelView",
    "memberof": "src/components/map/views/panel.jsx",
    "longname": "src/components/map/views/panel.jsx~PanelView",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/map/views/panel.jsx",
    "importStyle": "PanelView",
    "description": "The side panel view",
    "lineNumber": 7,
    "interface": false,
    "extends": [
      "react~React.Component"
    ]
  },
  {
    "__docId__": 229,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "render",
    "memberof": "src/components/map/views/panel.jsx~PanelView",
    "longname": "src/components/map/views/panel.jsx~PanelView#render",
    "access": null,
    "description": null,
    "lineNumber": 9,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 230,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/map/views/pin.jsx",
    "memberof": null,
    "longname": "src/components/map/views/pin.jsx",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import React from \"react\";\nimport Item from \"./item.jsx\";\n\nexport default class PinView extends React.Component {\n\n  render() {\n    let pin = this.props.pin;\n    pin.onMap = true;\n    return (\n      <Item item={pin} />\n    );\n  }\n\n}\n"
  },
  {
    "__docId__": 231,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "PinView",
    "memberof": "src/components/map/views/pin.jsx",
    "longname": "src/components/map/views/pin.jsx~PinView",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/map/views/pin.jsx",
    "importStyle": "PinView",
    "description": null,
    "lineNumber": 4,
    "undocument": true,
    "interface": false,
    "extends": [
      "react~React.Component"
    ]
  },
  {
    "__docId__": 232,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "render",
    "memberof": "src/components/map/views/pin.jsx~PinView",
    "longname": "src/components/map/views/pin.jsx~PinView#render",
    "access": null,
    "description": null,
    "lineNumber": 6,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 233,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/map/views/sidebar-details.jsx",
    "memberof": null,
    "longname": "src/components/map/views/sidebar-details.jsx",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import React from \"react\";\nimport MapActions from \"../actions\";\nimport $clamp from \"clamp-js/clamp.js\";\n\nexport default class SidebarDetailsView extends React.Component{\n  componentDidMount() {\n    let el = this.refs.poiTitle.getDOMNode();\n\n    $clamp(el, { clamp: 2 });\n  }\n  render() {\n    let poi = this.props.poi,\n        image = \"\",\n        // TODO Switch back to just ${poi.slug} once this is live\n        slug = `https://www.lonelyplanet.com/${poi.slug}`;\n\n    if (poi.geo.properties.image) {\n      let imgSrc = `http://images-resrc.staticlp.com/s=w470,pd1/o=85/${poi.geo.properties.image}`;\n      image = <div className=\"details__image\">\n        <img src={imgSrc} ref=\"img\" />\n      </div>;\n    }\n\n    return (\n      <div className=\"sidebar details\">\n        <header className=\"sidebar__header\">\n          <a href=\"#\" className=\"close-poi location-subtitle\" onClick={this.closePOI}><i className=\"icon icon-chevron-left\" aria-hidden=\"true\"></i>Back</a>\n          <h1 ref=\"poiTitle\" className=\"sidebar__title\">\n            {poi.title}\n          </h1>\n        </header>\n        <div className=\"panel\">\n          {image}\n          <div className=\"panel__content\" dangerouslySetInnerHTML={{__html: poi.description}}></div>\n          <div className=\"panel__footer\">\n            <a className=\"panel__close\" href={slug}>\n              Close map and explore this destination\n              <span className=\"icon-chevron-right\"></span>\n            </a>\n          </div>\n        </div>\n      </div>\n    );\n  }\n\n  closePOI(e) {\n    e.preventDefault();\n    MapActions.poiClose();\n  }\n\n}\n"
  },
  {
    "__docId__": 234,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "SidebarDetailsView",
    "memberof": "src/components/map/views/sidebar-details.jsx",
    "longname": "src/components/map/views/sidebar-details.jsx~SidebarDetailsView",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/map/views/sidebar-details.jsx",
    "importStyle": "SidebarDetailsView",
    "description": null,
    "lineNumber": 5,
    "undocument": true,
    "interface": false,
    "extends": [
      "react~React.Component"
    ]
  },
  {
    "__docId__": 235,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "componentDidMount",
    "memberof": "src/components/map/views/sidebar-details.jsx~SidebarDetailsView",
    "longname": "src/components/map/views/sidebar-details.jsx~SidebarDetailsView#componentDidMount",
    "access": null,
    "description": null,
    "lineNumber": 6,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 236,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "render",
    "memberof": "src/components/map/views/sidebar-details.jsx~SidebarDetailsView",
    "longname": "src/components/map/views/sidebar-details.jsx~SidebarDetailsView#render",
    "access": null,
    "description": null,
    "lineNumber": 11,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 237,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "closePOI",
    "memberof": "src/components/map/views/sidebar-details.jsx~SidebarDetailsView",
    "longname": "src/components/map/views/sidebar-details.jsx~SidebarDetailsView#closePOI",
    "access": null,
    "description": null,
    "lineNumber": 46,
    "undocument": true,
    "params": [
      {
        "name": "e",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 238,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/map/views/sidebar-dropdown.jsx",
    "memberof": null,
    "longname": "src/components/map/views/sidebar-dropdown.jsx",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import React from \"react\";\nimport MapActions from \"../actions\";\nimport MapState from \"../state\";\nimport titles from \"../tab_titles\";\n\nexport default class SidebarDropdown extends React.Component {\n  constructor(data) {\n    super(data);\n\n    this.state = MapState.getState();\n  }\n\n  componentDidMount() {\n    if( !$(\".is-selected\").length )\n      $(\".tab__sub-nav__list--item:first-child\").addClass(\"is-selected\");\n  }\n\n  changeTopic(event) {\n    let topic = $(event.currentTarget).data(\"item\");\n    $(\".tab__sub-nav__list--item\").removeClass(\"is-selected\");\n\n    MapActions.gotoPlace({\n      place: this.state.currentLocation.slug,\n      topic,\n      breadcrumb: this.state.currentLocation.parent\n    });\n  }\n\n  render() {\n    let menuClassString = \"tab__sub-nav\";\n\n    let topics = this.state.topics.map((item) => {\n      let itemClassString = \"tab__sub-nav__list--item\";\n      \n      if (this.state.topicClicked === item) {\n        itemClassString += \" is-selected\";\n      }\n\n      let title = titles[item.toLowerCase()] || item;  \n\n      return (\n        <li className={itemClassString} data-item={item} onClick={this.changeTopic.bind(this)}>{title}</li>\n      );\n    });\n\n    if (this.props.tabDropdownOpen) {\n      menuClassString += \" is-visible\";\n    }\n\n    return (\n      <div className={menuClassString}>\n        <ul className=\"tab__sub-nav__list\">\n          {topics}\n        </ul>\n      </div>\n    );\n  }\n}\n"
  },
  {
    "__docId__": 239,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "SidebarDropdown",
    "memberof": "src/components/map/views/sidebar-dropdown.jsx",
    "longname": "src/components/map/views/sidebar-dropdown.jsx~SidebarDropdown",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/map/views/sidebar-dropdown.jsx",
    "importStyle": "SidebarDropdown",
    "description": null,
    "lineNumber": 6,
    "undocument": true,
    "interface": false,
    "extends": [
      "react~React.Component"
    ]
  },
  {
    "__docId__": 240,
    "kind": "constructor",
    "static": false,
    "variation": null,
    "name": "constructor",
    "memberof": "src/components/map/views/sidebar-dropdown.jsx~SidebarDropdown",
    "longname": "src/components/map/views/sidebar-dropdown.jsx~SidebarDropdown#constructor",
    "access": null,
    "description": null,
    "lineNumber": 7,
    "undocument": true,
    "params": [
      {
        "name": "data",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 241,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "state",
    "memberof": "src/components/map/views/sidebar-dropdown.jsx~SidebarDropdown",
    "longname": "src/components/map/views/sidebar-dropdown.jsx~SidebarDropdown#state",
    "access": null,
    "description": null,
    "lineNumber": 10,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 242,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "componentDidMount",
    "memberof": "src/components/map/views/sidebar-dropdown.jsx~SidebarDropdown",
    "longname": "src/components/map/views/sidebar-dropdown.jsx~SidebarDropdown#componentDidMount",
    "access": null,
    "description": null,
    "lineNumber": 13,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 243,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "changeTopic",
    "memberof": "src/components/map/views/sidebar-dropdown.jsx~SidebarDropdown",
    "longname": "src/components/map/views/sidebar-dropdown.jsx~SidebarDropdown#changeTopic",
    "access": null,
    "description": null,
    "lineNumber": 18,
    "undocument": true,
    "params": [
      {
        "name": "event",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 244,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "render",
    "memberof": "src/components/map/views/sidebar-dropdown.jsx~SidebarDropdown",
    "longname": "src/components/map/views/sidebar-dropdown.jsx~SidebarDropdown#render",
    "access": null,
    "description": null,
    "lineNumber": 29,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 245,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/map/views/sidebar-fetching.jsx",
    "memberof": null,
    "longname": "src/components/map/views/sidebar-fetching.jsx",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import React from \"react\";\n\n/**\n * Shows when items are being fetched\n */\nexport default class SidebarFetchingView extends React.Component {\n\n  render() {\n    let location = this.props.location,\n        breadcrumb = this.props.breadcrumb,\n        crumbText =  breadcrumb || location.grandparent,\n        placeText = this.props.place || location.title;\n\n    let backElement = crumbText ? <div className=\"location-subtitle\" ><i className=\"icon icon-chevron-left\" aria-hidden=\"true\"></i>{crumbText}</div> : \"\";\n\n    return (\n      <div className=\"sidebar fetching\">\n        <header className=\"sidebar__header\">\n          <div className=\"location-subtitle\" >\n            {backElement}\n          </div>\n          <h1 className=\"sidebar__title\">\n            {placeText}\n          </h1>\n          <div className=\"sidebar__tabs\"></div>\n        </header>\n        <div className=\"panel\">\n          <div className='spinner'></div>\n        </div>\n      </div>\n    );\n  }\n\n}\n"
  },
  {
    "__docId__": 246,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "SidebarFetchingView",
    "memberof": "src/components/map/views/sidebar-fetching.jsx",
    "longname": "src/components/map/views/sidebar-fetching.jsx~SidebarFetchingView",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/map/views/sidebar-fetching.jsx",
    "importStyle": "SidebarFetchingView",
    "description": "Shows when items are being fetched",
    "lineNumber": 6,
    "interface": false,
    "extends": [
      "react~React.Component"
    ]
  },
  {
    "__docId__": 247,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "render",
    "memberof": "src/components/map/views/sidebar-fetching.jsx~SidebarFetchingView",
    "longname": "src/components/map/views/sidebar-fetching.jsx~SidebarFetchingView#render",
    "access": null,
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 248,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/map/views/sidebar.jsx",
    "memberof": null,
    "longname": "src/components/map/views/sidebar.jsx",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import React from \"react\";\nimport Tab from \"./tab.jsx\";\nimport Panel from \"./panel.jsx\";\nimport MapActions from \"../actions\";\nimport AboutPanel from \"./about-panel.jsx\";\n\n/**\n * Sidebar view that sets up main tabs\n */\nexport default class SidebarView extends React.Component {\n\n  render() {\n    let location = this.props.location,\n        activeSetIndex = this.props.activeSetIndex,\n        panelContent,\n        tabCount = 0,\n        sets = this.props.sets,\n        backSlug = \"\",\n        backElement = \"\",\n        h1Class = \"sidebar__title __continent\";\n\n    let tabs = sets.map((set, i) => {\n      tabCount++;\n      let isActive = i === activeSetIndex ? true : false,\n          isCity = location.type.toLowerCase() === \"city\",\n          showDropdown = isCity && tabCount === 1;\n\n      return (\n        <Tab sets={sets} showDropdown={showDropdown} name={set.title} active={isActive} i={i} type={set.type} />\n      );\n    });\n\n    if (location.description.length > 0) {\n      tabCount++;\n      let dropdownOpen = this.props.tabDropdownOpen,\n          isActive = tabCount === 1 || tabCount === activeSetIndex ? true : false,\n          aboutTab = <Tab name=\"About\" active={isActive} i={tabCount} customPanel=\"about\" tabDropdownOpen={dropdownOpen}/>;\n      tabs.push(aboutTab);\n    }\n\n    if (this.props.sets.length < 1) {\n      panelContent =  <div className=\"no-content\" dangerouslySetInnerHTML={{__html: location.description}}></div>;\n    } else {\n      if( this.props.customPanel === \"about\" ) {\n        panelContent = <AboutPanel location={location} />;\n      } else {\n        let activePanel = sets[this.props.activeSetIndex];\n        panelContent = <Panel highlightedPoi={this.props.highlightedPoi} set={activePanel} />;\n      }\n    }\n\n    if (location.parent_slug && (location.parent_slug !== location.slug)) {\n      backSlug = `/${location.parent_slug}`;\n      backElement = <a href={backSlug} className=\"location-subtitle\" onClick={this.parentClick.bind(this)}><i className=\"icon icon-chevron-left\" aria-hidden=\"true\"></i>{location.parent}</a>;\n      h1Class = \"sidebar__title\";\n    }\n\n    return (\n      <div className=\"sidebar\">\n        <header className=\"sidebar__header\">\n          {backElement}\n          <h1 className={h1Class}>\n            {location.title}\n          </h1>\n          <ul className=\"sidebar__tabs\">\n            {tabs}\n          </ul>\n        </header>\n        {panelContent}\n      </div>\n    );\n  }\n\n  parentClick(e) {\n    e.preventDefault();\n    let props = this.props;\n    MapActions.gotoPlace({ place: props.location.parent_slug, placeTitle: props.location.parent });\n  }\n\n}\n"
  },
  {
    "__docId__": 249,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "SidebarView",
    "memberof": "src/components/map/views/sidebar.jsx",
    "longname": "src/components/map/views/sidebar.jsx~SidebarView",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/map/views/sidebar.jsx",
    "importStyle": "SidebarView",
    "description": "Sidebar view that sets up main tabs",
    "lineNumber": 10,
    "interface": false,
    "extends": [
      "react~React.Component"
    ]
  },
  {
    "__docId__": 250,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "render",
    "memberof": "src/components/map/views/sidebar.jsx~SidebarView",
    "longname": "src/components/map/views/sidebar.jsx~SidebarView#render",
    "access": null,
    "description": null,
    "lineNumber": 12,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 251,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "parentClick",
    "memberof": "src/components/map/views/sidebar.jsx~SidebarView",
    "longname": "src/components/map/views/sidebar.jsx~SidebarView#parentClick",
    "access": null,
    "description": null,
    "lineNumber": 74,
    "undocument": true,
    "params": [
      {
        "name": "e",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 252,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/map/views/tab.jsx",
    "memberof": null,
    "longname": "src/components/map/views/tab.jsx",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import React from \"react\";\nimport MapActions from \"../actions\";\nimport SidebarDropdown from \"./sidebar-dropdown.jsx\";\nimport titles from \"../tab_titles\";\n\n/**\n * Tabs for the sidebar view\n */\nexport default class TabView extends React.Component {\n\n  constructor(props) {\n    super(props);\n    this.state = {};\n  }\n\n  render() {\n    let title = titles[this.props.name.toLowerCase()] || this.props.name,\n        sidebarDropdown = \"\",\n        isActive = this.props.active ? \"tab active\" : \"tab\",\n        classString = `${isActive}`,\n        iconAfter = \"\";\n\n    if (this.props.showDropdown) {\n      classString += \" experiences\";\n      sidebarDropdown = <SidebarDropdown tabDropdownOpen={this.state.openDropdown}/>;\n      iconAfter = \"tab__icon icon--chevron-down icon--white\";\n    }\n\n    return (\n      <li className={classString} onClick={this.tabClick.bind(this)} onMouseEnter={this.showSubmenu.bind(this)} onMouseLeave={this.hideSubmenu.bind(this)}>\n        {title}\n        <i className={iconAfter} aria-hidden=\"true\"></i>\n        {sidebarDropdown}\n      </li>\n    );\n  }\n\n  tabClick() {\n    let props = this.props;\n    if (props.customPanel) {\n      MapActions.customPanel({ panel: props.customPanel, view: props.i });\n    } else {\n      MapActions.viewChange({ view: props.i });\n    }\n  }\n\n  showSubmenu() {\n    clearTimeout(this.hideTimer);\n\n    this.showTimer = setTimeout(() => {\n      this.setState({ openDropdown: true });\n    }, 0);\n  }\n\n  hideSubmenu() {\n    clearTimeout(this.showTimer);\n\n    this.hideTimer = setTimeout(() => {\n      this.setState({ openDropdown: false });\n    }, 250);\n  }\n}\n\nmodule.exports = TabView;\n"
  },
  {
    "__docId__": 253,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "TabView",
    "memberof": "src/components/map/views/tab.jsx",
    "longname": "src/components/map/views/tab.jsx~TabView",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/map/views/tab.jsx",
    "importStyle": "TabView",
    "description": "Tabs for the sidebar view",
    "lineNumber": 9,
    "interface": false,
    "extends": [
      "react~React.Component"
    ]
  },
  {
    "__docId__": 254,
    "kind": "constructor",
    "static": false,
    "variation": null,
    "name": "constructor",
    "memberof": "src/components/map/views/tab.jsx~TabView",
    "longname": "src/components/map/views/tab.jsx~TabView#constructor",
    "access": null,
    "description": null,
    "lineNumber": 11,
    "undocument": true,
    "params": [
      {
        "name": "props",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 255,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "state",
    "memberof": "src/components/map/views/tab.jsx~TabView",
    "longname": "src/components/map/views/tab.jsx~TabView#state",
    "access": null,
    "description": null,
    "lineNumber": 13,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 256,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "render",
    "memberof": "src/components/map/views/tab.jsx~TabView",
    "longname": "src/components/map/views/tab.jsx~TabView#render",
    "access": null,
    "description": null,
    "lineNumber": 16,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 257,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "tabClick",
    "memberof": "src/components/map/views/tab.jsx~TabView",
    "longname": "src/components/map/views/tab.jsx~TabView#tabClick",
    "access": null,
    "description": null,
    "lineNumber": 38,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 258,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "showSubmenu",
    "memberof": "src/components/map/views/tab.jsx~TabView",
    "longname": "src/components/map/views/tab.jsx~TabView#showSubmenu",
    "access": null,
    "description": null,
    "lineNumber": 47,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 259,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "showTimer",
    "memberof": "src/components/map/views/tab.jsx~TabView",
    "longname": "src/components/map/views/tab.jsx~TabView#showTimer",
    "access": null,
    "description": null,
    "lineNumber": 50,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 260,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "hideSubmenu",
    "memberof": "src/components/map/views/tab.jsx~TabView",
    "longname": "src/components/map/views/tab.jsx~TabView#hideSubmenu",
    "access": null,
    "description": null,
    "lineNumber": 55,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 261,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "hideTimer",
    "memberof": "src/components/map/views/tab.jsx~TabView",
    "longname": "src/components/map/views/tab.jsx~TabView#hideTimer",
    "access": null,
    "description": null,
    "lineNumber": 58,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 262,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/map_static/index.js",
    "memberof": null,
    "longname": "src/components/map_static/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "require(\"./_map_static.scss\");\n\nlet mapLoaded = false;\nlet $mapButton = $(\".js-open-map\");\nlet map = null;\n$mapButton.on(\"click\", function() {\n  if (!mapLoaded) {\n    require.ensure([\n      \"../map/index\"\n    ], (require) => {\n      if (map) {\n        return map.open();\n      }\n\n      let MapComponent = require(\"../map/index\");\n      \n      map = new MapComponent({\n        el: \".map_holder\"\n      });\n      \n      map.open();\n    }, \"map\");\n  }\n});\n\nif (window.location.href.indexOf(\"/map\") > -1) {\n  $mapButton.trigger(\"click\");\n}\n"
  },
  {
    "__docId__": 263,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "mapLoaded",
    "memberof": "src/components/map_static/index.js",
    "longname": "src/components/map_static/index.js~mapLoaded",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/components/map_static/index.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 3,
    "undocument": true,
    "type": {
      "types": [
        "boolean"
      ]
    }
  },
  {
    "__docId__": 264,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "$mapButton",
    "memberof": "src/components/map_static/index.js",
    "longname": "src/components/map_static/index.js~$mapButton",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/components/map_static/index.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 4,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 265,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "map",
    "memberof": "src/components/map_static/index.js",
    "longname": "src/components/map_static/index.js~map",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/components/map_static/index.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 5,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 266,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/masthead/index.js",
    "memberof": null,
    "longname": "src/components/masthead/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import Masthead from \"./masthead_component\";\n\nrequire(\"./_masthead.scss\");\nrequire(\"./_masthead_nav.scss\");\n\nexport default Masthead;\n"
  },
  {
    "__docId__": 267,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/masthead/masthead_component.js",
    "memberof": null,
    "longname": "src/components/masthead/masthead_component.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../core/bane\";\nimport Slideshow from \"../slideshow\";\nimport assign from \"lodash/object/assign\";\nimport Overlay from \"../overlay\";\nimport \"./masthead_nav.js\";\n\n/**\n * Masthead Component\n*/\nexport default class MastheadComponent extends Component {\n  get $straplines() {\n    return this.$el.find(\".masthead__strapline\");\n  }\n\n  initialize(options) {\n    this.events = {\n      \"click .js-play-video\": \"playVideo\"\n    };\n\n    this.overlay = new Overlay();\n    this.slideshow = new Slideshow(assign({\n      el: this.$el.find(\".slideshow\")\n    }, options.slideshow));\n\n    this.listenTo(this.slideshow, \"image.changed\", this.updateStrapline);\n\n    $.each(this.$straplines, function(index, strapline) {\n      if (!$(strapline).html()) {\n        $(strapline)\n          .parent()\n          .addClass(\"has-empty\");\n      }\n    });\n\n     // import Video from \"../video\";\n    require([\n        \"../video\"\n      ], (Video) => {\n        Video.addPlayer(document.body)\n          .then(this.playerReady.bind(this));\n      });\n  }\n   /**\n   * Play the video, callback from click handler\n   */\n  playVideo() {\n    this.overlay.show();\n    this.player.play(this.videoId);\n  }\n\n  /**\n   * Callback from the player load event\n   * @param  {VideoPlayer} player Instance of the VideoPlayer\n   * @listens {play}\n   */\n  playerReady(player) {\n    this.player = player;\n\n    this.player.search(window.lp.place.atlasId)\n      .then(this.searchDone.bind(this));\n\n    this.listenTo(this.player, \"play\", this.onPlay);\n    this.listenTo(this.player, \"stop\", this.onStop);\n    this.listenTo(this.player, \"pause\", this.onStop);\n  }\n\n  onPlay() {\n    // Use this?\n  }\n\n  onStop() {\n    // Use?\n    this.overlay.hide();\n  }\n\n  searchDone(videos) {\n    if (videos.length) {\n      this.$el.find(\".js-play-video\").removeAttr(\"hidden\");\n      this.videoId = videos[0];\n    }\n  }\n\n  updateStrapline(data) {\n    this.$straplines.removeClass(\"masthead__strapline--visible\");\n    this.$straplines\n      .eq(data.index)\n      .addClass(\"masthead__strapline--visible\");\n  }\n}\n"
  },
  {
    "__docId__": 268,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "MastheadComponent",
    "memberof": "src/components/masthead/masthead_component.js",
    "longname": "src/components/masthead/masthead_component.js~MastheadComponent",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/masthead/masthead_component.js",
    "importStyle": "MastheadComponent",
    "description": "Masthead Component",
    "lineNumber": 10,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 269,
    "kind": "get",
    "static": false,
    "variation": null,
    "name": "$straplines",
    "memberof": "src/components/masthead/masthead_component.js~MastheadComponent",
    "longname": "src/components/masthead/masthead_component.js~MastheadComponent#$straplines",
    "access": null,
    "description": null,
    "lineNumber": 11,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 270,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/masthead/masthead_component.js~MastheadComponent",
    "longname": "src/components/masthead/masthead_component.js~MastheadComponent#initialize",
    "access": null,
    "description": null,
    "lineNumber": 15,
    "undocument": true,
    "params": [
      {
        "name": "options",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 271,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "events",
    "memberof": "src/components/masthead/masthead_component.js~MastheadComponent",
    "longname": "src/components/masthead/masthead_component.js~MastheadComponent#events",
    "access": null,
    "description": null,
    "lineNumber": 16,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 272,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "overlay",
    "memberof": "src/components/masthead/masthead_component.js~MastheadComponent",
    "longname": "src/components/masthead/masthead_component.js~MastheadComponent#overlay",
    "access": null,
    "description": null,
    "lineNumber": 20,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 273,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "slideshow",
    "memberof": "src/components/masthead/masthead_component.js~MastheadComponent",
    "longname": "src/components/masthead/masthead_component.js~MastheadComponent#slideshow",
    "access": null,
    "description": null,
    "lineNumber": 21,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 274,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "playVideo",
    "memberof": "src/components/masthead/masthead_component.js~MastheadComponent",
    "longname": "src/components/masthead/masthead_component.js~MastheadComponent#playVideo",
    "access": null,
    "description": "Play the video, callback from click handler",
    "lineNumber": 46,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 275,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "playerReady",
    "memberof": "src/components/masthead/masthead_component.js~MastheadComponent",
    "longname": "src/components/masthead/masthead_component.js~MastheadComponent#playerReady",
    "access": null,
    "description": "Callback from the player load event",
    "lineNumber": 56,
    "params": [
      {
        "nullable": null,
        "types": [
          "VideoPlayer"
        ],
        "spread": false,
        "optional": false,
        "name": "player",
        "description": "Instance of the VideoPlayer"
      }
    ],
    "listens": [
      {
        "types": [
          "play"
        ],
        "description": ""
      }
    ],
    "generator": false
  },
  {
    "__docId__": 276,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "player",
    "memberof": "src/components/masthead/masthead_component.js~MastheadComponent",
    "longname": "src/components/masthead/masthead_component.js~MastheadComponent#player",
    "access": null,
    "description": null,
    "lineNumber": 57,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 277,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "onPlay",
    "memberof": "src/components/masthead/masthead_component.js~MastheadComponent",
    "longname": "src/components/masthead/masthead_component.js~MastheadComponent#onPlay",
    "access": null,
    "description": null,
    "lineNumber": 67,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 278,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "onStop",
    "memberof": "src/components/masthead/masthead_component.js~MastheadComponent",
    "longname": "src/components/masthead/masthead_component.js~MastheadComponent#onStop",
    "access": null,
    "description": null,
    "lineNumber": 71,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 279,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "searchDone",
    "memberof": "src/components/masthead/masthead_component.js~MastheadComponent",
    "longname": "src/components/masthead/masthead_component.js~MastheadComponent#searchDone",
    "access": null,
    "description": null,
    "lineNumber": 76,
    "undocument": true,
    "params": [
      {
        "name": "videos",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 280,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "videoId",
    "memberof": "src/components/masthead/masthead_component.js~MastheadComponent",
    "longname": "src/components/masthead/masthead_component.js~MastheadComponent#videoId",
    "access": null,
    "description": null,
    "lineNumber": 79,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 281,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "updateStrapline",
    "memberof": "src/components/masthead/masthead_component.js~MastheadComponent",
    "longname": "src/components/masthead/masthead_component.js~MastheadComponent#updateStrapline",
    "access": null,
    "description": null,
    "lineNumber": 83,
    "undocument": true,
    "params": [
      {
        "name": "data",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 282,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/masthead/masthead_nav.js",
    "memberof": null,
    "longname": "src/components/masthead/masthead_nav.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "require(\"./_masthead_nav.scss\");\n"
  },
  {
    "__docId__": 283,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/navigation/index.js",
    "memberof": null,
    "longname": "src/components/navigation/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import Navigation from \"./navigation_component\";\n\n//import \"./_user_cart.scss\";\nimport \"./_navigation.scss\";\nimport \"./_mobile-navigation.scss\";\nimport \"./_sub-navigation.scss\";\nimport \"./_user-panel.scss\";\nimport \"../avatar/_avatar.scss\";\n\nexport default Navigation;\n"
  },
  {
    "__docId__": 284,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/navigation/navigation_actions.js",
    "memberof": null,
    "longname": "src/components/navigation/navigation_actions.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import Arkham from \"../../core/arkham\";\n\nlet NavigationActions = {\n  clickNav: (data) => {\n    Arkham.trigger(\"navigation.click\", data);\n  },\n};\n\nexport default NavigationActions;\n"
  },
  {
    "__docId__": 285,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "NavigationActions",
    "memberof": "src/components/navigation/navigation_actions.js",
    "longname": "src/components/navigation/navigation_actions.js~NavigationActions",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/navigation/navigation_actions.js",
    "importStyle": "NavigationActions",
    "description": null,
    "lineNumber": 3,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 286,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/navigation/navigation_component.js",
    "memberof": null,
    "longname": "src/components/navigation/navigation_component.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../core/bane\";\nimport Overlay from \"../overlay\";\nimport Notification from \"../notification/notification\";\nimport waitForTransition from \"../../core/utils/waitForTransition\";\nimport NavigationActions from \"./navigation_actions\";\nimport NavigationState from \"./navigation_state\";\nimport Tabs from \"../tabs/tabs_component\";\nimport subscribe from \"../../core/decorators/subscribe\";\nimport moment from \"moment\";\n\n\nlet userPanelTemplate = require(\"./user_panel.hbs\");\n// Handlebars.registerPartial('submenu', $(\"#submenu\").html());\n\nclass NavigationComponent extends Component {\n\n  initialize() {\n\n    this.state = NavigationState.getState();\n    this.overlay = new Overlay();\n\n    this.notification = new Notification({\n      target: this.$el.find(\".js-cart-notification\"),\n      content: this.state.cartItemCount,\n      className: \"notification-badge--shop\"\n    });\n\n    this.name = \"navigation\";\n    this.$mobileNavigation = this.$el.find(\".mobile-navigation\").detach();\n    this.$mobileNavigation.on(\"click\", \".js-close\", this._clickNav.bind(this));\n    this.$mobileNavigation.on(\"click\", \".js-nav-item\", this._handleClick.bind(this));\n\n    this.$el.on(\"touchstart\", \".js-nav-item\", this._handleClick.bind(this));\n\n    // SubNavigation hover\n    this.handleHover();\n\n    // Events\n    this.listenTo(NavigationState, \"changed:nav\", this.toggleNav);\n    this.listenTo(this.overlay, \"click\", this._clickNav);\n\n    this.subscribe();\n  }\n  /**\n   * Set up hover events to trigger the sub menu's opening and closing.\n   * Use event delegation here because the user login is dynamically added.\n   * @return {[type]} [description]\n   */\n\n  _handleClick(e) {\n    let target = e.currentTarget;\n    $(target).hasClass(\"navigation__item\") ? this._handleSubNav(target) : this._handleMobileSubNav(target);\n  }\n\n  _handleMobileSubNav(el) {\n    let $navItem = $(el).find(\".mobile-sub-navigation\");\n\n    if ( $(\".is-expanded\").length && !$navItem.hasClass(\"is-expanded\") ) {\n      this.$mobileNavigation.find(\".mobile-sub-navigation\").removeClass(\"is-expanded\");\n      this.$mobileNavigation.find(\".js-nav-item\").removeClass(\"clicked\");\n    }\n\n    $(el).toggleClass(\"clicked\");\n    $navItem.toggleClass(\"is-expanded\");\n  }\n\n  _handleSubNav(el) {\n    if ($(el).find(\".sub-navigation\").hasClass(\"sub-navigation--visible\")) {\n      this._closeSubNav(el);\n    } else {\n      this._openSubNav(el);\n    }\n  }\n\n  _openSubNav(el) {\n    clearTimeout(this.hideTimer);\n\n    // Always clear the currently active one\n    this.$el.find(\".sub-navigation\").removeClass(\"sub-navigation--visible\");\n\n    this.showTimer = setTimeout(() => {\n      $(el).find(\".sub-navigation\").addClass(\"sub-navigation--visible\");\n    }, 0);\n  }\n\n  _closeSubNav(el) {\n    clearTimeout(this.showTimer);\n\n    this.hideTimer = setTimeout(() => {\n      $(el).find(\".sub-navigation\").removeClass(\"sub-navigation--visible\");\n    }, 100);\n  }\n\n  handleHover() {\n    this.$el.on(\"mouseenter\", \".js-nav-item\", (e) => this._openSubNav(e.currentTarget));\n    this.$el.on(\"mouseleave\", \".js-nav-item\", (e) => this._closeSubNav(e.currentTarget));\n  }\n\n  toggleNav() {\n    if(this.state.isNavOpen) {\n      this.show();\n    } else {\n      this.hide();\n    }\n  }\n\n  show() {\n    if(!this.state.isNavOpen){\n      return Promise.all([]);\n    }\n\n    if(this.$mobileNavigation.parents().length === 0) {\n      this.$mobileNavigation.appendTo(document.body);\n    }\n\n    this.overlay.show();\n\n    setTimeout(() => {\n      this.$mobileNavigation.addClass(\"mobile-navigation--visible\");\n    }, 20);\n\n    return waitForTransition(this.$mobileNavigation, { fallbackTime: 2000 });\n  }\n\n  hide() {\n    if(this.state.isNavOpen) {\n      return Promise.all([]);\n    }\n\n    this.$mobileNavigation.removeClass(\"mobile-navigation--visible\");\n\n    this.overlay.hide();\n\n    return waitForTransition(this.$mobileNavigation, { fallbackTime: 2000 })\n      .then(() => {\n        this.$mobileNavigation.detach();\n      });\n  }\n\n  _clickNav() {\n    NavigationActions.clickNav();\n  }\n\n  @subscribe(\"user.status.update\")\n  userStatusUpdate(user) {\n    let $li = this.$el.find(\".navigation__item--user\");\n\n    if (!user.id) {\n      return $li.html($(\"<a />\", {\n        \"class\": \"navigation__link\",\n        \"href\": \"https://auth.lonelyplanet.com/users/sign_in\"\n      }).text(\"Sign in\"));\n    }\n\n    $li.html(userPanelTemplate({\n      user\n    })).find(\"time\").each((i, el) => {\n      let $el = $(el);\n      $el.text(moment($el.text()).fromNow());\n    });\n\n    $li.find(\".js-user-messages li\").each((i, el) => {\n      let $message = $(el);\n      $message.addClass(\"user-panel__item\")\n        .toggleClass(\"user-panel__item--unread\", !user.messages[i].read);\n    });\n\n    this.profileTabs = new Tabs({\n      el: $(\".navigation\").find(\".tabs\")\n    });\n  }\n  @subscribe(\"user.notifications.update\")\n  userNotificationUpdate(user) {\n    this.userStatusUpdate(user);\n  }\n}\n\nexport default NavigationComponent;\n"
  },
  {
    "__docId__": 287,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "userPanelTemplate",
    "memberof": "src/components/navigation/navigation_component.js",
    "longname": "src/components/navigation/navigation_component.js~userPanelTemplate",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/components/navigation/navigation_component.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 12,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 288,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "NavigationComponent",
    "memberof": "src/components/navigation/navigation_component.js",
    "longname": "src/components/navigation/navigation_component.js~NavigationComponent",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/navigation/navigation_component.js",
    "importStyle": "NavigationComponent",
    "description": null,
    "lineNumber": 15,
    "undocument": true,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 289,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/navigation/navigation_component.js~NavigationComponent",
    "longname": "src/components/navigation/navigation_component.js~NavigationComponent#initialize",
    "access": null,
    "description": null,
    "lineNumber": 17,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 290,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "state",
    "memberof": "src/components/navigation/navigation_component.js~NavigationComponent",
    "longname": "src/components/navigation/navigation_component.js~NavigationComponent#state",
    "access": null,
    "description": null,
    "lineNumber": 19,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 291,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "overlay",
    "memberof": "src/components/navigation/navigation_component.js~NavigationComponent",
    "longname": "src/components/navigation/navigation_component.js~NavigationComponent#overlay",
    "access": null,
    "description": null,
    "lineNumber": 20,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 292,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "notification",
    "memberof": "src/components/navigation/navigation_component.js~NavigationComponent",
    "longname": "src/components/navigation/navigation_component.js~NavigationComponent#notification",
    "access": null,
    "description": null,
    "lineNumber": 22,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 293,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "name",
    "memberof": "src/components/navigation/navigation_component.js~NavigationComponent",
    "longname": "src/components/navigation/navigation_component.js~NavigationComponent#name",
    "access": null,
    "description": null,
    "lineNumber": 28,
    "undocument": true,
    "type": {
      "types": [
        "string"
      ]
    }
  },
  {
    "__docId__": 294,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "$mobileNavigation",
    "memberof": "src/components/navigation/navigation_component.js~NavigationComponent",
    "longname": "src/components/navigation/navigation_component.js~NavigationComponent#$mobileNavigation",
    "access": null,
    "description": null,
    "lineNumber": 29,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 295,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_handleClick",
    "memberof": "src/components/navigation/navigation_component.js~NavigationComponent",
    "longname": "src/components/navigation/navigation_component.js~NavigationComponent#_handleClick",
    "access": null,
    "description": "Set up hover events to trigger the sub menu's opening and closing.\nUse event delegation here because the user login is dynamically added.",
    "lineNumber": 50,
    "params": [
      {
        "name": "e",
        "types": [
          "*"
        ]
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "[type]"
      ],
      "spread": false,
      "description": "[description]"
    },
    "generator": false
  },
  {
    "__docId__": 296,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_handleMobileSubNav",
    "memberof": "src/components/navigation/navigation_component.js~NavigationComponent",
    "longname": "src/components/navigation/navigation_component.js~NavigationComponent#_handleMobileSubNav",
    "access": null,
    "description": null,
    "lineNumber": 55,
    "undocument": true,
    "params": [
      {
        "name": "el",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 297,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_handleSubNav",
    "memberof": "src/components/navigation/navigation_component.js~NavigationComponent",
    "longname": "src/components/navigation/navigation_component.js~NavigationComponent#_handleSubNav",
    "access": null,
    "description": null,
    "lineNumber": 67,
    "undocument": true,
    "params": [
      {
        "name": "el",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 298,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_openSubNav",
    "memberof": "src/components/navigation/navigation_component.js~NavigationComponent",
    "longname": "src/components/navigation/navigation_component.js~NavigationComponent#_openSubNav",
    "access": null,
    "description": null,
    "lineNumber": 75,
    "undocument": true,
    "params": [
      {
        "name": "el",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 299,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "showTimer",
    "memberof": "src/components/navigation/navigation_component.js~NavigationComponent",
    "longname": "src/components/navigation/navigation_component.js~NavigationComponent#showTimer",
    "access": null,
    "description": null,
    "lineNumber": 81,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 300,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_closeSubNav",
    "memberof": "src/components/navigation/navigation_component.js~NavigationComponent",
    "longname": "src/components/navigation/navigation_component.js~NavigationComponent#_closeSubNav",
    "access": null,
    "description": null,
    "lineNumber": 86,
    "undocument": true,
    "params": [
      {
        "name": "el",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 301,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "hideTimer",
    "memberof": "src/components/navigation/navigation_component.js~NavigationComponent",
    "longname": "src/components/navigation/navigation_component.js~NavigationComponent#hideTimer",
    "access": null,
    "description": null,
    "lineNumber": 89,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 302,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "handleHover",
    "memberof": "src/components/navigation/navigation_component.js~NavigationComponent",
    "longname": "src/components/navigation/navigation_component.js~NavigationComponent#handleHover",
    "access": null,
    "description": null,
    "lineNumber": 94,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 303,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "toggleNav",
    "memberof": "src/components/navigation/navigation_component.js~NavigationComponent",
    "longname": "src/components/navigation/navigation_component.js~NavigationComponent#toggleNav",
    "access": null,
    "description": null,
    "lineNumber": 99,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 304,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "show",
    "memberof": "src/components/navigation/navigation_component.js~NavigationComponent",
    "longname": "src/components/navigation/navigation_component.js~NavigationComponent#show",
    "access": null,
    "description": null,
    "lineNumber": 107,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 305,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "hide",
    "memberof": "src/components/navigation/navigation_component.js~NavigationComponent",
    "longname": "src/components/navigation/navigation_component.js~NavigationComponent#hide",
    "access": null,
    "description": null,
    "lineNumber": 125,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 306,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_clickNav",
    "memberof": "src/components/navigation/navigation_component.js~NavigationComponent",
    "longname": "src/components/navigation/navigation_component.js~NavigationComponent#_clickNav",
    "access": null,
    "description": null,
    "lineNumber": 140,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 307,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "userStatusUpdate",
    "memberof": "src/components/navigation/navigation_component.js~NavigationComponent",
    "longname": "src/components/navigation/navigation_component.js~NavigationComponent#userStatusUpdate",
    "access": null,
    "description": null,
    "lineNumber": 145,
    "undocument": true,
    "params": [
      {
        "name": "user",
        "types": [
          "*"
        ]
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 308,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "profileTabs",
    "memberof": "src/components/navigation/navigation_component.js~NavigationComponent",
    "longname": "src/components/navigation/navigation_component.js~NavigationComponent#profileTabs",
    "access": null,
    "description": null,
    "lineNumber": 168,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 309,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "userNotificationUpdate",
    "memberof": "src/components/navigation/navigation_component.js~NavigationComponent",
    "longname": "src/components/navigation/navigation_component.js~NavigationComponent#userNotificationUpdate",
    "access": null,
    "description": null,
    "lineNumber": 173,
    "undocument": true,
    "params": [
      {
        "name": "user",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 310,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "navigationComponent",
    "memberof": "src/components/navigation/navigation_component.js",
    "longname": "src/components/navigation/navigation_component.js~navigationComponent",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/navigation/navigation_component.js",
    "importStyle": "navigationComponent",
    "description": null,
    "lineNumber": 178,
    "undocument": true,
    "type": {
      "types": [
        "src/components/navigation/navigation_component.js~NavigationComponent"
      ]
    }
  },
  {
    "__docId__": 311,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/navigation/navigation_state.js",
    "memberof": null,
    "longname": "src/components/navigation/navigation_state.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import assign from \"lodash/object/assign\";\nimport Events from \"../../core/mixins/events\";\nimport Arkham from \"../../core/arkham\";\nimport ShopCookieUtil from \"../../core/shop_cookie_util\";\n\n/* mock data */\n\nlet state = {\n  isOpen: false,\n  isNavOpen: false,\n  cartItemCount: new ShopCookieUtil().getShopItemCount(),\n  cart: {\n    title: \"YOUR SHOPPING CART\",\n    items: [ { name: \"Thailand Travel Guide\", price: \"$19.99\",\n              image: \"http://www.trentcap.com/wp/wp-content/uploads/2012/02/sample-img.png\",\n              alt: \"Thailand Travel Guide\" },\n            { name: \"Southeast Asia on a Shoes\", price: \"$29.99\",\n              image: \"http://www.trentcap.com/wp/wp-content/uploads/2012/02/sample-img.png\",\n              alt: \"Thailand Travel Guide\" } ],\n    action: \"//shop.lonelyplanet.com/cart/view\",\n    actiontitle: \"PROCEED TO CHECKOUT\"\n  }\n};\n\nlet NavigationState = {\n  getState: () => {\n    return state;\n  }\n};\n\nassign(NavigationState, Events);\n\nArkham.on(\"navigation.click\", function() {\n  state.isNavOpen = !state.isNavOpen;\n  NavigationState.trigger(\"changed:nav\", state);\n});\n\n\nexport default NavigationState;\n"
  },
  {
    "__docId__": 312,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "state",
    "memberof": "src/components/navigation/navigation_state.js",
    "longname": "src/components/navigation/navigation_state.js~state",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/components/navigation/navigation_state.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 313,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "NavigationState",
    "memberof": "src/components/navigation/navigation_state.js",
    "longname": "src/components/navigation/navigation_state.js~NavigationState",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/navigation/navigation_state.js",
    "importStyle": "NavigationState",
    "description": null,
    "lineNumber": 25,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 314,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/notification/notification.js",
    "memberof": null,
    "longname": "src/components/notification/notification.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../core/bane\";\nimport \"./_notification.scss\";\n\nclass Notification extends Component {\n  initialize(options) {\n    this.content = options.content;\n    this.target = options.target;\n    this.className = options.className;\n    this.template = require(\"./notification.hbs\");\n    this.render();\n  }\n  render() {\n    let notification = this.build({\n      number: this.content,\n      className: this.className\n    });\n    this.target.append(notification);\n    return this;\n  }\n}\n\nexport default Notification;\n"
  },
  {
    "__docId__": 315,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "Notification",
    "memberof": "src/components/notification/notification.js",
    "longname": "src/components/notification/notification.js~Notification",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/notification/notification.js",
    "importStyle": "Notification",
    "description": null,
    "lineNumber": 4,
    "undocument": true,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 316,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/notification/notification.js~Notification",
    "longname": "src/components/notification/notification.js~Notification#initialize",
    "access": null,
    "description": null,
    "lineNumber": 5,
    "undocument": true,
    "params": [
      {
        "name": "options",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 317,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "content",
    "memberof": "src/components/notification/notification.js~Notification",
    "longname": "src/components/notification/notification.js~Notification#content",
    "access": null,
    "description": null,
    "lineNumber": 6,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 318,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "target",
    "memberof": "src/components/notification/notification.js~Notification",
    "longname": "src/components/notification/notification.js~Notification#target",
    "access": null,
    "description": null,
    "lineNumber": 7,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 319,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "className",
    "memberof": "src/components/notification/notification.js~Notification",
    "longname": "src/components/notification/notification.js~Notification#className",
    "access": null,
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 320,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "template",
    "memberof": "src/components/notification/notification.js~Notification",
    "longname": "src/components/notification/notification.js~Notification#template",
    "access": null,
    "description": null,
    "lineNumber": 9,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 321,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "render",
    "memberof": "src/components/notification/notification.js~Notification",
    "longname": "src/components/notification/notification.js~Notification#render",
    "access": null,
    "description": null,
    "lineNumber": 12,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 322,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "notification",
    "memberof": "src/components/notification/notification.js",
    "longname": "src/components/notification/notification.js~notification",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/notification/notification.js",
    "importStyle": "notification",
    "description": null,
    "lineNumber": 22,
    "undocument": true,
    "type": {
      "types": [
        "src/components/notification/notification.js~Notification"
      ]
    }
  },
  {
    "__docId__": 323,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/overlay/index.js",
    "memberof": null,
    "longname": "src/components/overlay/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../core/bane\";\nimport Arkham from \"../../core/arkham\";\nimport waitForTransition from \"../../core/utils/waitForTransition\";\nimport getScrollbarWidth from \"../../core/utils/getScrollbarWidth\";\nimport \"./index.scss\";\n\nclass Overlay extends Component {\n\n  initialize(){\n    this.$html = $(\"html\");\n    this.$el.addClass(\"overlay\");\n\n    this.events = {\n      \"click\": \"onClick\",\n      \"touchmove\": (e) => {\n        e.preventDefault();\n      }\n    };\n  }\n\n  toggle(stateOverwrite = undefined){\n    let state = stateOverwrite !== undefined ? stateOverwrite : this.isVisible;\n\n    if(state){\n      this.show();\n    } else {\n      this.hide();\n    }\n  }\n\n  show(){\n    // Do nothing if visible\n    if(this.isVisible) {\n      return Promise.all([]);\n    }\n\n    if(this.$el.parent().length === 0){\n      this.$el.appendTo(document.body);\n    }\n\n    this.isVisible = true;\n\n    getScrollbarWidth()\n      .then((scrollWidth) => {\n        setTimeout(() => {\n          this.$el.addClass(\"overlay--visible\");\n        }, 10);\n\n        this.$html.addClass(\"no-scroll\");\n        this.$html.css({\n          \"margin-right\": scrollWidth\n        });\n      });\n\n    return waitForTransition(this.$el);\n  }\n\n  hide(){\n    // Do nothing if not visible\n    if(!this.isVisible) {\n      return Promise.all([]);\n    }\n\n    this.$el.removeClass(\"overlay--visible\");\n\n    this.isVisible = false;\n\n    return waitForTransition(this.$el)\n      .then(() => {\n        this.$el.detach();\n\n        this.$html.removeClass(\"no-scroll\");\n        this.$html.css({\n          \"margin-right\": 0\n        });\n      });\n  }\n\n  onClick(){\n    Arkham.trigger(\"overlay:click\");\n    this.trigger(\"click\");\n  }\n}\n\nexport default Overlay;\n"
  },
  {
    "__docId__": 324,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "Overlay",
    "memberof": "src/components/overlay/index.js",
    "longname": "src/components/overlay/index.js~Overlay",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/overlay/index.js",
    "importStyle": "Overlay",
    "description": null,
    "lineNumber": 7,
    "undocument": true,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 325,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/overlay/index.js~Overlay",
    "longname": "src/components/overlay/index.js~Overlay#initialize",
    "access": null,
    "description": null,
    "lineNumber": 9,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 326,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "$html",
    "memberof": "src/components/overlay/index.js~Overlay",
    "longname": "src/components/overlay/index.js~Overlay#$html",
    "access": null,
    "description": null,
    "lineNumber": 10,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 327,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "events",
    "memberof": "src/components/overlay/index.js~Overlay",
    "longname": "src/components/overlay/index.js~Overlay#events",
    "access": null,
    "description": null,
    "lineNumber": 13,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 328,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "toggle",
    "memberof": "src/components/overlay/index.js~Overlay",
    "longname": "src/components/overlay/index.js~Overlay#toggle",
    "access": null,
    "description": null,
    "lineNumber": 21,
    "undocument": true,
    "params": [
      {
        "name": "stateOverwrite",
        "optional": true,
        "types": [
          "*"
        ],
        "defaultRaw": "undefined",
        "defaultValue": "undefined"
      }
    ],
    "generator": false
  },
  {
    "__docId__": 329,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "show",
    "memberof": "src/components/overlay/index.js~Overlay",
    "longname": "src/components/overlay/index.js~Overlay#show",
    "access": null,
    "description": null,
    "lineNumber": 31,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 330,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "isVisible",
    "memberof": "src/components/overlay/index.js~Overlay",
    "longname": "src/components/overlay/index.js~Overlay#isVisible",
    "access": null,
    "description": null,
    "lineNumber": 41,
    "undocument": true,
    "type": {
      "types": [
        "boolean"
      ]
    }
  },
  {
    "__docId__": 331,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "hide",
    "memberof": "src/components/overlay/index.js~Overlay",
    "longname": "src/components/overlay/index.js~Overlay#hide",
    "access": null,
    "description": null,
    "lineNumber": 58,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 332,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "isVisible",
    "memberof": "src/components/overlay/index.js~Overlay",
    "longname": "src/components/overlay/index.js~Overlay#isVisible",
    "access": null,
    "description": null,
    "lineNumber": 66,
    "undocument": true,
    "type": {
      "types": [
        "boolean"
      ]
    }
  },
  {
    "__docId__": 333,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "onClick",
    "memberof": "src/components/overlay/index.js~Overlay",
    "longname": "src/components/overlay/index.js~Overlay#onClick",
    "access": null,
    "description": null,
    "lineNumber": 79,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 334,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "overlay",
    "memberof": "src/components/overlay/index.js",
    "longname": "src/components/overlay/index.js~overlay",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/overlay/index.js",
    "importStyle": "overlay",
    "description": null,
    "lineNumber": 85,
    "undocument": true,
    "type": {
      "types": [
        "src/components/overlay/index.js~Overlay"
      ]
    }
  },
  {
    "__docId__": 335,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/related_guidebook/index.js",
    "memberof": null,
    "longname": "src/components/related_guidebook/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../core/bane\";\nimport $clamp from \"clamp-js/clamp.js\";\nimport $ from \"jquery\";\nimport debounce from \"lodash/function/debounce\";\n\nimport \"./related_guidebook.scss\";\n\nclass RelatedGuidebookComponent extends Component {\n  initialize() {\n    if (!$(\"html\").hasClass(\"ie9\")) {\n      this._clampText();\n\n      $(window).resize(debounce(this._reclamp.bind(this), 100));\n    }\n  }\n\n  _reclamp() {\n    this._clampText();\n  }\n\n  _clampText() {\n    this.$el.each((index, guidebook) => {\n      $clamp($(guidebook).find(\".js-related-guidebook-title\").get(0), { clamp: 2 });\n      $clamp($(guidebook).find(\".js-related-guidebook-content\").get(0), { clamp: 2 });\n    });\n  }\n}\n\nexport default RelatedGuidebookComponent;\n"
  },
  {
    "__docId__": 336,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "RelatedGuidebookComponent",
    "memberof": "src/components/related_guidebook/index.js",
    "longname": "src/components/related_guidebook/index.js~RelatedGuidebookComponent",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/related_guidebook/index.js",
    "importStyle": "RelatedGuidebookComponent",
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 337,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/related_guidebook/index.js~RelatedGuidebookComponent",
    "longname": "src/components/related_guidebook/index.js~RelatedGuidebookComponent#initialize",
    "access": null,
    "description": null,
    "lineNumber": 9,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 338,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_reclamp",
    "memberof": "src/components/related_guidebook/index.js~RelatedGuidebookComponent",
    "longname": "src/components/related_guidebook/index.js~RelatedGuidebookComponent#_reclamp",
    "access": null,
    "description": null,
    "lineNumber": 17,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 339,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_clampText",
    "memberof": "src/components/related_guidebook/index.js~RelatedGuidebookComponent",
    "longname": "src/components/related_guidebook/index.js~RelatedGuidebookComponent#_clampText",
    "access": null,
    "description": null,
    "lineNumber": 21,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 340,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "relatedGuidebookComponent",
    "memberof": "src/components/related_guidebook/index.js",
    "longname": "src/components/related_guidebook/index.js~relatedGuidebookComponent",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/related_guidebook/index.js",
    "importStyle": "relatedGuidebookComponent",
    "description": null,
    "lineNumber": 29,
    "undocument": true,
    "type": {
      "types": [
        "src/components/related_guidebook/index.js~RelatedGuidebookComponent"
      ]
    }
  },
  {
    "__docId__": 341,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/search/index.js",
    "memberof": null,
    "longname": "src/components/search/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import SearchUtil from \"./search_component\";\n\nexport default SearchUtil;\n"
  },
  {
    "__docId__": 342,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/search/search_actions.js",
    "memberof": null,
    "longname": "src/components/search/search_actions.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import Arkham from \"../../core/arkham\";\nimport SearchApi from \"./search_api\";\n\nlet SearchActions = {\n  openSearch: () => {\n    Arkham.trigger(\"search.start\");\n  },\n  endSearch: () => {\n    Arkham.trigger(\"search.end\");\n  },\n  typing: (data) => {\n    Arkham.trigger(\"search.fetch\", data);\n\n    SearchApi.search(data.query);\n  }\n};\n\nexport default SearchActions;\n"
  },
  {
    "__docId__": 343,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "SearchActions",
    "memberof": "src/components/search/search_actions.js",
    "longname": "src/components/search/search_actions.js~SearchActions",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/search/search_actions.js",
    "importStyle": "SearchActions",
    "description": null,
    "lineNumber": 4,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 344,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/search/search_api.js",
    "memberof": null,
    "longname": "src/components/search/search_api.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import $ from \"jquery\";\nimport SearchServerActions from \"./search_server_actions\";\n\nlet SearchApi = {\n  search: (query) => {\n    $.ajax({\n      url: `https://www.lonelyplanet.com/search.json?q=${query}`\n    }).done((results) => {\n      SearchServerActions.fetched(results);\n    });\n  }\n};\n\nexport default SearchApi;\n"
  },
  {
    "__docId__": 345,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "SearchApi",
    "memberof": "src/components/search/search_api.js",
    "longname": "src/components/search/search_api.js~SearchApi",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/search/search_api.js",
    "importStyle": "SearchApi",
    "description": null,
    "lineNumber": 4,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 346,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/search/search_component.js",
    "memberof": null,
    "longname": "src/components/search/search_component.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../core/bane\";\nimport Overlay from \"../overlay\";\nimport waitForTransition from \"../../core/utils/waitForTransition\";\nimport SearchActions from \"./search_actions\";\nimport SearchState from \"./search_state\";\nimport template from \"./search.hbs\";\nimport \"./_search.scss\";\n\nimport SearchItemComponent from \"./search_item\";\n\nclass SearchComponent extends Component {\n\n  static get className() {\n    return \"search\";\n  }\n\n  get isOpen() {\n    if(this._isOpen === undefined) {\n      this._isOpen = false;\n    }\n\n    return this._isOpen;\n  }\n\n  set isOpen(val){\n    this._isOpen = val || false;\n  }\n\n  get collection(){\n    if(this._collection === undefined){\n      this._collection = [];\n    }\n\n    return this._collection;\n  }\n\n  set collection(arr) {\n    this._collection = arr;\n\n    if(this._collection.length > 0) {\n      this.$searchResults.addClass(\"search-results--visible\");\n    } else {\n      this.$searchResults.removeClass(\"search-results--visible\");\n    }\n  }\n\n  initialize() {\n    this.build();\n\n    this.events = {\n      \"click .js-close\": (e) => {\n        e.preventDefault();\n\n        this.hide();\n      },\n\n      \"keydown .search__input\": \"onKeyup\"\n    };\n    //$(document.body).on(\"keyup\", this.onKeyup.bind(this));\n\n    this.collection = [];\n    this.overlay = new Overlay();\n\n    this.listenTo(this.overlay, \"click\", this.hide);\n\n    SearchState.on(\"change:results\", this.searchComplete.bind(this));\n  }\n\n  build(){\n    this.$el = $(template());\n\n    this.$input = this.$el.find(\".js-search-input\");\n    this.$searchResults = this.$el.find(\".js-search-results\");\n    this.$list = this.$searchResults.find(\".js-search-results-list\");\n    this.$resultsLink = this.$searchResults.find(\".js-search-results-more\");\n  }\n\n  show() {\n    if(this.isOpen) {\n      return Promise.all([]);\n    }\n\n    this.isOpen = true;\n\n    this.$el.appendTo(document.body);\n\n    this.overlay.show();\n\n    setTimeout(() => {\n      this.$el.addClass(SearchComponent.className + \"--visible\");\n    }, 10);\n\n    return waitForTransition(this.$el, { fallbackTime: 100 })\n      .then(() => {\n        this.$input.focus();\n      });\n  }\n\n  hide() {\n    if(!this.isOpen) {\n      return Promise.all([]);\n    }\n\n    this.isOpen = false;\n\n    this.$el.removeClass(SearchComponent.className + \"--visible\");\n\n    this.overlay.hide();\n\n    return waitForTransition(this.$el, { fallbackTime: 100 })\n      .then(() => {\n        this.$el.detach();\n      });\n  }\n\n  searchComplete(data) {\n    let collection = [];\n\n    this.$list.empty();\n    this.currentPosition = -1;\n\n    this.$resultsLink.attr(\"href\", \"http://www.lonelyplanet.com/search?q=\" + this.$input.val());\n\n    data.results.forEach((model) => {\n      collection.push(this.addOne(model));\n    });\n\n    this.collection = collection;\n  }\n\n  onKeyup(e) {\n    if(!this.isOpen){\n     return;\n    }\n\n    switch(e.keyCode){\n      case 13:\n        // enter\n        if(this.currentPosition !== -1){\n          this.collection[this.currentPosition].navigate();\n          break;\n        }\n\n        window.location.href = `http://www.lonelyplanet.com/search?q=${this.$input.val()}`;\n        break;\n\n      case 27:\n        // esc\n        this.hide();\n        break;\n\n      case 38:\n        //up\n        e.preventDefault();\n        this.goUp();\n        break;\n\n      case 40:\n        //down\n        e.preventDefault();\n        this.goDown();\n        break;\n\n      default:\n        clearTimeout(this.searchTimer);\n\n        this.searchTimer = window.setTimeout(() => {\n          SearchActions.typing({\n            query: this.$input.val()\n          });\n        }, 200);\n\n        break;\n    }\n  }\n\n  goUp() {\n    this.currentPosition--;\n\n    if(this.currentPosition < 0) {\n      this.currentPosition = 0;\n      return;\n    }\n\n    let currentItem = this.collection[this.currentPosition];\n\n    this.collection.forEach((itemComponent) => {\n      itemComponent.unselect();\n    });\n\n    currentItem.select();\n  }\n\n  goDown() {\n    this.currentPosition++;\n\n    if(this.currentPosition >= this.collection.length) {\n      this.currentPosition = this.collection.length - 1;\n    }\n\n    let currentItem = this.collection[this.currentPosition];\n\n    this.collection.forEach((itemComponent) => {\n      itemComponent.unselect();\n    });\n\n    currentItem.select();\n  }\n\n  addOne(model) {\n    let itemComponent = new SearchItemComponent({\n      model: model,\n      searchString: this.$input.val()\n    });\n\n    itemComponent.render().$el.appendTo(this.$list);\n\n    return itemComponent;\n  }\n\n}\n\nexport default SearchComponent;\n"
  },
  {
    "__docId__": 347,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "SearchComponent",
    "memberof": "src/components/search/search_component.js",
    "longname": "src/components/search/search_component.js~SearchComponent",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/search/search_component.js",
    "importStyle": "SearchComponent",
    "description": null,
    "lineNumber": 11,
    "undocument": true,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 348,
    "kind": "get",
    "static": true,
    "variation": null,
    "name": "className",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent.className",
    "access": null,
    "description": null,
    "lineNumber": 13,
    "undocument": true,
    "type": {
      "types": [
        "string"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 349,
    "kind": "get",
    "static": false,
    "variation": null,
    "name": "isOpen",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#isOpen",
    "access": null,
    "description": null,
    "lineNumber": 17,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 350,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "_isOpen",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#_isOpen",
    "access": null,
    "description": null,
    "lineNumber": 19,
    "undocument": true,
    "type": {
      "types": [
        "boolean"
      ]
    }
  },
  {
    "__docId__": 351,
    "kind": "set",
    "static": false,
    "variation": null,
    "name": "isOpen",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#isOpen",
    "access": null,
    "description": null,
    "lineNumber": 25,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 352,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "_isOpen",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#_isOpen",
    "access": null,
    "description": null,
    "lineNumber": 26,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 353,
    "kind": "get",
    "static": false,
    "variation": null,
    "name": "collection",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#collection",
    "access": null,
    "description": null,
    "lineNumber": 29,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 354,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "_collection",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#_collection",
    "access": null,
    "description": null,
    "lineNumber": 31,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 355,
    "kind": "set",
    "static": false,
    "variation": null,
    "name": "collection",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#collection",
    "access": null,
    "description": null,
    "lineNumber": 37,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 356,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "_collection",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#_collection",
    "access": null,
    "description": null,
    "lineNumber": 38,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 357,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#initialize",
    "access": null,
    "description": null,
    "lineNumber": 47,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 358,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "events",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#events",
    "access": null,
    "description": null,
    "lineNumber": 50,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 359,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "collection",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#collection",
    "access": null,
    "description": null,
    "lineNumber": 61,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 360,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "overlay",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#overlay",
    "access": null,
    "description": null,
    "lineNumber": 62,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 361,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "build",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#build",
    "access": null,
    "description": null,
    "lineNumber": 69,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 362,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "$el",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#$el",
    "access": null,
    "description": null,
    "lineNumber": 70,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 363,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "$input",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#$input",
    "access": null,
    "description": null,
    "lineNumber": 72,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 364,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "$searchResults",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#$searchResults",
    "access": null,
    "description": null,
    "lineNumber": 73,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 365,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "$list",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#$list",
    "access": null,
    "description": null,
    "lineNumber": 74,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 366,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "$resultsLink",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#$resultsLink",
    "access": null,
    "description": null,
    "lineNumber": 75,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 367,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "show",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#show",
    "access": null,
    "description": null,
    "lineNumber": 78,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 368,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "isOpen",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#isOpen",
    "access": null,
    "description": null,
    "lineNumber": 83,
    "undocument": true,
    "type": {
      "types": [
        "boolean"
      ]
    }
  },
  {
    "__docId__": 369,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "hide",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#hide",
    "access": null,
    "description": null,
    "lineNumber": 99,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 370,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "isOpen",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#isOpen",
    "access": null,
    "description": null,
    "lineNumber": 104,
    "undocument": true,
    "type": {
      "types": [
        "boolean"
      ]
    }
  },
  {
    "__docId__": 371,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "searchComplete",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#searchComplete",
    "access": null,
    "description": null,
    "lineNumber": 116,
    "undocument": true,
    "params": [
      {
        "name": "data",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 372,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "currentPosition",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#currentPosition",
    "access": null,
    "description": null,
    "lineNumber": 120,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 373,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "collection",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#collection",
    "access": null,
    "description": null,
    "lineNumber": 128,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 374,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "onKeyup",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#onKeyup",
    "access": null,
    "description": null,
    "lineNumber": 131,
    "undocument": true,
    "params": [
      {
        "name": "e",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 375,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "searchTimer",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#searchTimer",
    "access": null,
    "description": null,
    "lineNumber": 167,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 376,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "goUp",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#goUp",
    "access": null,
    "description": null,
    "lineNumber": 177,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 377,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "currentPosition",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#currentPosition",
    "access": null,
    "description": null,
    "lineNumber": 181,
    "undocument": true,
    "type": {
      "types": [
        "number"
      ]
    }
  },
  {
    "__docId__": 378,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "goDown",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#goDown",
    "access": null,
    "description": null,
    "lineNumber": 194,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 379,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "currentPosition",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#currentPosition",
    "access": null,
    "description": null,
    "lineNumber": 198,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 380,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "addOne",
    "memberof": "src/components/search/search_component.js~SearchComponent",
    "longname": "src/components/search/search_component.js~SearchComponent#addOne",
    "access": null,
    "description": null,
    "lineNumber": 210,
    "undocument": true,
    "params": [
      {
        "name": "model",
        "types": [
          "*"
        ]
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 381,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "searchComponent",
    "memberof": "src/components/search/search_component.js",
    "longname": "src/components/search/search_component.js~searchComponent",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/search/search_component.js",
    "importStyle": "searchComponent",
    "description": null,
    "lineNumber": 223,
    "undocument": true,
    "type": {
      "types": [
        "src/components/search/search_component.js~SearchComponent"
      ]
    }
  },
  {
    "__docId__": 382,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/search/search_item/index.js",
    "memberof": null,
    "longname": "src/components/search/search_item/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../../core/bane\";\nimport highlight from \"../../../core/utils/highlight\";\nimport template from \"./index.html.hbs\";\nimport \"./index.scss\";\n\nclass SearchItemComponent extends Component {\n\n  initialize(options){\n    this.model = options.model;\n    this.searchString = options.searchString;\n    this.$el = $(\"<li />\", {\n      \"class\": \"search-item\"\n    });\n  }\n\n  render(){\n    this.$el.html(template(this.model));\n\n    highlight(this.$el.find(\"[class*='__name']\"), this.searchString);\n\n    return this;\n  }\n\n  select(){\n    this.$el.addClass(\"search-item--selected\");\n  }\n\n  unselect() {\n    this.$el.removeClass(\"search-item--selected\");\n  }\n\n  navigate(){\n    window.location = \"/\" + this.model.slug;\n  }\n\n}\n\nexport default SearchItemComponent;\n"
  },
  {
    "__docId__": 383,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "SearchItemComponent",
    "memberof": "src/components/search/search_item/index.js",
    "longname": "src/components/search/search_item/index.js~SearchItemComponent",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/search/search_item/index.js",
    "importStyle": "SearchItemComponent",
    "description": null,
    "lineNumber": 6,
    "undocument": true,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 384,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/search/search_item/index.js~SearchItemComponent",
    "longname": "src/components/search/search_item/index.js~SearchItemComponent#initialize",
    "access": null,
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "params": [
      {
        "name": "options",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 385,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "model",
    "memberof": "src/components/search/search_item/index.js~SearchItemComponent",
    "longname": "src/components/search/search_item/index.js~SearchItemComponent#model",
    "access": null,
    "description": null,
    "lineNumber": 9,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 386,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "searchString",
    "memberof": "src/components/search/search_item/index.js~SearchItemComponent",
    "longname": "src/components/search/search_item/index.js~SearchItemComponent#searchString",
    "access": null,
    "description": null,
    "lineNumber": 10,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 387,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "$el",
    "memberof": "src/components/search/search_item/index.js~SearchItemComponent",
    "longname": "src/components/search/search_item/index.js~SearchItemComponent#$el",
    "access": null,
    "description": null,
    "lineNumber": 11,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 388,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "render",
    "memberof": "src/components/search/search_item/index.js~SearchItemComponent",
    "longname": "src/components/search/search_item/index.js~SearchItemComponent#render",
    "access": null,
    "description": null,
    "lineNumber": 16,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 389,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "select",
    "memberof": "src/components/search/search_item/index.js~SearchItemComponent",
    "longname": "src/components/search/search_item/index.js~SearchItemComponent#select",
    "access": null,
    "description": null,
    "lineNumber": 24,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 390,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "unselect",
    "memberof": "src/components/search/search_item/index.js~SearchItemComponent",
    "longname": "src/components/search/search_item/index.js~SearchItemComponent#unselect",
    "access": null,
    "description": null,
    "lineNumber": 28,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 391,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "navigate",
    "memberof": "src/components/search/search_item/index.js~SearchItemComponent",
    "longname": "src/components/search/search_item/index.js~SearchItemComponent#navigate",
    "access": null,
    "description": null,
    "lineNumber": 32,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 392,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "searchItemComponent",
    "memberof": "src/components/search/search_item/index.js",
    "longname": "src/components/search/search_item/index.js~searchItemComponent",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/search/search_item/index.js",
    "importStyle": "searchItemComponent",
    "description": null,
    "lineNumber": 38,
    "undocument": true,
    "type": {
      "types": [
        "src/components/search/search_item/index.js~SearchItemComponent"
      ]
    }
  },
  {
    "__docId__": 393,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/search/search_server_actions.js",
    "memberof": null,
    "longname": "src/components/search/search_server_actions.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import Arkham from \"../../core/arkham\";\n\nlet SearchServerActions = {\n  fetched: (results) => {\n    Arkham.trigger(\"search.fetched\", {\n      results: results\n    });\n  }\n};\n\nexport default SearchServerActions;\n"
  },
  {
    "__docId__": 394,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "SearchServerActions",
    "memberof": "src/components/search/search_server_actions.js",
    "longname": "src/components/search/search_server_actions.js~SearchServerActions",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/search/search_server_actions.js",
    "importStyle": "SearchServerActions",
    "description": null,
    "lineNumber": 3,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 395,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/search/search_state.js",
    "memberof": null,
    "longname": "src/components/search/search_state.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import assign from \"lodash/object/assign\";\nimport Arkham from \"../../core/arkham\";\nimport Events from \"../../core/mixins/events\";\n\nlet state = {\n  isActive: false,\n  isTyping: false,\n  isFocused: false,\n  results: [],\n  query: \"\"\n};\n\nlet SearchState = {};\n\n// Mixin Pattern\n// merge { } with { on, off, trigger }\n// SearchState.on, SearchState.off, SearchState.trigger etc.....\nassign(SearchState, Events);\n\n//Arkham.on('overlay:click', () => {\n//  state.isActive = false;\n//\n//  SearchState.trigger(\"change:isActive\", state);\n//});\n\nArkham.on(\"search.start\", () => {\n  state.isActive = true;\n\n  SearchState.trigger(\"change:isActive\", state);\n});\n\nArkham.on(\"search.start\", () => {\n  state.isFocused = true;\n\n  SearchState.trigger(\"change:isFocused\", state);\n});\n\nArkham.on(\"search.end overlay:click\", () => {\n  state.isActive = false;\n  state.results = [];\n\n  SearchState.trigger(\"change:isActive\", state);\n});\n\nArkham.on(\"search.fetch\", (data) => {\n  state.isTyping = true;\n  state.query = data.query;\n\n  SearchState.trigger(\"change:isTyping\", state);\n});\n\nArkham.on(\"search.fetched\", (data) => {\n  state.results = data.results.slice(0, 5);\n  state.isTyping = false;\n\n  SearchState.trigger(\"change:results\", state);\n});\n\nexport default SearchState;\n"
  },
  {
    "__docId__": 396,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "state",
    "memberof": "src/components/search/search_state.js",
    "longname": "src/components/search/search_state.js~state",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/components/search/search_state.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 5,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 397,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "SearchState",
    "memberof": "src/components/search/search_state.js",
    "longname": "src/components/search/search_state.js~SearchState",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/search/search_state.js",
    "importStyle": "SearchState",
    "description": null,
    "lineNumber": 13,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 398,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/slideshow/index.js",
    "memberof": null,
    "longname": "src/components/slideshow/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import Slideshow from \"./slideshow\";\nimport \"./slideshow.scss\";\n\nexport default Slideshow;\n"
  },
  {
    "__docId__": 399,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/slideshow/slide_component.js",
    "memberof": null,
    "longname": "src/components/slideshow/slide_component.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../core/bane\";\nimport waitForTransition from \"../../core/utils/waitForTransition\";\n\nclass SlideComponent extends Component {\n\n  static get imageSize(){\n    if(Modernizr.mq(\"only screen and (min-width: 1200px)\")){\n      return \"large\";\n    }\n\n    if(Modernizr.mq(\"only screen and (min-width: 720px)\")){\n      return \"medium\";\n    }\n\n    return \"small\";\n  }\n\n  static get quality() {\n    return \"hq\";\n  }\n\n  get imageUrl(){\n    return this.model[SlideComponent.imageSize][SlideComponent.quality];\n  }\n\n  initialize(options){\n    this.model = options.model;\n    this.preloadPromise = {};\n\n    if(!this.model) {\n      throw new Error(\"Missing slide model\");\n    }\n  }\n\n  getElement(){\n    let $el = this.currentEl = $(\"<div />\", {\n      \"class\": \"slideshow__slide\"\n    });\n\n    $el.css({\n      \"background-image\": `url(${this.imageUrl})`\n    }).attr(\"data-strapline\", this.model.strapline);\n\n    return $el;\n  }\n\n  preload(){\n    // return if already preloaded\n    if(this.preloadPromise[SlideComponent.imageSize]){\n      return this.preloadPromise[SlideComponent.imageSize];\n    }\n\n    let promise = this.preloadPromise[SlideComponent.imageSize] = new Promise((resolve) => {\n      let image = new Image();\n\n      image.src = this.imageUrl;\n      image.onload = function(){\n        resolve();\n      };\n      image.onerror = function(){\n        resolve();\n      };\n    });\n\n    return promise;\n  }\n\n  show(){\n    let $el = this.currentEl;\n\n    $el.addClass(\"slideshow__slide--visible\");\n\n    return waitForTransition($el);\n  }\n\n  hide(){\n    this.currentEl.remove();\n  }\n\n}\n\nexport default SlideComponent;\n"
  },
  {
    "__docId__": 400,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "SlideComponent",
    "memberof": "src/components/slideshow/slide_component.js",
    "longname": "src/components/slideshow/slide_component.js~SlideComponent",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/slideshow/slide_component.js",
    "importStyle": "SlideComponent",
    "description": null,
    "lineNumber": 4,
    "undocument": true,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 401,
    "kind": "get",
    "static": true,
    "variation": null,
    "name": "imageSize",
    "memberof": "src/components/slideshow/slide_component.js~SlideComponent",
    "longname": "src/components/slideshow/slide_component.js~SlideComponent.imageSize",
    "access": null,
    "description": null,
    "lineNumber": 6,
    "undocument": true,
    "type": {
      "types": [
        "string"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 402,
    "kind": "get",
    "static": true,
    "variation": null,
    "name": "quality",
    "memberof": "src/components/slideshow/slide_component.js~SlideComponent",
    "longname": "src/components/slideshow/slide_component.js~SlideComponent.quality",
    "access": null,
    "description": null,
    "lineNumber": 18,
    "undocument": true,
    "type": {
      "types": [
        "string"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 403,
    "kind": "get",
    "static": false,
    "variation": null,
    "name": "imageUrl",
    "memberof": "src/components/slideshow/slide_component.js~SlideComponent",
    "longname": "src/components/slideshow/slide_component.js~SlideComponent#imageUrl",
    "access": null,
    "description": null,
    "lineNumber": 22,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 404,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/slideshow/slide_component.js~SlideComponent",
    "longname": "src/components/slideshow/slide_component.js~SlideComponent#initialize",
    "access": null,
    "description": null,
    "lineNumber": 26,
    "undocument": true,
    "params": [
      {
        "name": "options",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 405,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "model",
    "memberof": "src/components/slideshow/slide_component.js~SlideComponent",
    "longname": "src/components/slideshow/slide_component.js~SlideComponent#model",
    "access": null,
    "description": null,
    "lineNumber": 27,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 406,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "preloadPromise",
    "memberof": "src/components/slideshow/slide_component.js~SlideComponent",
    "longname": "src/components/slideshow/slide_component.js~SlideComponent#preloadPromise",
    "access": null,
    "description": null,
    "lineNumber": 28,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 407,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getElement",
    "memberof": "src/components/slideshow/slide_component.js~SlideComponent",
    "longname": "src/components/slideshow/slide_component.js~SlideComponent#getElement",
    "access": null,
    "description": null,
    "lineNumber": 35,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 408,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "preload",
    "memberof": "src/components/slideshow/slide_component.js~SlideComponent",
    "longname": "src/components/slideshow/slide_component.js~SlideComponent#preload",
    "access": null,
    "description": null,
    "lineNumber": 47,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 409,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "show",
    "memberof": "src/components/slideshow/slide_component.js~SlideComponent",
    "longname": "src/components/slideshow/slide_component.js~SlideComponent#show",
    "access": null,
    "description": null,
    "lineNumber": 68,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 410,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "hide",
    "memberof": "src/components/slideshow/slide_component.js~SlideComponent",
    "longname": "src/components/slideshow/slide_component.js~SlideComponent#hide",
    "access": null,
    "description": null,
    "lineNumber": 76,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 411,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "slideComponent",
    "memberof": "src/components/slideshow/slide_component.js",
    "longname": "src/components/slideshow/slide_component.js~slideComponent",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/slideshow/slide_component.js",
    "importStyle": "slideComponent",
    "description": null,
    "lineNumber": 82,
    "undocument": true,
    "type": {
      "types": [
        "src/components/slideshow/slide_component.js~SlideComponent"
      ]
    }
  },
  {
    "__docId__": 412,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/slideshow/slideshow.js",
    "memberof": null,
    "longname": "src/components/slideshow/slideshow.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../core/bane\";\nimport waitForTransition from \"../../core/utils/waitForTransition\";\nimport SlideComponent from \"./slide_component\";\n\n/**\n * slideshow Component\n*/\nexport default class Slideshow extends Component {\n  static get loopSpeed() {\n    return 6000;\n  }\n\n  get padding() {\n    return this.type === \"slide\" ? 2 : 1;\n  }\n\n  get slides(){\n    return this._slides || (this._slides = []);\n  }\n\n  get stack(){\n    return this._stack || (this._stack = []);\n  }\n\n  get $images(){\n    if(!this._$images) {\n      this._$images = this.$el.find(\".slideshow__images\");\n\n      if (!this._$images.length) {\n        this._$images = $(\"<div />\", {\n          \"class\": \"slideshow__images\"\n        }).appendTo(this.$el);\n      }\n\n      this._$images.empty();\n    }\n\n    return this._$images;\n  }\n\n  \n\n  get type(){\n    return this.options.type || \"fade\";\n  }\n\n  initialize(options){\n    this.options = options;\n    this.$el.addClass(`slideshow--${this.type}`);\n    this.currentSlideIndex = 0;\n\n    this.events = {\n      \"click [class*=\\\"--num_-1\\\"]\": \"goLeft\",\n      \"click [class*=\\\"--num_1\\\"]\": \"goRight\"\n    };\n\n    let state = this.getInitialState();\n\n    if (!state.images && !this.options.images) {\n      return;\n    }\n\n    this.createBaseSlides(state);\n    this.initSlideShow();\n\n    if(this.slides.length > 1) {\n      this.setCssClasses();\n      this.startLoop();\n    }\n  }\n\n  createBaseSlides(state) {\n    \n\n    let images = state.images || this.options.images || [];\n\n    let hasStraplines = false;\n\n    images.forEach((imageData) => {\n      let slide = new SlideComponent({\n        model: imageData\n      });\n\n      if(imageData.strapline) {\n        hasStraplines = true;\n      }\n\n      this.slides.push(slide);\n    });\n\n    if(!hasStraplines) {\n      this.$el.find(\".slideshow__straplines\").remove();\n    }\n\n    if (this.options.showProgress && images.length > 1) {\n      this.makeProgress();\n    }\n  }\n\n  initSlideShow() {\n    let state = this.getNewState();\n\n    this.showStraplineByIndex(this.currentSlideIndex);\n\n    state.forEach((index) => {\n      let $el = this.slides[index].getElement();\n\n      this.stack.push($el);\n\n      $el.appendTo(this.$images);\n    });\n\n    if (this.options.height) {\n      this.$el.height(this.options.height);\n    }\n  }\n\n  startLoop() {\n    return new Promise((resolve) => {\n        this.loopTimer = setTimeout(resolve, Slideshow.loopSpeed);\n      })\n      .then(() => {\n        return this.showNext();\n      })\n      .then(this.startLoop.bind(this));\n  }\n\n  goRight(){\n    if(this.isAnimating){\n      return Promise.all([]);\n    }\n\n    clearTimeout(this.loopTimer);\n\n    return this.showNext()\n      .then(this.startLoop.bind(this));\n  }\n\n  goLeft(){\n    if(this.isAnimating){\n      return Promise.all([]);\n    }\n\n    clearTimeout(this.loopTimer);\n\n    return this.showNext({ reverse: true})\n      .then(this.startLoop.bind(this));\n  }\n\n  getNewState() {\n    if (this.slides.length === 1) {\n      return [0];\n    }\n\n    let arr = [];\n\n    for(let i = -this.padding; i <= this.padding; i++) {\n      arr.push(this.getSlideFromIndex(i));\n    }\n\n    // E.G., make sure if the array has [0,0,0], it only returns [0]\n    return arr;\n  }\n\n  // TODO: Fix double overflow (more then one circle)\n  getSlideFromIndex(index){\n    let currentIndex = this.currentSlideIndex;\n    let nextIndex = currentIndex + index;\n    let output = nextIndex;\n\n    if(nextIndex < 0) {\n      output = (this.slides.length) + currentIndex + index;\n    }\n\n    if(nextIndex > this.slides.length - 1){\n      output = nextIndex - (this.slides.length);\n    }\n\n    if(output < 0 || output >= this.slides.length) {\n      return 0;\n    }\n\n    return output;\n  }\n\n  setCssClasses() {\n    let i = -this.padding;\n\n    this.stack.forEach(($el) => {\n      $el.attr(\"class\", \"slideshow__slide slideshow__slide--num_\" + i++);\n    });\n\n    if (this.options.showProgress) {\n      this.updateProgress();\n    }\n  }\n\n  showNext({ reverse = false } = {}){\n    let currentIndex = this.currentSlideIndex = reverse ?\n      this.getPrevIndex(this.currentSlideIndex) :\n      this.getNextIndex(this.currentSlideIndex);\n\n    let state = this.getNewState();\n\n    this.isAnimating = true;\n\n    // remove first/last element of stack, [0,1,2,3] -> [1,2,3]\n    let toBeRemoved = reverse ? this.stack.pop() : this.stack.shift();\n\n    // add new item to stack, [1,2,3] -> [1,2,3,4]\n    let nextIndexIn = reverse ? state[0] : state[state.length - 1];\n    let nextSlide = this.slides[nextIndexIn];\n    let nextEl = nextSlide.getElement();\n\n    if(reverse){\n      this.stack.unshift(nextEl);\n    } else {\n      this.stack.push(nextEl);\n    }\n\n    // preLoad new image before animating\n    return nextSlide.preload()\n      .then(() => {\n        // remove old element\n        $(toBeRemoved[0]).remove();\n\n        // insert new element\n        nextEl.addClass(\"slideshow__slide--next\").appendTo(this.$images);\n\n        // reset all css classes on stack for positioning / animation\n        this.setCssClasses();\n      })\n      .then(() => {\n        this.showStraplineByIndex(currentIndex);\n      })\n      .then(() => {\n        // 5. wait for slide animation on primary slide\n        return waitForTransition(this.stack[this.padding]);\n      })\n      .then(() => {\n        this.isAnimating = false;\n      });\n  }\n\n  getPrevIndex(index){\n    let prevIndex = index - 1;\n\n    if(prevIndex < 0) {\n      prevIndex = this.slides.length - 1;\n    }\n\n    return prevIndex;\n  }\n\n  getNextIndex(index){\n    let nextIndex = index + 1;\n\n    if(nextIndex > this.slides.length - 1) {\n      nextIndex = 0;\n    }\n\n    return nextIndex;\n  }\n\n  showStraplineByIndex(index){\n    this.trigger(\"image.changed\", {\n      index\n    });\n  }\n\n  makeProgress() {\n    this.$progress = $(\"<div />\", {\n      \"class\": \"slideshow__progress\"\n    });\n\n    this.slides.forEach(() => {\n      this.$progress.append($(\"<span />\", {\n        \"class\": \"slideshow__progress__dot\"\n      }));\n    });\n\n    this.$images.append(this.$progress);\n  }\n\n  updateProgress() {\n    let $dots = this.$progress.find(\".slideshow__progress__dot\");\n      \n    $dots.removeClass(\"slideshow__progress__dot--active\");\n\n    $dots.eq(this.currentSlideIndex).addClass(\"slideshow__progress__dot--active\");\n  }\n\n}\n"
  },
  {
    "__docId__": 413,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "Slideshow",
    "memberof": "src/components/slideshow/slideshow.js",
    "longname": "src/components/slideshow/slideshow.js~Slideshow",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/slideshow/slideshow.js",
    "importStyle": "Slideshow",
    "description": "slideshow Component",
    "lineNumber": 8,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 414,
    "kind": "get",
    "static": true,
    "variation": null,
    "name": "loopSpeed",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow.loopSpeed",
    "access": null,
    "description": null,
    "lineNumber": 9,
    "undocument": true,
    "type": {
      "types": [
        "number"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 415,
    "kind": "get",
    "static": false,
    "variation": null,
    "name": "padding",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#padding",
    "access": null,
    "description": null,
    "lineNumber": 13,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 416,
    "kind": "get",
    "static": false,
    "variation": null,
    "name": "slides",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#slides",
    "access": null,
    "description": null,
    "lineNumber": 17,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 417,
    "kind": "get",
    "static": false,
    "variation": null,
    "name": "stack",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#stack",
    "access": null,
    "description": null,
    "lineNumber": 21,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 418,
    "kind": "get",
    "static": false,
    "variation": null,
    "name": "$images",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#$images",
    "access": null,
    "description": null,
    "lineNumber": 25,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 419,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "_$images",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#_$images",
    "access": null,
    "description": null,
    "lineNumber": 27,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 420,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "_$images",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#_$images",
    "access": null,
    "description": null,
    "lineNumber": 30,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 421,
    "kind": "get",
    "static": false,
    "variation": null,
    "name": "type",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#type",
    "access": null,
    "description": null,
    "lineNumber": 43,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 422,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#initialize",
    "access": null,
    "description": null,
    "lineNumber": 47,
    "undocument": true,
    "params": [
      {
        "name": "options",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 423,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "options",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#options",
    "access": null,
    "description": null,
    "lineNumber": 48,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 424,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "currentSlideIndex",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#currentSlideIndex",
    "access": null,
    "description": null,
    "lineNumber": 50,
    "undocument": true,
    "type": {
      "types": [
        "number"
      ]
    }
  },
  {
    "__docId__": 425,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "events",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#events",
    "access": null,
    "description": null,
    "lineNumber": 52,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 426,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "createBaseSlides",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#createBaseSlides",
    "access": null,
    "description": null,
    "lineNumber": 72,
    "undocument": true,
    "params": [
      {
        "name": "state",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 427,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initSlideShow",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#initSlideShow",
    "access": null,
    "description": null,
    "lineNumber": 100,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 428,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "startLoop",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#startLoop",
    "access": null,
    "description": null,
    "lineNumber": 118,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 429,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "loopTimer",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#loopTimer",
    "access": null,
    "description": null,
    "lineNumber": 120,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 430,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "goRight",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#goRight",
    "access": null,
    "description": null,
    "lineNumber": 128,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 431,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "goLeft",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#goLeft",
    "access": null,
    "description": null,
    "lineNumber": 139,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 432,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getNewState",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#getNewState",
    "access": null,
    "description": null,
    "lineNumber": 150,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 433,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getSlideFromIndex",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#getSlideFromIndex",
    "access": null,
    "description": null,
    "lineNumber": 166,
    "undocument": true,
    "params": [
      {
        "name": "index",
        "types": [
          "*"
        ]
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 434,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "setCssClasses",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#setCssClasses",
    "access": null,
    "description": null,
    "lineNumber": 186,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 435,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "showNext",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#showNext",
    "access": null,
    "description": null,
    "lineNumber": 198,
    "undocument": true,
    "params": [
      {
        "name": "objectPattern",
        "optional": true,
        "types": [
          "{\"reverse\": *}"
        ],
        "defaultRaw": {},
        "defaultValue": "{}"
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 436,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "isAnimating",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#isAnimating",
    "access": null,
    "description": null,
    "lineNumber": 205,
    "undocument": true,
    "type": {
      "types": [
        "boolean"
      ]
    }
  },
  {
    "__docId__": 437,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "isAnimating",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#isAnimating",
    "access": null,
    "description": null,
    "lineNumber": 241,
    "undocument": true,
    "type": {
      "types": [
        "boolean"
      ]
    }
  },
  {
    "__docId__": 438,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getPrevIndex",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#getPrevIndex",
    "access": null,
    "description": null,
    "lineNumber": 245,
    "undocument": true,
    "params": [
      {
        "name": "index",
        "types": [
          "*"
        ]
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 439,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getNextIndex",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#getNextIndex",
    "access": null,
    "description": null,
    "lineNumber": 255,
    "undocument": true,
    "params": [
      {
        "name": "index",
        "types": [
          "*"
        ]
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 440,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "showStraplineByIndex",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#showStraplineByIndex",
    "access": null,
    "description": null,
    "lineNumber": 265,
    "undocument": true,
    "params": [
      {
        "name": "index",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 441,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "makeProgress",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#makeProgress",
    "access": null,
    "description": null,
    "lineNumber": 271,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 442,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "$progress",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#$progress",
    "access": null,
    "description": null,
    "lineNumber": 272,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 443,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "updateProgress",
    "memberof": "src/components/slideshow/slideshow.js~Slideshow",
    "longname": "src/components/slideshow/slideshow.js~Slideshow#updateProgress",
    "access": null,
    "description": null,
    "lineNumber": 285,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 444,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/stacks/main.js",
    "memberof": null,
    "longname": "src/components/stacks/main.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import Stack from \"./stack_component\";\n\nrequire(\"./stacks.scss\");\n\nexport default (function() {\n  return $(\".articles\").each(function() {\n    let stack = new Stack({\n      el: this\n    });\n\n    $(this).data(\"lpStack\", stack);\n  });\n}());\n"
  },
  {
    "__docId__": 445,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/stacks/stack_actions.js",
    "memberof": null,
    "longname": "src/components/stacks/stack_actions.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Arkham } from \"../../core/bane\";\n\nlet StackActions = {\n  getMore: () => {\n    Arkham.trigger(\"stacks.fetch\", {});\n\n    // Simulate Ajax request\n    setTimeout(() => {\n      Arkham.trigger(\"stacks.fetched\", {\n        stacks: [ {\n          name: \"Spider Man\"\n        }, {\n          name: \"Captain America\"\n        }, {\n          name: \"Iron Man\"\n        } ]\n      });\n    }, 0);\n  }\n};\n\nexport default StackActions;\n"
  },
  {
    "__docId__": 446,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "StackActions",
    "memberof": "src/components/stacks/stack_actions.js",
    "longname": "src/components/stacks/stack_actions.js~StackActions",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/stacks/stack_actions.js",
    "importStyle": "StackActions",
    "description": null,
    "lineNumber": 3,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 447,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/stacks/stack_component.js",
    "memberof": null,
    "longname": "src/components/stacks/stack_component.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../core/bane\";\nimport StackActions from \"./stack_actions\";\nimport StackState from \"./stack_state\";\nimport assign from \"lodash/object/assign\";\n\n// # Stack\n// Renders stack widgets\nclass Stack extends Component {\n  initialize() {\n    this.name = \"stacks\";\n\n    this.events = {\n      \"click .button\": \"getMore\"\n    };\n\n    this.template = require(\"components/stacks/_stacks.html.hbs\");\n    this.listenTo(StackState, \"changed\", this.render);\n\n    StackState.setInitialState(this.getInitialState());\n  }\n  render(data) {\n    let templateData = assign({}, StackState.getState(), data);\n\n    this.build(templateData);\n  }\n  getMore() {\n    StackActions.getMore();\n  }\n}\n\nexport default Stack;\n"
  },
  {
    "__docId__": 448,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "Stack",
    "memberof": "src/components/stacks/stack_component.js",
    "longname": "src/components/stacks/stack_component.js~Stack",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/stacks/stack_component.js",
    "importStyle": "Stack",
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 449,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/stacks/stack_component.js~Stack",
    "longname": "src/components/stacks/stack_component.js~Stack#initialize",
    "access": null,
    "description": null,
    "lineNumber": 9,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 450,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "name",
    "memberof": "src/components/stacks/stack_component.js~Stack",
    "longname": "src/components/stacks/stack_component.js~Stack#name",
    "access": null,
    "description": null,
    "lineNumber": 10,
    "undocument": true,
    "type": {
      "types": [
        "string"
      ]
    }
  },
  {
    "__docId__": 451,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "events",
    "memberof": "src/components/stacks/stack_component.js~Stack",
    "longname": "src/components/stacks/stack_component.js~Stack#events",
    "access": null,
    "description": null,
    "lineNumber": 12,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 452,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "template",
    "memberof": "src/components/stacks/stack_component.js~Stack",
    "longname": "src/components/stacks/stack_component.js~Stack#template",
    "access": null,
    "description": null,
    "lineNumber": 16,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 453,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "render",
    "memberof": "src/components/stacks/stack_component.js~Stack",
    "longname": "src/components/stacks/stack_component.js~Stack#render",
    "access": null,
    "description": null,
    "lineNumber": 21,
    "undocument": true,
    "params": [
      {
        "name": "data",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 454,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getMore",
    "memberof": "src/components/stacks/stack_component.js~Stack",
    "longname": "src/components/stacks/stack_component.js~Stack#getMore",
    "access": null,
    "description": null,
    "lineNumber": 26,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 455,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "stack",
    "memberof": "src/components/stacks/stack_component.js",
    "longname": "src/components/stacks/stack_component.js~stack",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/stacks/stack_component.js",
    "importStyle": "stack",
    "description": null,
    "lineNumber": 31,
    "undocument": true,
    "type": {
      "types": [
        "src/components/stacks/stack_component.js~Stack"
      ]
    }
  },
  {
    "__docId__": 456,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/stacks/stack_state.js",
    "memberof": null,
    "longname": "src/components/stacks/stack_state.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import assign from \"lodash/object/assign\";\nimport Events from \"../../core/mixins/events\";\nimport { Arkham } from \"../../core/bane\";\n\nlet state = {\n  destinations: {\n    caption: \"\",\n    articles: []\n  }\n};\n\nlet StackState = {\n  setInitialState: (initialState) => {\n    assign(state.destinations, initialState);\n  },\n  getState: () => {\n    return state;\n  }\n};\n\nassign(StackState, Events);\n\nArkham.on(\"stacks.fetched\", function(data) {\n  state.destinations.articles = state.destinations.articles.concat(data.stacks);\n\n  StackState.trigger(\"changed\", state);\n});\n\nexport default StackState;\n"
  },
  {
    "__docId__": 457,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "state",
    "memberof": "src/components/stacks/stack_state.js",
    "longname": "src/components/stacks/stack_state.js~state",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/components/stacks/stack_state.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 5,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 458,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "StackState",
    "memberof": "src/components/stacks/stack_state.js",
    "longname": "src/components/stacks/stack_state.js~StackState",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/stacks/stack_state.js",
    "importStyle": "StackState",
    "description": null,
    "lineNumber": 12,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 459,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/sub_nav/index.js",
    "memberof": null,
    "longname": "src/components/sub_nav/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../core/bane\";\nimport RizzoEvents from \"../../core/rizzo_events\";\nimport subscribe from \"../../core/decorators/subscribe\";\nimport debounce from \"lodash/function/debounce\";\nrequire(\"./_sub_nav.scss\");\n\nexport default class SubNav extends Component {\n  initialize() {\n    let $subNav = $(\".js-sub-nav\"),\n        $subNavPlaceholder = $(\".js-sub-nav-placeholder\"),\n        $window = $(window);\n\n    this.contentHeight = 0;\n\n    /**\n     * Checks to see if a given element has been scrolled into view\n     * @param  {Object}  element Element to check\n     * @return {Boolean}         Is the element in view or not?\n     */\n    let isScrolledIntoView = (element) => {\n      let $element = $(element),\n          windowTop = $window.scrollTop(),\n          elementTop = $element.offset().top,\n          viewportTop = windowTop + ($subNav.height() * 2);\n\n      return elementTop <= viewportTop;\n    };\n\n    if ($subNav.length) {\n      let subNavTop = $subNav.offset().top,\n          firstTrigger = true;\n\n      $(document).on(\"click\", \".js-sub-nav-link\", function(e) {\n        let target = this.hash;\n        let $target = $(target);\n        let navHeight = $subNav.height();\n\n        e.preventDefault();\n\n        if($target.parents(\".segment\").length > 0) {\n          $target = $target.parents(\".segment\");\n        }\n\n        $(\"html, body\").stop().animate({\n          scrollTop: $target.offset().top - navHeight\n        }, 500, \"swing\", () => {\n          window.location.hash = target;\n        });\n      });\n\n      if (window.location.hash) {\n        $subNav.find(`[href=\"${window.location.hash}\"]`).trigger(\"click\");\n      }\n\n      let $links = $(\".js-sub-nav-link\"),\n          $components = $links.map((i, el) => {\n            return document.getElementById(el.href.split(\"#\")[1]);\n          });\n\n      $window.scroll(debounce(() => {\n        if (firstTrigger) {\n          firstTrigger = false;\n        }\n\n        let isFixed = ($window.scrollTop() >= subNavTop) && ($window.scrollTop() <= this.contentHeight),\n            isBottom = ($window.scrollTop() >= subNavTop) && ($window.scrollTop() >= this.contentHeight);\n\n        if (isFixed) {\n          $subNav\n            .addClass(\"is-fixed\")\n            .removeClass(\"is-bottom\");\n\n          $subNavPlaceholder\n            .addClass(\"is-fixed\");\n\n        } else if (isBottom) {\n          $subNav\n            .addClass(\"is-bottom\")\n            .removeClass(\"is-fixed\");\n\n          $subNavPlaceholder\n            .addClass(\"is-fixed\");\n\n        } else {\n          $subNav\n            .removeClass(\"is-fixed is-bottom\");\n\n          $subNavPlaceholder\n            .removeClass(\"is-fixed\");\n\n        }\n\n        let $current = $components.map((i, el) => {\n          if (isScrolledIntoView(el)) {\n            return el;\n          }\n        });\n\n        if ($current.length) {\n          $subNav.find(\"a\").removeClass(\"sub-nav__link--active\");\n\n          $subNav\n            .find(`a[href*=\"#${$current[$current.length - 1].id}\"]`)\n              .addClass(\"sub-nav__link--active\");\n\n        } else {\n          $subNav.find(\"a\").removeClass(\"sub-nav__link--active\");\n\n        }\n\n      }, 10));\n\n      $window.resize(debounce(() => {\n        this.updateContentHeight();\n      }, 10));\n    }\n\n    this.subscribe();\n    this.addClientSideComponents();\n  }\n  addClientSideComponents() {\n    // TODO: Handlebars template perhaps? More dynamic perhaps?\n    $(\n    `<li class=\"sub-nav__item sub-nav__item--ttd\">\n      <a class=\"sub-nav__link js-sub-nav-link\" href=\"#ttd\">see</a>\n    </li>\n    `).prependTo(this.$el.find(\".sub-nav__list\"));\n  }\n  @subscribe(RizzoEvents.LOAD_BELOW, \"events\");\n  updateContentHeight() {\n    this.contentHeight = $(\".navigation-wrapper\").outerHeight();\n  }\n  /**\n   * If a component is removed from the DOM, this will remove it's subnav element\n   */\n  @subscribe(\"*.removed\", \"components\")\n  removeSubNav(data, envelope) {\n    let component = envelope.topic.split(\".\")[0];\n\n    this.$el.find(`.sub-nav__item--${component}`).remove();\n  }\n}\n"
  },
  {
    "__docId__": 460,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "SubNav",
    "memberof": "src/components/sub_nav/index.js",
    "longname": "src/components/sub_nav/index.js~SubNav",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/sub_nav/index.js",
    "importStyle": "SubNav",
    "description": null,
    "lineNumber": 7,
    "undocument": true,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 461,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/sub_nav/index.js~SubNav",
    "longname": "src/components/sub_nav/index.js~SubNav#initialize",
    "access": null,
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 462,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "contentHeight",
    "memberof": "src/components/sub_nav/index.js~SubNav",
    "longname": "src/components/sub_nav/index.js~SubNav#contentHeight",
    "access": null,
    "description": null,
    "lineNumber": 13,
    "undocument": true,
    "type": {
      "types": [
        "number"
      ]
    }
  },
  {
    "__docId__": 463,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "addClientSideComponents",
    "memberof": "src/components/sub_nav/index.js~SubNav",
    "longname": "src/components/sub_nav/index.js~SubNav#addClientSideComponents",
    "access": null,
    "description": null,
    "lineNumber": 121,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 464,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "updateContentHeight",
    "memberof": "src/components/sub_nav/index.js~SubNav",
    "longname": "src/components/sub_nav/index.js~SubNav#updateContentHeight",
    "access": null,
    "description": null,
    "lineNumber": 130,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 465,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "contentHeight",
    "memberof": "src/components/sub_nav/index.js~SubNav",
    "longname": "src/components/sub_nav/index.js~SubNav#contentHeight",
    "access": null,
    "description": null,
    "lineNumber": 131,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 466,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "removeSubNav",
    "memberof": "src/components/sub_nav/index.js~SubNav",
    "longname": "src/components/sub_nav/index.js~SubNav#removeSubNav",
    "access": null,
    "description": "If a component is removed from the DOM, this will remove it's subnav element",
    "lineNumber": 137,
    "params": [
      {
        "name": "data",
        "types": [
          "*"
        ]
      },
      {
        "name": "envelope",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 467,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/survival_guide/index.js",
    "memberof": null,
    "longname": "src/components/survival_guide/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "require(\"./_survival_guide.scss\");\n"
  },
  {
    "__docId__": 468,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/svg_icons/index.js",
    "memberof": null,
    "longname": "src/components/svg_icons/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "require(\"./svg_icons.scss\");\n"
  },
  {
    "__docId__": 469,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/tabs/tabs_component.js",
    "memberof": null,
    "longname": "src/components/tabs/tabs_component.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../core/bane\";\nimport $ from \"jquery\";\n\nrequire(\"./tabs.scss\");\n\nexport default class Tabs extends Component {\n  get active() {\n    return this._active;\n  }\n  set active($el) {\n    $el = $($el);\n\n    let $tab = this.$el.find($el.attr(\"href\"));\n\n    this.resetTabs();\n    [$tab, $el].forEach((el) => el.addClass(\"is-active\"));\n\n    this._active = {\n      $link: $el,\n      $tab: $tab\n    };\n  }\n\n  initialize() {\n    this.events = {\n      \"click .tabs__links a\": \"activateTab\"\n    };\n\n    this.$links = this.$el.find(\".tabs__links a\");\n    this.$tabs = this.$el.find(\".tabs__content\");\n\n    this.active = this.$links.first();\n  }\n\n  resetTabs() {\n    [\"$links\", \"$tabs\"].forEach(($el) => this[$el].removeClass(\"is-active\"));\n  }\n\n  activateTab(e) {\n    e.preventDefault();\n    this.active = e.target;\n\n    this.trigger(\"tabs.activate\", {\n      index: this.$tabs.find(e.target).index()\n    });\n  }\n}\n"
  },
  {
    "__docId__": 470,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "Tabs",
    "memberof": "src/components/tabs/tabs_component.js",
    "longname": "src/components/tabs/tabs_component.js~Tabs",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/tabs/tabs_component.js",
    "importStyle": "Tabs",
    "description": null,
    "lineNumber": 6,
    "undocument": true,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 471,
    "kind": "get",
    "static": false,
    "variation": null,
    "name": "active",
    "memberof": "src/components/tabs/tabs_component.js~Tabs",
    "longname": "src/components/tabs/tabs_component.js~Tabs#active",
    "access": null,
    "description": null,
    "lineNumber": 7,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 472,
    "kind": "set",
    "static": false,
    "variation": null,
    "name": "active",
    "memberof": "src/components/tabs/tabs_component.js~Tabs",
    "longname": "src/components/tabs/tabs_component.js~Tabs#active",
    "access": null,
    "description": null,
    "lineNumber": 10,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 473,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "_active",
    "memberof": "src/components/tabs/tabs_component.js~Tabs",
    "longname": "src/components/tabs/tabs_component.js~Tabs#_active",
    "access": null,
    "description": null,
    "lineNumber": 18,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 474,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/tabs/tabs_component.js~Tabs",
    "longname": "src/components/tabs/tabs_component.js~Tabs#initialize",
    "access": null,
    "description": null,
    "lineNumber": 24,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 475,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "events",
    "memberof": "src/components/tabs/tabs_component.js~Tabs",
    "longname": "src/components/tabs/tabs_component.js~Tabs#events",
    "access": null,
    "description": null,
    "lineNumber": 25,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 476,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "$links",
    "memberof": "src/components/tabs/tabs_component.js~Tabs",
    "longname": "src/components/tabs/tabs_component.js~Tabs#$links",
    "access": null,
    "description": null,
    "lineNumber": 29,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 477,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "$tabs",
    "memberof": "src/components/tabs/tabs_component.js~Tabs",
    "longname": "src/components/tabs/tabs_component.js~Tabs#$tabs",
    "access": null,
    "description": null,
    "lineNumber": 30,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 478,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "active",
    "memberof": "src/components/tabs/tabs_component.js~Tabs",
    "longname": "src/components/tabs/tabs_component.js~Tabs#active",
    "access": null,
    "description": null,
    "lineNumber": 32,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 479,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "resetTabs",
    "memberof": "src/components/tabs/tabs_component.js~Tabs",
    "longname": "src/components/tabs/tabs_component.js~Tabs#resetTabs",
    "access": null,
    "description": null,
    "lineNumber": 35,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 480,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "activateTab",
    "memberof": "src/components/tabs/tabs_component.js~Tabs",
    "longname": "src/components/tabs/tabs_component.js~Tabs#activateTab",
    "access": null,
    "description": null,
    "lineNumber": 39,
    "undocument": true,
    "params": [
      {
        "name": "e",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 481,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "active",
    "memberof": "src/components/tabs/tabs_component.js~Tabs",
    "longname": "src/components/tabs/tabs_component.js~Tabs#active",
    "access": null,
    "description": null,
    "lineNumber": 41,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 482,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/things_to_do/index.js",
    "memberof": null,
    "longname": "src/components/things_to_do/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import ThingsToDo from \"./things_to_do\";\n\nrequire(\"./_things_to_do.scss\");\n\nexport default ThingsToDo;\n"
  },
  {
    "__docId__": 483,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/things_to_do/things_to_do.js",
    "memberof": null,
    "longname": "src/components/things_to_do/things_to_do.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import Component from \"../../core/component\";\nimport waitForTransition from \"../../core/utils/waitForTransition\";\nimport publish from \"../../core/decorators/publish\";\nimport $clamp from \"clamp-js/clamp.js\";\nimport rizzo from \"../../rizzo\";\n\nclass ThingsToDo extends Component {\n  get title() {\n    return `Top experiences in ${window.lp.place.name}`;\n  }\n  initialize() {\n    this.currentIndex = (this.getCurrentIndex()) || 0;\n\n    this.options = {\n      numOfCards: 4\n    };\n\n    this.events = {\n      \"click .js-ttd-more\": \"loadMore\",\n      \"click .js-ttd-less\": \"loadPrevious\",\n      \"swiperight\": \"loadPrevious\",\n      \"swipeleft\": \"loadMore\"\n    };\n\n    this.fetchCards().done(this.cardsFetched.bind(this)).fail((jqXHR) => {\n      rizzo.logger.error({ error: jqXHR.responseText });\n      return this.nukeIt();\n    });\n  }\n  getCurrentIndex() {\n    let obj = window.localStorage && JSON.parse(window.localStorage.getItem(\"ttd.currentIndex\"));\n    if (!obj || obj.slug !== window.lp.place.slug) {\n      return;\n    }\n\n    return obj.index;\n  }\n  fetchCards() {\n    return $.ajax({\n      url: `/api/${window.lp.place.slug}/experiences`\n    });\n  }\n  @publish(\"ttd.removed\")\n  nukeIt() {\n    $(\"#ttd\").remove();\n  }\n  // TODO: jc this is... smelly\n  cardsFetched(cards) {\n    if (!cards.length) {\n      return this.nukeIt();\n    }\n    this.$el.prepend($(`<h2 class='ttd__heading'>${this.title}</h2>`));\n    this.cards = cards;\n\n    if (cards.length > 4) {\n      this.addNavigationButtons();\n    }\n    if (this.currentIndex >= this.options.numOfCards)  {\n      this.showPrevious();\n    } \n    if (this.currentIndex + 4 >= this.cards.length) {\n      this.hideShowMore();\n    }\n\n    this.template = require(\"./thing_to_do_card.hbs\");\n    this.render(this.nextCards());\n\n    this.clampImageCardTitle();\n  }\n  addNavigationButtons() {\n    let $left = $(\"<div />\", { \"class\": \"has-more--left is-invisible\"});\n    \n    // Lazy? Maybe... awesome? YES\n    $left.html(`\n    <button class=\"ttd__less js-ttd-less\">\n      <i class=\"ttd__more__icon icon-chevron-left\" aria-hidden=\"true\"></i>\n    </button>\n    `);\n    this.$el.find(\".js-ttd-list\").before($left);\n\n    let $right = $(\"<div />\", { \"class\": \"has-more--right\"});\n    $right.html(`\n    <button class=\"ttd__more js-ttd-more\">\n      <i class=\"ttd__more__icon icon-chevron-right\" aria-hidden=\"true\"></i>\n    </button>\n    `);\n    this.$el.find(\".js-ttd-list\").after($right);\n  }\n  /**\n   * Get the next 4 cards to render\n   * @return {Array} An array of rendered templates\n   */\n  nextCards() {\n    if (this.currentIndex >= this.cards.length) {\n      this.currentIndex = 0;\n    } else if (this.currentIndex < 0) {\n      this.currentIndex = this.cards.length - ((this.cards.length % this.options.numOfCards) || this.options.numOfCards);\n    }\n\n    return this.cards.slice(this.currentIndex, this.currentIndex + this.options.numOfCards)\n      .map((card, i) => {\n        Object.assign(card.card, {\n          card_num: i + this.currentIndex + 1,\n          order: i\n        });\n        return this.template(card);\n      });\n  }\n\n  render(cards) {\n    this.$el.find(\".js-ttd-list\").html(cards.join(\"\"));\n\n    this.loadImages(this.$el.find(\".js-image-card-image\"));\n  }\n\n  loadImages(images) {\n    let imagePromises = [];\n\n    images.each((index, element) => {\n      let $el = $(element),\n          imageUrl = $el.data(\"image-url\"),\n          backupUrl = $el.data(\"backupimage-url\");\n\n      imagePromises.push(this.lazyLoadImage(imageUrl)\n        .then(undefined, () => {\n          return this.lazyLoadImage(backupUrl);\n        })\n        .then((url) => {\n          $el.css({\n              \"background-image\": \"url(\" + url + \")\"\n            })\n            .addClass(\"is-visible\");\n        }));\n    });\n\n    return Promise.all(imagePromises);\n  }\n  makeNextList() {\n    let cards = this.nextCards();\n    if (window.localStorage) {\n      window.localStorage.setItem(\"ttd.currentIndex\", JSON.stringify({ index: this.currentIndex, slug: window.lp.place.slug }));\n    }\n\n    // Create a new list and place it on top of existing list\n    return $(\"<ul />\", {\n        \"class\": \"ttd__list js-ttd-list\"\n      })\n      .append(cards);\n  }\n  animate(reverse=false) {\n    let $list = this.$el.find(\".js-ttd-list\"),\n        ttdComponentWidth = this.$el.width();\n\n    let $nextList = this.makeNextList();\n\n    $nextList.css({\n      \"margin-top\": `-${$list.outerHeight(true)}px`,\n      \"transform\": `translate3d(${reverse ? \"-\" : \"\"}${ttdComponentWidth}px, 0, 0)`\n    });\n    this.loadImages($nextList.find(\".js-image-card-image\"));\n\n    this.animating = true;\n\n    $list.after($nextList)\n      .css(\"transform\", `translate3d(${reverse ? \"\" : \"-\"}${ttdComponentWidth}px, 0, 0)`);\n    \n    setTimeout(() => {\n      $nextList\n        .css(\"transform\", \"translate3d(0, 0, 0)\");\n    }, 30);\n\n    if (!reverse && this.currentIndex + 4 >= this.cards.length) {\n      this.hideShowMore();\n    } else if (reverse && this.currentIndex - 4 < 0) {\n      this.hideShowPrevious();\n    }\n\n    return waitForTransition($nextList, { fallbackTime: 300 })\n      .then(() => {\n        $list.remove();\n        $nextList.css(\"margin-top\", 0);\n        this.animating = false;\n      });\n  }\n  /**\n   * Load more top things to do. Callback from click on load more button.\n   * @param  {jQuery.Event} e The DOM event\n   */\n  @publish(\"ttd.loadmore\");\n  loadMore(e) {\n    e.preventDefault();\n    if (this.animating || this.currentIndex + 4 >= this.cards.length) {\n      return;\n    }\n    // Grab the next 4 images\n    this.showMoreAndPrevious();\n    this.currentIndex += this.options.numOfCards;\n    \n    // Forward\n    this.animate();\n\n    return {\n      \"direction\": \"forward\"\n    };\n  }\n  @publish(\"ttd.loadmore\");\n  loadPrevious(e) {\n    e.preventDefault();\n    if (this.animating || this.currentIndex - 4 < 0) {\n      return;\n    }\n    // Grab the next 4 images\n    this.showMoreAndPrevious();\n    this.currentIndex -= this.options.numOfCards;\n\n    // Reverse\n    this.animate(true);\n\n    return {\n      \"direction\": \"reverse\"\n    };\n  }\n  showMore() {\n    this.$el.find(\".has-more--right\").removeClass(\"is-invisible\");\n    this.$el.find(\".js-ttd-more\").removeClass(\"is-invisible\");\n  }\n  showPrevious() {\n    this.$el.find(\".has-more--left\").removeClass(\"is-invisible\");\n    this.$el.find(\".js-ttd-less\").removeClass(\"is-invisible\");\n  }\n  showMoreAndPrevious() {\n    this.showMore();\n    this.showPrevious();\n  }\n  hideShowMore() {\n    this.$el.find(\".js-ttd-more\").addClass(\"is-invisible\");\n    this.$el.find(\".has-more--right\").addClass(\"is-invisible\");\n  }\n  hideShowPrevious() {\n    this.$el.find(\".js-ttd-less\").addClass(\"is-invisible\");\n    this.$el.find(\".has-more--left\").addClass(\"is-invisible\");\n  }\n\n  /**\n   * Lazy load an image\n   * @param  {String} url Image url to lazy load\n   * @return {Promise} A promise that resolves when the image has loaded\n   */\n  lazyLoadImage(url) {\n    let self = this,\n        image = new Image();\n\n    this.imagePromises = this.imagePromises || {};\n\n    if (this.imagePromises[url]) {\n      return this.imagePromises[url];\n    }\n\n    let promise = new Promise((resolve, reject) => {\n      image.src = url;\n      image.onload = function() {\n        // Only cache the promise when it's successfully loading an image\n        self.imagePromises[url] = promise;\n        resolve(url);\n      };\n      image.onerror = function() {\n        reject();\n      };\n\n      if (!url) {\n        reject();\n      }\n    });\n\n    return promise;\n  }\n\n  /**\n   * Clamp a card title\n   * @return null\n   */\n  clampImageCardTitle() {\n    $.each($(\".js-image-card-title\"), function() {\n      $clamp($(this).get(0), { clamp: 2 });\n    });\n  }\n}\n\nexport default ThingsToDo;\n"
  },
  {
    "__docId__": 484,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "ThingsToDo",
    "memberof": "src/components/things_to_do/things_to_do.js",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/things_to_do/things_to_do.js",
    "importStyle": "ThingsToDo",
    "description": null,
    "lineNumber": 7,
    "undocument": true,
    "interface": false,
    "extends": [
      "src/core/component~Component"
    ]
  },
  {
    "__docId__": 485,
    "kind": "get",
    "static": false,
    "variation": null,
    "name": "title",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#title",
    "access": null,
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "type": {
      "types": [
        "string"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 486,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#initialize",
    "access": null,
    "description": null,
    "lineNumber": 11,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 487,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "currentIndex",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#currentIndex",
    "access": null,
    "description": null,
    "lineNumber": 12,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 488,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "options",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#options",
    "access": null,
    "description": null,
    "lineNumber": 14,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 489,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "events",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#events",
    "access": null,
    "description": null,
    "lineNumber": 18,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 490,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getCurrentIndex",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#getCurrentIndex",
    "access": null,
    "description": null,
    "lineNumber": 30,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 491,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "fetchCards",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#fetchCards",
    "access": null,
    "description": null,
    "lineNumber": 38,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 492,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "nukeIt",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#nukeIt",
    "access": null,
    "description": null,
    "lineNumber": 44,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 493,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "cardsFetched",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#cardsFetched",
    "access": null,
    "description": null,
    "lineNumber": 48,
    "undocument": true,
    "params": [
      {
        "name": "cards",
        "types": [
          "*"
        ]
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 494,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "cards",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#cards",
    "access": null,
    "description": null,
    "lineNumber": 53,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 495,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "template",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#template",
    "access": null,
    "description": null,
    "lineNumber": 65,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 496,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "addNavigationButtons",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#addNavigationButtons",
    "access": null,
    "description": null,
    "lineNumber": 70,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 497,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "nextCards",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#nextCards",
    "access": null,
    "description": "Get the next 4 cards to render",
    "lineNumber": 93,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "Array"
      ],
      "spread": false,
      "description": "An array of rendered templates"
    },
    "generator": false
  },
  {
    "__docId__": 498,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "currentIndex",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#currentIndex",
    "access": null,
    "description": null,
    "lineNumber": 95,
    "undocument": true,
    "type": {
      "types": [
        "number"
      ]
    }
  },
  {
    "__docId__": 499,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "currentIndex",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#currentIndex",
    "access": null,
    "description": null,
    "lineNumber": 97,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 500,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "render",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#render",
    "access": null,
    "description": null,
    "lineNumber": 110,
    "undocument": true,
    "params": [
      {
        "name": "cards",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 501,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "loadImages",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#loadImages",
    "access": null,
    "description": null,
    "lineNumber": 116,
    "undocument": true,
    "params": [
      {
        "name": "images",
        "types": [
          "*"
        ]
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 502,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "makeNextList",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#makeNextList",
    "access": null,
    "description": null,
    "lineNumber": 138,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 503,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "animate",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#animate",
    "access": null,
    "description": null,
    "lineNumber": 150,
    "undocument": true,
    "params": [
      {
        "name": "reverse",
        "optional": true,
        "types": [
          "boolean"
        ],
        "defaultRaw": false,
        "defaultValue": "false"
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 504,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "animating",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#animating",
    "access": null,
    "description": null,
    "lineNumber": 162,
    "undocument": true,
    "type": {
      "types": [
        "boolean"
      ]
    }
  },
  {
    "__docId__": 505,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "animating",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#animating",
    "access": null,
    "description": null,
    "lineNumber": 182,
    "undocument": true,
    "type": {
      "types": [
        "boolean"
      ]
    }
  },
  {
    "__docId__": 506,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "loadMore",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#loadMore",
    "access": null,
    "description": "Load more top things to do. Callback from click on load more button.",
    "lineNumber": 190,
    "params": [
      {
        "nullable": null,
        "types": [
          "jQuery.Event"
        ],
        "spread": false,
        "optional": false,
        "name": "e",
        "description": "The DOM event"
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 507,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "currentIndex",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#currentIndex",
    "access": null,
    "description": null,
    "lineNumber": 197,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 508,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "loadPrevious",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#loadPrevious",
    "access": null,
    "description": null,
    "lineNumber": 207,
    "undocument": true,
    "params": [
      {
        "name": "e",
        "types": [
          "*"
        ]
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 509,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "currentIndex",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#currentIndex",
    "access": null,
    "description": null,
    "lineNumber": 214,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 510,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "showMore",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#showMore",
    "access": null,
    "description": null,
    "lineNumber": 223,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 511,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "showPrevious",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#showPrevious",
    "access": null,
    "description": null,
    "lineNumber": 227,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 512,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "showMoreAndPrevious",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#showMoreAndPrevious",
    "access": null,
    "description": null,
    "lineNumber": 231,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 513,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "hideShowMore",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#hideShowMore",
    "access": null,
    "description": null,
    "lineNumber": 235,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 514,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "hideShowPrevious",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#hideShowPrevious",
    "access": null,
    "description": null,
    "lineNumber": 239,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 515,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "lazyLoadImage",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#lazyLoadImage",
    "access": null,
    "description": "Lazy load an image",
    "lineNumber": 249,
    "params": [
      {
        "nullable": null,
        "types": [
          "String"
        ],
        "spread": false,
        "optional": false,
        "name": "url",
        "description": "Image url to lazy load"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "Promise"
      ],
      "spread": false,
      "description": "A promise that resolves when the image has loaded"
    },
    "generator": false
  },
  {
    "__docId__": 516,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "imagePromises",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#imagePromises",
    "access": null,
    "description": null,
    "lineNumber": 253,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 517,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "clampImageCardTitle",
    "memberof": "src/components/things_to_do/things_to_do.js~ThingsToDo",
    "longname": "src/components/things_to_do/things_to_do.js~ThingsToDo#clampImageCardTitle",
    "access": null,
    "description": "Clamp a card title",
    "lineNumber": 282,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "*"
      ],
      "spread": false,
      "description": "null"
    },
    "generator": false
  },
  {
    "__docId__": 518,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "thingsToDo",
    "memberof": "src/components/things_to_do/things_to_do.js",
    "longname": "src/components/things_to_do/things_to_do.js~thingsToDo",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/things_to_do/things_to_do.js",
    "importStyle": "thingsToDo",
    "description": null,
    "lineNumber": 289,
    "undocument": true,
    "type": {
      "types": [
        "src/components/things_to_do/things_to_do.js~ThingsToDo"
      ]
    }
  },
  {
    "__docId__": 519,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/tooltip/main.js",
    "memberof": null,
    "longname": "src/components/tooltip/main.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "require(\"./_tooltip.scss\");\nimport Tooltip from \"./tooltip\";\n\nexport default Tooltip;\n"
  },
  {
    "__docId__": 520,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/tooltip/tooltip.js",
    "memberof": null,
    "longname": "src/components/tooltip/tooltip.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../core/bane\";\n\nclass Tooltip extends Component {\n  initialize() {\n    this.events = {\n      mouseenter: \"_enter\",\n      mouseleave: \"_leave\"\n    };\n\n    this.template = require(\"./_tooltip.html.hbs\");\n    this.render();\n  }\n  render() {\n    this.$el.addClass(\"tooltip is-hidden\")\n      .prepend(this.template());\n\n    return this;\n  }\n  toggle(state) {\n    if (state === \"close\"){\n      this.timer = setTimeout(() => {\n        this.$el.addClass(\"is-hidden\");\n      }, 200);\n    } else {\n      this.$el.removeClass(\"is-hidden\");\n    }\n  }\n  _enter() {\n    clearTimeout(this.timer);\n  }\n  _leave() {\n    this.toggle(\"close\");\n  }\n}\nexport default Tooltip;\n"
  },
  {
    "__docId__": 521,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "Tooltip",
    "memberof": "src/components/tooltip/tooltip.js",
    "longname": "src/components/tooltip/tooltip.js~Tooltip",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/tooltip/tooltip.js",
    "importStyle": "Tooltip",
    "description": null,
    "lineNumber": 3,
    "undocument": true,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 522,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/tooltip/tooltip.js~Tooltip",
    "longname": "src/components/tooltip/tooltip.js~Tooltip#initialize",
    "access": null,
    "description": null,
    "lineNumber": 4,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 523,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "events",
    "memberof": "src/components/tooltip/tooltip.js~Tooltip",
    "longname": "src/components/tooltip/tooltip.js~Tooltip#events",
    "access": null,
    "description": null,
    "lineNumber": 5,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 524,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "template",
    "memberof": "src/components/tooltip/tooltip.js~Tooltip",
    "longname": "src/components/tooltip/tooltip.js~Tooltip#template",
    "access": null,
    "description": null,
    "lineNumber": 10,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 525,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "render",
    "memberof": "src/components/tooltip/tooltip.js~Tooltip",
    "longname": "src/components/tooltip/tooltip.js~Tooltip#render",
    "access": null,
    "description": null,
    "lineNumber": 13,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 526,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "toggle",
    "memberof": "src/components/tooltip/tooltip.js~Tooltip",
    "longname": "src/components/tooltip/tooltip.js~Tooltip#toggle",
    "access": null,
    "description": null,
    "lineNumber": 19,
    "undocument": true,
    "params": [
      {
        "name": "state",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 527,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "timer",
    "memberof": "src/components/tooltip/tooltip.js~Tooltip",
    "longname": "src/components/tooltip/tooltip.js~Tooltip#timer",
    "access": null,
    "description": null,
    "lineNumber": 21,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 528,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_enter",
    "memberof": "src/components/tooltip/tooltip.js~Tooltip",
    "longname": "src/components/tooltip/tooltip.js~Tooltip#_enter",
    "access": null,
    "description": null,
    "lineNumber": 28,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 529,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_leave",
    "memberof": "src/components/tooltip/tooltip.js~Tooltip",
    "longname": "src/components/tooltip/tooltip.js~Tooltip#_leave",
    "access": null,
    "description": null,
    "lineNumber": 31,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 530,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "tooltip",
    "memberof": "src/components/tooltip/tooltip.js",
    "longname": "src/components/tooltip/tooltip.js~tooltip",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/tooltip/tooltip.js",
    "importStyle": "tooltip",
    "description": null,
    "lineNumber": 35,
    "undocument": true,
    "type": {
      "types": [
        "src/components/tooltip/tooltip.js~Tooltip"
      ]
    }
  },
  {
    "__docId__": 531,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/top_places/index.js",
    "memberof": null,
    "longname": "src/components/top_places/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import TopPlaces from \"./top_places_component\";\n\nrequire(\"./_top_places.scss\");\n\nexport default TopPlaces;\n"
  },
  {
    "__docId__": 532,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/top_places/top_places_component.js",
    "memberof": null,
    "longname": "src/components/top_places/top_places_component.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../core/bane\";\nimport waitForTimeout from \"../../core/utils/waitForTransition\";\nimport Overlay from \"../overlay\";\n\nclass TopPlaces extends Component {\n  initialize() {\n    this.$html = $(\"html\");\n    this.$body = $(\"body\");\n\n    // Remove from dom\n    this.$el.detach();\n\n    // New overlay instance\n    this.overlay = new Overlay();\n\n    // Events\n    this.$body.on(\"click\", \".js-top-places\", this.show.bind(this));\n    this.$body.on(\"keyup\", this.onKeyup.bind(this));\n    this.$el.on(\"click\", \"[class*='__close']\", this.hide.bind(this));\n    this.listenTo(this.overlay, \"click\", this.hide);\n  }\n\n  toggle() {\n    if(this.isOpen){\n      this.hide();\n    } else {\n      this.show();\n    }\n  }\n\n  show() {\n    if(this.isOpen) {\n      return Promise.all([]);\n    }\n\n    if(this.$el.parent().length === 0){\n      this.$el.appendTo(document.body);\n    }\n\n    this.overlay.show();\n\n    // wait a few ticks so transition triggers\n    setTimeout(() => {\n      this.$el.addClass(\"top_places--visible\");\n    }, 10);\n\n    this.isOpen = true;\n  }\n\n  hide() {\n    if(!this.isOpen) {\n      return Promise.all([]);\n    }\n\n    this.isOpen = false;\n\n    this.overlay.hide();\n\n    this.$el.removeClass(\"top_places--visible\");\n\n    return waitForTimeout(this.$el)\n      .then(() => {\n        this.$el.detach();\n      });\n  }\n\n  onKeyup(e){\n    // ESC\n    if(e.keyCode === 27) {\n      this.hide();\n    }\n  }\n}\n\nexport default TopPlaces;\n"
  },
  {
    "__docId__": 533,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "TopPlaces",
    "memberof": "src/components/top_places/top_places_component.js",
    "longname": "src/components/top_places/top_places_component.js~TopPlaces",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/top_places/top_places_component.js",
    "importStyle": "TopPlaces",
    "description": null,
    "lineNumber": 5,
    "undocument": true,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 534,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/top_places/top_places_component.js~TopPlaces",
    "longname": "src/components/top_places/top_places_component.js~TopPlaces#initialize",
    "access": null,
    "description": null,
    "lineNumber": 6,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 535,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "$html",
    "memberof": "src/components/top_places/top_places_component.js~TopPlaces",
    "longname": "src/components/top_places/top_places_component.js~TopPlaces#$html",
    "access": null,
    "description": null,
    "lineNumber": 7,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 536,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "$body",
    "memberof": "src/components/top_places/top_places_component.js~TopPlaces",
    "longname": "src/components/top_places/top_places_component.js~TopPlaces#$body",
    "access": null,
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 537,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "overlay",
    "memberof": "src/components/top_places/top_places_component.js~TopPlaces",
    "longname": "src/components/top_places/top_places_component.js~TopPlaces#overlay",
    "access": null,
    "description": null,
    "lineNumber": 14,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 538,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "toggle",
    "memberof": "src/components/top_places/top_places_component.js~TopPlaces",
    "longname": "src/components/top_places/top_places_component.js~TopPlaces#toggle",
    "access": null,
    "description": null,
    "lineNumber": 23,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 539,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "show",
    "memberof": "src/components/top_places/top_places_component.js~TopPlaces",
    "longname": "src/components/top_places/top_places_component.js~TopPlaces#show",
    "access": null,
    "description": null,
    "lineNumber": 31,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 540,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "isOpen",
    "memberof": "src/components/top_places/top_places_component.js~TopPlaces",
    "longname": "src/components/top_places/top_places_component.js~TopPlaces#isOpen",
    "access": null,
    "description": null,
    "lineNumber": 47,
    "undocument": true,
    "type": {
      "types": [
        "boolean"
      ]
    }
  },
  {
    "__docId__": 541,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "hide",
    "memberof": "src/components/top_places/top_places_component.js~TopPlaces",
    "longname": "src/components/top_places/top_places_component.js~TopPlaces#hide",
    "access": null,
    "description": null,
    "lineNumber": 50,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 542,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "isOpen",
    "memberof": "src/components/top_places/top_places_component.js~TopPlaces",
    "longname": "src/components/top_places/top_places_component.js~TopPlaces#isOpen",
    "access": null,
    "description": null,
    "lineNumber": 55,
    "undocument": true,
    "type": {
      "types": [
        "boolean"
      ]
    }
  },
  {
    "__docId__": 543,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "onKeyup",
    "memberof": "src/components/top_places/top_places_component.js~TopPlaces",
    "longname": "src/components/top_places/top_places_component.js~TopPlaces#onKeyup",
    "access": null,
    "description": null,
    "lineNumber": 67,
    "undocument": true,
    "params": [
      {
        "name": "e",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 544,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "topPlaces",
    "memberof": "src/components/top_places/top_places_component.js",
    "longname": "src/components/top_places/top_places_component.js~topPlaces",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/top_places/top_places_component.js",
    "importStyle": "topPlaces",
    "description": null,
    "lineNumber": 75,
    "undocument": true,
    "type": {
      "types": [
        "src/components/top_places/top_places_component.js~TopPlaces"
      ]
    }
  },
  {
    "__docId__": 545,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/tours/index.js",
    "memberof": null,
    "longname": "src/components/tours/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../core/bane\";\nimport $clamp from \"clamp-js/clamp.js\";\n\nrequire(\"./_tours.scss\");\n\nclass ToursComponent extends Component {\n  initialize(options) {\n    if (this.$el[0]) {\n      this.clampAt = options.clampAt || 3;\n      this.blurbs = this.$el.find(\".tour__description__blurb\");\n      this.mobileBreak = options.mobileBreak || 518;\n      this.headingHeight = options.headingHeight || 18; // lovely magic numbers o_O\n      this.nativeSupport = typeof this.$el[0].style.webkitLineClamp !== \"undefined\";\n\n      if (!$(\"html\").hasClass(\"ie9\")) {\n        this._clampText();\n\n        $(window).on(\"resize\", () => {\n          this._clampText();\n        });\n      }\n    }\n  }\n  _clampText() {\n    this.blurbs.each((index, blurb) => {\n      let heading = $(blurb).prev(),\n          headingEl = heading[0],\n          headingLines = Math.floor(heading.height() / this.headingHeight),\n          blurbClamp = this.clampAt - headingLines + 1,\n          headingClamp = 3;\n\n      if (headingLines >= 3) {\n        blurbClamp = this.nativeSupport ? 1 : 2;\n        $clamp(headingEl, { clamp: headingClamp });\n        $clamp(blurb, { clamp: blurbClamp });\n      } else {\n        if (!this.nativeSupport) {\n          blurbClamp++;\n        }\n\n        $clamp(blurb, { clamp: blurbClamp });\n      }\n\n    });\n  }\n}\n\nexport default ToursComponent;\n"
  },
  {
    "__docId__": 546,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "ToursComponent",
    "memberof": "src/components/tours/index.js",
    "longname": "src/components/tours/index.js~ToursComponent",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/tours/index.js",
    "importStyle": "ToursComponent",
    "description": null,
    "lineNumber": 6,
    "undocument": true,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 547,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/tours/index.js~ToursComponent",
    "longname": "src/components/tours/index.js~ToursComponent#initialize",
    "access": null,
    "description": null,
    "lineNumber": 7,
    "undocument": true,
    "params": [
      {
        "name": "options",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 548,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "clampAt",
    "memberof": "src/components/tours/index.js~ToursComponent",
    "longname": "src/components/tours/index.js~ToursComponent#clampAt",
    "access": null,
    "description": null,
    "lineNumber": 9,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 549,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "blurbs",
    "memberof": "src/components/tours/index.js~ToursComponent",
    "longname": "src/components/tours/index.js~ToursComponent#blurbs",
    "access": null,
    "description": null,
    "lineNumber": 10,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 550,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "mobileBreak",
    "memberof": "src/components/tours/index.js~ToursComponent",
    "longname": "src/components/tours/index.js~ToursComponent#mobileBreak",
    "access": null,
    "description": null,
    "lineNumber": 11,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 551,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "headingHeight",
    "memberof": "src/components/tours/index.js~ToursComponent",
    "longname": "src/components/tours/index.js~ToursComponent#headingHeight",
    "access": null,
    "description": null,
    "lineNumber": 12,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 552,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "nativeSupport",
    "memberof": "src/components/tours/index.js~ToursComponent",
    "longname": "src/components/tours/index.js~ToursComponent#nativeSupport",
    "access": null,
    "description": null,
    "lineNumber": 13,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 553,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_clampText",
    "memberof": "src/components/tours/index.js~ToursComponent",
    "longname": "src/components/tours/index.js~ToursComponent#_clampText",
    "access": null,
    "description": null,
    "lineNumber": 24,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 554,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "toursComponent",
    "memberof": "src/components/tours/index.js",
    "longname": "src/components/tours/index.js~toursComponent",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/tours/index.js",
    "importStyle": "toursComponent",
    "description": null,
    "lineNumber": 48,
    "undocument": true,
    "type": {
      "types": [
        "src/components/tours/index.js~ToursComponent"
      ]
    }
  },
  {
    "__docId__": 555,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/usabilla/index.js",
    "memberof": null,
    "longname": "src/components/usabilla/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import MobileUtil from \"../../core/mobile_util\";\nimport CookieUtil from \"../../core/cookie_util\";\n\n/*eslint-disable */\nclass Usabilla {\n  serveMobileOrDestop() {\n    let usabillaLiveScript = \"\";\n    this.setupScript();\n\n    if(MobileUtil.isMobile()){\n      usabillaLiveScript = \"cd92fa18ad96\";\n    } else{\n      usabillaLiveScript = \"fcbe92690840\";\n    }\n    window.usabilla_live = lightningjs.require(\"usabilla_live\", `//w.usabilla.com/${usabillaLiveScript}.js`);\n  }\n  setupScript() {\n    \n    window.lightningjs||function(c){function g(b,d){d&&(d+=(/\\?/.test(d)?\"&\":\"?\")+\"lv=1\");c[b]||function(){var i=window,h=document,j=b,g=h.location.protocol,l=\"load\",k=0;(function(){function b(){a.P(l);a.w=1;c[j](\"_load\")}c[j]=function(){function m(){m.id=e;return c[j].apply(m,arguments)}var b,e=++k;b=this&&this!=i?this.id||0:0;(a.s=a.s||[]).push([e,b,arguments]);m.then=function(b,c,h){var d=a.fh[e]=a.fh[e]||[],j=a.eh[e]=a.eh[e]||[],f=a.ph[e]=a.ph[e]||[];b&&d.push(b);c&&j.push(c);h&&f.push(h);return m};return m};var a=c[j]._={};a.fh={};a.eh={};a.ph={};a.l=d?d.replace(/^\\/\\//,(g==\"https:\"?g:\"http:\")+\"//\"):d;a.p={0:+new Date};a.P=function(b){a.p[b]=new Date-a.p[0]};a.w&&b();i.addEventListener?i.addEventListener(l,b,!1):i.attachEvent(\"on\"+l,b);var q=function(){function b(){return[\"<head></head><\",c,' onload=\"var d=',n,\";d.getElementsByTagName('head')[0].\",d,\"(d.\",g,\"('script')).\",i,\"='\",a.l,\"'\\\"></\",c,\">\"].join(\"\")}var c=\"body\",e=h[c];if(!e)return setTimeout(q,100);a.P(1);var d=\"appendChild\",g=\"createElement\",i=\"src\",k=h[g](\"div\"),l=k[d](h[g](\"div\")),f=h[g](\"iframe\"),n=\"document\",p;k.style.display=\"none\";e.insertBefore(k,e.firstChild).id=o+\"-\"+j;f.frameBorder=\"0\";f.id=o+\"-frame-\"+j;/MSIE[ ]+6/.test(navigator.userAgent)&&(f[i]=\"javascript:false\");f.allowTransparency=\"true\";l[d](f);try{f.contentWindow[n].open()}catch(s){a.domain=h.domain,p=\"javascript:var d=\"+n+\".open();d.domain='\"+h.domain+\"';\",f[i]=p+\"void(0);\"}try{var r=f.contentWindow[n];r.write(b());r.close()}catch(t){f[i]=p+'d.write(\"'+b().replace(/\"/g,String.fromCharCode(92)+'\"')+'\");d.close();'}a.P(2)};a.l&&setTimeout(q,0)})()}();c[b].lv=\"1\";return c[b]}var o=\"lightningjs\",k=window[o]=g(o);k.require=g;k.modules=c}({});\n  }\n  setCustomVar(data){\n    window.usabilla_live(\"data\", {\n      \"custom\": {\n        \"place\": data,\n        \"session\": new CookieUtil().getCookie(\"lpUid\") || \"\"\n      }\n    });\n  }\n}\n\nexport default Usabilla;\n/*eslint-enable */\n"
  },
  {
    "__docId__": 556,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "Usabilla",
    "memberof": "src/components/usabilla/index.js",
    "longname": "src/components/usabilla/index.js~Usabilla",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/usabilla/index.js",
    "importStyle": "Usabilla",
    "description": null,
    "lineNumber": 5,
    "undocument": true,
    "interface": false
  },
  {
    "__docId__": 557,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "serveMobileOrDestop",
    "memberof": "src/components/usabilla/index.js~Usabilla",
    "longname": "src/components/usabilla/index.js~Usabilla#serveMobileOrDestop",
    "access": null,
    "description": null,
    "lineNumber": 6,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 558,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "setupScript",
    "memberof": "src/components/usabilla/index.js~Usabilla",
    "longname": "src/components/usabilla/index.js~Usabilla#setupScript",
    "access": null,
    "description": null,
    "lineNumber": 17,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 559,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "setCustomVar",
    "memberof": "src/components/usabilla/index.js~Usabilla",
    "longname": "src/components/usabilla/index.js~Usabilla#setCustomVar",
    "access": null,
    "description": null,
    "lineNumber": 21,
    "undocument": true,
    "params": [
      {
        "name": "data",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 560,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "usabilla",
    "memberof": "src/components/usabilla/index.js",
    "longname": "src/components/usabilla/index.js~usabilla",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/usabilla/index.js",
    "importStyle": "usabilla",
    "description": null,
    "lineNumber": 31,
    "undocument": true,
    "type": {
      "types": [
        "src/components/usabilla/index.js~Usabilla"
      ]
    }
  },
  {
    "__docId__": 561,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/video/brightcove.js",
    "memberof": null,
    "longname": "src/components/video/brightcove.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "/* global brightcove, BCMAPI */\n\nimport VideoPlayer from \"./video_player\";\n\nlet template = require(\"./brightcove.hbs\");\n\nclass Brightcove extends VideoPlayer {\n  get scripts() {\n    return [\n      \"https://files.brightcove.com/bc-mapi.js\",\n      \"https://sadmin.brightcove.com/js/BrightcoveExperiences.js\"\n    ];\n  }\n  initialize(options) {\n    super.initialize(options);\n\n    window.BCL = window.BCL || {};\n  }\n\n  /**\n   * Search for a video by it's Atlas ID\n   * @returns {Promise}\n   */\n  search() {\n    return new Promise((resolve) => {\n      BCMAPI.search({\n        all: `atlas_id:${window.lp.place.atlasId}`\n      });\n\n      this.searchResolver = resolve;\n    });\n  }\n  /**\n   * Pause the playing video\n   */\n  pause() {\n    // This kind of sucks, but since it's flash based I have to keep trying to pause\n    // until it actually pauses... O_o\n    if (this.isPlaying) {\n      clearTimeout(this.pauseTimer);\n      this.videoPlayer.pause(true);\n\n      super.pause();\n    } else {\n      this.pauseTimer = setTimeout(() => this.pause(), 50);\n    }\n  }\n  /**\n   * Play the video\n   */\n  play() {\n    this.calculateDimensions();\n    this.videoPlayer.play();\n\n    super.play();\n  }\n\n  /**\n   * Render the brightcove template\n   */\n  render() {\n    this.$el.html(template({\n      playerId: this.playerId\n    }));\n  }\n\n  /**\n   * Callback from the brightcove API\n   * @param id\n   */\n  onTemplateLoad(id) {\n    function calculateNewPercentage(width, height) {\n      let newPercentage = ((height / width) * 100) + \"%\";\n      document.getElementById(\"outer-container\").style.paddingBottom = newPercentage;\n    }\n\n    this.player = brightcove.api.getExperience(id || \"masthead-video-player\");\n\n    // get a reference to the video player\n    this.videoPlayer = this.player.getModule(brightcove.api.modules.APIModules.VIDEO_PLAYER);\n    this.experienceModule = this.player.getModule(brightcove.api.modules.APIModules.EXPERIENCE);\n\n    this.videoPlayer.addEventListener(brightcove.api.events.MediaEvent.PROGRESS, this.progress.bind(this));\n    this.videoPlayer.addEventListener(brightcove.api.events.MediaEvent.BEGIN, this.begin.bind(this));\n    this.videoPlayer.addEventListener(brightcove.api.events.MediaEvent.PLAY, this.playing.bind(this));\n    this.videoPlayer.addEventListener(brightcove.api.events.MediaEvent.STOP, () => this.trigger(\"stop\"));\n\n    this.videoPlayer.getCurrentRendition((renditionDTO) => {\n      if (renditionDTO) {\n        calculateNewPercentage(renditionDTO.frameWidth, renditionDTO.frameHeight);\n      } else {\n        this.videoPlayer.addEventListener(brightcove.api.events.MediaEvent.PLAY, (event) =>\n        {\n          calculateNewPercentage(event.media.renditions[0].frameWidth, event.media.renditions[0].frameHeight);\n        });\n      }\n    });\n  }\n  setup() {\n    brightcove.createExperiences();\n\n    window.BCL[\"player\" + this.playerId] = this;\n    this.onTemplateLoad = this.onTemplateLoad.bind(this);\n    this.onTemplateReady = this.onTemplateReady.bind(this);\n    this.onSearchResponse = this.onSearchResponse.bind(this);\n\n    // Media API read token\n    BCMAPI.token = \"f1kYE3jBtEUS9XJ9rxo4ijS9rAhTizk87O6v7jMZ49qWmQemLSPhbw..\";\n    // set the callback for Media API calls\n    BCMAPI.callback = `BCL.player${this.playerId}.onSearchResponse`;\n\n    window.onresize = this.calculateDimensions.bind(this);\n  }\n\n  /**\n   * Callback from the BEGIN event from the video player\n   */\n  begin() {\n    this.trigger(\"begin\");\n    this.isPlaying = true;\n  }\n  progress() {\n    this.trigger(\"progress\");\n  }\n  playing() {\n    this.trigger(\"play\");\n  }\n  calculateDimensions() {\n    let resizeWidth = document.getElementById(\"masthead-video-player\").clientWidth,\n        resizeHeight = document.getElementById(\"masthead-video-player\").clientHeight;\n\n      if (this.experienceModule.experience.type === \"html\"){\n        this.experienceModule.setSize(resizeWidth, resizeHeight);\n    }\n  }\n  onTemplateReady() {\n    this.trigger(\"ready\");\n  }\n  onSearchResponse(jsonData) {\n    let mastheadVideoIds = [];\n\n    for (let index in jsonData.items) {\n      mastheadVideoIds.push(jsonData.items[index].id);\n    }\n\n    if (mastheadVideoIds.length) {\n      this.videoPlayer.addEventListener(brightcove.api.events.MediaEvent.CHANGE, () => {\n        this.searchResolver(mastheadVideoIds);\n      });\n\n      this.videoPlayer.cueVideoByID(mastheadVideoIds[0]);\n    }\n  }\n}\n\nexport default Brightcove;\n"
  },
  {
    "__docId__": 562,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "template",
    "memberof": "src/components/video/brightcove.js",
    "longname": "src/components/video/brightcove.js~template",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/components/video/brightcove.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 5,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 563,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "Brightcove",
    "memberof": "src/components/video/brightcove.js",
    "longname": "src/components/video/brightcove.js~Brightcove",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/video/brightcove.js",
    "importStyle": "Brightcove",
    "description": null,
    "lineNumber": 7,
    "undocument": true,
    "interface": false,
    "extends": [
      "src/components/video/video_player~VideoPlayer"
    ]
  },
  {
    "__docId__": 564,
    "kind": "get",
    "static": false,
    "variation": null,
    "name": "scripts",
    "memberof": "src/components/video/brightcove.js~Brightcove",
    "longname": "src/components/video/brightcove.js~Brightcove#scripts",
    "access": null,
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 565,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/video/brightcove.js~Brightcove",
    "longname": "src/components/video/brightcove.js~Brightcove#initialize",
    "access": null,
    "description": null,
    "lineNumber": 14,
    "undocument": true,
    "params": [
      {
        "name": "options",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 566,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "search",
    "memberof": "src/components/video/brightcove.js~Brightcove",
    "longname": "src/components/video/brightcove.js~Brightcove#search",
    "access": null,
    "description": "Search for a video by it's Atlas ID",
    "lineNumber": 24,
    "unknown": [
      {
        "tagName": "@returns",
        "tagValue": "{Promise}"
      }
    ],
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "Promise"
      ],
      "spread": false,
      "description": ""
    },
    "generator": false
  },
  {
    "__docId__": 567,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "searchResolver",
    "memberof": "src/components/video/brightcove.js~Brightcove",
    "longname": "src/components/video/brightcove.js~Brightcove#searchResolver",
    "access": null,
    "description": null,
    "lineNumber": 30,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 568,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "pause",
    "memberof": "src/components/video/brightcove.js~Brightcove",
    "longname": "src/components/video/brightcove.js~Brightcove#pause",
    "access": null,
    "description": "Pause the playing video",
    "lineNumber": 36,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 569,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "pauseTimer",
    "memberof": "src/components/video/brightcove.js~Brightcove",
    "longname": "src/components/video/brightcove.js~Brightcove#pauseTimer",
    "access": null,
    "description": null,
    "lineNumber": 45,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 570,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "play",
    "memberof": "src/components/video/brightcove.js~Brightcove",
    "longname": "src/components/video/brightcove.js~Brightcove#play",
    "access": null,
    "description": "Play the video",
    "lineNumber": 51,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 571,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "render",
    "memberof": "src/components/video/brightcove.js~Brightcove",
    "longname": "src/components/video/brightcove.js~Brightcove#render",
    "access": null,
    "description": "Render the brightcove template",
    "lineNumber": 61,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 572,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "onTemplateLoad",
    "memberof": "src/components/video/brightcove.js~Brightcove",
    "longname": "src/components/video/brightcove.js~Brightcove#onTemplateLoad",
    "access": null,
    "description": "Callback from the brightcove API",
    "lineNumber": 71,
    "params": [
      {
        "nullable": null,
        "types": [
          "*"
        ],
        "spread": false,
        "optional": false,
        "name": "id",
        "description": ""
      }
    ],
    "generator": false
  },
  {
    "__docId__": 573,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "player",
    "memberof": "src/components/video/brightcove.js~Brightcove",
    "longname": "src/components/video/brightcove.js~Brightcove#player",
    "access": null,
    "description": null,
    "lineNumber": 77,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 574,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "videoPlayer",
    "memberof": "src/components/video/brightcove.js~Brightcove",
    "longname": "src/components/video/brightcove.js~Brightcove#videoPlayer",
    "access": null,
    "description": null,
    "lineNumber": 80,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 575,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "experienceModule",
    "memberof": "src/components/video/brightcove.js~Brightcove",
    "longname": "src/components/video/brightcove.js~Brightcove#experienceModule",
    "access": null,
    "description": null,
    "lineNumber": 81,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 576,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "setup",
    "memberof": "src/components/video/brightcove.js~Brightcove",
    "longname": "src/components/video/brightcove.js~Brightcove#setup",
    "access": null,
    "description": null,
    "lineNumber": 99,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 577,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "onTemplateLoad",
    "memberof": "src/components/video/brightcove.js~Brightcove",
    "longname": "src/components/video/brightcove.js~Brightcove#onTemplateLoad",
    "access": null,
    "description": null,
    "lineNumber": 103,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 578,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "onTemplateReady",
    "memberof": "src/components/video/brightcove.js~Brightcove",
    "longname": "src/components/video/brightcove.js~Brightcove#onTemplateReady",
    "access": null,
    "description": null,
    "lineNumber": 104,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 579,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "onSearchResponse",
    "memberof": "src/components/video/brightcove.js~Brightcove",
    "longname": "src/components/video/brightcove.js~Brightcove#onSearchResponse",
    "access": null,
    "description": null,
    "lineNumber": 105,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 580,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "begin",
    "memberof": "src/components/video/brightcove.js~Brightcove",
    "longname": "src/components/video/brightcove.js~Brightcove#begin",
    "access": null,
    "description": "Callback from the BEGIN event from the video player",
    "lineNumber": 118,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 581,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "isPlaying",
    "memberof": "src/components/video/brightcove.js~Brightcove",
    "longname": "src/components/video/brightcove.js~Brightcove#isPlaying",
    "access": null,
    "description": null,
    "lineNumber": 120,
    "undocument": true,
    "type": {
      "types": [
        "boolean"
      ]
    }
  },
  {
    "__docId__": 582,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "progress",
    "memberof": "src/components/video/brightcove.js~Brightcove",
    "longname": "src/components/video/brightcove.js~Brightcove#progress",
    "access": null,
    "description": null,
    "lineNumber": 122,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 583,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "playing",
    "memberof": "src/components/video/brightcove.js~Brightcove",
    "longname": "src/components/video/brightcove.js~Brightcove#playing",
    "access": null,
    "description": null,
    "lineNumber": 125,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 584,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "calculateDimensions",
    "memberof": "src/components/video/brightcove.js~Brightcove",
    "longname": "src/components/video/brightcove.js~Brightcove#calculateDimensions",
    "access": null,
    "description": null,
    "lineNumber": 128,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 585,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "onTemplateReady",
    "memberof": "src/components/video/brightcove.js~Brightcove",
    "longname": "src/components/video/brightcove.js~Brightcove#onTemplateReady",
    "access": null,
    "description": null,
    "lineNumber": 136,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 586,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "onSearchResponse",
    "memberof": "src/components/video/brightcove.js~Brightcove",
    "longname": "src/components/video/brightcove.js~Brightcove#onSearchResponse",
    "access": null,
    "description": null,
    "lineNumber": 139,
    "undocument": true,
    "params": [
      {
        "name": "jsonData",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 587,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "brightcove",
    "memberof": "src/components/video/brightcove.js",
    "longname": "src/components/video/brightcove.js~brightcove",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/video/brightcove.js",
    "importStyle": "brightcove",
    "description": null,
    "lineNumber": 156,
    "undocument": true,
    "type": {
      "types": [
        "src/components/video/brightcove.js~Brightcove"
      ]
    }
  },
  {
    "__docId__": 588,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/video/index.js",
    "memberof": null,
    "longname": "src/components/video/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import Brightcove from \"./brightcove\";\n\nrequire(\"./video_player.scss\");\n\nlet players = new Map();\nplayers.set(\"brightcove\", Brightcove);\n\nclass Video {\n  static addPlayer(element, done, type=\"brightcove\") {\n    if (typeof done === \"string\") {\n      let tmp = done;\n      done = type;\n      type = tmp;\n    }\n    this.players = this.players || new Map();\n\n    let PlayerConstructor = players.get(type),\n        player = new PlayerConstructor({\n          playerId: this.players.size + 1\n        });\n\n    this.players.set(element, player);\n\n    $(element).append(player.el);\n\n    return new Promise((resolve) => {\n      player.on(\"ready\", () => {\n        resolve(player);\n      });\n    });\n  }\n}\n\nexport default Video;\n"
  },
  {
    "__docId__": 589,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "players",
    "memberof": "src/components/video/index.js",
    "longname": "src/components/video/index.js~players",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/components/video/index.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 5,
    "undocument": true,
    "type": {
      "types": [
        "Map"
      ]
    }
  },
  {
    "__docId__": 590,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "Video",
    "memberof": "src/components/video/index.js",
    "longname": "src/components/video/index.js~Video",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/video/index.js",
    "importStyle": "Video",
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "interface": false
  },
  {
    "__docId__": 591,
    "kind": "method",
    "static": true,
    "variation": null,
    "name": "addPlayer",
    "memberof": "src/components/video/index.js~Video",
    "longname": "src/components/video/index.js~Video.addPlayer",
    "access": null,
    "description": null,
    "lineNumber": 9,
    "undocument": true,
    "params": [
      {
        "name": "element",
        "types": [
          "*"
        ]
      },
      {
        "name": "done",
        "types": [
          "*"
        ]
      },
      {
        "name": "type",
        "optional": true,
        "types": [
          "string"
        ],
        "defaultRaw": "brightcove",
        "defaultValue": "brightcove"
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 592,
    "kind": "member",
    "static": true,
    "variation": null,
    "name": "players",
    "memberof": "src/components/video/index.js~Video",
    "longname": "src/components/video/index.js~Video.players",
    "access": null,
    "description": null,
    "lineNumber": 15,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 593,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "video",
    "memberof": "src/components/video/index.js",
    "longname": "src/components/video/index.js~video",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/video/index.js",
    "importStyle": "video",
    "description": null,
    "lineNumber": 34,
    "undocument": true,
    "type": {
      "types": [
        "src/components/video/index.js~Video"
      ]
    }
  },
  {
    "__docId__": 594,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/components/video/video_player.js",
    "memberof": null,
    "longname": "src/components/video/video_player.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../core/bane\";\nimport waitForTransition from \"../../core/utils/waitForTransition\";\n\nclass VideoPlayer extends Component {\n  initialize({ playerId }) {\n    this.playerId = playerId;\n    this.render();\n    this.loadPlayer();\n\n    this.events = {\n      \"click\": \"pause\"\n    };\n\n    this.$el\n      .addClass(\"video-overlay\")\n      .css(\"zIndex\", -20);\n\n    this.$close = this.$el.find(\".video-overlay__close__button\");\n  }\n  setup() {\n    // Overwrite this\n  }\n  play() {\n    this.$el.css(\"zIndex\", 9999);\n    this.$el.addClass(\"video-overlay--playing\");\n  }\n  pause() {\n    this.$el.removeClass(\"video-overlay--playing\");\n\n    waitForTransition(this.$el).then(() => {\n      this.$el.css(\"zIndex\", -20);\n    });\n  }\n  loadPlayer() {\n    this._getScripts(this.scripts);\n  }\n  _getScripts(scripts) {\n    let promises = scripts.map((s) => $.getScript(s));\n\n    $.when(...promises).then(() => {\n      this.setup();\n    });\n  }\n}\n\nexport default VideoPlayer;\n"
  },
  {
    "__docId__": 595,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "VideoPlayer",
    "memberof": "src/components/video/video_player.js",
    "longname": "src/components/video/video_player.js~VideoPlayer",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/video/video_player.js",
    "importStyle": "VideoPlayer",
    "description": null,
    "lineNumber": 4,
    "undocument": true,
    "interface": false,
    "extends": [
      "src/core/bane~Component"
    ]
  },
  {
    "__docId__": 596,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/components/video/video_player.js~VideoPlayer",
    "longname": "src/components/video/video_player.js~VideoPlayer#initialize",
    "access": null,
    "description": null,
    "lineNumber": 5,
    "undocument": true,
    "params": [
      {
        "name": "objectPattern",
        "types": [
          "{\"playerId\": *}"
        ],
        "defaultRaw": {
          "playerId": null
        },
        "defaultValue": "{\"playerId\":null}"
      }
    ],
    "generator": false
  },
  {
    "__docId__": 597,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "playerId",
    "memberof": "src/components/video/video_player.js~VideoPlayer",
    "longname": "src/components/video/video_player.js~VideoPlayer#playerId",
    "access": null,
    "description": null,
    "lineNumber": 6,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 598,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "events",
    "memberof": "src/components/video/video_player.js~VideoPlayer",
    "longname": "src/components/video/video_player.js~VideoPlayer#events",
    "access": null,
    "description": null,
    "lineNumber": 10,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 599,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "$close",
    "memberof": "src/components/video/video_player.js~VideoPlayer",
    "longname": "src/components/video/video_player.js~VideoPlayer#$close",
    "access": null,
    "description": null,
    "lineNumber": 18,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 600,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "setup",
    "memberof": "src/components/video/video_player.js~VideoPlayer",
    "longname": "src/components/video/video_player.js~VideoPlayer#setup",
    "access": null,
    "description": null,
    "lineNumber": 20,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 601,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "play",
    "memberof": "src/components/video/video_player.js~VideoPlayer",
    "longname": "src/components/video/video_player.js~VideoPlayer#play",
    "access": null,
    "description": null,
    "lineNumber": 23,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 602,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "pause",
    "memberof": "src/components/video/video_player.js~VideoPlayer",
    "longname": "src/components/video/video_player.js~VideoPlayer#pause",
    "access": null,
    "description": null,
    "lineNumber": 27,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 603,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "loadPlayer",
    "memberof": "src/components/video/video_player.js~VideoPlayer",
    "longname": "src/components/video/video_player.js~VideoPlayer#loadPlayer",
    "access": null,
    "description": null,
    "lineNumber": 34,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 604,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_getScripts",
    "memberof": "src/components/video/video_player.js~VideoPlayer",
    "longname": "src/components/video/video_player.js~VideoPlayer#_getScripts",
    "access": null,
    "description": null,
    "lineNumber": 37,
    "undocument": true,
    "params": [
      {
        "name": "scripts",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 605,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "videoPlayer",
    "memberof": "src/components/video/video_player.js",
    "longname": "src/components/video/video_player.js~videoPlayer",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/components/video/video_player.js",
    "importStyle": "videoPlayer",
    "description": null,
    "lineNumber": 46,
    "undocument": true,
    "type": {
      "types": [
        "src/components/video/video_player.js~VideoPlayer"
      ]
    }
  },
  {
    "__docId__": 606,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/core/arkham.js",
    "memberof": null,
    "longname": "src/core/arkham.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import Events from \"./mixins/events\";\nimport assign from \"lodash/object/assign\";\n\nlet Arkham = {};\n\nassign(Arkham, Events);\n\nexport default Arkham;\n"
  },
  {
    "__docId__": 607,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "Arkham",
    "memberof": "src/core/arkham.js",
    "longname": "src/core/arkham.js~Arkham",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/core/arkham.js",
    "importStyle": "Arkham",
    "description": null,
    "lineNumber": 4,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 608,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/core/bane.js",
    "memberof": null,
    "longname": "src/core/bane.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "// TODO: Eventuall nuke this from orbit, left in place just for backwards compat\nimport Component from \"./component\";\n\nexport { Component };\n"
  },
  {
    "__docId__": 609,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/core/component.js",
    "memberof": null,
    "longname": "src/core/component.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import $ from \"jquery\";\nimport Events from \"./mixins/events\";\nimport assign from \"lodash/object/assign\";\nimport pick from \"lodash/object/pick\";\nimport bind from \"lodash/function/bind\";\nimport each from \"lodash/collection/each\";\nimport uniqueId from \"lodash/utility/uniqueId\";\nimport postal from \"postal/lib/postal.lodash\";\n\n// Can pass in options that contains these keys. They will automatically be added to `this`\nlet listOfOptions = [ \"el\", \"events\", \"container\" ];\n// Regex for the \"click .foo .bar\" in the events\nlet delegateEventSplitter = /^(\\S+)\\s*(.*)$/;\n\n/**\n* The main class that will be extended when a new componenet is created.\n* Extend this class with es6 syntax.\n* @example\n* import { Component } from \"./core/bane\"\n* \n* class ArticlesComponent extends Component {\n*   initialize() {\n*     this.events = {\n*       \"click .foo\": \"fooClicked\"\n*     }\n*   }\n*   render() {\n*     //...\n*   }\n*   fooClicked() {\n*     //...\n*   }\n* }\n*/\nexport default class Component {\n  /**\n   * Constructs a component\n   * @param  {[Options]} options An options object\n   * @param {Element} options.el An element to attatch this component to\n   * @param {Object} options.events A key value pair of events\n   */\n  constructor(options) {\n    this.cid = uniqueId(\"comp\");\n    this.channel = \"components\";\n\n    // Assign things from the passed in options to `this`\n    assign(this, pick(options, listOfOptions));\n\n    this._ensureElement();\n\n    this.initialize.apply(this, arguments);\n\n    this._delegateEvents();\n  }\n  initialize() {\n    // Overwrite the initialize method in your component for initial setup\n  }\n  /**\n   * Override this method with custom rendering logic\n   * @return {Object} Instance of the component\n   */\n  render() {\n    // Overwrite me with awesomesauce\n    return this;\n  }\n  /**\n   * This method actually builds the template and inserts the HTML into the DOM\n   * @param  {Object} data The data to pass to a template function\n   * @return {jQuery} Returns the element\n   */\n  build(data) {\n    if (this.el) {\n      return this.$el.html(typeof this.template === \"function\" ? this.template(data) : this.template);\n    }\n  }\n  /**\n   * Pull data off of a custom data attribute `data-lp-initial-abc`.\n   * This allows for server side JSON data to be embeded in the document.\n   * @example <caption>HTML</caption>\n   * <div data-lp-initial-cards=\"{{cards}}\"></div>\n   *\n   * @example <caption>JavaScript</caption>\n   * let state = this.getInitialState(); \n   * state.cards; // { cards: ... }\n   * \n   * @return {Object} The parsed JSON data\n   */\n  getInitialState() {\n    if (this.__initialState__) {\n      return this.__initialState__;\n    }\n\n    let state = this.__initialState__ = {};\n\n    each(this.$el.data(), (val, key) => {\n      if (key.indexOf(\"lpInitial\") > -1) {\n        let parsed = null;\n        // No...no... please god no... nooooooooooooo.\n        try {\n          if (val.source) {\n            let tmp = [];\n            each(val.source, function(str) {\n              tmp.push(JSON.parse(str));\n            });\n            val = tmp;\n          }\n          parsed = JSON.parse(val);\n        } catch (e) {\n          parsed = val;\n        }\n\n        let cleanKey = key.replace(\"lpInitial\", \"\").toLowerCase();\n        state[cleanKey] = parsed;\n\n        this.$el.removeAttr(`data-lp-initial-${cleanKey}`);\n      }\n    });\n\n    return state;\n  }\n  /** \n  * Allows you to delegate events to the element the component is attached to. In the `initialize` method of your\n  * component, simply add an `events` object to `this\n  * @example\n  *  initialize() {\n  *    this.events = {\n  *      \"click\": \"someMethod\",\n  *      \"click .button\": \"anotherMethod\"\n  *    }\n  *  }\n  */\n  _delegateEvents(events) {\n    if (!(events || (events = this.events))) {\n      return this;\n    }\n    this._undelegateEvents();\n\n    for (let key in events) {\n      let method = events[key];\n      if (typeof method !== \"function\") {\n        method = this[events[key]];\n      }\n      if (!method) {\n        continue;\n      }\n\n      let match = key.match(delegateEventSplitter);\n      let eventName = match[1], selector = match[2];\n      method = bind(method, this);\n      eventName += \".delegateEvents\" + this.cid;\n      if (selector === \"\") {\n        this.$el.on(eventName, method);\n      } else {\n        this.$el.on(eventName, selector, method);\n      }\n    }\n    return this;\n  }\n  /**\n   * Turns off event delegation for the component\n   * @return {Object} The component instance\n   */\n  _undelegateEvents() {\n    this.$el.off(\".delegateEvents\" + this.cid);\n    return this;\n  }\n  // Wraps `this.el` with jQuery\n  _ensureElement() {\n    if (this.el) {\n      this.$el = $(this.el);\n    } else {\n      this.$el = $(\"<div/>\");\n      this.el = this.$el[0];\n    }\n\n    this.$el.addClass(\"lp-component\")\n      .data(\"lpComponent\", this);\n  }\n  /**\n   * Publish an event on the `components` channel\n   * @param  {String} topic Topic to publish\n   * @param  {Object} data Data to publish on the channel\n   */\n  publish(topic, data) {\n    postal.channel(\"components\").publish(topic, data);\n  }\n}\n\nassign(Component.prototype, Events);\n"
  },
  {
    "__docId__": 610,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "listOfOptions",
    "memberof": "src/core/component.js",
    "longname": "src/core/component.js~listOfOptions",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/core/component.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 11,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 611,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "delegateEventSplitter",
    "memberof": "src/core/component.js",
    "longname": "src/core/component.js~delegateEventSplitter",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/core/component.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 13,
    "undocument": true,
    "type": {
      "types": [
        "object"
      ]
    }
  },
  {
    "__docId__": 612,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "Component",
    "memberof": "src/core/component.js",
    "longname": "src/core/component.js~Component",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/core/component.js",
    "importStyle": "Component",
    "description": "The main class that will be extended when a new componenet is created.\nExtend this class with es6 syntax.",
    "examples": [
      "import { Component } from \"./core/bane\"\n\nclass ArticlesComponent extends Component {\n  initialize() {\n    this.events = {\n      \"click .foo\": \"fooClicked\"\n    }\n  }\n  render() {\n    //...\n  }\n  fooClicked() {\n    //...\n  }\n}"
    ],
    "lineNumber": 35,
    "interface": false
  },
  {
    "__docId__": 613,
    "kind": "constructor",
    "static": false,
    "variation": null,
    "name": "constructor",
    "memberof": "src/core/component.js~Component",
    "longname": "src/core/component.js~Component#constructor",
    "access": null,
    "description": "Constructs a component",
    "lineNumber": 42,
    "params": [
      {
        "nullable": null,
        "types": [
          "[Options]"
        ],
        "spread": false,
        "optional": false,
        "name": "options",
        "description": "An options object"
      },
      {
        "nullable": null,
        "types": [
          "Element"
        ],
        "spread": false,
        "optional": false,
        "name": "options.el",
        "description": "An element to attatch this component to"
      },
      {
        "nullable": null,
        "types": [
          "Object"
        ],
        "spread": false,
        "optional": false,
        "name": "options.events",
        "description": "A key value pair of events"
      }
    ],
    "generator": false
  },
  {
    "__docId__": 614,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "cid",
    "memberof": "src/core/component.js~Component",
    "longname": "src/core/component.js~Component#cid",
    "access": null,
    "description": null,
    "lineNumber": 43,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 615,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "channel",
    "memberof": "src/core/component.js~Component",
    "longname": "src/core/component.js~Component#channel",
    "access": null,
    "description": null,
    "lineNumber": 44,
    "undocument": true,
    "type": {
      "types": [
        "string"
      ]
    }
  },
  {
    "__docId__": 616,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "initialize",
    "memberof": "src/core/component.js~Component",
    "longname": "src/core/component.js~Component#initialize",
    "access": null,
    "description": null,
    "lineNumber": 55,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 617,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "render",
    "memberof": "src/core/component.js~Component",
    "longname": "src/core/component.js~Component#render",
    "access": null,
    "description": "Override this method with custom rendering logic",
    "lineNumber": 62,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "Object"
      ],
      "spread": false,
      "description": "Instance of the component"
    },
    "generator": false
  },
  {
    "__docId__": 618,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "build",
    "memberof": "src/core/component.js~Component",
    "longname": "src/core/component.js~Component#build",
    "access": null,
    "description": "This method actually builds the template and inserts the HTML into the DOM",
    "lineNumber": 71,
    "params": [
      {
        "nullable": null,
        "types": [
          "Object"
        ],
        "spread": false,
        "optional": false,
        "name": "data",
        "description": "The data to pass to a template function"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "jQuery"
      ],
      "spread": false,
      "description": "Returns the element"
    },
    "generator": false
  },
  {
    "__docId__": 619,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getInitialState",
    "memberof": "src/core/component.js~Component",
    "longname": "src/core/component.js~Component#getInitialState",
    "access": null,
    "description": "Pull data off of a custom data attribute `data-lp-initial-abc`.\nThis allows for server side JSON data to be embeded in the document.",
    "examples": [
      "<caption>HTML</caption>\n<div data-lp-initial-cards=\"{{cards}}\"></div>",
      "<caption>JavaScript</caption>\nlet state = this.getInitialState(); \nstate.cards; // { cards: ... }"
    ],
    "lineNumber": 88,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "Object"
      ],
      "spread": false,
      "description": "The parsed JSON data"
    },
    "generator": false
  },
  {
    "__docId__": 620,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_delegateEvents",
    "memberof": "src/core/component.js~Component",
    "longname": "src/core/component.js~Component#_delegateEvents",
    "access": null,
    "description": "Allows you to delegate events to the element the component is attached to. In the `initialize` method of your\ncomponent, simply add an `events` object to `this",
    "examples": [
      " initialize() {\n   this.events = {\n     \"click\": \"someMethod\",\n     \"click .button\": \"anotherMethod\"\n   }\n }"
    ],
    "lineNumber": 132,
    "params": [
      {
        "name": "events",
        "types": [
          "*"
        ]
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 621,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_undelegateEvents",
    "memberof": "src/core/component.js~Component",
    "longname": "src/core/component.js~Component#_undelegateEvents",
    "access": null,
    "description": "Turns off event delegation for the component",
    "lineNumber": 163,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "Object"
      ],
      "spread": false,
      "description": "The component instance"
    },
    "generator": false
  },
  {
    "__docId__": 622,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "_ensureElement",
    "memberof": "src/core/component.js~Component",
    "longname": "src/core/component.js~Component#_ensureElement",
    "access": null,
    "description": null,
    "lineNumber": 168,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 623,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "$el",
    "memberof": "src/core/component.js~Component",
    "longname": "src/core/component.js~Component#$el",
    "access": null,
    "description": null,
    "lineNumber": 170,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 624,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "$el",
    "memberof": "src/core/component.js~Component",
    "longname": "src/core/component.js~Component#$el",
    "access": null,
    "description": null,
    "lineNumber": 172,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 625,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "el",
    "memberof": "src/core/component.js~Component",
    "longname": "src/core/component.js~Component#el",
    "access": null,
    "description": null,
    "lineNumber": 173,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 626,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "publish",
    "memberof": "src/core/component.js~Component",
    "longname": "src/core/component.js~Component#publish",
    "access": null,
    "description": "Publish an event on the `components` channel",
    "lineNumber": 184,
    "params": [
      {
        "nullable": null,
        "types": [
          "String"
        ],
        "spread": false,
        "optional": false,
        "name": "topic",
        "description": "Topic to publish"
      },
      {
        "nullable": null,
        "types": [
          "Object"
        ],
        "spread": false,
        "optional": false,
        "name": "data",
        "description": "Data to publish on the channel"
      }
    ],
    "generator": false
  },
  {
    "__docId__": 627,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/core/component_registry.js",
    "memberof": null,
    "longname": "src/core/component_registry.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"./bane\";\n\n/**\n * Register components with Rizzo\n */\nexport default class ComponentRegistry {\n  /**\n   * Constructs the ComponentRegistry\n   * @param {Logger} options.logger Instance of a logger\n   */\n  constructor({ logger } = {}) {\n    this.components = new Map();\n    this.logger = logger;\n  }\n  /**\n   * Create an instance of a given component. \n   * Will also register the component.\n   * @param  {Component} Component A constructor that extends `Component`\n   * @param  {[object]} options Options to pass to the constructor\n   * @return {object} Instance of the component\n   */\n  createInstanceOf(Component, options) {\n    // Function.name only supported in certain browsers, hence the check\n    if (Component.name && !this.components.has(Component.name)) {\n      this.register(Component);\n    }\n\n    let instances = this.components.get(Component.name);\n\n    let instance = null;\n    try {\n      instance = new Component(options);\n      \n      if (instances) {\n        instances.push(instance);\n      }\n    } catch(e) {\n      if (typeof ENV_PROD !== \"undefined\" && !ENV_PROD) {\n        throw e;\n      }\n      else {\n        this.logger.error(e);\n      }\n    }    \n    \n    return instance;\n  }\n  /**\n   * Get instances of a specific component, by either it's string or Constructor\n   * @param  {Component|String} Component Either the Constructor or the string name of a constructor\n   * @return {Array} An array of all instances of the component\n   * @example\n   * rizzo.renderComponent(MastheadComponent, {});\n   * rizzo.registry.getInstancesOf(MastheadComponent); // [MastheadComponent]\n   * \n   */\n  getInstancesOf(Component) {\n    let name = typeof Component === \"function\" ? Component.name : Component;\n    return this.components.get(name);\n  }\n  /**\n   * Add a new Component to the registry.  \n   * Must extend the `Component` constructor.  \n   * Components will only be registered in browsers that support `Function.name` since this is mostly for debugging anyways.\n   * @param  {Component} Constructor The component being added\n   */\n  register(Constructor) {\n    if (!(Constructor.prototype instanceof Component)) {\n      throw \"Can only register Components\";\n    }\n\n    this.components.set(Constructor.name, []);\n  }\n}\n"
  },
  {
    "__docId__": 628,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "ComponentRegistry",
    "memberof": "src/core/component_registry.js",
    "longname": "src/core/component_registry.js~ComponentRegistry",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/core/component_registry.js",
    "importStyle": "ComponentRegistry",
    "description": "Register components with Rizzo",
    "lineNumber": 6,
    "interface": false
  },
  {
    "__docId__": 629,
    "kind": "constructor",
    "static": false,
    "variation": null,
    "name": "constructor",
    "memberof": "src/core/component_registry.js~ComponentRegistry",
    "longname": "src/core/component_registry.js~ComponentRegistry#constructor",
    "access": null,
    "description": "Constructs the ComponentRegistry",
    "lineNumber": 11,
    "params": [
      {
        "nullable": null,
        "types": [
          "Logger"
        ],
        "spread": false,
        "optional": false,
        "name": "options.logger",
        "description": "Instance of a logger"
      }
    ],
    "generator": false
  },
  {
    "__docId__": 630,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "components",
    "memberof": "src/core/component_registry.js~ComponentRegistry",
    "longname": "src/core/component_registry.js~ComponentRegistry#components",
    "access": null,
    "description": null,
    "lineNumber": 12,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 631,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "logger",
    "memberof": "src/core/component_registry.js~ComponentRegistry",
    "longname": "src/core/component_registry.js~ComponentRegistry#logger",
    "access": null,
    "description": null,
    "lineNumber": 13,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 632,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "createInstanceOf",
    "memberof": "src/core/component_registry.js~ComponentRegistry",
    "longname": "src/core/component_registry.js~ComponentRegistry#createInstanceOf",
    "access": null,
    "description": "Create an instance of a given component. \nWill also register the component.",
    "lineNumber": 22,
    "params": [
      {
        "nullable": null,
        "types": [
          "Component"
        ],
        "spread": false,
        "optional": false,
        "name": "Component",
        "description": "A constructor that extends `Component`"
      },
      {
        "nullable": null,
        "types": [
          "[object]"
        ],
        "spread": false,
        "optional": false,
        "name": "options",
        "description": "Options to pass to the constructor"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "object"
      ],
      "spread": false,
      "description": "Instance of the component"
    },
    "generator": false
  },
  {
    "__docId__": 633,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getInstancesOf",
    "memberof": "src/core/component_registry.js~ComponentRegistry",
    "longname": "src/core/component_registry.js~ComponentRegistry#getInstancesOf",
    "access": null,
    "description": "Get instances of a specific component, by either it's string or Constructor",
    "examples": [
      "rizzo.renderComponent(MastheadComponent, {});\nrizzo.registry.getInstancesOf(MastheadComponent); // [MastheadComponent]"
    ],
    "lineNumber": 57,
    "params": [
      {
        "nullable": null,
        "types": [
          "Component",
          "String"
        ],
        "spread": false,
        "optional": false,
        "name": "Component",
        "description": "Either the Constructor or the string name of a constructor"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "Array"
      ],
      "spread": false,
      "description": "An array of all instances of the component"
    },
    "generator": false
  },
  {
    "__docId__": 634,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "register",
    "memberof": "src/core/component_registry.js~ComponentRegistry",
    "longname": "src/core/component_registry.js~ComponentRegistry#register",
    "access": null,
    "description": "Add a new Component to the registry.  \nMust extend the `Component` constructor.  \nComponents will only be registered in browsers that support `Function.name` since this is mostly for debugging anyways.",
    "lineNumber": 67,
    "params": [
      {
        "nullable": null,
        "types": [
          "Component"
        ],
        "spread": false,
        "optional": false,
        "name": "Constructor",
        "description": "The component being added"
      }
    ],
    "generator": false
  },
  {
    "__docId__": 635,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/core/cookie_util.js",
    "memberof": null,
    "longname": "src/core/cookie_util.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "/*global escape, unescape  */\n\n/**\n * A utility for managing cookies\n */\nexport default class CookieUtil {\n  constructor({ cookies = null } = {}) {\n    this.cookies = cookies;\n  }\n  /**\n   * Retrievew a cookie by it's name\n   * @param  {String} cookieName Name of the cookie to retrieve\n   * @param  {String} format Whether or not the cookie should be parsed with JSON\n   * @return {String|Object} The cookie\n   */\n  getCookie(cookieName = \"\", format = \"\") {\n    let contents = unescape(document.cookie.replace(new RegExp(\"(?:(?:^|.*;)\\\\s*\" +\n      escape(cookieName).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") +\n      \"\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$\"), \"$1\")) || null;\n\n    return (format.toUpperCase() === \"JSON\") ? JSON.parse(contents) : contents;\n  }\n  /**\n   * Set a cookie\n   * @param {String} k Cookie name\n   * @param {String} v Cookie value      \n   * @param {[Number]} days Expiration in days\n   * @param {[String]} domain Domain of the cookie\n   * @param {[String]} path Path of the cookie\n   */\n  setCookie(k, v, days, domain, path) {\n    let exp = \"\";\n\n    if (days && (days !== 0)) {\n      exp = new Date();\n      exp.setTime(exp.getTime() + (days * 86400000));\n      exp = \";expires=\" + exp.toGMTString();\n    }\n\n    domain = domain ? (\";domain=\" + domain) : \"\";\n    path = \";path=\" + (path || \"/\");\n\n    let cookie = k + \"=\" + v + exp + domain + path;\n    \n    // Explicit test for null here because of default argument above\n    return (this.cookies !== null ? \n      (this.cookies = cookie) : \n      (document.cookie = cookie)\n    );\n  }\n}\n"
  },
  {
    "__docId__": 636,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "CookieUtil",
    "memberof": "src/core/cookie_util.js",
    "longname": "src/core/cookie_util.js~CookieUtil",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/core/cookie_util.js",
    "importStyle": "CookieUtil",
    "description": "A utility for managing cookies",
    "lineNumber": 6,
    "interface": false
  },
  {
    "__docId__": 637,
    "kind": "constructor",
    "static": false,
    "variation": null,
    "name": "constructor",
    "memberof": "src/core/cookie_util.js~CookieUtil",
    "longname": "src/core/cookie_util.js~CookieUtil#constructor",
    "access": null,
    "description": null,
    "lineNumber": 7,
    "undocument": true,
    "params": [
      {
        "name": "objectPattern",
        "optional": true,
        "types": [
          "{\"cookies\": *}"
        ],
        "defaultRaw": {},
        "defaultValue": "{}"
      }
    ],
    "generator": false
  },
  {
    "__docId__": 638,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "cookies",
    "memberof": "src/core/cookie_util.js~CookieUtil",
    "longname": "src/core/cookie_util.js~CookieUtil#cookies",
    "access": null,
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 639,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getCookie",
    "memberof": "src/core/cookie_util.js~CookieUtil",
    "longname": "src/core/cookie_util.js~CookieUtil#getCookie",
    "access": null,
    "description": "Retrievew a cookie by it's name",
    "lineNumber": 16,
    "params": [
      {
        "nullable": null,
        "types": [
          "String"
        ],
        "spread": false,
        "optional": false,
        "name": "cookieName",
        "description": "Name of the cookie to retrieve"
      },
      {
        "nullable": null,
        "types": [
          "String"
        ],
        "spread": false,
        "optional": false,
        "name": "format",
        "description": "Whether or not the cookie should be parsed with JSON"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "String",
        "Object"
      ],
      "spread": false,
      "description": "The cookie"
    },
    "generator": false
  },
  {
    "__docId__": 640,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "setCookie",
    "memberof": "src/core/cookie_util.js~CookieUtil",
    "longname": "src/core/cookie_util.js~CookieUtil#setCookie",
    "access": null,
    "description": "Set a cookie",
    "lineNumber": 31,
    "params": [
      {
        "nullable": null,
        "types": [
          "String"
        ],
        "spread": false,
        "optional": false,
        "name": "k",
        "description": "Cookie name"
      },
      {
        "nullable": null,
        "types": [
          "String"
        ],
        "spread": false,
        "optional": false,
        "name": "v",
        "description": "Cookie value"
      },
      {
        "nullable": null,
        "types": [
          "[Number]"
        ],
        "spread": false,
        "optional": false,
        "name": "days",
        "description": "Expiration in days"
      },
      {
        "nullable": null,
        "types": [
          "[String]"
        ],
        "spread": false,
        "optional": false,
        "name": "domain",
        "description": "Domain of the cookie"
      },
      {
        "nullable": null,
        "types": [
          "[String]"
        ],
        "spread": false,
        "optional": false,
        "name": "path",
        "description": "Path of the cookie"
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 641,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/core/decorators/channel.js",
    "memberof": null,
    "longname": "src/core/decorators/channel.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "/**\n * Sets up the channel for subcriptions. \n * Keep in mind that after you use it, all other subscriptions underneath will use the same channel\n * @see subscribe\n * @param  {String} channelName Channel name for the class\n * @example\n * import \"publish\" from \"path/to/core/decorators/publish\"\n * \n * class FooComponent () {\n *   @subscribe(\"foo.some.other\")\n *   @channel(\"foobar\")\n *   anotherMethod() {\n *     // ...\n *   }\n *   @subscribe(\"foo.yet.another\")\n *   anotherMethod() {\n *     // Still on the \"foobar channel\"\n *   }\n *   @subscribe(\"foo.yet.another\")\n *   @channel(\"another\")\n *   anotherMethod() {\n *     // Now we're on another channel\n *   }\n * }\n */\nexport default function channel(channelName) {\n  return function(target) {\n    target.channel = channelName;\n  };\n}\n"
  },
  {
    "__docId__": 642,
    "kind": "function",
    "static": true,
    "variation": null,
    "name": "channel",
    "memberof": "src/core/decorators/channel.js",
    "longname": "src/core/decorators/channel.js~channel",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/core/decorators/channel.js",
    "importStyle": "channel",
    "description": "Sets up the channel for subcriptions. \nKeep in mind that after you use it, all other subscriptions underneath will use the same channel",
    "examples": [
      "import \"publish\" from \"path/to/core/decorators/publish\"\n\nclass FooComponent () {\n  @subscribe(\"foo.some.other\")\n  @channel(\"foobar\")\n  anotherMethod() {\n    // ...\n  }\n  @subscribe(\"foo.yet.another\")\n  anotherMethod() {\n    // Still on the \"foobar channel\"\n  }\n  @subscribe(\"foo.yet.another\")\n  @channel(\"another\")\n  anotherMethod() {\n    // Now we're on another channel\n  }\n}"
    ],
    "see": [
      "subscribe"
    ],
    "lineNumber": 26,
    "params": [
      {
        "nullable": null,
        "types": [
          "String"
        ],
        "spread": false,
        "optional": false,
        "name": "channelName",
        "description": "Channel name for the class"
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 643,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/core/decorators/publish.js",
    "memberof": null,
    "longname": "src/core/decorators/publish.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import postal from \"postal/lib/postal.lodash\";\n\n/**\n * Decorator for publishing on an event bus (postal).\n * Whatever the decorated function returns gets published as the data.\n * Will search the class for a `channel`, or use `/` by default.\n * @function\n * @param  {String} topic Topic to publish on\n * @param  {String} channel Channel to publish on\n * @example\n * import \"publish\" from \"path/to/core/decorators/publish\"\n * \n * class FooComponent () {\n *   @publish(\"foo.some.message\")\n *   someMethod() {\n *     return {\n *       my: \"data\"\n *     };\n *   }\n *   @publish(\"foo.some.other\")\n *   anotherMethod() {\n *     // ...\n *   }\n * }\n */\nexport default function publish(topic, channel) {\n  return function(target, name, descriptor) {\n    const fn = descriptor.value;\n\n    descriptor.value = function() {\n      let value = fn.apply(this, arguments);\n      postal.channel(channel || target.channel || \"/\").publish(topic, value);\n      return value;\n    };\n  };\n}\n"
  },
  {
    "__docId__": 644,
    "kind": "function",
    "static": true,
    "variation": null,
    "name": "publish",
    "memberof": "src/core/decorators/publish.js",
    "longname": "src/core/decorators/publish.js~publish",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/core/decorators/publish.js",
    "importStyle": "publish",
    "description": "Decorator for publishing on an event bus (postal).\nWhatever the decorated function returns gets published as the data.\nWill search the class for a `channel`, or use `/` by default.",
    "examples": [
      "import \"publish\" from \"path/to/core/decorators/publish\"\n\nclass FooComponent () {\n  @publish(\"foo.some.message\")\n  someMethod() {\n    return {\n      my: \"data\"\n    };\n  }\n  @publish(\"foo.some.other\")\n  anotherMethod() {\n    // ...\n  }\n}"
    ],
    "lineNumber": 26,
    "unknown": [
      {
        "tagName": "@function",
        "tagValue": ""
      }
    ],
    "params": [
      {
        "nullable": null,
        "types": [
          "String"
        ],
        "spread": false,
        "optional": false,
        "name": "topic",
        "description": "Topic to publish on"
      },
      {
        "nullable": null,
        "types": [
          "String"
        ],
        "spread": false,
        "optional": false,
        "name": "channel",
        "description": "Channel to publish on"
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 645,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/core/decorators/subscribe.js",
    "memberof": null,
    "longname": "src/core/decorators/subscribe.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import postal from \"postal/lib/postal.lodash\";\nimport each from \"lodash/collection/each\";\n\nlet _ = { each };\n\nfunction addSubscribeMethod(target) {\n  let subscriptions;\n  if (!(subscriptions = target.constructor.subscriptions)) {\n    return;\n  }\n\n  target.subscribe = function() {\n    let subscriptionInstances = [];\n\n    _.each(subscriptions, (topic) => {\n      _.each(topic, (sub) => {\n        let subDef;\n        subscriptionInstances.push(\n          (subDef = postal.channel(sub.channel)\n          .subscribe(sub.topic, function(data, env) {\n            // Call the callback and also pass the sub definition\n            this[sub.callback].apply(this, [data, env, subDef]);\n          })\n          .context(this))\n        );\n      });\n    });\n    \n    this[\"_subscriptions\"] = subscriptionInstances;\n  };\n\n  return;\n}\n\n/**\n * Decorator for listening on an event bus (postal).  \n * Will search the class for a `channel`, or use `/` by default.  \n * **NOTE:** You have to call `this.subscribe()` in the constructor in order to have postal actually attatch the listeners correctly.\n * @function\n * @param  {String} topic Topic to listen for\n * @param  {Object} options Objects for the subscription\n * @example <caption>Default Channel</caption>\n * import publish from \"path/to/core/decorators/publish\"\n * \n * class FooComponent () {\n *   constructor() {\n *     // This is required\n *     this.subscribe();\n *   }\n *   @subscribe(\"foo.some.message\")\n *   someMethod(data, evnelope, subscription) {\n *     \n *   }\n *   @subscribe(\"foo.some.other\")\n *   anotherMethod(data, evnelope, subscription) {\n *     // ...\n *   }\n * }\n * @example <caption>Custom Channel</caption>\n * import publish from \"path/to/core/decorators/publish\"\n * \n * class FooComponent () {\n *   constructor() {\n *     // This is required\n *     this.subscribe();\n *   }\n *   @subscribe(\"foo.some.message\", \"custom\")\n *   someMethod(data, envelope, subscription) {\n *     // ...\n *   }\n * }\n * @example <caption>Channel decorator</caption>\n * import publish from \"path/to/core/decorators/publish\";\n * import channel from \"path/to/core/decorators/channel\"\n * \n * class FooComponent () {\n *   constructor() {\n *     // This is required\n *     this.subscribe();\n *   }\n *   @subscribe(\"foo.some.message\")\n *   @channel(\"custom\")\n *   someMethod(data, envelope, subscription) {\n *     // ...\n *   }\n * }\n */\nexport default function subscribe(topic, channel) {\n  return function(target, name) {\n    let ctor = target.constructor;\n    ctor.subscriptions = ctor.subscriptions || {};\n    let subs = ctor.subscriptions[topic] = ctor.subscriptions[topic] || [];\n\n    subs.push({ topic, channel: channel || target.channel || \"/\", callback: name });\n\n    if (!target.subscribe) {\n      addSubscribeMethod(target);\n    }\n  };\n}\n"
  },
  {
    "__docId__": 646,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "_",
    "memberof": "src/core/decorators/subscribe.js",
    "longname": "src/core/decorators/subscribe.js~_",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/core/decorators/subscribe.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 4,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 647,
    "kind": "function",
    "static": true,
    "variation": null,
    "name": "addSubscribeMethod",
    "memberof": "src/core/decorators/subscribe.js",
    "longname": "src/core/decorators/subscribe.js~addSubscribeMethod",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/core/decorators/subscribe.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 6,
    "undocument": true,
    "params": [
      {
        "name": "target",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 648,
    "kind": "function",
    "static": true,
    "variation": null,
    "name": "subscribe",
    "memberof": "src/core/decorators/subscribe.js",
    "longname": "src/core/decorators/subscribe.js~subscribe",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/core/decorators/subscribe.js",
    "importStyle": "subscribe",
    "description": "Decorator for listening on an event bus (postal).  \nWill search the class for a `channel`, or use `/` by default.  \n**NOTE:** You have to call `this.subscribe()` in the constructor in order to have postal actually attatch the listeners correctly.",
    "examples": [
      "<caption>Default Channel</caption>\nimport publish from \"path/to/core/decorators/publish\"\n\nclass FooComponent () {\n  constructor() {\n    // This is required\n    this.subscribe();\n  }\n  @subscribe(\"foo.some.message\")\n  someMethod(data, evnelope, subscription) {\n    \n  }\n  @subscribe(\"foo.some.other\")\n  anotherMethod(data, evnelope, subscription) {\n    // ...\n  }\n}",
      "<caption>Custom Channel</caption>\nimport publish from \"path/to/core/decorators/publish\"\n\nclass FooComponent () {\n  constructor() {\n    // This is required\n    this.subscribe();\n  }\n  @subscribe(\"foo.some.message\", \"custom\")\n  someMethod(data, envelope, subscription) {\n    // ...\n  }\n}",
      "<caption>Channel decorator</caption>\nimport publish from \"path/to/core/decorators/publish\";\nimport channel from \"path/to/core/decorators/channel\"\n\nclass FooComponent () {\n  constructor() {\n    // This is required\n    this.subscribe();\n  }\n  @subscribe(\"foo.some.message\")\n  @channel(\"custom\")\n  someMethod(data, envelope, subscription) {\n    // ...\n  }\n}"
    ],
    "lineNumber": 88,
    "unknown": [
      {
        "tagName": "@function",
        "tagValue": ""
      }
    ],
    "params": [
      {
        "nullable": null,
        "types": [
          "String"
        ],
        "spread": false,
        "optional": false,
        "name": "topic",
        "description": "Topic to listen for"
      },
      {
        "nullable": null,
        "types": [
          "Object"
        ],
        "spread": false,
        "optional": false,
        "name": "options",
        "description": "Objects for the subscription"
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 649,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/core/event_tracker.js",
    "memberof": null,
    "longname": "src/core/event_tracker.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import postal from \"postal/lib/postal.lodash\";\nimport HotelsEvents from \"../components/hotels/hotels.events\";\nimport assign from \"lodash/object/assign\";\nimport map from \"lodash/collection/map\";\n\nlet _ = {\n  assign, map\n};\n\nlet componentChannel = postal.channel(\"components\");\n\n/** \n * Track an event with our analytics library\n * @param {Object} options An object with event data\n * \n */\nlet trackEvent = function(name, details) {\n  if (window.lp.analytics.api.trackEvent) {\n    window.lp.analytics.api.trackEvent({ \n      category: name,\n      action: details\n    });\n  }\n};\n\n/**\n * Log an event with Flamsteed\n * @param  {Object|String} data An object containing data to log, or a string description of an event\n */\nlet flamsteedLog = function(description) {\n  if (window.lp.fs) {\n    window.lp.fs.log(typeof description === \"string\" ? {\n      d: description\n    } : description);\n  }\n};\n\nlet getPlace = () => {\n  return window.lp.place;\n};\n\ncomponentChannel.subscribe(HotelsEvents.SEARCH, (data) => {\n  let place = getPlace();\n\n  _.assign(data.booking, {\n    city: `${place.continentName}:${place.countryName}:${place.cityName}`\n  });\n\n  let serialized = _.map(data.booking, (val, key) => {\n    return `${key}=${val}`;\n  }).join(\"&\");\n\n  trackEvent(\"Partner Search\", `partner=booking&${serialized}`);\n});\n\ncomponentChannel.subscribe(\"ttd.loadmore\", () => {\n  flamsteedLog(\"thing to do load more clicked\");\n});\n"
  },
  {
    "__docId__": 650,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "_",
    "memberof": "src/core/event_tracker.js",
    "longname": "src/core/event_tracker.js~_",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/core/event_tracker.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 6,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 651,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "componentChannel",
    "memberof": "src/core/event_tracker.js",
    "longname": "src/core/event_tracker.js~componentChannel",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/core/event_tracker.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 10,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 652,
    "kind": "function",
    "static": true,
    "variation": null,
    "name": "trackEvent",
    "memberof": "src/core/event_tracker.js",
    "longname": "src/core/event_tracker.js~trackEvent",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/core/event_tracker.js",
    "importStyle": null,
    "description": "Track an event with our analytics library",
    "lineNumber": 17,
    "params": [
      {
        "nullable": null,
        "types": [
          "Object"
        ],
        "spread": false,
        "optional": false,
        "name": "options",
        "description": "An object with event data"
      }
    ],
    "generator": false
  },
  {
    "__docId__": 653,
    "kind": "function",
    "static": true,
    "variation": null,
    "name": "flamsteedLog",
    "memberof": "src/core/event_tracker.js",
    "longname": "src/core/event_tracker.js~flamsteedLog",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/core/event_tracker.js",
    "importStyle": null,
    "description": "Log an event with Flamsteed",
    "lineNumber": 30,
    "params": [
      {
        "nullable": null,
        "types": [
          "Object",
          "String"
        ],
        "spread": false,
        "optional": false,
        "name": "data",
        "description": "An object containing data to log, or a string description of an event"
      }
    ],
    "generator": false
  },
  {
    "__docId__": 654,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "getPlace",
    "memberof": "src/core/event_tracker.js",
    "longname": "src/core/event_tracker.js~getPlace",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/core/event_tracker.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 38,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 655,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/core/logger.js",
    "memberof": null,
    "longname": "src/core/logger.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import airbrakeJs from \"airbrake-js\";\n\nlet airbrake = new airbrakeJs({\n  projectId: 108616, \n  projectKey: \"046ae0791af77310d8cfe001786fad6f\"\n});\n\nexport default class Logger {\n  /**\n   * Log an error\n   * @param {Error|Object|String} message Either string or object containing error details\n   */\n  error(err) {\n    console.error(err);\n    \n    if (ENV_PROD) {\n      airbrake.notify(err);\n    }\n  }\n}\n"
  },
  {
    "__docId__": 656,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "airbrake",
    "memberof": "src/core/logger.js",
    "longname": "src/core/logger.js~airbrake",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/core/logger.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 3,
    "undocument": true,
    "type": {
      "types": [
        "airbrake-js~airbrakeJs"
      ]
    }
  },
  {
    "__docId__": 657,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "Logger",
    "memberof": "src/core/logger.js",
    "longname": "src/core/logger.js~Logger",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/core/logger.js",
    "importStyle": "Logger",
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "interface": false
  },
  {
    "__docId__": 658,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "error",
    "memberof": "src/core/logger.js~Logger",
    "longname": "src/core/logger.js~Logger#error",
    "access": null,
    "description": "Log an error",
    "lineNumber": 13,
    "params": [
      {
        "nullable": null,
        "types": [
          "Error",
          "Object",
          "String"
        ],
        "spread": false,
        "optional": false,
        "name": "message",
        "description": "Either string or object containing error details"
      }
    ],
    "generator": false
  },
  {
    "__docId__": 659,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/core/main.js",
    "memberof": null,
    "longname": "src/core/main.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "// Simply pull in the bane main file\nimport Bane from \"./bane\";\n\nexport default Bane;"
  },
  {
    "__docId__": 660,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/core/mixins/events.js",
    "memberof": null,
    "longname": "src/core/mixins/events.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "let each = require(\"lodash/collection/each\"),\n    once = require(\"lodash/function/once\"),\n    keys = require(\"lodash/object/keys\"),\n    isEmpty = require(\"lodash/lang/isEmpty\"),\n    uniqueId = require(\"lodash/utility/uniqueId\"),\n    slice = Array.prototype.slice;\n\n// Regular expression used to split event strings.\nlet eventSplitter = /\\s+/;\n\n// Implement fancy features of the Events API such as multiple event\n// names `\"change blur\"` and jQuery-style event maps `{change: action}`\n// in terms of the existing API.\nfunction eventsApi(obj, action, name, rest) {\n  if (!name) return true;\n\n  // Handle event maps.\n  if (typeof name === \"object\") {\n    for (let key in name) {\n      obj[action].apply(obj, [key, name[key]].concat(rest));\n    }\n    return false;\n  }\n\n  // Handle space separated event names.\n  if (eventSplitter.test(name)) {\n    let names = name.split(eventSplitter);\n    for (let i = 0, l = names.length; i < l; i++) {\n      obj[action].apply(obj, [names[i]].concat(rest));\n    }\n    return false;\n  }\n\n  return true;\n}\n\n// A difficult-to-believe, but optimized internal dispatch function for\n// triggering events. Tries to keep the usual cases speedy (most internal\n// Backbone events have 3 arguments).\nfunction triggerEvents(events, args) {\n  let ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2];\n  switch (args.length) {\n    case 0: while (++i < l) (ev = events[i]).callback.call(ev.ctx); return;\n    case 1: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1); return;\n    case 2: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2); return;\n    case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return;\n    default: while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args); return;\n  }\n}\n\nlet Events = {\n  // Bind an event to a `callback` function. Passing `\"all\"` will bind\n  // the callback to all events fired.\n  on: function(name, callback, context) {\n    if (!eventsApi(this, \"on\", name, [callback, context]) || !callback) return this;\n    this._events || (this._events = {});\n    let events = this._events[name] || (this._events[name] = []);\n    events.push({callback: callback, context: context, ctx: context || this});\n    return this;\n  },\n\n  // Bind an event to only be triggered a single time. After the first time\n  // the callback is invoked, it will be removed.\n  once: function(name, callback, context) {\n    if (!eventsApi(this, \"once\", name, [callback, context]) || !callback) return this;\n    let self = this;\n    let onced = once(function() {\n      self.off(name, once);\n      callback.apply(this, arguments);\n    });\n    onced._callback = callback;\n    return this.on(name, onced, context);\n  },\n\n  // Remove one or many callbacks. If `context` is null, removes all\n  // callbacks with that function. If `callback` is null, removes all\n  // callbacks for the event. If `name` is null, removes all bound\n  // callbacks for all events.\n  off: function(name, callback, context) {\n    let retain, ev, events, names, i, l, j, k;\n    if (!this._events || !eventsApi(this, \"off\", name, [callback, context])) return this;\n    if (!name && !callback && !context) {\n      this._events = void 0;\n      return this;\n    }\n    names = name ? [name] : keys(this._events);\n    for (i = 0, l = names.length; i < l; i++) {\n      name = names[i];\n      if (events = this._events[name]) {\n        this._events[name] = retain = [];\n        if (callback || context) {\n          for (j = 0, k = events.length; j < k; j++) {\n            ev = events[j];\n            if ((callback && callback !== ev.callback && callback !== ev.callback._callback) ||\n                (context && context !== ev.context)) {\n              retain.push(ev);\n            }\n          }\n        }\n        if (!retain.length) delete this._events[name];\n      }\n    }\n\n    return this;\n  },\n\n  // Trigger one or many events, firing all bound callbacks. Callbacks are\n  // passed the same arguments as `trigger` is, apart from the event name\n  // (unless you're listening on `\"all\"`, which will cause your callback to\n  // receive the true name of the event as the first argument).\n  trigger: function(name) {\n    if (!this._events) return this;\n    let args = slice.call(arguments, 1);\n    if (!eventsApi(this, \"trigger\", name, args)) return this;\n    let events = this._events[name];\n    let allEvents = this._events.all;\n    if (events) triggerEvents(events, args);\n    if (allEvents) triggerEvents(allEvents, arguments);\n    return this;\n  },\n\n  // Tell this object to stop listening to either specific events ... or\n  // to every object it's currently listening to.\n  stopListening: function(obj, name, callback) {\n    let listeningTo = this._listeningTo;\n    if (!listeningTo) return this;\n    let remove = !name && !callback;\n    if (!callback && typeof name === \"object\") callback = this;\n    if (obj) (listeningTo = {})[obj._listenId] = obj;\n    for (let id in listeningTo) {\n      obj = listeningTo[id];\n      obj.off(name, callback, this);\n      if (remove || isEmpty(obj._events)) delete this._listeningTo[id];\n    }\n    return this;\n  }\n};\n\nlet listenMethods = {listenTo: \"on\", listenToOnce: \"once\"};\n\n// Inversion-of-control versions of `on` and `once`. Tell *this* object to\n// listen to an event in another object ... keeping track of what it's\n// listening to.\neach(listenMethods, function(implementation, method) {\n  Events[method] = function(obj, name, callback) {\n    let listeningTo = this._listeningTo || (this._listeningTo = {});\n    let id = obj._listenId || (obj._listenId = uniqueId(\"l\"));\n    listeningTo[id] = obj;\n    if (!callback && typeof name === \"object\") callback = this;\n    obj[implementation](name, callback, this);\n    return this;\n  };\n});\n\n// Aliases for backwards compatibility.\nEvents.bind   = Events.on;\nEvents.unbind = Events.off;\n\nexport default Events;\n"
  },
  {
    "__docId__": 661,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "each",
    "memberof": "src/core/mixins/events.js",
    "longname": "src/core/mixins/events.js~each",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/core/mixins/events.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 1,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 662,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "eventSplitter",
    "memberof": "src/core/mixins/events.js",
    "longname": "src/core/mixins/events.js~eventSplitter",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/core/mixins/events.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 9,
    "undocument": true,
    "type": {
      "types": [
        "object"
      ]
    }
  },
  {
    "__docId__": 663,
    "kind": "function",
    "static": true,
    "variation": null,
    "name": "eventsApi",
    "memberof": "src/core/mixins/events.js",
    "longname": "src/core/mixins/events.js~eventsApi",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/core/mixins/events.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 14,
    "undocument": true,
    "params": [
      {
        "name": "obj",
        "types": [
          "*"
        ]
      },
      {
        "name": "action",
        "types": [
          "*"
        ]
      },
      {
        "name": "name",
        "types": [
          "*"
        ]
      },
      {
        "name": "rest",
        "types": [
          "*"
        ]
      }
    ],
    "return": {
      "types": [
        "boolean"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 664,
    "kind": "function",
    "static": true,
    "variation": null,
    "name": "triggerEvents",
    "memberof": "src/core/mixins/events.js",
    "longname": "src/core/mixins/events.js~triggerEvents",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/core/mixins/events.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 40,
    "undocument": true,
    "params": [
      {
        "name": "events",
        "types": [
          "*"
        ]
      },
      {
        "name": "args",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 665,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "listenMethods",
    "memberof": "src/core/mixins/events.js",
    "longname": "src/core/mixins/events.js~listenMethods",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/core/mixins/events.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 139,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 666,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "Events",
    "memberof": "src/core/mixins/events.js",
    "longname": "src/core/mixins/events.js~Events",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/core/mixins/events.js",
    "importStyle": "Events",
    "description": null,
    "lineNumber": 51,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 667,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/core/mobile_util.js",
    "memberof": null,
    "longname": "src/core/mobile_util.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "class MobileUtil {\n  isMobile() {\n    return this.checkUserAgent(navigator.userAgent || navigator.vendor || window.opera);\n  }\n  /** source http://detectmobilebrowsers.com **/\n  checkUserAgent(a){\n    return (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test( a.substr(0, 4)));\n  }\n}\n\nexport default new MobileUtil();\n"
  },
  {
    "__docId__": 668,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "MobileUtil",
    "memberof": "src/core/mobile_util.js",
    "longname": "src/core/mobile_util.js~MobileUtil",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/core/mobile_util.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 1,
    "pseudoExport": true,
    "undocument": true,
    "interface": false
  },
  {
    "__docId__": 669,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "isMobile",
    "memberof": "src/core/mobile_util.js~MobileUtil",
    "longname": "src/core/mobile_util.js~MobileUtil#isMobile",
    "access": null,
    "description": null,
    "lineNumber": 2,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 670,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "checkUserAgent",
    "memberof": "src/core/mobile_util.js~MobileUtil",
    "longname": "src/core/mobile_util.js~MobileUtil#checkUserAgent",
    "access": null,
    "description": "source http://detectmobilebrowsers.com *",
    "lineNumber": 6,
    "params": [
      {
        "name": "a",
        "types": [
          "*"
        ]
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 671,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "mobileUtil",
    "memberof": "src/core/mobile_util.js",
    "longname": "src/core/mobile_util.js~mobileUtil",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/core/mobile_util.js",
    "importStyle": "mobileUtil",
    "description": null,
    "lineNumber": 11,
    "undocument": true,
    "type": {
      "types": [
        "src/core/mobile_util.js~MobileUtil"
      ]
    }
  },
  {
    "__docId__": 672,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/core/perf_monitor.js",
    "memberof": null,
    "longname": "src/core/perf_monitor.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import subscribe from \"./decorators/subscribe\";\nimport channel from \"./decorators/channel\";\nimport RizzoEvents from \"./rizzo_events\";\nimport { mark, measure } from \"./utils/perf\";\n\n/**\n * Records some performance data about our component rendering.\n */\nexport default class PerfMonitor {\n  get loadCritical() {\n    return `mark_${RizzoEvents.LOAD_CRITICAL}`;\n  }\n  get loadBelow() {\n    return `mark_${RizzoEvents.LOAD_BELOW}`;\n  }\n  constructor() {\n    this.subscribe();\n  }\n  /**\n   * Listens for when our critical code is loaded and creates a perf mark\n   */\n  @subscribe(RizzoEvents.LOAD_CRITICAL)\n  @channel(\"events\")\n  loadCritical() {\n    mark(this.loadCritical);\n  }\n  /**\n   * Listens for when our below the fold code is loaded and creates a perf mark\n   */\n  @subscribe(RizzoEvents.LOAD_BELOW)\n  loadBelow() {\n    mark(this.loadBelow);\n\n    measure(`mark_critical_to_below`, this.loadCritical, this.loadBelow);\n    measure(`mark_critical`, \"domContentLoadedEventEnd\", this.loadCritical);\n  }\n}\n"
  },
  {
    "__docId__": 673,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "PerfMonitor",
    "memberof": "src/core/perf_monitor.js",
    "longname": "src/core/perf_monitor.js~PerfMonitor",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/core/perf_monitor.js",
    "importStyle": "PerfMonitor",
    "description": "Records some performance data about our component rendering.",
    "lineNumber": 9,
    "interface": false
  },
  {
    "__docId__": 674,
    "kind": "get",
    "static": false,
    "variation": null,
    "name": "loadCritical",
    "memberof": "src/core/perf_monitor.js~PerfMonitor",
    "longname": "src/core/perf_monitor.js~PerfMonitor#loadCritical",
    "access": null,
    "description": null,
    "lineNumber": 10,
    "undocument": true,
    "type": {
      "types": [
        "string"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 675,
    "kind": "get",
    "static": false,
    "variation": null,
    "name": "loadBelow",
    "memberof": "src/core/perf_monitor.js~PerfMonitor",
    "longname": "src/core/perf_monitor.js~PerfMonitor#loadBelow",
    "access": null,
    "description": null,
    "lineNumber": 13,
    "undocument": true,
    "type": {
      "types": [
        "string"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 676,
    "kind": "constructor",
    "static": false,
    "variation": null,
    "name": "constructor",
    "memberof": "src/core/perf_monitor.js~PerfMonitor",
    "longname": "src/core/perf_monitor.js~PerfMonitor#constructor",
    "access": null,
    "description": null,
    "lineNumber": 16,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 677,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "loadCritical",
    "memberof": "src/core/perf_monitor.js~PerfMonitor",
    "longname": "src/core/perf_monitor.js~PerfMonitor#loadCritical",
    "access": null,
    "description": "Listens for when our critical code is loaded and creates a perf mark",
    "lineNumber": 24,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 678,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "loadBelow",
    "memberof": "src/core/perf_monitor.js~PerfMonitor",
    "longname": "src/core/perf_monitor.js~PerfMonitor#loadBelow",
    "access": null,
    "description": "Listens for when our below the fold code is loaded and creates a perf mark",
    "lineNumber": 31,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 679,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/core/rizzo.js",
    "memberof": null,
    "longname": "src/core/rizzo.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import postal from \"postal/lib/postal.lodash\";\nimport events from \"./rizzo_events\";\n\n/**\n * Rizzo thing\n */\nexport default class Rizzo {  \n  constructor({ registry, logger, perf }) {\n    this.registry = registry;\n    this.logger = logger;\n    this.perf = perf;\n    this.events = events;\n  }\n  /**\n   * Render a component\n   * @param  {Component} Component The component to register\n   * @param  {Object} options Options to pass into instance creation\n   * @return {Object} Instance of the component\n   * @example\n   * rizzo.renderComponent(MastheadComponent, {});\n   * \n   */\n  renderComponent(Component, options = {}) {\n    if (typeof options === \"string\") {\n      options = {\n        el: options\n      };\n    }\n\n    let instance = this.registry.createInstanceOf(Component, options);\n\n    return instance;\n  }\n  /**\n   * Mark a rizzo event\n   */\n  event(name, data) {\n    postal.channel(\"events\").publish(name, data);\n  }\n}\n"
  },
  {
    "__docId__": 680,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "Rizzo",
    "memberof": "src/core/rizzo.js",
    "longname": "src/core/rizzo.js~Rizzo",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/core/rizzo.js",
    "importStyle": "Rizzo",
    "description": "Rizzo thing",
    "lineNumber": 7,
    "interface": false
  },
  {
    "__docId__": 681,
    "kind": "constructor",
    "static": false,
    "variation": null,
    "name": "constructor",
    "memberof": "src/core/rizzo.js~Rizzo",
    "longname": "src/core/rizzo.js~Rizzo#constructor",
    "access": null,
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "params": [
      {
        "name": "objectPattern",
        "types": [
          "{\"registry\": *, \"logger\": *, \"perf\": *}"
        ],
        "defaultRaw": {
          "registry": null,
          "logger": null,
          "perf": null
        },
        "defaultValue": "{\"registry\":null,\"logger\":null,\"perf\":null}"
      }
    ],
    "generator": false
  },
  {
    "__docId__": 682,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "registry",
    "memberof": "src/core/rizzo.js~Rizzo",
    "longname": "src/core/rizzo.js~Rizzo#registry",
    "access": null,
    "description": null,
    "lineNumber": 9,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 683,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "logger",
    "memberof": "src/core/rizzo.js~Rizzo",
    "longname": "src/core/rizzo.js~Rizzo#logger",
    "access": null,
    "description": null,
    "lineNumber": 10,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 684,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "perf",
    "memberof": "src/core/rizzo.js~Rizzo",
    "longname": "src/core/rizzo.js~Rizzo#perf",
    "access": null,
    "description": null,
    "lineNumber": 11,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 685,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "events",
    "memberof": "src/core/rizzo.js~Rizzo",
    "longname": "src/core/rizzo.js~Rizzo#events",
    "access": null,
    "description": null,
    "lineNumber": 12,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 686,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "renderComponent",
    "memberof": "src/core/rizzo.js~Rizzo",
    "longname": "src/core/rizzo.js~Rizzo#renderComponent",
    "access": null,
    "description": "Render a component",
    "examples": [
      "rizzo.renderComponent(MastheadComponent, {});"
    ],
    "lineNumber": 23,
    "params": [
      {
        "nullable": null,
        "types": [
          "Component"
        ],
        "spread": false,
        "optional": false,
        "name": "Component",
        "description": "The component to register"
      },
      {
        "nullable": null,
        "types": [
          "Object"
        ],
        "spread": false,
        "optional": false,
        "name": "options",
        "description": "Options to pass into instance creation"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "Object"
      ],
      "spread": false,
      "description": "Instance of the component"
    },
    "generator": false
  },
  {
    "__docId__": 687,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "event",
    "memberof": "src/core/rizzo.js~Rizzo",
    "longname": "src/core/rizzo.js~Rizzo#event",
    "access": null,
    "description": "Mark a rizzo event",
    "lineNumber": 37,
    "params": [
      {
        "name": "name",
        "types": [
          "*"
        ]
      },
      {
        "name": "data",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 688,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/core/rizzo_events.js",
    "memberof": null,
    "longname": "src/core/rizzo_events.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "/**\n * Rizzo global event names\n */\nexport default {\n  LOAD_CRITICAL: \"load.critical\",\n  LOAD_BELOW: \"load.below\"\n};\n"
  },
  {
    "__docId__": 689,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/core/shop_cookie_util.js",
    "memberof": null,
    "longname": "src/core/shop_cookie_util.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import CookieUtil from \"./cookie_util\";\n\nclass ShopCookieUtil extends CookieUtil{\n  getShopItemCount() {\n    let shopCartCookie = this.getCookie(\"shopCartCookie\", \"JSON\");\n    return (shopCartCookie && shopCartCookie.A) ?\n    shopCartCookie.A.length : null;\n  }\n}\n\nexport default ShopCookieUtil;\n"
  },
  {
    "__docId__": 690,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "ShopCookieUtil",
    "memberof": "src/core/shop_cookie_util.js",
    "longname": "src/core/shop_cookie_util.js~ShopCookieUtil",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/core/shop_cookie_util.js",
    "importStyle": "ShopCookieUtil",
    "description": null,
    "lineNumber": 3,
    "undocument": true,
    "interface": false,
    "extends": [
      "src/core/cookie_util~CookieUtil"
    ]
  },
  {
    "__docId__": 691,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getShopItemCount",
    "memberof": "src/core/shop_cookie_util.js~ShopCookieUtil",
    "longname": "src/core/shop_cookie_util.js~ShopCookieUtil#getShopItemCount",
    "access": null,
    "description": null,
    "lineNumber": 4,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 692,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "shopCookieUtil",
    "memberof": "src/core/shop_cookie_util.js",
    "longname": "src/core/shop_cookie_util.js~shopCookieUtil",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/core/shop_cookie_util.js",
    "importStyle": "shopCookieUtil",
    "description": null,
    "lineNumber": 11,
    "undocument": true,
    "type": {
      "types": [
        "src/core/shop_cookie_util.js~ShopCookieUtil"
      ]
    }
  },
  {
    "__docId__": 693,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/core/utils/detect_swipe.js",
    "memberof": null,
    "longname": "src/core/utils/detect_swipe.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "/*eslint-disable*/\n/**\n * jquery.detectSwipe v2.1.1\n * jQuery Plugin to obtain touch gestures from iPhone, iPod Touch, iPad and Android\n * http://github.com/marcandre/detect_swipe\n * Based on touchwipe by Andreas Waltl, netCU Internetagentur (http://www.netcu.de)\n */\n(function($) {\n\n  $.detectSwipe = {\n    version: '2.1.1',\n    enabled: 'ontouchstart' in document.documentElement,\n    preventDefault: true,\n    threshold: 20\n  };\n\n  var startX,\n    startY,\n    isMoving = false;\n\n  function onTouchEnd() {\n    this.removeEventListener('touchmove', onTouchMove);\n    this.removeEventListener('touchend', onTouchEnd);\n    isMoving = false;\n  }\n\n  function onTouchMove(e) {\n    if ($.detectSwipe.preventDefault) { e.preventDefault(); }\n    if(isMoving) {\n      var x = e.touches[0].pageX;\n      var y = e.touches[0].pageY;\n      var dx = startX - x;\n      var dy = startY - y;\n      var dir;\n      if(Math.abs(dx) >= $.detectSwipe.threshold) {\n        dir = dx > 0 ? 'left' : 'right'\n      }\n      else if(Math.abs(dy) >= $.detectSwipe.threshold) {\n        dir = dy > 0 ? 'down' : 'up'\n      }\n      if(dir) {\n        onTouchEnd.call(this);\n        \n        $(this).trigger('swipe', dir).trigger('swipe' + dir);\n      }\n    }\n  }\n\n  function onTouchStart(e) {\n    if (e.touches.length == 1) {\n      startX = e.touches[0].pageX;\n      startY = e.touches[0].pageY;\n      isMoving = true;\n      this.addEventListener('touchmove', onTouchMove, false);\n      this.addEventListener('touchend', onTouchEnd, false);\n    }\n  }\n\n  function setup() {\n    this.addEventListener && this.addEventListener('touchstart', onTouchStart, false);\n  }\n\n  function teardown() {\n    this.removeEventListener('touchstart', onTouchStart);\n  }\n\n  $.event.special.swipe = { setup: setup };\n\n  $.each(['left', 'up', 'down', 'right'], function () {\n    $.event.special['swipe' + this] = { setup: function(){\n      $(this).on('swipe', $.noop);\n    } };\n  });\n})(jQuery);\n/*eslint-enable*/\n"
  },
  {
    "__docId__": 694,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/core/utils/getScrollbarWidth.js",
    "memberof": null,
    "longname": "src/core/utils/getScrollbarWidth.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "let getScrollbarWidth = function(){\n  let html = document.getElementsByTagName(\"html\")[0];\n  let body = document.body;\n\n  let withScroll = body.offsetWidth;\n  let scrollWidth;\n\n  let getWidth = function(){\n    return new Promise((resolve) => {\n      setTimeout(() => {\n        html.style.overflowY = \"scroll\";\n      }, 1);\n\n      setTimeout(() => {\n        html.style.overflowY = \"hidden\";\n\n        scrollWidth = body.offsetWidth - withScroll;\n\n        resolve(scrollWidth);\n      }, 2);\n\n      setTimeout(() => {\n        html.style.overflowY = \"\";\n      }, 3);\n    });\n  };\n\n  return function(){\n    return new Promise((resolve) => {\n      withScroll = body.offsetWidth;\n\n      if(scrollWidth){\n        setTimeout(() => {\n          resolve(scrollWidth);\n        }, 1);\n      } else {\n        getWidth()\n          .then((width) => {\n            resolve(width);\n          });\n      }\n    });\n  };\n}();\n\nexport default getScrollbarWidth;\n"
  },
  {
    "__docId__": 695,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "getScrollbarWidth",
    "memberof": "src/core/utils/getScrollbarWidth.js",
    "longname": "src/core/utils/getScrollbarWidth.js~getScrollbarWidth",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/core/utils/getScrollbarWidth.js",
    "importStyle": "getScrollbarWidth",
    "description": null,
    "lineNumber": 1,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 696,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/core/utils/highlight.js",
    "memberof": null,
    "longname": "src/core/utils/highlight.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "let highlight = (node, re, nodeName, className) => {\n  if (node.nodeType === 3) {\n    let match = node.data.match(re);\n\n    if (match) {\n      let highlightElement = document.createElement(nodeName || \"span\");\n      highlightElement.className = className || \"highlight\";\n\n      let wordNode = node.splitText(match.index);\n      wordNode.splitText(match[0].length);\n\n      let wordClone = wordNode.cloneNode(true);\n      highlightElement.appendChild(wordClone);\n      wordNode.parentNode.replaceChild(highlightElement, wordNode);\n\n      return 1; //skip added node in parent\n    }\n  } else if ((node.nodeType === 1 && node.childNodes) &&\n             !/(script|style)/i.test(node.tagName) &&\n             !(node.tagName === nodeName.toUpperCase() && node.className === className)) {\n    for (let i = 0; i < node.childNodes.length; i++) {\n      i += highlight(node.childNodes[i], re, nodeName, className);\n    }\n  }\n  return 0;\n};\n\nexport default function(el, words, options) {\n  let settings = {\n    className: \"is-highlight\",\n    element: \"span\",\n    caseSensitive: false,\n    wordsOnly: false\n  };\n\n  $.extend(settings, options);\n\n  if (words.constructor === String) {\n    words = [ words ];\n  }\n\n  words = $.grep(words, function(word) {\n    return word !== \"\";\n  });\n  words = $.map(words, function(word) {\n    return word.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\n  });\n\n  if (words.length === 0) {\n    return el;\n  }\n\n  let flag = settings.caseSensitive ? \"\" : \"i\",\n      pattern = \"(\" + words.join(\"|\") + \")\";\n\n  if (settings.wordsOnly) {\n    pattern = \"\\\\b\" + pattern + \"\\\\b\";\n  }\n\n  let re = new RegExp(pattern, flag);\n\n  return $(el).each(() => highlight(el, re, settings.element, settings.className));\n}\n"
  },
  {
    "__docId__": 697,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "highlight",
    "memberof": "src/core/utils/highlight.js",
    "longname": "src/core/utils/highlight.js~highlight",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/core/utils/highlight.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 1,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 698,
    "kind": "function",
    "static": true,
    "variation": null,
    "name": "highlight",
    "memberof": "src/core/utils/highlight.js",
    "longname": "src/core/utils/highlight.js~highlight",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/core/utils/highlight.js",
    "importStyle": "highlight",
    "description": null,
    "lineNumber": 28,
    "undocument": true,
    "params": [
      {
        "name": "el",
        "types": [
          "*"
        ]
      },
      {
        "name": "words",
        "types": [
          "*"
        ]
      },
      {
        "name": "options",
        "types": [
          "*"
        ]
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 699,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/core/utils/perf.js",
    "memberof": null,
    "longname": "src/core/utils/perf.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "let mark = (name) => {\n  if (window.performance && window.performance.mark) {\n    window.performance.mark(name);\n  }\n};\n\nlet measure = (name, start, end) => {\n  if (window.performance && window.performance.measure) {\n    window.performance.measure(name, start, end);\n    let entries;\n    return (entries = window.performance.getEntriesByName(name))[entries.length - 1];\n  }\n};\n\nexport {\n  mark, measure\n};\n"
  },
  {
    "__docId__": 700,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "mark",
    "memberof": "src/core/utils/perf.js",
    "longname": "src/core/utils/perf.js~mark",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/core/utils/perf.js",
    "importStyle": "{mark}",
    "description": null,
    "lineNumber": 1,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 701,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "measure",
    "memberof": "src/core/utils/perf.js",
    "longname": "src/core/utils/perf.js~measure",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/core/utils/perf.js",
    "importStyle": "{measure}",
    "description": null,
    "lineNumber": 7,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 702,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/core/utils/preload.js",
    "memberof": null,
    "longname": "src/core/utils/preload.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "/**\n * Preload images with jQuery\n * @example\n *   <img data-preload src=\"foo.jpg\" />\n * @example\n *   <div data-preload=\"foo.jpg\" style=\"background-image: url(foo.jpg)\"></div>\n */\nclass $ImagePreloader {\n  constructor({ el }) {\n    let url = $(el).data(\"preload\") || el.src;\n\n    if (url) {\n      new Image().src = url;\n    }\n  }\n}\n\n$(\"[data-preload]\").each((i, el) => new $ImagePreloader({ el }));\n"
  },
  {
    "__docId__": 703,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "$ImagePreloader",
    "memberof": "src/core/utils/preload.js",
    "longname": "src/core/utils/preload.js~$ImagePreloader",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/core/utils/preload.js",
    "importStyle": null,
    "description": "Preload images with jQuery",
    "examples": [
      "  <img data-preload src=\"foo.jpg\" />",
      "  <div data-preload=\"foo.jpg\" style=\"background-image: url(foo.jpg)\"></div>"
    ],
    "lineNumber": 8,
    "interface": false
  },
  {
    "__docId__": 704,
    "kind": "constructor",
    "static": false,
    "variation": null,
    "name": "constructor",
    "memberof": "src/core/utils/preload.js~$ImagePreloader",
    "longname": "src/core/utils/preload.js~$ImagePreloader#constructor",
    "access": null,
    "description": null,
    "lineNumber": 9,
    "undocument": true,
    "params": [
      {
        "name": "objectPattern",
        "types": [
          "{\"el\": *}"
        ],
        "defaultRaw": {
          "el": null
        },
        "defaultValue": "{\"el\":null}"
      }
    ],
    "generator": false
  },
  {
    "__docId__": 705,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/core/utils/waitForTransition.js",
    "memberof": null,
    "longname": "src/core/utils/waitForTransition.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "const onTransitionEndEventNames = \"transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd\";\n// const onAnimationEndEventName = 'webkitAnimationEnd oanimationend msAnimationEnd animationend';\n\nlet waitForTransition = function($el, { fallbackTime = 10000 } = {}){\n  return new Promise((resolve) => {\n\n    let done = function(e){\n      /*eslint no-use-before-define:0*/\n      if(e && e.target !== $el.get(0)) {\n        return;\n      }\n\n      resolve();\n\n      $el.off(onTransitionEndEventNames, done);\n      clearTimeout(fallBackTimer);\n    };\n    let fallBackTimer = setTimeout(done, fallbackTime);\n\n    $el.on(onTransitionEndEventNames, done);\n  });\n};\n\nmodule.exports = waitForTransition;\n"
  },
  {
    "__docId__": 706,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "onTransitionEndEventNames",
    "memberof": "src/core/utils/waitForTransition.js",
    "longname": "src/core/utils/waitForTransition.js~onTransitionEndEventNames",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/core/utils/waitForTransition.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 1,
    "undocument": true,
    "type": {
      "types": [
        "string"
      ]
    }
  },
  {
    "__docId__": 707,
    "kind": "function",
    "static": true,
    "variation": null,
    "name": "waitForTransition",
    "memberof": "src/core/utils/waitForTransition.js",
    "longname": "src/core/utils/waitForTransition.js~waitForTransition",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/core/utils/waitForTransition.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 4,
    "undocument": true,
    "params": [
      {
        "name": "$el",
        "types": [
          "*"
        ]
      },
      {
        "name": "objectPattern1",
        "optional": true,
        "types": [
          "{\"fallbackTime\": *}"
        ],
        "defaultRaw": {},
        "defaultValue": "{}"
      }
    ],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 708,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/rizzo.js",
    "memberof": null,
    "longname": "src/rizzo.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import Logger from \"./core/logger\";\nimport ComponentRegistry from \"./core/component_registry\";\nimport PerfMonitor from \"./core/perf_monitor\";\nimport Rizzo from \"./core/rizzo\";\n\nlet logger = new Logger();\n\nlet rizzo = window.rizzo = new Rizzo({\n  registry: new ComponentRegistry({ logger }),\n  perf: new PerfMonitor(),\n  logger\n});\n\nexport default rizzo;\n"
  },
  {
    "__docId__": 709,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "logger",
    "memberof": "src/rizzo.js",
    "longname": "src/rizzo.js~logger",
    "access": null,
    "export": false,
    "importPath": "rizzo-next/src/rizzo.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 6,
    "undocument": true,
    "type": {
      "types": [
        "src/core/logger~Logger"
      ]
    }
  },
  {
    "__docId__": 710,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "rizzo",
    "memberof": "src/rizzo.js",
    "longname": "src/rizzo.js~rizzo",
    "access": null,
    "export": true,
    "importPath": "rizzo-next/src/rizzo.js",
    "importStyle": "rizzo",
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 712,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Infinity",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Infinity",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Infinity",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 713,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "NaN",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~NaN",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 714,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "undefined",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~undefined",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 715,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "null",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/null",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~null",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 716,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Object",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Object",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 717,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "object",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~object",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 718,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Function",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Function",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 719,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "function",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~function",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 720,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Boolean",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Boolean",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 721,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "boolean",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~boolean",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 722,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Symbol",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Symbol",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 723,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Error",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Error",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 724,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "EvalError",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/EvalError",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~EvalError",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 725,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "InternalError",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/InternalError",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~InternalError",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 726,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "RangeError",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~RangeError",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 727,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "ReferenceError",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~ReferenceError",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 728,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "SyntaxError",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~SyntaxError",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 729,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "TypeError",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~TypeError",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 730,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "URIError",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/URIError",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~URIError",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 731,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Number",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Number",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 732,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "number",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~number",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 733,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Date",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Date",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 734,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "String",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~String",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 735,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "string",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~string",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 736,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "RegExp",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~RegExp",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 737,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Array",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 738,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Int8Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int8Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Int8Array",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 739,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Uint8Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Uint8Array",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 740,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Uint8ClampedArray",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8ClampedArray",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Uint8ClampedArray",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 741,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Int16Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int16Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Int16Array",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 742,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Uint16Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint16Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Uint16Array",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 743,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Int32Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int32Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Int32Array",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 744,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Uint32Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint32Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Uint32Array",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 745,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Float32Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Float32Array",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 746,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Float64Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float64Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Float64Array",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 747,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Map",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Map",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 748,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Set",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Set",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 749,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "WeakMap",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~WeakMap",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 750,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "WeakSet",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~WeakSet",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 751,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "ArrayBuffer",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~ArrayBuffer",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 752,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "DataView",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~DataView",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 753,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "JSON",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~JSON",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 754,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Promise",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Promise",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 755,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Generator",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Generator",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Generator",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 756,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "GeneratorFunction",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/GeneratorFunction",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~GeneratorFunction",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 757,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Reflect",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Reflect",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 758,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Proxy",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Proxy",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 760,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "CanvasRenderingContext2D",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D",
    "memberof": "BuiltinExternal/WebAPIExternal.js",
    "longname": "BuiltinExternal/WebAPIExternal.js~CanvasRenderingContext2D",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 761,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "DocumentFragment",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment",
    "memberof": "BuiltinExternal/WebAPIExternal.js",
    "longname": "BuiltinExternal/WebAPIExternal.js~DocumentFragment",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 762,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Element",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/Element",
    "memberof": "BuiltinExternal/WebAPIExternal.js",
    "longname": "BuiltinExternal/WebAPIExternal.js~Element",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 763,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Event",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/Event",
    "memberof": "BuiltinExternal/WebAPIExternal.js",
    "longname": "BuiltinExternal/WebAPIExternal.js~Event",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 764,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Node",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/Node",
    "memberof": "BuiltinExternal/WebAPIExternal.js",
    "longname": "BuiltinExternal/WebAPIExternal.js~Node",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 765,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "NodeList",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/NodeList",
    "memberof": "BuiltinExternal/WebAPIExternal.js",
    "longname": "BuiltinExternal/WebAPIExternal.js~NodeList",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 766,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "XMLHttpRequest",
    "externalLink": "https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest",
    "memberof": "BuiltinExternal/WebAPIExternal.js",
    "longname": "BuiltinExternal/WebAPIExternal.js~XMLHttpRequest",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 767,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "AudioContext",
    "externalLink": "https://developer.mozilla.org/en/docs/Web/API/AudioContext",
    "memberof": "BuiltinExternal/WebAPIExternal.js",
    "longname": "BuiltinExternal/WebAPIExternal.js~AudioContext",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "__docId__": 768,
    "kind": "testFile",
    "static": true,
    "variation": null,
    "name": "spec/unit/components/articleBody.spec.js",
    "memberof": null,
    "longname": "spec/unit/components/articleBody.spec.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import ArticleBodyComponent from \"../../../src/components/hotels/hotels_widget\";\n\n"
  },
  {
    "__docId__": 769,
    "kind": "testFile",
    "static": true,
    "variation": null,
    "name": "spec/unit/components/articles.spec.js",
    "memberof": null,
    "longname": "spec/unit/components/articles.spec.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "let Injector = require(\"inject!../../../src/components/articles/\");\nlet clampCalls = 0, clampCalledWith;\nlet ArticlesComponent = Injector({\n  \"clamp-js/clamp.js\": function(el, options) {\n    ++clampCalls;\n    clampCalledWith = options;\n  },\n  \"Tabs\": function() {}\n});\nlet $ = require(\"jquery\");\nlet fixture = `\n<article class=\"article\">\n  <div class=\"article__info\">\n    <a class=\"article__info__link\" href=\"http://www.lonelyplanet.com/travel-tips-and-articles/where-and-how-to-watch-sport-like-a-local\">\n      <h2 class=\"article__info__title\">Where and how to watch sport like a local</h2>\n      <p class=\"article__info__teaser\">There are few better ways into a place’s soul than through its sports teams. Step into the febrile atmosphere of a stadium or arena mid-match and you’ll find usually relaxed locals in a state of agitation or elation, depending on the scoreline.</p>\n      <p class=\"article__info__blurb\" style=\"overflow: hidden; text-overflow: ellipsis; -webkit-box-orient: vertical; display: -webkit-box; -webkit-line-clamp: 1;\">Head to one of these sporting destinations and we promise you’ll see a side of town that’s impossible to find on the streets.</p>\n    </a>\n\n    <a class=\"article__info__author\" href=\"https://auth.lonelyplanet.com/profiles/ddabdbb0-66a8-46e0-9e17-d95b14ad38cb\">\n      \n        <img class=\"article__info__author__image\" src=\"https://auth.lonelyplanet.com/profiles/ddabdbb0-66a8-46e0-9e17-d95b14ad38cb/image\">\n      \n      <div class=\"article__info__author__creds\">\n        <div class=\"article__info__author__creds__name\">Joe Minihane</div>\n        <div class=\"article__info__author__creds__title\">Lonely Planet Writer</div>\n      </div>\n    </a>\n  </div>\n  \n    <a class=\"article__imagery\" href=\"http://www.lonelyplanet.com/travel-tips-and-articles/where-and-how-to-watch-sport-like-a-local\" tabindex=\"-1\">\n      <div class=\"article__imagery__image\" aria-label=\"Image for Where and how to watch sport like a local\" style=\"background-image: url(//images-resrc.staticlp.com/S=W748/O=75/http://www.lonelyplanet.com/travel-blog/tip-article/wordpress_uploads/2015/08/bombonera_cs.jpg)\"></div>\n    </a>\n  \n</article>\n`;\n/** @test {ArticlesComponent} */\ndescribe(\"articles component\", () => {\n  it(\"should detect mobile\", () => {\n    let el = $(\"<div />\");\n    let component = new ArticlesComponent({ el });\n\n    component.widthWindow = () => 320;\n    expect(component._detectScreen()).to.be(\"mobile\");\n    \n    component.widthWindow = () => 1024;\n\n    expect(component._detectScreen()).to.be(\"desktop\");\n  });\n\n  it(\"should clamp lines\", () => {\n    let el = $(\"<div />\").append(fixture);\n    let component = new ArticlesComponent({ el });\n\n    expect(clampCalls).to.be(1);\n    expect(clampCalledWith.clamp).to.be(6);\n\n    clampCalls = 0;\n    clampCalledWith = null;\n\n    component._findElements = () => {\n      return { titleLines: 2, teaserLines: 5, teaser: $(\"<p />\"), blurb: $(\"<p />\") };\n    };\n\n    component._clampText();\n    expect(clampCalledWith.clamp).to.be(4);\n  });\n});\n"
  },
  {
    "__docId__": 770,
    "kind": "testDescribe",
    "static": true,
    "variation": null,
    "name": "describe0",
    "testId": 0,
    "memberof": "spec/unit/components/articles.spec.js",
    "testDepth": 0,
    "longname": "spec/unit/components/articles.spec.js~describe0",
    "access": null,
    "description": "articles component",
    "lineNumber": 38,
    "unknown": [
      {
        "tagName": "@test",
        "tagValue": "{ArticlesComponent}"
      }
    ],
    "testTargets": [
      "ArticlesComponent"
    ]
  },
  {
    "__docId__": 771,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it1",
    "testId": 1,
    "memberof": "spec/unit/components/articles.spec.js~describe0",
    "testDepth": 1,
    "longname": "spec/unit/components/articles.spec.js~describe0.it1",
    "access": null,
    "description": "should detect mobile",
    "lineNumber": 39
  },
  {
    "__docId__": 772,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it2",
    "testId": 2,
    "memberof": "spec/unit/components/articles.spec.js~describe0",
    "testDepth": 1,
    "longname": "spec/unit/components/articles.spec.js~describe0.it2",
    "access": null,
    "description": "should clamp lines",
    "lineNumber": 51
  },
  {
    "__docId__": 773,
    "kind": "testFile",
    "static": true,
    "variation": null,
    "name": "spec/unit/components/header.spec.js",
    "memberof": null,
    "longname": "spec/unit/components/header.spec.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import $ from \"jquery\";\nlet Injector = require(\"inject!../../../src/components/header/header_component\");\n\nlet showSearchCalled = 0;\n\nlet SearchMock = function() {};\nSearchMock.prototype = { show: function() { ++showSearchCalled; } };\n\nlet Header = Injector({\n  \"../search\": SearchMock,\n  \"../navigation\": function() {}\n});\n\nlet headerTemplate = require(\"../../../src/components/header/header.hbs\");\n\nlet html = headerTemplate({\n  type: \"city\",\n  images: []\n});\n\n/** @test {Header} */\ndescribe(\"header\", () => {\n  it(\"should render\", () => {\n    let { isTooBig } = Header.prototype;\n    \n    // Mock this method\n    Header.prototype.isTooBig = () => true;\n    let header = new Header({ el: $(html) });\n\n    expect(header.$search.hasClass(\"header__search--fade\")).to.be.ok();\n    \n    // Cleanup\n    Header.prototype.isTooBig = isTooBig;\n  });\n\n  it(\"should show the search when clicked\", () => {\n    let $el = $(html);\n    let header = new Header({ el: $el });\n\n    $el.find(\".js-search\").eq(0).trigger(\"click\");\n\n    expect(showSearchCalled).to.be(1);\n  });\n});\n"
  },
  {
    "__docId__": 774,
    "kind": "testDescribe",
    "static": true,
    "variation": null,
    "name": "describe3",
    "testId": 3,
    "memberof": "spec/unit/components/header.spec.js",
    "testDepth": 0,
    "longname": "spec/unit/components/header.spec.js~describe3",
    "access": null,
    "description": "header",
    "lineNumber": 22,
    "unknown": [
      {
        "tagName": "@test",
        "tagValue": "{Header}"
      }
    ],
    "testTargets": [
      "Header"
    ]
  },
  {
    "__docId__": 775,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it4",
    "testId": 4,
    "memberof": "spec/unit/components/header.spec.js~describe3",
    "testDepth": 1,
    "longname": "spec/unit/components/header.spec.js~describe3.it4",
    "access": null,
    "description": "should render",
    "lineNumber": 23
  },
  {
    "__docId__": 776,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it5",
    "testId": 5,
    "memberof": "spec/unit/components/header.spec.js~describe3",
    "testDepth": 1,
    "longname": "spec/unit/components/header.spec.js~describe3.it5",
    "access": null,
    "description": "should show the search when clicked",
    "lineNumber": 36
  },
  {
    "__docId__": 777,
    "kind": "testFile",
    "static": true,
    "variation": null,
    "name": "spec/unit/components/hotels.spec.js",
    "memberof": null,
    "longname": "spec/unit/components/hotels.spec.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import HotelsWidget from \"../../../src/components/hotels/hotels_widget\";\nimport $ from \"jquery\";\n\nlet hotelsTemplate = require(\"../../../src/components/hotels/hotels.hbs\");\n\nlet html = hotelsTemplate({\n  lodgings: true\n});\n\n\n/** @test {HotelsWidget} */\ndescribe(\"hotels widget\", () => {\n  it(\"should add 1 day to a date\", () => {\n    let date = HotelsWidget.prototype.nextDate(new Date(\"January 1, 2015 00:00:00\"));\n\n    // 5 would be because January 1 was a Wednesday(4), so + 1 is Thursday(5)\n    expect(date.getDay()).to.be(5);\n  });\n\n  it(\"should change the endDate if the startDate gets changed to after the end date\", () => {\n    sinon.stub(HotelsWidget.prototype, \"updateEndDate\");\n\n    let date = HotelsWidget.prototype.changeDate(\n      new Date(\"January 5, 2015 00:00:00\"),\n      new Date(\"January 10, 2015 00:00:00\")\n    );\n\n    expect(date.toString()).to.be(new Date(\"January 11, 2015 00:00:00\").toString());\n    expect(HotelsWidget.prototype.updateEndDate.callCount).to.be(1);\n\n    HotelsWidget.prototype.updateEndDate.restore();\n  });\n\n  it(\"should create a booking\", () => {\n    // TODO: figure out why changing the date isn't reflecting\n    let widget = new HotelsWidget({ el: $(html) });\n\n    widget.$startDate.val(new Date(\"January 5, 2015 00:00:00\"));\n    widget.$endDate.val(new Date(\"January 10, 2015 00:00:00\"));\n    widget.$el.find(\"#js-guests\").val(4);\n\n    let booking = widget.searchHotels();\n    expect(booking.booking.guests).to.be(4);\n    expect(booking.booking.startDate.getMonth()).to.be(0);\n  });\n});\n"
  },
  {
    "__docId__": 778,
    "kind": "testDescribe",
    "static": true,
    "variation": null,
    "name": "describe6",
    "testId": 6,
    "memberof": "spec/unit/components/hotels.spec.js",
    "testDepth": 0,
    "longname": "spec/unit/components/hotels.spec.js~describe6",
    "access": null,
    "description": "hotels widget",
    "lineNumber": 12,
    "unknown": [
      {
        "tagName": "@test",
        "tagValue": "{HotelsWidget}"
      }
    ],
    "testTargets": [
      "HotelsWidget"
    ]
  },
  {
    "__docId__": 779,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it7",
    "testId": 7,
    "memberof": "spec/unit/components/hotels.spec.js~describe6",
    "testDepth": 1,
    "longname": "spec/unit/components/hotels.spec.js~describe6.it7",
    "access": null,
    "description": "should add 1 day to a date",
    "lineNumber": 13
  },
  {
    "__docId__": 780,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it8",
    "testId": 8,
    "memberof": "spec/unit/components/hotels.spec.js~describe6",
    "testDepth": 1,
    "longname": "spec/unit/components/hotels.spec.js~describe6.it8",
    "access": null,
    "description": "should change the endDate if the startDate gets changed to after the end date",
    "lineNumber": 20
  },
  {
    "__docId__": 781,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it9",
    "testId": 9,
    "memberof": "spec/unit/components/hotels.spec.js~describe6",
    "testDepth": 1,
    "longname": "spec/unit/components/hotels.spec.js~describe6.it9",
    "access": null,
    "description": "should create a booking",
    "lineNumber": 34
  },
  {
    "__docId__": 782,
    "kind": "testFile",
    "static": true,
    "variation": null,
    "name": "spec/unit/components/login_manager.spec.js",
    "memberof": null,
    "longname": "spec/unit/components/login_manager.spec.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import User from \"../../../src/components/login/user\";\n\nlet Injector = require(\"inject!../../../src/components/login/login_manager\");\n\nlet doneSpy = sinon.spy();\nlet failSpy = sinon.spy();\n\nlet ajaxMock = sinon.stub()\n  .returns({\n    done: doneSpy,\n    fail: failSpy\n  });\n\nlet LoginManager = Injector({\n  \"jquery\": {\n    ajax: ajaxMock\n  }\n})\n\n\ndescribe(\"login manager\", () => {\n  it(\"should be a class\", () => {\n    expect(typeof LoginManager === \"function\").to.be.ok();\n  });\n\n  it(\"should check for statuses\", () => {\n    let login = new LoginManager();\n\n    expect(ajaxMock.calledOnce).to.be.ok();\n\n    ajaxMock.reset();\n  });\n\n  it(\"should update the user's status and get notifications if the user is logged in\", () => {\n    let login = new LoginManager();\n\n    login.statusFetched({ id: 1 });\n    \n    // Called twice because of checkStatus, and getNotifications\n    expect(ajaxMock.calledTwice).to.be.ok();\n\n    ajaxMock.reset();\n  });\n\n  it(\"should update the user's status when not logged in\", () => {\n    let login = new LoginManager();\n\n    login.statusFetched({ id: null });\n\n    expect(ajaxMock.calledOnce).to.be.ok();\n\n    ajaxMock.reset();\n  });\n\n  it(\"should check for new User notifications\", () => {\n    let login = new LoginManager();\n\n    login.user = new User({});\n    login.user.messages = [{ text: \"foo\" }];\n    login.user.activities = [];\n\n    login.checkNotifications({\n      messages: [{ \"read?\": false, text: '<li class=\"bar\">bar</li>' }],\n      activities: []\n    });\n\n    expect(login.user.toJSON().messages[0].text).to.be(\"<li>bar</li>\");\n  });\n});\n"
  },
  {
    "__docId__": 783,
    "kind": "testDescribe",
    "static": true,
    "variation": null,
    "name": "describe10",
    "testId": 10,
    "memberof": "spec/unit/components/login_manager.spec.js",
    "testDepth": 0,
    "longname": "spec/unit/components/login_manager.spec.js~describe10",
    "access": null,
    "description": "login manager",
    "lineNumber": 21
  },
  {
    "__docId__": 784,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it11",
    "testId": 11,
    "memberof": "spec/unit/components/login_manager.spec.js~describe10",
    "testDepth": 1,
    "longname": "spec/unit/components/login_manager.spec.js~describe10.it11",
    "access": null,
    "description": "should be a class",
    "lineNumber": 22
  },
  {
    "__docId__": 785,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it12",
    "testId": 12,
    "memberof": "spec/unit/components/login_manager.spec.js~describe10",
    "testDepth": 1,
    "longname": "spec/unit/components/login_manager.spec.js~describe10.it12",
    "access": null,
    "description": "should check for statuses",
    "lineNumber": 26
  },
  {
    "__docId__": 786,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it13",
    "testId": 13,
    "memberof": "spec/unit/components/login_manager.spec.js~describe10",
    "testDepth": 1,
    "longname": "spec/unit/components/login_manager.spec.js~describe10.it13",
    "access": null,
    "description": "should update the user's status and get notifications if the user is logged in",
    "lineNumber": 34
  },
  {
    "__docId__": 787,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it14",
    "testId": 14,
    "memberof": "spec/unit/components/login_manager.spec.js~describe10",
    "testDepth": 1,
    "longname": "spec/unit/components/login_manager.spec.js~describe10.it14",
    "access": null,
    "description": "should update the user's status when not logged in",
    "lineNumber": 45
  },
  {
    "__docId__": 788,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it15",
    "testId": 15,
    "memberof": "spec/unit/components/login_manager.spec.js~describe10",
    "testDepth": 1,
    "longname": "spec/unit/components/login_manager.spec.js~describe10.it15",
    "access": null,
    "description": "should check for new User notifications",
    "lineNumber": 55
  },
  {
    "__docId__": 789,
    "kind": "testFile",
    "static": true,
    "variation": null,
    "name": "spec/unit/components/map.spec.js",
    "memberof": null,
    "longname": "spec/unit/components/map.spec.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "// This is gonna be a doozy\nlet Injector = require(\"inject!../../../src/components/map/map_component\");\n\nlet pushState = sinon.stub();\n\nlet MapComponent = Injector({\n  \"react\": {\n    render: function() {},\n    createElement: function() {}\n  },\n  \"./views/main.jsx\": function() {},\n  \"history\": {\n    createHistory: function() {\n      return {\n        pushState: pushState\n      }\n    }\n  }\n});\n\nlet $ = require(\"jquery\");\n\nwindow.lp = {\n  place: {\n    slug: \"/foo\"\n  }\n};\n\ndescribe(\"map component\", () => {\n  it(\"should open, close and adjust the url\", () => {\n    let map = new MapComponent();\n    \n    sinon.stub(map, \"isOnMap\")\n      .returns(false)\n\n    map.open();\n\n    expect(pushState.calledOnce).to.be.ok();\n    expect(pushState.getCall(0).args[1].indexOf(\"/map\")).to.not.be(-1);\n\n    map.close();\n\n    expect(pushState.getCall(1).args[1].indexOf(\"/map\")).to.be(-1);\n\n    pushState.reset();\n  });\n});\n"
  },
  {
    "__docId__": 790,
    "kind": "testDescribe",
    "static": true,
    "variation": null,
    "name": "describe16",
    "testId": 16,
    "memberof": "spec/unit/components/map.spec.js",
    "testDepth": 0,
    "longname": "spec/unit/components/map.spec.js~describe16",
    "access": null,
    "description": "map component",
    "lineNumber": 29
  },
  {
    "__docId__": 791,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it17",
    "testId": 17,
    "memberof": "spec/unit/components/map.spec.js~describe16",
    "testDepth": 1,
    "longname": "spec/unit/components/map.spec.js~describe16.it17",
    "access": null,
    "description": "should open, close and adjust the url",
    "lineNumber": 30
  },
  {
    "__docId__": 792,
    "kind": "testFile",
    "static": true,
    "variation": null,
    "name": "spec/unit/components/masthead.spec.js",
    "memberof": null,
    "longname": "spec/unit/components/masthead.spec.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import MastheadComponent from \"../../../src/components/masthead/masthead_component\";\n"
  },
  {
    "__docId__": 793,
    "kind": "testFile",
    "static": true,
    "variation": null,
    "name": "spec/unit/components/navigation.spec.js",
    "memberof": null,
    "longname": "spec/unit/components/navigation.spec.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import NavigationComponent from \"../../../src/components/navigation/navigation_component\";\n"
  },
  {
    "__docId__": 794,
    "kind": "testFile",
    "static": true,
    "variation": null,
    "name": "spec/unit/components/overlay.spec.js",
    "memberof": null,
    "longname": "spec/unit/components/overlay.spec.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import Overlay from \"../../../src/components/overlay/\";\n"
  },
  {
    "__docId__": 795,
    "kind": "testFile",
    "static": true,
    "variation": null,
    "name": "spec/unit/components/search.spec.js",
    "memberof": null,
    "longname": "spec/unit/components/search.spec.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import SearchComponent from \"../../../src/components/search/search_component\";\n"
  },
  {
    "__docId__": 796,
    "kind": "testFile",
    "static": true,
    "variation": null,
    "name": "spec/unit/components/slideshow.spec.js",
    "memberof": null,
    "longname": "spec/unit/components/slideshow.spec.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import Slideshow from \"../../../src/components/slideshow/slideshow\";\n"
  },
  {
    "__docId__": 797,
    "kind": "testFile",
    "static": true,
    "variation": null,
    "name": "spec/unit/components/tabs.spec.js",
    "memberof": null,
    "longname": "spec/unit/components/tabs.spec.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import Tabs from \"../../../src/components/tabs/tabs_component\";\nimport $ from \"jquery\";\n\nlet expect = require(\"expect.js\");\n\nlet fixture = `\n<div class=\"tabs\">\n  <ul class=\"tabs__links\">\n    <li><a href=\"#tab1\">Tab 1</a></li>\n    <li><a href=\"#tab2\">Tab 2</a></li>\n  </ul>\n  <div class=\"tabs__content\" id=\"tab1\">\n    Tab 1 Content\n  </div>\n  <div class=\"tabs__content\" id=\"tab2\">\n    Tab 2 Content\n  </div>\n</div>\n`;\n\n\ndescribe(\"tabs component\", () => {\n  it(\"should have a constructor\", () => {\n    expect(Tabs).to.be.ok();\n  });\n\n  describe(\"api\", () => {\n    let $el, tabs;\n\n    beforeEach(() => {\n      $el = $(fixture)\n\n      tabs = new Tabs({\n        el: $el\n      });\n    });\n\n    it(\"should have an active tab\", function() {\n      expect(tabs.active.$tab[0].id).to.be(\"tab1\");\n    });\n\n    it(\"should set tabs as active when clicking a link\", function() {\n      $el.find(\"[href='#tab2']\").click();\n      \n      expect($el.find(\"[href='#tab1']\").hasClass(\"is-active\")).to.not.be.ok();\n      expect(tabs.active.$tab[0].id).to.be(\"tab2\");\n    });\n  })\n});\n"
  },
  {
    "__docId__": 798,
    "kind": "testDescribe",
    "static": true,
    "variation": null,
    "name": "describe18",
    "testId": 18,
    "memberof": "spec/unit/components/tabs.spec.js",
    "testDepth": 0,
    "longname": "spec/unit/components/tabs.spec.js~describe18",
    "access": null,
    "description": "tabs component",
    "lineNumber": 22
  },
  {
    "__docId__": 799,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it19",
    "testId": 19,
    "memberof": "spec/unit/components/tabs.spec.js~describe18",
    "testDepth": 1,
    "longname": "spec/unit/components/tabs.spec.js~describe18.it19",
    "access": null,
    "description": "should have a constructor",
    "lineNumber": 23
  },
  {
    "__docId__": 800,
    "kind": "testDescribe",
    "static": true,
    "variation": null,
    "name": "describe20",
    "testId": 20,
    "memberof": "spec/unit/components/tabs.spec.js~describe18",
    "testDepth": 1,
    "longname": "spec/unit/components/tabs.spec.js~describe18.describe20",
    "access": null,
    "description": "api",
    "lineNumber": 27
  },
  {
    "__docId__": 801,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it21",
    "testId": 21,
    "memberof": "spec/unit/components/tabs.spec.js~describe18.describe20",
    "testDepth": 2,
    "longname": "spec/unit/components/tabs.spec.js~describe18.describe20.it21",
    "access": null,
    "description": "should have an active tab",
    "lineNumber": 38
  },
  {
    "__docId__": 802,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it22",
    "testId": 22,
    "memberof": "spec/unit/components/tabs.spec.js~describe18.describe20",
    "testDepth": 2,
    "longname": "spec/unit/components/tabs.spec.js~describe18.describe20.it22",
    "access": null,
    "description": "should set tabs as active when clicking a link",
    "lineNumber": 42
  },
  {
    "__docId__": 803,
    "kind": "testFile",
    "static": true,
    "variation": null,
    "name": "spec/unit/components/things_to_do.spec.js",
    "memberof": null,
    "longname": "spec/unit/components/things_to_do.spec.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import ThingsToDo from \"../../../src/components/things_to_do/things_to_do\";\n"
  },
  {
    "__docId__": 804,
    "kind": "testFile",
    "static": true,
    "variation": null,
    "name": "spec/unit/components/video.spec.js",
    "memberof": null,
    "longname": "spec/unit/components/video.spec.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import VideoPlayer from \"../../../src/components/video/video_player\";\n"
  },
  {
    "__docId__": 805,
    "kind": "testFile",
    "static": true,
    "variation": null,
    "name": "spec/unit/core/component_registry.spec.js",
    "memberof": null,
    "longname": "spec/unit/core/component_registry.spec.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import ComponentRegistry from \"../../../src/core/component_registry\";\nimport { Component } from \"../../../src/core/bane\";\n\n/** @test {ComponentRegistry} */\ndescribe(\"ComponentRegistry\", () => {\n  it(\"should register compnents\", () => {\n    let registry = new ComponentRegistry();\n\n    class FooComponent extends Component {}\n\n    registry.register(FooComponent);\n\n    expect(registry.components.size).to.be(1);\n  });\n\n  it(\"should add instances\", () => {\n    let registry = new ComponentRegistry();\n\n    class FooComponent extends Component {}\n\n    registry.register(FooComponent);\n\n    expect(registry.components.size).to.be(1);\n\n    registry.createInstanceOf(FooComponent);\n\n    expect(registry.getInstancesOf(FooComponent).length).to.be(1);\n    expect(registry.getInstancesOf(\"FooComponent\").length).to.be(1);\n  });\n});\n"
  },
  {
    "__docId__": 806,
    "kind": "testDescribe",
    "static": true,
    "variation": null,
    "name": "describe23",
    "testId": 23,
    "memberof": "spec/unit/core/component_registry.spec.js",
    "testDepth": 0,
    "longname": "spec/unit/core/component_registry.spec.js~describe23",
    "access": null,
    "description": "ComponentRegistry",
    "lineNumber": 5,
    "unknown": [
      {
        "tagName": "@test",
        "tagValue": "{ComponentRegistry}"
      }
    ],
    "testTargets": [
      "ComponentRegistry"
    ]
  },
  {
    "__docId__": 807,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it24",
    "testId": 24,
    "memberof": "spec/unit/core/component_registry.spec.js~describe23",
    "testDepth": 1,
    "longname": "spec/unit/core/component_registry.spec.js~describe23.it24",
    "access": null,
    "description": "should register compnents",
    "lineNumber": 6
  },
  {
    "__docId__": 808,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it25",
    "testId": 25,
    "memberof": "spec/unit/core/component_registry.spec.js~describe23",
    "testDepth": 1,
    "longname": "spec/unit/core/component_registry.spec.js~describe23.it25",
    "access": null,
    "description": "should add instances",
    "lineNumber": 16
  },
  {
    "__docId__": 809,
    "kind": "testFile",
    "static": true,
    "variation": null,
    "name": "spec/unit/core/perf_monitor.spec.js",
    "memberof": null,
    "longname": "spec/unit/core/perf_monitor.spec.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": ""
  },
  {
    "__docId__": 810,
    "kind": "testFile",
    "static": true,
    "variation": null,
    "name": "spec/unit/core/rizzo.spec.js",
    "memberof": null,
    "longname": "spec/unit/core/rizzo.spec.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import rizzo from \"../../../src/core/rizzo\";\n\ndescribe(\"rizzo\", () => {\n  it(\"should be a thing\", () => {\n    expect(rizzo).to.be.ok();\n  });\n});\n"
  },
  {
    "__docId__": 811,
    "kind": "testDescribe",
    "static": true,
    "variation": null,
    "name": "describe26",
    "testId": 26,
    "memberof": "spec/unit/core/rizzo.spec.js",
    "testDepth": 0,
    "longname": "spec/unit/core/rizzo.spec.js~describe26",
    "access": null,
    "description": "rizzo",
    "lineNumber": 3
  },
  {
    "__docId__": 812,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it27",
    "testId": 27,
    "memberof": "spec/unit/core/rizzo.spec.js~describe26",
    "testDepth": 1,
    "longname": "spec/unit/core/rizzo.spec.js~describe26.it27",
    "access": null,
    "description": "should be a thing",
    "lineNumber": 4
  },
  {
    "__docId__": 813,
    "kind": "testFile",
    "static": true,
    "variation": null,
    "name": "spec/unit/core.spec.js",
    "memberof": null,
    "longname": "spec/unit/core.spec.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { Component } from \"../../src/core/bane\";\nimport Arkham from \"../../src/core/arkham\"\n\nvar expect = require(\"expect.js\");\n\n/** @test {Component} */\ndescribe(\"bane core\", () => {\n  it(\"should have a component\", () => {\n    expect(Component).to.be.ok();\n  });\n\n  it(\"should be able to define a component\", () => {\n    class FooComponent extends Component{\n      initialize() {\n        this.bar = \"baz\";\n      }\n      foo() {}\n    }\n\n    expect(typeof FooComponent).to.be(\"function\");\n    expect(new FooComponent().bar).to.be(\"baz\");\n  });\n\n  it(\"should have inheritable components\", () => {\n    class BaseComponent extends Component {\n      initialize() {\n        this.bar = \"baz\";\n      }\n      foo() {}\n    }\n\n    class ThingsToDo extends BaseComponent{\n      bar() {}\n    }\n\n    expect(typeof ThingsToDo.prototype.bar).to.be(\"function\");\n    expect(new ThingsToDo().bar).to.be(\"baz\");\n  });\n\n  describe(\"core events\", () => {\n    expect(Arkham.on).to.be.ok();\n  });\n\n  describe(\"component events\", () => {\n    it(\"should be observable\", () => {\n      class BaseComponent extends Component {\n\n      }\n\n      var base = new BaseComponent();\n\n      var callCount = 0;\n      var callback = function() { callCount++; };\n\n      base.on(\"component.rendered\", callback);\n\n      expect(typeof base.on).to.be(\"function\");\n      expect(callCount).to.be(0);\n\n      base.trigger(\"component.rendered\");\n      expect(callCount).to.be(1);\n    });\n\n    it(\"should be able to listen to arkham events\", () => {\n      var callCount = 0;\n\n      class BaseComponent extends Component {\n        initialize() {\n          this.listenTo(Arkham, \"app.ready\", this.render);\n        }\n        render() {\n          callCount++;\n        }\n      }\n\n      new BaseComponent();\n      Arkham.trigger(\"app.ready\");\n\n      expect(callCount).to.be(1);\n    });\n  });\n\n  describe(\"getInitialState\", () => {\n    it(\"should parse an element\", () => {\n      class BaseComponent extends Component {\n\n      }\n\n      let base = new BaseComponent();\n      base.$el.data(\"lpInitialFoo\", { bar: \"baz\" });\n\n      let state = base.getInitialState();\n\n      expect(state.foo.bar).to.be(\"baz\");\n    });\n  });\n});\n"
  },
  {
    "__docId__": 814,
    "kind": "testDescribe",
    "static": true,
    "variation": null,
    "name": "describe28",
    "testId": 28,
    "memberof": "spec/unit/core.spec.js",
    "testDepth": 0,
    "longname": "spec/unit/core.spec.js~describe28",
    "access": null,
    "description": "bane core",
    "lineNumber": 7,
    "unknown": [
      {
        "tagName": "@test",
        "tagValue": "{Component}"
      }
    ],
    "testTargets": [
      "Component"
    ]
  },
  {
    "__docId__": 815,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it29",
    "testId": 29,
    "memberof": "spec/unit/core.spec.js~describe28",
    "testDepth": 1,
    "longname": "spec/unit/core.spec.js~describe28.it29",
    "access": null,
    "description": "should have a component",
    "lineNumber": 8
  },
  {
    "__docId__": 816,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it30",
    "testId": 30,
    "memberof": "spec/unit/core.spec.js~describe28",
    "testDepth": 1,
    "longname": "spec/unit/core.spec.js~describe28.it30",
    "access": null,
    "description": "should be able to define a component",
    "lineNumber": 12
  },
  {
    "__docId__": 817,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it31",
    "testId": 31,
    "memberof": "spec/unit/core.spec.js~describe28",
    "testDepth": 1,
    "longname": "spec/unit/core.spec.js~describe28.it31",
    "access": null,
    "description": "should have inheritable components",
    "lineNumber": 24
  },
  {
    "__docId__": 818,
    "kind": "testDescribe",
    "static": true,
    "variation": null,
    "name": "describe32",
    "testId": 32,
    "memberof": "spec/unit/core.spec.js~describe28",
    "testDepth": 1,
    "longname": "spec/unit/core.spec.js~describe28.describe32",
    "access": null,
    "description": "core events",
    "lineNumber": 40
  },
  {
    "__docId__": 819,
    "kind": "testDescribe",
    "static": true,
    "variation": null,
    "name": "describe33",
    "testId": 33,
    "memberof": "spec/unit/core.spec.js~describe28",
    "testDepth": 1,
    "longname": "spec/unit/core.spec.js~describe28.describe33",
    "access": null,
    "description": "component events",
    "lineNumber": 44
  },
  {
    "__docId__": 820,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it34",
    "testId": 34,
    "memberof": "spec/unit/core.spec.js~describe28.describe33",
    "testDepth": 2,
    "longname": "spec/unit/core.spec.js~describe28.describe33.it34",
    "access": null,
    "description": "should be observable",
    "lineNumber": 45
  },
  {
    "__docId__": 821,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it35",
    "testId": 35,
    "memberof": "spec/unit/core.spec.js~describe28.describe33",
    "testDepth": 2,
    "longname": "spec/unit/core.spec.js~describe28.describe33.it35",
    "access": null,
    "description": "should be able to listen to arkham events",
    "lineNumber": 64
  },
  {
    "__docId__": 822,
    "kind": "testDescribe",
    "static": true,
    "variation": null,
    "name": "describe36",
    "testId": 36,
    "memberof": "spec/unit/core.spec.js~describe28",
    "testDepth": 1,
    "longname": "spec/unit/core.spec.js~describe28.describe36",
    "access": null,
    "description": "getInitialState",
    "lineNumber": 83
  },
  {
    "__docId__": 823,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it37",
    "testId": 37,
    "memberof": "spec/unit/core.spec.js~describe28.describe36",
    "testDepth": 2,
    "longname": "spec/unit/core.spec.js~describe28.describe36.it37",
    "access": null,
    "description": "should parse an element",
    "lineNumber": 84
  },
  {
    "__docId__": 824,
    "kind": "testFile",
    "static": true,
    "variation": null,
    "name": "spec/unit/decorators/channel.spec.js",
    "memberof": null,
    "longname": "spec/unit/decorators/channel.spec.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": ""
  },
  {
    "__docId__": 825,
    "kind": "testFile",
    "static": true,
    "variation": null,
    "name": "spec/unit/decorators/publish.spec.js",
    "memberof": null,
    "longname": "spec/unit/decorators/publish.spec.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import publish from \"../../../src/core/decorators/publish\";\nimport postal from \"postal/lib/postal.lodash\";\n\nlet expect = require(\"expect.js\");\n\ndescribe(\"publish decorator\", () => {\n  it(\"should be a decorator\", () => {\n    expect(publish).to.be.ok();\n  });\n\n  it(\"should publish a message\", () => {\n    let definition = postal.channel(\"/\").subscribe(\"my.message\", (data) => {\n      expect(data.foo).to.be(\"bar\");\n    });\n\n    class Foo {\n      @publish(\"my.message\")\n      myMessage() {\n        return {\n          foo: \"bar\"\n        };\n      }\n    }\n\n    let foo = new Foo();\n\n    foo.myMessage();\n    definition.unsubscribe();\n  });\n\n  it(\"should publish a message on a custom channel\", () => {\n    let definition = postal.channel(\"custom\").subscribe(\"my.message\", (data) => {\n      expect(data.foo).to.be(\"bazinga\");\n    });\n\n    class Foo {\n      @publish(\"my.message\", \"custom\")\n      myMessage() {\n        return {\n          foo: \"bazinga\"\n        };\n      }\n    }\n\n    let foo = new Foo();\n\n    let result = foo.myMessage();\n    definition.unsubscribe();\n    expect(result.foo).to.be(\"bazinga\");\n  });\n});\n"
  },
  {
    "__docId__": 826,
    "kind": "testDescribe",
    "static": true,
    "variation": null,
    "name": "describe38",
    "testId": 38,
    "memberof": "spec/unit/decorators/publish.spec.js",
    "testDepth": 0,
    "longname": "spec/unit/decorators/publish.spec.js~describe38",
    "access": null,
    "description": "publish decorator",
    "lineNumber": 6
  },
  {
    "__docId__": 827,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it39",
    "testId": 39,
    "memberof": "spec/unit/decorators/publish.spec.js~describe38",
    "testDepth": 1,
    "longname": "spec/unit/decorators/publish.spec.js~describe38.it39",
    "access": null,
    "description": "should be a decorator",
    "lineNumber": 7
  },
  {
    "__docId__": 828,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it40",
    "testId": 40,
    "memberof": "spec/unit/decorators/publish.spec.js~describe38",
    "testDepth": 1,
    "longname": "spec/unit/decorators/publish.spec.js~describe38.it40",
    "access": null,
    "description": "should publish a message",
    "lineNumber": 11
  },
  {
    "__docId__": 829,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it41",
    "testId": 41,
    "memberof": "spec/unit/decorators/publish.spec.js~describe38",
    "testDepth": 1,
    "longname": "spec/unit/decorators/publish.spec.js~describe38.it41",
    "access": null,
    "description": "should publish a message on a custom channel",
    "lineNumber": 31
  },
  {
    "__docId__": 830,
    "kind": "testFile",
    "static": true,
    "variation": null,
    "name": "spec/unit/decorators/subscribe.spec.js",
    "memberof": null,
    "longname": "spec/unit/decorators/subscribe.spec.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import subscribe from \"../../../src/core/decorators/subscribe\";\nimport channel from \"../../../src/core/decorators/channel\";\nimport postal from \"postal/lib/postal.lodash\";\n\nlet expect = require(\"expect.js\");\n\ndescribe(\"subscribe decorator\", () => {\n  it(\"should be a decorator\", () => {\n    expect(subscribe).to.be.ok();\n  });\n\n  it(\"should subscribe to a topic\", () => {\n    let callCount = 0;\n    class Foo {\n      constructor() {\n        this.subscribe();\n      }\n      @subscribe(\"my.message\", \"foo\")\n      myMessage(data, env, sub) {\n        expect(data.foo).to.be(\"bar\");\n        callCount++;\n        sub.unsubscribe();\n      }\n    }\n    \n    new Foo();\n\n    postal.channel(\"foo\").publish(\"my.message\", { foo: \"bar\" });\n    \n    expect(callCount).to.be(1);\n  });\n\n  it(\"should subscribe to a topic with the channel set\", () => {\n    let callCount = 0;\n    \n    class Foo {\n      constructor() {\n        this.number = 2;\n        this.subscribe();\n      }\n      @subscribe(\"my.other.message\")\n      @channel(\"foobar\")\n      myOtherMessage(data, env, sub) {\n        this.number++;\n        expect(data.foo).to.be(\"bazinga\");\n        callCount++;\n        sub.unsubscribe();\n      }\n      @subscribe(\"my.other.message.2\")\n      myOtherMessage2(data, env, sub) {\n        this.number++;\n        expect(data.foo).to.be(\"bazinga\");\n        callCount++;\n        sub.unsubscribe();\n      }\n      @subscribe(\"my.other.message.3\")\n      @channel(\"foobazinga\")\n      myOtherMessage3(data, env, sub) {\n        this.number++;\n        expect(data.foo).to.be(\"bazinga\");\n        callCount++;\n        sub.unsubscribe();\n      }\n    }\n    let foo = new Foo();\n    \n    postal.channel(\"foobar\").publish(\"my.other.message\", { foo: \"bazinga\" });\n    postal.channel(\"foobar\").publish(\"my.other.message.2\", { foo: \"bazinga\" });\n    postal.channel(\"foobazinga\").publish(\"my.other.message.3\", { foo: \"bazinga\" });\n    \n    expect(callCount).to.be(3);\n    expect(foo.number).to.be(5);\n  });\n});\n"
  },
  {
    "__docId__": 831,
    "kind": "testDescribe",
    "static": true,
    "variation": null,
    "name": "describe42",
    "testId": 42,
    "memberof": "spec/unit/decorators/subscribe.spec.js",
    "testDepth": 0,
    "longname": "spec/unit/decorators/subscribe.spec.js~describe42",
    "access": null,
    "description": "subscribe decorator",
    "lineNumber": 7
  },
  {
    "__docId__": 832,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it43",
    "testId": 43,
    "memberof": "spec/unit/decorators/subscribe.spec.js~describe42",
    "testDepth": 1,
    "longname": "spec/unit/decorators/subscribe.spec.js~describe42.it43",
    "access": null,
    "description": "should be a decorator",
    "lineNumber": 8
  },
  {
    "__docId__": 833,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it44",
    "testId": 44,
    "memberof": "spec/unit/decorators/subscribe.spec.js~describe42",
    "testDepth": 1,
    "longname": "spec/unit/decorators/subscribe.spec.js~describe42.it44",
    "access": null,
    "description": "should subscribe to a topic",
    "lineNumber": 12
  },
  {
    "__docId__": 834,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it45",
    "testId": 45,
    "memberof": "spec/unit/decorators/subscribe.spec.js~describe42",
    "testDepth": 1,
    "longname": "spec/unit/decorators/subscribe.spec.js~describe42.it45",
    "access": null,
    "description": "should subscribe to a topic with the channel set",
    "lineNumber": 33
  },
  {
    "__docId__": 835,
    "kind": "testFile",
    "static": true,
    "variation": null,
    "name": "spec/unit/util/cookie_util.spec.js",
    "memberof": null,
    "longname": "spec/unit/util/cookie_util.spec.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import CookieUtil from \"../../../src/core/cookie_util\";\n\nlet expect = require(\"expect.js\");\n\n/** @test {CookieUtil} */\ndescribe(\"cookie util\", () => {\n  let cookie = null;\n  before(() => {\n    cookie = new CookieUtil({\n      cookies: \"\"\n    })\n  });\n\n  it(\"should set a cookie\", () => {\n    cookie.setCookie(\"testKey\", \"testValue\");\n\n    expect(cookie.cookies).to.be(\"testKey=testValue;path=/\");\n  });\n\n  it(\"should set a cookie that expires\", () => {\n    cookie.setCookie(\"testKey\", \"testValue\", 14);\n\n    expect(/expires=/.test(cookie.cookies)).to.be(true);\n  });\n});\n"
  },
  {
    "__docId__": 836,
    "kind": "testDescribe",
    "static": true,
    "variation": null,
    "name": "describe46",
    "testId": 46,
    "memberof": "spec/unit/util/cookie_util.spec.js",
    "testDepth": 0,
    "longname": "spec/unit/util/cookie_util.spec.js~describe46",
    "access": null,
    "description": "cookie util",
    "lineNumber": 6,
    "unknown": [
      {
        "tagName": "@test",
        "tagValue": "{CookieUtil}"
      }
    ],
    "testTargets": [
      "CookieUtil"
    ]
  },
  {
    "__docId__": 837,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it47",
    "testId": 47,
    "memberof": "spec/unit/util/cookie_util.spec.js~describe46",
    "testDepth": 1,
    "longname": "spec/unit/util/cookie_util.spec.js~describe46.it47",
    "access": null,
    "description": "should set a cookie",
    "lineNumber": 14
  },
  {
    "__docId__": 838,
    "kind": "testIt",
    "static": true,
    "variation": null,
    "name": "it48",
    "testId": 48,
    "memberof": "spec/unit/util/cookie_util.spec.js~describe46",
    "testDepth": 1,
    "longname": "spec/unit/util/cookie_util.spec.js~describe46.it48",
    "access": null,
    "description": "should set a cookie that expires",
    "lineNumber": 20
  }
]