MCPcopy Create free account
hub / github.com/SuperMap/iClient-JavaScript / parse

Function parse

libs/echarts/echarts-en.simple.js:3857–3966  ·  view source on GitHub ↗

* @param {string} colorStr * @param {Array. } out * @return {Array. } * @memberOf module:zrender/util/color

(colorStr, rgbaArr)

Source from the content-addressed store, hash-verified

3855 * @memberOf module:zrender/util/color
3856 */
3857function parse(colorStr, rgbaArr) {
3858 if (!colorStr) {
3859 return;
3860 }
3861 rgbaArr = rgbaArr || [];
3862
3863 var cached = colorCache.get(colorStr);
3864 if (cached) {
3865 return copyRgba(rgbaArr, cached);
3866 }
3867
3868 // colorStr may be not string
3869 colorStr = colorStr + '';
3870 // Remove all whitespace, not compliant, but should just be more accepting.
3871 var str = colorStr.replace(/ /g, '').toLowerCase();
3872
3873 // Color keywords (and transparent) lookup.
3874 if (str in kCSSColorTable) {
3875 copyRgba(rgbaArr, kCSSColorTable[str]);
3876 putToCache(colorStr, rgbaArr);
3877 return rgbaArr;
3878 }
3879
3880 // #abc and #abc123 syntax.
3881 if (str.charAt(0) === '#') {
3882 if (str.length === 4) {
3883 var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.
3884 if (!(iv >= 0 && iv <= 0xfff)) {
3885 setRgba(rgbaArr, 0, 0, 0, 1);
3886 return; // Covers NaN.
3887 }
3888 setRgba(rgbaArr,
3889 ((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8),
3890 (iv & 0xf0) | ((iv & 0xf0) >> 4),
3891 (iv & 0xf) | ((iv & 0xf) << 4),
3892 1
3893 );
3894 putToCache(colorStr, rgbaArr);
3895 return rgbaArr;
3896 }
3897 else if (str.length === 7) {
3898 var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.
3899 if (!(iv >= 0 && iv <= 0xffffff)) {
3900 setRgba(rgbaArr, 0, 0, 0, 1);
3901 return; // Covers NaN.
3902 }
3903 setRgba(rgbaArr,
3904 (iv & 0xff0000) >> 16,
3905 (iv & 0xff00) >> 8,
3906 iv & 0xff,
3907 1
3908 );
3909 putToCache(colorStr, rgbaArr);
3910 return rgbaArr;
3911 }
3912
3913 return;
3914 }

Callers 3

liftFunction · 0.70
createTrackClipFunction · 0.70

Calls 8

indexOfMethod · 0.80
copyRgbaFunction · 0.70
putToCacheFunction · 0.70
setRgbaFunction · 0.70
parseCssFloatFunction · 0.70
parseCssIntFunction · 0.70
hsla2rgbaFunction · 0.70
getMethod · 0.45

Tested by

no test coverage detected