@zhongguo168a/yxeditor-common 0.0.41 → 0.0.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +62 -82
- package/dist/index.esm.js +281 -366
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -3475,95 +3475,6 @@ class Factory {
|
|
|
3475
3475
|
}
|
|
3476
3476
|
}
|
|
3477
3477
|
|
|
3478
|
-
var ViewState;
|
|
3479
|
-
(function (ViewState) {
|
|
3480
|
-
/**
|
|
3481
|
-
* 关闭
|
|
3482
|
-
*/
|
|
3483
|
-
ViewState[ViewState["Closed"] = 0] = "Closed";
|
|
3484
|
-
/**
|
|
3485
|
-
* 正在打开
|
|
3486
|
-
*/
|
|
3487
|
-
ViewState[ViewState["Opening"] = 1] = "Opening";
|
|
3488
|
-
/**
|
|
3489
|
-
* 已打开
|
|
3490
|
-
*/
|
|
3491
|
-
ViewState[ViewState["Opened"] = 2] = "Opened";
|
|
3492
|
-
/**
|
|
3493
|
-
* 正在关闭
|
|
3494
|
-
*/
|
|
3495
|
-
ViewState[ViewState["Closeing"] = 3] = "Closeing";
|
|
3496
|
-
})(ViewState || (ViewState = {}));
|
|
3497
|
-
var ViewEvent;
|
|
3498
|
-
(function (ViewEvent) {
|
|
3499
|
-
// 正在打开
|
|
3500
|
-
ViewEvent["Opening"] = "opening";
|
|
3501
|
-
// 已打开
|
|
3502
|
-
ViewEvent["Opened"] = "opened";
|
|
3503
|
-
// 正在打开
|
|
3504
|
-
ViewEvent["Closeing"] = "closeing";
|
|
3505
|
-
// 已关闭
|
|
3506
|
-
ViewEvent["Closed"] = "closed";
|
|
3507
|
-
// 停止
|
|
3508
|
-
ViewEvent["Stop"] = "stop";
|
|
3509
|
-
})(ViewEvent || (ViewEvent = {}));
|
|
3510
|
-
class View extends EventDispatcher {
|
|
3511
|
-
constructor(controller, route) {
|
|
3512
|
-
super();
|
|
3513
|
-
this._waitOpenComplete = false;
|
|
3514
|
-
this._waitCloseComplete = false;
|
|
3515
|
-
this.datas = {};
|
|
3516
|
-
this.tags = {};
|
|
3517
|
-
this.state = 0;
|
|
3518
|
-
this._controller = controller;
|
|
3519
|
-
this._route = route;
|
|
3520
|
-
}
|
|
3521
|
-
/**
|
|
3522
|
-
* 等待发送的结果
|
|
3523
|
-
* 如果返回 null,表示主动取消 [cancel]
|
|
3524
|
-
*/
|
|
3525
|
-
wait() {
|
|
3526
|
-
switch (this.state) {
|
|
3527
|
-
case ViewState.Opening:
|
|
3528
|
-
return new Promise((resolve, reject) => {
|
|
3529
|
-
let opened = () => {
|
|
3530
|
-
this.off("opened", this, opened);
|
|
3531
|
-
this.off("canceled", this, opened);
|
|
3532
|
-
resolve(this);
|
|
3533
|
-
};
|
|
3534
|
-
let canceled = () => {
|
|
3535
|
-
this.off("opened", this, opened);
|
|
3536
|
-
this.off("canceled", this, opened);
|
|
3537
|
-
resolve(this);
|
|
3538
|
-
};
|
|
3539
|
-
this.on("opened", this, opened);
|
|
3540
|
-
this.on("canceled", this, canceled);
|
|
3541
|
-
});
|
|
3542
|
-
case ViewState.Closeing:
|
|
3543
|
-
return new Promise((resolve, reject) => {
|
|
3544
|
-
let opened = () => {
|
|
3545
|
-
this.off("closed", this, opened);
|
|
3546
|
-
resolve(this);
|
|
3547
|
-
};
|
|
3548
|
-
this.on("closed", this, opened);
|
|
3549
|
-
});
|
|
3550
|
-
default:
|
|
3551
|
-
return new Promise((resolve, reject) => {
|
|
3552
|
-
resolve(this);
|
|
3553
|
-
});
|
|
3554
|
-
}
|
|
3555
|
-
}
|
|
3556
|
-
toString() {
|
|
3557
|
-
return `View[${this.route.toString()}, ${this.id}]`;
|
|
3558
|
-
}
|
|
3559
|
-
get controller() {
|
|
3560
|
-
return this._controller;
|
|
3561
|
-
}
|
|
3562
|
-
get route() {
|
|
3563
|
-
return this._route;
|
|
3564
|
-
}
|
|
3565
|
-
}
|
|
3566
|
-
|
|
3567
3478
|
/**
|
|
3568
3479
|
* 视图的路由值, 保存视图的信息
|
|
3569
3480
|
* 规则: path/search
|
|
@@ -3693,6 +3604,119 @@ Route.data = {};
|
|
|
3693
3604
|
class RouteList extends List {
|
|
3694
3605
|
}
|
|
3695
3606
|
|
|
3607
|
+
class RouteController extends Controller {
|
|
3608
|
+
constructor(routePath) {
|
|
3609
|
+
super(routePath);
|
|
3610
|
+
this._tags = {};
|
|
3611
|
+
this._route = new Route(routePath);
|
|
3612
|
+
}
|
|
3613
|
+
open(...args) {
|
|
3614
|
+
this.openByRoute();
|
|
3615
|
+
}
|
|
3616
|
+
/**
|
|
3617
|
+
* 当视图需要通过路由打开时,需要实现此方法
|
|
3618
|
+
* @param route
|
|
3619
|
+
*/
|
|
3620
|
+
openByRoute(route) {
|
|
3621
|
+
throw "未实现 openByRoute";
|
|
3622
|
+
}
|
|
3623
|
+
refreshView(view) {
|
|
3624
|
+
}
|
|
3625
|
+
close(...args) {
|
|
3626
|
+
this.closeByRoute();
|
|
3627
|
+
}
|
|
3628
|
+
/**
|
|
3629
|
+
* 当视图需要通过路由关闭时,需要实现此方法
|
|
3630
|
+
* @param route
|
|
3631
|
+
* @returns
|
|
3632
|
+
*/
|
|
3633
|
+
closeByRoute(route) {
|
|
3634
|
+
throw "未实现 closeByRoute";
|
|
3635
|
+
}
|
|
3636
|
+
refresh() {
|
|
3637
|
+
this.refreshView(this._lastView);
|
|
3638
|
+
}
|
|
3639
|
+
hasTags(tags) {
|
|
3640
|
+
for (let i = 0; i < tags.length; i++) {
|
|
3641
|
+
let tag = tags[i];
|
|
3642
|
+
for (const key in this._tags) {
|
|
3643
|
+
let thistag = this._tags[key];
|
|
3644
|
+
if (thistag == tag) {
|
|
3645
|
+
return true;
|
|
3646
|
+
}
|
|
3647
|
+
}
|
|
3648
|
+
}
|
|
3649
|
+
return false;
|
|
3650
|
+
}
|
|
3651
|
+
setTags(tags) {
|
|
3652
|
+
this._tags = tags;
|
|
3653
|
+
return this;
|
|
3654
|
+
}
|
|
3655
|
+
get lastView() {
|
|
3656
|
+
return this._lastView;
|
|
3657
|
+
}
|
|
3658
|
+
get route() {
|
|
3659
|
+
return this._route;
|
|
3660
|
+
}
|
|
3661
|
+
}
|
|
3662
|
+
|
|
3663
|
+
class UIObjectRepo extends Dictionary {
|
|
3664
|
+
/**
|
|
3665
|
+
* 获取唯一的
|
|
3666
|
+
* @param prefab
|
|
3667
|
+
*/
|
|
3668
|
+
uniqueObject(prefab) {
|
|
3669
|
+
if (!prefab) {
|
|
3670
|
+
console.warn("未设置prefab");
|
|
3671
|
+
return;
|
|
3672
|
+
}
|
|
3673
|
+
let key = prefab.data.uuid;
|
|
3674
|
+
let object = this.get(key);
|
|
3675
|
+
if (!object) {
|
|
3676
|
+
object = instantiate(prefab);
|
|
3677
|
+
this.set(key, object);
|
|
3678
|
+
}
|
|
3679
|
+
return object;
|
|
3680
|
+
}
|
|
3681
|
+
removeObject(prefab) {
|
|
3682
|
+
if (!prefab) {
|
|
3683
|
+
console.warn("未设置prefab");
|
|
3684
|
+
return;
|
|
3685
|
+
}
|
|
3686
|
+
this.delete(prefab.data.uuid);
|
|
3687
|
+
}
|
|
3688
|
+
popObject(prefab) {
|
|
3689
|
+
let object;
|
|
3690
|
+
let key = prefab.data.uuid;
|
|
3691
|
+
let list = this.getList(key);
|
|
3692
|
+
if (list.length == 0) {
|
|
3693
|
+
object = instantiate(prefab);
|
|
3694
|
+
}
|
|
3695
|
+
else {
|
|
3696
|
+
object = list.pop();
|
|
3697
|
+
}
|
|
3698
|
+
return object;
|
|
3699
|
+
}
|
|
3700
|
+
backObject(object) {
|
|
3701
|
+
// @ts-ignore
|
|
3702
|
+
let key = object.prefab.asset.uuid;
|
|
3703
|
+
let list = this.getList(key);
|
|
3704
|
+
list.push(object);
|
|
3705
|
+
}
|
|
3706
|
+
getList(key) {
|
|
3707
|
+
let list = this.get(key);
|
|
3708
|
+
if (!list) {
|
|
3709
|
+
list = new List();
|
|
3710
|
+
this.set(key, list);
|
|
3711
|
+
}
|
|
3712
|
+
return list;
|
|
3713
|
+
}
|
|
3714
|
+
}
|
|
3715
|
+
/**
|
|
3716
|
+
* 全局的UI对象库,用于管理一些常用的ui对象,例如主界面,背包
|
|
3717
|
+
*/
|
|
3718
|
+
var uirepo = new UIObjectRepo();
|
|
3719
|
+
|
|
3696
3720
|
class ViewList extends List {
|
|
3697
3721
|
}
|
|
3698
3722
|
/**
|
|
@@ -3719,14 +3743,38 @@ class ViewRepo extends ViewDict {
|
|
|
3719
3743
|
if (!controller) {
|
|
3720
3744
|
throw new Error("view controller no register: " + route.path);
|
|
3721
3745
|
}
|
|
3722
|
-
return controller.
|
|
3746
|
+
return controller.openByRoute(route);
|
|
3723
3747
|
}
|
|
3724
3748
|
close(route) {
|
|
3725
3749
|
let controller = this.getController(route.path);
|
|
3726
3750
|
if (!controller) {
|
|
3727
3751
|
throw new Error("view controller no register: " + route.path);
|
|
3728
3752
|
}
|
|
3729
|
-
controller.
|
|
3753
|
+
controller.closeByRoute(route);
|
|
3754
|
+
}
|
|
3755
|
+
/**
|
|
3756
|
+
* 关闭相斥的视图对象
|
|
3757
|
+
* 1. 关闭同一层的所有视图对象
|
|
3758
|
+
* 2. 关闭符合相斥规则的视图对象
|
|
3759
|
+
* @param view
|
|
3760
|
+
* @param validFunc 符合条件的视图对象会被关闭
|
|
3761
|
+
* @returns 被关闭的视图
|
|
3762
|
+
*/
|
|
3763
|
+
closeExclusion(validFunc = undefined) {
|
|
3764
|
+
if (!validFunc) {
|
|
3765
|
+
return;
|
|
3766
|
+
}
|
|
3767
|
+
let closedList = new ViewList();
|
|
3768
|
+
this.forEach((key, item, iterator) => {
|
|
3769
|
+
if (validFunc(item)) {
|
|
3770
|
+
closedList.push(item);
|
|
3771
|
+
}
|
|
3772
|
+
});
|
|
3773
|
+
closedList.forEach((index, item) => {
|
|
3774
|
+
item.controller;
|
|
3775
|
+
item.close();
|
|
3776
|
+
});
|
|
3777
|
+
return closedList;
|
|
3730
3778
|
}
|
|
3731
3779
|
/**
|
|
3732
3780
|
* 如果页面存在,则刷新
|
|
@@ -3765,275 +3813,199 @@ class ViewRepo extends ViewDict {
|
|
|
3765
3813
|
}
|
|
3766
3814
|
const viewrepo = new ViewRepo();
|
|
3767
3815
|
|
|
3768
|
-
|
|
3769
|
-
|
|
3770
|
-
super(routeName);
|
|
3771
|
-
this._enableHistory = false;
|
|
3772
|
-
this._tags = {};
|
|
3773
|
-
this._route = new Route(routeName);
|
|
3774
|
-
}
|
|
3816
|
+
var ViewState;
|
|
3817
|
+
(function (ViewState) {
|
|
3775
3818
|
/**
|
|
3776
|
-
|
|
3777
|
-
|
|
3778
|
-
|
|
3779
|
-
|
|
3780
|
-
|
|
3781
|
-
|
|
3782
|
-
|
|
3783
|
-
|
|
3784
|
-
|
|
3785
|
-
|
|
3786
|
-
|
|
3787
|
-
|
|
3788
|
-
|
|
3789
|
-
|
|
3790
|
-
|
|
3791
|
-
|
|
3792
|
-
|
|
3793
|
-
|
|
3794
|
-
|
|
3795
|
-
|
|
3796
|
-
|
|
3797
|
-
|
|
3798
|
-
|
|
3799
|
-
|
|
3819
|
+
* 关闭
|
|
3820
|
+
*/
|
|
3821
|
+
ViewState[ViewState["Closed"] = 0] = "Closed";
|
|
3822
|
+
/**
|
|
3823
|
+
* 正在打开
|
|
3824
|
+
*/
|
|
3825
|
+
ViewState[ViewState["Opening"] = 1] = "Opening";
|
|
3826
|
+
/**
|
|
3827
|
+
* 已打开
|
|
3828
|
+
*/
|
|
3829
|
+
ViewState[ViewState["Opened"] = 2] = "Opened";
|
|
3830
|
+
/**
|
|
3831
|
+
* 正在关闭
|
|
3832
|
+
*/
|
|
3833
|
+
ViewState[ViewState["Closeing"] = 3] = "Closeing";
|
|
3834
|
+
})(ViewState || (ViewState = {}));
|
|
3835
|
+
var ViewEvent;
|
|
3836
|
+
(function (ViewEvent) {
|
|
3837
|
+
// 正在打开
|
|
3838
|
+
ViewEvent["Opening"] = "opening";
|
|
3839
|
+
// 已打开
|
|
3840
|
+
ViewEvent["Opened"] = "opened";
|
|
3841
|
+
// 正在打开
|
|
3842
|
+
ViewEvent["Closeing"] = "closeing";
|
|
3843
|
+
// 已关闭
|
|
3844
|
+
ViewEvent["Closed"] = "closed";
|
|
3845
|
+
// 停止
|
|
3846
|
+
ViewEvent["Stop"] = "stop";
|
|
3847
|
+
})(ViewEvent || (ViewEvent = {}));
|
|
3848
|
+
class RouteView extends EventDispatcher {
|
|
3849
|
+
constructor(controller, route) {
|
|
3850
|
+
super();
|
|
3851
|
+
this._waitOpenComplete = false;
|
|
3852
|
+
this._waitCloseComplete = false;
|
|
3853
|
+
this.datas = {};
|
|
3854
|
+
this.tags = {};
|
|
3855
|
+
this.enableHistory = false;
|
|
3856
|
+
this.state = 0;
|
|
3857
|
+
this._controller = controller;
|
|
3858
|
+
this._route = route;
|
|
3800
3859
|
}
|
|
3801
|
-
|
|
3802
|
-
if (
|
|
3803
|
-
return;
|
|
3804
|
-
}
|
|
3805
|
-
if (view.state != ViewState.Closed) {
|
|
3860
|
+
open() {
|
|
3861
|
+
if (this.state != ViewState.Closed) {
|
|
3806
3862
|
return;
|
|
3807
3863
|
}
|
|
3808
|
-
let route =
|
|
3864
|
+
let route = this.route;
|
|
3809
3865
|
if (viewrepo.get(route.key)) {
|
|
3810
3866
|
throw `视图已存在: route=${route.key}`;
|
|
3811
3867
|
}
|
|
3812
|
-
viewrepo.set(route.key,
|
|
3813
|
-
this.
|
|
3814
|
-
|
|
3815
|
-
view.dispatch(ViewEvent.Opening);
|
|
3868
|
+
viewrepo.set(route.key, this);
|
|
3869
|
+
this.state = ViewState.Opening;
|
|
3870
|
+
this.dispatch(ViewEvent.Opening);
|
|
3816
3871
|
//
|
|
3817
3872
|
try {
|
|
3818
3873
|
//
|
|
3819
|
-
this.
|
|
3874
|
+
if (this.onOpen) {
|
|
3875
|
+
this.onOpen.call(this);
|
|
3876
|
+
}
|
|
3820
3877
|
// @ts-ignore
|
|
3821
|
-
if (!
|
|
3878
|
+
if (!this._waitOpenComplete) {
|
|
3822
3879
|
// 没有被打断,打开完成
|
|
3823
|
-
this.openComplete(
|
|
3880
|
+
this.openComplete();
|
|
3824
3881
|
}
|
|
3825
3882
|
else {
|
|
3826
3883
|
// 被打断了,等待完成1
|
|
3827
3884
|
}
|
|
3828
3885
|
}
|
|
3829
3886
|
catch (e) {
|
|
3830
|
-
console.error(`open view ${
|
|
3887
|
+
console.error(`open view ${this.route.key}`);
|
|
3831
3888
|
console.error(e.stack);
|
|
3832
3889
|
//
|
|
3833
|
-
this.
|
|
3890
|
+
this.close();
|
|
3834
3891
|
}
|
|
3835
3892
|
}
|
|
3836
|
-
|
|
3837
|
-
|
|
3838
|
-
*/
|
|
3839
|
-
waitOpenComplete(view) {
|
|
3840
|
-
// @ts-ignore
|
|
3841
|
-
view._waitOpenComplete = true;
|
|
3842
|
-
}
|
|
3843
|
-
openComplete(view) {
|
|
3844
|
-
if (!view) {
|
|
3893
|
+
close() {
|
|
3894
|
+
if (this.state == ViewState.Closed) {
|
|
3845
3895
|
return;
|
|
3846
3896
|
}
|
|
3847
|
-
this.
|
|
3848
|
-
|
|
3849
|
-
// @ts-ignore
|
|
3850
|
-
view._waitOpenComplete = false;
|
|
3851
|
-
this.onOpened(view);
|
|
3852
|
-
view.dispatch(ViewEvent.Opened);
|
|
3853
|
-
}
|
|
3854
|
-
/**
|
|
3855
|
-
* 当视图需要通过路由关闭时,需要实现此方法
|
|
3856
|
-
* @param route
|
|
3857
|
-
* @returns
|
|
3858
|
-
*/
|
|
3859
|
-
close(route) {
|
|
3860
|
-
if (!route) {
|
|
3861
|
-
route = this.route;
|
|
3862
|
-
}
|
|
3863
|
-
let view = viewrepo.getByRoute(route);
|
|
3864
|
-
if (view) {
|
|
3865
|
-
this.closeView(view);
|
|
3866
|
-
}
|
|
3867
|
-
return view;
|
|
3868
|
-
}
|
|
3869
|
-
/**
|
|
3870
|
-
* 关闭相斥的视图对象
|
|
3871
|
-
* 1. 关闭同一层的所有视图对象
|
|
3872
|
-
* 2. 关闭符合相斥规则的视图对象
|
|
3873
|
-
* @param view
|
|
3874
|
-
* @param validFunc 符合条件的视图对象会被关闭
|
|
3875
|
-
* @returns 被关闭的视图
|
|
3876
|
-
*/
|
|
3877
|
-
closeExclusion(validFunc = undefined) {
|
|
3878
|
-
if (!validFunc) {
|
|
3879
|
-
return;
|
|
3880
|
-
}
|
|
3881
|
-
let closedList = new ViewList();
|
|
3882
|
-
viewrepo.forEach((key, item, iterator) => {
|
|
3883
|
-
if (validFunc(item)) {
|
|
3884
|
-
closedList.push(item);
|
|
3885
|
-
}
|
|
3886
|
-
});
|
|
3887
|
-
closedList.forEach((index, item) => {
|
|
3888
|
-
let currentCtrl = item.controller;
|
|
3889
|
-
currentCtrl.closeView(item);
|
|
3890
|
-
});
|
|
3891
|
-
return closedList;
|
|
3892
|
-
}
|
|
3893
|
-
closeView(view) {
|
|
3894
|
-
if (!view) {
|
|
3895
|
-
return;
|
|
3896
|
-
}
|
|
3897
|
-
if (view.state == ViewState.Closed) {
|
|
3898
|
-
return;
|
|
3899
|
-
}
|
|
3900
|
-
this._lastView = view;
|
|
3901
|
-
view.state = ViewState.Closeing;
|
|
3902
|
-
view.dispatch(ViewEvent.Closeing);
|
|
3897
|
+
this.state = ViewState.Closeing;
|
|
3898
|
+
this.dispatch(ViewEvent.Closeing);
|
|
3903
3899
|
try {
|
|
3904
|
-
this.
|
|
3900
|
+
if (this.onClose) {
|
|
3901
|
+
this.onClose.call(this);
|
|
3902
|
+
}
|
|
3905
3903
|
// @ts-ignore
|
|
3906
|
-
if (!
|
|
3904
|
+
if (!this._waitCloseComplete) {
|
|
3907
3905
|
// 没有被打断,关闭完成
|
|
3908
|
-
this.closeComplete(
|
|
3906
|
+
this.closeComplete();
|
|
3909
3907
|
}
|
|
3910
3908
|
else {
|
|
3911
3909
|
// 被打断了,等待完成1
|
|
3912
3910
|
}
|
|
3913
3911
|
}
|
|
3914
3912
|
catch (e) {
|
|
3915
|
-
console.error(`close view ${
|
|
3913
|
+
console.error(`close view ${this.route.key}`);
|
|
3916
3914
|
console.error(e.stack);
|
|
3917
3915
|
}
|
|
3918
3916
|
}
|
|
3919
|
-
waitCloseComplete(view) {
|
|
3920
|
-
// @ts-ignore
|
|
3921
|
-
view._waitCloseComplete = true;
|
|
3922
|
-
}
|
|
3923
|
-
closeComplete(view) {
|
|
3924
|
-
if (!view) {
|
|
3925
|
-
return;
|
|
3926
|
-
}
|
|
3927
|
-
viewrepo.delete(view.route.key);
|
|
3928
|
-
this._lastView = view;
|
|
3929
|
-
// @ts-ignore
|
|
3930
|
-
view._waitCloseComplete = false;
|
|
3931
|
-
// @ts-ignore
|
|
3932
|
-
let objectDict = view._objectDict;
|
|
3933
|
-
if (objectDict) {
|
|
3934
|
-
objectDict.clear();
|
|
3935
|
-
}
|
|
3936
|
-
view.state = ViewState.Closed;
|
|
3937
|
-
view.dispatch(ViewEvent.Closed);
|
|
3938
|
-
this.onClosed(view);
|
|
3939
|
-
}
|
|
3940
3917
|
refresh() {
|
|
3941
|
-
|
|
3942
|
-
|
|
3943
|
-
|
|
3944
|
-
|
|
3945
|
-
|
|
3946
|
-
|
|
3947
|
-
|
|
3948
|
-
|
|
3949
|
-
|
|
3950
|
-
|
|
3951
|
-
|
|
3952
|
-
return true;
|
|
3953
|
-
}
|
|
3918
|
+
try {
|
|
3919
|
+
if (this.onRefresh) {
|
|
3920
|
+
this.onClose.call(this);
|
|
3921
|
+
}
|
|
3922
|
+
// @ts-ignore
|
|
3923
|
+
if (!this._waitCloseComplete) {
|
|
3924
|
+
// 没有被打断,关闭完成
|
|
3925
|
+
this.closeComplete();
|
|
3926
|
+
}
|
|
3927
|
+
else {
|
|
3928
|
+
// 被打断了,等待完成1
|
|
3954
3929
|
}
|
|
3955
3930
|
}
|
|
3956
|
-
|
|
3957
|
-
|
|
3958
|
-
|
|
3959
|
-
|
|
3960
|
-
return this;
|
|
3961
|
-
}
|
|
3962
|
-
setTags(tags) {
|
|
3963
|
-
this._tags = tags;
|
|
3964
|
-
return this;
|
|
3965
|
-
}
|
|
3966
|
-
useHistory() {
|
|
3967
|
-
this._enableHistory = true;
|
|
3968
|
-
return this;
|
|
3969
|
-
}
|
|
3970
|
-
get lastView() {
|
|
3971
|
-
return this._lastView;
|
|
3972
|
-
}
|
|
3973
|
-
get route() {
|
|
3974
|
-
return this._route;
|
|
3975
|
-
}
|
|
3976
|
-
get enableHistory() {
|
|
3977
|
-
return this._enableHistory;
|
|
3931
|
+
catch (e) {
|
|
3932
|
+
console.error(`refresh view ${this.route.key}`);
|
|
3933
|
+
console.error(e.stack);
|
|
3934
|
+
}
|
|
3978
3935
|
}
|
|
3979
|
-
}
|
|
3980
|
-
|
|
3981
|
-
class UIObjectRepo extends Dictionary {
|
|
3982
3936
|
/**
|
|
3983
|
-
*
|
|
3984
|
-
*
|
|
3937
|
+
* 等待发送的结果
|
|
3938
|
+
* 如果返回 null,表示主动取消 [cancel]
|
|
3985
3939
|
*/
|
|
3986
|
-
|
|
3987
|
-
|
|
3988
|
-
|
|
3989
|
-
|
|
3990
|
-
|
|
3991
|
-
|
|
3992
|
-
|
|
3993
|
-
|
|
3994
|
-
|
|
3995
|
-
|
|
3940
|
+
wait() {
|
|
3941
|
+
switch (this.state) {
|
|
3942
|
+
case ViewState.Opening:
|
|
3943
|
+
return new Promise((resolve, reject) => {
|
|
3944
|
+
let opened = () => {
|
|
3945
|
+
this.off("opened", this, opened);
|
|
3946
|
+
this.off("canceled", this, opened);
|
|
3947
|
+
resolve(this);
|
|
3948
|
+
};
|
|
3949
|
+
let canceled = () => {
|
|
3950
|
+
this.off("opened", this, opened);
|
|
3951
|
+
this.off("canceled", this, opened);
|
|
3952
|
+
resolve(this);
|
|
3953
|
+
};
|
|
3954
|
+
this.on("opened", this, opened);
|
|
3955
|
+
this.on("canceled", this, canceled);
|
|
3956
|
+
});
|
|
3957
|
+
case ViewState.Closeing:
|
|
3958
|
+
return new Promise((resolve, reject) => {
|
|
3959
|
+
let opened = () => {
|
|
3960
|
+
this.off("closed", this, opened);
|
|
3961
|
+
resolve(this);
|
|
3962
|
+
};
|
|
3963
|
+
this.on("closed", this, opened);
|
|
3964
|
+
});
|
|
3965
|
+
default:
|
|
3966
|
+
return new Promise((resolve, reject) => {
|
|
3967
|
+
resolve(this);
|
|
3968
|
+
});
|
|
3996
3969
|
}
|
|
3997
|
-
return object;
|
|
3998
3970
|
}
|
|
3999
|
-
|
|
4000
|
-
|
|
4001
|
-
console.warn("未设置prefab");
|
|
4002
|
-
return;
|
|
4003
|
-
}
|
|
4004
|
-
this.delete(prefab.data.uuid);
|
|
3971
|
+
toString() {
|
|
3972
|
+
return `View[${this.route.toString()}, ${this.id}]`;
|
|
4005
3973
|
}
|
|
4006
|
-
|
|
4007
|
-
|
|
4008
|
-
|
|
4009
|
-
|
|
4010
|
-
|
|
4011
|
-
|
|
4012
|
-
|
|
4013
|
-
|
|
4014
|
-
|
|
3974
|
+
/**
|
|
3975
|
+
* 等待打开完成指令
|
|
3976
|
+
*/
|
|
3977
|
+
waitOpenComplete() {
|
|
3978
|
+
this._waitOpenComplete = true;
|
|
3979
|
+
}
|
|
3980
|
+
openComplete() {
|
|
3981
|
+
this.state = ViewState.Opened;
|
|
3982
|
+
// @ts-ignore
|
|
3983
|
+
this._waitOpenComplete = false;
|
|
3984
|
+
if (this.onOpened) {
|
|
3985
|
+
this.onOpened.call(this);
|
|
4015
3986
|
}
|
|
4016
|
-
|
|
3987
|
+
this.dispatch(ViewEvent.Opened);
|
|
4017
3988
|
}
|
|
4018
|
-
|
|
3989
|
+
waitCloseComplete(view) {
|
|
4019
3990
|
// @ts-ignore
|
|
4020
|
-
|
|
4021
|
-
let list = this.getList(key);
|
|
4022
|
-
list.push(object);
|
|
3991
|
+
view._waitCloseComplete = true;
|
|
4023
3992
|
}
|
|
4024
|
-
|
|
4025
|
-
|
|
4026
|
-
|
|
4027
|
-
|
|
4028
|
-
|
|
3993
|
+
closeComplete() {
|
|
3994
|
+
viewrepo.delete(this.route.key);
|
|
3995
|
+
this._waitCloseComplete = false;
|
|
3996
|
+
this.state = ViewState.Closed;
|
|
3997
|
+
this.dispatch(ViewEvent.Closed);
|
|
3998
|
+
if (this.onClosed) {
|
|
3999
|
+
this.onClosed.call(this);
|
|
4029
4000
|
}
|
|
4030
|
-
|
|
4001
|
+
}
|
|
4002
|
+
get controller() {
|
|
4003
|
+
return this._controller;
|
|
4004
|
+
}
|
|
4005
|
+
get route() {
|
|
4006
|
+
return this._route;
|
|
4031
4007
|
}
|
|
4032
4008
|
}
|
|
4033
|
-
/**
|
|
4034
|
-
* 全局的UI对象库,用于管理一些常用的ui对象,例如主界面,背包
|
|
4035
|
-
*/
|
|
4036
|
-
var uirepo = new UIObjectRepo();
|
|
4037
4009
|
|
|
4038
4010
|
class ViewHistory extends RouteList {
|
|
4039
4011
|
back() {
|
|
@@ -4049,63 +4021,6 @@ class ViewHistory extends RouteList {
|
|
|
4049
4021
|
}
|
|
4050
4022
|
const viewhistorys = new ViewHistory();
|
|
4051
4023
|
|
|
4052
|
-
class PageController extends ViewController {
|
|
4053
|
-
constructor(routeName) {
|
|
4054
|
-
super(routeName);
|
|
4055
|
-
this._enableHistory = false;
|
|
4056
|
-
this._layer = "";
|
|
4057
|
-
}
|
|
4058
|
-
/**
|
|
4059
|
-
* 打开视图,如果视图已经存在则刷新视图
|
|
4060
|
-
* @param route
|
|
4061
|
-
*/
|
|
4062
|
-
open(route) {
|
|
4063
|
-
let view = viewrepo.getByRoute(route);
|
|
4064
|
-
if (view) { //
|
|
4065
|
-
this.refreshView(view);
|
|
4066
|
-
return;
|
|
4067
|
-
}
|
|
4068
|
-
// 关闭同一层的所有视图
|
|
4069
|
-
this.closeExclusion((existed) => {
|
|
4070
|
-
return existed.layer == this._layer;
|
|
4071
|
-
});
|
|
4072
|
-
if (this.enableHistory) {
|
|
4073
|
-
viewhistorys.push(route);
|
|
4074
|
-
}
|
|
4075
|
-
view = new View(this, route);
|
|
4076
|
-
this.openView(view);
|
|
4077
|
-
return view;
|
|
4078
|
-
}
|
|
4079
|
-
/**
|
|
4080
|
-
* @param route
|
|
4081
|
-
* @returns
|
|
4082
|
-
*/
|
|
4083
|
-
close(route) {
|
|
4084
|
-
let lastview;
|
|
4085
|
-
if (this._layer) {
|
|
4086
|
-
if (this._enableHistory) {
|
|
4087
|
-
// 清空历史记录
|
|
4088
|
-
viewhistorys.clear();
|
|
4089
|
-
}
|
|
4090
|
-
}
|
|
4091
|
-
else {
|
|
4092
|
-
lastview = viewrepo.getByRoute(route);
|
|
4093
|
-
}
|
|
4094
|
-
this.closeView(lastview);
|
|
4095
|
-
return lastview;
|
|
4096
|
-
}
|
|
4097
|
-
useHistory() {
|
|
4098
|
-
this._enableHistory = true;
|
|
4099
|
-
return this;
|
|
4100
|
-
}
|
|
4101
|
-
get route() {
|
|
4102
|
-
return this._route;
|
|
4103
|
-
}
|
|
4104
|
-
get enableHistory() {
|
|
4105
|
-
return this._enableHistory;
|
|
4106
|
-
}
|
|
4107
|
-
}
|
|
4108
|
-
|
|
4109
4024
|
class Listener {
|
|
4110
4025
|
static create(ident) {
|
|
4111
4026
|
return new Listener(ident);
|
|
@@ -6379,5 +6294,5 @@ class WidgetUtil {
|
|
|
6379
6294
|
}
|
|
6380
6295
|
var widgetutil = new WidgetUtil();
|
|
6381
6296
|
|
|
6382
|
-
export { ArrayUtil, AssetLoader, AssetURI, BitUtil, CallbackList, CameraUtil, CanvasUtil, Controller, ControllerDict, ControllerRepo, ConvertUtil, DictIterator, DictNode, DictSource, Dictionary, Dispatcher, DocUtil, ErrorUtil, EventDispatcher, EventItem, EventUtil, Factory, FloatUtil, GeometryUtil, IdentUtil, LOGGER_EVENT, LinkError, List, ListIterator, ListNode, ListSource, Listener, LogLevel, LogManager, Logger, MapUtil, MathUtil, Model, NetUtil,
|
|
6297
|
+
export { ArrayUtil, AssetLoader, AssetURI, BitUtil, CallbackList, CameraUtil, CanvasUtil, Controller, ControllerDict, ControllerRepo, ConvertUtil, DictIterator, DictNode, DictSource, Dictionary, Dispatcher, DocUtil, ErrorUtil, EventDispatcher, EventItem, EventUtil, Factory, FloatUtil, GeometryUtil, IdentUtil, LOGGER_EVENT, LinkError, List, ListIterator, ListNode, ListSource, Listener, LogLevel, LogManager, Logger, MapUtil, MathUtil, Model, NetUtil, PathUtil, Pool, RandUtil, Route, RouteController, RouteList, RouteView, SampleCallbackList, SamplePool, SamplePoolSet, ScaleUtil, SimpleModel, StringUtil, TimeUtil, Timer, TreeIterator, TreeNode, TreeNodePlugin, TreeRoot, TreeRootPlugin, TreeUtil, UIManager, UIObjectRepo, UIPoolConfig, UISingleConfig, UIUtil, ViewDict, ViewEvent, ViewHistory, ViewList, ViewRepo, ViewState, WidgetAlign, WidgetUtil, XAssetManager, XEvent, arrayutil, assetx, bitutil, camerautil, canvasutil, convertutil, ctrlrepo, docutil, errorutil, eventmgr, eventutil, floatutil, formatutil, geoutil, identutil, loadAtlas, logmgr, maputil, mathutil, netutil, parseAtlas, parsePlist, pathutil, randutil, resutil, scaleutil, stringutil, timer, timeutil, treeutil, uimgr, uirepo, uiutil, viewhistorys, viewrepo, widgetutil };
|
|
6383
6298
|
//# sourceMappingURL=index.esm.js.map
|