@visactor/vchart
Version:
charts lib based @visactor/VGrammar
22 lines (18 loc) • 1.53 kB
JavaScript
import { isNil, isString, isArray } from "@visactor/vutils";
export const isStopsEqual = (prev, next) => {
var _a, _b;
if (prev === next) return !0;
const prevLength = null !== (_a = prev && prev.length) && void 0 !== _a ? _a : 0;
return prevLength === (null !== (_b = next && next.length) && void 0 !== _b ? _b : 0) && 0 !== prevLength && prev.every(((prevEntry, prevIndex) => !prevEntry && !next[prevIndex] || prevEntry && next[prevIndex] && prevEntry.color === next[prevIndex].color && prevEntry.offset === next[prevIndex].offset));
};
const isColorAttrEqual = (prev, next) => {
if (prev === next) return !0;
if (typeof prev != typeof next) return !1;
if (isString(prev)) return !1;
if (isArray(prev)) return prev.length === next.length && prev.every(((prevEntry, index) => isColorAttrEqual(prevEntry, next[index])));
if (prev.gradient !== next.gradient) return !1;
const prevKeys = Object.keys(prev), nextKeys = Object.keys(next);
return prevKeys.length === nextKeys.length && prevKeys.every((key => "stops" === key ? isStopsEqual(prev[key], next[key]) : prev[key] === next[key]));
}, isLineDashEqual = (prev, next) => prev.length === next.length && prev.join("-") === next.join("-");
export const isSegmentAttrEqual = (prev, next, key) => !(!isNil(prev) || !isNil(next)) || !isNil(prev) && (!isNil(next) && ("lineDash" === key ? isLineDashEqual(prev, next) : "stroke" === key || "fill" === key ? isColorAttrEqual(prev, next) : prev === next));
//# sourceMappingURL=line.js.map