@dereekb/dbx-core 2.1.0 → 3.0.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.
- package/esm2020/lib/action/action.handler.mjs +3 -125
- package/esm2020/lib/action/action.machine.mjs +8 -7
- package/esm2020/lib/action/action.module.mjs +10 -10
- package/esm2020/lib/action/action.store.mjs +3 -3
- package/esm2020/lib/action/action.store.source.mjs +3 -3
- package/esm2020/lib/action/directive/auto/action.automodify.directive.mjs +4 -4
- package/esm2020/lib/action/directive/auto/action.autotrigger.directive.mjs +7 -6
- package/esm2020/lib/action/directive/context/action.directive.mjs +3 -3
- package/esm2020/lib/action/directive/context/action.source.directive.mjs +3 -3
- package/esm2020/lib/action/directive/debug/action.logger.directive.mjs +3 -3
- package/esm2020/lib/action/directive/map/action.map.directive.mjs +3 -3
- package/esm2020/lib/action/directive/map/action.map.key.directive.mjs +3 -3
- package/esm2020/lib/action/directive/map/action.map.source.directive.mjs +3 -3
- package/esm2020/lib/action/directive/map/action.map.working.disable.directive.mjs +3 -3
- package/esm2020/lib/action/directive/state/action.disabled.directive.mjs +5 -6
- package/esm2020/lib/action/directive/state/action.enforce.modified.directive.mjs +6 -6
- package/esm2020/lib/action/directive/state/action.handler.directive.mjs +10 -9
- package/esm2020/lib/action/directive/state/action.success.directive.mjs +23 -35
- package/esm2020/lib/action/directive/state/action.success.handler.directive.mjs +48 -0
- package/esm2020/lib/action/directive/state/action.value.directive.mjs +8 -8
- package/esm2020/lib/action/directive/state/action.value.stream.directive.mjs +3 -3
- package/esm2020/lib/action/directive/state/action.value.trigger.directive.mjs +6 -6
- package/esm2020/lib/action/directive/state/action.value.trigger.instance.mjs +2 -1
- package/esm2020/lib/action/directive/state/action.working.component.mjs +28 -22
- package/esm2020/lib/action/directive/state/index.mjs +2 -2
- package/esm2020/lib/auth/auth.module.mjs +26 -0
- package/esm2020/lib/auth/auth.role.any.directive.mjs +36 -0
- package/esm2020/lib/auth/auth.role.has.directive.mjs +36 -0
- package/esm2020/lib/auth/auth.state.module.mjs +28 -0
- package/esm2020/lib/auth/auth.state.service.mjs +23 -0
- package/esm2020/lib/auth/auth.user.mjs +11 -0
- package/esm2020/lib/auth/index.mjs +10 -0
- package/esm2020/lib/auth/router/auth.router.mjs +6 -0
- package/esm2020/lib/auth/router/auth.router.module.mjs +26 -0
- package/esm2020/lib/auth/router/auth.router.service.mjs +61 -0
- package/esm2020/lib/auth/router/index.mjs +6 -0
- package/esm2020/lib/auth/router/provider/uirouter/auth.hook.mjs +23 -0
- package/esm2020/lib/auth/router/provider/uirouter/hook.mjs +65 -0
- package/esm2020/lib/auth/router/provider/uirouter/index.mjs +6 -0
- package/esm2020/lib/auth/router/provider/uirouter/redirect.mjs +29 -0
- package/esm2020/lib/auth/router/provider/uirouter/role.hook.mjs +32 -0
- package/esm2020/lib/auth/router/provider/uirouter/state.hook.mjs +53 -0
- package/esm2020/lib/auth/router/state/auth.router.state.module.mjs +32 -0
- package/esm2020/lib/auth/router/state/effect/auth.router.state.effect.mjs +46 -0
- package/esm2020/lib/auth/router/state/effect/index.mjs +2 -0
- package/esm2020/lib/auth/router/state/index.mjs +3 -0
- package/esm2020/lib/auth/service/auth.service.mjs +6 -0
- package/esm2020/lib/auth/service/auth.service.rxjs.mjs +27 -0
- package/esm2020/lib/auth/service/index.mjs +3 -0
- package/esm2020/lib/auth/state/action/auth.action.mjs +14 -0
- package/esm2020/lib/auth/state/action/index.mjs +12 -0
- package/esm2020/lib/auth/state/action/user.action.mjs +18 -0
- package/esm2020/lib/auth/state/effect/auth.effect.mjs +44 -0
- package/esm2020/lib/auth/state/index.mjs +13 -0
- package/esm2020/lib/auth/state/reducer/index.mjs +23 -0
- package/esm2020/lib/auth/state/reducer/user.reducer.mjs +12 -0
- package/esm2020/lib/auth/state/state.mjs +2 -0
- package/esm2020/lib/button/action/action.button.directive.mjs +3 -3
- package/esm2020/lib/button/action/action.button.trigger.directive.mjs +3 -3
- package/esm2020/lib/button/button.directive.mjs +6 -6
- package/esm2020/lib/button/button.loading.directive.mjs +3 -3
- package/esm2020/lib/button/button.mjs +1 -1
- package/esm2020/lib/button/button.module.mjs +4 -4
- package/esm2020/lib/button/router/button.segue.directive.mjs +8 -4
- package/esm2020/lib/context/context.directive.mjs +41 -0
- package/esm2020/lib/context/context.mjs +22 -0
- package/esm2020/lib/context/context.module.mjs +28 -0
- package/esm2020/lib/context/context.service.mjs +29 -0
- package/esm2020/lib/context/index.mjs +6 -0
- package/esm2020/lib/context/state/action/data.action.mjs +10 -0
- package/esm2020/lib/context/state/action/index.mjs +7 -0
- package/esm2020/lib/context/state/effect/index.mjs +38 -0
- package/esm2020/lib/context/state/index.mjs +13 -0
- package/esm2020/lib/context/state/reducer/data.reducer.mjs +16 -0
- package/esm2020/lib/context/state/reducer/index.mjs +25 -0
- package/esm2020/lib/context/state/state.mjs +2 -0
- package/esm2020/lib/filter/action/action.filter.source.directive.mjs +3 -3
- package/esm2020/lib/filter/filter.abstract.connector.directive.mjs +3 -3
- package/esm2020/lib/filter/filter.abstract.source.directive.mjs +4 -4
- package/esm2020/lib/filter/filter.connector.directive.mjs +3 -3
- package/esm2020/lib/filter/filter.map.connector.directive.mjs +3 -3
- package/esm2020/lib/filter/filter.map.directive.mjs +3 -3
- package/esm2020/lib/filter/filter.map.instance.directive.mjs +3 -3
- package/esm2020/lib/filter/filter.map.source.directive.mjs +3 -3
- package/esm2020/lib/filter/filter.module.mjs +4 -4
- package/esm2020/lib/filter/filter.source.directive.mjs +3 -3
- package/esm2020/lib/index.mjs +6 -2
- package/esm2020/lib/injection/index.mjs +9 -0
- package/esm2020/lib/injection/injection.component.mjs +34 -0
- package/esm2020/lib/injection/injection.component.module.mjs +31 -0
- package/esm2020/lib/injection/injection.context.directive.mjs +124 -0
- package/esm2020/lib/injection/injection.context.forward.directive.mjs +30 -0
- package/esm2020/lib/injection/injection.context.mjs +18 -0
- package/esm2020/lib/injection/injection.directive.mjs +33 -0
- package/esm2020/lib/injection/injection.instance.mjs +116 -0
- package/esm2020/lib/injection/injection.mjs +16 -0
- package/esm2020/lib/ngrx/index.mjs +2 -0
- package/esm2020/lib/ngrx/store.lockset.mjs +64 -0
- package/esm2020/lib/pipe/date/date.pipe.module.mjs +4 -4
- package/esm2020/lib/pipe/date/datedistance.pipe.mjs +3 -3
- package/esm2020/lib/pipe/date/dateformatdistance.pipe.mjs +3 -3
- package/esm2020/lib/pipe/date/datefromtoformat.pipe.mjs +3 -3
- package/esm2020/lib/pipe/date/minutesstring.pipe.mjs +3 -3
- package/esm2020/lib/pipe/date/timedistance.pipe.mjs +6 -6
- package/esm2020/lib/pipe/date/tojsdate.pipe.mjs +13 -5
- package/esm2020/lib/pipe/date/tominutes.pipe.mjs +3 -3
- package/esm2020/lib/pipe/index.mjs +3 -1
- package/esm2020/lib/pipe/misc/index.mjs +3 -0
- package/esm2020/lib/pipe/misc/misc.pipe.module.mjs +20 -0
- package/esm2020/lib/pipe/misc/prettyjson.pipe.mjs +27 -0
- package/esm2020/lib/pipe/pipe.module.mjs +21 -0
- package/esm2020/lib/router/anchor/anchor.directive.mjs +18 -5
- package/esm2020/lib/router/anchor/anchor.mjs +1 -1
- package/esm2020/lib/router/router/provider/angular/angular.router.service.mjs +8 -5
- package/esm2020/lib/router/router/provider/angular/angular.router.service.module.mjs +4 -4
- package/esm2020/lib/router/router/provider/uirouter/uirouter.router.service.mjs +32 -10
- package/esm2020/lib/router/router/provider/uirouter/uirouter.router.service.module.mjs +4 -4
- package/esm2020/lib/router/router/service/index.mjs +2 -1
- package/esm2020/lib/router/router/service/router.go.mjs +14 -0
- package/esm2020/lib/router/router/service/router.service.mjs +1 -1
- package/esm2020/lib/router/router/transition/transition.directive.mjs +7 -7
- package/esm2020/lib/router/router/transition/transition.watcher.directive.mjs +6 -6
- package/esm2020/lib/router/segue.mjs +17 -2
- package/esm2020/lib/storage/storage.accessor.simple.factory.mjs +3 -3
- package/esm2020/lib/storage/storage.module.mjs +4 -4
- package/esm2020/lib/subscription/subscription.directive.mjs +6 -6
- package/esm2020/lib/util/view.mjs +18 -2
- package/esm2020/lib/view/if.directive.mjs +30 -0
- package/esm2020/lib/view/index.mjs +2 -0
- package/fesm2015/dereekb-dbx-core.mjs +1672 -575
- package/fesm2015/dereekb-dbx-core.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-core.mjs +1682 -585
- package/fesm2020/dereekb-dbx-core.mjs.map +1 -1
- package/lib/action/action.handler.d.ts +4 -72
- package/lib/action/action.module.d.ts +3 -3
- package/lib/action/directive/auto/action.automodify.directive.d.ts +1 -1
- package/lib/action/directive/auto/action.autotrigger.directive.d.ts +3 -3
- package/lib/action/directive/state/action.disabled.directive.d.ts +1 -1
- package/lib/action/directive/state/action.enforce.modified.directive.d.ts +3 -2
- package/lib/action/directive/state/action.success.directive.d.ts +9 -17
- package/lib/action/directive/state/action.success.handler.directive.d.ts +24 -0
- package/lib/action/directive/state/action.value.directive.d.ts +5 -5
- package/lib/action/directive/state/action.value.trigger.instance.d.ts +2 -2
- package/lib/action/directive/state/action.working.component.d.ts +11 -5
- package/lib/action/directive/state/index.d.ts +1 -1
- package/lib/auth/auth.module.d.ts +8 -0
- package/lib/auth/auth.role.any.directive.d.ts +20 -0
- package/lib/auth/auth.role.has.directive.d.ts +20 -0
- package/lib/auth/auth.state.module.d.ts +8 -0
- package/lib/auth/auth.state.service.d.ts +13 -0
- package/lib/auth/auth.user.d.ts +28 -0
- package/lib/auth/index.d.ts +9 -0
- package/lib/auth/router/auth.router.d.ts +10 -0
- package/lib/auth/router/auth.router.module.d.ts +9 -0
- package/lib/auth/router/auth.router.service.d.ts +38 -0
- package/lib/auth/router/index.d.ts +5 -0
- package/lib/auth/router/provider/uirouter/auth.hook.d.ts +18 -0
- package/lib/auth/router/provider/uirouter/hook.d.ts +46 -0
- package/lib/auth/router/provider/uirouter/index.d.ts +5 -0
- package/lib/auth/router/provider/uirouter/redirect.d.ts +9 -0
- package/lib/auth/router/provider/uirouter/role.hook.d.ts +26 -0
- package/lib/auth/router/provider/uirouter/state.hook.d.ts +31 -0
- package/lib/auth/router/state/auth.router.state.module.d.ts +14 -0
- package/lib/auth/router/state/effect/auth.router.state.effect.d.ts +32 -0
- package/lib/auth/router/state/effect/index.d.ts +1 -0
- package/lib/auth/router/state/index.d.ts +2 -0
- package/lib/auth/service/auth.service.d.ts +46 -0
- package/lib/auth/service/auth.service.rxjs.d.ts +18 -0
- package/lib/auth/service/index.d.ts +2 -0
- package/lib/auth/state/action/auth.action.d.ts +12 -0
- package/lib/auth/state/action/index.d.ts +11 -0
- package/lib/auth/state/action/user.action.d.ts +34 -0
- package/lib/auth/state/effect/auth.effect.d.ts +31 -0
- package/lib/auth/state/index.d.ts +12 -0
- package/lib/auth/state/reducer/index.d.ts +29 -0
- package/lib/auth/state/reducer/user.reducer.d.ts +11 -0
- package/lib/auth/state/state.d.ts +5 -0
- package/lib/button/button.d.ts +3 -3
- package/lib/button/router/button.segue.directive.d.ts +1 -0
- package/lib/context/context.d.ts +39 -0
- package/lib/context/context.directive.d.ts +19 -0
- package/lib/context/context.module.d.ts +8 -0
- package/lib/context/context.service.d.ts +16 -0
- package/lib/context/index.d.ts +5 -0
- package/lib/context/state/action/data.action.d.ts +13 -0
- package/lib/context/state/action/index.d.ts +6 -0
- package/lib/context/state/effect/index.d.ts +39 -0
- package/lib/context/state/index.d.ts +12 -0
- package/lib/context/state/reducer/data.reducer.d.ts +13 -0
- package/lib/context/state/reducer/index.d.ts +34 -0
- package/lib/context/state/state.d.ts +9 -0
- package/lib/filter/filter.abstract.source.directive.d.ts +2 -2
- package/lib/index.d.ts +5 -1
- package/lib/injection/index.d.ts +8 -0
- package/lib/injection/injection.component.d.ts +15 -0
- package/lib/injection/injection.component.module.d.ts +9 -0
- package/lib/injection/injection.context.d.ts +39 -0
- package/lib/injection/injection.context.directive.d.ts +25 -0
- package/lib/injection/injection.context.forward.directive.d.ts +16 -0
- package/lib/{injected/injected.d.ts → injection/injection.d.ts} +4 -4
- package/lib/injection/injection.directive.d.ts +19 -0
- package/lib/{injected/injected.instance.d.ts → injection/injection.instance.d.ts} +8 -8
- package/lib/ngrx/index.d.ts +1 -0
- package/lib/ngrx/store.lockset.d.ts +36 -0
- package/lib/pipe/index.d.ts +2 -0
- package/lib/pipe/misc/index.d.ts +2 -0
- package/lib/pipe/misc/misc.pipe.module.d.ts +7 -0
- package/lib/pipe/misc/prettyjson.pipe.d.ts +9 -0
- package/lib/pipe/pipe.module.d.ts +8 -0
- package/lib/router/anchor/anchor.d.ts +5 -1
- package/lib/router/anchor/anchor.directive.d.ts +10 -2
- package/lib/router/router/provider/angular/angular.router.service.d.ts +7 -5
- package/lib/router/router/provider/uirouter/uirouter.router.service.d.ts +11 -5
- package/lib/router/router/service/index.d.ts +1 -0
- package/lib/router/router/service/router.go.d.ts +14 -0
- package/lib/router/router/service/router.service.d.ts +10 -4
- package/lib/router/router/transition/transition.directive.d.ts +2 -2
- package/lib/router/router/transition/transition.watcher.directive.d.ts +1 -1
- package/lib/router/segue.d.ts +10 -3
- package/lib/util/view.d.ts +12 -0
- package/lib/view/if.directive.d.ts +19 -0
- package/lib/view/index.d.ts +1 -0
- package/package.json +6 -13
- package/esm2020/lib/action/directive/state/action.success.component.mjs +0 -50
- package/esm2020/lib/injected/index.mjs +0 -6
- package/esm2020/lib/injected/injected.component.mjs +0 -34
- package/esm2020/lib/injected/injected.component.module.mjs +0 -26
- package/esm2020/lib/injected/injected.directive.mjs +0 -33
- package/esm2020/lib/injected/injected.instance.mjs +0 -116
- package/esm2020/lib/injected/injected.mjs +0 -16
- package/lib/action/directive/state/action.success.component.d.ts +0 -15
- package/lib/injected/index.d.ts +0 -5
- package/lib/injected/injected.component.d.ts +0 -15
- package/lib/injected/injected.component.module.d.ts +0 -8
- package/lib/injected/injected.directive.d.ts +0 -19
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { Directive, Injector, Input, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import { ProvideDbxInjectionContext } from './injection.context';
|
|
3
|
+
import { DbxInjectionInstance } from './injection.instance';
|
|
4
|
+
import { makePromiseFullRef } from '@dereekb/util';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* DbxInjectedViewContext implementation. Acts similar to *ngIf, but instead switches to a different view without destroying the original child view.
|
|
8
|
+
*/
|
|
9
|
+
export class DbxInjectionContextDirective {
|
|
10
|
+
constructor(_injector, _templateRef, _viewContainer) {
|
|
11
|
+
this._injector = _injector;
|
|
12
|
+
this._templateRef = _templateRef;
|
|
13
|
+
this._viewContainer = _viewContainer;
|
|
14
|
+
this._instance = new DbxInjectionInstance(this._injector);
|
|
15
|
+
this._isDetached = false;
|
|
16
|
+
}
|
|
17
|
+
set config(config) {
|
|
18
|
+
let reattach = false;
|
|
19
|
+
if (config) {
|
|
20
|
+
if (!this._isDetached) {
|
|
21
|
+
// detach the original view before setting config.
|
|
22
|
+
this._viewContainer.detach();
|
|
23
|
+
this._isDetached = true;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
else if (this._isDetached) {
|
|
27
|
+
reattach = true;
|
|
28
|
+
}
|
|
29
|
+
this._instance.config = config;
|
|
30
|
+
if (reattach) {
|
|
31
|
+
this._viewContainer.insert(this._embeddedView);
|
|
32
|
+
this._isDetached = false;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
ngOnInit() {
|
|
36
|
+
this._instance.content = this._viewContainer;
|
|
37
|
+
this._instance.init();
|
|
38
|
+
this._embeddedView = this._viewContainer.createEmbeddedView(this._templateRef);
|
|
39
|
+
// detach the embedded view
|
|
40
|
+
this._viewContainer.detach();
|
|
41
|
+
// reattach it through the template configuration.
|
|
42
|
+
// the template configuration acts as the default.
|
|
43
|
+
this._instance.template = {
|
|
44
|
+
viewRef: this._embeddedView
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
ngOnDestroy() {
|
|
48
|
+
this._instance.destroy();
|
|
49
|
+
this._embeddedView?.destroy(); // destroy our embedded view too.
|
|
50
|
+
}
|
|
51
|
+
async showContext(config) {
|
|
52
|
+
// clear the current context before showing something new.
|
|
53
|
+
this.resetContext();
|
|
54
|
+
let promiseRef;
|
|
55
|
+
let result;
|
|
56
|
+
let error;
|
|
57
|
+
// wait for the promise to resolve and use to finish using that instance.
|
|
58
|
+
try {
|
|
59
|
+
promiseRef = makePromiseFullRef(async (resolve, reject) => {
|
|
60
|
+
const injectionConfig = {
|
|
61
|
+
...config.config,
|
|
62
|
+
init: async (instance) => {
|
|
63
|
+
// init if available in the base config.
|
|
64
|
+
if (config.config.init) {
|
|
65
|
+
config.config.init(instance);
|
|
66
|
+
}
|
|
67
|
+
try {
|
|
68
|
+
resolve(config.use(instance));
|
|
69
|
+
}
|
|
70
|
+
catch (e) {
|
|
71
|
+
reject(e);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
this.config = injectionConfig;
|
|
76
|
+
});
|
|
77
|
+
this._currentPromise = promiseRef;
|
|
78
|
+
// await the promise
|
|
79
|
+
await promiseRef.promise;
|
|
80
|
+
}
|
|
81
|
+
catch (e) {
|
|
82
|
+
error = e;
|
|
83
|
+
}
|
|
84
|
+
// if we're still using the same promiseRef
|
|
85
|
+
if (promiseRef && promiseRef === this._currentPromise) {
|
|
86
|
+
// clear the config to reshow the view
|
|
87
|
+
this.config = undefined;
|
|
88
|
+
// clear the current promise
|
|
89
|
+
this._currentPromise = undefined;
|
|
90
|
+
}
|
|
91
|
+
if (error != null) {
|
|
92
|
+
return Promise.reject(error);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
return result;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
resetContext() {
|
|
99
|
+
let clearedValue = false;
|
|
100
|
+
if (this._currentPromise) {
|
|
101
|
+
const promise = this._currentPromise;
|
|
102
|
+
// clear the current promise too
|
|
103
|
+
this._currentPromise = undefined;
|
|
104
|
+
// clear the config.
|
|
105
|
+
this.config = undefined;
|
|
106
|
+
// send a rejection signal to bail out.
|
|
107
|
+
promise.reject(new Error('dbxInjectionContext bailout'));
|
|
108
|
+
clearedValue = true;
|
|
109
|
+
}
|
|
110
|
+
return clearedValue;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
DbxInjectionContextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxInjectionContextDirective, deps: [{ token: i0.Injector }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
114
|
+
DbxInjectionContextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: DbxInjectionContextDirective, selector: "[dbxInjectionContext]", inputs: { config: "config" }, providers: ProvideDbxInjectionContext(DbxInjectionContextDirective), ngImport: i0 });
|
|
115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxInjectionContextDirective, decorators: [{
|
|
116
|
+
type: Directive,
|
|
117
|
+
args: [{
|
|
118
|
+
selector: '[dbxInjectionContext]',
|
|
119
|
+
providers: ProvideDbxInjectionContext(DbxInjectionContextDirective)
|
|
120
|
+
}]
|
|
121
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { config: [{
|
|
122
|
+
type: Input
|
|
123
|
+
}] } });
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0aW9uLmNvbnRleHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9pbmplY3Rpb24vaW5qZWN0aW9uLmNvbnRleHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW1CLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBa0QsMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqSCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU1RCxPQUFPLEVBQWtCLGtCQUFrQixFQUFTLE1BQU0sZUFBZSxDQUFDOztBQUUxRTs7R0FFRztBQUtILE1BQU0sT0FBTyw0QkFBNEI7SUFPdkMsWUFDbUIsU0FBbUIsRUFDbkIsWUFBNEIsRUFDNUIsY0FBZ0M7UUFGaEMsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUFDNUIsbUJBQWMsR0FBZCxjQUFjLENBQWtCO1FBUDNDLGNBQVMsR0FBRyxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVyRCxnQkFBVyxHQUFHLEtBQUssQ0FBQztJQU14QixDQUFDO0lBRUwsSUFDSSxNQUFNLENBQUMsTUFBK0M7UUFDeEQsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBRXJCLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBRXJCLGtEQUFrRDtnQkFDbEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7YUFDekI7U0FDRjthQUFNLElBQUksSUFBSSxDQUFD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QUV6QixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUVyQyxnQ0FBZ0M7WUFDaEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUM7WUFFakMsb0JBQW9CO1lBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1lBRXhCLHVDQUF1QztZQUN2QyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQztZQUV6RCxZQUFZLEdBQUcsSUFBSSxDQUFDO1NBQ3JCO1FBRUQsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQzs7eUhBcElVLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLDhFQUY1QiwwQkFBMEIsQ0FBQyw0QkFBNEIsQ0FBQzsyRkFFeEQsNEJBQTRCO2tCQUp4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFNBQVMsRUFBRSwwQkFBMEIsOEJBQThCO2lCQUNwRTt3SkFlSyxNQUFNO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVtYmVkZGVkVmlld1JlZiwgSW5qZWN0b3IsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4SW5qZWN0aW9uQ29udGV4dCwgRGJ4SW5qZWN0aW9uQ29udGV4dENvbmZpZywgUHJvdmlkZURieEluamVjdGlvbkNvbnRleHQgfSBmcm9tICcuL2luamVjdGlvbi5jb250ZXh0JztcbmltcG9ydCB7IERieEluamVjdGlvbkluc3RhbmNlIH0gZnJvbSAnLi9pbmplY3Rpb24uaW5zdGFuY2UnO1xuaW1wb3J0IHsgRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnIH0gZnJvbSAnLi9pbmplY3Rpb24nO1xuaW1wb3J0IHsgUHJvbWlzZUZ1bGxSZWYsIG1ha2VQcm9taXNlRnVsbFJlZiwgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcblxuLyoqXG4gKiBEYnhJbmplY3RlZFZpZXdDb250ZXh0IGltcGxlbWVudGF0aW9uLiBBY3RzIHNpbWlsYXIgdG8gKm5nSWYsIGJ1dCBpbnN0ZWFkIHN3aXRjaGVzIHRvIGEgZGlmZmVyZW50IHZpZXcgd2l0aG91dCBkZXN0cm95aW5nIHRoZSBvcmlnaW5hbCBjaGlsZCB2aWV3LlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4SW5qZWN0aW9uQ29udGV4dF0nLFxuICBwcm92aWRlcnM6IFByb3ZpZGVEYnhJbmplY3Rpb25Db250ZXh0KERieEluamVjdGlvbkNvbnRleHREaXJlY3RpdmUpXG59KVxuZXhwb3J0IGNsYXNzIERieEluamVjdGlvbkNvbnRleHREaXJlY3RpdmU8TyA9IGFueT4gaW1wbGVtZW50cyBEYnhJbmplY3Rpb25Db250ZXh0IHtcblxuICBwcml2YXRlIF9jdXJyZW50UHJvbWlzZTogTWF5YmU8UHJvbWlzZUZ1bGxSZWY8YW55Pj47XG4gIHByaXZhdGUgX2luc3RhbmNlID0gbmV3IERieEluamVjdGlvbkluc3RhbmNlKHRoaXMuX2luamVjdG9yKTtcbiAgcHJpdmF0ZSBfZW1iZWRkZWRWaWV3ITogRW1iZWRkZWRWaWV3UmVmPE8+O1xuICBwcml2YXRlIF9pc0RldGFjaGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxPPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IF92aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICkgeyB9XG5cbiAgQElucHV0KClcbiAgc2V0IGNvbmZpZyhjb25maWc6IE1heWJlPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZzxhbnk+Pikge1xuICAgIGxldCByZWF0dGFjaCA9IGZhbHNlO1xuXG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgaWYgKCF0aGlzLl9pc0RldGFjaGVkKSB7XG5cbiAgICAgICAgLy8gZGV0YWNoIHRoZSBvcmlnaW5hbCB2aWV3IGJlZm9yZSBzZXR0aW5nIGNvbmZpZy5cbiAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5kZXRhY2goKTtcbiAgICAgICAgdGhpcy5faXNEZXRhY2hlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLl9pc0RldGFjaGVkKSB7XG4gICAgICByZWF0dGFjaCA9IHRydWU7XG4gICAgfVxuXG4gICAgdGhpcy5faW5zdGFuY2UuY29uZmlnID0gY29uZmlnO1xuXG4gICAgaWYgKHJlYXR0YWNoKSB7XG4gICAgICB0aGlzLl92aWV3Q29udGFpbmVyLmluc2VydCh0aGlzLl9lbWJlZGRlZFZpZXcpO1xuICAgICAgdGhpcy5faXNEZXRhY2hlZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX2luc3RhbmNlLmNvbnRlbnQgPSB0aGlzLl92aWV3Q29udGFpbmVyO1xuICAgIHRoaXMuX2luc3RhbmNlLmluaXQoKTtcbiAgICB0aGlzLl9lbWJlZGRlZFZpZXcgPSB0aGlzLl92aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl90ZW1wbGF0ZVJlZik7XG5cbiAgICAvLyBkZXRhY2ggdGhlIGVtYmVkZGVkIHZpZXdcbiAgICB0aGlzLl92aWV3Q29udGFpbmVyLmRldGFjaCgpO1xuXG4gICAgLy8gcmVhdHRhY2ggaXQgdGhyb3VnaCB0aGUgdGVtcGxhdGUgY29uZmlndXJhdGlvbi5cbiAgICAvLyB0aGUgdGVtcGxhdGUgY29uZmlndXJhdGlvbiBhY3RzIGFzIHRoZSBkZWZhdWx0LlxuICAgIHRoaXMuX2luc3RhbmNlLnRlbXBsYXRlID0ge1xuICAgICAgdmlld1JlZjogdGhpcy5fZW1iZWRkZWRWaWV3XG4gICAgfTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2luc3RhbmNlLmRlc3Ryb3koKTtcbiAgICB0aGlzLl9lbWJlZGRlZFZpZXc/LmRlc3Ryb3koKTsgLy8gZGVzdHJveSBvdXIgZW1iZWRkZWQgdmlldyB0b28uXG4gIH1cblxuICBhc3luYyBzaG93Q29udGV4dDxULCBPPihjb25maWc6IERieEluamVjdGlvbkNvbnRleHRDb25maWc8VD4pOiBQcm9taXNlPE8+IHtcblxuICAgIC8vIGNsZWFyIHRoZSBjdXJyZW50IGNvbnRleHQgYmVmb3JlIHNob3dpbmcgc29tZXRoaW5nIG5ldy5cbiAgICB0aGlzLnJlc2V0Q29udGV4dCgpO1xuXG4gICAgbGV0IHByb21pc2VSZWY6IFByb21pc2VGdWxsUmVmPE8+O1xuXG4gICAgbGV0IHJlc3VsdDogTztcbiAgICBsZXQgZXJyb3I6IGFueTtcblxuICAgIC8vIHdhaXQgZm9yIHRoZSBwcm9taXNlIHRvIHJlc29sdmUgYW5kIHVzZSB0byBmaW5pc2ggdXNpbmcgdGhhdCBpbnN0YW5jZS5cbiAgICB0cnkge1xuICAgICAgcHJvbWlzZVJlZiA9IG1ha2VQcm9taXNlRnVsbFJlZihhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluamVjdGlvbkNvbmZpZzogRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnPFQ+ID0ge1xuICAgICAgICAgIC4uLmNvbmZpZy5jb25maWcsXG4gICAgICAgICAgaW5pdDogYXN5bmMgKGluc3RhbmNlOiBUKSA9PiB7XG5cbiAgICAgICAgICAgIC8vIGluaXQgaWYgYXZhaWxhYmxlIGluIHRoZSBiYXNlIGNvbmZpZy5cbiAgICAgICAgICAgIGlmIChjb25maWcuY29uZmlnLmluaXQpIHtcbiAgICAgICAgICAgICAgY29uZmlnLmNvbmZpZy5pbml0KGluc3RhbmNlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgcmVzb2x2ZShjb25maWcudXNlKGluc3RhbmNlKSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5jb25maWcgPSBpbmplY3Rpb25Db25maWcgYXMgYW55O1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuX2N1cnJlbnRQcm9taXNlID0gcHJvbWlzZVJlZjtcblxuICAgICAgLy8gYXdhaXQgdGhlIHByb21pc2VcbiAgICAgIGF3YWl0IHByb21pc2VSZWYucHJvbWlzZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBlcnJvciA9IGU7XG4gICAgfVxuXG4gICAgLy8gaWYgd2UncmUgc3RpbGwgdXNpbmcgdGhlIHNhbWUgcHJvbWlzZVJlZlxuICAgIGlmIChwcm9taXNlUmVmISAmJiBwcm9taXNlUmVmISA9PT0gdGhpcy5fY3VycmVudFByb21pc2UpIHtcbiAgICAgIC8vIGNsZWFyIHRoZSBjb25maWcgdG8gcmVzaG93IHRoZSB2aWV3XG4gICAgICB0aGlzLmNvbmZpZyA9IHVuZGVmaW5lZDtcblxuICAgICAgLy8gY2xlYXIgdGhlIGN1cnJlbnQgcHJvbWlzZVxuICAgICAgdGhpcy5fY3VycmVudFByb21pc2UgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKGVycm9yICE9IG51bGwpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiByZXN1bHQhO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0Q29udGV4dCgpOiBib29sZWFuIHtcbiAgICBsZXQgY2xlYXJlZFZhbHVlID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5fY3VycmVudFByb21pc2UpIHtcbiAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLl9jdXJyZW50UHJvbWlzZTtcblxuICAgICAgLy8gY2xlYXIgdGhlIGN1cnJlbnQgcHJvbWlzZSB0b29cbiAgICAgIHRoaXMuX2N1cnJlbnRQcm9taXNlID0gdW5kZWZpbmVkO1xuXG4gICAgICAvLyBjbGVhciB0aGUgY29uZmlnLlxuICAgICAgdGhpcy5jb25maWcgPSB1bmRlZmluZWQ7XG5cbiAgICAgIC8vIHNlbmQgYSByZWplY3Rpb24gc2lnbmFsIHRvIGJhaWwgb3V0LlxuICAgICAgcHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCdkYnhJbmplY3Rpb25Db250ZXh0IGJhaWxvdXQnKSk7XG5cbiAgICAgIGNsZWFyZWRWYWx1ZSA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsZWFyZWRWYWx1ZTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Directive, Host } from "@angular/core";
|
|
2
|
+
import { DbxInjectionContext } from "./injection.context";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./injection.context";
|
|
5
|
+
/**
|
|
6
|
+
* Abstract DbxInjectionContext implementation that forwards commands to a host DbxInjectionContext.
|
|
7
|
+
*
|
|
8
|
+
* This abstract type is used by related types for dependency injection purposes, so that those types
|
|
9
|
+
* can be injected instead of just any DbxInjectionContext.
|
|
10
|
+
*/
|
|
11
|
+
export class AbstractForwardDbxInjectionContextDirective {
|
|
12
|
+
constructor(dbxInjectionContext) {
|
|
13
|
+
this.dbxInjectionContext = dbxInjectionContext;
|
|
14
|
+
}
|
|
15
|
+
// MARK: DbxInjectionContext
|
|
16
|
+
showContext(config) {
|
|
17
|
+
return this.dbxInjectionContext.showContext(config);
|
|
18
|
+
}
|
|
19
|
+
resetContext() {
|
|
20
|
+
return this.dbxInjectionContext.resetContext();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
AbstractForwardDbxInjectionContextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractForwardDbxInjectionContextDirective, deps: [{ token: i1.DbxInjectionContext, host: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
24
|
+
AbstractForwardDbxInjectionContextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: AbstractForwardDbxInjectionContextDirective, ngImport: i0 });
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractForwardDbxInjectionContextDirective, decorators: [{
|
|
26
|
+
type: Directive
|
|
27
|
+
}], ctorParameters: function () { return [{ type: i1.DbxInjectionContext, decorators: [{
|
|
28
|
+
type: Host
|
|
29
|
+
}] }]; } });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0aW9uLmNvbnRleHQuZm9yd2FyZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2luamVjdGlvbi9pbmplY3Rpb24uY29udGV4dC5mb3J3YXJkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQTZCLE1BQU0scUJBQXFCLENBQUM7OztBQUVyRjs7Ozs7R0FLRztBQUVILE1BQU0sT0FBZ0IsMkNBQTJDO0lBRS9ELFlBQTZCLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO0lBQUksQ0FBQztJQUUxRSw0QkFBNEI7SUFDNUIsV0FBVyxDQUFtQixNQUF5QztRQUNyRSxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNqRCxDQUFDOzt3SUFYbUIsMkNBQTJDOzRIQUEzQywyQ0FBMkM7MkZBQTNDLDJDQUEyQztrQkFEaEUsU0FBUzs7MEJBR0ssSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBEYnhJbmplY3Rpb25Db250ZXh0LCBEYnhJbmplY3Rpb25Db250ZXh0Q29uZmlnIH0gZnJvbSBcIi4vaW5qZWN0aW9uLmNvbnRleHRcIjtcblxuLyoqXG4gKiBBYnN0cmFjdCBEYnhJbmplY3Rpb25Db250ZXh0IGltcGxlbWVudGF0aW9uIHRoYXQgZm9yd2FyZHMgY29tbWFuZHMgdG8gYSBob3N0IERieEluamVjdGlvbkNvbnRleHQuXG4gKiBcbiAqIFRoaXMgYWJzdHJhY3QgdHlwZSBpcyB1c2VkIGJ5IHJlbGF0ZWQgdHlwZXMgZm9yIGRlcGVuZGVuY3kgaW5qZWN0aW9uIHB1cnBvc2VzLCBzbyB0aGF0IHRob3NlIHR5cGVzXG4gKiBjYW4gYmUgaW5qZWN0ZWQgaW5zdGVhZCBvZiBqdXN0IGFueSBEYnhJbmplY3Rpb25Db250ZXh0LlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEZvcndhcmREYnhJbmplY3Rpb25Db250ZXh0RGlyZWN0aXZlIGltcGxlbWVudHMgRGJ4SW5qZWN0aW9uQ29udGV4dCB7XG5cbiAgY29uc3RydWN0b3IoQEhvc3QoKSByZWFkb25seSBkYnhJbmplY3Rpb25Db250ZXh0OiBEYnhJbmplY3Rpb25Db250ZXh0KSB7IH1cblxuICAvLyBNQVJLOiBEYnhJbmplY3Rpb25Db250ZXh0XG4gIHNob3dDb250ZXh0PFQgPSBhbnksIE8gPSBhbnk+KGNvbmZpZzogRGJ4SW5qZWN0aW9uQ29udGV4dENvbmZpZzxULCBhbnk+KTogUHJvbWlzZTxPPiB7XG4gICAgcmV0dXJuIHRoaXMuZGJ4SW5qZWN0aW9uQ29udGV4dC5zaG93Q29udGV4dChjb25maWcpO1xuICB9XG5cbiAgcmVzZXRDb250ZXh0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRieEluamVjdGlvbkNvbnRleHQucmVzZXRDb250ZXh0KCk7XG4gIH1cblxufVxuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* View that can switch to show another arbitrary view, then switch back when the promise ends.
|
|
3
|
+
*
|
|
4
|
+
* It is similar to *ngIf/*ngSwitch, but the original child content is retained instead of discarded,
|
|
5
|
+
* and returns once the special context is done being used.
|
|
6
|
+
*/
|
|
7
|
+
export class DbxInjectionContext {
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Allows a directive to provide a formly context and form.
|
|
11
|
+
*/
|
|
12
|
+
export function ProvideDbxInjectionContext(type) {
|
|
13
|
+
return [{
|
|
14
|
+
provide: DbxInjectionContext,
|
|
15
|
+
useExisting: type
|
|
16
|
+
}];
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0aW9uLmNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2luamVjdGlvbi9pbmplY3Rpb24uY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQkE7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQWdCLG1CQUFtQjtDQWdCeEM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSwwQkFBMEIsQ0FBZ0MsSUFBYTtJQUNyRixPQUFPLENBQUM7WUFDTixPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciwgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWcgfSBmcm9tIFwiLi9pbmplY3Rpb25cIjtcblxuLyoqXG4gKiBEYnhJbmplY3RlZFZpZXdDb250ZXh0IHNob3dDb250ZXh0KCkgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYnhJbmplY3Rpb25Db250ZXh0Q29uZmlnPFQgPSBhbnksIE8gPSBhbnk+IHtcbiAgLyoqXG4gICAqIEluamVjdGVkIGNvbmZpZy5cbiAgICovXG4gIGNvbmZpZzogRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnPFQ+O1xuICAvKipcbiAgICogUHJvbWlzZSB1c2VkIHRvIHJldHJpZXZlIGRhdGEgZnJvbSB0aGUgZ2l2ZW4gaW5zdGFuY2UuXG4gICAqL1xuICB1c2U6IChpbnN0YW5jZTogVCkgPT4gUHJvbWlzZTxPPjtcbn1cblxuLyoqXG4gKiBWaWV3IHRoYXQgY2FuIHN3aXRjaCB0byBzaG93IGFub3RoZXIgYXJiaXRyYXJ5IHZpZXcsIHRoZW4gc3dpdGNoIGJhY2sgd2hlbiB0aGUgcHJvbWlzZSBlbmRzLlxuICogXG4gKiBJdCBpcyBzaW1pbGFyIHRvICpuZ0lmLypuZ1N3aXRjaCwgYnV0IHRoZSBvcmlnaW5hbCBjaGlsZCBjb250ZW50IGlzIHJldGFpbmVkIGluc3RlYWQgb2YgZGlzY2FyZGVkLCBcbiAqIGFuZCByZXR1cm5zIG9uY2UgdGhlIHNwZWNpYWwgY29udGV4dCBpcyBkb25lIGJlaW5nIHVzZWQuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYnhJbmplY3Rpb25Db250ZXh0IHtcblxuICAvKipcbiAgICogU2hvd3MgdGhlIGdpdmVuIGNvbnRleHQgdW50aWwgdGhlIHByb21pc2UgZW5kcywgdGhlbiBkaXNwbGF5cyB0aGUgb3JpZ2luYWwgY29udGVudC5cbiAgICogXG4gICAqIFRoZSBvcmlnaW5hbCBjb250ZW50IGlzIGhpZGRlbiBpbnN0ZWFkIG9mIHJlbW92ZWQgZnJvbSB0aGUgY29udGV4dCB0byBhdm9pZCBkZXN0cnVjdGlvbiBvZiBjaGlsZHJlbiBlbGVtZW50cy5cbiAgICovXG4gIGFic3RyYWN0IHNob3dDb250ZXh0PFQgPSBhbnksIE8gPSBhbnk+KGNvbmZpZzogRGJ4SW5qZWN0aW9uQ29udGV4dENvbmZpZzxUPik6IFByb21pc2U8Tz47XG5cbiAgLyoqXG4gICAqIEJhaWxzIG91dCBvZiBhbnkgY3VycmVudCBwcm9taXNlLCBpZiBvbmUgaXMgc2V0LlxuICAgKiBcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBiYWlsIHNpZ25hbCBoYXMgYmVlbiBzZW50LlxuICAgKi9cbiAgYWJzdHJhY3QgcmVzZXRDb250ZXh0KCk6IGJvb2xlYW47XG5cbn1cblxuLyoqXG4gKiBBbGxvd3MgYSBkaXJlY3RpdmUgdG8gcHJvdmlkZSBhIGZvcm1seSBjb250ZXh0IGFuZCBmb3JtLlxuICovXG5leHBvcnQgZnVuY3Rpb24gUHJvdmlkZURieEluamVjdGlvbkNvbnRleHQ8VCBleHRlbmRzIERieEluamVjdGlvbkNvbnRleHQ+KHR5cGU6IFR5cGU8VD4pOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIFt7XG4gICAgcHJvdmlkZTogRGJ4SW5qZWN0aW9uQ29udGV4dCxcbiAgICB1c2VFeGlzdGluZzogdHlwZVxuICB9XTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Directive, Injector } from '@angular/core';
|
|
2
|
+
import { DbxInjectionInstance as DbxInjectionInstance } from './injection.instance';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Abstract directive that injects content based on the configuration into the view.
|
|
6
|
+
*/
|
|
7
|
+
export class AbstractDbxInjectionDirective {
|
|
8
|
+
constructor(_injector) {
|
|
9
|
+
this._injector = _injector;
|
|
10
|
+
this._instance = new DbxInjectionInstance(this._injector);
|
|
11
|
+
}
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
this._instance.init();
|
|
14
|
+
}
|
|
15
|
+
ngOnDestroy() {
|
|
16
|
+
this._instance.destroy();
|
|
17
|
+
}
|
|
18
|
+
setConfig(config) {
|
|
19
|
+
this._instance.config = config;
|
|
20
|
+
}
|
|
21
|
+
setTemplate(template) {
|
|
22
|
+
this._instance.template = template;
|
|
23
|
+
}
|
|
24
|
+
setContent(content) {
|
|
25
|
+
this._instance.content = content;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
AbstractDbxInjectionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractDbxInjectionDirective, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
|
|
29
|
+
AbstractDbxInjectionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: AbstractDbxInjectionDirective, ngImport: i0 });
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractDbxInjectionDirective, decorators: [{
|
|
31
|
+
type: Directive
|
|
32
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvaW5qZWN0aW9uL2luamVjdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QyxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3pGLE9BQU8sRUFBRSxvQkFBb0IsSUFBSSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUVwRjs7R0FFRztBQUVILE1BQU0sT0FBZ0IsNkJBQTZCO0lBSWpELFlBQTZCLFNBQW1CO1FBQW5CLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFGeEMsY0FBUyxHQUFHLElBQUksb0JBQW9CLENBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRVosQ0FBQztJQUVyRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUEwQztRQUNsRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUEyQztRQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDckMsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFnQztRQUN6QyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDbkMsQ0FBQzs7MEhBeEJtQiw2QkFBNkI7OEdBQTdCLDZCQUE2QjsyRkFBN0IsNkJBQTZCO2tCQURsRCxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmlld0NvbnRhaW5lclJlZiwgT25Jbml0LCBPbkRlc3Ryb3ksIERpcmVjdGl2ZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWcsIERieEluamVjdGlvblRlbXBsYXRlQ29uZmlnIH0gZnJvbSAnLi9pbmplY3Rpb24nO1xuaW1wb3J0IHsgRGJ4SW5qZWN0aW9uSW5zdGFuY2UgYXMgRGJ4SW5qZWN0aW9uSW5zdGFuY2UgfSBmcm9tICcuL2luamVjdGlvbi5pbnN0YW5jZSc7XG5cbi8qKlxuICogQWJzdHJhY3QgZGlyZWN0aXZlIHRoYXQgaW5qZWN0cyBjb250ZW50IGJhc2VkIG9uIHRoZSBjb25maWd1cmF0aW9uIGludG8gdGhlIHZpZXcuXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RGJ4SW5qZWN0aW9uRGlyZWN0aXZlPFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX2luc3RhbmNlID0gbmV3IERieEluamVjdGlvbkluc3RhbmNlPFQ+KHRoaXMuX2luamVjdG9yKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvcjogSW5qZWN0b3IpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2luc3RhbmNlLmluaXQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2luc3RhbmNlLmRlc3Ryb3koKTtcbiAgfVxuXG4gIHNldENvbmZpZyhjb25maWc6IE1heWJlPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZz4pIHtcbiAgICB0aGlzLl9pbnN0YW5jZS5jb25maWcgPSBjb25maWc7XG4gIH1cblxuICBzZXRUZW1wbGF0ZSh0ZW1wbGF0ZTogTWF5YmU8RGJ4SW5qZWN0aW9uVGVtcGxhdGVDb25maWc+KSB7XG4gICAgdGhpcy5faW5zdGFuY2UudGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgfVxuXG4gIHNldENvbnRlbnQoY29udGVudDogTWF5YmU8Vmlld0NvbnRhaW5lclJlZj4pIHtcbiAgICB0aGlzLl9pbnN0YW5jZS5jb250ZW50ID0gY29udGVudDtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { Injector } from '@angular/core';
|
|
2
|
+
import { distinctUntilChanged, map, shareReplay } from 'rxjs/operators';
|
|
3
|
+
import { BehaviorSubject, combineLatest } from 'rxjs';
|
|
4
|
+
import { DBX_INJECTION_COMPONENT_DATA } from './injection';
|
|
5
|
+
import { mergeArrayOrValueIntoArray } from '@dereekb/util';
|
|
6
|
+
import { SubscriptionObject, filterMaybe, skipFirstMaybe } from '@dereekb/rxjs';
|
|
7
|
+
/**
|
|
8
|
+
* Instance used by components to inject content based on the configuration into the view.
|
|
9
|
+
*/
|
|
10
|
+
export class DbxInjectionInstance {
|
|
11
|
+
constructor(_injector) {
|
|
12
|
+
this._injector = _injector;
|
|
13
|
+
this._subscriptionObject = new SubscriptionObject();
|
|
14
|
+
this._config = new BehaviorSubject(undefined);
|
|
15
|
+
this._template = new BehaviorSubject(undefined);
|
|
16
|
+
this._content = new BehaviorSubject(undefined);
|
|
17
|
+
this._componentRef = new BehaviorSubject(undefined);
|
|
18
|
+
this.config$ = this._config.pipe(distinctUntilChanged());
|
|
19
|
+
this.template$ = this._template.pipe(distinctUntilChanged());
|
|
20
|
+
this.content$ = this._content.pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));
|
|
21
|
+
}
|
|
22
|
+
get config() {
|
|
23
|
+
return this._config.value;
|
|
24
|
+
}
|
|
25
|
+
set config(config) {
|
|
26
|
+
this._config.next(config);
|
|
27
|
+
}
|
|
28
|
+
get template() {
|
|
29
|
+
return this._template.value;
|
|
30
|
+
}
|
|
31
|
+
set template(template) {
|
|
32
|
+
this._template.next(template);
|
|
33
|
+
}
|
|
34
|
+
get content() {
|
|
35
|
+
return this._content.value;
|
|
36
|
+
}
|
|
37
|
+
set content(content) {
|
|
38
|
+
this._content.next(content);
|
|
39
|
+
}
|
|
40
|
+
get componentRef() {
|
|
41
|
+
return this._componentRef.value;
|
|
42
|
+
}
|
|
43
|
+
set componentRef(componentRef) {
|
|
44
|
+
this._componentRef.next(componentRef);
|
|
45
|
+
}
|
|
46
|
+
init() {
|
|
47
|
+
// Wait until the first of either of the two inputs comes in as not defined, and then emit.
|
|
48
|
+
// We filter the first maybe here between the two items.
|
|
49
|
+
const configTemplateObs = combineLatest([this.config$, this.template$]).pipe(map(([config, template]) => {
|
|
50
|
+
if (config || template) {
|
|
51
|
+
return {
|
|
52
|
+
config,
|
|
53
|
+
template
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
}), skipFirstMaybe());
|
|
60
|
+
this._subscriptionObject.subscription = combineLatest([configTemplateObs, this.content$]).subscribe(([inputConfig, content]) => {
|
|
61
|
+
const { config, template } = inputConfig ?? {};
|
|
62
|
+
this._reset(content);
|
|
63
|
+
if (config) {
|
|
64
|
+
this._initComponent(config, content);
|
|
65
|
+
}
|
|
66
|
+
else if (template) {
|
|
67
|
+
this._initTemplate(template, content);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
destroy() {
|
|
72
|
+
this._config.complete();
|
|
73
|
+
this._template.complete();
|
|
74
|
+
this._content.complete();
|
|
75
|
+
this._componentRef.complete();
|
|
76
|
+
}
|
|
77
|
+
_initComponent(config, content) {
|
|
78
|
+
content.clear();
|
|
79
|
+
const { init, injector: inputInjector, providers, ngModuleRef, componentClass, data } = config;
|
|
80
|
+
let injector;
|
|
81
|
+
const parentInjector = inputInjector ?? this._injector;
|
|
82
|
+
if (Boolean(providers || data)) {
|
|
83
|
+
injector = Injector.create({
|
|
84
|
+
parent: parentInjector,
|
|
85
|
+
providers: mergeArrayOrValueIntoArray([{
|
|
86
|
+
provide: DBX_INJECTION_COMPONENT_DATA,
|
|
87
|
+
useValue: data
|
|
88
|
+
}], providers ?? [])
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
const componentRef = content.createComponent(componentClass, { injector, ngModuleRef });
|
|
92
|
+
const instance = componentRef.instance;
|
|
93
|
+
if (init) {
|
|
94
|
+
init(instance);
|
|
95
|
+
}
|
|
96
|
+
this.componentRef = componentRef;
|
|
97
|
+
}
|
|
98
|
+
_initTemplate(config, content) {
|
|
99
|
+
content.clear();
|
|
100
|
+
const { templateRef, viewRef } = config;
|
|
101
|
+
if (templateRef) {
|
|
102
|
+
content.createEmbeddedView(templateRef);
|
|
103
|
+
// TODO: Figure out if these items need to be destroyed or not when this item is destroyed. If so, we need a reference to destroy.
|
|
104
|
+
}
|
|
105
|
+
else if (viewRef) {
|
|
106
|
+
content.insert(viewRef);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
_reset(content) {
|
|
110
|
+
if (this.componentRef) {
|
|
111
|
+
content.clear();
|
|
112
|
+
this.componentRef = undefined;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0aW9uLmluc3RhbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9pbmplY3Rpb24vaW5qZWN0aW9uLmluc3RhbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsUUFBUSxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBMkQsNEJBQTRCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEgsT0FBTyxFQUFtQywwQkFBMEIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRjs7R0FFRztBQUNILE1BQU0sT0FBTyxvQkFBb0I7SUE4Qy9CLFlBQTZCLFNBQW1CO1FBQW5CLGNBQVMsR0FBVCxTQUFTLENBQVU7UUE1Q3hDLHdCQUFtQixHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUUvQyxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQXdDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hGLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBdUMsU0FBUyxDQUFDLENBQUM7UUFFakYsYUFBUSxHQUFHLElBQUksZUFBZSxDQUEwQixTQUFTLENBQUMsQ0FBQztRQUNuRSxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUF5QixTQUFTLENBQUMsQ0FBQztRQUV0RSxZQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELGNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUks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QztJQUVPLE1BQU0sQ0FBQyxPQUF5QjtRQUN0QyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBJbmplY3RvciwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZywgRGJ4SW5qZWN0aW9uVGVtcGxhdGVDb25maWcsIERCWF9JTkpFQ1RJT05fQ09NUE9ORU5UX0RBVEEgfSBmcm9tICcuL2luamVjdGlvbic7XG5pbXBvcnQgeyBJbml0aWFsaXplZCwgRGVzdHJveWFibGUsIE1heWJlLCBtZXJnZUFycmF5T3JWYWx1ZUludG9BcnJheSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uT2JqZWN0LCBmaWx0ZXJNYXliZSwgc2tpcEZpcnN0TWF5YmUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcblxuLyoqXG4gKiBJbnN0YW5jZSB1c2VkIGJ5IGNvbXBvbmVudHMgdG8gaW5qZWN0IGNvbnRlbnQgYmFzZWQgb24gdGhlIGNvbmZpZ3VyYXRpb24gaW50byB0aGUgdmlldy5cbiAqL1xuZXhwb3J0IGNsYXNzIERieEluamVjdGlvbkluc3RhbmNlPFQ+IGltcGxlbWVudHMgSW5pdGlhbGl6ZWQsIERlc3Ryb3lhYmxlIHtcblxuICBwcml2YXRlIF9zdWJzY3JpcHRpb25PYmplY3QgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG5cbiAgcHJpdmF0ZSBfY29uZmlnID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc8VD4+Pih1bmRlZmluZWQpO1xuICBwcml2YXRlIF90ZW1wbGF0ZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8RGJ4SW5qZWN0aW9uVGVtcGxhdGVDb25maWc8VD4+Pih1bmRlZmluZWQpO1xuXG4gIHByaXZhdGUgX2NvbnRlbnQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPFZpZXdDb250YWluZXJSZWY+Pih1bmRlZmluZWQpO1xuICBwcml2YXRlIF9jb21wb25lbnRSZWYgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPENvbXBvbmVudFJlZjxUPj4+KHVuZGVmaW5lZCk7XG5cbiAgcmVhZG9ubHkgY29uZmlnJCA9IHRoaXMuX2NvbmZpZy5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICByZWFkb25seSB0ZW1wbGF0ZSQgPSB0aGlzLl90ZW1wbGF0ZS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICByZWFkb25seSBjb250ZW50JCA9IHRoaXMuX2NvbnRlbnQucGlwZShmaWx0ZXJNYXliZSgpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgZ2V0IGNvbmZpZygpOiBNYXliZTxEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnLnZhbHVlO1xuICB9XG5cbiAgc2V0IGNvbmZpZyhjb25maWc6IE1heWJlPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZzxUPj4pIHtcbiAgICB0aGlzLl9jb25maWcubmV4dChjb25maWcpO1xuICB9XG5cbiAgZ2V0IHRlbXBsYXRlKCk6IE1heWJlPERieEluamVjdGlvblRlbXBsYXRlQ29uZmlnPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuX3RlbXBsYXRlLnZhbHVlO1xuICB9XG5cbiAgc2V0IHRlbXBsYXRlKHRlbXBsYXRlOiBNYXliZTxEYnhJbmplY3Rpb25UZW1wbGF0ZUNvbmZpZzxUPj4pIHtcbiAgICB0aGlzLl90ZW1wbGF0ZS5uZXh0KHRlbXBsYXRlKTtcbiAgfVxuXG4gIGdldCBjb250ZW50KCk6IE1heWJlPE1heWJlPFZpZXdDb250YWluZXJSZWY+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRlbnQudmFsdWU7XG4gIH1cblxuICBzZXQgY29udGVudChjb250ZW50OiBNYXliZTxNYXliZTxWaWV3Q29udGFpbmVyUmVmPj4pIHtcbiAgICB0aGlzLl9jb250ZW50Lm5leHQoY29udGVudCk7XG4gIH1cblxuICBnZXQgY29tcG9uZW50UmVmKCk6IE1heWJlPENvbXBvbmVudFJlZjxUPj4ge1xuICAgIHJldHVybiB0aGlzLl9jb21wb25lbnRSZWYudmFsdWU7XG4gIH1cblxuICBzZXQgY29tcG9uZW50UmVmKGNvbXBvbmVudFJlZjogTWF5YmU8Q29tcG9uZW50UmVmPFQ+Pikge1xuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5uZXh0KGNvbXBvbmVudFJlZik7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvcjogSW5qZWN0b3IpIHsgfVxuXG4gIGluaXQoKTogdm9pZCB7XG5cbiAgICAvLyBXYWl0IHVudGlsIHRoZSBmaXJzdCBvZiBlaXRoZXIgb2YgdGhlIHR3byBpbnB1dHMgY29tZXMgaW4gYXMgbm90IGRlZmluZWQsIGFuZCB0aGVuIGVtaXQuXG4gICAgLy8gV2UgZmlsdGVyIHRoZSBmaXJzdCBtYXliZSBoZXJlIGJldHdlZW4gdGhlIHR3byBpdGVtcy5cbiAgICBjb25zdCBjb25maWdUZW1wbGF0ZU9icyA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuY29uZmlnJCwgdGhpcy50ZW1wbGF0ZSRdKS5waXBlKFxuICAgICAgbWFwKChbY29uZmlnLCB0ZW1wbGF0ZV0pID0+IHtcbiAgICAgICAgaWYgKGNvbmZpZyB8fCB0ZW1wbGF0ZSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICB0ZW1wbGF0ZVxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBza2lwRmlyc3RNYXliZSgpXG4gICAgKTtcblxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbk9iamVjdC5zdWJzY3JpcHRpb24gPSBjb21iaW5lTGF0ZXN0KFtjb25maWdUZW1wbGF0ZU9icywgdGhpcy5jb250ZW50JF0pLnN1YnNjcmliZSgoW2lucHV0Q29uZmlnLCBjb250ZW50XSkgPT4ge1xuICAgICAgY29uc3QgeyBjb25maWcsIHRlbXBsYXRlIH0gPSBpbnB1dENvbmZpZyA/PyB7fTtcbiAgICAgIHRoaXMuX3Jlc2V0KGNvbnRlbnQpO1xuXG4gICAgICBpZiAoY29uZmlnKSB7XG4gICAgICAgIHRoaXMuX2luaXRDb21wb25lbnQoY29uZmlnLCBjb250ZW50KTtcbiAgICAgIH0gZWxzZSBpZiAodGVtcGxhdGUpIHtcbiAgICAgICAgdGhpcy5faW5pdFRlbXBsYXRlKHRlbXBsYXRlLCBjb250ZW50KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fY29uZmlnLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fdGVtcGxhdGUuY29tcGxldGUoKTtcbiAgICB0aGlzLl9jb250ZW50LmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fY29tcG9uZW50UmVmLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0Q29tcG9uZW50KGNvbmZpZzogRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnPFQ+LCBjb250ZW50OiBWaWV3Q29udGFpbmVyUmVmKTogdm9pZCB7XG4gICAgY29udGVudC5jbGVhcigpO1xuXG4gICAgY29uc3QgeyBpbml0LCBpbmplY3RvcjogaW5wdXRJbmplY3RvciwgcHJvdmlkZXJzLCBuZ01vZHVsZVJlZiwgY29tcG9uZW50Q2xhc3MsIGRhdGEgfSA9IGNvbmZpZztcblxuICAgIGxldCBpbmplY3RvcjogSW5qZWN0b3IgfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgcGFyZW50SW5qZWN0b3IgPSBpbnB1dEluamVjdG9yID8/IHRoaXMuX2luamVjdG9yO1xuXG4gICAgaWYgKEJvb2xlYW4ocHJvdmlkZXJzIHx8IGRhdGEpKSB7XG4gICAgICBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgIHBhcmVudDogcGFyZW50SW5qZWN0b3IsXG4gICAgICAgIHByb3ZpZGVyczogbWVyZ2VBcnJheU9yVmFsdWVJbnRvQXJyYXkoW3tcbiAgICAgICAgICBwcm92aWRlOiBEQlhfSU5KRUNUSU9OX0NPTVBPTkVOVF9EQVRBLFxuICAgICAgICAgIHVzZVZhbHVlOiBkYXRhXG4gICAgICAgIH1dLCBwcm92aWRlcnMgPz8gW10pXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUPiA9IGNvbnRlbnQuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudENsYXNzLCB7IGluamVjdG9yLCBuZ01vZHVsZVJlZiB9KTtcblxuICAgIGNvbnN0IGluc3RhbmNlID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xuXG4gICAgaWYgKGluaXQpIHtcbiAgICAgIGluaXQoaW5zdGFuY2UpO1xuICAgIH1cblxuICAgIHRoaXMuY29tcG9uZW50UmVmID0gY29tcG9uZW50UmVmO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdFRlbXBsYXRlKGNvbmZpZzogRGJ4SW5qZWN0aW9uVGVtcGxhdGVDb25maWc8VD4sIGNvbnRlbnQ6IFZpZXdDb250YWluZXJSZWYpOiB2b2lkIHtcbiAgICBjb250ZW50LmNsZWFyKCk7XG5cbiAgICBjb25zdCB7IHRlbXBsYXRlUmVmLCB2aWV3UmVmIH0gPSBjb25maWc7XG5cbiAgICBpZiAodGVtcGxhdGVSZWYpIHtcbiAgICAgIGNvbnRlbnQuY3JlYXRlRW1iZWRkZWRWaWV3KHRlbXBsYXRlUmVmKTtcblxuICAgICAgLy8gVE9ETzogRmlndXJlIG91dCBpZiB0aGVzZSBpdGVtcyBuZWVkIHRvIGJlIGRlc3Ryb3llZCBvciBub3Qgd2hlbiB0aGlzIGl0ZW0gaXMgZGVzdHJveWVkLiBJZiBzbywgd2UgbmVlZCBhIHJlZmVyZW5jZSB0byBkZXN0cm95LlxuXG4gICAgfSBlbHNlIGlmICh2aWV3UmVmKSB7XG4gICAgICBjb250ZW50Lmluc2VydCh2aWV3UmVmKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3Jlc2V0KGNvbnRlbnQ6IFZpZXdDb250YWluZXJSZWYpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgIGNvbnRlbnQuY2xlYXIoKTtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { InjectionToken } from "@angular/core";
|
|
2
|
+
import { filterMaybeValues, mergeArrays, mergeObjects } from "@dereekb/util";
|
|
3
|
+
export const DBX_INJECTION_COMPONENT_DATA = new InjectionToken('DbxInjectionComponentConfigData');
|
|
4
|
+
/**
|
|
5
|
+
* Merges multiple configurations into a single configuration.
|
|
6
|
+
*
|
|
7
|
+
* @param configs
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
export function mergeDbxInjectionComponentConfigs(configs) {
|
|
11
|
+
const providers = mergeArrays(filterMaybeValues(configs).map(x => x.providers));
|
|
12
|
+
const result = mergeObjects(configs);
|
|
13
|
+
result.providers = providers;
|
|
14
|
+
return result;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9pbmplY3Rpb24vaW5qZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQXFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxpQkFBaUIsRUFBUyxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXBGLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLElBQUksY0FBYyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7QUF3Q2xHOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGlDQUFpQyxDQUFDLE9BQXNEO0lBQ3RHLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNoRixNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckMsTUFBTSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBJbmplY3RvciwgTmdNb2R1bGVSZWYsIFN0YXRpY1Byb3ZpZGVyLCBUZW1wbGF0ZVJlZiwgVHlwZSwgVmlld1JlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBmaWx0ZXJNYXliZVZhbHVlcywgTWF5YmUsIG1lcmdlQXJyYXlzLCBtZXJnZU9iamVjdHMgfSBmcm9tIFwiQGRlcmVla2IvdXRpbFwiO1xuXG5leHBvcnQgY29uc3QgREJYX0lOSkVDVElPTl9DT01QT05FTlRfREFUQSA9IG5ldyBJbmplY3Rpb25Ub2tlbignRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnRGF0YScpO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZzxUID0gYW55PiB7XG4gIC8qKlxuICAgKiBUeXBlIG9mIENvbXBvbmVudCB0byBpbml0aWFsaXplLlxuICAgKi9cbiAgY29tcG9uZW50Q2xhc3M6IFR5cGU8VD47XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIHByb3ZpZGVycyB0byBwcm92aWRlIHRvIHRoZSBleGlzdGluZyBpbmplY3Rvci5cbiAgICovXG4gIHByb3ZpZGVycz86IFN0YXRpY1Byb3ZpZGVyW107XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIEN1c3RvbSBJbmplY3RvciB0byB1c2Ugd2hlbiBjcmVhdGluZyB0aGUgY29tcG9uZW50LiBJZiBwcm92aWRlZCwgcHJvdmlkZXJzIGlzIGlnbm9yZWQuXG4gICAqL1xuICBpbmplY3Rvcj86IEluamVjdG9yO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBNb2R1bGUgcmVmIHRvIHVzZSB3aGVuIGNyZWF0aW5nIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBuZ01vZHVsZVJlZj86IE5nTW9kdWxlUmVmPHVua25vd24+O1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBDdXN0b20gaW5pdGlhbGl6YXRpb24gY29kZSB3aGVuIGFuIGluc3RhbmNlIGlzIGNyZWF0ZWQuXG4gICAqL1xuICBpbml0PzogKGluc3RhbmNlOiBUKSA9PiB2b2lkO1xuICAvKipcbiAgICogQW55IG9wdGlvbmFsIGRhdGEgdG8gaW5qZWN0IGludG8gdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIGRhdGE/OiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4SW5qZWN0aW9uVGVtcGxhdGVDb25maWc8VCA9IGFueT4ge1xuICAvKipcbiAgICogVGVtcGxhdGUgcmVmIHRvIGRpc3BsYXkuXG4gICAqL1xuICB0ZW1wbGF0ZVJlZj86IE1heWJlPFRlbXBsYXRlUmVmPFQ+PjtcbiAgLyoqXG4gICAqIFZpZXcgcmVmIHRvIGluamVjdC5cbiAgICovXG4gIHZpZXdSZWY/OiBNYXliZTxWaWV3UmVmPjtcbn1cblxuLyoqXG4gKiBNZXJnZXMgbXVsdGlwbGUgY29uZmlndXJhdGlvbnMgaW50byBhIHNpbmdsZSBjb25maWd1cmF0aW9uLlxuICogXG4gKiBAcGFyYW0gY29uZmlncyBcbiAqIEByZXR1cm5zIFxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWdzKGNvbmZpZ3M6IE1heWJlPFBhcnRpYWw8RGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnPj5bXSk6IFBhcnRpYWw8RGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnPiB7XG4gIGNvbnN0IHByb3ZpZGVycyA9IG1lcmdlQXJyYXlzKGZpbHRlck1heWJlVmFsdWVzKGNvbmZpZ3MpLm1hcCh4ID0+IHgucHJvdmlkZXJzKSk7XG4gIGNvbnN0IHJlc3VsdCA9IG1lcmdlT2JqZWN0cyhjb25maWdzKTtcbiAgcmVzdWx0LnByb3ZpZGVycyA9IHByb3ZpZGVycztcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './store.lockset';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL25ncngvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3RvcmUubG9ja3NldCc7XG4iXX0=
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { map } from 'rxjs';
|
|
2
|
+
import { ComponentStore } from '@ngrx/component-store';
|
|
3
|
+
import { Inject, Optional, Injectable } from '@angular/core';
|
|
4
|
+
import { LockSet, asObservable } from '@dereekb/rxjs';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* Abstract ComponentStore extension that provides a LockSet and OnDestroy delaying/cleanup.
|
|
8
|
+
*/
|
|
9
|
+
export class LockSetComponentStore extends ComponentStore {
|
|
10
|
+
constructor(initialState) {
|
|
11
|
+
super(initialState);
|
|
12
|
+
this.initialState = initialState;
|
|
13
|
+
this.lockSet = new LockSet();
|
|
14
|
+
this.lockSetDestroyDelayMs = 2000;
|
|
15
|
+
// MARK: State Changes
|
|
16
|
+
this.resetStore = this.updater(() => ({ ...this.initialState }));
|
|
17
|
+
}
|
|
18
|
+
// MARK: Locks
|
|
19
|
+
setupLockSet({ parent, locks }) {
|
|
20
|
+
if (parent) {
|
|
21
|
+
this.setParentLockSet(parent);
|
|
22
|
+
}
|
|
23
|
+
if (locks) {
|
|
24
|
+
for (const key in locks) {
|
|
25
|
+
if (locks[key]) {
|
|
26
|
+
this.addLock(key, locks[key]);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
setParentLockSet(obs) {
|
|
32
|
+
this.lockSet.setParentLockSet(asObservable(obs).pipe(map(x => x?.lockSet)));
|
|
33
|
+
}
|
|
34
|
+
addLock(key, obs) {
|
|
35
|
+
this.lockSet.addLock(key, obs);
|
|
36
|
+
}
|
|
37
|
+
// MARK: Cleanup
|
|
38
|
+
ngOnDestroy() {
|
|
39
|
+
// Wait for any actions to complete before destroying.
|
|
40
|
+
this.lockSet.destroyOnNextUnlock({
|
|
41
|
+
fn: () => {
|
|
42
|
+
this._destroyNow();
|
|
43
|
+
},
|
|
44
|
+
timeout: this.lockSetDestroyTimeoutMs,
|
|
45
|
+
}, this.lockSetDestroyDelayMs);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Completes the cleanup of the object.
|
|
49
|
+
*/
|
|
50
|
+
_destroyNow() {
|
|
51
|
+
this.lockSet.destroy();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
LockSetComponentStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: LockSetComponentStore, deps: [{ token: null, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
55
|
+
LockSetComponentStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: LockSetComponentStore });
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: LockSetComponentStore, decorators: [{
|
|
57
|
+
type: Injectable
|
|
58
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
59
|
+
type: Inject,
|
|
60
|
+
args: [null]
|
|
61
|
+
}, {
|
|
62
|
+
type: Optional
|
|
63
|
+
}] }]; } });
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUubG9ja3NldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvbmdyeC9zdG9yZS5sb2Nrc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsT0FBTyxFQUF5QyxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBYzdGOztHQUVHO0FBRUgsTUFBTSxPQUFnQixxQkFBd0MsU0FBUSxjQUFpQjtJQU9yRixZQUFtRSxZQUFnQjtRQUNqRixLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFENkMsaUJBQVksR0FBWixZQUFZLENBQUk7UUFMMUUsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFdkIsMEJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBT3ZDLHNCQUFzQjtRQUNiLGVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQVEsQ0FBQSxDQUFDLENBQUM7SUFIMUUsQ0FBQztJQUtELGNBQWM7SUFDSixZQUFZLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUErQjtRQUNuRSxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMvQjtRQUVELElBQUksS0FBSyxFQUFFO1lBQ1QsS0FBSyxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQUU7Z0JBQ3ZCLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2lCQUMvQjthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBK0M7UUFDOUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFXLEVBQUUsR0FBd0I7UUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxnQkFBZ0I7SUFDUCxXQUFXO1FBRWxCLHNEQUFzRDtRQUN0RCxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDO1lBQy9CLEVBQUUsRUFBRSxHQUFHLEVBQUU7Z0JBQ1AsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLENBQUM7WUFDRCxPQUFPLEVBQUUsSUFBSSxDQUFDLHVCQUF1QjtTQUN0QyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3pCLENBQUM7O2tIQXREbUIscUJBQXFCLGtCQU9YLElBQUk7c0hBUGQscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRDFDLFVBQVU7OzBCQVFjLE1BQU07MkJBQUMsSUFBSTs7MEJBQUcsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50U3RvcmUgfSBmcm9tICdAbmdyeC9jb21wb25lbnQtc3RvcmUnO1xuaW1wb3J0IHsgSW5qZWN0LCBPcHRpb25hbCwgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2NrU2V0LCBTdWJzY3JpcHRpb25PYmplY3QsIE9ic2VydmFibGVPclZhbHVlLCBhc09ic2VydmFibGUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9ja1NldENvbXBvbmVudCB7XG4gIHJlYWRvbmx5IGxvY2tTZXQ6IExvY2tTZXQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9ja1NldENvbXBvbmVudFN0b3JlQ29uZmlnIHtcbiAgcGFyZW50PzogTWF5YmU8T2JzZXJ2YWJsZTxMb2NrU2V0Q29tcG9uZW50Pj47XG4gIGxvY2tzPzoge1xuICAgIFtrZXk6IHN0cmluZ106IE9ic2VydmFibGU8Ym9vbGVhbj5cbiAgfTtcbn1cblxuLyoqXG4gKiBBYnN0cmFjdCBDb21wb25lbnRTdG9yZSBleHRlbnNpb24gdGhhdCBwcm92aWRlcyBhIExvY2tTZXQgYW5kIE9uRGVzdHJveSBkZWxheWluZy9jbGVhbnVwLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTG9ja1NldENvbXBvbmVudFN0b3JlPFMgZXh0ZW5kcyBvYmplY3Q+IGV4dGVuZHMgQ29tcG9uZW50U3RvcmU8Uz4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHJlYWRvbmx5IGxvY2tTZXQgPSBuZXcgTG9ja1NldCgpO1xuXG4gIHByb3RlY3RlZCBsb2NrU2V0RGVzdHJveURlbGF5TXMgPSAyMDAwO1xuICBwcm90ZWN0ZWQgbG9ja1NldERlc3Ryb3lUaW1lb3V0TXM6IE1heWJlPG51bWJlcj47XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKEBJbmplY3QobnVsbCkgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIHJlYWRvbmx5IGluaXRpYWxTdGF0ZT86IFMpIHtcbiAgICBzdXBlcihpbml0aWFsU3RhdGUpO1xuICB9XG5cbiAgLy8gTUFSSzogU3RhdGUgQ2hhbmdlc1xuICByZWFkb25seSByZXNldFN0b3JlID0gdGhpcy51cGRhdGVyKCgpID0+ICh7IC4uLnRoaXMuaW5pdGlhbFN0YXRlIH0gYXMgUykpO1xuXG4gIC8vIE1BUks6IExvY2tzXG4gIHByb3RlY3RlZCBzZXR1cExvY2tTZXQoeyBwYXJlbnQsIGxvY2tzIH06IExvY2tTZXRDb21wb25lbnRTdG9yZUNvbmZpZyk6IHZvaWQge1xuICAgIGlmIChwYXJlbnQpIHtcbiAgICAgIHRoaXMuc2V0UGFyZW50TG9ja1NldChwYXJlbnQpO1xuICAgIH1cblxuICAgIGlmIChsb2Nrcykge1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gbG9ja3MpIHtcbiAgICAgICAgaWYgKGxvY2tzW2tleV0pIHtcbiAgICAgICAgICB0aGlzLmFkZExvY2soa2V5LCBsb2Nrc1trZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNldFBhcmVudExvY2tTZXQob2JzOiBPYnNlcnZhYmxlT3JWYWx1ZTxNYXliZTxMb2NrU2V0Q29tcG9uZW50Pj4pOiB2b2lkIHtcbiAgICB0aGlzLmxvY2tTZXQuc2V0UGFyZW50TG9ja1NldChhc09ic2VydmFibGUob2JzKS5waXBlKG1hcCh4ID0+IHg/LmxvY2tTZXQpKSk7XG4gIH1cblxuICBhZGRMb2NrKGtleTogc3RyaW5nLCBvYnM6IE9ic2VydmFibGU8Ym9vbGVhbj4pOiB2b2lkIHtcbiAgICB0aGlzLmxvY2tTZXQuYWRkTG9jayhrZXksIG9icyk7XG4gIH1cblxuICAvLyBNQVJLOiBDbGVhbnVwXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuXG4gICAgLy8gV2FpdCBmb3IgYW55IGFjdGlvbnMgdG8gY29tcGxldGUgYmVmb3JlIGRlc3Ryb3lpbmcuXG4gICAgdGhpcy5sb2NrU2V0LmRlc3Ryb3lPbk5leHRVbmxvY2soe1xuICAgICAgZm46ICgpID0+IHtcbiAgICAgICAgdGhpcy5fZGVzdHJveU5vdygpO1xuICAgICAgfSxcbiAgICAgIHRpbWVvdXQ6IHRoaXMubG9ja1NldERlc3Ryb3lUaW1lb3V0TXMsXG4gICAgfSwgdGhpcy5sb2NrU2V0RGVzdHJveURlbGF5TXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXBsZXRlcyB0aGUgY2xlYW51cCBvZiB0aGUgb2JqZWN0LlxuICAgKi9cbiAgX2Rlc3Ryb3lOb3coKSB7XG4gICAgdGhpcy5sb2NrU2V0LmRlc3Ryb3koKTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -9,8 +9,8 @@ import { DateDistancePipe } from './datedistance.pipe';
|
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
export class DbxDatePipeModule {
|
|
11
11
|
}
|
|
12
|
-
DbxDatePipeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2
|
|
13
|
-
DbxDatePipeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2
|
|
12
|
+
DbxDatePipeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxDatePipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
13
|
+
DbxDatePipeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxDatePipeModule, declarations: [DateFromToTimePipe,
|
|
14
14
|
DateFormatDistancePipe,
|
|
15
15
|
MinutesStringPipe,
|
|
16
16
|
TimeDistanceCountdownPipe,
|
|
@@ -25,8 +25,8 @@ DbxDatePipeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versi
|
|
|
25
25
|
DateDistancePipe,
|
|
26
26
|
ToJsDatePipe,
|
|
27
27
|
ToMinutesPipe] });
|
|
28
|
-
DbxDatePipeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2
|
|
28
|
+
DbxDatePipeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxDatePipeModule });
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxDatePipeModule, decorators: [{
|
|
30
30
|
type: NgModule,
|
|
31
31
|
args: [{
|
|
32
32
|
exports: [
|
|
@@ -33,9 +33,9 @@ export class DateDistancePipe {
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
DateDistancePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2
|
|
37
|
-
DateDistancePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2
|
|
36
|
+
DateDistancePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DateDistancePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
37
|
+
DateDistancePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DateDistancePipe, name: "dateDistance", pure: false });
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DateDistancePipe, decorators: [{
|
|
39
39
|
type: Pipe,
|
|
40
40
|
args: [{ name: 'dateDistance', pure: false }]
|
|
41
41
|
}] });
|
|
@@ -25,9 +25,9 @@ export class DateFormatDistancePipe {
|
|
|
25
25
|
return undefined;
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
DateFormatDistancePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2
|
|
29
|
-
DateFormatDistancePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2
|
|
28
|
+
DateFormatDistancePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DateFormatDistancePipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
29
|
+
DateFormatDistancePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DateFormatDistancePipe, name: "dateFormatDistance", pure: false });
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DateFormatDistancePipe, decorators: [{
|
|
31
31
|
type: Pipe,
|
|
32
32
|
args: [{ name: 'dateFormatDistance', pure: false }]
|
|
33
33
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
@@ -23,9 +23,9 @@ export class DateFromToTimePipe {
|
|
|
23
23
|
return undefined;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
DateFromToTimePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2
|
|
27
|
-
DateFromToTimePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2
|
|
26
|
+
DateFromToTimePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DateFromToTimePipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
27
|
+
DateFromToTimePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DateFromToTimePipe, name: "dateFromPlusTo" });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DateFromToTimePipe, decorators: [{
|
|
29
29
|
type: Pipe,
|
|
30
30
|
args: [{ name: 'dateFromPlusTo' }]
|
|
31
31
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
@@ -23,9 +23,9 @@ export class MinutesStringPipe {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
MinutesStringPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2
|
|
27
|
-
MinutesStringPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2
|
|
26
|
+
MinutesStringPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: MinutesStringPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
27
|
+
MinutesStringPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: MinutesStringPipe, name: "minutesString", pure: false });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: MinutesStringPipe, decorators: [{
|
|
29
29
|
type: Pipe,
|
|
30
30
|
args: [{ name: 'minutesString', pure: false }]
|
|
31
31
|
}] });
|
|
@@ -21,9 +21,9 @@ export class TimeDistanceCountdownPipe {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
TimeDistanceCountdownPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2
|
|
25
|
-
TimeDistanceCountdownPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2
|
|
24
|
+
TimeDistanceCountdownPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: TimeDistanceCountdownPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
25
|
+
TimeDistanceCountdownPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: TimeDistanceCountdownPipe, name: "timeCountdownDistance", pure: false });
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: TimeDistanceCountdownPipe, decorators: [{
|
|
27
27
|
type: Pipe,
|
|
28
28
|
args: [{ name: 'timeCountdownDistance', pure: false }]
|
|
29
29
|
}] });
|
|
@@ -40,9 +40,9 @@ export class TimeDistancePipe {
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
TimeDistancePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2
|
|
44
|
-
TimeDistancePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2
|
|
43
|
+
TimeDistancePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: TimeDistancePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
44
|
+
TimeDistancePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: TimeDistancePipe, name: "timeDistance", pure: false });
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: TimeDistancePipe, decorators: [{
|
|
46
46
|
type: Pipe,
|
|
47
47
|
args: [{ name: 'timeDistance', pure: false }]
|
|
48
48
|
}] });
|
|
@@ -1,18 +1,26 @@
|
|
|
1
|
+
import { isValid } from 'date-fns';
|
|
1
2
|
import { Pipe } from '@angular/core';
|
|
2
3
|
import { toJsDate } from '@dereekb/date';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export class ToJsDatePipe {
|
|
5
6
|
static toJsDate(input) {
|
|
6
|
-
|
|
7
|
+
let date;
|
|
8
|
+
if (input != null) {
|
|
9
|
+
date = toJsDate(input);
|
|
10
|
+
if (!isValid(date)) {
|
|
11
|
+
date = undefined;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return date;
|
|
7
15
|
}
|
|
8
16
|
transform(input) {
|
|
9
17
|
return ToJsDatePipe.toJsDate(input);
|
|
10
18
|
}
|
|
11
19
|
}
|
|
12
|
-
ToJsDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2
|
|
13
|
-
ToJsDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2
|
|
20
|
+
ToJsDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ToJsDatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
21
|
+
ToJsDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ToJsDatePipe, name: "toJsDate" });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ToJsDatePipe, decorators: [{
|
|
15
23
|
type: Pipe,
|
|
16
24
|
args: [{ name: 'toJsDate' }]
|
|
17
25
|
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9qc2RhdGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvcGlwZS9kYXRlL3RvanNkYXRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUl6QyxNQUFNLE9BQU8sWUFBWTtJQUVoQixNQUFNLENBQUMsUUFBUSxDQUFDLEtBQThCO1FBQ25ELElBQUksSUFBaUIsQ0FBQztRQUV0QixJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUU7WUFDakIsSUFBSSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUV2QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNsQixJQUFJLEdBQUcsU0FBUyxDQUFDO2FBQ2xCO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBOEI7UUFDdEMsT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7O3lHQWxCVSxZQUFZO3VHQUFaLFlBQVk7MkZBQVosWUFBWTtrQkFEeEIsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1ZhbGlkIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9Kc0RhdGUgfSBmcm9tICdAZGVyZWVrYi9kYXRlJztcbmltcG9ydCB7IERhdGVPckRhdGVTdHJpbmcsIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbkBQaXBlKHsgbmFtZTogJ3RvSnNEYXRlJyB9KVxuZXhwb3J0IGNsYXNzIFRvSnNEYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIHB1YmxpYyBzdGF0aWMgdG9Kc0RhdGUoaW5wdXQ6IE1heWJlPERhdGVPckRhdGVTdHJpbmc+KTogTWF5YmU8RGF0ZT4ge1xuICAgIGxldCBkYXRlOiBNYXliZTxEYXRlPjtcbiAgICBcbiAgICBpZiAoaW5wdXQgIT0gbnVsbCkge1xuICAgICAgZGF0ZSA9IHRvSnNEYXRlKGlucHV0KTtcblxuICAgICAgaWYgKCFpc1ZhbGlkKGRhdGUpKSB7XG4gICAgICAgIGRhdGUgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGU7XG4gIH1cblxuICB0cmFuc2Zvcm0oaW5wdXQ6IE1heWJlPERhdGVPckRhdGVTdHJpbmc+KTogTWF5YmU8RGF0ZT4ge1xuICAgIHJldHVybiBUb0pzRGF0ZVBpcGUudG9Kc0RhdGUoaW5wdXQpO1xuICB9XG5cbn1cbiJdfQ==
|