63e793248272f0f39d2f2a4921b31d1d1a81e0e2.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314
  1. System.register(["__unresolved_0", "cc", "cc/env"], function (_export, _context) {
  2. "use strict";
  3. var _reporterNs, _cclegacy, __checkObsolete__, __checkObsoleteInNamespace__, Node, Component, Enum, Sprite, SpriteFrame, tween, _decorator, EventHandler, Button, UITransform, Vec3, DEV, _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _crd, ccclass, property, disallowMultiple, menu, executionOrder, SelectedType, ListItem;
  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 _reportPossibleCrUseOfList(extras) {
  8. _reporterNs.report("List", "./List", _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. Node = _cc.Node;
  18. Component = _cc.Component;
  19. Enum = _cc.Enum;
  20. Sprite = _cc.Sprite;
  21. SpriteFrame = _cc.SpriteFrame;
  22. tween = _cc.tween;
  23. _decorator = _cc._decorator;
  24. EventHandler = _cc.EventHandler;
  25. Button = _cc.Button;
  26. UITransform = _cc.UITransform;
  27. Vec3 = _cc.Vec3;
  28. }, function (_ccEnv) {
  29. DEV = _ccEnv.DEV;
  30. }],
  31. execute: function () {
  32. _crd = true;
  33. _cclegacy._RF.push({}, "89d94PvXBBC6oGWbiyvzsMm", "ListItem", undefined);
  34. /******************************************
  35. * @author kL <klk0@qq.com>
  36. * @date 2019/12/9
  37. * @doc 列表Item组件.
  38. * 说明:
  39. * 1、此组件须配合List组件使用。(配套的配套的..)
  40. * @end
  41. ******************************************/
  42. ({
  43. ccclass,
  44. property,
  45. disallowMultiple,
  46. menu,
  47. executionOrder
  48. } = _decorator);
  49. __checkObsolete__(['Node', 'Component', 'Enum', 'Sprite', 'SpriteFrame', 'tween', '_decorator', 'EventHandler', 'Tween', 'Button', 'UITransform', 'Vec3']);
  50. SelectedType = /*#__PURE__*/function (SelectedType) {
  51. SelectedType[SelectedType["NONE"] = 0] = "NONE";
  52. SelectedType[SelectedType["TOGGLE"] = 1] = "TOGGLE";
  53. SelectedType[SelectedType["SWITCH"] = 2] = "SWITCH";
  54. return SelectedType;
  55. }(SelectedType || {});
  56. _export("default", ListItem = (_dec = disallowMultiple(), _dec2 = menu('ListItem'), _dec3 = executionOrder(-5001), _dec4 = property({
  57. type: Enum(SelectedType),
  58. tooltip: DEV && '选择模式'
  59. }), _dec5 = property({
  60. type: Node,
  61. tooltip: DEV && '被选标识',
  62. visible() {
  63. return this.selectedMode > SelectedType.NONE;
  64. }
  65. }), _dec6 = property({
  66. type: SpriteFrame,
  67. tooltip: DEV && '被选择的SpriteFrame',
  68. visible() {
  69. return this.selectedMode == SelectedType.SWITCH;
  70. }
  71. }), _dec7 = property({
  72. tooltip: DEV && '自适应尺寸(宽或高)'
  73. }), ccclass(_class = _dec(_class = _dec2(_class = _dec3(_class = (_class2 = class ListItem extends Component {
  74. constructor() {
  75. super(...arguments);
  76. //选择模式
  77. _initializerDefineProperty(this, "selectedMode", _descriptor, this);
  78. //被选标志
  79. _initializerDefineProperty(this, "selectedFlag", _descriptor2, this);
  80. //被选择的SpriteFrame
  81. _initializerDefineProperty(this, "selectedSpriteFrame", _descriptor3, this);
  82. //未被选择的SpriteFrame
  83. this._unselectedSpriteFrame = null;
  84. //自适应尺寸
  85. _initializerDefineProperty(this, "adaptiveSize", _descriptor4, this);
  86. //选择
  87. this._selected = false;
  88. //按钮组件
  89. this._btnCom = void 0;
  90. //依赖的List组件
  91. this.list = void 0;
  92. //是否已经注册过事件
  93. this._eventReg = false;
  94. //序列id
  95. this.listId = void 0;
  96. }
  97. set selected(val) {
  98. this._selected = val;
  99. if (!this.selectedFlag) return;
  100. switch (this.selectedMode) {
  101. case SelectedType.TOGGLE:
  102. this.selectedFlag.active = val;
  103. break;
  104. case SelectedType.SWITCH:
  105. var sp = this.selectedFlag.getComponent(Sprite);
  106. if (sp) {
  107. sp.spriteFrame = val ? this.selectedSpriteFrame : this._unselectedSpriteFrame;
  108. }
  109. break;
  110. }
  111. }
  112. get selected() {
  113. return this._selected;
  114. }
  115. get btnCom() {
  116. if (!this._btnCom) this._btnCom = this.node.getComponent(Button);
  117. return this._btnCom;
  118. }
  119. onLoad() {
  120. // //没有按钮组件的话,selectedFlag无效
  121. // if (!this.btnCom)
  122. //this.selectedMode == SelectedType.NONE;
  123. //有选择模式时,保存相应的东西
  124. if (this.selectedMode == SelectedType.SWITCH) {
  125. var com = this.selectedFlag.getComponent(Sprite);
  126. this._unselectedSpriteFrame = com.spriteFrame;
  127. }
  128. }
  129. onDestroy() {
  130. this.node.off(Node.EventType.SIZE_CHANGED, this._onSizeChange, this);
  131. }
  132. _registerEvent() {
  133. if (!this._eventReg) {
  134. if (this.btnCom && this.list.selectedMode > 0) {
  135. this.btnCom.clickEvents.unshift(this.createEvt(this, 'onClickThis'));
  136. }
  137. if (this.adaptiveSize) {
  138. this.node.on(Node.EventType.SIZE_CHANGED, this._onSizeChange, this);
  139. }
  140. this._eventReg = true;
  141. }
  142. }
  143. _onSizeChange() {
  144. this.list._onItemAdaptive(this.node);
  145. }
  146. /**
  147. * 创建事件
  148. * @param {cc.Component} component 组件脚本
  149. * @param {string} handlerName 触发函数名称
  150. * @param {cc.Node} node 组件所在node(不传的情况下取component.node)
  151. * @returns cc.Component.EventHandler
  152. */
  153. createEvt(component, handlerName, node) {
  154. if (node === void 0) {
  155. node = null;
  156. }
  157. if (!component.isValid) return; //有些异步加载的,节点以及销毁了。
  158. component['comName'] = component['comName'] || component.name.match(/\<(.*?)\>/g).pop().replace(/\<|>/g, '');
  159. var evt = new EventHandler();
  160. evt.target = node || component.node;
  161. evt.component = component['comName'];
  162. evt.handler = handlerName;
  163. return evt;
  164. }
  165. showAni(aniType, callFunc, del) {
  166. var t = this;
  167. var twe;
  168. var ut = t.node.getComponent(UITransform);
  169. switch (aniType) {
  170. case 0:
  171. //向上消失
  172. twe = tween(t.node).to(.2, {
  173. scale: new Vec3(.7, .7)
  174. }).by(.3, {
  175. position: new Vec3(0, ut.height * 2)
  176. });
  177. break;
  178. case 1:
  179. //向右消失
  180. twe = tween(t.node).to(.2, {
  181. scale: new Vec3(.7, .7)
  182. }).by(.3, {
  183. position: new Vec3(ut.width * 2, 0)
  184. });
  185. break;
  186. case 2:
  187. //向下消失
  188. twe = tween(t.node).to(.2, {
  189. scale: new Vec3(.7, .7)
  190. }).by(.3, {
  191. position: new Vec3(0, ut.height * -2)
  192. });
  193. break;
  194. case 3:
  195. //向左消失
  196. twe = tween(t.node).to(.2, {
  197. scale: new Vec3(.7, .7)
  198. }).by(.3, {
  199. position: new Vec3(ut.width * -2, 0)
  200. });
  201. break;
  202. default:
  203. //默认:缩小消失
  204. twe = tween(t.node).to(.3, {
  205. scale: new Vec3(.1, .1)
  206. });
  207. break;
  208. }
  209. if (callFunc || del) {
  210. twe.call(() => {
  211. if (del) {
  212. t.list._delSingleItem(t.node);
  213. for (var n = t.list.displayData.length - 1; n >= 0; n--) {
  214. if (t.list.displayData[n].id == t.listId) {
  215. t.list.displayData.splice(n, 1);
  216. break;
  217. }
  218. }
  219. }
  220. callFunc();
  221. });
  222. }
  223. twe.start();
  224. }
  225. onClickThis() {
  226. this.list.selectedId = this.listId;
  227. }
  228. }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "selectedMode", [_dec4], {
  229. configurable: true,
  230. enumerable: true,
  231. writable: true,
  232. initializer: function initializer() {
  233. return SelectedType.NONE;
  234. }
  235. }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "selectedFlag", [_dec5], {
  236. configurable: true,
  237. enumerable: true,
  238. writable: true,
  239. initializer: function initializer() {
  240. return null;
  241. }
  242. }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "selectedSpriteFrame", [_dec6], {
  243. configurable: true,
  244. enumerable: true,
  245. writable: true,
  246. initializer: function initializer() {
  247. return null;
  248. }
  249. }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "adaptiveSize", [_dec7], {
  250. configurable: true,
  251. enumerable: true,
  252. writable: true,
  253. initializer: function initializer() {
  254. return false;
  255. }
  256. })), _class2)) || _class) || _class) || _class) || _class));
  257. _cclegacy._RF.pop();
  258. _crd = false;
  259. }
  260. };
  261. });
  262. //# sourceMappingURL=63e793248272f0f39d2f2a4921b31d1d1a81e0e2.js.map