src/component/graphic.js
function (graphicModel) {
        var elOptionsToUpdate = graphicModel.useElOptionsToUpdate();

        if (!elOptionsToUpdate) {
            return;
        }

        var elMap = this._elMap;
        var rootGroup = this.group;

        // Top-down tranverse to assign graphic settings to each elements.
        zrUtil.each(elOptionsToUpdate, function (elOption) {
            var $action = elOption.$action;
            var id = elOption.id;
            var existEl = elMap.get(id);
            var parentId = elOption.parentId;
            var targetElParent = parentId != null ? elMap.get(parentId) : rootGroup;

            var elOptionStyle = elOption.style;
            if (elOption.type === 'text' && elOptionStyle) {
                // In top/bottom mode, textVerticalAlign should not be used, which cause
                // inaccurately locating.
                if (elOption.hv && elOption.hv[1]) {
                    elOptionStyle.textVerticalAlign = elOptionStyle.textBaseline = null;
                }

                // Compatible with previous setting: both support fill and textFill,
                // stroke and textStroke.
                !elOptionStyle.hasOwnProperty('textFill') && elOptionStyle.fill && (
                    elOptionStyle.textFill = elOptionStyle.fill
                );
                !elOptionStyle.hasOwnProperty('textStroke') && elOptionStyle.stroke && (
                    elOptionStyle.textStroke = elOptionStyle.stroke
                );
            }

            // Remove unnecessary props to avoid potential problems.
            var elOptionCleaned = getCleanedElOption(elOption);

            // For simple, do not support parent change, otherwise reorder is needed.
            if (__DEV__) {
                existEl && zrUtil.assert(
                    targetElParent === existEl.parent,
                    'Changing parent is not supported.'
                );
            }

            if (!$action || $action === 'merge') {
                existEl
                    ? existEl.attr(elOptionCleaned)
                    : createEl(id, targetElParent, elOptionCleaned, elMap);
            }
            else if ($action === 'replace') {
                removeEl(existEl, elMap);
                createEl(id, targetElParent, elOptionCleaned, elMap);
            }
            else if ($action === 'remove') {
                removeEl(existEl, elMap);
            }

            var el = elMap.get(id);
            if (el) {
                el.__ecGraphicWidth = elOption.width;
                el.__ecGraphicHeight = elOption.height;
                setEventData(el, graphicModel, elOption);
            }
        });
    }
function (graphicModel) {
        var elOptionsToUpdate = graphicModel.useElOptionsToUpdate();

        if (!elOptionsToUpdate) {
            return;
        }

        var elMap = this._elMap;
        var rootGroup = this.group;

        // Top-down tranverse to assign graphic settings to each elements.
        zrUtil.each(elOptionsToUpdate, function (elOption) {
            var $action = elOption.$action;
            var id = elOption.id;
            var existEl = elMap.get(id);
            var parentId = elOption.parentId;
            var targetElParent = parentId != null ? elMap.get(parentId) : rootGroup;

            var elOptionStyle = elOption.style;
            if (elOption.type === 'text' && elOptionStyle) {
                // In top/bottom mode, textVerticalAlign should not be used, which cause
                // inaccurately locating.
                if (elOption.hv && elOption.hv[1]) {
                    elOptionStyle.textVerticalAlign = elOptionStyle.textBaseline = null;
                }

                // Compatible with previous setting: both support fill and textFill,
                // stroke and textStroke.
                !elOptionStyle.hasOwnProperty('textFill') && elOptionStyle.fill && (
                    elOptionStyle.textFill = elOptionStyle.fill
                );
                !elOptionStyle.hasOwnProperty('textStroke') && elOptionStyle.stroke && (
                    elOptionStyle.textStroke = elOptionStyle.stroke
                );
            }

            // Remove unnecessary props to avoid potential problems.
            var elOptionCleaned = getCleanedElOption(elOption);

            // For simple, do not support parent change, otherwise reorder is needed.
            if (__DEV__) {
                existEl && zrUtil.assert(
                    targetElParent === existEl.parent,
                    'Changing parent is not supported.'
                );
            }

            if (!$action || $action === 'merge') {
                existEl
                    ? existEl.attr(elOptionCleaned)
                    : createEl(id, targetElParent, elOptionCleaned, elMap);
            }
            else if ($action === 'replace') {
                removeEl(existEl, elMap);
                createEl(id, targetElParent, elOptionCleaned, elMap);
            }
            else if ($action === 'remove') {
                removeEl(existEl, elMap);
            }

            var el = elMap.get(id);
            if (el) {
                el.__ecGraphicWidth = elOption.width;
                el.__ecGraphicHeight = elOption.height;
                setEventData(el, graphicModel, elOption);
            }
        });
    }
function ( graphicModel ) { var elOptionsToUpdate = graphicModel . useElOptionsToUpdate ( ) ; if ( ! elOptionsToUpdate ) { return ; } var elMap = this . _elMap ; var rootGroup = this . group ; // Top-down tranverse to assign graphic settings to each elements. zrUtil . each ( elOptionsToUpdate , function ( elOption ) { var $action = elOption . $action ; var id = elOption . id ; var existEl = elMap . get ( id ) ; var parentId = elOption . parentId ; var targetElParent = parentId != null ? elMap . get ( parentId ) : rootGroup ; var elOptionStyle = elOption . style ; if ( elOption . type === 'text' && elOptionStyle ) { // In top/bottom mode, textVerticalAlign should not be used, which cause // inaccurately locating. if ( elOption . hv && elOption . hv [ 1 ] ) { elOptionStyle . textVerticalAlign = elOptionStyle . textBaseline = null ; } // Compatible with previous setting: both support fill and textFill, // stroke and textStroke. ! elOptionStyle . hasOwnProperty ( 'textFill' ) && elOptionStyle . fill && ( elOptionStyle . textFill = elOptionStyle . fill ) ; ! elOptionStyle . hasOwnProperty ( 'textStroke' ) && elOptionStyle . stroke && ( elOptionStyle . textStroke = elOptionStyle . stroke ) ; } // Remove unnecessary props to avoid potential problems. var elOptionCleaned = getCleanedElOption ( elOption ) ; // For simple, do not support parent change, otherwise reorder is needed. if ( __DEV__ ) { existEl && zrUtil . assert ( targetElParent === existEl . parent , 'Changing parent is not supported.' ) ; } if ( ! $action || $action === 'merge' ) { existEl ? existEl . attr ( elOptionCleaned ) : createEl ( id , targetElParent , elOptionCleaned , elMap ) ; } else if ( $action === 'replace' ) { removeEl ( existEl , elMap ) ; createEl ( id , targetElParent , elOptionCleaned , elMap ) ; } else if ( $action === 'remove' ) { removeEl ( existEl , elMap ) ; } var el = elMap . get ( id ) ; if ( el ) { el . __ecGraphicWidth = elOption . width ; el . __ecGraphicHeight = elOption . height ; setEventData ( el , graphicModel , elOption ) ; } } ) ; }
Update graphic elements.

@private
@param {Object} graphicModel graphic model
Update graphic elements .