38faaa1a7e061349d2a3e0fb94f944c310c15ca5.js 12 KB

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