@zhongguo168a/yxeditor-common 0.0.41 → 0.0.43
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 +68 -80
- package/dist/index.esm.js +310 -306
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -3475,94 +3475,37 @@ class Factory {
|
|
|
3475
3475
|
}
|
|
3476
3476
|
}
|
|
3477
3477
|
|
|
3478
|
-
|
|
3479
|
-
|
|
3480
|
-
|
|
3481
|
-
|
|
3482
|
-
|
|
3483
|
-
|
|
3484
|
-
|
|
3485
|
-
|
|
3486
|
-
|
|
3487
|
-
|
|
3488
|
-
|
|
3489
|
-
|
|
3490
|
-
|
|
3491
|
-
|
|
3492
|
-
|
|
3493
|
-
|
|
3494
|
-
|
|
3495
|
-
|
|
3496
|
-
|
|
3497
|
-
|
|
3498
|
-
|
|
3499
|
-
|
|
3500
|
-
|
|
3501
|
-
|
|
3502
|
-
|
|
3503
|
-
|
|
3504
|
-
|
|
3505
|
-
|
|
3506
|
-
|
|
3507
|
-
|
|
3508
|
-
|
|
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
|
-
}
|
|
3478
|
+
/******************************************************************************
|
|
3479
|
+
Copyright (c) Microsoft Corporation.
|
|
3480
|
+
|
|
3481
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
3482
|
+
purpose with or without fee is hereby granted.
|
|
3483
|
+
|
|
3484
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
3485
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
3486
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
3487
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
3488
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
3489
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
3490
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
3491
|
+
***************************************************************************** */
|
|
3492
|
+
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
3493
|
+
|
|
3494
|
+
|
|
3495
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
3496
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3497
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
3498
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
3499
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
3500
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
3501
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
3502
|
+
});
|
|
3503
|
+
}
|
|
3504
|
+
|
|
3505
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
3506
|
+
var e = new Error(message);
|
|
3507
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
3508
|
+
};
|
|
3566
3509
|
|
|
3567
3510
|
/**
|
|
3568
3511
|
* 视图的路由值, 保存视图的信息
|
|
@@ -3719,14 +3662,38 @@ class ViewRepo extends ViewDict {
|
|
|
3719
3662
|
if (!controller) {
|
|
3720
3663
|
throw new Error("view controller no register: " + route.path);
|
|
3721
3664
|
}
|
|
3722
|
-
return controller.
|
|
3665
|
+
return controller.openByRoute(route);
|
|
3723
3666
|
}
|
|
3724
3667
|
close(route) {
|
|
3725
3668
|
let controller = this.getController(route.path);
|
|
3726
3669
|
if (!controller) {
|
|
3727
3670
|
throw new Error("view controller no register: " + route.path);
|
|
3728
3671
|
}
|
|
3729
|
-
controller.
|
|
3672
|
+
controller.closeByRoute(route);
|
|
3673
|
+
}
|
|
3674
|
+
/**
|
|
3675
|
+
* 关闭相斥的视图对象
|
|
3676
|
+
* 1. 关闭同一层的所有视图对象
|
|
3677
|
+
* 2. 关闭符合相斥规则的视图对象
|
|
3678
|
+
* @param view
|
|
3679
|
+
* @param validFunc 符合条件的视图对象会被关闭
|
|
3680
|
+
* @returns 被关闭的视图
|
|
3681
|
+
*/
|
|
3682
|
+
closeExclusion(validFunc = undefined) {
|
|
3683
|
+
if (!validFunc) {
|
|
3684
|
+
return;
|
|
3685
|
+
}
|
|
3686
|
+
let closedList = new ViewList();
|
|
3687
|
+
this.forEach((key, item, iterator) => {
|
|
3688
|
+
if (validFunc(item)) {
|
|
3689
|
+
closedList.push(item);
|
|
3690
|
+
}
|
|
3691
|
+
});
|
|
3692
|
+
closedList.forEach((index, item) => {
|
|
3693
|
+
item.controller;
|
|
3694
|
+
item.close();
|
|
3695
|
+
});
|
|
3696
|
+
return closedList;
|
|
3730
3697
|
}
|
|
3731
3698
|
/**
|
|
3732
3699
|
* 如果页面存在,则刷新
|
|
@@ -3765,184 +3732,109 @@ class ViewRepo extends ViewDict {
|
|
|
3765
3732
|
}
|
|
3766
3733
|
const viewrepo = new ViewRepo();
|
|
3767
3734
|
|
|
3768
|
-
class
|
|
3769
|
-
|
|
3770
|
-
|
|
3771
|
-
|
|
3772
|
-
|
|
3773
|
-
|
|
3735
|
+
class ViewHistory extends RouteList {
|
|
3736
|
+
back() {
|
|
3737
|
+
if (viewhistorys.length == 0) {
|
|
3738
|
+
return;
|
|
3739
|
+
}
|
|
3740
|
+
viewrepo.close(viewhistorys.shift());
|
|
3741
|
+
if (viewhistorys.length == 0) {
|
|
3742
|
+
return;
|
|
3743
|
+
}
|
|
3744
|
+
viewrepo.open(viewhistorys.last());
|
|
3774
3745
|
}
|
|
3775
|
-
|
|
3776
|
-
|
|
3777
|
-
|
|
3778
|
-
|
|
3779
|
-
|
|
3746
|
+
}
|
|
3747
|
+
const viewhistorys = new ViewHistory();
|
|
3748
|
+
|
|
3749
|
+
function OpenPageHandler(route) {
|
|
3750
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3751
|
+
let view = viewrepo.getByRoute(route);
|
|
3752
|
+
if (view) { //
|
|
3753
|
+
this.refreshView(view);
|
|
3754
|
+
return;
|
|
3755
|
+
}
|
|
3756
|
+
// 关闭同一层的所有视图
|
|
3757
|
+
this.closeExclusion((existed) => {
|
|
3758
|
+
return existed.layer == this._layer;
|
|
3759
|
+
});
|
|
3760
|
+
if (this.enableHistory) {
|
|
3761
|
+
viewhistorys.push(route);
|
|
3762
|
+
}
|
|
3763
|
+
});
|
|
3764
|
+
}
|
|
3765
|
+
function OpenDialogHandler(route) {
|
|
3766
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3780
3767
|
if (!route) {
|
|
3781
3768
|
route = this.route;
|
|
3782
3769
|
}
|
|
3783
3770
|
let oldView = viewrepo.getByRoute(route);
|
|
3784
3771
|
if (oldView) {
|
|
3785
|
-
|
|
3772
|
+
oldView.close();
|
|
3786
3773
|
}
|
|
3787
|
-
|
|
3788
|
-
|
|
3789
|
-
|
|
3790
|
-
|
|
3791
|
-
|
|
3792
|
-
}
|
|
3793
|
-
onOpened(view) {
|
|
3794
|
-
}
|
|
3795
|
-
onClosing(view) {
|
|
3796
|
-
}
|
|
3797
|
-
onClosed(view) {
|
|
3774
|
+
});
|
|
3775
|
+
}
|
|
3776
|
+
function CloseDialogHandler(route) {
|
|
3777
|
+
if (!route) {
|
|
3778
|
+
route = this.route;
|
|
3798
3779
|
}
|
|
3799
|
-
|
|
3780
|
+
let view = viewrepo.getByRoute(route);
|
|
3781
|
+
if (view) {
|
|
3782
|
+
view.close();
|
|
3800
3783
|
}
|
|
3801
|
-
|
|
3802
|
-
|
|
3803
|
-
|
|
3804
|
-
|
|
3805
|
-
|
|
3806
|
-
|
|
3807
|
-
|
|
3808
|
-
|
|
3809
|
-
|
|
3810
|
-
|
|
3811
|
-
|
|
3812
|
-
|
|
3813
|
-
|
|
3814
|
-
view.state = ViewState.Opening;
|
|
3815
|
-
view.dispatch(ViewEvent.Opening);
|
|
3816
|
-
//
|
|
3817
|
-
try {
|
|
3818
|
-
//
|
|
3819
|
-
this.onOpening(view);
|
|
3820
|
-
// @ts-ignore
|
|
3821
|
-
if (!view._waitOpenComplete) {
|
|
3822
|
-
// 没有被打断,打开完成
|
|
3823
|
-
this.openComplete(view);
|
|
3824
|
-
}
|
|
3825
|
-
else {
|
|
3826
|
-
// 被打断了,等待完成1
|
|
3784
|
+
return view;
|
|
3785
|
+
}
|
|
3786
|
+
/**
|
|
3787
|
+
* @param route
|
|
3788
|
+
* @returns
|
|
3789
|
+
*/
|
|
3790
|
+
function ClosePageHandler(route) {
|
|
3791
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3792
|
+
let lastview;
|
|
3793
|
+
if (lastview.layer) {
|
|
3794
|
+
if (lastview.enableHistory) {
|
|
3795
|
+
// 清空历史记录
|
|
3796
|
+
viewhistorys.clear();
|
|
3827
3797
|
}
|
|
3828
3798
|
}
|
|
3829
|
-
|
|
3830
|
-
|
|
3831
|
-
console.error(e.stack);
|
|
3832
|
-
//
|
|
3833
|
-
this.closeView(view);
|
|
3799
|
+
else {
|
|
3800
|
+
lastview = viewrepo.getByRoute(route);
|
|
3834
3801
|
}
|
|
3802
|
+
lastview.close();
|
|
3803
|
+
return lastview;
|
|
3804
|
+
});
|
|
3805
|
+
}
|
|
3806
|
+
class RouteController extends Controller {
|
|
3807
|
+
constructor(routePath) {
|
|
3808
|
+
super(routePath);
|
|
3809
|
+
this._tags = {};
|
|
3810
|
+
this._route = new Route(routePath);
|
|
3811
|
+
}
|
|
3812
|
+
open() {
|
|
3813
|
+
this.openByRoute();
|
|
3835
3814
|
}
|
|
3836
3815
|
/**
|
|
3837
|
-
|
|
3838
|
-
|
|
3839
|
-
|
|
3840
|
-
|
|
3841
|
-
|
|
3816
|
+
* 当视图需要通过路由打开时,需要实现此方法
|
|
3817
|
+
* @param route
|
|
3818
|
+
*/
|
|
3819
|
+
openByRoute(route) {
|
|
3820
|
+
throw "未实现 openByRoute";
|
|
3842
3821
|
}
|
|
3843
|
-
|
|
3844
|
-
|
|
3845
|
-
|
|
3846
|
-
|
|
3847
|
-
this._lastView = view;
|
|
3848
|
-
view.state = ViewState.Opened;
|
|
3849
|
-
// @ts-ignore
|
|
3850
|
-
view._waitOpenComplete = false;
|
|
3851
|
-
this.onOpened(view);
|
|
3852
|
-
view.dispatch(ViewEvent.Opened);
|
|
3822
|
+
refreshView(view) {
|
|
3823
|
+
}
|
|
3824
|
+
close() {
|
|
3825
|
+
this.closeByRoute();
|
|
3853
3826
|
}
|
|
3854
3827
|
/**
|
|
3855
3828
|
* 当视图需要通过路由关闭时,需要实现此方法
|
|
3856
3829
|
* @param route
|
|
3857
3830
|
* @returns
|
|
3858
3831
|
*/
|
|
3859
|
-
|
|
3860
|
-
|
|
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);
|
|
3903
|
-
try {
|
|
3904
|
-
this.onClosing(view);
|
|
3905
|
-
// @ts-ignore
|
|
3906
|
-
if (!view._waitCloseComplete) {
|
|
3907
|
-
// 没有被打断,关闭完成
|
|
3908
|
-
this.closeComplete(view);
|
|
3909
|
-
}
|
|
3910
|
-
else {
|
|
3911
|
-
// 被打断了,等待完成1
|
|
3912
|
-
}
|
|
3913
|
-
}
|
|
3914
|
-
catch (e) {
|
|
3915
|
-
console.error(`close view ${view.route.key}`);
|
|
3916
|
-
console.error(e.stack);
|
|
3917
|
-
}
|
|
3918
|
-
}
|
|
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);
|
|
3832
|
+
closeByRoute(route) {
|
|
3833
|
+
throw "未实现 closeByRoute";
|
|
3939
3834
|
}
|
|
3940
3835
|
refresh() {
|
|
3941
3836
|
this.refreshView(this._lastView);
|
|
3942
3837
|
}
|
|
3943
|
-
get layer() {
|
|
3944
|
-
return this._layer;
|
|
3945
|
-
}
|
|
3946
3838
|
hasTags(tags) {
|
|
3947
3839
|
for (let i = 0; i < tags.length; i++) {
|
|
3948
3840
|
let tag = tags[i];
|
|
@@ -3955,27 +3847,16 @@ class ViewController extends Controller {
|
|
|
3955
3847
|
}
|
|
3956
3848
|
return false;
|
|
3957
3849
|
}
|
|
3958
|
-
setLayer(name) {
|
|
3959
|
-
this._layer = name;
|
|
3960
|
-
return this;
|
|
3961
|
-
}
|
|
3962
3850
|
setTags(tags) {
|
|
3963
3851
|
this._tags = tags;
|
|
3964
3852
|
return this;
|
|
3965
3853
|
}
|
|
3966
|
-
useHistory() {
|
|
3967
|
-
this._enableHistory = true;
|
|
3968
|
-
return this;
|
|
3969
|
-
}
|
|
3970
3854
|
get lastView() {
|
|
3971
3855
|
return this._lastView;
|
|
3972
3856
|
}
|
|
3973
3857
|
get route() {
|
|
3974
3858
|
return this._route;
|
|
3975
3859
|
}
|
|
3976
|
-
get enableHistory() {
|
|
3977
|
-
return this._enableHistory;
|
|
3978
|
-
}
|
|
3979
3860
|
}
|
|
3980
3861
|
|
|
3981
3862
|
class UIObjectRepo extends Dictionary {
|
|
@@ -4035,75 +3916,198 @@ class UIObjectRepo extends Dictionary {
|
|
|
4035
3916
|
*/
|
|
4036
3917
|
var uirepo = new UIObjectRepo();
|
|
4037
3918
|
|
|
4038
|
-
|
|
4039
|
-
|
|
4040
|
-
|
|
3919
|
+
var ViewState;
|
|
3920
|
+
(function (ViewState) {
|
|
3921
|
+
/**
|
|
3922
|
+
* 关闭
|
|
3923
|
+
*/
|
|
3924
|
+
ViewState[ViewState["Closed"] = 0] = "Closed";
|
|
3925
|
+
/**
|
|
3926
|
+
* 正在打开
|
|
3927
|
+
*/
|
|
3928
|
+
ViewState[ViewState["Opening"] = 1] = "Opening";
|
|
3929
|
+
/**
|
|
3930
|
+
* 已打开
|
|
3931
|
+
*/
|
|
3932
|
+
ViewState[ViewState["Opened"] = 2] = "Opened";
|
|
3933
|
+
/**
|
|
3934
|
+
* 正在关闭
|
|
3935
|
+
*/
|
|
3936
|
+
ViewState[ViewState["Closeing"] = 3] = "Closeing";
|
|
3937
|
+
})(ViewState || (ViewState = {}));
|
|
3938
|
+
var ViewEvent;
|
|
3939
|
+
(function (ViewEvent) {
|
|
3940
|
+
// 正在打开
|
|
3941
|
+
ViewEvent["Opening"] = "opening";
|
|
3942
|
+
// 已打开
|
|
3943
|
+
ViewEvent["Opened"] = "opened";
|
|
3944
|
+
// 正在打开
|
|
3945
|
+
ViewEvent["Closeing"] = "closeing";
|
|
3946
|
+
// 已关闭
|
|
3947
|
+
ViewEvent["Closed"] = "closed";
|
|
3948
|
+
// 停止
|
|
3949
|
+
ViewEvent["Stop"] = "stop";
|
|
3950
|
+
})(ViewEvent || (ViewEvent = {}));
|
|
3951
|
+
class RouteView extends EventDispatcher {
|
|
3952
|
+
constructor(controller, route) {
|
|
3953
|
+
super();
|
|
3954
|
+
this._waitOpenComplete = false;
|
|
3955
|
+
this._waitCloseComplete = false;
|
|
3956
|
+
this.datas = {};
|
|
3957
|
+
this.tags = {};
|
|
3958
|
+
this.enableHistory = false;
|
|
3959
|
+
this.state = 0;
|
|
3960
|
+
this._controller = controller;
|
|
3961
|
+
this._route = route;
|
|
3962
|
+
}
|
|
3963
|
+
open() {
|
|
3964
|
+
if (this.state != ViewState.Closed) {
|
|
4041
3965
|
return;
|
|
4042
3966
|
}
|
|
4043
|
-
|
|
4044
|
-
if (
|
|
3967
|
+
let route = this.route;
|
|
3968
|
+
if (viewrepo.get(route.key)) {
|
|
3969
|
+
throw `视图已存在: route=${route.key}`;
|
|
3970
|
+
}
|
|
3971
|
+
viewrepo.set(route.key, this);
|
|
3972
|
+
this.state = ViewState.Opening;
|
|
3973
|
+
this.dispatch(ViewEvent.Opening);
|
|
3974
|
+
//
|
|
3975
|
+
try {
|
|
3976
|
+
//
|
|
3977
|
+
if (this.onOpen) {
|
|
3978
|
+
this.onOpen.call(this);
|
|
3979
|
+
}
|
|
3980
|
+
// @ts-ignore
|
|
3981
|
+
if (!this._waitOpenComplete) {
|
|
3982
|
+
// 没有被打断,打开完成
|
|
3983
|
+
this.openComplete();
|
|
3984
|
+
}
|
|
3985
|
+
else {
|
|
3986
|
+
// 被打断了,等待完成1
|
|
3987
|
+
}
|
|
3988
|
+
}
|
|
3989
|
+
catch (e) {
|
|
3990
|
+
console.error(`open view ${this.route.key}`);
|
|
3991
|
+
console.error(e.stack);
|
|
3992
|
+
//
|
|
3993
|
+
this.close();
|
|
3994
|
+
}
|
|
3995
|
+
}
|
|
3996
|
+
close() {
|
|
3997
|
+
if (this.state == ViewState.Closed) {
|
|
4045
3998
|
return;
|
|
4046
3999
|
}
|
|
4047
|
-
|
|
4000
|
+
this.state = ViewState.Closeing;
|
|
4001
|
+
this.dispatch(ViewEvent.Closeing);
|
|
4002
|
+
try {
|
|
4003
|
+
if (this.onClose) {
|
|
4004
|
+
this.onClose.call(this);
|
|
4005
|
+
}
|
|
4006
|
+
// @ts-ignore
|
|
4007
|
+
if (!this._waitCloseComplete) {
|
|
4008
|
+
// 没有被打断,关闭完成
|
|
4009
|
+
this.closeComplete();
|
|
4010
|
+
}
|
|
4011
|
+
else {
|
|
4012
|
+
// 被打断了,等待完成1
|
|
4013
|
+
}
|
|
4014
|
+
}
|
|
4015
|
+
catch (e) {
|
|
4016
|
+
console.error(`close view ${this.route.key}`);
|
|
4017
|
+
console.error(e.stack);
|
|
4018
|
+
}
|
|
4048
4019
|
}
|
|
4049
|
-
|
|
4050
|
-
|
|
4051
|
-
|
|
4052
|
-
|
|
4053
|
-
|
|
4054
|
-
|
|
4055
|
-
|
|
4056
|
-
|
|
4020
|
+
refresh() {
|
|
4021
|
+
try {
|
|
4022
|
+
if (this.onRefresh) {
|
|
4023
|
+
this.onClose.call(this);
|
|
4024
|
+
}
|
|
4025
|
+
// @ts-ignore
|
|
4026
|
+
if (!this._waitCloseComplete) {
|
|
4027
|
+
// 没有被打断,关闭完成
|
|
4028
|
+
this.closeComplete();
|
|
4029
|
+
}
|
|
4030
|
+
else {
|
|
4031
|
+
// 被打断了,等待完成1
|
|
4032
|
+
}
|
|
4033
|
+
}
|
|
4034
|
+
catch (e) {
|
|
4035
|
+
console.error(`refresh view ${this.route.key}`);
|
|
4036
|
+
console.error(e.stack);
|
|
4037
|
+
}
|
|
4057
4038
|
}
|
|
4058
4039
|
/**
|
|
4059
|
-
*
|
|
4060
|
-
*
|
|
4040
|
+
* 等待发送的结果
|
|
4041
|
+
* 如果返回 null,表示主动取消 [cancel]
|
|
4061
4042
|
*/
|
|
4062
|
-
|
|
4063
|
-
|
|
4064
|
-
|
|
4065
|
-
|
|
4066
|
-
|
|
4067
|
-
|
|
4068
|
-
|
|
4069
|
-
|
|
4070
|
-
|
|
4071
|
-
|
|
4072
|
-
|
|
4073
|
-
|
|
4043
|
+
wait() {
|
|
4044
|
+
switch (this.state) {
|
|
4045
|
+
case ViewState.Opening:
|
|
4046
|
+
return new Promise((resolve, reject) => {
|
|
4047
|
+
let opened = () => {
|
|
4048
|
+
this.off("opened", this, opened);
|
|
4049
|
+
this.off("canceled", this, opened);
|
|
4050
|
+
resolve(this);
|
|
4051
|
+
};
|
|
4052
|
+
let canceled = () => {
|
|
4053
|
+
this.off("opened", this, opened);
|
|
4054
|
+
this.off("canceled", this, opened);
|
|
4055
|
+
resolve(this);
|
|
4056
|
+
};
|
|
4057
|
+
this.on("opened", this, opened);
|
|
4058
|
+
this.on("canceled", this, canceled);
|
|
4059
|
+
});
|
|
4060
|
+
case ViewState.Closeing:
|
|
4061
|
+
return new Promise((resolve, reject) => {
|
|
4062
|
+
let opened = () => {
|
|
4063
|
+
this.off("closed", this, opened);
|
|
4064
|
+
resolve(this);
|
|
4065
|
+
};
|
|
4066
|
+
this.on("closed", this, opened);
|
|
4067
|
+
});
|
|
4068
|
+
default:
|
|
4069
|
+
return new Promise((resolve, reject) => {
|
|
4070
|
+
resolve(this);
|
|
4071
|
+
});
|
|
4074
4072
|
}
|
|
4075
|
-
|
|
4076
|
-
|
|
4077
|
-
return
|
|
4073
|
+
}
|
|
4074
|
+
toString() {
|
|
4075
|
+
return `View[${this.route.toString()}, ${this.id}]`;
|
|
4078
4076
|
}
|
|
4079
4077
|
/**
|
|
4080
|
-
|
|
4081
|
-
|
|
4082
|
-
|
|
4083
|
-
|
|
4084
|
-
|
|
4085
|
-
|
|
4086
|
-
|
|
4087
|
-
|
|
4088
|
-
|
|
4089
|
-
|
|
4078
|
+
* 等待打开完成指令
|
|
4079
|
+
*/
|
|
4080
|
+
waitOpenComplete() {
|
|
4081
|
+
this._waitOpenComplete = true;
|
|
4082
|
+
}
|
|
4083
|
+
openComplete() {
|
|
4084
|
+
this.state = ViewState.Opened;
|
|
4085
|
+
// @ts-ignore
|
|
4086
|
+
this._waitOpenComplete = false;
|
|
4087
|
+
if (this.onOpened) {
|
|
4088
|
+
this.onOpened.call(this);
|
|
4090
4089
|
}
|
|
4091
|
-
|
|
4092
|
-
|
|
4090
|
+
this.dispatch(ViewEvent.Opened);
|
|
4091
|
+
}
|
|
4092
|
+
waitCloseComplete(view) {
|
|
4093
|
+
// @ts-ignore
|
|
4094
|
+
view._waitCloseComplete = true;
|
|
4095
|
+
}
|
|
4096
|
+
closeComplete() {
|
|
4097
|
+
viewrepo.delete(this.route.key);
|
|
4098
|
+
this._waitCloseComplete = false;
|
|
4099
|
+
this.state = ViewState.Closed;
|
|
4100
|
+
this.dispatch(ViewEvent.Closed);
|
|
4101
|
+
if (this.onClosed) {
|
|
4102
|
+
this.onClosed.call(this);
|
|
4093
4103
|
}
|
|
4094
|
-
this.closeView(lastview);
|
|
4095
|
-
return lastview;
|
|
4096
4104
|
}
|
|
4097
|
-
|
|
4098
|
-
this.
|
|
4099
|
-
return this;
|
|
4105
|
+
get controller() {
|
|
4106
|
+
return this._controller;
|
|
4100
4107
|
}
|
|
4101
4108
|
get route() {
|
|
4102
4109
|
return this._route;
|
|
4103
4110
|
}
|
|
4104
|
-
get enableHistory() {
|
|
4105
|
-
return this._enableHistory;
|
|
4106
|
-
}
|
|
4107
4111
|
}
|
|
4108
4112
|
|
|
4109
4113
|
class Listener {
|
|
@@ -6379,5 +6383,5 @@ class WidgetUtil {
|
|
|
6379
6383
|
}
|
|
6380
6384
|
var widgetutil = new WidgetUtil();
|
|
6381
6385
|
|
|
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,
|
|
6386
|
+
export { ArrayUtil, AssetLoader, AssetURI, BitUtil, CallbackList, CameraUtil, CanvasUtil, CloseDialogHandler, ClosePageHandler, 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, OpenDialogHandler, OpenPageHandler, 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
6387
|
//# sourceMappingURL=index.esm.js.map
|