UIHelp.js 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. (function() {
  2. var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
  3. var __module = nodeEnv ? module : {exports:{}};
  4. var __filename = 'preview-scripts/assets/script/logic/ui/UIHelp.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, '89585JHC1ZMu4rrB2kQyLrV', 'UIHelp');
  13. // script/logic/ui/UIHelp.ts
  14. "use strict";
  15. var __spreadArrays = (this && this.__spreadArrays) || function () {
  16. for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
  17. for (var r = Array(s), k = 0, i = 0; i < il; i++)
  18. for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
  19. r[k] = a[j];
  20. return r;
  21. };
  22. Object.defineProperty(exports, "__esModule", { value: true });
  23. var EventConst_1 = require("../../data/const/EventConst");
  24. var EventMng_1 = require("../../manager/EventMng");
  25. var I18nUtil_1 = require("../../utils/I18nUtil");
  26. var UIHelp = /** @class */ (function () {
  27. function UIHelp() {
  28. }
  29. UIHelp.SetLabel = function (node, value) {
  30. if (typeof value === 'number') {
  31. value = value.toString();
  32. }
  33. else if (value == undefined) {
  34. value = "";
  35. }
  36. // 文本和富文本只能二选一
  37. if (node.getComponent(cc.RichText)) {
  38. var defaultColor = node.color.toHEX('#rrggbb');
  39. node.getComponent(cc.RichText).string = "<color=" + defaultColor + ">" + value + "</c>";
  40. }
  41. else {
  42. node.getComponent(cc.Label).string = value;
  43. }
  44. };
  45. /**按钮灰化,只有注册click事件,才会真正被禁用 */
  46. UIHelp.SetBtnGrayState = function (node, isGray) {
  47. var button = node.getComponent(cc.Button);
  48. if (!button) {
  49. return;
  50. }
  51. button.interactable = !isGray;
  52. button.enableAutoGrayEffect = isGray;
  53. };
  54. UIHelp.IsBtnGray = function (node) {
  55. var button = node.getComponent(cc.Button);
  56. if (!button) {
  57. return false;
  58. }
  59. return !button.interactable;
  60. };
  61. // 信息飘字提示
  62. UIHelp.ShowTips = function (message) {
  63. // if (FguiMgr.Instance.isShowing(ShowTipsView)) {
  64. // EventMng.emit(FguiEvent.SHOWTIPS, message)
  65. // }
  66. // else {
  67. // FguiMgr.Instance.openUI(ShowTipsView, ViewZorder.POP_SYSTEM, null, message);
  68. // }
  69. };
  70. UIHelp.ShowI18nTips = function (key) {
  71. var args = [];
  72. for (var _i = 1; _i < arguments.length; _i++) {
  73. args[_i - 1] = arguments[_i];
  74. }
  75. var str = I18nUtil_1.I18n.getI18nText.apply(I18nUtil_1.I18n, __spreadArrays([key], args));
  76. this.ShowTips(str);
  77. };
  78. UIHelp.ShowHelp = function (type, cb) {
  79. // FguiMgr.Instance.openUI(HelpViewView, ViewZorder.HELP, cb, type)
  80. };
  81. /**
  82. * 每日提示整合进dialogview内,如果已经勾选,自动执行cbConfirm
  83. * dayTipsModel改为dailogModel
  84. * @param data
  85. * @returns
  86. */
  87. UIHelp.ShowDialog = function (data, zIndex) {
  88. // if (FguiMgr.Instance.isShowing(DialogViewView)) {
  89. // return
  90. // }
  91. // if (data.dayTipsKey && GameDataCenter.dialog.checkSetToday(data.dayTipsKey) && data.cbConfirm) {
  92. // data.cbConfirm()
  93. // return
  94. // }
  95. // FguiMgr.Instance.openUI(DialogViewView, zIndex ? zIndex : ViewZorder.DIALOG, null, data);
  96. };
  97. // 系统文字弹窗
  98. UIHelp.ShowSystemDialog = function (data) {
  99. /*if (FguiMgr.Instance.isShowing(DialogViewView)) {
  100. return
  101. }
  102. FguiMgr.Instance.openUI(DialogViewView, ViewZorder.POP_SYSTEM, null, data);*/
  103. EventMng_1.default.emit(EventConst_1.WindowEvent.SHOW_SYS_DIALOG, data);
  104. };
  105. UIHelp.ShowSideItemTips = function (item) {
  106. // let cfg = GameDataCenter.item.getItemCfgBase(item);
  107. // let color = uiCommon.getColorByPz(cfg.pinzhi);
  108. // UIHelp.ShowSideTips(`[color=${color}]${cfg.name}x${item[2]}[/color]`, item);
  109. };
  110. // 信息飘字提示
  111. UIHelp.ShowSideTips = function (message, kindItem) {
  112. // if (FguiMgr.Instance.isShowing(ShowSideTipsView)) {
  113. // EventMng.emit(FguiEvent.SHOWSIDETIPS, { msg: message, kindItem: kindItem })
  114. // }
  115. // else {
  116. // FguiMgr.Instance.openUI(ShowSideTipsView, ViewZorder.POP_SYSTEM, null, { msg: message, kindItem: kindItem });
  117. // }
  118. };
  119. UIHelp.FlyItemParticle = function (startPos, endPos, panel, item, index, cb) {
  120. if (cb === void 0) { cb = null; }
  121. // let expEffect = eg.poolManager.GetPool("FlyItemParticle").get();
  122. // if (expEffect) {
  123. // // 通过 size 接口判断对象池中是否有空闲的对象
  124. // expEffect.active = true;
  125. // panel.node.addChild(expEffect);
  126. // expEffect.getComponent(FlyItemParticle).ShowItemEffect(startPos, endPos, item, index, cb);
  127. // } else {
  128. // // 如果没有空闲对象,也就是对象池中备用对象不够时
  129. // AssetsBundleMgr.loadBundlePrefab("particle/flyItem", (err, prefab: cc.Prefab) => {
  130. // if (prefab) {
  131. // expEffect = cc.instantiate(prefab);
  132. // expEffect.active = true;
  133. // expEffect.name = "expEffect";
  134. // panel.node.addChild(expEffect);
  135. // expEffect.getComponent(FlyItemParticle).ShowItemEffect(startPos, endPos, item, index, cb);
  136. // } else {
  137. // console.log("空的particle/flyItem资源");
  138. // }
  139. // });
  140. // }
  141. };
  142. /** 调试弹框用 */
  143. UIHelp.ShowDebugDialog = function (msg) {
  144. var data = {
  145. content: msg,
  146. cbConfirm: function () {
  147. }
  148. };
  149. this.ShowDialog(data);
  150. };
  151. return UIHelp;
  152. }());
  153. exports.default = UIHelp;
  154. cc._RF.pop();
  155. }
  156. if (nodeEnv) {
  157. __define(__module.exports, __require, __module);
  158. }
  159. else {
  160. __quick_compile_project__.registerModuleFunc(__filename, function () {
  161. __define(__module.exports, __require, __module);
  162. });
  163. }
  164. })();
  165. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9zY3JpcHQvbG9naWMvdWkvVUlIZWxwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLDBEQUFxRTtBQUVyRSxtREFBOEM7QUFLOUMsaURBQTRDO0FBeUQ1QztJQUFBO0lBOEhBLENBQUM7SUE3SGlCLGVBQVEsR0FBdEIsVUFBdUIsSUFBYSxFQUFFLEtBQXNCO1FBQ3hELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzNCLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDNUI7YUFBTSxJQUFJLEtBQUssSUFBSSxTQUFTLEVBQUU7WUFDM0IsS0FBSyxHQUFHLEVBQUUsQ0FBQztTQUNkO1FBQ0QsY0FBYztRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDaEMsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxHQUFHLFlBQVUsWUFBWSxTQUFJLEtBQUssU0FBTSxDQUFDO1NBQ2pGO2FBQU07WUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1NBQzlDO0lBQ0wsQ0FBQztJQUVELDhCQUE4QjtJQUNoQixzQkFBZSxHQUE3QixVQUE4QixJQUFhLEVBQUUsTUFBTTtRQUMvQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFBTSxDQUFDLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUM5QixNQUFNLENBQUMsb0JBQW9CLEdBQUcsTUFBTSxDQUFDO0lBQ3pDLENBQUM7SUFFYSxnQkFBUyxHQUF2QixVQUF3QixJQUFhO1FBQ2pDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO0lBQ0ssZUFBUSxHQUF0QixVQUF1QixPQUFlO1FBQ2xDLGtEQUFrRDtRQUNsRCxpREFBaUQ7UUFDakQsSUFBSTtRQUNKLFNBQVM7UUFDVCxtRkFBbUY7UUFDbkYsSUFBSTtJQUNSLENBQUM7SUFFYSxtQkFBWSxHQUExQixVQUEyQixHQUFXO1FBQUUsY0FBTzthQUFQLFVBQU8sRUFBUCxxQkFBTyxFQUFQLElBQU87WUFBUCw2QkFBTzs7UUFDM0MsSUFBSSxHQUFHLEdBQUcsZUFBSSxDQUFDLFdBQVcsT0FBaEIsZUFBSSxrQkFBYSxHQUFHLEdBQUssSUFBSSxFQUFDLENBQUE7UUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRWEsZUFBUSxHQUF0QixVQUF1QixJQUFjLEVBQUUsRUFBYTtRQUNoRCxtRUFBbUU7SUFDdkUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ1csaUJBQVUsR0FBeEIsVUFBeUIsSUFBa0IsRUFBRSxNQUFlO1FBQ3hELG9EQUFvRDtRQUNwRCxhQUFhO1FBQ2IsSUFBSTtRQUNKLG1HQUFtRztRQUNuRyx1QkFBdUI7UUFDdkIsYUFBYTtRQUNiLElBQUk7UUFDSiw0RkFBNEY7SUFDaEcsQ0FBQztJQUNELFNBQVM7SUFDSyx1QkFBZ0IsR0FBOUIsVUFBK0IsSUFBa0I7UUFDN0M7OztxRkFHNkU7UUFDN0Usa0JBQVEsQ0FBQyxJQUFJLENBQUMsd0JBQVcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVhLHVCQUFnQixHQUE5QixVQUErQixJQUFjO1FBQ3pDLHNEQUFzRDtRQUN0RCxpREFBaUQ7UUFDakQsK0VBQStFO0lBQ25GLENBQUM7SUFFRCxTQUFTO0lBQ0ssbUJBQVksR0FBMUIsVUFBMkIsT0FBZSxFQUFFLFFBQW1CO1FBQzNELHNEQUFzRDtRQUN0RCxrRkFBa0Y7UUFDbEYsSUFBSTtRQUNKLFNBQVM7UUFDVCxvSEFBb0g7UUFDcEgsSUFBSTtJQUNSLENBQUM7SUFFYSxzQkFBZSxHQUE3QixVQUE4QixRQUFpQixFQUFFLE1BQWUsRUFBRSxLQUF1QixFQUFFLElBQWMsRUFBRSxLQUFhLEVBQUUsRUFBbUI7UUFBbkIsbUJBQUEsRUFBQSxTQUFtQjtRQUN6SSxtRUFBbUU7UUFDbkUsbUJBQW1CO1FBQ25CLGtDQUFrQztRQUNsQywrQkFBK0I7UUFDL0Isc0NBQXNDO1FBQ3RDLGlHQUFpRztRQUNqRyxXQUFXO1FBQ1gsaUNBQWlDO1FBQ2pDLHlGQUF5RjtRQUN6Rix3QkFBd0I7UUFDeEIsa0RBQWtEO1FBQ2xELHVDQUF1QztRQUN2Qyw0Q0FBNEM7UUFDNUMsOENBQThDO1FBQzlDLHlHQUF5RztRQUN6RyxtQkFBbUI7UUFDbkIsbURBQW1EO1FBQ25ELFlBQVk7UUFDWixVQUFVO1FBQ1YsSUFBSTtJQUNSLENBQUM7SUFFRCxZQUFZO0lBQ0Usc0JBQWUsR0FBN0IsVUFBOEIsR0FBVztRQUNyQyxJQUFJLElBQUksR0FBaUI7WUFDckIsT0FBTyxFQUFFLEdBQUc7WUFDWixTQUFTLEVBQUU7WUFDWCxDQUFDO1NBQ0osQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUNMLGFBQUM7QUFBRCxDQTlIQSxBQThIQyxJQUFBIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbmZpZyBmcm9tIFwiLi4vLi4vQ29uZmlnXCI7XHJcbmltcG9ydCB7IEtpbmRJdGVtIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9YeXNcIjtcclxuaW1wb3J0IEdhbWVEYXRhQ2VudGVyIGZyb20gXCIuLi8uLi9kYXRhL0dhbWVEYXRhQ2VudGVyXCI7XHJcbmltcG9ydCB7IEZndWlFdmVudCwgV2luZG93RXZlbnQgfSBmcm9tIFwiLi4vLi4vZGF0YS9jb25zdC9FdmVudENvbnN0XCI7XHJcbmltcG9ydCB7IEF1ZGlvQ29uc3QsIERheVRpcHNLZXksIEhlbHBUeXBlLCBJbkdhbWUgfSBmcm9tIFwiLi4vLi4vZGF0YS9jb25zdC9UeXBlQ29uc3RcIjtcclxuaW1wb3J0IEV2ZW50TW5nIGZyb20gXCIuLi8uLi9tYW5hZ2VyL0V2ZW50TW5nXCI7XHJcbmltcG9ydCBVSUJhc2UsIHsgQkFTRV9QT1AsIFVJQ2xhc3MgfSBmcm9tIFwiLi9VSUJhc2VcIjtcclxuaW1wb3J0IHsgUGF5UHJvZHVjdFBhcmFtIH0gZnJvbSBcIi4uLy4uL2RhdGEvY29uc3QvVHlwZUNvbnN0XCI7XHJcbmltcG9ydCBGZ3VpTWdyIGZyb20gXCIuLi8uLi9mcmFtZVdvcmsvZmd1aS9GZ3VpTWdyXCI7XHJcbmltcG9ydCBJRGF0YU1vZGVsIGZyb20gXCIuLi8uLi9kYXRhL21vZGVsL0lEYXRhTW9kZWxcIjtcclxuaW1wb3J0IHsgSTE4biB9IGZyb20gXCIuLi8uLi91dGlscy9JMThuVXRpbFwiO1xyXG5pbXBvcnQgeyB1aUNvbW1vbiB9IGZyb20gXCIuLi8uLi91dGlscy9VSUNvbW1vblwiO1xyXG5pbXBvcnQgeyBlZyB9IGZyb20gXCIuLi8uLi9mcmFtZVdvcmsvZWdcIjtcclxuaW1wb3J0IEFzc2V0c0J1bmRsZU1nciBmcm9tIFwiLi4vLi4vdXRpbHMvQXNzZXRzQnVuZGxlTWdyXCI7XHJcbmltcG9ydCB7IFZpZXdaT3JkZXIgfSBmcm9tIFwiLi4vLi4vZGF0YS9jb25zdC9WaWV3Wk9yZGVyXCI7XHJcblxyXG4vKirnoa7lrprmoYbnlYzpnaLlj4LmlbAgKi9cclxuZXhwb3J0IGludGVyZmFjZSBEaWFsb2dQYXJhbXMge1xyXG4gICAgY29udGVudDogc3RyaW5nLC8vIOW8ueeql+aWh+acrOWGheWuuVxyXG4gICAgdGl0bGU/OiBzdHJpbmcsLy8g5by556qX5qCH6aKYXHJcbiAgICBjYkNvbmZpcm0/OiBGdW5jdGlvbiwvLyDnoa7lrprmjInpkq7nmoTkuovku7ZcclxuICAgIGNiQ2FuY2VsPzogRnVuY3Rpb24sLy8g5Y+W5raI5oyJ6ZKu55qE5LqL5Lu2XHJcbiAgICB0eHRDYW5jZWw/OiBzdHJpbmcsLy8g5Y+W5raI5oyJ6ZKu55qE5paH5pysXHJcbiAgICB0eHRDb25maXJtPzogc3RyaW5nLC8vIOehruWumuaMiemSrueahOaWh+acrFxyXG4gICAgb25seUNvbmZpcm0/OiBib29sZWFuLy/lj6rmnInnoa7orqTplK5cclxuICAgIGNvc3RJdGVtPzogS2luZEl0ZW0vL+a2iOiAl+mBk+WFt1xyXG4gICAgLy8gbmVlZEl0ZW0/OiBLaW5kSXRlbS8v6ZyA5rGC6YGT5YW3XHJcbiAgICBzaG93VG9nZ2xlPzogYm9vbGVhbiwvLyDmmK/lkKbmmL7npLp0b2dnbGVcclxuICAgIHVzZURsZz86IHN0cmluZy8vIOWTquS4queVjOmdouiwg+eUqOeahOW8ueeql1xyXG4gICAgZGF5VGlwc0tleT86IERheVRpcHNLZXksLy/ku4rml6XkuI3lho3mj5DphpJrZXnvvIzkuI3kuLrnqbrliJnorr7nva5cclxuICAgIHRpcHNNb2RlbD86IElEYXRhTW9kZWwsLy/mnKzmrKHnmbvlvZXkuI3lho3mj5DphpJtb2RlbO+8jOS4jeS4uuepuuWImeiuvue9rlxyXG4gICAgdGlwc0tleT86IHN0cmluZywvL+acrOasoeeZu+W9leS4jeWGjeaPkOmGkmtlee+8jOS4jeS4uuepuuWImeiuvue9rlxyXG4gICAgc2hvd1ZpZGVvQnRuPzogYm9vbGVhbiwvL+aYvuekuuinhumikeaMiemSrlxyXG4gICAgdmlkZW9DYj86IEZ1bmN0aW9uLC8v6KeG6aKR5oyJ6ZKu5Zue6LCDXHJcbiAgICBtYXNrQ2xvc2VPbmx5PzogYm9vbGVhbiwvL+eCueWHu+mBrue9qeWPquWFs+mXrSDkuI3miafooYxjYW5jZWxcclxuICAgIC8vIHZpZGVvUGFyYW0/OiB7XHJcbiAgICAvLyAgICAga2lkOiBzdHJpbmcsXHJcbiAgICAvLyAgICAgc2VuZFVybDogc3RyaW5nLFxyXG4gICAgLy8gICAgIHNlbmRQYXJhbTogYW55XHJcbiAgICAvLyB9XHJcbn1cclxuXHJcbi8qKuehruWumuahhueVjOmdouWPguaVsCAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIERpYWxvZ0ppbnRpYW9UaXBzUGFyYW1zIHtcclxuICAgIGRhdGE6IFBheVByb2R1Y3RQYXJhbSxcclxuICAgIG5lZWROdW06IG51bWJlcixcclxuICAgIGNiQ29uZmlybT86IEZ1bmN0aW9uLFxyXG4gICAgY2JDYW5jZWw/OiBGdW5jdGlvbixcclxufVxyXG5cclxuLyoq6LSt5Lmw6YGT5YW35by556qX55WM6Z2i5Y+C5pWwICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQnV5SXRlbVBhcmFtcyB7XHJcbiAgICAvLyBub0Fza0tleTogU2hvcFRvb2xLZXlcclxuICAgIGJ1eUl0ZW06IEtpbmRJdGVtLy/pnIDopoHotK3kubDnmoTpgZPlhbdcclxuICAgIGNvc3RJdGVtOiBLaW5kSXRlbS8v5raI6ICX6YGT5YW3XHJcbiAgICBjYjogRnVuY3Rpb24vL+i0reS5sOWbnuiwg1xyXG59XHJcblxyXG4vKirpgJrnlKjovpPlhaXmoYblj4LmlbAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIElucHV0UGFyYW1zIHtcclxuICAgIGNvbnRlbnQ/OiBzdHJpbmcsLy8g5by556qX6L6T5YWl5qGG5paH5pys5YaF5a65XHJcbiAgICB0aXRsZT86IHN0cmluZywvLyDlvLnnqpfmoIfpophcclxuICAgIGNiQ29uZmlybTogRnVuY3Rpb24sLy8g56Gu5a6a5oyJ6ZKu55qE5LqL5Lu2XHJcbiAgICB0eHRDb25maXJtPzogc3RyaW5nLC8vIOehruWumuaMiemSrueahOaWh+acrFxyXG4gICAgbGltaXRMZW5ndGg/OiBudW1iZXIsLy8g6ZmQ5Yi255qE5a2X56ym5pWw6YePXHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFVJSGVscCB7XHJcbiAgICBwdWJsaWMgc3RhdGljIFNldExhYmVsKG5vZGU6IGNjLk5vZGUsIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgdmFsdWUgPSBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyDmlofmnKzlkozlr4zmlofmnKzlj6rog73kuozpgInkuIBcclxuICAgICAgICBpZiAobm9kZS5nZXRDb21wb25lbnQoY2MuUmljaFRleHQpKSB7XHJcbiAgICAgICAgICAgIGxldCBkZWZhdWx0Q29sb3IgPSBub2RlLmNvbG9yLnRvSEVYKCcjcnJnZ2JiJyk7XHJcbiAgICAgICAgICAgIG5vZGUuZ2V0Q29tcG9uZW50KGNjLlJpY2hUZXh0KS5zdHJpbmcgPSBgPGNvbG9yPSR7ZGVmYXVsdENvbG9yfT4ke3ZhbHVlfTwvYz5gO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG5vZGUuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB2YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoq5oyJ6ZKu54Gw5YyW77yM5Y+q5pyJ5rOo5YaMY2xpY2vkuovku7bvvIzmiY3kvJrnnJ/mraPooqvnpoHnlKggKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgU2V0QnRuR3JheVN0YXRlKG5vZGU6IGNjLk5vZGUsIGlzR3JheSkge1xyXG4gICAgICAgIGxldCBidXR0b24gPSBub2RlLmdldENvbXBvbmVudChjYy5CdXR0b24pO1xyXG4gICAgICAgIGlmICghYnV0dG9uKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnV0dG9uLmludGVyYWN0YWJsZSA9ICFpc0dyYXk7XHJcbiAgICAgICAgYnV0dG9uLmVuYWJsZUF1dG9HcmF5RWZmZWN0ID0gaXNHcmF5O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgSXNCdG5HcmF5KG5vZGU6IGNjLk5vZGUpIHtcclxuICAgICAgICBsZXQgYnV0dG9uID0gbm9kZS5nZXRDb21wb25lbnQoY2MuQnV0dG9uKTtcclxuICAgICAgICBpZiAoIWJ1dHRvbikge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAhYnV0dG9uLmludGVyYWN0YWJsZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyDkv6Hmga/po5jlrZfmj5DnpLpcclxuICAgIHB1YmxpYyBzdGF0aWMgU2hvd1RpcHMobWVzc2FnZTogc3RyaW5nKSB7XHJcbiAgICAgICAgLy8gaWYgKEZndWlNZ3IuSW5zdGFuY2UuaXNTaG93aW5nKFNob3dUaXBzVmlldykpIHtcclxuICAgICAgICAvLyAgICAgRXZlbnRNbmcuZW1pdChGZ3VpRXZlbnQuU0hPV1RJUFMsIG1lc3NhZ2UpXHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIC8vIGVsc2Uge1xyXG4gICAgICAgIC8vICAgICBGZ3VpTWdyLkluc3RhbmNlLm9wZW5VSShTaG93VGlwc1ZpZXcsIFZpZXdab3JkZXIuUE9QX1NZU1RFTSwgbnVsbCwgbWVzc2FnZSk7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgU2hvd0kxOG5UaXBzKGtleTogc3RyaW5nLCAuLi5hcmdzKSB7XHJcbiAgICAgICAgbGV0IHN0ciA9IEkxOG4uZ2V0STE4blRleHQoa2V5LCAuLi5hcmdzKVxyXG4gICAgICAgIHRoaXMuU2hvd1RpcHMoc3RyKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIFNob3dIZWxwKHR5cGU6IEhlbHBUeXBlLCBjYj86IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgLy8gRmd1aU1nci5JbnN0YW5jZS5vcGVuVUkoSGVscFZpZXdWaWV3LCBWaWV3Wm9yZGVyLkhFTFAsIGNiLCB0eXBlKVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5q+P5pel5o+Q56S65pW05ZCI6L+bZGlhbG9ndmlld+WGhe+8jOWmguaenOW3sue7j+WLvumAie+8jOiHquWKqOaJp+ihjGNiQ29uZmlybVxyXG4gICAgICogZGF5VGlwc01vZGVs5pS55Li6ZGFpbG9nTW9kZWxcclxuICAgICAqIEBwYXJhbSBkYXRhIFxyXG4gICAgICogQHJldHVybnMgXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgU2hvd0RpYWxvZyhkYXRhOiBEaWFsb2dQYXJhbXMsIHpJbmRleD86IG51bWJlcikge1xyXG4gICAgICAgIC8vIGlmIChGZ3VpTWdyLkluc3RhbmNlLmlzU2hvd2luZyhEaWFsb2dWaWV3VmlldykpIHtcclxuICAgICAgICAvLyAgICAgcmV0dXJuXHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIC8vIGlmIChkYXRhLmRheVRpcHNLZXkgJiYgR2FtZURhdGFDZW50ZXIuZGlhbG9nLmNoZWNrU2V0VG9kYXkoZGF0YS5kYXlUaXBzS2V5KSAmJiBkYXRhLmNiQ29uZmlybSkge1xyXG4gICAgICAgIC8vICAgICBkYXRhLmNiQ29uZmlybSgpXHJcbiAgICAgICAgLy8gICAgIHJldHVyblxyXG4gICAgICAgIC8vIH1cclxuICAgICAgICAvLyBGZ3VpTWdyLkluc3RhbmNlLm9wZW5VSShEaWFsb2dWaWV3VmlldywgekluZGV4ID8gekluZGV4IDogVmlld1pvcmRlci5ESUFMT0csIG51bGwsIGRhdGEpO1xyXG4gICAgfVxyXG4gICAgLy8g57O757uf5paH5a2X5by556qXXHJcbiAgICBwdWJsaWMgc3RhdGljIFNob3dTeXN0ZW1EaWFsb2coZGF0YTogRGlhbG9nUGFyYW1zKSB7XHJcbiAgICAgICAgLyppZiAoRmd1aU1nci5JbnN0YW5jZS5pc1Nob3dpbmcoRGlhbG9nVmlld1ZpZXcpKSB7XHJcbiAgICAgICAgICAgIHJldHVyblxyXG4gICAgICAgIH1cclxuICAgICAgICBGZ3VpTWdyLkluc3RhbmNlLm9wZW5VSShEaWFsb2dWaWV3VmlldywgVmlld1pvcmRlci5QT1BfU1lTVEVNLCBudWxsLCBkYXRhKTsqL1xyXG4gICAgICAgIEV2ZW50TW5nLmVtaXQoV2luZG93RXZlbnQuU0hPV19TWVNfRElBTE9HLCBkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIFNob3dTaWRlSXRlbVRpcHMoaXRlbTogS2luZEl0ZW0pIHtcclxuICAgICAgICAvLyBsZXQgY2ZnID0gR2FtZURhdGFDZW50ZXIuaXRlbS5nZXRJdGVtQ2ZnQmFzZShpdGVtKTtcclxuICAgICAgICAvLyBsZXQgY29sb3IgPSB1aUNvbW1vbi5nZXRDb2xvckJ5UHooY2ZnLnBpbnpoaSk7XHJcbiAgICAgICAgLy8gVUlIZWxwLlNob3dTaWRlVGlwcyhgW2NvbG9yPSR7Y29sb3J9XSR7Y2ZnLm5hbWV9eCR7aXRlbVsyXX1bL2NvbG9yXWAsIGl0ZW0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOS/oeaBr+mjmOWtl+aPkOekulxyXG4gICAgcHVibGljIHN0YXRpYyBTaG93U2lkZVRpcHMobWVzc2FnZTogc3RyaW5nLCBraW5kSXRlbT86IEtpbmRJdGVtKSB7XHJcbiAgICAgICAgLy8gaWYgKEZndWlNZ3IuSW5zdGFuY2UuaXNTaG93aW5nKFNob3dTaWRlVGlwc1ZpZXcpKSB7XHJcbiAgICAgICAgLy8gICAgIEV2ZW50TW5nLmVtaXQoRmd1aUV2ZW50LlNIT1dTSURFVElQUywgeyBtc2c6IG1lc3NhZ2UsIGtpbmRJdGVtOiBraW5kSXRlbSB9KVxyXG4gICAgICAgIC8vIH1cclxuICAgICAgICAvLyBlbHNlIHtcclxuICAgICAgICAvLyAgICAgRmd1aU1nci5JbnN0YW5jZS5vcGVuVUkoU2hvd1NpZGVUaXBzVmlldywgVmlld1pvcmRlci5QT1BfU1lTVEVNLCBudWxsLCB7IG1zZzogbWVzc2FnZSwga2luZEl0ZW06IGtpbmRJdGVtIH0pO1xyXG4gICAgICAgIC8vIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIEZseUl0ZW1QYXJ0aWNsZShzdGFydFBvczogY2MuVmVjMywgZW5kUG9zOiBjYy5WZWMzLCBwYW5lbDogZmFpcnlndWkuR09iamVjdCwgaXRlbTogS2luZEl0ZW0sIGluZGV4OiBudW1iZXIsIGNiOiBGdW5jdGlvbiA9IG51bGwpIHtcclxuICAgICAgICAvLyBsZXQgZXhwRWZmZWN0ID0gZWcucG9vbE1hbmFnZXIuR2V0UG9vbChcIkZseUl0ZW1QYXJ0aWNsZVwiKS5nZXQoKTtcclxuICAgICAgICAvLyBpZiAoZXhwRWZmZWN0KSB7XHJcbiAgICAgICAgLy8gICAgIC8vIOmAmui/hyBzaXplIOaOpeWPo+WIpOaWreWvueixoeaxoOS4reaYr+WQpuacieepuumXsueahOWvueixoVxyXG4gICAgICAgIC8vICAgICBleHBFZmZlY3QuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAvLyAgICAgcGFuZWwubm9kZS5hZGRDaGlsZChleHBFZmZlY3QpO1xyXG4gICAgICAgIC8vICAgICBleHBFZmZlY3QuZ2V0Q29tcG9uZW50KEZseUl0ZW1QYXJ0aWNsZSkuU2hvd0l0ZW1FZmZlY3Qoc3RhcnRQb3MsIGVuZFBvcywgaXRlbSwgaW5kZXgsIGNiKTtcclxuICAgICAgICAvLyB9IGVsc2Uge1xyXG4gICAgICAgIC8vICAgICAvLyDlpoLmnpzmsqHmnInnqbrpl7Llr7nosaHvvIzkuZ/lsLHmmK/lr7nosaHmsaDkuK3lpIfnlKjlr7nosaHkuI3lpJ/ml7ZcclxuICAgICAgICAvLyAgICAgQXNzZXRzQnVuZGxlTWdyLmxvYWRCdW5kbGVQcmVmYWIoXCJwYXJ0aWNsZS9mbHlJdGVtXCIsIChlcnIsIHByZWZhYjogY2MuUHJlZmFiKSA9PiB7XHJcbiAgICAgICAgLy8gICAgICAgICBpZiAocHJlZmFiKSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgZXhwRWZmZWN0ID0gY2MuaW5zdGFudGlhdGUocHJlZmFiKTtcclxuICAgICAgICAvLyAgICAgICAgICAgICBleHBFZmZlY3QuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAvLyAgICAgICAgICAgICBleHBFZmZlY3QubmFtZSA9IFwiZXhwRWZmZWN0XCI7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgcGFuZWwubm9kZS5hZGRDaGlsZChleHBFZmZlY3QpO1xyXG4gICAgICAgIC8vICAgICAgICAgICAgIGV4cEVmZmVjdC5nZXRDb21wb25lbnQoRmx5SXRlbVBhcnRpY2xlKS5TaG93SXRlbUVmZmVjdChzdGFydFBvcywgZW5kUG9zLCBpdGVtLCBpbmRleCwgY2IpO1xyXG4gICAgICAgIC8vICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuepuueahHBhcnRpY2xlL2ZseUl0ZW3otYTmupBcIik7XHJcbiAgICAgICAgLy8gICAgICAgICB9XHJcbiAgICAgICAgLy8gICAgIH0pO1xyXG4gICAgICAgIC8vIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiog6LCD6K+V5by55qGG55SoICovXHJcbiAgICBwdWJsaWMgc3RhdGljIFNob3dEZWJ1Z0RpYWxvZyhtc2c6IHN0cmluZykge1xyXG4gICAgICAgIGxldCBkYXRhOiBEaWFsb2dQYXJhbXMgPSB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IG1zZyxcclxuICAgICAgICAgICAgY2JDb25maXJtOiAoKSA9PiB7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuU2hvd0RpYWxvZyhkYXRhKTtcclxuICAgIH1cclxufSJdfQ==