Repository URL to install this package:
|
Version:
4.0.116 ▾
|
"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