UNPKG

2.44 kBSource Map (JSON)View Raw
1{"version":3,"file":"single-state.js","sourceRoot":"","sources":["../../../../src/interaction/action/element/single-state.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC;;;;GAIG;AACH;IAAiC,sCAAS;IAA1C;;IAsCA,CAAC;IArCW,2CAAc,GAAxB,UAAyB,MAAe;QACtC,IAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,OAAO,EAAE;YACX,wCAAwC;YACxC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBAClC,OAAO;aACR;YACD,6BAA6B;YAC7B,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aACrC;iBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBACjC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;aACtC;SACF;IACH,CAAC;IAED;;OAEG;IACI,mCAAM,GAAb;QACE,IAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,OAAO,EAAE;YACX,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YAClD,IAAI,CAAC,QAAQ,EAAE;gBACb,IAAI,CAAC,KAAK,EAAE,CAAC;aACd;YACD,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;SAC1C;IACH,CAAC;IAED;;OAEG;IACI,kCAAK,GAAZ;QACE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IACH,yBAAC;AAAD,CAAC,AAtCD,CAAiC,SAAS,GAsCzC;AAED,eAAe,kBAAkB,CAAC","sourcesContent":["import { getCurrentElement, isElementChange } from '../util';\nimport StateBase from './state-base';\n\n/**\n * 单状态量的 Action 基类\n * @class\n * @ignore\n */\nclass ElementSingleState extends StateBase {\n protected setStateEnable(enable: boolean) {\n const element = getCurrentElement(this.context);\n if (element) {\n // 在同一个 element 内部移动,忽视 label 和 shape 之间\n if (!isElementChange(this.context)) {\n return;\n }\n // 仅支持单个状态量的元素,只能由 element 触发\n if (enable) {\n this.clear();\n this.setElementState(element, true);\n } else if (this.hasState(element)) {\n this.setElementState(element, false);\n }\n }\n }\n\n /**\n * 切换选中,只允许选中一个\n */\n public toggle() {\n const element = getCurrentElement(this.context);\n if (element) {\n const hasState = this.hasState(element); // 提前获取状态\n if (!hasState) {\n this.clear();\n }\n this.setElementState(element, !hasState);\n }\n }\n\n /**\n * 取消当前时间影响的状态\n */\n public reset() {\n this.setStateEnable(false);\n }\n}\n\nexport default ElementSingleState;\n"]}
\No newline at end of file