(encode, type, role, style, config)
| 146887 | const TitleTextRole = "title-text"; |
| 146888 | const TitleSubtitleRole = "title-subtitle"; |
| 146889 | function applyDefaults(encode, type, role, style, config) { |
| 146890 | const defaults1 = {}, enter = {}; |
| 146891 | let update, key1, skip, props1; // if text mark, apply global lineBreak settings (#2370) |
| 146892 | key1 = "lineBreak"; |
| 146893 | if (type === "text" && config[key1] != null && !has(key1, encode)) applyDefault(defaults1, key1, config[key1]); |
| 146894 | // ignore legend and axis roles |
| 146895 | if (role == "legend" || String(role).startsWith("axis")) role = null; |
| 146896 | // resolve mark config |
| 146897 | props1 = role === FrameRole ? config.group : role === MarkRole ? (0, _vegaUtil.extend)({}, config.mark, config[type]) : null; |
| 146898 | for(key1 in props1){ |
| 146899 | // do not apply defaults if relevant fields are defined |
| 146900 | skip = has(key1, encode) || (key1 === "fill" || key1 === "stroke") && (has("fill", encode) || has("stroke", encode)); |
| 146901 | if (!skip) applyDefault(defaults1, key1, props1[key1]); |
| 146902 | } // resolve styles, apply with increasing precedence |
| 146903 | (0, _vegaUtil.array)(style).forEach((name)=>{ |
| 146904 | const props = config.style && config.style[name]; |
| 146905 | for(const key in props)if (!has(key, encode)) applyDefault(defaults1, key, props[key]); |
| 146906 | }); |
| 146907 | encode = (0, _vegaUtil.extend)({}, encode); // defensive copy |
| 146908 | for(key1 in defaults1){ |
| 146909 | props1 = defaults1[key1]; |
| 146910 | if (props1.signal) (update = update || {})[key1] = props1; |
| 146911 | else enter[key1] = props1; |
| 146912 | } |
| 146913 | encode.enter = (0, _vegaUtil.extend)(enter, encode.enter); |
| 146914 | if (update) encode.update = (0, _vegaUtil.extend)(update, encode.update); |
| 146915 | return encode; |
| 146916 | } |
| 146917 | function applyDefault(defaults2, key, value2) { |
| 146918 | defaults2[key] = value2 && value2.signal ? { |
| 146919 | signal: value2.signal |
no test coverage detected