var t = require; var e = module; var a = exports; var i = (this && this.__awaiter) || function (t, n, r, l) { return new (r = r || Promise)(function (i, e) { function s(t) { try { a(l.next(t)); } catch (t) { e(t); } } function o(t) { try { a(l.throw(t)); } catch (t) { e(t); } } function a(t) { var e; t.done ? i(t.value) : ((e = t.value) instanceof r ? e : new r(function (t) { t(e); }) ).then(s, o); } a((l = l.apply(t, n || [])).next()); }); }; Object.defineProperty(a, "__esModule", {value: !0}), (a.ViewManagerEvent = void 0); const n = t("ViewConst"), r = t("LayerManager"), l = t("App"), h = t("BaseView"); a.ViewManagerEvent = {VIEW_IS_OPEN: "viewIsOpen", VIEW_IS_CLOSE: "viewIsClose"}; class s { constructor() { (this._views = {}), (this._opens = {}), (this._viewCache = {}), (this._viewLoadingCache = {}), (this.uiRoot = null), (this.curScene = null); } reset() { (this.uiRoot = cc.find("Canvas")), r.default.reset(); } clear() { this.closeAll(), (this._views = {}); } register(t, e) { null != e && (this._views[t] || (this._views[t] = e)); } register1(t, e) { null != t && (this._views[t.key] || ((t.controller = e), (this._views[t.key] = t))); } getViewInfoByController(t) { const e = []; for (const i in this._views) this._views[i].controller == t && e.push(i); return e; } unregister(t) { this._views[t] && delete this._views[t]; } getViewRegisterData(t) { return this._views[t]; } removeView(t) { delete this._viewCache[t], delete this._viewLoadingCache[t], delete this._opens[t], delete this._views[t]; } hasFullScreenViwe() { for (const t in this._opens) if (this._opens[t].isFullScreen()) return !0; return !1; } removeByController(t) {} destroy(t) { var e = this.getView(t); e && (this.unregister(t), e.destroyView(), delete this._viewCache[t]); } checkIsNeedAddBg() { for (let e = this.uiRoot.children.length - 1; 1 < e; e--) { let t = this.uiRoot.children[e].getComponent(h.default); if (t && 1 === t.bgType) { r.default.layerBg.parent && r.default.layerBg.parent.removeChild(r.default.layerBg, !1); var i = t.node.getSiblingIndex(); return ( (r.default.layerBg.zIndex = t.node.zIndex), this.uiRoot.insertChild(r.default.layerBg, i), (r.default.layerBg.active = !0), void (r.default.curBgView = t) ); } } r.default.layerBg && r.default.layerBg.parent && (r.default.layerBg.parent.removeChild(r.default.layerBg, !1), (r.default.curBgView = null)); } getTopView() { for (let t = this.uiRoot.children.length - 1; 0 < t; t--) { const i = this.uiRoot.children[t]; for (let t = i.children.length - 1; 0 <= t; t--) { var e = i.children[t].getComponent(h.default); if (e) return e; } } } addBg(t) {} open(o, ...t) { return i(this, void 0, void 0, function* () { let e = this._views[o]; if (e) { Log.trace("开启面板:", e.prefabName), e.isScene && this.curScene && (yield r.default.ins.showChangeSceneEffect()); var i = this.getView(o); if (null == i) { if (!e) return void Log.trace("UI_" + o + "不存在"); if (this._viewLoadingCache[o]) return void Log.warn("面板正在加载预制体", o); try { (this._viewLoadingCache[o] = !0), e.isNotShowLoad || l.default.EasyLoading.showLoadingByTime(20), e.preLoadFunc && (yield e.preLoadFunc()); var s = yield l.default.ResManager.getResAsync( "/prefab/view/" + (e.dir ? e.dir + "/" : "") + e.prefabName ); if ( (e.isNotShowLoad || l.default.EasyLoading.hideLoading(), Log.trace("开启面板完毕:", e.prefabName), !this._viewLoadingCache[o]) ) return; delete this._viewLoadingCache[o]; let t = cc.instantiate(s); ((i = t.getComponent(h.default)).viewId = o), (t.zIndex = e.zIndex), (i.controller = e.controller), (i.node.active = !1), (this._viewCache[o] = i), (e.controller[e.prefabName[0].toLocaleLowerCase() + e.prefabName.slice(1)] = i), e.controller.onLoadView(i); } catch (t) { return ( delete this._viewLoadingCache[o], void Log.error( `\u52a0\u8f7d\u8d44\u6e90\u9762\u677f\u51fa\u9519,\u9762\u677fid:${o} ${n.ViewConst[o]} `, t ) ); } } return ( i.isShow() ? (Log.warn("面板已经打开了:", o), i.reOpen(...t)) : ((this._opens[o] = i).setVisible(!0), this.addBg(i), e.isScene && this.curScene && this.curScene.changeScenePre(), i.addToParent(this.uiRoot), i.isInit() || (yield i.loadResource(), (i.enabled = !0), i.initUI(), i.initData()), e.isScene && (this.curScene && this.closeAll([6, o]), (this.curScene = i)), yield i.open(...t), e.controller.onOpenView(i), e.isScene && r.default.ins.hideChangeSceneEffect(), l.default.NotificationCenter.dispatch(a.ViewManagerEvent.VIEW_IS_OPEN, i.viewId)), i ); } }); } close(e, ...i) { if (this._viewLoadingCache[e]) delete this._viewLoadingCache[e]; else if (this.isShow(e)) { var s = this.getView(e); Log.trace("关闭面板:", s.name); let t = this._views[e]; delete this._opens[e], s.removeFromParent(), s.close.apply(s, i), t.controller.onCloseView && t.controller.onCloseView(s); } } closeView(t, ...e) { this.close(t.viewId, ...e); } getView(t) { return this._opens[t] || this._viewCache[t]; } closeAll(t) { for (const i of Object.values(this._opens)) (t && -1 < t.indexOf(i.viewId)) || this.close(i.viewId); for (const s in this._viewLoadingCache) { var e = parseInt(s); (t && -1 < t.indexOf(e)) || this.close(e); } } destoryAllView(t) { for (const i in this._viewCache) { var e = this._viewCache[i]; (t && -1 < t.indexOf(e.viewId)) || this.destoryView(parseInt(i)); } this._viewLoadingCache = {}; } destoryView(e) { if (!this._viewLoadingCache[e]) { let t = this._viewCache[e]; t && (t.node && (t.node.parent && t.node.removeFromParent(), t.node.isValid && t.node.destroy()), t.destroyView()); } let t = this._views[e]; delete t.controller[t.prefabName[0].toLocaleLowerCase() + t.prefabName.slice(1)], delete this._viewCache[e], delete this._viewLoadingCache[e], delete this._opens[e]; } releaseViewRes(t) { var e = this._views[t]; e && (this.destoryView(t), l.default.ResManager.releaseAsset("/prefab/view/" + (e.dir ? e.dir + "/" : "") + e.prefabName, cc.Prefab)); } currOpenNum() { return Object.keys(this._opens).length; } isShow(t) { return this._opens[t]; } isViewLoading(t) { return this._viewLoadingCache[t]; } isViewShowOrLoading(t) { return this._opens[t] || this._viewLoadingCache[t]; } } ((a.default = s).VIEW_IS_OPEN = "viewIsOpen"), (s.VIEW_IS_CLOSE = "viewIsClose");