123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- import * as zrUtil from 'zrender/lib/core/util.js';
- import { parseClassType } from './clazz.js';
- var ECEventProcessor = function () {
- function ECEventProcessor() {}
- ECEventProcessor.prototype.normalizeQuery = function (query) {
- var cptQuery = {};
- var dataQuery = {};
- var otherQuery = {};
-
- if (zrUtil.isString(query)) {
- var condCptType = parseClassType(query);
-
- cptQuery.mainType = condCptType.main || null;
- cptQuery.subType = condCptType.sub || null;
- }
-
- else {
-
-
- var suffixes_1 = ['Index', 'Name', 'Id'];
- var dataKeys_1 = {
- name: 1,
- dataIndex: 1,
- dataType: 1
- };
- zrUtil.each(query, function (val, key) {
- var reserved = false;
- for (var i = 0; i < suffixes_1.length; i++) {
- var propSuffix = suffixes_1[i];
- var suffixPos = key.lastIndexOf(propSuffix);
- if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) {
- var mainType = key.slice(0, suffixPos);
-
- if (mainType !== 'data') {
- cptQuery.mainType = mainType;
- cptQuery[propSuffix.toLowerCase()] = val;
- reserved = true;
- }
- }
- }
- if (dataKeys_1.hasOwnProperty(key)) {
- dataQuery[key] = val;
- reserved = true;
- }
- if (!reserved) {
- otherQuery[key] = val;
- }
- });
- }
- return {
- cptQuery: cptQuery,
- dataQuery: dataQuery,
- otherQuery: otherQuery
- };
- };
- ECEventProcessor.prototype.filter = function (eventType, query) {
-
- var eventInfo = this.eventInfo;
- if (!eventInfo) {
- return true;
- }
- var targetEl = eventInfo.targetEl;
- var packedEvent = eventInfo.packedEvent;
- var model = eventInfo.model;
- var view = eventInfo.view;
-
- if (!model || !view) {
- return true;
- }
- var cptQuery = query.cptQuery;
- var dataQuery = query.dataQuery;
- return check(cptQuery, model, 'mainType') && check(cptQuery, model, 'subType') && check(cptQuery, model, 'index', 'componentIndex') && check(cptQuery, model, 'name') && check(cptQuery, model, 'id') && check(dataQuery, packedEvent, 'name') && check(dataQuery, packedEvent, 'dataIndex') && check(dataQuery, packedEvent, 'dataType') && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent));
- function check(query, host, prop, propOnHost) {
- return query[prop] == null || host[propOnHost || prop] === query[prop];
- }
- };
- ECEventProcessor.prototype.afterTrigger = function () {
-
- this.eventInfo = null;
- };
- return ECEventProcessor;
- }();
- export { ECEventProcessor };
- ;
|