RollLabel.js 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. (function() {
  2. var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
  3. var __module = nodeEnv ? module : {exports:{}};
  4. var __filename = 'preview-scripts/assets/script/frameWork/compment/RollLabel.js';
  5. var __require = nodeEnv ? function (request) {
  6. return cc.require(request);
  7. } : function (request) {
  8. return __quick_compile_project__.require(request, __filename);
  9. };
  10. function __define (exports, require, module) {
  11. if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
  12. cc._RF.push(module, 'a697ftW+K1DarG1kwpw5CQ6', 'RollLabel');
  13. // script/frameWork/compment/RollLabel.ts
  14. "use strict";
  15. var __extends = (this && this.__extends) || (function () {
  16. var extendStatics = function (d, b) {
  17. extendStatics = Object.setPrototypeOf ||
  18. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  19. function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
  20. return extendStatics(d, b);
  21. };
  22. return function (d, b) {
  23. extendStatics(d, b);
  24. function __() { this.constructor = d; }
  25. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  26. };
  27. })();
  28. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  29. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  30. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  31. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  32. return c > 3 && r && Object.defineProperty(target, key, r), r;
  33. };
  34. Object.defineProperty(exports, "__esModule", { value: true });
  35. exports.RollLabelParam = void 0;
  36. var FguiLoadMgr_1 = require("../fgui/FguiLoadMgr");
  37. var _a = cc._decorator, ccclass = _a.ccclass, disallowMultiple = _a.disallowMultiple;
  38. /**
  39. * rolllabel
  40. */
  41. var RollLabel = /** @class */ (function (_super) {
  42. __extends(RollLabel, _super);
  43. function RollLabel() {
  44. var _this = _super !== null && _super.apply(this, arguments) || this;
  45. _this.targetVal = null;
  46. _this.startVal = null;
  47. _this.cb = null;
  48. _this.curVal = null;
  49. _this.isChange = false;
  50. //管理文本对象
  51. _this.obj = null;
  52. _this.defaulChangeTime = 0.5;
  53. _this.defaulOffsetX = 0.5;
  54. _this.defaulOffsetY = 0;
  55. //累计时间
  56. _this.curTime = 0;
  57. return _this;
  58. }
  59. RollLabel.prototype.setData = function (targetVal, cb, param) {
  60. if (cb === void 0) { cb = null; }
  61. if (param === void 0) { param = null; }
  62. this.endCb = param.endCb;
  63. this.changeTime = (param === null || param === void 0 ? void 0 : param.changeTime) ? param.changeTime : this.defaulChangeTime;
  64. if (cb)
  65. this.cb = cb.bind(param === null || param === void 0 ? void 0 : param.target);
  66. if (param === null || param === void 0 ? void 0 : param.oldval) {
  67. this.initLabel(param.oldval);
  68. }
  69. if (this.targetVal != null) {
  70. if (this.targetVal == targetVal)
  71. return;
  72. this.StartRollNum(targetVal);
  73. if (param === null || param === void 0 ? void 0 : param.needArr) {
  74. if (this.upArrCom == null) {
  75. this.upArrCom = fgui.UIPackage.createObject("Common", "RollLabelEff");
  76. this.obj.node.addChild(this.upArrCom.node);
  77. this.arr = this.upArrCom.getChild("arr");
  78. // let leftupx = -this.obj.node.anchorX * this.obj.node.width;
  79. // let offsetx = param?.arrOffsetX != null ? param.arrOffsetX : this.defaulOffsetX;
  80. // let posx = leftupx + offsetx * this.obj.node.width;
  81. // let leftupy = (1 - this.obj.node.anchorY) * this.obj.node.height;
  82. // let offsety = param?.arrOffsetY != null ? param.arrOffsetY : this.defaulOffsetY;
  83. // let posy = leftupy + offsety * this.obj.node.height + this.arr.height / 2;
  84. var leftupx = 0;
  85. var offsetx = (param === null || param === void 0 ? void 0 : param.arrOffsetX) != null ? param.arrOffsetX : this.defaulOffsetX;
  86. var posx = leftupx + offsetx * this.obj.width;
  87. var leftupy = 0;
  88. var offsety = (param === null || param === void 0 ? void 0 : param.arrOffsetY) != null ? param.arrOffsetY : this.defaulOffsetY;
  89. var posy = leftupy - offsety * this.arr.height;
  90. this.upArrCom.x = posx;
  91. this.upArrCom.y = posy;
  92. this.upArrCom.touchable = false;
  93. }
  94. this.StartEff();
  95. }
  96. }
  97. else {
  98. this.initLabel(targetVal);
  99. }
  100. };
  101. RollLabel.prototype.initLabel = function (val) {
  102. this.targetVal = val;
  103. this.curVal = val;
  104. this.ChangeLabel(val);
  105. };
  106. RollLabel.prototype.ChangeLabel = function (num) {
  107. if (this.cb) {
  108. this.cb(num);
  109. }
  110. else {
  111. FguiLoadMgr_1.default.setLabel(this.obj, num === null || num === void 0 ? void 0 : num.toString());
  112. }
  113. };
  114. RollLabel.prototype.StartEff = function () {
  115. var _this = this;
  116. if (this.upEff)
  117. this.upEff.stop();
  118. this.upArrCom.visible = true;
  119. this.arr.y = 0;
  120. this.arr.alpha = 0;
  121. this.upEff = cc
  122. .tween(this.arr)
  123. .to(0.15, {
  124. alpha: 1,
  125. })
  126. .delay(0.2)
  127. .to(0.15, {
  128. alpha: 0,
  129. y: -16,
  130. })
  131. .call(function () {
  132. _this.upArrCom.visible = false;
  133. })
  134. .start();
  135. };
  136. RollLabel.prototype.StartRollNum = function (num) {
  137. if (this.isChange) {
  138. this.curVal = this.targetVal;
  139. this.startVal = this.curVal;
  140. this.SetChangeState(num);
  141. }
  142. else {
  143. this.startVal = this.curVal;
  144. this.SetChangeState(num);
  145. }
  146. };
  147. RollLabel.prototype.SetChangeState = function (targetVal) {
  148. this.targetVal = targetVal;
  149. this.min = this.targetVal - this.startVal;
  150. this.curTime = 0;
  151. this.isChange = true;
  152. };
  153. RollLabel.prototype.update = function (dt) {
  154. if (this.isChange) {
  155. this.curTime += dt;
  156. if (this.curTime > this.changeTime)
  157. this.curTime = this.changeTime;
  158. var persent = this.curTime / this.changeTime;
  159. this.curVal = Math.floor(persent * this.min + this.startVal);
  160. if (this.curVal == this.targetVal || this.curTime >= this.changeTime) {
  161. this.curVal = this.targetVal;
  162. this.isChange = false;
  163. if (this.endCb)
  164. this.endCb();
  165. }
  166. this.ChangeLabel(this.curVal);
  167. }
  168. };
  169. RollLabel.prototype.onDisable = function () {
  170. this.clearState();
  171. };
  172. RollLabel.prototype.clearState = function () {
  173. if (this.upArrCom)
  174. this.upArrCom.visible = false;
  175. this.isChange = false;
  176. this.targetVal = null;
  177. this.curVal = null;
  178. this.startVal = null;
  179. this.min = 0;
  180. this.curTime = 0;
  181. };
  182. RollLabel = __decorate([
  183. ccclass,
  184. disallowMultiple
  185. ], RollLabel);
  186. return RollLabel;
  187. }(cc.Component));
  188. exports.default = RollLabel;
  189. var RollLabelParam = /** @class */ (function () {
  190. function RollLabelParam() {
  191. }
  192. return RollLabelParam;
  193. }());
  194. exports.RollLabelParam = RollLabelParam;
  195. cc._RF.pop();
  196. }
  197. if (nodeEnv) {
  198. __define(__module.exports, __require, __module);
  199. }
  200. else {
  201. __quick_compile_project__.registerModuleFunc(__filename, function () {
  202. __define(__module.exports, __require, __module);
  203. });
  204. }
  205. })();
  206. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9zY3JpcHQvZnJhbWVXb3JrL2NvbXBtZW50L1JvbGxMYWJlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsbURBQThDO0FBRXhDLElBQUEsS0FBZ0MsRUFBRSxDQUFDLFVBQVUsRUFBM0MsT0FBTyxhQUFBLEVBQUUsZ0JBQWdCLHNCQUFrQixDQUFDO0FBRXBEOztHQUVHO0FBR0g7SUFBdUMsNkJBQVk7SUFBbkQ7UUFBQSxxRUFzSkM7UUFySlEsZUFBUyxHQUFXLElBQUksQ0FBQztRQUN6QixjQUFRLEdBQVcsSUFBSSxDQUFDO1FBQ3hCLFFBQUUsR0FBYSxJQUFJLENBQUM7UUFDcEIsWUFBTSxHQUFXLElBQUksQ0FBQztRQUN0QixjQUFRLEdBQVksS0FBSyxDQUFDO1FBS2xDLFFBQVE7UUFDUixTQUFHLEdBQW9FLElBQUksQ0FBQztRQU9uRSxzQkFBZ0IsR0FBRyxHQUFHLENBQUM7UUFDdkIsbUJBQWEsR0FBRyxHQUFHLENBQUM7UUFDcEIsbUJBQWEsR0FBRyxDQUFDLENBQUM7UUFJM0IsTUFBTTtRQUNFLGFBQU8sR0FBVyxDQUFDLENBQUM7O0lBNkg3QixDQUFDO0lBM0hBLDJCQUFPLEdBQVAsVUFBUSxTQUFpQixFQUFFLEVBQW1DLEVBQUUsS0FBNEI7UUFBakUsbUJBQUEsRUFBQSxTQUFtQztRQUFFLHNCQUFBLEVBQUEsWUFBNEI7UUFDM0YsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDL0UsSUFBSSxFQUFFO1lBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtB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QjtRQUNDLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDakQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBckptQixTQUFTO1FBRjdCLE9BQU87UUFDUCxnQkFBZ0I7T0FDSSxTQUFTLENBc0o3QjtJQUFELGdCQUFDO0NBdEpELEFBc0pDLENBdEpzQyxFQUFFLENBQUMsU0FBUyxHQXNKbEQ7a0JBdEpvQixTQUFTO0FBd0o5QjtJQUFBO0lBNkJBLENBQUM7SUFBRCxxQkFBQztBQUFELENBN0JBLEFBNkJDLElBQUE7QUE3Qlksd0NBQWMiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgR2FtZURhdGFDZW50ZXIgZnJvbSBcIi4uLy4uL2RhdGEvR2FtZURhdGFDZW50ZXJcIjtcbmltcG9ydCBGZ3VpTG9hZE1nciBmcm9tIFwiLi4vZmd1aS9GZ3VpTG9hZE1nclwiO1xuXG5jb25zdCB7IGNjY2xhc3MsIGRpc2FsbG93TXVsdGlwbGUgfSA9IGNjLl9kZWNvcmF0b3I7XG5cbi8qKlxuICogcm9sbGxhYmVsXG4gKi9cbkBjY2NsYXNzXG5AZGlzYWxsb3dNdWx0aXBsZVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUm9sbExhYmVsIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcblx0cHJpdmF0ZSB0YXJnZXRWYWw6IG51bWJlciA9IG51bGw7XG5cdHByaXZhdGUgc3RhcnRWYWw6IG51bWJlciA9IG51bGw7XG5cdHByaXZhdGUgY2I6IEZ1bmN0aW9uID0gbnVsbDtcblx0cHJpdmF0ZSBjdXJWYWw6IG51bWJlciA9IG51bGw7XG5cdHByaXZhdGUgaXNDaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcblxuXHQvL+ebruagh+WSjOi1t+Wni+WAvOeahOW3ruWAvFxuXHRwcml2YXRlIG1pbjogbnVtYmVyO1xuXG5cdC8v566h55CG5paH5pys5a+56LGhXG5cdG9iajogZmFpcnlndWkuR0xhYmVsIHwgZmFpcnlndWkuR1RleHRGaWVsZCB8IGZhaXJ5Z3VpLkdSaWNoVGV4dEZpZWxkID0gbnVsbDtcblxuXHRwcml2YXRlIHVwQXJyQ29tOiBmYWlyeWd1aS5HQ29tcG9uZW50O1xuXHRwcml2YXRlIHVwRWZmOiBjYy5Ud2Vlbjtcblx0cHJpdmF0ZSBhcnI6IGZhaXJ5Z3VpLkdDb21wb25lbnQ7XG5cblx0Y2hhbmdlVGltZTogbnVtYmVyO1xuXHRyZWFkb25seSBkZWZhdWxDaGFuZ2VUaW1lID0gMC41O1xuXHRyZWFkb25seSBkZWZhdWxPZmZzZXRYID0gMC41O1xuXHRyZWFkb25seSBkZWZhdWxPZmZzZXRZID0gMDtcblxuXHRlbmRDYjogRnVuY3Rpb247XG5cblx0Ly/ntK/orqHml7bpl7Rcblx0cHJpdmF0ZSBjdXJUaW1lOiBudW1iZXIgPSAwO1xuXG5cdHNldERhdGEodGFyZ2V0VmFsOiBudW1iZXIsIGNiOiAoY3VydmFsOiBudW1iZXIpID0+IHZvaWQgPSBudWxsLCBwYXJhbTogUm9sbExhYmVsUGFyYW0gPSBudWxsKSB7XG5cdFx0dGhpcy5lbmRDYiA9IHBhcmFtLmVuZENiO1xuXHRcdHRoaXMuY2hhbmdlVGltZSA9IHBhcmFtPy5jaGFuZ2VUaW1lID8gcGFyYW0uY2hhbmdlVGltZSA6IHRoaXMuZGVmYXVsQ2hhbmdlVGltZTtcblx0XHRpZiAoY2IpIHRoaXMuY2IgPSBjYi5iaW5kKHBhcmFtPy50YXJnZXQpO1xuXHRcdGlmIChwYXJhbT8ub2xkdmFsKSB7XG5cdFx0XHR0aGlzLmluaXRMYWJlbChwYXJhbS5vbGR2YWwpO1xuXHRcdH1cblx0XHRpZiAodGhpcy50YXJnZXRWYWwgIT0gbnVsbCkge1xuXHRcdFx0aWYgKHRoaXMudGFyZ2V0VmFsID09IHRhcmdldFZhbCkgcmV0dXJuO1xuXHRcdFx0dGhpcy5TdGFydFJvbGxOdW0odGFyZ2V0VmFsKTtcblx0XHRcdGlmIChwYXJhbT8ubmVlZEFycikge1xuXHRcdFx0XHRpZiAodGhpcy51cEFyckNvbSA9PSBudWxsKSB7XG5cdFx0XHRcdFx0dGhpcy51cEFyckNvbSA9IGZndWkuVUlQYWNrYWdlLmNyZWF0ZU9iamVjdChcIkNvbW1vblwiLCBcIlJvbGxMYWJlbEVmZlwiKSBhcyBmYWlyeWd1aS5HQ29tcG9uZW50O1xuXHRcdFx0XHRcdHRoaXMub2JqLm5vZGUuYWRkQ2hpbGQodGhpcy51cEFyckNvbS5ub2RlKTtcblx0XHRcdFx0XHR0aGlzLmFyciA9IHRoaXMudXBBcnJDb20uZ2V0Q2hpbGQoXCJhcnJcIikgYXMgZmFpcnlndWkuR0NvbXBvbmVudDtcblxuXHRcdFx0XHRcdC8vIGxldCBsZWZ0dXB4ID0gLXRoaXMub2JqLm5vZGUuYW5jaG9yWCAqIHRoaXMub2JqLm5vZGUud2lkdGg7XG5cdFx0XHRcdFx0Ly8gbGV0IG9mZnNldHggPSBwYXJhbT8uYXJyT2Zmc2V0WCAhPSBudWxsID8gcGFyYW0uYXJyT2Zmc2V0WCA6IHRoaXMuZGVmYXVsT2Zmc2V0WDtcblx0XHRcdFx0XHQvLyBsZXQgcG9zeCA9IGxlZnR1cHggKyBvZmZzZXR4ICogdGhpcy5vYmoubm9kZS53aWR0aDtcblxuXHRcdFx0XHRcdC8vIGxldCBsZWZ0dXB5ID0gKDEgLSB0aGlzLm9iai5ub2RlLmFuY2hvclkpICogdGhpcy5vYmoubm9kZS5oZWlnaHQ7XG5cdFx0XHRcdFx0Ly8gbGV0IG9mZnNldHkgPSBwYXJhbT8uYXJyT2Zmc2V0WSAhPSBudWxsID8gcGFyYW0uYXJyT2Zmc2V0WSA6IHRoaXMuZGVmYXVsT2Zmc2V0WTtcblx0XHRcdFx0XHQvLyBsZXQgcG9zeSA9IGxlZnR1cHkgKyBvZmZzZXR5ICogdGhpcy5vYmoubm9kZS5oZWlnaHQgKyB0aGlzLmFyci5oZWlnaHQgLyAyO1xuXHRcdFx0XHRcdGxldCBsZWZ0dXB4ID0gMDtcblx0XHRcdFx0XHRsZXQgb2Zmc2V0eCA9IHBhcmFtPy5hcnJPZmZzZXRYICE9IG51bGwgPyBwYXJhbS5hcnJPZmZzZXRYIDogdGhpcy5kZWZhdWxPZmZzZXRYO1xuXHRcdFx0XHRcdGxldCBwb3N4ID0gbGVmdHVweCArIG9mZnNldHggKiB0aGlzLm9iai53aWR0aDtcblxuXHRcdFx0XHRcdGxldCBsZWZ0dXB5ID0gMDtcblx0XHRcdFx0XHRsZXQgb2Zmc2V0eSA9IHBhcmFtPy5hcnJPZmZzZXRZICE9IG51bGwgPyBwYXJhbS5hcnJPZmZzZXRZIDogdGhpcy5kZWZhdWxPZmZzZXRZO1xuXHRcdFx0XHRcdGxldCBwb3N5ID0gbGVmdHVweSAtIG9mZnNldHkgKiB0aGlzLmFyci5oZWlnaHQ7XG5cblx0XHRcdFx0XHR0aGlzLnVwQXJyQ29tLnggPSBwb3N4O1xuXHRcdFx0XHRcdHRoaXMudXBBcnJDb20ueSA9IHBvc3k7XG5cdFx0XHRcdFx0dGhpcy51cEFyckNvbS50b3VjaGFibGUgPSBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLlN0YXJ0RWZmKCk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuaW5pdExhYmVsKHRhcmdldFZhbCk7XG5cdFx0fVxuXHR9XG5cblx0aW5pdExhYmVsKHZhbCkge1xuXHRcdHRoaXMudGFyZ2V0VmFsID0gdmFsO1xuXHRcdHRoaXMuY3VyVmFsID0gdmFsO1xuXHRcdHRoaXMuQ2hhbmdlTGFiZWwodmFsKTtcblx0fVxuXG5cdENoYW5nZUxhYmVsKG51bTogbnVtYmVyKSB7XG5cdFx0aWYgKHRoaXMuY2IpIHtcblx0XHRcdHRoaXMuY2IobnVtKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Rmd1aUxvYWRNZ3Iuc2V0TGFiZWwodGhpcy5vYmosIG51bT8udG9TdHJpbmcoKSk7XG5cdFx0fVxuXHR9XG5cblx0U3RhcnRFZmYoKSB7XG5cdFx0aWYgKHRoaXMudXBFZmYpIHRoaXMudXBFZmYuc3RvcCgpO1xuXHRcdHRoaXMudXBBcnJDb20udmlzaWJsZSA9IHRydWU7XG5cdFx0dGhpcy5hcnIueSA9IDA7XG5cdFx0dGhpcy5hcnIuYWxwaGEgPSAwO1xuXHRcdHRoaXMudXBFZmYgPSBjY1xuXHRcdFx0LnR3ZWVuKHRoaXMuYXJyKVxuXHRcdFx0LnRvKDAuMTUsIHtcblx0XHRcdFx0YWxwaGE6IDEsXG5cdFx0XHR9KVxuXHRcdFx0LmRlbGF5KDAuMilcblx0XHRcdC50bygwLjE1LCB7XG5cdFx0XHRcdGFscGhhOiAwLFxuXHRcdFx0XHR5OiAtMTYsXG5cdFx0XHR9KVxuXHRcdFx0LmNhbGwoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLnVwQXJyQ29tLnZpc2libGUgPSBmYWxzZTtcblx0XHRcdH0pXG5cdFx0XHQuc3RhcnQoKTtcblx0fVxuXG5cdFN0YXJ0Um9sbE51bShudW0pIHtcblx0XHRpZiAodGhpcy5pc0NoYW5nZSkge1xuXHRcdFx0dGhpcy5jdXJWYWwgPSB0aGlzLnRhcmdldFZhbDtcblx0XHRcdHRoaXMuc3RhcnRWYWwgPSB0aGlzLmN1clZhbDtcblx0XHRcdHRoaXMuU2V0Q2hhbmdlU3RhdGUobnVtKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5zdGFydFZhbCA9IHRoaXMuY3VyVmFsO1xuXHRcdFx0dGhpcy5TZXRDaGFuZ2VTdGF0ZShudW0pO1xuXHRcdH1cblx0fVxuXG5cdFNldENoYW5nZVN0YXRlKHRhcmdldFZhbDogbnVtYmVyKSB7XG5cdFx0dGhpcy50YXJnZXRWYWwgPSB0YXJnZXRWYWw7XG5cdFx0dGhpcy5taW4gPSB0aGlzLnRhcmdldFZhbCAtIHRoaXMuc3RhcnRWYWw7XG5cdFx0dGhpcy5jdXJUaW1lID0gMDtcblx0XHR0aGlzLmlzQ2hhbmdlID0gdHJ1ZTtcblx0fVxuXG5cdHByb3RlY3RlZCB1cGRhdGUoZHQ6IG51bWJlcik6IHZvaWQge1xuXHRcdGlmICh0aGlzLmlzQ2hhbmdlKSB7XG5cdFx0XHR0aGlzLmN1clRpbWUgKz0gZHQ7XG5cdFx0XHRpZiAodGhpcy5jdXJUaW1lID4gdGhpcy5jaGFuZ2VUaW1lKSB0aGlzLmN1clRpbWUgPSB0aGlzLmNoYW5nZVRpbWU7XG5cdFx0XHRsZXQgcGVyc2VudCA9IHRoaXMuY3VyVGltZSAvIHRoaXMuY2hhbmdlVGltZTtcblx0XHRcdHRoaXMuY3VyVmFsID0gTWF0aC5mbG9vcihwZXJzZW50ICogdGhpcy5taW4gKyB0aGlzLnN0YXJ0VmFsKTtcblx0XHRcdGlmICh0aGlzLmN1clZhbCA9PSB0aGlzLnRhcmdldFZhbCB8fCB0aGlzLmN1clRpbWUgPj0gdGhpcy5jaGFuZ2VUaW1lKSB7XG5cdFx0XHRcdHRoaXMuY3VyVmFsID0gdGhpcy50YXJnZXRWYWw7XG5cdFx0XHRcdHRoaXMuaXNDaGFuZ2UgPSBmYWxzZTtcblx0XHRcdFx0aWYgKHRoaXMuZW5kQ2IpIHRoaXMuZW5kQ2IoKTtcblx0XHRcdH1cblx0XHRcdHRoaXMuQ2hhbmdlTGFiZWwodGhpcy5jdXJWYWwpO1xuXHRcdH1cblx0fVxuXG5cdHByb3RlY3RlZCBvbkRpc2FibGUoKTogdm9pZCB7XG5cdFx0dGhpcy5jbGVhclN0YXRlKCk7XG5cdH1cblxuXHRwcml2YXRlIGNsZWFyU3RhdGUoKSB7XG5cdFx0aWYgKHRoaXMudXBBcnJDb20pIHRoaXMudXBBcnJDb20udmlzaWJsZSA9IGZhbHNlO1xuXHRcdHRoaXMuaXNDaGFuZ2UgPSBmYWxzZTtcblx0XHR0aGlzLnRhcmdldFZhbCA9IG51bGw7XG5cdFx0dGhpcy5jdXJWYWwgPSBudWxsO1xuXHRcdHRoaXMuc3RhcnRWYWwgPSBudWxsO1xuXHRcdHRoaXMubWluID0gMDtcblx0XHR0aGlzLmN1clRpbWUgPSAwO1xuXHR9XG59XG5cbmV4cG9ydCBjbGFzcyBSb2xsTGFiZWxQYXJhbSB7XG5cdC8qKlxuXHQgKiBjYumcgOimgee7keWumueahGJpbmQodGFyZ2V0KVxuXHQgKi9cblx0dGFyZ2V0PzogYW55O1xuXHQvKipcblx0ICog5piv5ZCm6ZyA6KaB566t5aS054m55pWIXG5cdCAqL1xuXHRuZWVkQXJyPzogYm9vbGVhbjtcblx0LyoqXG5cdCAqIOeureWktOeJueaViOWQkeWPs+WBj+enu+eZvuWIhuavlO+8jOm7mOiupDAuNe+8iOS7peaWh+acrOWuveW6puS4ujEwMCVcblx0ICovXG5cdGFyck9mZnNldFg/OiBudW1iZXI7XG5cdC8qKlxuXHQgKiDnrq3lpLTnibnmlYjlkJHkuIrlgY/np7vnmb7liIbmr5TvvIzpu5jorqQwLjXvvIjku6Xnrq3lpLTpq5jluqbkuLoxMDAlXG5cdCAqL1xuXHRhcnJPZmZzZXRZPzogbnVtYmVyO1xuXHQvKipcblx0ICog5piv5ZCm6ZyA6KaB5LiA5byA5aeL5bCx5pS55Y+Y5pWw5a2XXG5cdCAqL1xuXHRvbGR2YWw/OiBudW1iZXI7XG5cdC8qKlxuXHQgKiDmlLnlj5jml7bpl7Rcblx0ICovXG5cdGNoYW5nZVRpbWU/OiBudW1iZXI7XG5cdC8qKlxuXHQgKiDlrozmiJDml7bnmoTlm57osINcblx0ICovXG5cdGVuZENiPzogRnVuY3Rpb247XG59XG4iXX0=