| import { liftColor } from '../tool/color.js'; | 
| import { getClassId } from './cssClassId.js'; | 
| export function createCSSEmphasis(el, attrs, scope) { | 
|     if (!el.ignore) { | 
|         if (el.isSilent()) { | 
|             var style = { | 
|                 'pointer-events': 'none' | 
|             }; | 
|             setClassAttribute(style, attrs, scope, true); | 
|         } | 
|         else { | 
|             var emphasisStyle = el.states.emphasis && el.states.emphasis.style | 
|                 ? el.states.emphasis.style | 
|                 : {}; | 
|             var fill = emphasisStyle.fill; | 
|             if (!fill) { | 
|                 var normalFill = el.style && el.style.fill; | 
|                 var selectFill = el.states.select | 
|                     && el.states.select.style | 
|                     && el.states.select.style.fill; | 
|                 var fromFill = el.currentStates.indexOf('select') >= 0 | 
|                     ? (selectFill || normalFill) | 
|                     : normalFill; | 
|                 if (fromFill) { | 
|                     fill = liftColor(fromFill); | 
|                 } | 
|             } | 
|             var lineWidth = emphasisStyle.lineWidth; | 
|             if (lineWidth) { | 
|                 var scaleX = (!emphasisStyle.strokeNoScale && el.transform) | 
|                     ? el.transform[0] | 
|                     : 1; | 
|                 lineWidth = lineWidth / scaleX; | 
|             } | 
|             var style = { | 
|                 cursor: 'pointer' | 
|             }; | 
|             if (fill) { | 
|                 style.fill = fill; | 
|             } | 
|             if (emphasisStyle.stroke) { | 
|                 style.stroke = emphasisStyle.stroke; | 
|             } | 
|             if (lineWidth) { | 
|                 style['stroke-width'] = lineWidth; | 
|             } | 
|             setClassAttribute(style, attrs, scope, true); | 
|         } | 
|     } | 
| } | 
| function setClassAttribute(style, attrs, scope, withHover) { | 
|     var styleKey = JSON.stringify(style); | 
|     var className = scope.cssStyleCache[styleKey]; | 
|     if (!className) { | 
|         className = scope.zrId + '-cls-' + getClassId(); | 
|         scope.cssStyleCache[styleKey] = className; | 
|         scope.cssNodes['.' + className + (withHover ? ':hover' : '')] = style; | 
|     } | 
|     attrs["class"] = attrs["class"] ? (attrs["class"] + ' ' + className) : className; | 
| } |