{"version":3,"sources":["webpack:///./widgets/instagramBlock.js","webpack:///./widgets/quoteBlock.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/instafeed.js/dist/instafeed.es.js"],"names":["InstagramBlock","_createClass","$el","_classCallCheck","this","$","readMore","data","topLogo","sideLogo","isScroll","insToken","Instafeed","get","target","resolution","limit","accessToken","template","run","setTimeout","slick","dots","infinite","autoplay","autoplaySpeed","slidesToShow","slidesToScroll","responsive","breakpoint","settings","show","WG","concat","QuoteBlock","element","$element","$carousel","find","assert","val","msg","Error","options","opts","accessTokenTimeout","after","apiTimeout","apiLimit","before","debug","error","filter","mock","render","sort","success","templateBoundaries","transform","optKey","length","_state","running","node","token","paging","pool","_options","prototype","scope","_debug","_start","document","getElementById","_getAccessToken","err","_fail","message","_showNext","_finish","hasNext","next","callback","url","poolItems","hasLimit","splice","_renderData","renderErr","_makeApiRequest","processed","_success","_processData","unused","i","push","processErr","items","hasTransform","hasFilter","hasSort","transformedFiltered","limitDelta","dataItem","transformedItem","filterResult","unusedItems","_getItemData","slice","_extractTags","str","exp","badChars","tags","match","exec","test","type","image","media_type","media_url","thumbnail_url","caption","id","link","permalink","model","timestamp","username","hasTemplate","hasRender","item","itemHtml","container","html","_basicRender","createElement","innerHTML","childNodes","appendChild","RegExp","output","lastIndex","keyPath","keyPathValue","index","_valueForKeyPath","toString","lastValue","_runHook","console","called","apiRequest","callbackOnce","value","XMLHttpRequest","ontimeout","onerror","onload","event","contentType","getResponseHeader","responseJson","status","indexOf","JSON","parse","responseText","code","open","timeout","send","timeoutCheck","clearTimeout","args","log","call","arguments","hookName"],"mappings":"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","file":"44.js","sourcesContent":["const NS = 'InstagramBlock';\nconst CLS = 'instagramBlock';\nconst WG = '.' + CLS + '-';\n\nimport Instafeed from 'instafeed.js'; //import the instafeed\n\nexport class InstagramBlock {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadShopProductBlock function\n\t\tthis.$el = $($el);\n\t\t// get the data from epi server\n\t\tvar readMore = this.$el.data(\"readMore\");\n\t\tvar topLogo = this.$el.data(\"topLogo\");\n\t\tvar sideLogo = this.$el.data(\"sideLogo\");\n\t\tvar isScroll = this.$el.data(\"isScroll\");\n\t\tvar insToken = this.$el.data(\"insToken\");\n\t\t// load the instafeed\n\t\tvar userFeed = new Instafeed({\n\t\t\tget: 'user',\n\t\t\ttarget: \"instafeed-container\", // insert instagram into this div\n\t\t\tresolution: 'low_resolution', // using low resolution image\n\t\t\tlimit: 12, // show 12 posts in the carousel\n\t\t\taccessToken: insToken,\n\t\t\t// create custom template\n\t\t\ttemplate:'<div class=\"instaPost\"><div class=\"instaTop\"><img class=\"woolmarkLogo\" src=\"'+ topLogo +'\"><h5><b>thewoolmarkcompany</b></h5><img class=\"instaLogo\" src=\"' + sideLogo+ '\"><p class=\"instaCaption\">{{caption}}</p><a href=\"{{link}}\"><b>' + readMore +'</b></a></div><a href=\"{{link}}\"><img title=\"{{caption}}\" src=\"{{image}}\" /></a></div>'\n\t\t});\n\t\tuserFeed.run();\n\n\t\t// load slick slider \n\t\tsetTimeout(slickFunction, 2000); // wait for 2 seconds until instagram feed is fully loaded then load slick slider\n\t\t\tfunction slickFunction() {\n\t\t\t\t$(\"#instafeed-container\").slick({\n\t\t\t\t\t\tdots: true,\n\t\t\t\t\t\tinfinite: true,\n\t\t\t\t\t\tautoplay: isScroll,\n    \t\t\t\t\tautoplaySpeed: 4000,\n\t\t\t\t\t\tslidesToShow: 3,\n\t\t\t\t\t\tslidesToScroll: 3,\n\t\t\t\t\t\tresponsive: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tbreakpoint: 1024,\n\t\t\t\t\t\t\tsettings: {\n\t\t\t\t\t\t\tslidesToShow: 2,\n\t\t\t\t\t\t\tslidesToScroll: 2,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tbreakpoint: 600,\n\t\t\t\t\t\t\tsettings: {\n\t\t\t\t\t\t\tslidesToShow: 2,\n\t\t\t\t\t\t\tslidesToScroll: 2\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tbreakpoint: 480,\n\t\t\t\t\t\t\tsettings: {\n\t\t\t\t\t\t\tslidesToShow: 1,\n\t\t\t\t\t\t\tslidesToScroll: 1\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t\t$('#instafeed-container').show();\n\t\t\t}\n\t}\n\t// Add more functions like on above here\n}\n","const NS = 'QuoteBlock';\nconst CLS = 'quoteBlock';\nconst WG = `.${CLS}-`;\n\nexport class QuoteBlock {\n\tconstructor(element) {\n\t\tthis.element = element;\n\t\tthis.$element = $(element);\n\n\t\tthis.$carousel = this.$element.find(`${WG}carousel`);\n\t\tconsole.log(this.$carousel);\n\t\tthis.$carousel.slick({\n\t\t\tautoplay:true,\n\t\t\tautoplaySpeed:4000,\n\t\t\tdots: true\n\t\t});\n\t}\n}","/* instafeed.js | v2.0.0 | https://github.com/stevenschobert/instafeed.js | License: MIT */\nfunction assert(val, msg) {\n  if (!val) {\n    throw new Error(msg);\n  }\n}\n\nfunction Instafeed(options) {\n  assert(!options || typeof options === \"object\", \"options must be an object, got \" + options + \" (\" + typeof options + \")\");\n  var opts = {\n    accessToken: null,\n    accessTokenTimeout: 1e4,\n    after: null,\n    apiTimeout: 1e4,\n    apiLimit: null,\n    before: null,\n    debug: false,\n    error: null,\n    filter: null,\n    limit: null,\n    mock: false,\n    render: null,\n    sort: null,\n    success: null,\n    target: \"instafeed\",\n    template: '<a href=\"{{link}}\"><img title=\"{{caption}}\" src=\"{{image}}\" /></a>',\n    templateBoundaries: [ \"{{\", \"}}\" ],\n    transform: null\n  };\n  var state = {\n    running: false,\n    node: null,\n    token: null,\n    paging: null,\n    pool: []\n  };\n  if (options) {\n    for (var optKey in opts) {\n      if (typeof options[optKey] !== \"undefined\") {\n        opts[optKey] = options[optKey];\n      }\n    }\n  }\n  assert(typeof opts.target === \"string\" || typeof opts.target === \"object\", \"target must be a string or DOM node, got \" + opts.target + \" (\" + typeof opts.target + \")\");\n  assert(typeof opts.accessToken === \"string\" || typeof opts.accessToken === \"function\", \"accessToken must be a string or function, got \" + opts.accessToken + \" (\" + typeof opts.accessToken + \")\");\n  assert(typeof opts.accessTokenTimeout === \"number\", \"accessTokenTimeout must be a number, got \" + opts.accessTokenTimeout + \" (\" + typeof opts.accessTokenTimeout + \")\");\n  assert(typeof opts.apiTimeout === \"number\", \"apiTimeout must be a number, got \" + opts.apiTimeout + \" (\" + typeof opts.apiTimeout + \")\");\n  assert(typeof opts.debug === \"boolean\", \"debug must be true or false, got \" + opts.debug + \" (\" + typeof opts.debug + \")\");\n  assert(typeof opts.mock === \"boolean\", \"mock must be true or false, got \" + opts.mock + \" (\" + typeof opts.mock + \")\");\n  assert(typeof opts.templateBoundaries === \"object\" && opts.templateBoundaries.length === 2 && typeof opts.templateBoundaries[0] === \"string\" && typeof opts.templateBoundaries[1] === \"string\", \"templateBoundaries must be an array of 2 strings, got \" + opts.templateBoundaries + \" (\" + typeof opts.templateBoundaries + \")\");\n  assert(!opts.template || typeof opts.template === \"string\", \"template must null or string, got \" + opts.template + \" (\" + typeof opts.template + \")\");\n  assert(!opts.error || typeof opts.error === \"function\", \"error must be null or function, got \" + opts.error + \" (\" + typeof opts.error + \")\");\n  assert(!opts.before || typeof opts.before === \"function\", \"before must be null or function, got \" + opts.before + \" (\" + typeof opts.before + \")\");\n  assert(!opts.after || typeof opts.after === \"function\", \"after must be null or function, got \" + opts.after + \" (\" + typeof opts.after + \")\");\n  assert(!opts.success || typeof opts.success === \"function\", \"success must be null or function, got \" + opts.success + \" (\" + typeof opts.success + \")\");\n  assert(!opts.filter || typeof opts.filter === \"function\", \"filter must be null or function, got \" + opts.filter + \" (\" + typeof opts.filter + \")\");\n  assert(!opts.transform || typeof opts.transform === \"function\", \"transform must be null or function, got \" + opts.transform + \" (\" + typeof opts.transform + \")\");\n  assert(!opts.sort || typeof opts.sort === \"function\", \"sort must be null or function, got \" + opts.sort + \" (\" + typeof opts.sort + \")\");\n  assert(!opts.render || typeof opts.render === \"function\", \"render must be null or function, got \" + opts.render + \" (\" + typeof opts.render + \")\");\n  assert(!opts.limit || typeof opts.limit === \"number\", \"limit must be null or number, got \" + opts.limit + \" (\" + typeof opts.limit + \")\");\n  assert(!opts.apiLimit || typeof opts.apiLimit === \"number\", \"apiLimit must null or number, got \" + opts.apiLimit + \" (\" + typeof opts.apiLimit + \")\");\n  this._state = state;\n  this._options = opts;\n}\n\nInstafeed.prototype.run = function run() {\n  var scope = this;\n  this._debug(\"run\", \"options\", this._options);\n  this._debug(\"run\", \"state\", this._state);\n  if (this._state.running) {\n    this._debug(\"run\", \"already running, skipping\");\n    return false;\n  }\n  this._start();\n  this._debug(\"run\", \"getting dom node\");\n  if (typeof this._options.target === \"string\") {\n    this._state.node = document.getElementById(this._options.target);\n  } else {\n    this._state.node = this._options.target;\n  }\n  if (!this._state.node) {\n    this._fail(new Error(\"no element found with ID \" + this._options.target));\n    return false;\n  }\n  this._debug(\"run\", \"got dom node\", this._state.node);\n  this._debug(\"run\", \"getting access token\");\n  this._getAccessToken(function onTokenReceived(err, token) {\n    if (err) {\n      scope._debug(\"onTokenReceived\", \"error\", err);\n      scope._fail(new Error(\"error getting access token: \" + err.message));\n      return;\n    }\n    scope._debug(\"onTokenReceived\", \"got token\", token);\n    scope._state.token = token;\n    scope._showNext(function onNextShown(err) {\n      if (err) {\n        scope._debug(\"onNextShown\", \"error\", err);\n        scope._fail(err);\n        return;\n      }\n      scope._finish();\n    });\n  });\n  return true;\n};\n\nInstafeed.prototype.hasNext = function hasNext() {\n  var paging = this._state.paging;\n  var pool = this._state.pool;\n  this._debug(\"hasNext\", \"paging\", paging);\n  this._debug(\"hasNext\", \"pool\", pool.length, pool);\n  return pool.length > 0 || paging && typeof paging.next === \"string\";\n};\n\nInstafeed.prototype.next = function next() {\n  var scope = this;\n  if (!scope.hasNext()) {\n    scope._debug(\"next\", \"hasNext is false, skipping\");\n    return false;\n  }\n  if (scope._state.running) {\n    scope._debug(\"next\", \"already running, skipping\");\n    return false;\n  }\n  scope._start();\n  scope._showNext(function onNextShown(err) {\n    if (err) {\n      scope._debug(\"onNextShown\", \"error\", err);\n      scope._fail(err);\n      return;\n    }\n    scope._finish();\n  });\n};\n\nInstafeed.prototype._showNext = function showNext(callback) {\n  var scope = this;\n  var url = null;\n  var poolItems = null;\n  var hasLimit = typeof this._options.limit === \"number\";\n  scope._debug(\"showNext\", \"pool\", scope._state.pool.length, scope._state.pool);\n  if (scope._state.pool.length > 0) {\n    if (hasLimit) {\n      poolItems = scope._state.pool.splice(0, scope._options.limit);\n    } else {\n      poolItems = scope._state.pool.splice(0);\n    }\n    scope._debug(\"showNext\", \"items from pool\", poolItems.length, poolItems);\n    scope._debug(\"showNext\", \"updated pool\", scope._state.pool.length, scope._state.pool);\n    if (scope._options.mock) {\n      scope._debug(\"showNext\", \"mock enabled, skipping render\");\n    } else {\n      try {\n        scope._renderData(poolItems);\n      } catch (renderErr) {\n        callback(renderErr);\n        return;\n      }\n    }\n    callback(null);\n  } else {\n    if (scope._state.paging && typeof scope._state.paging.next === \"string\") {\n      url = scope._state.paging.next;\n    } else {\n      url = \"https://graph.instagram.com/me/media?fields=caption,id,media_type,media_url,permalink,thumbnail_url,timestamp,username&access_token=\" + scope._state.token;\n      if (!scope._options.apiLimit && typeof scope._options.limit === \"number\") {\n        scope._debug(\"showNext\", \"no apiLimit set, falling back to limit\", scope._options.apiLimit, scope._options.limit);\n        url = url + \"&limit=\" + scope._options.limit;\n      } else if (typeof scope._options.apiLimit === \"number\") {\n        scope._debug(\"showNext\", \"apiLimit set, overriding limit\", scope._options.apiLimit, scope._options.limit);\n        url = url + \"&limit=\" + scope._options.apiLimit;\n      }\n    }\n    scope._debug(\"showNext\", \"making request\", url);\n    scope._makeApiRequest(url, function onResponseReceived(err, data) {\n      var processed = null;\n      if (err) {\n        scope._debug(\"onResponseReceived\", \"error\", err);\n        callback(new Error(\"api request error: \" + err.message));\n        return;\n      }\n      scope._debug(\"onResponseReceived\", \"data\", data);\n      scope._success(data);\n      scope._debug(\"onResponseReceived\", \"setting paging\", data.paging);\n      scope._state.paging = data.paging;\n      try {\n        processed = scope._processData(data);\n        scope._debug(\"onResponseReceived\", \"processed data\", processed);\n        if (processed.unused && processed.unused.length > 0) {\n          scope._debug(\"onResponseReceived\", \"saving unused to pool\", processed.unused.length, processed.unused);\n          for (var i = 0; i < processed.unused.length; i++) {\n            scope._state.pool.push(processed.unused[i]);\n          }\n        }\n      } catch (processErr) {\n        callback(processErr);\n        return;\n      }\n      if (scope._options.mock) {\n        scope._debug(\"onResponseReceived\", \"mock enabled, skipping append\");\n      } else {\n        try {\n          scope._renderData(processed.items);\n        } catch (renderErr) {\n          callback(renderErr);\n          return;\n        }\n      }\n      callback(null);\n    });\n  }\n};\n\nInstafeed.prototype._processData = function processData(data) {\n  var hasTransform = typeof this._options.transform === \"function\";\n  var hasFilter = typeof this._options.filter === \"function\";\n  var hasSort = typeof this._options.sort === \"function\";\n  var hasLimit = typeof this._options.limit === \"number\";\n  var transformedFiltered = [];\n  var limitDelta = null;\n  var dataItem = null;\n  var transformedItem = null;\n  var filterResult = null;\n  var unusedItems = null;\n  this._debug(\"processData\", \"hasFilter\", hasFilter, \"hasTransform\", hasTransform, \"hasSort\", hasSort, \"hasLimit\", hasLimit);\n  if (typeof data !== \"object\" || typeof data.data !== \"object\" || data.data.length <= 0) {\n    return null;\n  }\n  for (var i = 0; i < data.data.length; i++) {\n    dataItem = this._getItemData(data.data[i]);\n    if (hasTransform) {\n      try {\n        transformedItem = this._options.transform(dataItem);\n        this._debug(\"processData\", \"transformed item\", dataItem, transformedItem);\n      } catch (err) {\n        this._debug(\"processData\", \"error calling transform\", err);\n        throw new Error(\"error in transform: \" + err.message);\n      }\n    } else {\n      transformedItem = dataItem;\n    }\n    if (hasFilter) {\n      try {\n        filterResult = this._options.filter(transformedItem);\n        this._debug(\"processData\", \"filter item result\", transformedItem, filterResult);\n      } catch (err) {\n        this._debug(\"processData\", \"error calling filter\", err);\n        throw new Error(\"error in filter: \" + err.message);\n      }\n      if (filterResult) {\n        transformedFiltered.push(transformedItem);\n      }\n    } else {\n      transformedFiltered.push(transformedItem);\n    }\n  }\n  if (hasSort) {\n    try {\n      transformedFiltered.sort(this._options.sort);\n    } catch (err) {\n      this._debug(\"processData\", \"error calling sort\", err);\n      throw new Error(\"error in sort: \" + err.message);\n    }\n  }\n  if (hasLimit) {\n    limitDelta = transformedFiltered.length - this._options.limit;\n    this._debug(\"processData\", \"checking limit\", transformedFiltered.length, this._options.limit, limitDelta);\n    if (limitDelta > 0) {\n      unusedItems = transformedFiltered.slice(transformedFiltered.length - limitDelta);\n      this._debug(\"processData\", \"unusedItems\", unusedItems.length, unusedItems);\n      transformedFiltered.splice(transformedFiltered.length - limitDelta, limitDelta);\n    }\n  }\n  return {\n    items: transformedFiltered,\n    unused: unusedItems\n  };\n};\n\nInstafeed.prototype._extractTags = function extractTags(str) {\n  var exp = /#([^\\s]+)/gi;\n  var badChars = /[~`!@#$%^&*\\(\\)\\-\\+={}\\[\\]:;\"'<>\\?,\\./|\\\\\\s]+/i;\n  var tags = [];\n  var match = null;\n  if (typeof str === \"string\") {\n    while ((match = exp.exec(str)) !== null) {\n      if (badChars.test(match[1]) === false) {\n        tags.push(match[1]);\n      }\n    }\n  }\n  return tags;\n};\n\nInstafeed.prototype._getItemData = function getItemData(data) {\n  var type = null;\n  var image = null;\n  switch (data.media_type) {\n   case \"IMAGE\":\n    type = \"image\";\n    image = data.media_url;\n    break;\n\n   case \"VIDEO\":\n    type = \"video\";\n    image = data.thumbnail_url;\n    break;\n\n   case \"CAROUSEL_ALBUM\":\n    type = \"album\";\n    image = data.media_url;\n    break;\n  }\n  return {\n    caption: data.caption,\n    tags: this._extractTags(data.caption),\n    id: data.id,\n    image: image,\n    link: data.permalink,\n    model: data,\n    timestamp: data.timestamp,\n    type: type,\n    username: data.username\n  };\n};\n\nInstafeed.prototype._renderData = function renderData(items) {\n  var hasTemplate = typeof this._options.template === \"string\";\n  var hasRender = typeof this._options.render === \"function\";\n  var item = null;\n  var itemHtml = null;\n  var container = null;\n  var html = \"\";\n  this._debug(\"renderData\", \"hasTemplate\", hasTemplate, \"hasRender\", hasRender);\n  if (typeof items !== \"object\" || items.length <= 0) {\n    return;\n  }\n  for (var i = 0; i < items.length; i++) {\n    item = items[i];\n    if (hasRender) {\n      try {\n        itemHtml = this._options.render(item, this._options);\n        this._debug(\"renderData\", \"custom render result\", item, itemHtml);\n      } catch (err) {\n        this._debug(\"renderData\", \"error calling render\", err);\n        throw new Error(\"error in render: \" + err.message);\n      }\n    } else if (hasTemplate) {\n      itemHtml = this._basicRender(item);\n    }\n    if (itemHtml) {\n      html = html + itemHtml;\n    } else {\n      this._debug(\"renderData\", \"render item did not return any content\", item);\n    }\n  }\n  this._debug(\"renderData\", \"html content\", html);\n  container = document.createElement(\"div\");\n  container.innerHTML = html;\n  this._debug(\"renderData\", \"container\", container, container.childNodes.length, container.childNodes);\n  while (container.childNodes.length > 0) {\n    this._debug(\"renderData\", \"appending child\", container.childNodes[0]);\n    this._state.node.appendChild(container.childNodes[0]);\n  }\n};\n\nInstafeed.prototype._basicRender = function basicRender(data) {\n  var exp = new RegExp(this._options.templateBoundaries[0] + \"([\\\\s\\\\w.]+)\" + this._options.templateBoundaries[1], \"gm\");\n  var template = this._options.template;\n  var match = null;\n  var output = \"\";\n  var substr = null;\n  var lastIndex = 0;\n  var keyPath = null;\n  var keyPathValue = null;\n  while ((match = exp.exec(template)) !== null) {\n    keyPath = match[1];\n    substr = template.slice(lastIndex, match.index);\n    output = output + substr;\n    keyPathValue = this._valueForKeyPath(keyPath, data);\n    if (keyPathValue) {\n      output = output + keyPathValue.toString();\n    }\n    lastIndex = exp.lastIndex;\n  }\n  if (lastIndex < template.length) {\n    substr = template.slice(lastIndex, template.length);\n    output = output + substr;\n  }\n  return output;\n};\n\nInstafeed.prototype._valueForKeyPath = function valueForKeyPath(keyPath, data) {\n  var exp = /([\\w]+)/gm;\n  var match = null;\n  var key = null;\n  var lastValue = data;\n  while ((match = exp.exec(keyPath)) !== null) {\n    if (typeof lastValue !== \"object\") {\n      return null;\n    }\n    key = match[1];\n    lastValue = lastValue[key];\n  }\n  return lastValue;\n};\n\nInstafeed.prototype._fail = function fail(err) {\n  var didHook = this._runHook(\"error\", err);\n  if (!didHook && console && typeof console.error === \"function\") {\n    console.error(err);\n  }\n  this._state.running = false;\n};\n\nInstafeed.prototype._start = function start() {\n  this._state.running = true;\n  this._runHook(\"before\");\n};\n\nInstafeed.prototype._finish = function finish() {\n  this._runHook(\"after\");\n  this._state.running = false;\n};\n\nInstafeed.prototype._success = function success(data) {\n  this._runHook(\"success\", data);\n  this._state.running = false;\n};\n\nInstafeed.prototype._makeApiRequest = function makeApiRequest(url, callback) {\n  var called = false;\n  var scope = this;\n  var apiRequest = null;\n  var callbackOnce = function callbackOnce(err, value) {\n    if (!called) {\n      called = true;\n      callback(err, value);\n    }\n  };\n  apiRequest = new XMLHttpRequest();\n  apiRequest.ontimeout = function apiRequestTimedOut() {\n    callbackOnce(new Error(\"api request timed out\"));\n  };\n  apiRequest.onerror = function apiRequestOnError() {\n    callbackOnce(new Error(\"api connection error\"));\n  };\n  apiRequest.onload = function apiRequestOnLoad(event) {\n    var contentType = apiRequest.getResponseHeader(\"Content-Type\");\n    var responseJson = null;\n    scope._debug(\"apiRequestOnLoad\", \"loaded\", event);\n    scope._debug(\"apiRequestOnLoad\", \"response status\", apiRequest.status);\n    scope._debug(\"apiRequestOnLoad\", \"response content type\", contentType);\n    if (contentType.indexOf(\"application/json\") >= 0) {\n      try {\n        responseJson = JSON.parse(apiRequest.responseText);\n      } catch (err) {\n        scope._debug(\"apiRequestOnLoad\", \"json parsing error\", err, apiRequest.responseText);\n        callbackOnce(new Error(\"error parsing response json\"));\n        return;\n      }\n    }\n    if (apiRequest.status !== 200) {\n      if (responseJson && responseJson.error) {\n        callbackOnce(new Error(responseJson.error.code + \" \" + responseJson.error.message));\n      } else {\n        callbackOnce(new Error(\"status code \" + apiRequest.status));\n      }\n      return;\n    }\n    callbackOnce(null, responseJson);\n  };\n  apiRequest.open(\"GET\", url, true);\n  apiRequest.timeout = this._options.apiTimeout;\n  apiRequest.send();\n};\n\nInstafeed.prototype._getAccessToken = function getAccessToken(callback) {\n  var called = false;\n  var scope = this;\n  var timeoutCheck = null;\n  var callbackOnce = function callbackOnce(err, value) {\n    if (!called) {\n      called = true;\n      clearTimeout(timeoutCheck);\n      callback(err, value);\n    }\n  };\n  if (typeof this._options.accessToken === \"function\") {\n    this._debug(\"getAccessToken\", \"calling accessToken as function\");\n    timeoutCheck = setTimeout(function accessTokenTimeoutCheck() {\n      scope._debug(\"getAccessToken\", \"timeout check\", called);\n      callbackOnce(new Error(\"accessToken timed out\"), null);\n    }, this._options.accessTokenTimeout);\n    try {\n      this._options.accessToken(function accessTokenReceiver(err, value) {\n        scope._debug(\"getAccessToken\", \"received accessToken callback\", called, err, value);\n        callbackOnce(err, value);\n      });\n    } catch (err) {\n      this._debug(\"getAccessToken\", \"error invoking the accessToken as function\", err);\n      callbackOnce(err, null);\n    }\n  } else {\n    this._debug(\"getAccessToken\", \"treating accessToken as static\", typeof this._options.accessToken);\n    callbackOnce(null, this._options.accessToken);\n  }\n};\n\nInstafeed.prototype._debug = function debug() {\n  var args = null;\n  if (this._options.debug && console && typeof console.log === \"function\") {\n    args = [].slice.call(arguments);\n    args[0] = \"[Instafeed] [\" + args[0] + \"]\";\n    console.log.apply(null, args);\n  }\n};\n\nInstafeed.prototype._runHook = function runHook(hookName, data) {\n  var success = false;\n  if (typeof this._options[hookName] === \"function\") {\n    try {\n      this._options[hookName](data);\n      success = true;\n    } catch (err) {\n      this._debug(\"runHook\", \"error calling hook\", hookName, err);\n    }\n  }\n  return success;\n};\n\nexport default Instafeed;"],"sourceRoot":""}