ngx-axis-appforge 1.0.7 → 1.0.9

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.
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, effect, inject, input, ElementRef, isSignal, Directive, Optional, Inject, Injectable, Injector, HostBinding, untracked, model, ViewChild, output, ViewContainerRef, forwardRef, Pipe, signal, ChangeDetectionStrategy, Component, computed, ContentChild } from '@angular/core';
3
- import { BehaviorSubject, filter, map, catchError, of, Subject, switchMap, debounceTime, isObservable, NEVER, merge, take, zip, Observable, tap, concat, last, mergeMap, from, mergeWith } from 'rxjs';
3
+ import { BehaviorSubject, filter, map, catchError, of, Subject, switchMap, debounceTime, isObservable, NEVER, merge, take, zip, Observable, tap, concat, last, from, defer, mergeWith } from 'rxjs';
4
4
  import * as i1 from '@angular/common/http';
5
5
  import { HttpContextToken, HttpContext, HttpRequest, HttpEventType, HttpClient } from '@angular/common/http';
6
6
  import { fromPromise } from 'rxjs/internal/observable/innerFrom';
@@ -901,7 +901,7 @@ class EventsHandlerService {
901
901
  apiEventHandler(e) {
902
902
  const opt = e.data;
903
903
  opt.context ??= e.ref?.injector.get(AXIS_HTTP_CONTEXT_DATA_TOKEN, null);
904
- return sendApi(opt, this.http).pipe(mergeMap(res => {
904
+ return sendApi(opt, this.http).pipe(switchMap(res => {
905
905
  if (e.ref) {
906
906
  return e.ref.triggeEvents("apiResponse", { ...e.tempDataSource, apiResponse: res }, e.triggeEvents);
907
907
  }
@@ -1004,6 +1004,7 @@ class EventsHandlerService {
1004
1004
  }
1005
1005
  routeEventHandler(e) {
1006
1006
  let { type, newtab, path } = e.data;
1007
+ let obs;
1007
1008
  switch (type) {
1008
1009
  case "web":
1009
1010
  if (newtab) {
@@ -1016,7 +1017,8 @@ class EventsHandlerService {
1016
1017
  }
1017
1018
  if (url) {
1018
1019
  window.open(url, "_blank");
1019
- return of(true);
1020
+ obs = of(true);
1021
+ break;
1020
1022
  }
1021
1023
  }
1022
1024
  else {
@@ -1024,7 +1026,8 @@ class EventsHandlerService {
1024
1026
  if (typeof path == "string") {
1025
1027
  if (path.startsWith("http")) {
1026
1028
  window.open(path, "_self");
1027
- return of(true);
1029
+ obs = of(true);
1030
+ break;
1028
1031
  }
1029
1032
  url = [path];
1030
1033
  }
@@ -1037,13 +1040,20 @@ class EventsHandlerService {
1037
1040
  }
1038
1041
  else {
1039
1042
  const route = e.ref?.injector.get(ActivatedRoute);
1040
- return from(this.router.navigate(url, { relativeTo: route, state: e.data?.params }));
1043
+ obs = from(this.router.navigate(url, { relativeTo: route, state: e.data?.params }));
1044
+ break;
1041
1045
  }
1042
1046
  }
1043
1047
  }
1044
1048
  break;
1045
1049
  }
1046
- return of(false);
1050
+ obs ??= of(false);
1051
+ return obs.pipe(switchMap(res => {
1052
+ if (res && e.ref) {
1053
+ return e.ref.triggeEvents("routeEnd", e.tempDataSource, e.triggeEvents);
1054
+ }
1055
+ return of(res);
1056
+ }));
1047
1057
  }
1048
1058
  runScriptEventHandler(e) {
1049
1059
  if (e.data?.script) {
@@ -1191,7 +1201,7 @@ class Base {
1191
1201
  triggeEvents(trigger, tempDataSource, triggeEvents, scope) {
1192
1202
  scope ??= this.scope ?? undefined;
1193
1203
  const te = triggeEvents ?? this.options.triggeEvents();
1194
- if (te && te[trigger]) {
1204
+ if (te && te[trigger]?.length) {
1195
1205
  return merge(...te[trigger].filter(e => !(scope?.snapshotField(e, "disabled", tempDataSource) ?? e.disabled)).map(e => {
1196
1206
  if (scope) {
1197
1207
  e = scope.snapshotOptions(e, tempDataSource);
@@ -1206,24 +1216,26 @@ class Base {
1206
1216
  return of(true);
1207
1217
  }
1208
1218
  triggeEvent(e, scope) {
1209
- scope ??= this.scope ?? undefined;
1210
- console.log("triggeEvent", e);
1211
- e.ref = this;
1212
- let obs;
1213
- switch (e.target) {
1214
- case "component":
1215
- if (e.id) {
1216
- obs = (scope)?.findInstance(e.id)?.onEvents?.(e);
1217
- }
1218
- break;
1219
- case "service":
1220
- obs = this.eventsService.onEvents(e);
1221
- break;
1222
- case "scope":
1223
- obs = scope?.onEvents(e);
1224
- break;
1225
- }
1226
- return obs ?? of(true);
1219
+ return defer(() => {
1220
+ scope ??= this.scope ?? undefined;
1221
+ console.log("triggeEvent", e);
1222
+ e.ref = this;
1223
+ let obs;
1224
+ switch (e.target) {
1225
+ case "component":
1226
+ if (e.id) {
1227
+ obs = (scope)?.findInstance(e.id)?.onEvents?.(e);
1228
+ }
1229
+ break;
1230
+ case "service":
1231
+ obs = this.eventsService.onEvents(e);
1232
+ break;
1233
+ case "scope":
1234
+ obs = scope?.onEvents(e);
1235
+ break;
1236
+ }
1237
+ return obs ?? of(true);
1238
+ });
1227
1239
  }
1228
1240
  getScope() {
1229
1241
  return this.scope;
@@ -3297,7 +3309,13 @@ const baseEventHandlerDescs = {
3297
3309
  formStyle: {
3298
3310
  labelSpan: 8
3299
3311
  },
3300
- dataComponent: RouteHandler
3312
+ dataComponent: RouteHandler,
3313
+ events: [
3314
+ {
3315
+ name: "routeEnd",
3316
+ title: "路由结束",
3317
+ }
3318
+ ]
3301
3319
  },
3302
3320
  runScript: {
3303
3321
  name: "runScript",