860b19356a894cf68565bca8b1bb13d657cc1155.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404
  1. System.register(["__unresolved_0", "cc", "__unresolved_1"], function (_export, _context) {
  2. "use strict";
  3. var _reporterNs, _cclegacy, __checkObsolete__, __checkObsoleteInNamespace__, CCString, Component, Enum, log, Node, _decorator, VMEnv, _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _crd, ccclass, property, executeInEditMode, menu, help, ACTION_MODE, MVCompsEdit;
  4. function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }
  5. function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
  6. function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }
  7. function _reportPossibleCrUseOfVMEnv(extras) {
  8. _reporterNs.report("VMEnv", "./VMEnv", _context.meta, extras);
  9. }
  10. return {
  11. setters: [function (_unresolved_) {
  12. _reporterNs = _unresolved_;
  13. }, function (_cc) {
  14. _cclegacy = _cc.cclegacy;
  15. __checkObsolete__ = _cc.__checkObsolete__;
  16. __checkObsoleteInNamespace__ = _cc.__checkObsoleteInNamespace__;
  17. CCString = _cc.CCString;
  18. Component = _cc.Component;
  19. Enum = _cc.Enum;
  20. log = _cc.log;
  21. Node = _cc.Node;
  22. _decorator = _cc._decorator;
  23. }, function (_unresolved_2) {
  24. VMEnv = _unresolved_2.VMEnv;
  25. }],
  26. execute: function () {
  27. _crd = true;
  28. _cclegacy._RF.push({}, "2359eFXKF5HFYS74K7Y17/U", "VMCompsEdit", undefined);
  29. __checkObsolete__(['CCString', 'Component', 'Enum', 'log', 'Node', '_decorator']);
  30. ({
  31. ccclass,
  32. property,
  33. executeInEditMode,
  34. menu,
  35. help
  36. } = _decorator);
  37. ACTION_MODE = /*#__PURE__*/function (ACTION_MODE) {
  38. ACTION_MODE[ACTION_MODE["SEARCH_COMPONENT"] = 0] = "SEARCH_COMPONENT";
  39. ACTION_MODE[ACTION_MODE["ENABLE_COMPONENT"] = 1] = "ENABLE_COMPONENT";
  40. ACTION_MODE[ACTION_MODE["REPLACE_WATCH_PATH"] = 2] = "REPLACE_WATCH_PATH";
  41. ACTION_MODE[ACTION_MODE["DELETE_COMPONENT"] = 3] = "DELETE_COMPONENT";
  42. return ACTION_MODE;
  43. }(ACTION_MODE || {});
  44. /**
  45. * 用于搜索的MV 组件列表,挂载在父节点后,
  46. * 会遍历搜索下面的所有MV组件, 并且显示其观察值的路径
  47. */
  48. _export("default", MVCompsEdit = (_dec = menu('OopsFramework/Mvvm/Edit-Comps (快速组件操作)'), _dec2 = help('https://gitee.com/dgflash/oops-framework/wikis/pages?sort_id=12037632&doc_id=2873565'), _dec3 = property({
  49. type: [CCString]
  50. }), _dec4 = property({
  51. type: Enum(ACTION_MODE)
  52. }), _dec5 = property({
  53. tooltip: '勾选后,会自动查找 find list 中填写的组件',
  54. visible: function () {
  55. // @ts-ignore
  56. return this.actionType === ACTION_MODE.SEARCH_COMPONENT;
  57. }
  58. }), _dec6 = property({
  59. tooltip: '勾选后,会批量激活 find list 中填写的组件',
  60. visible: function () {
  61. // @ts-ignore
  62. return this.actionType === ACTION_MODE.ENABLE_COMPONENT;
  63. }
  64. }), _dec7 = property({
  65. tooltip: '勾选后,会批量关闭 find list 中填写的组件',
  66. visible: function () {
  67. // @ts-ignore
  68. return this.actionType === ACTION_MODE.ENABLE_COMPONENT;
  69. }
  70. }), _dec8 = property({
  71. tooltip: '允许删除节点的组件,确定需要移除请勾选,防止误操作',
  72. visible: function () {
  73. // @ts-ignore
  74. return this.actionType === ACTION_MODE.DELETE_COMPONENT;
  75. }
  76. }), _dec9 = property({
  77. tooltip: '勾选后,会批量删除 find list 中填写的组件',
  78. displayName: '[ X DELETE X ]',
  79. visible: function () {
  80. // @ts-ignore
  81. return this.allowDelete && this.actionType === ACTION_MODE.DELETE_COMPONENT;
  82. }
  83. }), _dec10 = property({
  84. tooltip: '勾选后,会批量替换掉指定的路径',
  85. visible: function () {
  86. // @ts-ignore
  87. return this.actionType === ACTION_MODE.REPLACE_WATCH_PATH;
  88. }
  89. }), _dec11 = property({
  90. tooltip: '匹配的路径,匹配规则: 搜索开头为 game的路径',
  91. visible: function () {
  92. // @ts-ignore
  93. return this.actionType === ACTION_MODE.REPLACE_WATCH_PATH;
  94. }
  95. }), _dec12 = property({
  96. tooltip: '替换的路径,将匹配到的路径替换',
  97. visible: function () {
  98. // @ts-ignore
  99. return this.actionType === ACTION_MODE.REPLACE_WATCH_PATH;
  100. }
  101. }), _dec13 = property({
  102. tooltip: '是否搜集绑定VM组件的节点?',
  103. visible: function () {
  104. // @ts-ignore
  105. return this.actionType === ACTION_MODE.SEARCH_COMPONENT;
  106. }
  107. }), _dec14 = property({
  108. type: [Node],
  109. readonly: true,
  110. tooltip: '收集到绑定了VM组件相关的节点,可以自己跳转过去',
  111. visible: function () {
  112. // @ts-ignore
  113. return this.canCollectNodes && this.actionType === ACTION_MODE.SEARCH_COMPONENT;
  114. }
  115. }), ccclass(_class = executeInEditMode(_class = _dec(_class = _dec2(_class = (_class2 = class MVCompsEdit extends Component {
  116. constructor(...args) {
  117. super(...args);
  118. _initializerDefineProperty(this, "findList", _descriptor, this);
  119. _initializerDefineProperty(this, "actionType", _descriptor2, this);
  120. _initializerDefineProperty(this, "allowDelete", _descriptor3, this);
  121. _initializerDefineProperty(this, "targetPath", _descriptor4, this);
  122. _initializerDefineProperty(this, "replacePath", _descriptor5, this);
  123. _initializerDefineProperty(this, "canCollectNodes", _descriptor6, this);
  124. _initializerDefineProperty(this, "collectNodes", _descriptor7, this);
  125. }
  126. get findTrigger() {
  127. return false;
  128. }
  129. set findTrigger(v) {
  130. this.setComponents(0);
  131. }
  132. get enableTrigger() {
  133. return false;
  134. }
  135. set enableTrigger(v) {
  136. this.setComponents(1);
  137. }
  138. get disableTrigger() {
  139. return false;
  140. }
  141. set disableTrigger(v) {
  142. this.setComponents(2);
  143. }
  144. get deleteTrigger() {
  145. return false;
  146. }
  147. set deleteTrigger(v) {
  148. this.setComponents(3);
  149. }
  150. get replaceTrigger() {
  151. return false;
  152. }
  153. set replaceTrigger(v) {
  154. this.setComponents(4);
  155. }
  156. onLoad() {
  157. if ((_crd && VMEnv === void 0 ? (_reportPossibleCrUseOfVMEnv({
  158. error: Error()
  159. }), VMEnv) : VMEnv).editor) return;
  160. let path = this.getNodePath(this.node);
  161. console.error('you forget delete MVEditFinder,[path]', path);
  162. }
  163. setComponents(state) {
  164. let array = this.findList;
  165. let title = '搜索到当前节点下面的组件';
  166. switch (state) {
  167. case 0:
  168. title = '搜索到当前节点下面的组件';
  169. break;
  170. case 1:
  171. title = '激活以下节点的组件';
  172. break;
  173. case 2:
  174. title = '关闭以下节点的组件';
  175. break;
  176. case 3:
  177. title = '删除以下节点的组件';
  178. break;
  179. case 4:
  180. title = '替换以下节点的路径';
  181. break;
  182. default:
  183. break;
  184. }
  185. log(title);
  186. log('______________________');
  187. array.forEach(name => {
  188. this.searchComponent(name, state);
  189. });
  190. log('______________________');
  191. }
  192. /**
  193. *
  194. * @param className
  195. * @param state 0-查找节点组件 1-激活节点组件 2-关闭节点组件 3-移除节点组件
  196. */
  197. searchComponent(className, state = 0) {
  198. /**收集节点清空 */
  199. this.collectNodes = [];
  200. let comps = this.node.getComponentsInChildren(className);
  201. if (comps == null || comps.length < 1) return;
  202. log('[' + className + ']:');
  203. comps.forEach(v => {
  204. let ext = '';
  205. if (state <= 3) {
  206. //区分模板模式路径
  207. if (v.templateMode === true) {
  208. ext = v.watchPathArr ? ':[Path:' + v.watchPathArr.join('|') + ']' : '';
  209. } else {
  210. ext = v.watchPath ? ':[Path:' + v.watchPath + ']' : '';
  211. }
  212. }
  213. log(this.getNodePath(v.node) + ext);
  214. switch (state) {
  215. case 0:
  216. //寻找组件
  217. if (this.canCollectNodes) {
  218. if (this.collectNodes.indexOf(v.node) === -1) {
  219. this.collectNodes.push(v.node);
  220. }
  221. }
  222. break;
  223. case 1:
  224. // 激活组件
  225. v.enabled = true;
  226. break;
  227. case 2:
  228. // 关闭组件
  229. v.enabled = false;
  230. break;
  231. case 3:
  232. // 删除组件
  233. v.node.removeComponent(v);
  234. break;
  235. case 4:
  236. // 替换指定路径
  237. let targetPath = this.targetPath;
  238. let replacePath = this.replacePath;
  239. if (v.templateMode === true) {
  240. for (let i = 0; i < v.watchPathArr.length; i++) {
  241. const path = v.watchPathArr[i];
  242. v.watchPathArr[i] = this.replaceNodePath(path, targetPath, replacePath);
  243. }
  244. } else {
  245. v.watchPath = this.replaceNodePath(v.watchPath, targetPath, replacePath);
  246. }
  247. default:
  248. break;
  249. }
  250. });
  251. }
  252. replaceNodePath(path, search, replace) {
  253. let pathArr = path.split('.');
  254. let searchArr = search.split('.');
  255. let replaceArr = replace.split('.');
  256. let match = true;
  257. for (let i = 0; i < searchArr.length; i++) {
  258. //未匹配上
  259. if (pathArr[i] !== searchArr[i]) {
  260. match = false;
  261. break;
  262. }
  263. } //匹配成功准备替换路径
  264. if (match === true) {
  265. for (let i = 0; i < replaceArr.length; i++) {
  266. pathArr[i] = replaceArr[i];
  267. }
  268. log(' 路径更新:', path, '>>>', pathArr.join('.'));
  269. }
  270. return pathArr.join('.');
  271. }
  272. getNodePath(node) {
  273. let parent = node;
  274. let array = [];
  275. while (parent) {
  276. let p = parent.getParent();
  277. if (p) {
  278. array.push(parent.name);
  279. parent = p;
  280. } else {
  281. break;
  282. }
  283. }
  284. return array.reverse().join('/');
  285. }
  286. }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "findList", [_dec3], {
  287. configurable: true,
  288. enumerable: true,
  289. writable: true,
  290. initializer: function () {
  291. return ["VMBase", "VMParent"];
  292. }
  293. }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "actionType", [_dec4], {
  294. configurable: true,
  295. enumerable: true,
  296. writable: true,
  297. initializer: function () {
  298. return ACTION_MODE.SEARCH_COMPONENT;
  299. }
  300. }), _applyDecoratedDescriptor(_class2.prototype, "findTrigger", [_dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "findTrigger"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "enableTrigger", [_dec6], Object.getOwnPropertyDescriptor(_class2.prototype, "enableTrigger"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "disableTrigger", [_dec7], Object.getOwnPropertyDescriptor(_class2.prototype, "disableTrigger"), _class2.prototype), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "allowDelete", [_dec8], {
  301. configurable: true,
  302. enumerable: true,
  303. writable: true,
  304. initializer: function () {
  305. return false;
  306. }
  307. }), _applyDecoratedDescriptor(_class2.prototype, "deleteTrigger", [_dec9], Object.getOwnPropertyDescriptor(_class2.prototype, "deleteTrigger"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "replaceTrigger", [_dec10], Object.getOwnPropertyDescriptor(_class2.prototype, "replaceTrigger"), _class2.prototype), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "targetPath", [_dec11], {
  308. configurable: true,
  309. enumerable: true,
  310. writable: true,
  311. initializer: function () {
  312. return 'game';
  313. }
  314. }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "replacePath", [_dec12], {
  315. configurable: true,
  316. enumerable: true,
  317. writable: true,
  318. initializer: function () {
  319. return '*';
  320. }
  321. }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "canCollectNodes", [_dec13], {
  322. configurable: true,
  323. enumerable: true,
  324. writable: true,
  325. initializer: function () {
  326. return false;
  327. }
  328. }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "collectNodes", [_dec14], {
  329. configurable: true,
  330. enumerable: true,
  331. writable: true,
  332. initializer: function () {
  333. return [];
  334. }
  335. })), _class2)) || _class) || _class) || _class) || _class));
  336. _cclegacy._RF.pop();
  337. _crd = false;
  338. }
  339. };
  340. });
  341. //# sourceMappingURL=860b19356a894cf68565bca8b1bb13d657cc1155.js.map