(spec, config, userEncode, dataRef)
| 147739 | } |
| 147740 | const alignExpr = `datum.${Perc}<=0?"${Left}":datum.${Perc}>=1?"${Right}":"${Center}"`, baselineExpr = `datum.${Perc}<=0?"${Bottom}":datum.${Perc}>=1?"${Top}":"${Middle}"`; |
| 147741 | function legendGradientLabels(spec, config, userEncode, dataRef) { |
| 147742 | const _ = lookup(spec, config), vertical = _.isVertical(), thickness = encoder(_.gradientThickness()), length = _.gradientLength(); |
| 147743 | let overlap = _("labelOverlap"), enter, update, u, v, adjust = ""; |
| 147744 | const encode = { |
| 147745 | enter: enter = { |
| 147746 | opacity: zero |
| 147747 | }, |
| 147748 | update: update = { |
| 147749 | opacity: one, |
| 147750 | text: { |
| 147751 | field: Label |
| 147752 | } |
| 147753 | }, |
| 147754 | exit: { |
| 147755 | opacity: zero |
| 147756 | } |
| 147757 | }; |
| 147758 | addEncoders(encode, { |
| 147759 | fill: _("labelColor"), |
| 147760 | fillOpacity: _("labelOpacity"), |
| 147761 | font: _("labelFont"), |
| 147762 | fontSize: _("labelFontSize"), |
| 147763 | fontStyle: _("labelFontStyle"), |
| 147764 | fontWeight: _("labelFontWeight"), |
| 147765 | limit: value(spec.labelLimit, config.gradientLabelLimit) |
| 147766 | }); |
| 147767 | if (vertical) { |
| 147768 | enter.align = { |
| 147769 | value: "left" |
| 147770 | }; |
| 147771 | enter.baseline = update.baseline = { |
| 147772 | signal: baselineExpr |
| 147773 | }; |
| 147774 | u = "y"; |
| 147775 | v = "x"; |
| 147776 | adjust = "1-"; |
| 147777 | } else { |
| 147778 | enter.align = update.align = { |
| 147779 | signal: alignExpr |
| 147780 | }; |
| 147781 | enter.baseline = { |
| 147782 | value: "top" |
| 147783 | }; |
| 147784 | u = "x"; |
| 147785 | v = "y"; |
| 147786 | } |
| 147787 | enter[u] = update[u] = { |
| 147788 | signal: adjust + "datum." + Perc, |
| 147789 | mult: length |
| 147790 | }; |
| 147791 | enter[v] = update[v] = thickness; |
| 147792 | thickness.offset = value(spec.labelOffset, config.gradientLabelOffset) || 0; |
| 147793 | overlap = overlap ? { |
| 147794 | separation: _("labelSeparation"), |
| 147795 | method: overlap, |
| 147796 | order: "datum." + Index |
| 147797 | } : undefined; // type, role, style, key, dataRef, encode, extras |
| 147798 | return guideMark({ |
no test coverage detected