mjml-chart
Advanced tools
Comparing version 1.0.1 to 1.0.2
240
lib/index.js
@@ -10,10 +10,14 @@ 'use strict'; | ||
var _class; | ||
// import Image from 'mjml-image' | ||
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); /** | ||
* GENERATED-CODE | ||
* | ||
* Beware don't edit `index.js` it was automatically generated with `npm run update`, edit `scripts/templates/component.js.tmpl` instead. | ||
*/ | ||
var _mjmlCore = require('mjml-core'); | ||
var _src = require('../../mjml-image/src'); | ||
var _mjmlImage = require('mjml-image'); | ||
var _src2 = _interopRequireDefault(_src); | ||
var _mjmlImage2 = _interopRequireDefault(_mjmlImage); | ||
@@ -24,2 +28,22 @@ var _react = require('react'); | ||
var _querystring = require('querystring'); | ||
var _querystring2 = _interopRequireDefault(_querystring); | ||
var _assert = require('assert'); | ||
var _assert2 = _interopRequireDefault(_assert); | ||
var _memoize = require('lodash/memoize'); | ||
var _memoize2 = _interopRequireDefault(_memoize); | ||
var _toNumber = require('lodash/toNumber'); | ||
var _toNumber2 = _interopRequireDefault(_toNumber); | ||
var _includes = require('lodash/includes'); | ||
var _includes2 = _interopRequireDefault(_includes); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
@@ -35,15 +59,115 @@ | ||
var defaultMJMLDefinition = { | ||
attributes: { | ||
'height': 'auto', | ||
'padding': '10px 25px', | ||
'align': 'center', | ||
'alt': '', | ||
'border': 'none', | ||
'border-radius': '', | ||
'href': '', | ||
'src': '', | ||
'target': '_blank', | ||
'title': '' | ||
} | ||
"cht": null, | ||
"chd": null, | ||
"chds": null, | ||
"chof": null, | ||
"chs": null, | ||
"chdl": null, | ||
"chdls": null, | ||
"chg": null, | ||
"chco": null, | ||
"chtt": null, | ||
"chts": null, | ||
"chls": null, | ||
"chl": null, | ||
"chf": null, | ||
"chan": null, | ||
"chli": null, | ||
"icac": null, | ||
"ichm": null, | ||
"padding": "10px 25px", | ||
"align": "center", | ||
"alt": null, | ||
"border": "none", | ||
"border-radius": null, | ||
"title": null | ||
}; | ||
var imageChartsParameters = [{ | ||
"name": "cht", | ||
"examples": ["bvg", "p"], | ||
"required": true, | ||
"enum": ["bvs", "bhs", "bvg", "bhg", "bvo", "p", "p3", "pc", "pd", "ls", "lc", "lxy", "ls:nda", "lc:nda", "lxy:nda"] | ||
}, { | ||
"name": "chd", | ||
"pattern": "/^((t:(?:(?:[\\-0-9_\\.]+)[,|])+[\\.\\-0-9_]+)|(s:[a-z0-9_,]+)|(e:[a-z0-9_,-\\.]+))$/i", | ||
"examples": ["t:10,20,30|15,25,35"], | ||
"required": true | ||
}, { | ||
"name": "chds", | ||
"pattern": "/a|([0-9\\-],?)+/", | ||
"examples": ["-80,140"] | ||
}, { | ||
"name": "chof", | ||
"examples": [".png"], | ||
"required": false | ||
}, { | ||
"name": "chs", | ||
"pattern": "/^[0-9]{1,3}x[0-9]{1,3}$/", | ||
"examples": ["400x400"], | ||
"required": true | ||
}, { | ||
"name": "chdl", | ||
"pattern": '/^(?:[a-z0-9+\\s\\u00C0-\\u017F_!()&-\xB0.]*\\|?)+$/i', | ||
"examples": ["NASDAQ|FTSE100|DOW"], | ||
"required": false | ||
}, { | ||
"name": "chdls", | ||
"pattern": "/^[0-9A-F]{6}(?:[0-9A-F]{2})?(?:,[0-9]+)?$/i", | ||
"examples": ["9e9e9e,17"], | ||
"required": false | ||
}, { | ||
"name": "chg", | ||
"pattern": "/^[0-9]+(?:,[0-9.]+){0,5}?$/i", | ||
"examples": ["1,1", "0,1,1,5"], | ||
"required": false | ||
}, { | ||
"name": "chco", | ||
"pattern": "/^([0-9A-F]{6}(?:[0-9A-F]{2})?,?\\|?)+$/i", | ||
"examples": ["FFC48C", "FF0000,00FF00,0000FF"], | ||
"required": false | ||
}, { | ||
"name": "chtt", | ||
"pattern": '/^[a-z0-9\\s\\W\\u00C0-\\u017F]+$/i', | ||
"examples": ["My beautiful chart"], | ||
"required": false | ||
}, { | ||
"name": "chts", | ||
"pattern": "/^([A-Z0-9]{6}),[0-9]+(,[lcr])?/i", | ||
"examples": ["00FF00,17"], | ||
"required": false | ||
}, { | ||
"name": "chls", | ||
"pattern": "/^(((?:[0-9]\\.?)+,?){1,3}\\|?)+/i", | ||
"examples": ["10", "3,6,3|5"], | ||
"required": false | ||
}, { | ||
"name": "chl", | ||
"pattern": '/(?:[a-z0-9\\u00C0-\\u017F\\s]+\\|?)+/i', | ||
"examples": ["label1|label2"], | ||
"required": false | ||
}, { | ||
"name": "chf", | ||
"pattern": "/^(?:(?:b(?:[0-9]+|g)|a|c),s,[0-9A-F]{6}(?:[0-9A-F]{2})?|(?:(?:(?:b(?:[0-9]+|g)|c)|ps[0-9]+-[0-9]+),lg,[0-9]{1,2}(?:,[0-9A-F]{6}(?:[0-9A-F]{2})?,[0-9.]+){1,})|(?:(?:b(?:[0-9]+|g)|c),ls,[0-9]{1,2}(?:,[0-9A-F]{6}(?:[0-9A-F]{2})?,[0-9.]+){1,})|\\|?)+$/i", | ||
"examples": ["b0,lg,0,f44336,0.3,03a9f4,0.8"], | ||
"required": false | ||
}, { | ||
"name": "chan", | ||
"pattern": "/^[0-9]{2,4}(?:,(?:easeInQuad|easeOutQuad|easeInOutQuad|easeInCubic|easeOutCubic|easeInOutCubic|easeInQuart|easeOutQuart|easeInOutQuart|easeInQuint|easeOutQuint|easeInOutQuint|easeInSine|easeOutSine|easeInOutSine|easeInExpo|easeOutExpo|easeInOutExpo|easeInCirc|easeOutCirc|easeInOutCirc|easeInElastic|easeOutElastic|easeInOutElastic|easeInBack|easeOutBack|easeInOutBack|easeInBounce|easeOutBounce|easeInOutBounce))?$/", | ||
"examples": ["1200", "1300|easeInOutSine"], | ||
"required": false | ||
}, { | ||
"name": "chli", | ||
"pattern": "/^(?:.*)$/i", | ||
"examples": ["95K€", "45%"], | ||
"required": false | ||
}, { | ||
"name": "icac", | ||
"examples": ["accountId"], | ||
"required": false | ||
}, { | ||
"name": "ichm", | ||
"examples": ["0785cf22a0381c2e0239e27c126de4181f501d117c2c81745611e9db928b0376"], | ||
"required": false | ||
}]; | ||
var endingTag = true; | ||
@@ -65,5 +189,45 @@ var baseStyles = { | ||
var Chart = (0, _mjmlCore.MJMLElement)(_class = function (_Image) { | ||
_inherits(Chart, _Image); | ||
var strToRegExp = (0, _memoize2.default)(function (regexp) { | ||
var _$exec = /\/(.*)\/(.*)/.exec(regexp); | ||
var _$exec2 = _slicedToArray(_$exec, 3); | ||
var __ = _$exec2[0]; | ||
var pattern = _$exec2[1]; | ||
var flags = _$exec2[2]; // eslint-disable-line no-unused-vars | ||
return new RegExp(pattern, flags); | ||
}); | ||
function buildURL(mjAttribute) { | ||
function buildQuery() { | ||
return imageChartsParameters.reduce(function (query, attr) { | ||
var val = mjAttribute(attr.name); | ||
(0, _assert2.default)(!(attr.required && val === undefined), attr.name + ' is required. Examples values ' + attr.examples.join(', ')); | ||
if (val === undefined) { | ||
return query; | ||
} | ||
if (attr.pattern) { | ||
(0, _assert2.default)(strToRegExp(attr.pattern).test(val), '"' + val + '" is an invalid value for ' + attr.name + '. Examples: ' + attr.examples.join(', ')); | ||
} | ||
if (attr.enum) { | ||
(0, _assert2.default)((0, _includes2.default)(attr.enum, val), '"' + val + '" is not an valid value for ' + attr.name + '. Valid values are: ' + JSON.stringify(attr.enum)); | ||
} | ||
query[attr.name] = val; | ||
return query; | ||
}, {}); | ||
} | ||
return 'https://image-charts.com/chart?' + _querystring2.default.stringify(buildQuery()); | ||
} | ||
var Chart = (0, _mjmlCore.MJMLElement)(_class = function (_Component) { | ||
_inherits(Chart, _Component); | ||
function Chart() { | ||
@@ -76,27 +240,25 @@ _classCallCheck(this, Chart); | ||
_createClass(Chart, [{ | ||
key: 'renderImage', | ||
value: function renderImage() { | ||
key: 'render', | ||
value: function render() { | ||
var mjAttribute = this.props.mjAttribute; | ||
var _mjAttribute$split$ma = mjAttribute('chs').split('x').map(_toNumber2.default); | ||
var img = _react2.default.createElement('img', { | ||
'data-fg': 'ok', | ||
alt: mjAttribute('alt'), | ||
title: mjAttribute('title'), | ||
height: mjAttribute('height'), | ||
src: mjAttribute('src'), | ||
style: this.styles.img, | ||
width: this.getContentWidth() }); | ||
var _mjAttribute$split$ma2 = _slicedToArray(_mjAttribute$split$ma, 2); | ||
if (mjAttribute('href') != '') { | ||
return _react2.default.createElement( | ||
'a', | ||
{ | ||
href: mjAttribute('href'), | ||
target: mjAttribute('target') }, | ||
img | ||
); | ||
} | ||
var width = _mjAttribute$split$ma2[0]; | ||
var height = _mjAttribute$split$ma2[1]; | ||
return img; | ||
return _react2.default.createElement(_mjmlImage2.default, { | ||
width: width, | ||
height: height, | ||
src: buildURL(mjAttribute), | ||
padding: mjAttribute('padding'), | ||
align: mjAttribute('align'), | ||
alt: mjAttribute('alt'), | ||
border: mjAttribute('border'), | ||
'border-radius': mjAttribute('border-radius'), | ||
title: mjAttribute('title') | ||
}); | ||
} | ||
@@ -106,3 +268,3 @@ }]); | ||
return Chart; | ||
}(_src2.default)) || _class; | ||
}(_react.Component)) || _class; | ||
@@ -114,2 +276,2 @@ Chart.tagName = tagName; | ||
exports.default = Chart; | ||
exports.default = Chart; |
{ | ||
"name": "mjml-chart", | ||
"description": "mjml-chart", | ||
"version": "1.0.1", | ||
"version": "1.0.2", | ||
"main": "lib/index.js", | ||
@@ -12,3 +12,4 @@ "scripts": { | ||
"update": "node scripts/generateREADME.js > README.md && node scripts/generateComponent.js > src/index.js", | ||
"update-watch": "chokidar 'scripts/**' 'package.json' -c 'npm run update'" | ||
"update-watch": "chokidar 'scripts/**' 'package.json' -c 'npm run update'", | ||
"example-html": "babel-node examples/simple-chart.js" | ||
}, | ||
@@ -35,2 +36,3 @@ "repository": { | ||
"devDependencies": { | ||
"babel-cli": "^6.16.0", | ||
"chai": "^3.5.0", | ||
@@ -37,0 +39,0 @@ "chokidar-cli": "^1.2.0", |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
19137
6
237
6
1
1