src/component/helper/interactionMutex.js

(完整代码) 1KB

define(function (require) {

    var ATTR = '\0_ec_interaction_mutex';

    var interactionMutex = {

        take: function (zr, resourceKey, userKey) {
            var store = getStore(zr);
            store[resourceKey] = userKey;
        },

        release: function (zr, resourceKey, userKey) {
            var store = getStore(zr);
            var uKey = store[resourceKey];

            if (uKey === userKey) {
                store[resourceKey] = null;
            }
        },

        isTaken: function (zr, resourceKey) {
            return !!getStore(zr)[resourceKey];
        }
    };

    function getStore(zr) {
        return zr[ATTR] || (zr[ATTR] = {});
    }

    /**
     * payload: {
     *     type: 'takeGlobalCursor',
     *     key: 'dataZoomSelect', or 'brush', or ...,
     *         If no userKey, release global cursor.
     * }
     */
    require('../../echarts').registerAction(
        {type: 'takeGlobalCursor', event: 'globalCursorTaken', update: 'update'},
        function () {}
    );

    return interactionMutex;
});

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。