MCPcopy Create free account
hub / github.com/microsoft/SandDance / configureDomain

Function configureDomain

docs/app/js/sanddance-app.js:129991–130021  ·  view source on GitHub ↗
(scale, _, df)

Source from the content-addressed store, hash-verified

129989 return (0, _vegaScale.isContinuous)(t) && t !== (0, _vegaScale.Time) && t !== (0, _vegaScale.UTC) && (_.scheme || _.range && _.range.length && _.range.every((0, _vegaUtil.isString)));
129990}
129991function configureDomain(scale, _, df) {
129992 // check raw domain, if provided use that and exit early
129993 const raw = rawDomain(scale, _.domainRaw, df);
129994 if (raw > -1) return raw;
129995 var domain = _.domain, type = scale.type, zero = _.zero || _.zero === undefined && includeZero(scale), n, mid;
129996 if (!domain) return 0; // adjust continuous domain for minimum pixel padding
129997 if (includePad(type) && _.padding && domain[0] !== (0, _vegaUtil.peek)(domain)) domain = padDomain(type, domain, _.range, _.padding, _.exponent, _.constant);
129998 // adjust domain based on zero, min, max settings
129999 if (zero || _.domainMin != null || _.domainMax != null || _.domainMid != null) {
130000 n = (domain = domain.slice()).length - 1 || 1;
130001 if (zero) {
130002 if (domain[0] > 0) domain[0] = 0;
130003 if (domain[n] < 0) domain[n] = 0;
130004 }
130005 if (_.domainMin != null) domain[0] = _.domainMin;
130006 if (_.domainMax != null) domain[n] = _.domainMax;
130007 if (_.domainMid != null) {
130008 mid = _.domainMid;
130009 const i = mid > domain[n] ? n + 1 : mid < domain[0] ? 0 : n;
130010 if (i !== n) df.warn("Scale domainMid exceeds domain min or max.", mid);
130011 domain.splice(i, 0, mid);
130012 }
130013 } // set the scale domain
130014 scale.domain(domainCheck(type, domain, df)); // if ordinal scale domain is defined, prevent implicit
130015 // domain construction as side-effect of scale lookup
130016 if (type === (0, _vegaScale.Ordinal)) scale.unknown(_.domainImplicit ? (0, _vegaScale.scaleImplicit) : undefined);
130017 // perform 'nice' adjustment as requested
130018 if (_.nice && scale.nice) scale.nice(_.nice !== true && (0, _vegaScale.tickCount)(scale, _.nice) || null);
130019 // return the cardinality of the domain
130020 return domain.length;
130021}
130022function rawDomain(scale, raw, df) {
130023 if (raw) {
130024 scale.domain(domainCheck(scale.type, raw, df));

Callers 1

transformFunction · 0.70

Calls 6

rawDomainFunction · 0.70
includeZeroFunction · 0.70
includePadFunction · 0.70
padDomainFunction · 0.70
domainCheckFunction · 0.70
warnMethod · 0.45

Tested by

no test coverage detected