(encode, type, role, style, config)
| 134440 | } |
| 134441 | |
| 134442 | function applyDefaults(encode, type, role, style, config) { |
| 134443 | var defaults = {}, |
| 134444 | enter = {}, |
| 134445 | update, |
| 134446 | key, |
| 134447 | skip, |
| 134448 | props; // ignore legend and axis |
| 134449 | |
| 134450 | if (role == 'legend' || String(role).indexOf('axis') === 0) { |
| 134451 | role = null; |
| 134452 | } // resolve mark config |
| 134453 | |
| 134454 | |
| 134455 | props = role === _roles.FrameRole ? config.group : role === _roles.MarkRole ? (0, _vegaUtil.extend)({}, config.mark, config[type]) : null; |
| 134456 | |
| 134457 | for (key in props) { |
| 134458 | // do not apply defaults if relevant fields are defined |
| 134459 | skip = has(key, encode) || (key === 'fill' || key === 'stroke') && (has('fill', encode) || has('stroke', encode)); |
| 134460 | if (!skip) applyDefault(defaults, key, props[key]); |
| 134461 | } // resolve styles, apply with increasing precedence |
| 134462 | |
| 134463 | |
| 134464 | (0, _vegaUtil.array)(style).forEach(function (name) { |
| 134465 | var props = config.style && config.style[name]; |
| 134466 | |
| 134467 | for (var key in props) { |
| 134468 | if (!has(key, encode)) { |
| 134469 | applyDefault(defaults, key, props[key]); |
| 134470 | } |
| 134471 | } |
| 134472 | }); |
| 134473 | encode = (0, _vegaUtil.extend)({}, encode); // defensive copy |
| 134474 | |
| 134475 | for (key in defaults) { |
| 134476 | props = defaults[key]; |
| 134477 | |
| 134478 | if (props.signal) { |
| 134479 | (update = update || {})[key] = props; |
| 134480 | } else { |
| 134481 | enter[key] = props; |
| 134482 | } |
| 134483 | } |
| 134484 | |
| 134485 | encode.enter = (0, _vegaUtil.extend)(enter, encode.enter); |
| 134486 | if (update) encode.update = (0, _vegaUtil.extend)(update, encode.update); |
| 134487 | return encode; |
| 134488 | } |
| 134489 | |
| 134490 | function applyDefault(defaults, key, value) { |
| 134491 | defaults[key] = value && value.signal ? { |
no test coverage detected