Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});

const tslib_1 = require("tslib");
/**
 * @file @todo there is a bug open for missing @description
 * should pass `product` not `name`
 */


const router_1 = require("@skava/router");

const exotic_1 = require("exotic");

const Copy_1 = require("./Copy"); // For temporary fix.. Needs to move this in uxui-modules config


const FACEBOOK_APP_ID = '174209059840584';
const pluginsList = [{
  label: 'Facebook',

  isSatisfiedBy(label) {
    return label === 'Facebook';
  },

  fromPropsToUrl(props) {
    const {
      productName,
      item
    } = props;
    const fromUrl = item.url;
    const appid = FACEBOOK_APP_ID;
    const url = 'https://www.facebook.com/dialog/share?' + 'app_id=' + encodeURIComponent(appid) + '&display=popup&caption=' + encodeURIComponent(productName) + '&href=' + encodeURIComponent(fromUrl) + '&redirect_uri=' + encodeURIComponent('https://www.facebook.com/');
    return url;
  },

  bgColor: '#3A559F',
  color: '#fff',
  dataQa: 'qa-facebook'
}, {
  label: 'Pinterest',

  isSatisfiedBy(label) {
    return label === 'Pinterest';
  },

  fromPropsToUrl(props) {
    const {
      productName,
      item
    } = props;
    const fromUrl = item.url;
    const url = 'https://pinterest.com/pin/create/button/?url=' + encodeURIComponent(fromUrl) + '&description=' + encodeURIComponent(productName);
    return url;
  },

  bgColor: '#BD091D',
  color: '#fff',
  dataQa: 'qa-pinterest'
}, {
  label: 'Twitter',

  isSatisfiedBy(label) {
    return label === 'Twitter';
  },

  fromPropsToUrl(props) {
    const {
      productName,
      item
    } = props;
    const fromUrl = item.url;
    const url = 'https://twitter.com/share?url=' + fromUrl + '&text=' + encodeURIComponent(productName);
    return url;
  },

  bgColor: '#50ABF1',
  color: '#fff',
  dataQa: 'qa-twitter'
}, {
  label: 'social-link',

  isSatisfiedBy(label) {
    return label === 'social-link';
  },

  fromPropsToUrl(props) {
    const {
      item
    } = props;

    item.onClick = args => {
      const currentUrl = router_1.oneRouter.get('href');

      if (currentUrl) {
        Copy_1.copy(currentUrl);
      }

      if (exotic_1.isFunction(props.onClick)) {
        props.onClick(event, item);
      }
    };

    return '';
  },

  bgColor: '#5F6C88',
  color: '#fff'
}];

function fromListOfTemplateStringsToRendered(list, props) {
  const toLinkAttributes = args => {
    const {
      item,
      found
    } = args;
    item.url = router_1.oneRouter.get('href');
    const mergedProps = Object.assign({}, props, item, {
      item
    });
    const url = found.fromPropsToUrl(mergedProps);
    const attributes = Object.assign({}, found, {
      url
    });
    return attributes;
  };

  const toAttributes = args => {
    const {
      found,
      item
    } = args;

    if (exotic_1.isFunction(found.fromPropsToUrl) === true) {
      const _a = toLinkAttributes(args),
            {
        isSatisfiedBy
      } = _a,
            remainingAttributes = tslib_1.__rest(_a, ["isSatisfiedBy"]);

      return remainingAttributes;
    } else {
      const {
        isSatisfiedBy
      } = found,
            remainingAttributes = tslib_1.__rest(found, ["isSatisfiedBy"]);

      return remainingAttributes;
    }
  };

  const updated = (item, index) => {
    const isSatisfiedBy = plugin => plugin.isSatisfiedBy(item.label);

    const found = pluginsList.find(isSatisfiedBy);
    const attributes = toAttributes({
      found,
      item
    });
    return attributes;
  };

  const updatedList = pluginsList.map(updated);
  return updatedList;
}

exports.fromListOfTemplateStringsToRendered = fromListOfTemplateStringsToRendered;

exports.isNonEmptyString = x => exotic_1.isString(x) && x.length > 0; //# sourceMappingURL=deps.js.map