@dereekb/dbx-core 13.18.0 → 13.19.0
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.
|
@@ -1119,7 +1119,7 @@ function loadingStateForActionContextState(state) {
|
|
|
1119
1119
|
function loadingStateTypeForActionContextState(state) {
|
|
1120
1120
|
return loadingStateTypeForActionState(state.actionState);
|
|
1121
1121
|
}
|
|
1122
|
-
const INITIAL_STATE$
|
|
1122
|
+
const INITIAL_STATE$3 = {
|
|
1123
1123
|
isModified: false,
|
|
1124
1124
|
actionState: DbxActionState.IDLE
|
|
1125
1125
|
};
|
|
@@ -1165,7 +1165,7 @@ class ActionContextStore extends ComponentStore {
|
|
|
1165
1165
|
}
|
|
1166
1166
|
});
|
|
1167
1167
|
constructor() {
|
|
1168
|
-
super({ ...INITIAL_STATE$
|
|
1168
|
+
super({ ...INITIAL_STATE$3 });
|
|
1169
1169
|
this.lockSet.addLock('working', this.isWorking$);
|
|
1170
1170
|
}
|
|
1171
1171
|
// MARK: Accessors
|
|
@@ -1346,7 +1346,7 @@ class ActionContextStore extends ComponentStore {
|
|
|
1346
1346
|
/**
|
|
1347
1347
|
* Completely resets the store.
|
|
1348
1348
|
*/
|
|
1349
|
-
reset = this.updater(() => ({ ...INITIAL_STATE$
|
|
1349
|
+
reset = this.updater(() => ({ ...INITIAL_STATE$3 }));
|
|
1350
1350
|
// MARK: Utility
|
|
1351
1351
|
afterDistinctBoolean(fromState) {
|
|
1352
1352
|
return this.state$.pipe(map((x) => fromState(x)), distinctUntilChanged(), shareReplay(1));
|
|
@@ -3640,10 +3640,10 @@ var index$3 = /*#__PURE__*/Object.freeze({
|
|
|
3640
3640
|
* The feature key for these items/reducers.
|
|
3641
3641
|
*/
|
|
3642
3642
|
const DBX_APP_CONTEXT_STATE_FEATURE_KEY = 'data';
|
|
3643
|
-
const INITIAL_STATE$
|
|
3643
|
+
const INITIAL_STATE$2 = {
|
|
3644
3644
|
state: DBX_INIT_APP_CONTEXT_STATE
|
|
3645
3645
|
};
|
|
3646
|
-
const reducer$
|
|
3646
|
+
const reducer$2 = createReducer(INITIAL_STATE$2,
|
|
3647
3647
|
/**
|
|
3648
3648
|
* When DbxAppContextActions.dbxAppContextSetState is pushed, update the app's state to match the argument state.
|
|
3649
3649
|
*/
|
|
@@ -3662,7 +3662,7 @@ const FEATURE_KEY$1 = 'app.context';
|
|
|
3662
3662
|
*/
|
|
3663
3663
|
function reducers$1(state, action) {
|
|
3664
3664
|
return combineReducers({
|
|
3665
|
-
[DBX_APP_CONTEXT_STATE_FEATURE_KEY]: reducer$
|
|
3665
|
+
[DBX_APP_CONTEXT_STATE_FEATURE_KEY]: reducer$2
|
|
3666
3666
|
})(state, action);
|
|
3667
3667
|
}
|
|
3668
3668
|
/**
|
|
@@ -3824,6 +3824,31 @@ var user_action = /*#__PURE__*/Object.freeze({
|
|
|
3824
3824
|
setUserState: setUserState
|
|
3825
3825
|
});
|
|
3826
3826
|
|
|
3827
|
+
/**
|
|
3828
|
+
* NgRx action dispatched when impersonation of a user starts (or switches to a different target).
|
|
3829
|
+
*
|
|
3830
|
+
* Dispatched by `DbxAppAuthImpersonationEffects` in response to a `'start'`
|
|
3831
|
+
* {@link DbxAuthImpersonationEvent} from {@link DbxAuthImpersonationService.events$}.
|
|
3832
|
+
*
|
|
3833
|
+
* @see {@link stoppedImpersonating} for the corresponding clear event.
|
|
3834
|
+
*/
|
|
3835
|
+
const startedImpersonating = createAction('[App/Auth/Impersonation] Started', props());
|
|
3836
|
+
/**
|
|
3837
|
+
* NgRx action dispatched when impersonation is cleared and the app reverts to the real authenticated user.
|
|
3838
|
+
*
|
|
3839
|
+
* Dispatched by `DbxAppAuthImpersonationEffects` in response to an `'end'`
|
|
3840
|
+
* {@link DbxAuthImpersonationEvent} from {@link DbxAuthImpersonationService.events$}.
|
|
3841
|
+
*
|
|
3842
|
+
* @see {@link startedImpersonating} for the corresponding start event.
|
|
3843
|
+
*/
|
|
3844
|
+
const stoppedImpersonating = createAction('[App/Auth/Impersonation] Stopped', props());
|
|
3845
|
+
|
|
3846
|
+
var impersonation_action = /*#__PURE__*/Object.freeze({
|
|
3847
|
+
__proto__: null,
|
|
3848
|
+
startedImpersonating: startedImpersonating,
|
|
3849
|
+
stoppedImpersonating: stoppedImpersonating
|
|
3850
|
+
});
|
|
3851
|
+
|
|
3827
3852
|
/**
|
|
3828
3853
|
* Actions related to the auth state.
|
|
3829
3854
|
*/
|
|
@@ -3831,6 +3856,7 @@ var user_action = /*#__PURE__*/Object.freeze({
|
|
|
3831
3856
|
var index$1 = /*#__PURE__*/Object.freeze({
|
|
3832
3857
|
__proto__: null,
|
|
3833
3858
|
DbxAppAuthActions: auth_action,
|
|
3859
|
+
DbxAppAuthImpersonationActions: impersonation_action,
|
|
3834
3860
|
DbxAppAuthUserActions: user_action
|
|
3835
3861
|
});
|
|
3836
3862
|
|
|
@@ -3844,13 +3870,25 @@ const DBX_APP_AUTH_USER_FEATURE_KEY = 'user';
|
|
|
3844
3870
|
* Represents a fully unauthenticated state: no user identifier, not onboarded,
|
|
3845
3871
|
* in the `'none'` auth state, with no roles assigned.
|
|
3846
3872
|
*/
|
|
3847
|
-
const INITIAL_STATE = {
|
|
3873
|
+
const INITIAL_STATE$1 = {
|
|
3848
3874
|
userId: NO_AUTH_USER_IDENTIFIER,
|
|
3849
3875
|
isOnboarded: false,
|
|
3850
3876
|
userState: 'none',
|
|
3851
3877
|
userRoles: []
|
|
3852
3878
|
};
|
|
3853
|
-
const reducer = createReducer(INITIAL_STATE, on(loggedOut, () => ({ ...INITIAL_STATE })), on(setUserIdentifier, (state, { id: userId }) => ({ ...state, userId })), on(setUserIsOnboarded, (state, { isOnboarded }) => ({ ...state, isOnboarded })), on(setUserState, (state, { state: userState }) => ({ ...state, userState })), on(setUserRoles, (state, { roles: userRoles }) => ({ ...state, userRoles: [...userRoles] })));
|
|
3879
|
+
const reducer$1 = createReducer(INITIAL_STATE$1, on(loggedOut, () => ({ ...INITIAL_STATE$1 })), on(setUserIdentifier, (state, { id: userId }) => ({ ...state, userId })), on(setUserIsOnboarded, (state, { isOnboarded }) => ({ ...state, isOnboarded })), on(setUserState, (state, { state: userState }) => ({ ...state, userState })), on(setUserRoles, (state, { roles: userRoles }) => ({ ...state, userRoles: [...userRoles] })));
|
|
3880
|
+
|
|
3881
|
+
/**
|
|
3882
|
+
* NgRx feature key for the impersonation sub-state within the auth feature.
|
|
3883
|
+
*/
|
|
3884
|
+
const DBX_APP_AUTH_IMPERSONATION_FEATURE_KEY = 'impersonation';
|
|
3885
|
+
/**
|
|
3886
|
+
* Initial state for the impersonation reducer: not impersonating anyone.
|
|
3887
|
+
*/
|
|
3888
|
+
const INITIAL_STATE = {
|
|
3889
|
+
impersonatedUserId: undefined
|
|
3890
|
+
};
|
|
3891
|
+
const reducer = createReducer(INITIAL_STATE, on(loggedOut, () => ({ ...INITIAL_STATE })), on(startedImpersonating, (state, { userId }) => ({ ...state, impersonatedUserId: userId })), on(stoppedImpersonating, (state) => ({ ...state, impersonatedUserId: undefined })));
|
|
3854
3892
|
|
|
3855
3893
|
/**
|
|
3856
3894
|
* NgRx feature key used to register the auth feature state in the global store.
|
|
@@ -3870,7 +3908,8 @@ const FEATURE_KEY = 'app.auth';
|
|
|
3870
3908
|
*/
|
|
3871
3909
|
function reducers(state, action) {
|
|
3872
3910
|
return combineReducers({
|
|
3873
|
-
[DBX_APP_AUTH_USER_FEATURE_KEY]: reducer
|
|
3911
|
+
[DBX_APP_AUTH_USER_FEATURE_KEY]: reducer$1,
|
|
3912
|
+
[DBX_APP_AUTH_IMPERSONATION_FEATURE_KEY]: reducer
|
|
3874
3913
|
})(state, action);
|
|
3875
3914
|
}
|
|
3876
3915
|
/**
|
|
@@ -3885,12 +3924,19 @@ const selectAppAuthFeature = createFeatureSelector(FEATURE_KEY);
|
|
|
3885
3924
|
* @see {@link DbxAppAuthStateService.authStateUser$} for the observable wrapper.
|
|
3886
3925
|
*/
|
|
3887
3926
|
const selectDbxAppAuthUser = createSelector(selectAppAuthFeature, (featureState) => featureState[DBX_APP_AUTH_USER_FEATURE_KEY]);
|
|
3927
|
+
/**
|
|
3928
|
+
* NgRx selector that retrieves the {@link DbxAppAuthStateImpersonation} from the auth feature state.
|
|
3929
|
+
*
|
|
3930
|
+
* @see {@link DbxAppAuthStateService.authStateImpersonation$} for the observable wrapper.
|
|
3931
|
+
*/
|
|
3932
|
+
const selectDbxAppAuthImpersonation = createSelector(selectAppAuthFeature, (featureState) => featureState[DBX_APP_AUTH_IMPERSONATION_FEATURE_KEY]);
|
|
3888
3933
|
|
|
3889
3934
|
var index = /*#__PURE__*/Object.freeze({
|
|
3890
3935
|
__proto__: null,
|
|
3891
3936
|
FEATURE_KEY: FEATURE_KEY,
|
|
3892
3937
|
reducers: reducers,
|
|
3893
3938
|
selectAppAuthFeature: selectAppAuthFeature,
|
|
3939
|
+
selectDbxAppAuthImpersonation: selectDbxAppAuthImpersonation,
|
|
3894
3940
|
selectDbxAppAuthUser: selectDbxAppAuthUser
|
|
3895
3941
|
});
|
|
3896
3942
|
|
|
@@ -4338,6 +4384,311 @@ function authRolesSetContainsNoRolesFrom(roles) {
|
|
|
4338
4384
|
return setContainsNoValueFrom(roles);
|
|
4339
4385
|
}
|
|
4340
4386
|
|
|
4387
|
+
/**
|
|
4388
|
+
* Abstract delegate used by {@link DbxAuthImpersonationService} to load details for an impersonated user.
|
|
4389
|
+
*
|
|
4390
|
+
* Optional: when no delegate is provided, {@link DbxAuthImpersonationService.impersonationDetails$} emits
|
|
4391
|
+
* `undefined`. Register a concrete implementation with {@link provideDbxAuthImpersonationDelegate} (or via
|
|
4392
|
+
* the `delegateType` option of `provideDbxAuthImpersonation`).
|
|
4393
|
+
*
|
|
4394
|
+
* @typeParam T - The provider-specific raw payload type carried on {@link DbxAuthImpersonationDetails.raw}.
|
|
4395
|
+
*/
|
|
4396
|
+
class DbxAuthImpersonationDelegate {
|
|
4397
|
+
}
|
|
4398
|
+
/**
|
|
4399
|
+
* Creates Angular DI providers that register the given source type as a {@link DbxAuthImpersonationDelegate}.
|
|
4400
|
+
*
|
|
4401
|
+
* Registers the class itself (so it is instantiable) and aliases the abstract {@link DbxAuthImpersonationDelegate}
|
|
4402
|
+
* token to it via `useExisting`.
|
|
4403
|
+
*
|
|
4404
|
+
* @param sourceType - The class to provide as the delegate.
|
|
4405
|
+
* @returns Array of Angular providers.
|
|
4406
|
+
*
|
|
4407
|
+
* @typeParam S - The concrete delegate class type to register.
|
|
4408
|
+
*/
|
|
4409
|
+
function provideDbxAuthImpersonationDelegate(sourceType) {
|
|
4410
|
+
const providers = [
|
|
4411
|
+
sourceType,
|
|
4412
|
+
{
|
|
4413
|
+
provide: DbxAuthImpersonationDelegate,
|
|
4414
|
+
useExisting: forwardRef(() => sourceType)
|
|
4415
|
+
}
|
|
4416
|
+
];
|
|
4417
|
+
return providers;
|
|
4418
|
+
}
|
|
4419
|
+
|
|
4420
|
+
/**
|
|
4421
|
+
* Optional, opt-in auth feature that lets an app act as a different user ("view as another user" / impersonation).
|
|
4422
|
+
*
|
|
4423
|
+
* This service is the source of truth for the impersonation state and is intentionally NOT `providedIn: 'root'`:
|
|
4424
|
+
* it is registered by `provideDbxAuthImpersonation()` so it is tree-shaken out of apps that do not opt in.
|
|
4425
|
+
*
|
|
4426
|
+
* It depends only on the abstract {@link DbxAuthService} (so it works in any dbx app, Firebase or not) and
|
|
4427
|
+
* resolves the {@link DbxAuthImpersonationService.effectiveUserId$} that downstream per-user stores key off of.
|
|
4428
|
+
* The compounding effects of impersonation (re-keying stores, banner UI, disabling edits, loading the viewed
|
|
4429
|
+
* user's details for display) are the responsibility of the consuming app.
|
|
4430
|
+
*
|
|
4431
|
+
* @typeParam T - The provider-specific raw payload type carried on {@link DbxAuthImpersonationDetails.raw}.
|
|
4432
|
+
*
|
|
4433
|
+
* @see {@link DbxAuthImpersonationTriggerDirective} for the route-driven trigger.
|
|
4434
|
+
* @see {@link DbxAuthImpersonationDelegate} for loading the impersonated user's details.
|
|
4435
|
+
*/
|
|
4436
|
+
class DbxAuthImpersonationService {
|
|
4437
|
+
_dbxAuthService = inject(DbxAuthService);
|
|
4438
|
+
_delegate = inject(DbxAuthImpersonationDelegate, { optional: true });
|
|
4439
|
+
_impersonatedUserId = completeOnDestroy(new BehaviorSubject(undefined));
|
|
4440
|
+
_events = completeOnDestroy(new Subject());
|
|
4441
|
+
/**
|
|
4442
|
+
* Tracks the latest real authenticated identifier so {@link startImpersonating} can ignore self-impersonation.
|
|
4443
|
+
*/
|
|
4444
|
+
_currentRealUserId;
|
|
4445
|
+
/**
|
|
4446
|
+
* The user currently being impersonated, or null/undefined when not impersonating.
|
|
4447
|
+
*/
|
|
4448
|
+
impersonatedUserId$ = this._impersonatedUserId.pipe(distinctUntilChanged(), shareReplay(1));
|
|
4449
|
+
/**
|
|
4450
|
+
* True while a user is being impersonated.
|
|
4451
|
+
*/
|
|
4452
|
+
isImpersonating$ = this.impersonatedUserId$.pipe(map((x) => x != null), distinctUntilChanged(), shareReplay(1));
|
|
4453
|
+
/**
|
|
4454
|
+
* The effective user the app should act as: the impersonated user when set, otherwise the real authenticated user.
|
|
4455
|
+
*/
|
|
4456
|
+
effectiveUserId$ = combineLatest([this.impersonatedUserId$, this._dbxAuthService.userIdentifier$]).pipe(map(([impersonated, real]) => authUserIdentifier(impersonated ?? real)), distinctUntilChanged(), shareReplay(1));
|
|
4457
|
+
/**
|
|
4458
|
+
* Edge-triggered start/end signal. Subscribe to react to the impersonation lifecycle.
|
|
4459
|
+
*/
|
|
4460
|
+
events$ = this._events.asObservable();
|
|
4461
|
+
/**
|
|
4462
|
+
* Lazily-loaded details of the impersonated user via the optional {@link DbxAuthImpersonationDelegate}.
|
|
4463
|
+
* Emits `undefined` when not impersonating or when no delegate is configured.
|
|
4464
|
+
*/
|
|
4465
|
+
impersonationDetails$ = this.impersonatedUserId$.pipe(switchMap((uid) => (uid != null && this._delegate != null ? this._delegate.loadImpersonationDetails(uid) : of(undefined))), shareReplay(1));
|
|
4466
|
+
constructor() {
|
|
4467
|
+
// Auto-clear impersonation whenever the real authenticated identity changes or the user logs out,
|
|
4468
|
+
// so impersonation never leaks across sessions or account switches. The first emission only captures
|
|
4469
|
+
// the current identity; subsequent changes trigger the clear.
|
|
4470
|
+
let isFirstIdentity = true;
|
|
4471
|
+
cleanSubscription(this._dbxAuthService.userIdentifier$.pipe(distinctUntilChanged()).subscribe((realUserId) => {
|
|
4472
|
+
this._currentRealUserId = realUserId;
|
|
4473
|
+
if (isFirstIdentity) {
|
|
4474
|
+
isFirstIdentity = false;
|
|
4475
|
+
}
|
|
4476
|
+
else {
|
|
4477
|
+
this._clear('auth');
|
|
4478
|
+
}
|
|
4479
|
+
}));
|
|
4480
|
+
cleanSubscription(this._dbxAuthService.onLogOut$.subscribe(() => this._clear('auth')));
|
|
4481
|
+
}
|
|
4482
|
+
/**
|
|
4483
|
+
* Begins (or switches) impersonation of the given user.
|
|
4484
|
+
*
|
|
4485
|
+
* No-ops when `userId` is the {@link NO_AUTH_USER_IDENTIFIER} sentinel, the current real user, or already the
|
|
4486
|
+
* impersonated user. To revert to the real user, call {@link stopImpersonating}.
|
|
4487
|
+
*
|
|
4488
|
+
* @param userId - The identifier of the user to impersonate.
|
|
4489
|
+
*/
|
|
4490
|
+
startImpersonating(userId) {
|
|
4491
|
+
const previous = this._impersonatedUserId.value;
|
|
4492
|
+
const isValidTarget = userId !== NO_AUTH_USER_IDENTIFIER && userId !== this._currentRealUserId && userId !== previous;
|
|
4493
|
+
if (isValidTarget) {
|
|
4494
|
+
this._impersonatedUserId.next(userId);
|
|
4495
|
+
this._emit('start', userId, previous, 'manual');
|
|
4496
|
+
}
|
|
4497
|
+
}
|
|
4498
|
+
/**
|
|
4499
|
+
* Ends impersonation, reverting the effective user to the real authenticated user. No-ops if not impersonating.
|
|
4500
|
+
*/
|
|
4501
|
+
stopImpersonating() {
|
|
4502
|
+
this._clear('manual');
|
|
4503
|
+
}
|
|
4504
|
+
_clear(reason) {
|
|
4505
|
+
const previous = this._impersonatedUserId.value;
|
|
4506
|
+
if (previous != null) {
|
|
4507
|
+
this._impersonatedUserId.next(undefined);
|
|
4508
|
+
this._emit('end', undefined, previous, reason);
|
|
4509
|
+
}
|
|
4510
|
+
}
|
|
4511
|
+
_emit(type, impersonatedUserId, previousImpersonatedUserId, reason) {
|
|
4512
|
+
this._events.next({ type, impersonatedUserId, previousImpersonatedUserId, reason });
|
|
4513
|
+
}
|
|
4514
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxAuthImpersonationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4515
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxAuthImpersonationService });
|
|
4516
|
+
}
|
|
4517
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxAuthImpersonationService, decorators: [{
|
|
4518
|
+
type: Injectable
|
|
4519
|
+
}], ctorParameters: () => [] });
|
|
4520
|
+
|
|
4521
|
+
// MARK: Id
|
|
4522
|
+
/**
|
|
4523
|
+
* Abstract delegate that receives model identifier observables from a {@link DbxRouteModelIdDirective}.
|
|
4524
|
+
*
|
|
4525
|
+
* Implement this class and register it as a provider to receive the id parameter read from the current route.
|
|
4526
|
+
* The directive will call {@link useRouteModelIdParamsObservable} during initialization.
|
|
4527
|
+
*
|
|
4528
|
+
* @example
|
|
4529
|
+
* ```ts
|
|
4530
|
+
* @Directive({
|
|
4531
|
+
* selector: '[myModelLoader]',
|
|
4532
|
+
* providers: provideDbxRouteModelIdDirectiveDelegate(MyModelLoaderDirective)
|
|
4533
|
+
* })
|
|
4534
|
+
* class MyModelLoaderDirective extends DbxRouteModelIdDirectiveDelegate {
|
|
4535
|
+
* useRouteModelIdParamsObservable(idFromParams$: Observable<Maybe<ModelKey>>, computedId$: Observable<Maybe<ModelKey>>): Subscription {
|
|
4536
|
+
* return computedId$.subscribe(id => this.loadModel(id));
|
|
4537
|
+
* }
|
|
4538
|
+
* }
|
|
4539
|
+
* ```
|
|
4540
|
+
*
|
|
4541
|
+
* @see {@link DbxRouteModelIdDirective} for the directive that provides the id observables
|
|
4542
|
+
* @see {@link provideDbxRouteModelIdDirectiveDelegate} for registering the delegate provider
|
|
4543
|
+
*/
|
|
4544
|
+
class DbxRouteModelIdDirectiveDelegate {
|
|
4545
|
+
}
|
|
4546
|
+
/**
|
|
4547
|
+
* Creates Angular DI providers that register the given source type as a {@link DbxRouteModelIdDirectiveDelegate}.
|
|
4548
|
+
*
|
|
4549
|
+
* @param sourceType - The class to provide as the delegate.
|
|
4550
|
+
* @returns Array of Angular providers.
|
|
4551
|
+
*
|
|
4552
|
+
* @see {@link DbxRouteModelIdDirectiveDelegate}
|
|
4553
|
+
* @typeParam S - The concrete delegate class type to register.
|
|
4554
|
+
*/
|
|
4555
|
+
function provideDbxRouteModelIdDirectiveDelegate(sourceType) {
|
|
4556
|
+
const providers = [
|
|
4557
|
+
{
|
|
4558
|
+
provide: DbxRouteModelIdDirectiveDelegate,
|
|
4559
|
+
useExisting: forwardRef(() => sourceType)
|
|
4560
|
+
}
|
|
4561
|
+
];
|
|
4562
|
+
return providers;
|
|
4563
|
+
}
|
|
4564
|
+
// MARK: Key
|
|
4565
|
+
/**
|
|
4566
|
+
* Abstract delegate that receives model key observables from a {@link DbxRouteModelKeyDirective}.
|
|
4567
|
+
*
|
|
4568
|
+
* Implement this class and register it as a provider to receive the key parameter read from the current route.
|
|
4569
|
+
* The directive will call {@link useRouteModelKeyParamsObservable} during initialization.
|
|
4570
|
+
*
|
|
4571
|
+
* @example
|
|
4572
|
+
* ```ts
|
|
4573
|
+
* @Directive({
|
|
4574
|
+
* selector: '[myModelKeyLoader]',
|
|
4575
|
+
* providers: provideDbxRouteModelKeyDirectiveDelegate(MyModelKeyLoaderDirective)
|
|
4576
|
+
* })
|
|
4577
|
+
* class MyModelKeyLoaderDirective extends DbxRouteModelKeyDirectiveDelegate {
|
|
4578
|
+
* useRouteModelKeyParamsObservable(keyFromParams$: Observable<Maybe<ModelKey>>, computedKey$: Observable<Maybe<ModelKey>>): Subscription {
|
|
4579
|
+
* return computedKey$.subscribe(key => this.loadModel(key));
|
|
4580
|
+
* }
|
|
4581
|
+
* }
|
|
4582
|
+
* ```
|
|
4583
|
+
*
|
|
4584
|
+
* @see {@link DbxRouteModelKeyDirective} for the directive that provides the key observables
|
|
4585
|
+
* @see {@link provideDbxRouteModelKeyDirectiveDelegate} for registering the delegate provider
|
|
4586
|
+
*/
|
|
4587
|
+
class DbxRouteModelKeyDirectiveDelegate {
|
|
4588
|
+
}
|
|
4589
|
+
/**
|
|
4590
|
+
* Creates Angular DI providers that register the given source type as a {@link DbxRouteModelKeyDirectiveDelegate}.
|
|
4591
|
+
*
|
|
4592
|
+
* @param sourceType - The class to provide as the delegate.
|
|
4593
|
+
* @returns Array of Angular providers.
|
|
4594
|
+
*
|
|
4595
|
+
* @see {@link DbxRouteModelKeyDirectiveDelegate}
|
|
4596
|
+
* @typeParam S - The concrete delegate class type to register.
|
|
4597
|
+
*/
|
|
4598
|
+
function provideDbxRouteModelKeyDirectiveDelegate(sourceType) {
|
|
4599
|
+
const providers = [
|
|
4600
|
+
{
|
|
4601
|
+
provide: DbxRouteModelKeyDirectiveDelegate,
|
|
4602
|
+
useExisting: forwardRef(() => sourceType)
|
|
4603
|
+
}
|
|
4604
|
+
];
|
|
4605
|
+
return providers;
|
|
4606
|
+
}
|
|
4607
|
+
|
|
4608
|
+
/**
|
|
4609
|
+
* Route-driven trigger that begins/ends impersonation based on the model id read from the current route.
|
|
4610
|
+
*
|
|
4611
|
+
* Pair it with the {@link DbxRouteModelIdDirective} (`dbxRouteModelId`) in a template:
|
|
4612
|
+
*
|
|
4613
|
+
* ```html
|
|
4614
|
+
* <div dbxRouteModelId="uid" dbxAuthImpersonationTrigger>
|
|
4615
|
+
* <ui-view></ui-view>
|
|
4616
|
+
* </div>
|
|
4617
|
+
* ```
|
|
4618
|
+
*
|
|
4619
|
+
* When the route id is a non-sentinel user different from the logged-in user, impersonation starts;
|
|
4620
|
+
* otherwise it stops. Requires {@link provideDbxAuthImpersonation} to have registered the service.
|
|
4621
|
+
*/
|
|
4622
|
+
class DbxAuthImpersonationTriggerDirective extends DbxRouteModelIdDirectiveDelegate {
|
|
4623
|
+
_impersonationService = inject(DbxAuthImpersonationService);
|
|
4624
|
+
_dbxAuthService = inject(DbxAuthService);
|
|
4625
|
+
useRouteModelIdParamsObservable(_idFromParamsObs, computedIdObs) {
|
|
4626
|
+
return combineLatest([computedIdObs, this._dbxAuthService.userIdentifier$]).subscribe(([routeUid, currentUid]) => {
|
|
4627
|
+
if (routeUid != null && routeUid !== NO_AUTH_USER_IDENTIFIER && routeUid !== currentUid) {
|
|
4628
|
+
this._impersonationService.startImpersonating(routeUid);
|
|
4629
|
+
}
|
|
4630
|
+
else {
|
|
4631
|
+
this._impersonationService.stopImpersonating();
|
|
4632
|
+
}
|
|
4633
|
+
});
|
|
4634
|
+
}
|
|
4635
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxAuthImpersonationTriggerDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
4636
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.11", type: DbxAuthImpersonationTriggerDirective, isStandalone: true, selector: "[dbxAuthImpersonationTrigger]", providers: provideDbxRouteModelIdDirectiveDelegate(DbxAuthImpersonationTriggerDirective), usesInheritance: true, ngImport: i0 });
|
|
4637
|
+
}
|
|
4638
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxAuthImpersonationTriggerDirective, decorators: [{
|
|
4639
|
+
type: Directive,
|
|
4640
|
+
args: [{
|
|
4641
|
+
selector: '[dbxAuthImpersonationTrigger]',
|
|
4642
|
+
standalone: true,
|
|
4643
|
+
providers: provideDbxRouteModelIdDirectiveDelegate(DbxAuthImpersonationTriggerDirective)
|
|
4644
|
+
}]
|
|
4645
|
+
}] });
|
|
4646
|
+
|
|
4647
|
+
/**
|
|
4648
|
+
* NgRx effects class that bridges {@link DbxAuthImpersonationService.events$} into the `app.auth` impersonation slice.
|
|
4649
|
+
*
|
|
4650
|
+
* One-directional service → store, mirroring {@link DbxAppAuthEffects}. Registered only when an app opts in via
|
|
4651
|
+
* `provideDbxAuthImpersonation({ ngrx: true })`, so the slice stays empty unless impersonation is actually enabled.
|
|
4652
|
+
*
|
|
4653
|
+
* @see {@link DbxAuthImpersonationService}
|
|
4654
|
+
* @see {@link DbxAppAuthImpersonationActions}
|
|
4655
|
+
*/
|
|
4656
|
+
class DbxAppAuthImpersonationEffects {
|
|
4657
|
+
dbxAuthImpersonationService = inject(DbxAuthImpersonationService);
|
|
4658
|
+
/**
|
|
4659
|
+
* Dispatches the started/stopped impersonation action for each lifecycle event emitted by the service.
|
|
4660
|
+
*/
|
|
4661
|
+
syncImpersonationState = createEffect(() => this.dbxAuthImpersonationService.events$.pipe(map((event) => (event.type === 'start' ? startedImpersonating({ userId: authUserIdentifier(event.impersonatedUserId), previousUserId: event.previousImpersonatedUserId }) : stoppedImpersonating({ previousUserId: event.previousImpersonatedUserId })))));
|
|
4662
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxAppAuthImpersonationEffects, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4663
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxAppAuthImpersonationEffects });
|
|
4664
|
+
}
|
|
4665
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxAppAuthImpersonationEffects, decorators: [{
|
|
4666
|
+
type: Injectable
|
|
4667
|
+
}] });
|
|
4668
|
+
|
|
4669
|
+
/**
|
|
4670
|
+
* Opt-in provider that enables the impersonation ("view as another user") feature.
|
|
4671
|
+
*
|
|
4672
|
+
* Registers {@link DbxAuthImpersonationService} (and the optional details delegate / NgRx bridge effect).
|
|
4673
|
+
* The route trigger {@link DbxAuthImpersonationTriggerDirective} is standalone and imported where used.
|
|
4674
|
+
*
|
|
4675
|
+
* The impersonation NgRx reducer slice itself is always registered by `provideDbxAppAuthState()`; this
|
|
4676
|
+
* provider only adds the service, the optional delegate, and (when `ngrx` is set) the effect that feeds the slice.
|
|
4677
|
+
*
|
|
4678
|
+
* @param config - Optional configuration.
|
|
4679
|
+
* @returns Angular `EnvironmentProviders` for the impersonation feature.
|
|
4680
|
+
*/
|
|
4681
|
+
function provideDbxAuthImpersonation(config) {
|
|
4682
|
+
const providers = [DbxAuthImpersonationService];
|
|
4683
|
+
if (config?.delegateType != null) {
|
|
4684
|
+
providers.push(...provideDbxAuthImpersonationDelegate(config.delegateType));
|
|
4685
|
+
}
|
|
4686
|
+
if (config?.ngrx) {
|
|
4687
|
+
providers.push(provideEffects(DbxAppAuthImpersonationEffects));
|
|
4688
|
+
}
|
|
4689
|
+
return makeEnvironmentProviders(providers);
|
|
4690
|
+
}
|
|
4691
|
+
|
|
4341
4692
|
/**
|
|
4342
4693
|
* NgRx effects class that bridges the {@link DbxAuthService} observables into the NgRx store.
|
|
4343
4694
|
*
|
|
@@ -4586,6 +4937,12 @@ class DbxAppAuthStateService {
|
|
|
4586
4937
|
* Observable of the current {@link DbxAppAuthStateUser} from the NgRx store.
|
|
4587
4938
|
*/
|
|
4588
4939
|
authStateUser$ = this.store.select(selectDbxAppAuthUser);
|
|
4940
|
+
/**
|
|
4941
|
+
* Observable of the current {@link DbxAppAuthStateImpersonation} from the NgRx store.
|
|
4942
|
+
*
|
|
4943
|
+
* Stays empty unless an app opts into impersonation via `provideDbxAuthImpersonation({ ngrx: true })`.
|
|
4944
|
+
*/
|
|
4945
|
+
authStateImpersonation$ = this.store.select(selectDbxAppAuthImpersonation);
|
|
4589
4946
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxAppAuthStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4590
4947
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxAppAuthStateService, providedIn: 'root' });
|
|
4591
4948
|
}
|
|
@@ -6357,93 +6714,6 @@ function dbxRouteModelIdParamRedirect(dbxRouterService, defaultParamKey = DEFAUL
|
|
|
6357
6714
|
return result;
|
|
6358
6715
|
}
|
|
6359
6716
|
|
|
6360
|
-
// MARK: Id
|
|
6361
|
-
/**
|
|
6362
|
-
* Abstract delegate that receives model identifier observables from a {@link DbxRouteModelIdDirective}.
|
|
6363
|
-
*
|
|
6364
|
-
* Implement this class and register it as a provider to receive the id parameter read from the current route.
|
|
6365
|
-
* The directive will call {@link useRouteModelIdParamsObservable} during initialization.
|
|
6366
|
-
*
|
|
6367
|
-
* @example
|
|
6368
|
-
* ```ts
|
|
6369
|
-
* @Directive({
|
|
6370
|
-
* selector: '[myModelLoader]',
|
|
6371
|
-
* providers: provideDbxRouteModelIdDirectiveDelegate(MyModelLoaderDirective)
|
|
6372
|
-
* })
|
|
6373
|
-
* class MyModelLoaderDirective extends DbxRouteModelIdDirectiveDelegate {
|
|
6374
|
-
* useRouteModelIdParamsObservable(idFromParams$: Observable<Maybe<ModelKey>>, computedId$: Observable<Maybe<ModelKey>>): Subscription {
|
|
6375
|
-
* return computedId$.subscribe(id => this.loadModel(id));
|
|
6376
|
-
* }
|
|
6377
|
-
* }
|
|
6378
|
-
* ```
|
|
6379
|
-
*
|
|
6380
|
-
* @see {@link DbxRouteModelIdDirective} for the directive that provides the id observables
|
|
6381
|
-
* @see {@link provideDbxRouteModelIdDirectiveDelegate} for registering the delegate provider
|
|
6382
|
-
*/
|
|
6383
|
-
class DbxRouteModelIdDirectiveDelegate {
|
|
6384
|
-
}
|
|
6385
|
-
/**
|
|
6386
|
-
* Creates Angular DI providers that register the given source type as a {@link DbxRouteModelIdDirectiveDelegate}.
|
|
6387
|
-
*
|
|
6388
|
-
* @param sourceType - The class to provide as the delegate.
|
|
6389
|
-
* @returns Array of Angular providers.
|
|
6390
|
-
*
|
|
6391
|
-
* @see {@link DbxRouteModelIdDirectiveDelegate}
|
|
6392
|
-
* @typeParam S - The concrete delegate class type to register.
|
|
6393
|
-
*/
|
|
6394
|
-
function provideDbxRouteModelIdDirectiveDelegate(sourceType) {
|
|
6395
|
-
const providers = [
|
|
6396
|
-
{
|
|
6397
|
-
provide: DbxRouteModelIdDirectiveDelegate,
|
|
6398
|
-
useExisting: forwardRef(() => sourceType)
|
|
6399
|
-
}
|
|
6400
|
-
];
|
|
6401
|
-
return providers;
|
|
6402
|
-
}
|
|
6403
|
-
// MARK: Key
|
|
6404
|
-
/**
|
|
6405
|
-
* Abstract delegate that receives model key observables from a {@link DbxRouteModelKeyDirective}.
|
|
6406
|
-
*
|
|
6407
|
-
* Implement this class and register it as a provider to receive the key parameter read from the current route.
|
|
6408
|
-
* The directive will call {@link useRouteModelKeyParamsObservable} during initialization.
|
|
6409
|
-
*
|
|
6410
|
-
* @example
|
|
6411
|
-
* ```ts
|
|
6412
|
-
* @Directive({
|
|
6413
|
-
* selector: '[myModelKeyLoader]',
|
|
6414
|
-
* providers: provideDbxRouteModelKeyDirectiveDelegate(MyModelKeyLoaderDirective)
|
|
6415
|
-
* })
|
|
6416
|
-
* class MyModelKeyLoaderDirective extends DbxRouteModelKeyDirectiveDelegate {
|
|
6417
|
-
* useRouteModelKeyParamsObservable(keyFromParams$: Observable<Maybe<ModelKey>>, computedKey$: Observable<Maybe<ModelKey>>): Subscription {
|
|
6418
|
-
* return computedKey$.subscribe(key => this.loadModel(key));
|
|
6419
|
-
* }
|
|
6420
|
-
* }
|
|
6421
|
-
* ```
|
|
6422
|
-
*
|
|
6423
|
-
* @see {@link DbxRouteModelKeyDirective} for the directive that provides the key observables
|
|
6424
|
-
* @see {@link provideDbxRouteModelKeyDirectiveDelegate} for registering the delegate provider
|
|
6425
|
-
*/
|
|
6426
|
-
class DbxRouteModelKeyDirectiveDelegate {
|
|
6427
|
-
}
|
|
6428
|
-
/**
|
|
6429
|
-
* Creates Angular DI providers that register the given source type as a {@link DbxRouteModelKeyDirectiveDelegate}.
|
|
6430
|
-
*
|
|
6431
|
-
* @param sourceType - The class to provide as the delegate.
|
|
6432
|
-
* @returns Array of Angular providers.
|
|
6433
|
-
*
|
|
6434
|
-
* @see {@link DbxRouteModelKeyDirectiveDelegate}
|
|
6435
|
-
* @typeParam S - The concrete delegate class type to register.
|
|
6436
|
-
*/
|
|
6437
|
-
function provideDbxRouteModelKeyDirectiveDelegate(sourceType) {
|
|
6438
|
-
const providers = [
|
|
6439
|
-
{
|
|
6440
|
-
provide: DbxRouteModelKeyDirectiveDelegate,
|
|
6441
|
-
useExisting: forwardRef(() => sourceType)
|
|
6442
|
-
}
|
|
6443
|
-
];
|
|
6444
|
-
return providers;
|
|
6445
|
-
}
|
|
6446
|
-
|
|
6447
6717
|
/**
|
|
6448
6718
|
* Directive that retrieves the currently authenticated user's identifier from {@link DbxAuthService}
|
|
6449
6719
|
* and passes it directly to a {@link DbxRouteModelIdDirectiveDelegate}.
|
|
@@ -9400,5 +9670,5 @@ function safeUseCdRef(cdRef, use) {
|
|
|
9400
9670
|
* Generated bundle index. Do not edit.
|
|
9401
9671
|
*/
|
|
9402
9672
|
|
|
9403
|
-
export { ACTION_CONTEXT_STORE_LOCKSET_DESTROY_DELAY_TIME, APP_ACTION_DISABLED_DIRECTIVE_KEY, APP_ACTION_DISABLED_ON_SUCCESS_DIRECTIVE_KEY, APP_ACTION_ENFORCE_MODIFIED_DIRECTIVE_KEY, AbstractDbxActionHandlerDirective, AbstractDbxActionValueGetterDirective, AbstractDbxAnchorDirective, AbstractDbxButtonDirective, AbstractDbxFilterMapInstanceDirective, AbstractDbxFilterMapSourceDirective, AbstractDbxInjectionDirective, AbstractFilterSourceConnectorDirective, AbstractFilterSourceDirective, AbstractForwardDbxInjectionContextDirective, AbstractIfDirective, AbstractTransitionDirective, AbstractTransitionWatcherDirective, ActionContextStore, ActionContextStoreSource, ActionContextStoreSourceMap, AsObservablePipe, CutTextPipe, DBX_ACTION_BUTTON_ECHO_CONFIG, DBX_ACTION_HANDLER_LOCK_KEY, DBX_APP_APP_CONTEXT_STATE, DBX_APP_AUTH_ROUTER_EFFECTS_TOKEN, DBX_ASSET_LOADER_CONFIG_TOKEN, DBX_AUTH_APP_CONTEXT_STATE, DBX_INIT_APP_CONTEXT_STATE, DBX_INJECTION_COMPONENT_DATA, DBX_KNOWN_APP_CONTEXT_STATES, DBX_OAUTH_APP_CONTEXT_STATE, DBX_ONBOARD_APP_CONTEXT_STATE, DBX_PUBLIC_APP_CONTEXT_STATE, DEFAULT_ACTION_DISABLED_KEY, DEFAULT_ACTION_MAP_WORKING_DISABLED_KEY, DEFAULT_DBX_ACTION_BUTTON_ECHO_CONFIG, DEFAULT_DBX_ACTION_BUTTON_ERROR_ECHO, DEFAULT_DBX_ACTION_BUTTON_SUCCESS_ECHO, DEFAULT_DBX_BUTTON_ECHO_DURATION, DEFAULT_DBX_ROUTE_MODEL_ID_PARAM_ID_PARAM_KEY, DEFAULT_DBX_ROUTE_MODEL_ID_PARAM_KEY_PARAM_KEY, DEFAULT_DBX_ROUTE_MODEL_ID_PARAM_USE_PARAM_VALUE, DEFAULT_FILTER_SOURCE_DIRECTIVE_FILTER_TOKEN, DEFAULT_LOCAL_ASSET_BASE_URL, DEFAULT_REDIRECT_FOR_IDENTIFIER_PARAM_KEY, DEFAULT_REDIRECT_FOR_IDENTIFIER_PARAM_VALUE, DEFAULT_REDIRECT_FOR_USER_IDENTIFIER_PARAM_KEY, DEFAULT_REDIRECT_FOR_USER_IDENTIFIER_PARAM_VALUE, DEFAULT_STORAGE_ACCESSOR_FACTORY_TOKEN, DEFAULT_STORAGE_OBJECT_TOKEN, DateDayRangePipe, DateDayTimeRangePipe, DateDistancePipe, DateFormatDistancePipe, DateFormatFromToPipe, DateRangeDistancePipe, DateTimeRangeOnlyDistancePipe, DateTimeRangeOnlyPipe, DateTimeRangePipe, DbxActionAutoModifyDirective, DbxActionAutoTriggerDirective, DbxActionButtonDirective, DbxActionButtonTriggerDirective, DbxActionContextBaseSource, DbxActionContextLoggerDirective, DbxActionContextMachine, DbxActionContextMachineAsService, DbxActionContextMapDirective, DbxActionContextStoreSourceInstance, DbxActionDirective, DbxActionDisabledDirective, DbxActionDisabledOnSuccessDirective, DbxActionEnforceModifiedDirective, DbxActionErrorHandlerDirective, DbxActionFromMapDirective, DbxActionHandlerDirective, DbxActionHandlerInstance, DbxActionHandlerValueDirective, DbxActionHasSuccessDirective, DbxActionIdleDirective, DbxActionIsModifiedDirective, DbxActionIsWorkingDirective, DbxActionMapSourceDirective, DbxActionMapWorkingDisableDirective, DbxActionPreSuccessDirective, DbxActionSourceDirective, DbxActionState, DbxActionSuccessHandlerDirective, DbxActionTriggeredDirective, DbxActionValueDirective, DbxActionValueGetterInstance, DbxActionValueStreamDirective, DbxActionValueTriggerDirective, DbxActionWorkInstanceDelegate, DbxActionWorkable, DbxAnchor, DbxAngularRouterService, DbxAppAuthRouterEffects, DbxAppAuthRouterService, DbxAppAuthRoutes, DbxAppAuthStateService, DbxAppContextService, DbxAppContextStateDirective, DbxAppEnvironment, DbxAppEnvironmentService, DbxAuthHasAnyRoleDirective, DbxAuthHasRolesDirective, DbxAuthNotAnyRoleDirective, DbxAuthService, DbxButton, DbxButtonDirective, DbxButtonSegueDirective, DbxCoreActionModule, DbxCoreAngularRouterSegueModule, DbxCoreAssetLoader, DbxCoreButtonModule, DbxCoreFilterModule, DbxFilterConnectSourceDirective, DbxFilterMapDirective, DbxFilterMapSourceConnectorDirective, DbxFilterMapSourceDirective, DbxFilterSourceConnectorDirective, DbxFilterSourceDirective, DbxInjectionArrayComponent, DbxInjectionComponent, DbxInjectionContext, DbxInjectionContextDirective, DbxInjectionInstance, DbxLoadingButtonDirective, DbxRouteModelIdDirective, DbxRouteModelIdDirectiveDelegate, DbxRouteModelIdFromAuthUserIdDirective, DbxRouteModelKeyDirective, DbxRouteModelKeyDirectiveDelegate, DbxRouteParamDefaultRedirectInstance, DbxRouterService, DbxRouterTransitionEventType, DbxRouterTransitionService, DbxUIRouterService, DollarAmountPipe, FilterSourceDirective, FullLocalStorageObject, GetValueOncePipe, GetValuePipe, InstantStorageAccessor, LimitedStorageAccessor, LockSetComponentStore, MemoryStorageObject, MinutesStringPipe, NO_AUTH_USER_IDENTIFIER, PrettyJsonPipe, SecondaryActionContextStoreSource, SimpleStorageAccessor, SimpleStorageAccessorFactory, StorageAccessor, StringStorageAccessor, StringifySimpleStorageAccessorConverter, SystemDateToTargetDatePipe, TargetDateToSystemDatePipe, TimeDistanceCountdownPipe, TimeDistancePipe, TimezoneAbbreviationPipe, ToJsDatePipe, ToMinutesPipe, WrapperSimpleStorageAccessorDelegate, actionContextHasNoErrorAndIsModifiedAndCanTrigger, actionContextIsModifiedAndCanTrigger, actionContextStoreSourceMap, actionContextStoreSourceMapReader, actionContextStoreSourcePipe, anchorTypeForAnchor, asSegueRef, asSegueRefString, assertValidStorageKeyPrefix, authRolesSetContainsAllRolesFrom, authRolesSetContainsAnyRoleFrom, authRolesSetContainsNoRolesFrom, authUserIdentifier, canReadyValue, canTriggerAction, canTriggerActionState, checkNgContentWrapperHasContent, clean, cleanDestroy, cleanListLoadingContext, cleanLoadingContext, cleanLockSet, cleanSubscription, cleanSubscriptionWithLockSet, cleanWithLockSet, clickableUrlInNewTab, clickableUrlMailTo, clickableUrlTel, completeOnDestroy, createInjectorForInjectionComponentConfig, dbxActionWorkProgress, dbxButtonDisplayType, dbxInjectionComponentConfigIsEqual, dbxRouteModelIdParamRedirect, dbxRouteModelKeyParamRedirect, dbxRouteParamReaderInstance, defaultStorageObjectFactory, enableHasAuthRoleHook, enableHasAuthStateHook, enableIsLoggedInHook, expandClickableAnchorLinkTree, expandClickableAnchorLinkTreeNode, expandClickableAnchorLinkTrees, filterTransitionEvent, filterTransitionSuccess, flattenExpandedClickableAnchorLinkTree, flattenExpandedClickableAnchorLinkTreeToLinks, fromAllActionContextStoreSourceMapSources, index as fromDbxAppAuth, index$2 as fromDbxAppContext, goWithRouter, hasAuthRoleDecisionPipe, hasNonTrivialChildNodes, initInjectionComponent, isActionContextDisabled, isActionContextEnabled, isClickableFilterPreset, isClickablePartialFilterPreset, isDisabledActionContextState, isIdleActionState, isLatestSuccessfulRoute, isSegueRef, isSegueRefActive, isSegueRefActiveFunction, isSegueRefActiveOnTransitionSuccess, isValidStorageKeyPrefix, isWorkingActionState, latestSuccessfulRoutes, loadingStateForActionContextState, loadingStateTypeForActionContextState, loadingStateTypeForActionState, loggedInObsFromIsLoggedIn, loggedOutObsFromIsLoggedIn, makeAuthTransitionHook, makeDbxActionContextSourceReference, mapRefStringObsToSegueRefObs, mergeDbxInjectionComponentConfigs, mergeStaticProviders, newWithInjector, index$1 as onDbxAppAuth, index$3 as onDbxAppContext, onRouterTransitionEventType, onRouterTransitionSuccessEvent, pipeActionStore, provideActionStoreSource, provideDbxActionButtonEchoConfig, provideDbxActionWorkable, provideDbxAnchor, provideDbxAppAuth, provideDbxAppAuthRouter, provideDbxAppAuthRouterState, provideDbxAppAuthState, provideDbxAppContextState, provideDbxAppEnvironment, provideDbxAssetLoader, provideDbxButton, provideDbxInjectionContext, provideDbxRouteModelIdDirectiveDelegate, provideDbxRouteModelKeyDirectiveDelegate, provideDbxStorage, provideDbxUIRouterService, provideFilterSource, provideFilterSourceConnector, provideFilterSourceDirective, provideSecondaryActionStoreSource, redirectBasedOnAuthUserState, redirectForIdentifierParamHook, redirectForUserIdentifierParamHook, refStringToSegueRef, safeDetectChanges, safeMarkForCheck, safeUseCdRef, successTransition, switchMapDbxInjectionComponentConfig, tapDetectChanges, tapSafeMarkForCheck, transformEmptyStringInputToUndefined, useActionStore };
|
|
9673
|
+
export { ACTION_CONTEXT_STORE_LOCKSET_DESTROY_DELAY_TIME, APP_ACTION_DISABLED_DIRECTIVE_KEY, APP_ACTION_DISABLED_ON_SUCCESS_DIRECTIVE_KEY, APP_ACTION_ENFORCE_MODIFIED_DIRECTIVE_KEY, AbstractDbxActionHandlerDirective, AbstractDbxActionValueGetterDirective, AbstractDbxAnchorDirective, AbstractDbxButtonDirective, AbstractDbxFilterMapInstanceDirective, AbstractDbxFilterMapSourceDirective, AbstractDbxInjectionDirective, AbstractFilterSourceConnectorDirective, AbstractFilterSourceDirective, AbstractForwardDbxInjectionContextDirective, AbstractIfDirective, AbstractTransitionDirective, AbstractTransitionWatcherDirective, ActionContextStore, ActionContextStoreSource, ActionContextStoreSourceMap, AsObservablePipe, CutTextPipe, DBX_ACTION_BUTTON_ECHO_CONFIG, DBX_ACTION_HANDLER_LOCK_KEY, DBX_APP_APP_CONTEXT_STATE, DBX_APP_AUTH_ROUTER_EFFECTS_TOKEN, DBX_ASSET_LOADER_CONFIG_TOKEN, DBX_AUTH_APP_CONTEXT_STATE, DBX_INIT_APP_CONTEXT_STATE, DBX_INJECTION_COMPONENT_DATA, DBX_KNOWN_APP_CONTEXT_STATES, DBX_OAUTH_APP_CONTEXT_STATE, DBX_ONBOARD_APP_CONTEXT_STATE, DBX_PUBLIC_APP_CONTEXT_STATE, DEFAULT_ACTION_DISABLED_KEY, DEFAULT_ACTION_MAP_WORKING_DISABLED_KEY, DEFAULT_DBX_ACTION_BUTTON_ECHO_CONFIG, DEFAULT_DBX_ACTION_BUTTON_ERROR_ECHO, DEFAULT_DBX_ACTION_BUTTON_SUCCESS_ECHO, DEFAULT_DBX_BUTTON_ECHO_DURATION, DEFAULT_DBX_ROUTE_MODEL_ID_PARAM_ID_PARAM_KEY, DEFAULT_DBX_ROUTE_MODEL_ID_PARAM_KEY_PARAM_KEY, DEFAULT_DBX_ROUTE_MODEL_ID_PARAM_USE_PARAM_VALUE, DEFAULT_FILTER_SOURCE_DIRECTIVE_FILTER_TOKEN, DEFAULT_LOCAL_ASSET_BASE_URL, DEFAULT_REDIRECT_FOR_IDENTIFIER_PARAM_KEY, DEFAULT_REDIRECT_FOR_IDENTIFIER_PARAM_VALUE, DEFAULT_REDIRECT_FOR_USER_IDENTIFIER_PARAM_KEY, DEFAULT_REDIRECT_FOR_USER_IDENTIFIER_PARAM_VALUE, DEFAULT_STORAGE_ACCESSOR_FACTORY_TOKEN, DEFAULT_STORAGE_OBJECT_TOKEN, DateDayRangePipe, DateDayTimeRangePipe, DateDistancePipe, DateFormatDistancePipe, DateFormatFromToPipe, DateRangeDistancePipe, DateTimeRangeOnlyDistancePipe, DateTimeRangeOnlyPipe, DateTimeRangePipe, DbxActionAutoModifyDirective, DbxActionAutoTriggerDirective, DbxActionButtonDirective, DbxActionButtonTriggerDirective, DbxActionContextBaseSource, DbxActionContextLoggerDirective, DbxActionContextMachine, DbxActionContextMachineAsService, DbxActionContextMapDirective, DbxActionContextStoreSourceInstance, DbxActionDirective, DbxActionDisabledDirective, DbxActionDisabledOnSuccessDirective, DbxActionEnforceModifiedDirective, DbxActionErrorHandlerDirective, DbxActionFromMapDirective, DbxActionHandlerDirective, DbxActionHandlerInstance, DbxActionHandlerValueDirective, DbxActionHasSuccessDirective, DbxActionIdleDirective, DbxActionIsModifiedDirective, DbxActionIsWorkingDirective, DbxActionMapSourceDirective, DbxActionMapWorkingDisableDirective, DbxActionPreSuccessDirective, DbxActionSourceDirective, DbxActionState, DbxActionSuccessHandlerDirective, DbxActionTriggeredDirective, DbxActionValueDirective, DbxActionValueGetterInstance, DbxActionValueStreamDirective, DbxActionValueTriggerDirective, DbxActionWorkInstanceDelegate, DbxActionWorkable, DbxAnchor, DbxAngularRouterService, DbxAppAuthRouterEffects, DbxAppAuthRouterService, DbxAppAuthRoutes, DbxAppAuthStateService, DbxAppContextService, DbxAppContextStateDirective, DbxAppEnvironment, DbxAppEnvironmentService, DbxAuthHasAnyRoleDirective, DbxAuthHasRolesDirective, DbxAuthImpersonationDelegate, DbxAuthImpersonationService, DbxAuthImpersonationTriggerDirective, DbxAuthNotAnyRoleDirective, DbxAuthService, DbxButton, DbxButtonDirective, DbxButtonSegueDirective, DbxCoreActionModule, DbxCoreAngularRouterSegueModule, DbxCoreAssetLoader, DbxCoreButtonModule, DbxCoreFilterModule, DbxFilterConnectSourceDirective, DbxFilterMapDirective, DbxFilterMapSourceConnectorDirective, DbxFilterMapSourceDirective, DbxFilterSourceConnectorDirective, DbxFilterSourceDirective, DbxInjectionArrayComponent, DbxInjectionComponent, DbxInjectionContext, DbxInjectionContextDirective, DbxInjectionInstance, DbxLoadingButtonDirective, DbxRouteModelIdDirective, DbxRouteModelIdDirectiveDelegate, DbxRouteModelIdFromAuthUserIdDirective, DbxRouteModelKeyDirective, DbxRouteModelKeyDirectiveDelegate, DbxRouteParamDefaultRedirectInstance, DbxRouterService, DbxRouterTransitionEventType, DbxRouterTransitionService, DbxUIRouterService, DollarAmountPipe, FilterSourceDirective, FullLocalStorageObject, GetValueOncePipe, GetValuePipe, InstantStorageAccessor, LimitedStorageAccessor, LockSetComponentStore, MemoryStorageObject, MinutesStringPipe, NO_AUTH_USER_IDENTIFIER, PrettyJsonPipe, SecondaryActionContextStoreSource, SimpleStorageAccessor, SimpleStorageAccessorFactory, StorageAccessor, StringStorageAccessor, StringifySimpleStorageAccessorConverter, SystemDateToTargetDatePipe, TargetDateToSystemDatePipe, TimeDistanceCountdownPipe, TimeDistancePipe, TimezoneAbbreviationPipe, ToJsDatePipe, ToMinutesPipe, WrapperSimpleStorageAccessorDelegate, actionContextHasNoErrorAndIsModifiedAndCanTrigger, actionContextIsModifiedAndCanTrigger, actionContextStoreSourceMap, actionContextStoreSourceMapReader, actionContextStoreSourcePipe, anchorTypeForAnchor, asSegueRef, asSegueRefString, assertValidStorageKeyPrefix, authRolesSetContainsAllRolesFrom, authRolesSetContainsAnyRoleFrom, authRolesSetContainsNoRolesFrom, authUserIdentifier, canReadyValue, canTriggerAction, canTriggerActionState, checkNgContentWrapperHasContent, clean, cleanDestroy, cleanListLoadingContext, cleanLoadingContext, cleanLockSet, cleanSubscription, cleanSubscriptionWithLockSet, cleanWithLockSet, clickableUrlInNewTab, clickableUrlMailTo, clickableUrlTel, completeOnDestroy, createInjectorForInjectionComponentConfig, dbxActionWorkProgress, dbxButtonDisplayType, dbxInjectionComponentConfigIsEqual, dbxRouteModelIdParamRedirect, dbxRouteModelKeyParamRedirect, dbxRouteParamReaderInstance, defaultStorageObjectFactory, enableHasAuthRoleHook, enableHasAuthStateHook, enableIsLoggedInHook, expandClickableAnchorLinkTree, expandClickableAnchorLinkTreeNode, expandClickableAnchorLinkTrees, filterTransitionEvent, filterTransitionSuccess, flattenExpandedClickableAnchorLinkTree, flattenExpandedClickableAnchorLinkTreeToLinks, fromAllActionContextStoreSourceMapSources, index as fromDbxAppAuth, index$2 as fromDbxAppContext, goWithRouter, hasAuthRoleDecisionPipe, hasNonTrivialChildNodes, initInjectionComponent, isActionContextDisabled, isActionContextEnabled, isClickableFilterPreset, isClickablePartialFilterPreset, isDisabledActionContextState, isIdleActionState, isLatestSuccessfulRoute, isSegueRef, isSegueRefActive, isSegueRefActiveFunction, isSegueRefActiveOnTransitionSuccess, isValidStorageKeyPrefix, isWorkingActionState, latestSuccessfulRoutes, loadingStateForActionContextState, loadingStateTypeForActionContextState, loadingStateTypeForActionState, loggedInObsFromIsLoggedIn, loggedOutObsFromIsLoggedIn, makeAuthTransitionHook, makeDbxActionContextSourceReference, mapRefStringObsToSegueRefObs, mergeDbxInjectionComponentConfigs, mergeStaticProviders, newWithInjector, index$1 as onDbxAppAuth, index$3 as onDbxAppContext, onRouterTransitionEventType, onRouterTransitionSuccessEvent, pipeActionStore, provideActionStoreSource, provideDbxActionButtonEchoConfig, provideDbxActionWorkable, provideDbxAnchor, provideDbxAppAuth, provideDbxAppAuthRouter, provideDbxAppAuthRouterState, provideDbxAppAuthState, provideDbxAppContextState, provideDbxAppEnvironment, provideDbxAssetLoader, provideDbxAuthImpersonation, provideDbxAuthImpersonationDelegate, provideDbxButton, provideDbxInjectionContext, provideDbxRouteModelIdDirectiveDelegate, provideDbxRouteModelKeyDirectiveDelegate, provideDbxStorage, provideDbxUIRouterService, provideFilterSource, provideFilterSourceConnector, provideFilterSourceDirective, provideSecondaryActionStoreSource, redirectBasedOnAuthUserState, redirectForIdentifierParamHook, redirectForUserIdentifierParamHook, refStringToSegueRef, safeDetectChanges, safeMarkForCheck, safeUseCdRef, successTransition, switchMapDbxInjectionComponentConfig, tapDetectChanges, tapSafeMarkForCheck, transformEmptyStringInputToUndefined, useActionStore };
|
|
9404
9674
|
//# sourceMappingURL=dereekb-dbx-core.mjs.map
|