import './_commonjsHelpers-0c4b6f40.js';
import './_to-object-ded78eb9.js';
import './es6.string.iterator-9b2af4a5.js';
import './_library-528f1934.js';
import './_iter-detect-59409a32.js';
import './core.get-iterator-method-54d2e411.js';
import './web.dom.iterable-8956f9a5.js';
import React__default, { useState, useEffect } from 'react';
import './index-0e45a0b2.js';
import 'prop-types';
import './isSymbol-807e927e.js';
import './debounce-1a993acf.js';
import './main-5d1e4bd3.js';
import { _ as _JSON$stringify } from './stringify-008c8802.js';
import { _ as _slicedToArray } from './slicedToArray-7021e5df.js';
import './asyncToGenerator-7c654f36.js';
import './_set-species-cede29f8.js';
import './Segment.js';
import './Beam.js';
import DFPAdSlot from './AdSlot.js';

var ADGutter = function ADGutter(_ref) {
  var title = _ref.title,
      gutterAd = _ref.gutterAd,
      _ref$minScreenWidth = _ref.minScreenWidth,
      minScreenWidth = _ref$minScreenWidth === undefined ? 1700 : _ref$minScreenWidth;
  var className = gutterAd.className,
      slotId = gutterAd.slotId,
      adUnit = gutterAd.adUnit,
      _gutterAd$targeting = gutterAd.targeting,
      targeting = _gutterAd$targeting === undefined ? {} : _gutterAd$targeting,
      _gutterAd$position = gutterAd.position,
      position = _gutterAd$position === undefined ? 'wallpaper' : _gutterAd$position,
      networkID = gutterAd.networkID,
      sizes = gutterAd.sizes;


  var adTargeting = {
    content_placement: targeting.content_placement,
    tags: targeting.tags,
    document_group: targeting.document_group,
    document_url: targeting.document_url,
    pos: position,
    campaign_id: targeting.campaign_id,
    issue_url: targeting.issue_url,
    publication_url: targeting.publication_url
  };

  var _useState = useState(false),
      _useState2 = _slicedToArray(_useState, 2),
      widthFlag = _useState2[0],
      setWidthFlag = _useState2[1];

  var _useState3 = useState(true),
      _useState4 = _slicedToArray(_useState3, 2),
      previewAd = _useState4[0],
      setPreviewAd = _useState4[1];

  useEffect(function () {
    var path = window && window.location && window.location.search;
    // Setting flag for Ad-preview URLs
    setPreviewAd(path.split('&').some(function (param) {
      return param.includes('creativeId');
    }));
  }, []);

  useEffect(function () {
    if (window && window.innerWidth >= minScreenWidth) {
      setWidthFlag(true);
    }
  }, [minScreenWidth]);

  //  Collapsing webcast AD if no creative is found.
  var collapseAd = function collapseAd() {
    var parent = document.getElementById('webcast-ad-wrapper');
    parent.style.height = '0%';
    parent.style.width = '0%';
    parent.style.display = 'none';
  };

  var checkIsAdFound = function checkIsAdFound(isFound, adData) {
    //  Check for creative ID.
    if (isFound) {
      var parent = document.getElementById('gutter-ad-wrapper');
      var adSizes = [[1, 1]];
      // Collapsing ad if the as size is [1,1]
      if (adData && adData.event && adData.event.size) {
        var checkAdSize = function checkAdSize(size) {
          return _JSON$stringify(size) === _JSON$stringify(adData.event.size);
        };

        if (adSizes.some(checkAdSize)) {
          // collapsing webcast AD.
          collapseAd();
          parent.style.display = 'none';
        } else {
          parent.style.display = 'block';
        }
      }
    } else {
      collapseAd();
    }
  };

  if (widthFlag) {
    return React__default.createElement(
      React__default.Fragment,
      null,
      widthFlag && React__default.createElement(
        'div',
        { id: 'gutter-ad-wrapper', className: 'gutter-ad-wrapper ' + title },
        React__default.createElement(
          'div',
          { className: 'gutter-ad' },
          React__default.createElement(DFPAdSlot, {
            className: className,
            slotId: slotId,
            networkID: networkID,
            sizes: sizes,
            adUnit: adUnit,
            targeting: adTargeting,
            refreshFlag: false
            /* Passing function to check for ad creative only if it is not in preview. */
            , checkIsAdFound: previewAd ? null : checkIsAdFound
          })
        )
      ),
      React__default.createElement(
        'style',
        { jsx: 'true' },
        '\n          .gutter-ad-wrapper {\n            position: fixed;\n            width: 100%;\n            height: 100%;\n            z-index: 999;\n          }\n          .gutter-ad {\n            width: 150px;\n            position: relative;\n            top: 50;\n          }\n          /* setting height to 0px when the ad slot is empty. */\n          .gutter-ad-wrapper div[id*=\'google_ads_iframe\']:empty {\n            height: 0px !important;\n          }\n        '
      )
    );
  } else return null;
};

export default ADGutter;
