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

Function configureDomain

docs/tests/v2/es6/js/sanddance.js:110989–111042  ·  view source on GitHub ↗
(scale, _, df)

Source from the content-addressed store, hash-verified

110987}
110988
110989function configureDomain(scale, _, df) {
110990 // check raw domain, if provided use that and exit early
110991 var raw = rawDomain(scale, _.domainRaw, df);
110992 if (raw > -1) return raw;
110993 var domain = _.domain,
110994 type = scale.type,
110995 zero = _.zero || _.zero === undefined && includeZero(scale),
110996 n,
110997 mid;
110998 if (!domain) return 0; // adjust continuous domain for minimum pixel padding
110999
111000 if (includePad(type) && _.padding && domain[0] !== (0, _vegaUtil.peek)(domain)) {
111001 domain = padDomain(type, domain, _.range, _.padding, _.exponent, _.constant);
111002 } // adjust domain based on zero, min, max settings
111003
111004
111005 if (zero || _.domainMin != null || _.domainMax != null || _.domainMid != null) {
111006 n = (domain = domain.slice()).length - 1 || 1;
111007
111008 if (zero) {
111009 if (domain[0] > 0) domain[0] = 0;
111010 if (domain[n] < 0) domain[n] = 0;
111011 }
111012
111013 if (_.domainMin != null) domain[0] = _.domainMin;
111014 if (_.domainMax != null) domain[n] = _.domainMax;
111015
111016 if (_.domainMid != null) {
111017 mid = _.domainMid;
111018
111019 if (mid < domain[0] || mid > domain[n]) {
111020 df.warn('Scale domainMid exceeds domain min or max.', mid);
111021 }
111022
111023 domain.splice(n, 0, mid);
111024 }
111025 } // set the scale domain
111026
111027
111028 scale.domain(domainCheck(type, domain, df)); // if ordinal scale domain is defined, prevent implicit
111029 // domain construction as side-effect of scale lookup
111030
111031 if (type === _vegaScale.Ordinal) {
111032 scale.unknown(_.domainImplicit ? _vegaScale.scaleImplicit : undefined);
111033 } // perform 'nice' adjustment as requested
111034
111035
111036 if (_.nice && scale.nice) {
111037 scale.nice(_.nice !== true && (0, _ticks.tickCount)(scale, _.nice) || null);
111038 } // return the cardinality of the domain
111039
111040
111041 return domain.length;
111042}
111043
111044function rawDomain(scale, raw, df) {
111045 if (raw) {

Callers 1

sanddance.jsFile · 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