'use strict';

exports.__esModule = true;

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _react = require('react');

var _react2 = _interopRequireDefault(_react);

var _propTypes = require('prop-types');

var _propTypes2 = _interopRequireDefault(_propTypes);

var _reactHtmlParser = require('react-html-parser');

var _reactHtmlParser2 = _interopRequireDefault(_reactHtmlParser);

var _classnames = require('classnames');

var _classnames2 = _interopRequireDefault(_classnames);

var _LinkDropdown = require('../../molecules/LinkDropdown');

var _LinkDropdown2 = _interopRequireDefault(_LinkDropdown);

var _Icon = require('../../base/Icon');

var _Icon2 = _interopRequireDefault(_Icon);

var _ButtonWithIcon = require('../../atoms/buttons/ButtonWithIcon');

var _ButtonWithIcon2 = _interopRequireDefault(_ButtonWithIcon);

var _DecorativeLink = require('../../atoms/links/DecorativeLink');

var _DecorativeLink2 = _interopRequireDefault(_DecorativeLink);

var _Email = require('../../atoms/contact/Email');

var _Email2 = _interopRequireDefault(_Email);

var _Image = require('../../atoms/media/Image');

var _Image2 = _interopRequireDefault(_Image);

var _EventTime = require('../../atoms/contact/EventTime');

var _EventTime2 = _interopRequireDefault(_EventTime);

var _PhoneNumber = require('../../atoms/contact/PhoneNumber');

var _PhoneNumber2 = _interopRequireDefault(_PhoneNumber);

var _Address = require('../../atoms/contact/Address');

var _Address2 = _interopRequireDefault(_Address);

var _TeaserSearch = require('./TeaserSearch');

var _TeaserSearch2 = _interopRequireDefault(_TeaserSearch);

var _TeaserOrgs = require('./TeaserOrgs');

var _TeaserOrgs2 = _interopRequireDefault(_TeaserOrgs);

var _utils = require('./utils');

require('./style.css');

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }

var GenTeaser = function GenTeaser(props) {
  var _classNames;

  var children = props.children,
      onClick = props.onClick,
      onKeyDown = props.onKeyDown,
      stacked = props.stacked,
      align = props.align,
      rest = _objectWithoutProperties(props, ['children', 'onClick', 'onKeyDown', 'stacked', 'align']);

  var teaserClasses = (0, _classnames2.default)((_classNames = {
    'ma__gen-teaser': true,
    'ma__gen-teaser--clickable': onClick,
    'ma__gen-teaser--stacked': stacked
  }, _classNames['ma__gen-teaser--align-' + align] = align, _classNames));
  var role = onClick ? 'button' : '';
  return (
    // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
    _react2.default.createElement(
      'section',
      _extends({ className: teaserClasses, onClick: onClick, onKeyDown: onKeyDown, role: role }, rest),
      children
    )
  );
};

GenTeaser.displayName = 'GenTeaser';

GenTeaser.propTypes = process.env.NODE_ENV !== "production" ? {
  /** A custom on click function */
  onClick: _propTypes2.default.func,
  /** A custom on key down function */
  onKeyDown: _propTypes2.default.func,
  /** React children to render */
  children: _propTypes2.default.node,
  /** whether to stack image on top */
  stacked: _propTypes2.default.bool,
  /** alignment for description relative to image */
  align: _propTypes2.default.oneOf(['top', 'center'])
} : {};

exports.default = GenTeaser;

/**
  Wrapper
  */

var GenTeaserDetails = function GenTeaserDetails(props) {
  var children = props.children,
      rest = _objectWithoutProperties(props, ['children']);

  return _react2.default.createElement(
    'div',
    _extends({ className: 'ma__gen-teaser__details' }, rest),
    children
  );
};

GenTeaserDetails.propTypes = process.env.NODE_ENV !== "production" ? {
  /** React children to render */
  children: _propTypes2.default.node.isRequired
} : {};

GenTeaser.Details = GenTeaserDetails;
GenTeaser.Details.displayName = 'GenTeaser.Details';

/**
  Image
  */

var GenTeaserImage = function GenTeaserImage(props) {
  var img = props.img,
      children = props.children,
      rest = _objectWithoutProperties(props, ['img', 'children']);

  return _react2.default.createElement(
    'div',
    _extends({ className: 'ma__gen-teaser__image' }, rest),
    children || img && _react2.default.createElement(_Image2.default, img)
  );
};

GenTeaserImage.propTypes = process.env.NODE_ENV !== "production" ? {
  /** Either a string or react component */
  img: _propTypes2.default.shape(_Image2.default.propTypes),
  /** React children to render */
  children: _propTypes2.default.node
} : {};

GenTeaser.Image = GenTeaserImage;
GenTeaser.Image.displayName = 'GenTeaser.Image';

/**
  Eyebrow
  */

var GenTeaserEyebrow = function GenTeaserEyebrow(props) {
  var eyebrow = props.eyebrow,
      children = props.children,
      rest = _objectWithoutProperties(props, ['eyebrow', 'children']);

  return _react2.default.createElement(
    'div',
    _extends({ className: 'ma__gen-teaser__eyebrow' }, rest),
    children || _react2.default.createElement(
      'span',
      null,
      eyebrow
    )
  );
};

GenTeaserEyebrow.propTypes = process.env.NODE_ENV !== "production" ? {
  /** Either a string or react component */
  eyebrow: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),
  /** React children to render */
  children: _propTypes2.default.node
} : {};

GenTeaser.Eyebrow = GenTeaserEyebrow;
GenTeaser.Eyebrow.displayName = 'GenTeaser.Eyebrow';

/**
  Expand Button
  */

var GenTeaserButton = function GenTeaserButton(props) {
  var button = props.button,
      rest = _objectWithoutProperties(props, ['button']);

  var icon = button.icon ? button.icon : _react2.default.createElement(_Icon2.default, { name: 'expand', width: 15, height: 15 });
  return _react2.default.createElement(
    'div',
    _extends({ className: 'ma__gen-teaser__button' }, rest),
    _react2.default.createElement(_ButtonWithIcon2.default, _extends({
      capitalized: true
    }, button, {
      icon: icon,
      size: 'small'
    }))
  );
};

GenTeaserButton.propTypes = process.env.NODE_ENV !== "production" ? {
  /** Expects props from ButtonWithIcon (e.g. text, info, etc.) */
  button: _propTypes2.default.shape(_ButtonWithIcon2.default.propTypes).isRequired
} : {};

GenTeaser.Button = GenTeaserButton;
GenTeaser.Button.displayName = 'GenTeaser.Button';

/**
  Stat info
  */

var GenTeaserStat = function GenTeaserStat(props) {
  var children = props.children,
      rest = _objectWithoutProperties(props, ['children']);

  return _react2.default.createElement(
    'div',
    _extends({ className: 'ma__gen-teaser__stat' }, rest),
    children
  );
};

GenTeaserStat.propTypes = process.env.NODE_ENV !== "production" ? {
  /** Expects to receive children directly (e.g. <span><b>103 item</b></span>). */
  children: _propTypes2.default.node.isRequired
} : {};

GenTeaser.Stat = GenTeaserStat;
GenTeaser.Stat.displayName = 'GenTeaser.Stat';

/**
  Title Link
  */
var GenTeaserTitle = function GenTeaserTitle(props) {
  var level = props.level,
      title = props.title,
      children = props.children,
      rest = _objectWithoutProperties(props, ['level', 'title', 'children']);

  if (title) {
    title.icon = title.icon ? _react2.default.createElement(_Icon2.default, { name: title.icon, svgWidth: 15, svgHeight: 15, 'aria-hidden': 'true' }) : '';
  }
  var Element = 'h' + (level || 2);
  return _react2.default.createElement(
    Element,
    _extends({ className: 'ma__gen-teaser__title' }, rest),
    children || _react2.default.createElement(_DecorativeLink2.default, title)
  );
};

GenTeaserTitle.propTypes = process.env.NODE_ENV !== "production" ? {
  /** The heading level of the title */
  level: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
  /** The title object (text, info, href) */
  title: _propTypes2.default.shape(_DecorativeLink2.default.propTypes),
  /** React children to render */
  children: _propTypes2.default.node
} : {};

GenTeaser.Title = GenTeaserTitle;
GenTeaser.Title.displayName = 'GenTeaser.Title';

/**
  Emphasis wrapper for Date and Orgs
  */

var GenTeaserEmphasis = function GenTeaserEmphasis(props) {
  var children = props.children,
      rest = _objectWithoutProperties(props, ['children']);

  return _react2.default.createElement(
    'div',
    _extends({ className: 'ma__gen-teaser__emphasis' }, rest),
    children
  );
};

GenTeaserEmphasis.propTypes = process.env.NODE_ENV !== "production" ? {
  /** React children to render */
  children: _propTypes2.default.node.isRequired
} : {};

GenTeaser.Emphasis = GenTeaserEmphasis;
GenTeaser.Emphasis.displayName = 'GenTeaser.Emphasis';

/**
  Date
  */

var GenTeaserDate = function GenTeaserDate(props) {
  var date = props.date,
      children = props.children,
      rest = _objectWithoutProperties(props, ['date', 'children']);

  return _react2.default.createElement(
    'span',
    _extends({ className: 'ma__gen-teaser__date' }, rest),
    children || date
  );
};

GenTeaserDate.propTypes = process.env.NODE_ENV !== "production" ? {
  /** Either a formatted date or a formatted date with a label */
  date: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
  /** React children to render */
  children: _propTypes2.default.node
} : {};

GenTeaser.Date = GenTeaserDate;
GenTeaser.Date.displayName = 'GenTeaser.Date';

/**
  Orgs
  */

var GenTeaserOrgs = function GenTeaserOrgs(props) {
  var orgs = props.orgs,
      rest = _objectWithoutProperties(props, ['orgs']);

  return _react2.default.createElement(_TeaserOrgs2.default, _extends({ orgs: orgs }, rest));
};

GenTeaserOrgs.propTypes = process.env.NODE_ENV !== "production" ? {
  /** An comma seperate list of organizations */
  orgs: _propTypes2.default.string
} : {};

GenTeaser.Orgs = GenTeaserOrgs;
GenTeaser.Orgs.displayName = 'GenTeaser.Orgs';

/**
  Description
  */

var GenTeaserDescription = function GenTeaserDescription(props) {
  var children = props.children,
      description = props.description,
      rest = _objectWithoutProperties(props, ['children', 'description']);

  return _react2.default.createElement(
    'div',
    _extends({ className: 'ma__gen-teaser__description' }, rest),
    children || _react2.default.createElement(
      'p',
      null,
      (0, _reactHtmlParser2.default)(description)
    )
  );
};

GenTeaserDescription.propTypes = process.env.NODE_ENV !== "production" ? {
  /** A html formatted or plain string of text */
  description: _propTypes2.default.string,
  /** React children to render */
  children: _propTypes2.default.node
} : {};

GenTeaser.Description = GenTeaserDescription;
GenTeaser.Description.displayName = 'GenTeaser.Description';

/**
  Search bar
  */

var GenTeaserSearchBar = function GenTeaserSearchBar(props) {
  var search = props.search,
      rest = _objectWithoutProperties(props, ['search']);

  return _react2.default.createElement(
    'div',
    _extends({ className: 'ma__gen-teaser__search' }, rest),
    _react2.default.createElement(_TeaserSearch2.default, search)
  );
};

GenTeaserSearchBar.propTypes = process.env.NODE_ENV !== "production" ? {
  /**
    search:
      target: target url of the search bar
      id: id of the search bar
      queryInput: query input variable to replace in the target url with the user entered term
      placeholder: Placeholder text of the search bar.
  */
  search: _propTypes2.default.shape(_TeaserSearch2.default.propTypes).isRequired
} : {};

GenTeaser.SearchBar = GenTeaserSearchBar;
GenTeaser.SearchBar.displayName = 'GenTeaser.SearchBar';

/**
  SubLinks wrapper for formatting key actions into 2 columns
  */

var GenTeaserSubLinks = function GenTeaserSubLinks(props) {
  var children = props.children,
      rest = _objectWithoutProperties(props, ['children']);

  return _react2.default.createElement(
    'div',
    _extends({ className: 'ma__gen-teaser__key-action' }, rest),
    children.length > 2 ? _react2.default.createElement(
      _react2.default.Fragment,
      null,
      _react2.default.createElement(
        'div',
        { className: 'ma__gen-teaser__key-action-col' },
        children.slice(0, 2)
      ),
      _react2.default.createElement(
        'div',
        { className: 'ma__gen-teaser__key-action-col' },
        children.slice(2, 4)
      )
    ) : _react2.default.createElement(
      'div',
      { className: 'ma__gen-teaser__key-action-col' },
      children
    )
  );
};

GenTeaserSubLinks.propTypes = process.env.NODE_ENV !== "production" ? {
  /** React children to render */
  children: _propTypes2.default.node.isRequired
} : {};

GenTeaser.SubLinks = GenTeaserSubLinks;
GenTeaser.SubLinks.displayName = 'GenTeaser.SubLinks';

/**
  KeyAction
  */

var GenTeaserKeyAction = function GenTeaserKeyAction(props) {
  var description = props.description,
      href = props.href,
      text = props.text,
      info = props.info,
      children = props.children,
      rest = _objectWithoutProperties(props, ['description', 'href', 'text', 'info', 'children']);

  return _react2.default.createElement(
    'div',
    _extends({ className: 'ma__gen-teaser__key-action-item' }, rest),
    children || _react2.default.createElement(
      _react2.default.Fragment,
      null,
      text && href && _react2.default.createElement(_DecorativeLink2.default, { href: href, text: text, info: info }),
      description && _react2.default.createElement(
        'p',
        null,
        (0, _reactHtmlParser2.default)(description)
      )
    )
  );
};

GenTeaserKeyAction.propTypes = process.env.NODE_ENV !== "production" ? {
  /** A description of the link */
  description: _propTypes2.default.string,
  /** A link */
  href: _propTypes2.default.string,
  /** Link text */
  text: _propTypes2.default.string,
  /** Link info */
  info: _propTypes2.default.string,
  /** React children to render */
  children: _propTypes2.default.node
} : {};

GenTeaser.KeyAction = GenTeaserKeyAction;
GenTeaser.KeyAction.displayName = 'GenTeaser.KeyAction';

/**
  MoreInfo wrapper for formatting primary and secondary info
  */

var GenTeaserMoreInfo = function GenTeaserMoreInfo(props) {
  var children = props.children,
      rest = _objectWithoutProperties(props, ['children']);

  return _react2.default.createElement(
    'div',
    _extends({ className: 'ma__gen-teaser__moreinfo' }, rest),
    children
  );
};

GenTeaserMoreInfo.propTypes = process.env.NODE_ENV !== "production" ? {
  /** React children to render */
  children: _propTypes2.default.node.isRequired
} : {};

GenTeaser.MoreInfo = GenTeaserMoreInfo;
GenTeaser.MoreInfo.displayName = 'GenTeaser.MoreInfo';

/**
  Primary info
  */

var GenTeaserPrimaryInfo = function GenTeaserPrimaryInfo(props) {
  var children = props.children,
      rest = _objectWithoutProperties(props, ['children']);

  return _react2.default.createElement(
    'div',
    _extends({ className: 'ma__gen-teaser__pimary' }, rest),
    children
  );
};

GenTeaserPrimaryInfo.propTypes = process.env.NODE_ENV !== "production" ? {
  /** React children to render */
  children: _propTypes2.default.node.isRequired
} : {};

GenTeaser.PrimaryInfo = GenTeaserPrimaryInfo;
GenTeaser.PrimaryInfo.displayName = 'GenTeaser.PrimaryInfo';

/**
  Secondary info
  */

var GenTeaserSecondaryInfo = function GenTeaserSecondaryInfo(props) {
  var children = props.children,
      rest = _objectWithoutProperties(props, ['children']);

  return _react2.default.createElement(
    'div',
    _extends({ className: 'ma__gen-teaser__secondary' }, rest),
    children
  );
};

GenTeaserSecondaryInfo.propTypes = process.env.NODE_ENV !== "production" ? {
  /** React children to render */
  children: _propTypes2.default.node.isRequired
} : {};

GenTeaser.SecondaryInfo = GenTeaserSecondaryInfo;
GenTeaser.SecondaryInfo.displayName = 'GenTeaser.SecondaryInfo';

/**
  Address
  */

var GenTeaserAddress = function GenTeaserAddress(props) {
  var address = props.address,
      directionLink = props.directionLink,
      details = props.details,
      rest = _objectWithoutProperties(props, ['address', 'directionLink', 'details']);

  var addrProps = {
    address: address,
    directionLink: directionLink,
    details: details
  };
  return _react2.default.createElement(
    'div',
    _extends({ className: 'ma__gen-teaser__infoitem' }, rest),
    _react2.default.createElement(
      'span',
      { className: 'ma__gen-teaser__infoitem-icon' },
      _react2.default.createElement(_Icon2.default, { name: 'marker', svgWidth: 15, svgHeight: 15 })
    ),
    _react2.default.createElement(_Address2.default, addrProps)
  );
};

GenTeaserAddress.propTypes = process.env.NODE_ENV !== "production" ? {
  /** A string or html formatted string of the address */
  address: _propTypes2.default.string,
  /** A link to directions to the address */
  directionLink: _propTypes2.default.string,
  /** Any details related to the phone number */
  details: _propTypes2.default.string
} : {};

GenTeaser.Address = GenTeaserAddress;
GenTeaser.Address.displayName = 'GenTeaser.Address';

/**
  Phone
  */

var GenTeaserPhone = function GenTeaserPhone(props) {
  var number = props.number,
      details = props.details,
      rest = _objectWithoutProperties(props, ['number', 'details']);

  var phoneProps = {
    number: number,
    details: details
  };
  return _react2.default.createElement(
    'div',
    _extends({ className: 'ma__gen-teaser__infoitem' }, rest),
    _react2.default.createElement(
      'span',
      { className: 'ma__gen-teaser__infoitem-icon' },
      _react2.default.createElement(_Icon2.default, { name: 'phone', svgWidth: 15, svgHeight: 15 })
    ),
    _react2.default.createElement(_PhoneNumber2.default, phoneProps)
  );
};

GenTeaserPhone.propTypes = process.env.NODE_ENV !== "production" ? {
  /** The phone number */
  number: _propTypes2.default.string,
  /** Any details related to the phone number */
  details: _propTypes2.default.string
} : {};

GenTeaser.Phone = GenTeaserPhone;
GenTeaser.Phone.displayName = 'GenTeaser.Phone';

/**
  Email
  */

var GenTeaserEmail = function GenTeaserEmail(props) {
  var email = props.email,
      details = props.details,
      rest = _objectWithoutProperties(props, ['email', 'details']);

  var emailProps = {
    email: email,
    details: details
  };
  return _react2.default.createElement(
    'div',
    _extends({ className: 'ma__gen-teaser__infoitem' }, rest),
    _react2.default.createElement(
      'span',
      { className: 'ma__gen-teaser__infoitem-icon' },
      _react2.default.createElement(_Icon2.default, { name: 'mail', svgWidth: 15, svgHeight: 15 })
    ),
    _react2.default.createElement(_Email2.default, emailProps)
  );
};

GenTeaserEmail.propTypes = process.env.NODE_ENV !== "production" ? {
  /** An email object */
  email: _propTypes2.default.shape(_Email2.default.propTypes).isRequired,
  /** Any details related to the email */
  details: _propTypes2.default.string
} : {};

GenTeaser.Email = GenTeaserEmail;
GenTeaser.Email.displayName = 'GenTeaser.Email';

/**
  Event
  */

var GenTeaserEvent = function GenTeaserEvent(props) {
  var calendars = props.calendars,
      startDate = props.startDate,
      endDate = props.endDate,
      details = props.details,
      location = props.location,
      description = props.description,
      title = props.title,
      rest = _objectWithoutProperties(props, ['calendars', 'startDate', 'endDate', 'details', 'location', 'description', 'title']);

  var dropdownProps = {
    dropdownButton: {
      text: 'Add to Calendar',
      theme: 'c-primary',
      usage: 'quaternary',
      id: 'dropdownbutton-simple',
      'aria-haspopup': true,
      capitalized: true
    }
  };
  var eventProps = {
    startDate: startDate,
    endDate: endDate,
    details: details,
    location: location,
    description: description,
    title: title
  };
  dropdownProps.dropdownItems = calendars.map(function (item) {
    var type = item.type,
        text = item.text;

    var itemVals = '';
    switch (type) {
      case 'yahoo':
      case 'google':
      case 'outlookcom':
        itemVals = {
          text: text,
          href: (0, _utils.buildUrl)(eventProps, type)
        };
        break;
      default:
        itemVals = {
          text: text,
          href: (0, _utils.buildUrl)(eventProps, type, window || ''),
          target: '_blank',
          download: 'download.ics'
        };
        break;
    }
    return itemVals;
  });
  return _react2.default.createElement(
    _react2.default.Fragment,
    null,
    _react2.default.createElement(
      'div',
      _extends({ className: 'ma__gen-teaser__infoitem' }, rest),
      _react2.default.createElement(
        'span',
        { className: 'ma__gen-teaser__infoitem-icon' },
        _react2.default.createElement(_Icon2.default, { name: 'calendar', svgWidth: 15, svgHeight: 15 })
      ),
      _react2.default.createElement(_EventTime2.default, eventProps)
    ),
    _react2.default.createElement(_LinkDropdown2.default, dropdownProps)
  );
};

GenTeaserEvent.propTypes = process.env.NODE_ENV !== "production" ? {
  /** The start date & time of the event  */
  startDate: _propTypes2.default.string,
  /** The end date & time of the event  */
  endDate: _propTypes2.default.string,
  /** The address of the event */
  location: _propTypes2.default.string,
  /** Any details about the event */
  details: _propTypes2.default.string,
  /** What type of calendars you would like users to be able to add to.
      'google', 'yahoo', and 'outlookcom' if passed will render as specific
      formats, all others render as base ics format.
   */
  calendars: _propTypes2.default.arrayOf(_propTypes2.default.string),
  /** The title of the event */
  title: _propTypes2.default.string,
  /** A description of the event */
  description: _propTypes2.default.string
} : {};

GenTeaser.Event = GenTeaserEvent;
GenTeaser.Event.displayName = 'GenTeaser.Event';

/**
  Info details
  */

var GenTeaserInfoDetails = function GenTeaserInfoDetails(props) {
  var icon = props.icon,
      href = props.href,
      text = props.text,
      rest = _objectWithoutProperties(props, ['icon', 'href', 'text']);

  return _react2.default.createElement(
    'div',
    _extends({ className: 'ma__gen-teaser__infoitem' }, rest),
    _react2.default.createElement(
      'span',
      { className: 'ma__gen-teaser__infoitem-icon' },
      _react2.default.createElement(_Icon2.default, { name: icon || 'laptop', svgWidth: 15, svgHeight: 15 })
    ),
    text && !href && _react2.default.createElement(
      'span',
      null,
      text
    ),
    href && text && _react2.default.createElement(_DecorativeLink2.default, { text: text, href: href })
  );
};

GenTeaserInfoDetails.propTypes = process.env.NODE_ENV !== "production" ? {
  /** The text information related to the details */
  text: _propTypes2.default.string.isRequired,
  /** The icon to render in the text, defaults to laptop icon. */
  icon: _propTypes2.default.string,
  /** A link for the text */
  href: _propTypes2.default.string
} : {};

GenTeaser.InfoDetails = GenTeaserInfoDetails;
GenTeaser.InfoDetails.displayName = 'GenTeaser.InfoDetails';

/**
  Tags
  */

var GenTeaserTags = function GenTeaserTags(props) {
  var tags = props.tags,
      rest = _objectWithoutProperties(props, ['tags']);

  return _react2.default.createElement(
    'div',
    _extends({ className: 'ma__gen-teaser__tags' }, rest),

    // eslint-disable-next-line react/no-array-index-key
    tags.map(function (tag, index) {
      return _react2.default.createElement(
        'span',
        { key: tag + '--' + index, className: 'ma__gen-teaser__tag' },
        tag
      );
    })
  );
};

GenTeaserTags.propTypes = process.env.NODE_ENV !== "production" ? {
  /** An array of tags */
  tags: _propTypes2.default.arrayOf(_propTypes2.default.string).isRequired
} : {};

GenTeaser.Tags = GenTeaserTags;
GenTeaser.Tags.displayName = 'GenTeaser.Tags';
module.exports = exports['default'];