@dereekb/dbx-core 0.0.1
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/README.md +7 -0
- package/dereekb-dbx-core.d.ts +5 -0
- package/esm2020/dereekb-dbx-core.mjs +5 -0
- package/esm2020/index.mjs +2 -0
- package/esm2020/lib/action/action.handler.mjs +140 -0
- package/esm2020/lib/action/action.holder.mjs +50 -0
- package/esm2020/lib/action/action.machine.mjs +37 -0
- package/esm2020/lib/action/action.mjs +51 -0
- package/esm2020/lib/action/action.module.mjs +38 -0
- package/esm2020/lib/action/action.store.mjs +188 -0
- package/esm2020/lib/action/action.store.source.mjs +149 -0
- package/esm2020/lib/action/directive/auto/action.automodify.directive.mjs +53 -0
- package/esm2020/lib/action/directive/auto/action.autotrigger.directive.mjs +131 -0
- package/esm2020/lib/action/directive/auto/action.autotrigger.value.directive.mjs +79 -0
- package/esm2020/lib/action/directive/auto/index.mjs +4 -0
- package/esm2020/lib/action/directive/context/action.component.mjs +18 -0
- package/esm2020/lib/action/directive/context/action.directive.mjs +33 -0
- package/esm2020/lib/action/directive/context/action.source.directive.mjs +40 -0
- package/esm2020/lib/action/directive/context/index.mjs +4 -0
- package/esm2020/lib/action/directive/debug/action.logger.directive.mjs +30 -0
- package/esm2020/lib/action/directive/debug/index.mjs +2 -0
- package/esm2020/lib/action/directive/index.mjs +6 -0
- package/esm2020/lib/action/directive/map/action.map.directive.mjs +74 -0
- package/esm2020/lib/action/directive/map/action.map.key.directive.mjs +40 -0
- package/esm2020/lib/action/directive/map/action.map.mjs +6 -0
- package/esm2020/lib/action/directive/map/action.map.source.directive.mjs +49 -0
- package/esm2020/lib/action/directive/map/action.map.working.disable.directive.mjs +41 -0
- package/esm2020/lib/action/directive/map/index.mjs +6 -0
- package/esm2020/lib/action/directive/state/action.disabled.directive.mjs +49 -0
- package/esm2020/lib/action/directive/state/action.disabled.modified.directive.mjs +35 -0
- package/esm2020/lib/action/directive/state/action.handler.directive.mjs +55 -0
- package/esm2020/lib/action/directive/state/action.success.component.mjs +50 -0
- package/esm2020/lib/action/directive/state/action.success.directive.mjs +48 -0
- package/esm2020/lib/action/directive/state/action.value.directive.mjs +52 -0
- package/esm2020/lib/action/directive/state/action.working.component.mjs +32 -0
- package/esm2020/lib/action/directive/state/index.mjs +8 -0
- package/esm2020/lib/action/index.mjs +10 -0
- package/esm2020/lib/action/snackbar/index.mjs +3 -0
- package/esm2020/lib/action/snackbar/snackbar.mjs +24 -0
- package/esm2020/lib/button/action/action.button.directive.mjs +46 -0
- package/esm2020/lib/button/action/action.button.trigger.directive.mjs +36 -0
- package/esm2020/lib/button/action/index.mjs +3 -0
- package/esm2020/lib/button/button.directive.mjs +109 -0
- package/esm2020/lib/button/button.loading.directive.mjs +43 -0
- package/esm2020/lib/button/button.mjs +9 -0
- package/esm2020/lib/button/button.module.mjs +40 -0
- package/esm2020/lib/button/index.mjs +7 -0
- package/esm2020/lib/button/router/button.segue.directive.mjs +43 -0
- package/esm2020/lib/button/router/index.mjs +2 -0
- package/esm2020/lib/index.mjs +9 -0
- package/esm2020/lib/injected/index.mjs +6 -0
- package/esm2020/lib/injected/injected.component.mjs +34 -0
- package/esm2020/lib/injected/injected.component.module.mjs +26 -0
- package/esm2020/lib/injected/injected.directive.mjs +32 -0
- package/esm2020/lib/injected/injected.instance.mjs +101 -0
- package/esm2020/lib/injected/injected.mjs +2 -0
- package/esm2020/lib/pipe/date/date.pipe.module.mjs +54 -0
- package/esm2020/lib/pipe/date/datedistance.pipe.mjs +42 -0
- package/esm2020/lib/pipe/date/dateformatdistance.pipe.mjs +37 -0
- package/esm2020/lib/pipe/date/datefromtoformat.pipe.mjs +35 -0
- package/esm2020/lib/pipe/date/index.mjs +9 -0
- package/esm2020/lib/pipe/date/minutesstring.pipe.mjs +32 -0
- package/esm2020/lib/pipe/date/timedistance.pipe.mjs +49 -0
- package/esm2020/lib/pipe/date/tojsdate.pipe.mjs +18 -0
- package/esm2020/lib/pipe/date/tominutes.pipe.mjs +17 -0
- package/esm2020/lib/pipe/index.mjs +2 -0
- package/esm2020/lib/router/anchor/anchor.directive.mjs +40 -0
- package/esm2020/lib/router/anchor/anchor.mjs +35 -0
- package/esm2020/lib/router/anchor/clickable.mjs +2 -0
- package/esm2020/lib/router/anchor/index.mjs +4 -0
- package/esm2020/lib/router/index.mjs +4 -0
- package/esm2020/lib/router/router/index.mjs +4 -0
- package/esm2020/lib/router/router/provider/angular/angular.router.service.mjs +51 -0
- package/esm2020/lib/router/router/provider/angular/angular.router.service.module.mjs +30 -0
- package/esm2020/lib/router/router/provider/angular/index.mjs +3 -0
- package/esm2020/lib/router/router/provider/index.mjs +3 -0
- package/esm2020/lib/router/router/provider/uirouter/index.mjs +3 -0
- package/esm2020/lib/router/router/provider/uirouter/uirouter.router.service.mjs +39 -0
- package/esm2020/lib/router/router/provider/uirouter/uirouter.router.service.module.mjs +31 -0
- package/esm2020/lib/router/router/service/index.mjs +3 -0
- package/esm2020/lib/router/router/service/router.service.mjs +6 -0
- package/esm2020/lib/router/router/service/router.transition.service.mjs +6 -0
- package/esm2020/lib/router/router/transition/index.mjs +3 -0
- package/esm2020/lib/router/router/transition/transition.mjs +12 -0
- package/esm2020/lib/router/router/transition/transition.watcher.directive.mjs +35 -0
- package/esm2020/lib/router/segue.mjs +8 -0
- package/esm2020/lib/storage/index.mjs +9 -0
- package/esm2020/lib/storage/storage.accessor.mjs +16 -0
- package/esm2020/lib/storage/storage.accessor.simple.factory.mjs +33 -0
- package/esm2020/lib/storage/storage.accessor.simple.mjs +161 -0
- package/esm2020/lib/storage/storage.accessor.string.mjs +50 -0
- package/esm2020/lib/storage/storage.di.mjs +4 -0
- package/esm2020/lib/storage/storage.module.mjs +37 -0
- package/esm2020/lib/storage/storage.object.localstorage.mjs +46 -0
- package/esm2020/lib/storage/storage.object.memory.mjs +17 -0
- package/esm2020/lib/subscription/index.mjs +2 -0
- package/esm2020/lib/subscription/subscription.directive.mjs +46 -0
- package/esm2020/lib/util/index.mjs +2 -0
- package/esm2020/lib/util/view.mjs +34 -0
- package/fesm2015/dereekb-dbx-core.mjs +2875 -0
- package/fesm2015/dereekb-dbx-core.mjs.map +1 -0
- package/fesm2020/dereekb-dbx-core.mjs +2856 -0
- package/fesm2020/dereekb-dbx-core.mjs.map +1 -0
- package/index.d.ts +1 -0
- package/lib/action/action.d.ts +43 -0
- package/lib/action/action.handler.d.ts +73 -0
- package/lib/action/action.holder.d.ts +28 -0
- package/lib/action/action.machine.d.ts +23 -0
- package/lib/action/action.module.d.ts +25 -0
- package/lib/action/action.store.d.ts +147 -0
- package/lib/action/action.store.source.d.ts +72 -0
- package/lib/action/directive/auto/action.automodify.directive.d.ts +15 -0
- package/lib/action/directive/auto/action.autotrigger.directive.d.ts +54 -0
- package/lib/action/directive/auto/action.autotrigger.value.directive.d.ts +25 -0
- package/lib/action/directive/auto/index.d.ts +3 -0
- package/lib/action/directive/context/action.component.d.ts +6 -0
- package/lib/action/directive/context/action.directive.d.ts +13 -0
- package/lib/action/directive/context/action.source.directive.d.ts +16 -0
- package/lib/action/directive/context/index.d.ts +3 -0
- package/lib/action/directive/debug/action.logger.directive.d.ts +14 -0
- package/lib/action/directive/debug/index.d.ts +1 -0
- package/lib/action/directive/index.d.ts +5 -0
- package/lib/action/directive/map/action.map.d.ts +13 -0
- package/lib/action/directive/map/action.map.directive.d.ts +35 -0
- package/lib/action/directive/map/action.map.key.directive.d.ts +20 -0
- package/lib/action/directive/map/action.map.source.directive.d.ts +20 -0
- package/lib/action/directive/map/action.map.working.disable.directive.d.ts +21 -0
- package/lib/action/directive/map/index.d.ts +5 -0
- package/lib/action/directive/state/action.disabled.directive.d.ts +20 -0
- package/lib/action/directive/state/action.disabled.modified.directive.d.ts +16 -0
- package/lib/action/directive/state/action.handler.directive.d.ts +22 -0
- package/lib/action/directive/state/action.success.component.d.ts +15 -0
- package/lib/action/directive/state/action.success.directive.d.ts +24 -0
- package/lib/action/directive/state/action.value.directive.d.ts +22 -0
- package/lib/action/directive/state/action.working.component.d.ts +12 -0
- package/lib/action/directive/state/index.d.ts +7 -0
- package/lib/action/index.d.ts +9 -0
- package/lib/action/snackbar/index.d.ts +1 -0
- package/lib/action/snackbar/snackbar.d.ts +50 -0
- package/lib/button/action/action.button.directive.d.ts +18 -0
- package/lib/button/action/action.button.trigger.directive.d.ts +17 -0
- package/lib/button/action/index.d.ts +2 -0
- package/lib/button/button.d.ts +26 -0
- package/lib/button/button.directive.d.ts +52 -0
- package/lib/button/button.loading.directive.d.ts +21 -0
- package/lib/button/button.module.d.ts +11 -0
- package/lib/button/index.d.ts +6 -0
- package/lib/button/router/button.segue.directive.d.ts +18 -0
- package/lib/button/router/index.d.ts +1 -0
- package/lib/index.d.ts +8 -0
- package/lib/injected/index.d.ts +5 -0
- package/lib/injected/injected.component.d.ts +15 -0
- package/lib/injected/injected.component.module.d.ts +8 -0
- package/lib/injected/injected.d.ts +26 -0
- package/lib/injected/injected.directive.d.ts +17 -0
- package/lib/injected/injected.instance.d.ts +29 -0
- package/lib/pipe/date/date.pipe.module.d.ts +13 -0
- package/lib/pipe/date/datedistance.pipe.d.ts +8 -0
- package/lib/pipe/date/dateformatdistance.pipe.d.ts +13 -0
- package/lib/pipe/date/datefromtoformat.pipe.d.ts +14 -0
- package/lib/pipe/date/index.d.ts +8 -0
- package/lib/pipe/date/minutesstring.pipe.d.ts +8 -0
- package/lib/pipe/date/timedistance.pipe.d.ts +13 -0
- package/lib/pipe/date/tojsdate.pipe.d.ts +9 -0
- package/lib/pipe/date/tominutes.pipe.d.ts +7 -0
- package/lib/pipe/index.d.ts +1 -0
- package/lib/router/anchor/anchor.d.ts +31 -0
- package/lib/router/anchor/anchor.directive.d.ts +20 -0
- package/lib/router/anchor/clickable.d.ts +17 -0
- package/lib/router/anchor/index.d.ts +3 -0
- package/lib/router/index.d.ts +3 -0
- package/lib/router/router/index.d.ts +3 -0
- package/lib/router/router/provider/angular/angular.router.service.d.ts +17 -0
- package/lib/router/router/provider/angular/angular.router.service.module.d.ts +8 -0
- package/lib/router/router/provider/angular/index.d.ts +2 -0
- package/lib/router/router/provider/index.d.ts +2 -0
- package/lib/router/router/provider/uirouter/index.d.ts +2 -0
- package/lib/router/router/provider/uirouter/uirouter.router.service.d.ts +19 -0
- package/lib/router/router/provider/uirouter/uirouter.router.service.module.d.ts +8 -0
- package/lib/router/router/service/index.d.ts +2 -0
- package/lib/router/router/service/router.service.d.ts +12 -0
- package/lib/router/router/service/router.transition.service.d.ts +11 -0
- package/lib/router/router/transition/index.d.ts +2 -0
- package/lib/router/router/transition/transition.d.ts +13 -0
- package/lib/router/router/transition/transition.watcher.directive.d.ts +18 -0
- package/lib/router/segue.d.ts +28 -0
- package/lib/storage/index.d.ts +8 -0
- package/lib/storage/storage.accessor.d.ts +35 -0
- package/lib/storage/storage.accessor.simple.d.ts +75 -0
- package/lib/storage/storage.accessor.simple.factory.d.ts +18 -0
- package/lib/storage/storage.accessor.string.d.ts +16 -0
- package/lib/storage/storage.di.d.ts +3 -0
- package/lib/storage/storage.module.d.ts +10 -0
- package/lib/storage/storage.object.localstorage.d.ts +16 -0
- package/lib/storage/storage.object.memory.d.ts +9 -0
- package/lib/subscription/index.d.ts +1 -0
- package/lib/subscription/subscription.directive.d.ts +25 -0
- package/lib/util/index.d.ts +1 -0
- package/lib/util/view.d.ts +22 -0
- package/package.json +52 -0
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { first, switchMap } from 'rxjs/operators';
|
|
2
|
+
import { Directive, forwardRef } from '@angular/core';
|
|
3
|
+
import { LockSet, filterMaybe } from '@dereekb/rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* Source that provides a ActionContextStore observable.
|
|
7
|
+
*/
|
|
8
|
+
export class ActionContextStoreSource {
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Secondary source. Used by DbNgxActionContextComponent to find secondary sources.
|
|
12
|
+
*/
|
|
13
|
+
export class SecondaryActionContextStoreSource extends ActionContextStoreSource {
|
|
14
|
+
}
|
|
15
|
+
export function actionContextStoreSourcePipe(obs) {
|
|
16
|
+
return obs.pipe(filterMaybe());
|
|
17
|
+
}
|
|
18
|
+
export function pipeActionStore(source, pipeFn) {
|
|
19
|
+
return source.store$.pipe(switchMap(pipeFn));
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Convenience function for subscribing to the input source once and using the provided store.
|
|
23
|
+
*/
|
|
24
|
+
export function useActionStore(source, useFn) {
|
|
25
|
+
return source.store$.pipe(first()).subscribe(useFn);
|
|
26
|
+
}
|
|
27
|
+
// tslint:disable-next-line: directive-class-suffix
|
|
28
|
+
export class ActionContextStoreSourceInstance {
|
|
29
|
+
constructor(source) {
|
|
30
|
+
this.source = source;
|
|
31
|
+
this.lockSet = new LockSet();
|
|
32
|
+
if (!source) {
|
|
33
|
+
throw new Error('Source is required.');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
ngOnDestroy() {
|
|
37
|
+
this.lockSet.destroyOnNextUnlock();
|
|
38
|
+
}
|
|
39
|
+
// MARK: Store
|
|
40
|
+
get store$() {
|
|
41
|
+
return this.source.store$;
|
|
42
|
+
}
|
|
43
|
+
pipeStore(pipeFn) {
|
|
44
|
+
return pipeActionStore(this.source, pipeFn);
|
|
45
|
+
}
|
|
46
|
+
useStore(useFn) {
|
|
47
|
+
return useActionStore(this.source, useFn);
|
|
48
|
+
}
|
|
49
|
+
get state$() {
|
|
50
|
+
return this.pipeStore(x => x.state$);
|
|
51
|
+
}
|
|
52
|
+
get triggered$() {
|
|
53
|
+
return this.pipeStore(x => x.triggered$);
|
|
54
|
+
}
|
|
55
|
+
get valueReady$() {
|
|
56
|
+
return this.pipeStore(x => x.valueReady$);
|
|
57
|
+
}
|
|
58
|
+
get success$() {
|
|
59
|
+
return this.pipeStore(x => x.success$);
|
|
60
|
+
}
|
|
61
|
+
get error$() {
|
|
62
|
+
return this.pipeStore(x => x.error$);
|
|
63
|
+
}
|
|
64
|
+
get rejected$() {
|
|
65
|
+
return this.pipeStore(x => x.rejected$);
|
|
66
|
+
}
|
|
67
|
+
get isModified$() {
|
|
68
|
+
return this.pipeStore(x => x.isModified$);
|
|
69
|
+
}
|
|
70
|
+
get isModifiedAndCanTriggerUpdates$() {
|
|
71
|
+
return this.pipeStore(x => x.isModifiedAndCanTriggerUpdates$);
|
|
72
|
+
}
|
|
73
|
+
get isModifiedAndCanTrigger$() {
|
|
74
|
+
return this.pipeStore(x => x.isModifiedAndCanTrigger$);
|
|
75
|
+
}
|
|
76
|
+
get actionState$() {
|
|
77
|
+
return this.pipeStore(x => x.actionState$);
|
|
78
|
+
}
|
|
79
|
+
get isWorking$() {
|
|
80
|
+
return this.pipeStore(x => x.isWorking$);
|
|
81
|
+
}
|
|
82
|
+
get isSuccess$() {
|
|
83
|
+
return this.pipeStore(x => x.isSuccess$);
|
|
84
|
+
}
|
|
85
|
+
get isDisabled$() {
|
|
86
|
+
return this.pipeStore(x => x.isDisabled$);
|
|
87
|
+
}
|
|
88
|
+
get errorCountSinceLastSuccess$() {
|
|
89
|
+
return this.pipeStore(x => x.errorCountSinceLastSuccess$);
|
|
90
|
+
}
|
|
91
|
+
enable(key, enable = true) {
|
|
92
|
+
this.disable(key, !enable);
|
|
93
|
+
}
|
|
94
|
+
disable(key, disable = true) {
|
|
95
|
+
this.useStore((x) => (disable) ? x.disable(key) : x.enable(key));
|
|
96
|
+
}
|
|
97
|
+
setIsModified(isModified) {
|
|
98
|
+
this.useStore((x) => x.setIsModified(isModified));
|
|
99
|
+
}
|
|
100
|
+
trigger() {
|
|
101
|
+
this.useStore((x) => x.trigger());
|
|
102
|
+
}
|
|
103
|
+
readyValue(value) {
|
|
104
|
+
this.useStore((x) => x.readyValue(value));
|
|
105
|
+
}
|
|
106
|
+
startWorking() {
|
|
107
|
+
this.useStore((x) => x.startWorking());
|
|
108
|
+
}
|
|
109
|
+
reject(error) {
|
|
110
|
+
this.useStore((x) => x.reject(error));
|
|
111
|
+
}
|
|
112
|
+
success(value) {
|
|
113
|
+
this.useStore((x) => x.success(value));
|
|
114
|
+
}
|
|
115
|
+
reset() {
|
|
116
|
+
this.useStore((x) => x.reset());
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
ActionContextStoreSourceInstance.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: ActionContextStoreSourceInstance, deps: [{ token: ActionContextStoreSource }], target: i0.ɵɵFactoryTarget.Directive });
|
|
120
|
+
ActionContextStoreSourceInstance.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: ActionContextStoreSourceInstance, ngImport: i0 });
|
|
121
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: ActionContextStoreSourceInstance, decorators: [{
|
|
122
|
+
type: Directive
|
|
123
|
+
}], ctorParameters: function () { return [{ type: ActionContextStoreSource }]; } });
|
|
124
|
+
export const actionContextStoreSourceInstanceFactory = (source) => {
|
|
125
|
+
return new ActionContextStoreSourceInstance(source);
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* Provides an ActionContextStoreSource, as well as an ActionContextStoreSourceInstance.
|
|
129
|
+
*/
|
|
130
|
+
export function ProvideActionStoreSource(sourceType) {
|
|
131
|
+
return [{
|
|
132
|
+
provide: ActionContextStoreSource,
|
|
133
|
+
useExisting: forwardRef(() => sourceType)
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
provide: ActionContextStoreSourceInstance,
|
|
137
|
+
useFactory: actionContextStoreSourceInstanceFactory,
|
|
138
|
+
deps: [ActionContextStoreSource]
|
|
139
|
+
}];
|
|
140
|
+
}
|
|
141
|
+
export function ProvideSecondaryActionStoreSource(sourceType) {
|
|
142
|
+
return [{
|
|
143
|
+
provide: SecondaryActionContextStoreSource,
|
|
144
|
+
useExisting: forwardRef(() => sourceType)
|
|
145
|
+
},
|
|
146
|
+
...ProvideActionStoreSource(sourceType)
|
|
147
|
+
];
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLnN0b3JlLnNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvYWN0aW9uL2FjdGlvbi5zdG9yZS5zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTXJEOztHQUVHO0FBQ0gsTUFBTSxPQUFnQix3QkFBd0I7Q0FPN0M7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBZ0IsaUNBQW9ELFNBQVEsd0JBQThCO0NBQUk7QUFFcEgsTUFBTSxVQUFVLDRCQUE0QixDQUFPLEdBQWdEO0lBQ2pHLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFJRCxNQUFNLFVBQVUsZUFBZSxDQUE0QixNQUFzQyxFQUFFLE1BQXdDO0lBQ3pJLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3ZCLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FDbEIsQ0FBQztBQUNKLENBQUM7QUFJRDs7R0FFRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQW1CLE1BQXNDLEVBQUUsS0FBbUM7SUFDMUgsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBR0QsbURBQW1EO0FBQ25ELE1BQU0sT0FBTyxnQ0FBZ0M7SUFJM0MsWUFBcUIsTUFBc0M7UUFBdEMsV0FBTSxHQUFOLE1BQU0sQ0FBZ0M7UUFGbEQsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFHL0IsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsY0FBYztJQUNkLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDNUIsQ0FBQztJQUVELFNBQVMsQ0FBSSxNQUF3QztRQUNuRCxPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBbUM7UUFDMUMsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLCtCQUErQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsSUFBSSx3QkFBd0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSwyQkFBMkI7UUFDN0IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxHQUF1QixFQUFFLE1BQU0sR0FBRyxJQUFJO1FBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVNLE9BQU8sQ0FBQyxHQUF1QixFQUFFLE9BQU8sR0FBRyxJQUFJO1FBQ3BELElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU0sYUFBYSxDQUFDLFVBQTZEO1FBQ2hGLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBK0I7UUFDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxZQUFZO1FBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBdUQ7UUFDbkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTSxPQUFPLENBQUMsS0FBd0I7UUFDckMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQzs7NkhBckhVLGdDQUFnQyxrQkFJZCx3QkFBd0I7aUhBSjFDLGdDQUFnQzsyRkFBaEMsZ0NBQWdDO2tCQUY1QyxTQUFTOzBEQU1xQix3QkFBd0I7QUFxSHZELE1BQU0sQ0FBQyxNQUFNLHVDQUF1QyxHQUFHLENBQUMsTUFBZ0MsRUFBRSxFQUFFO0lBQzFGLE9BQU8sSUFBSSxnQ0FBZ0MsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN0RCxDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FBSSxVQUFtQjtJQUM3RCxPQUFPLENBQUM7WUFDTixPQUFPLEVBQUUsd0JBQXdCO1lBQ2pDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDO1NBQzFDO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsZ0NBQWdDO1lBQ3pDLFVBQVUsRUFBRSx1Q0FBdUM7WUFDbkQsSUFBSSxFQUFFLENBQUMsd0JBQXdCLENBQUM7U0FDakMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxpQ0FBaUMsQ0FBSSxVQUFtQjtJQUN0RSxPQUFPLENBQUM7WUFDTixPQUFPLEVBQUUsaUNBQWlDO1lBQzFDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDO1NBQzFDO1FBQ0QsR0FBRyx3QkFBd0IsQ0FBQyxVQUFVLENBQUM7S0FDdEMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaXJzdCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIGZvcndhcmRSZWYsIFByb3ZpZGVyLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2NrU2V0LCBmaWx0ZXJNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXliZSwgUmVhZGFibGVFcnJvciB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgQWN0aW9uQ29udGV4dFN0YXRlLCBBY3Rpb25Db250ZXh0U3RvcmUgfSBmcm9tICcuL2FjdGlvbi5zdG9yZSc7XG5pbXBvcnQgeyBBY3Rpb25EaXNhYmxlZEtleSwgQWN0aW9uU3RhdGUgfSBmcm9tICcuL2FjdGlvbic7XG5cbi8qKlxuICogU291cmNlIHRoYXQgcHJvdmlkZXMgYSBBY3Rpb25Db250ZXh0U3RvcmUgb2JzZXJ2YWJsZS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZTxUID0gYW55LCBPID0gYW55PiB7XG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIHJlZmVyZW5jaW5nIHRoZSBBY3Rpb25Db250ZXh0U3RvcmUuXG4gICAqXG4gICAqIFRoaXMgb2JzZXJ2YWJsZSBieSBkZXNpZ24gaXMgcHJlLWZpbHRlcmVkIHRvIG5vdCByZXR1cm4gbnVsbCB2YWx1ZXMuXG4gICAqL1xuICBhYnN0cmFjdCByZWFkb25seSBzdG9yZSQ6IE9ic2VydmFibGU8QWN0aW9uQ29udGV4dFN0b3JlPFQsIE8+Pjtcbn1cblxuLyoqXG4gKiBTZWNvbmRhcnkgc291cmNlLiBVc2VkIGJ5IERiTmd4QWN0aW9uQ29udGV4dENvbXBvbmVudCB0byBmaW5kIHNlY29uZGFyeSBzb3VyY2VzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2Vjb25kYXJ5QWN0aW9uQ29udGV4dFN0b3JlU291cmNlPFQgPSBhbnksIE8gPSBhbnk+IGV4dGVuZHMgQWN0aW9uQ29udGV4dFN0b3JlU291cmNlPFQsIE8+IHsgfVxuXG5leHBvcnQgZnVuY3Rpb24gYWN0aW9uQ29udGV4dFN0b3JlU291cmNlUGlwZTxULCBPPihvYnM6IE9ic2VydmFibGU8TWF5YmU8QWN0aW9uQ29udGV4dFN0b3JlPFQsIE8+Pj4pOiBPYnNlcnZhYmxlPEFjdGlvbkNvbnRleHRTdG9yZTxULCBPPj4ge1xuICByZXR1cm4gb2JzLnBpcGUoZmlsdGVyTWF5YmUoKSk7XG59XG5cbmV4cG9ydCB0eXBlIFBpcGVBY3Rpb25TdG9yZUZ1bmN0aW9uPFIsIFQsIE8+ID0gKHN0b3JlOiBBY3Rpb25Db250ZXh0U3RvcmU8VCwgTz4pID0+IE9ic2VydmFibGU8Uj47XG5cbmV4cG9ydCBmdW5jdGlvbiBwaXBlQWN0aW9uU3RvcmU8UiA9IGFueSwgVCA9IGFueSwgTyA9IGFueT4oc291cmNlOiBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2U8VCwgTz4sIHBpcGVGbjogUGlwZUFjdGlvblN0b3JlRnVuY3Rpb248UiwgVCwgTz4pOiBPYnNlcnZhYmxlPFI+IHtcbiAgcmV0dXJuIHNvdXJjZS5zdG9yZSQucGlwZShcbiAgICBzd2l0Y2hNYXAocGlwZUZuKVxuICApO1xufVxuXG5leHBvcnQgdHlwZSBVc2VBY3Rpb25TdG9yZUZ1bmN0aW9uPFQsIE8+ID0gKHN0b3JlOiBBY3Rpb25Db250ZXh0U3RvcmU8VCwgTz4pID0+IHZvaWQ7XG5cbi8qKlxuICogQ29udmVuaWVuY2UgZnVuY3Rpb24gZm9yIHN1YnNjcmliaW5nIHRvIHRoZSBpbnB1dCBzb3VyY2Ugb25jZSBhbmQgdXNpbmcgdGhlIHByb3ZpZGVkIHN0b3JlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQWN0aW9uU3RvcmU8VCA9IGFueSwgTyA9IGFueT4oc291cmNlOiBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2U8VCwgTz4sIHVzZUZuOiBVc2VBY3Rpb25TdG9yZUZ1bmN0aW9uPFQsIE8+KTogU3Vic2NyaXB0aW9uIHtcbiAgcmV0dXJuIHNvdXJjZS5zdG9yZSQucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUodXNlRm4pO1xufVxuXG5ARGlyZWN0aXZlKClcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGNsYXNzIEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZUluc3RhbmNlPFQgPSBhbnksIE8gPSBhbnk+IGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICByZWFkb25seSBsb2NrU2V0ID0gbmV3IExvY2tTZXQoKTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBzb3VyY2U6IEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZTxULCBPPikge1xuICAgIGlmICghc291cmNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NvdXJjZSBpcyByZXF1aXJlZC4nKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5sb2NrU2V0LmRlc3Ryb3lPbk5leHRVbmxvY2soKTtcbiAgfVxuXG4gIC8vIE1BUks6IFN0b3JlXG4gIGdldCBzdG9yZSQoKTogT2JzZXJ2YWJsZTxBY3Rpb25Db250ZXh0U3RvcmU8VCwgTz4+IHtcbiAgICByZXR1cm4gdGhpcy5zb3VyY2Uuc3RvcmUkO1xuICB9XG5cbiAgcGlwZVN0b3JlPFI+KHBpcGVGbjogUGlwZUFjdGlvblN0b3JlRnVuY3Rpb248UiwgVCwgTz4pOiBPYnNlcnZhYmxlPFI+IHtcbiAgICByZXR1cm4gcGlwZUFjdGlvblN0b3JlKHRoaXMuc291cmNlLCBwaXBlRm4pO1xuICB9XG5cbiAgdXNlU3RvcmUodXNlRm46IFVzZUFjdGlvblN0b3JlRnVuY3Rpb248VCwgTz4pOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB1c2VBY3Rpb25TdG9yZSh0aGlzLnNvdXJjZSwgdXNlRm4pO1xuICB9XG5cbiAgZ2V0IHN0YXRlJCgpOiBPYnNlcnZhYmxlPEFjdGlvbkNvbnRleHRTdGF0ZTxULCBPPj4ge1xuICAgIHJldHVybiB0aGlzLnBpcGVTdG9yZSh4ID0+IHguc3RhdGUkKTtcbiAgfVxuXG4gIGdldCB0cmlnZ2VyZWQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnBpcGVTdG9yZSh4ID0+IHgudHJpZ2dlcmVkJCk7XG4gIH1cblxuICBnZXQgdmFsdWVSZWFkeSQoKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMucGlwZVN0b3JlKHggPT4geC52YWx1ZVJlYWR5JCk7XG4gIH1cblxuICBnZXQgc3VjY2VzcyQoKTogT2JzZXJ2YWJsZTxPPiB7XG4gICAgcmV0dXJuIHRoaXMucGlwZVN0b3JlKHggPT4geC5zdWNjZXNzJCk7XG4gIH1cblxuICBnZXQgZXJyb3IkKCk6IE9ic2VydmFibGU8TWF5YmU8UmVhZGFibGVFcnJvcj4+IHtcbiAgICByZXR1cm4gdGhpcy5waXBlU3RvcmUoeCA9PiB4LmVycm9yJCk7XG4gIH1cblxuICBnZXQgcmVqZWN0ZWQkKCk6IE9ic2VydmFibGU8TWF5YmU8UmVhZGFibGVFcnJvcj4+IHtcbiAgICByZXR1cm4gdGhpcy5waXBlU3RvcmUoeCA9PiB4LnJlamVjdGVkJCk7XG4gIH1cblxuICBnZXQgaXNNb2RpZmllZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMucGlwZVN0b3JlKHggPT4geC5pc01vZGlmaWVkJCk7XG4gIH1cblxuICBnZXQgaXNNb2RpZmllZEFuZENhblRyaWdnZXJVcGRhdGVzJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5waXBlU3RvcmUoeCA9PiB4LmlzTW9kaWZpZWRBbmRDYW5UcmlnZ2VyVXBkYXRlcyQpO1xuICB9XG5cbiAgZ2V0IGlzTW9kaWZpZWRBbmRDYW5UcmlnZ2VyJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5waXBlU3RvcmUoeCA9PiB4LmlzTW9kaWZpZWRBbmRDYW5UcmlnZ2VyJCk7XG4gIH1cblxuICBnZXQgYWN0aW9uU3RhdGUkKCk6IE9ic2VydmFibGU8QWN0aW9uU3RhdGU+IHtcbiAgICByZXR1cm4gdGhpcy5waXBlU3RvcmUoeCA9PiB4LmFjdGlvblN0YXRlJCk7XG4gIH1cblxuICBnZXQgaXNXb3JraW5nJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5waXBlU3RvcmUoeCA9PiB4LmlzV29ya2luZyQpO1xuICB9XG5cbiAgZ2V0IGlzU3VjY2VzcyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMucGlwZVN0b3JlKHggPT4geC5pc1N1Y2Nlc3MkKTtcbiAgfVxuXG4gIGdldCBpc0Rpc2FibGVkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5waXBlU3RvcmUoeCA9PiB4LmlzRGlzYWJsZWQkKTtcbiAgfVxuXG4gIGdldCBlcnJvckNvdW50U2luY2VMYXN0U3VjY2VzcyQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5waXBlU3RvcmUoeCA9PiB4LmVycm9yQ291bnRTaW5jZUxhc3RTdWNjZXNzJCk7XG4gIH1cblxuICBwdWJsaWMgZW5hYmxlKGtleT86IEFjdGlvbkRpc2FibGVkS2V5LCBlbmFibGUgPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlKGtleSwgIWVuYWJsZSk7XG4gIH1cblxuICBwdWJsaWMgZGlzYWJsZShrZXk/OiBBY3Rpb25EaXNhYmxlZEtleSwgZGlzYWJsZSA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLnVzZVN0b3JlKCh4KSA9PiAoZGlzYWJsZSkgPyB4LmRpc2FibGUoa2V5KSA6IHguZW5hYmxlKGtleSkpO1xuICB9XG5cbiAgcHVibGljIHNldElzTW9kaWZpZWQoaXNNb2RpZmllZD86IGJvb2xlYW4gfCBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgT2JzZXJ2YWJsZTx2b2lkPik6IHZvaWQge1xuICAgIHRoaXMudXNlU3RvcmUoKHgpID0+IHguc2V0SXNNb2RpZmllZChpc01vZGlmaWVkKSk7XG4gIH1cblxuICBwdWJsaWMgdHJpZ2dlcigpOiB2b2lkIHtcbiAgICB0aGlzLnVzZVN0b3JlKCh4KSA9PiB4LnRyaWdnZXIoKSk7XG4gIH1cblxuICBwdWJsaWMgcmVhZHlWYWx1ZSh2YWx1ZTogTWF5YmU8VCB8IE9ic2VydmFibGU8VD4+KTogdm9pZCB7XG4gICAgdGhpcy51c2VTdG9yZSgoeCkgPT4geC5yZWFkeVZhbHVlKHZhbHVlKSk7XG4gIH1cblxuICBwdWJsaWMgc3RhcnRXb3JraW5nKCk6IHZvaWQge1xuICAgIHRoaXMudXNlU3RvcmUoKHgpID0+IHguc3RhcnRXb3JraW5nKCkpO1xuICB9XG5cbiAgcHVibGljIHJlamVjdChlcnJvcjogTWF5YmU8UmVhZGFibGVFcnJvciB8IE9ic2VydmFibGU8UmVhZGFibGVFcnJvcj4+KTogdm9pZCB7XG4gICAgdGhpcy51c2VTdG9yZSgoeCkgPT4geC5yZWplY3QoZXJyb3IpKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWNjZXNzKHZhbHVlOiBPIHwgT2JzZXJ2YWJsZTxPPik6IHZvaWQge1xuICAgIHRoaXMudXNlU3RvcmUoKHgpID0+IHguc3VjY2Vzcyh2YWx1ZSkpO1xuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMudXNlU3RvcmUoKHgpID0+IHgucmVzZXQoKSk7XG4gIH1cblxufVxuXG5leHBvcnQgY29uc3QgYWN0aW9uQ29udGV4dFN0b3JlU291cmNlSW5zdGFuY2VGYWN0b3J5ID0gKHNvdXJjZTogQWN0aW9uQ29udGV4dFN0b3JlU291cmNlKSA9PiB7XG4gIHJldHVybiBuZXcgQWN0aW9uQ29udGV4dFN0b3JlU291cmNlSW5zdGFuY2Uoc291cmNlKTtcbn07XG5cbi8qKlxuICogUHJvdmlkZXMgYW4gQWN0aW9uQ29udGV4dFN0b3JlU291cmNlLCBhcyB3ZWxsIGFzIGFuIEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZUluc3RhbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gUHJvdmlkZUFjdGlvblN0b3JlU291cmNlPFM+KHNvdXJjZVR5cGU6IFR5cGU8Uz4pOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIFt7XG4gICAgcHJvdmlkZTogQWN0aW9uQ29udGV4dFN0b3JlU291cmNlLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IHNvdXJjZVR5cGUpXG4gIH0sXG4gIHtcbiAgICBwcm92aWRlOiBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VJbnN0YW5jZSxcbiAgICB1c2VGYWN0b3J5OiBhY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VJbnN0YW5jZUZhY3RvcnksXG4gICAgZGVwczogW0FjdGlvbkNvbnRleHRTdG9yZVNvdXJjZV1cbiAgfV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBQcm92aWRlU2Vjb25kYXJ5QWN0aW9uU3RvcmVTb3VyY2U8Uz4oc291cmNlVHlwZTogVHlwZTxTPik6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW3tcbiAgICBwcm92aWRlOiBTZWNvbmRhcnlBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2UsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gc291cmNlVHlwZSlcbiAgfSxcbiAgLi4uUHJvdmlkZUFjdGlvblN0b3JlU291cmNlKHNvdXJjZVR5cGUpXG4gIF07XG59XG4iXX0=
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import { AbstractSubscriptionDirective } from '../../../subscription';
|
|
3
|
+
import { distinctUntilChanged, filter } from 'rxjs/operators';
|
|
4
|
+
import { combineLatest } from 'rxjs';
|
|
5
|
+
import { ActionContextStoreSourceInstance } from '../../action.store.source';
|
|
6
|
+
import { Host } from '@angular/core';
|
|
7
|
+
import { BehaviorSubject } from 'rxjs';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "../../action.store.source";
|
|
10
|
+
export class DbNgxActionAutoModifyDirective extends AbstractSubscriptionDirective {
|
|
11
|
+
constructor(source) {
|
|
12
|
+
super();
|
|
13
|
+
this.source = source;
|
|
14
|
+
this._autoModifyEnabled = new BehaviorSubject(true);
|
|
15
|
+
}
|
|
16
|
+
get autoModifyEnabled() {
|
|
17
|
+
return this._autoModifyEnabled.value;
|
|
18
|
+
}
|
|
19
|
+
set autoModifyEnabled(autoModifyEnabled) {
|
|
20
|
+
this._autoModifyEnabled.next(autoModifyEnabled !== 'false');
|
|
21
|
+
}
|
|
22
|
+
ngOnInit() {
|
|
23
|
+
const obs = combineLatest([
|
|
24
|
+
this._autoModifyEnabled.pipe(distinctUntilChanged()),
|
|
25
|
+
this.source.isModified$.pipe(filter(x => !x)) // Only when not modified send a value.
|
|
26
|
+
]);
|
|
27
|
+
this.sub = obs.subscribe(([autoModifyEnabled, isModified]) => {
|
|
28
|
+
if (autoModifyEnabled && !isModified) {
|
|
29
|
+
this.source.setIsModified(true);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
ngOnDestroy() {
|
|
34
|
+
this.source.lockSet.onNextUnlock(() => {
|
|
35
|
+
super.ngOnDestroy();
|
|
36
|
+
this._autoModifyEnabled.complete();
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
DbNgxActionAutoModifyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionAutoModifyDirective, deps: [{ token: i1.ActionContextStoreSourceInstance, host: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
41
|
+
DbNgxActionAutoModifyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: DbNgxActionAutoModifyDirective, selector: "[dbxActionAutoModify]", inputs: { autoModifyEnabled: ["dbxActionAutoModify", "autoModifyEnabled"] }, usesInheritance: true, ngImport: i0 });
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionAutoModifyDirective, decorators: [{
|
|
43
|
+
type: Directive,
|
|
44
|
+
args: [{
|
|
45
|
+
selector: '[dbxActionAutoModify]',
|
|
46
|
+
}]
|
|
47
|
+
}], ctorParameters: function () { return [{ type: i1.ActionContextStoreSourceInstance, decorators: [{
|
|
48
|
+
type: Host
|
|
49
|
+
}] }]; }, propDecorators: { autoModifyEnabled: [{
|
|
50
|
+
type: Input,
|
|
51
|
+
args: ['dbxActionAutoModify']
|
|
52
|
+
}] } });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmF1dG9tb2RpZnkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9hY3Rpb24vZGlyZWN0aXZlL2F1dG8vYWN0aW9uLmF1dG9tb2RpZnkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQUt2QyxNQUFNLE9BQU8sOEJBQXFDLFNBQVEsNkJBQTZCO0lBYXJGLFlBQW9DLE1BQThDO1FBQ2hGLEtBQUssRUFBRSxDQUFDO1FBRDBCLFdBQU0sR0FBTixNQUFNLENBQXdDO1FBWGpFLHVCQUFrQixHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO0lBYXpFLENBQUM7SUFYRCxJQUNJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksaUJBQWlCLENBQUMsaUJBQTBCO1FBQzlDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsaUJBQXdCLEtBQUssT0FBTyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQU1ELFFBQVE7UUFDTixNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUM7WUFDeEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ3BELElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsdUNBQXVDO1NBQ3RGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRTtZQUMzRCxJQUFJLGlCQUFpQixJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNqQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVRLFdBQVc7UUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRTtZQUNwQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7MkhBbkNVLDhCQUE4QjsrR0FBOUIsOEJBQThCOzJGQUE5Qiw4QkFBOEI7a0JBSDFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtpQkFDbEM7OzBCQWNjLElBQUk7NENBUmIsaUJBQWlCO3NCQURwQixLQUFLO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFN1YnNjcmlwdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3N1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWN0aW9uQ29udGV4dFN0b3JlU291cmNlSW5zdGFuY2UgfSBmcm9tICcuLi8uLi9hY3Rpb24uc3RvcmUuc291cmNlJztcbmltcG9ydCB7IEhvc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4QWN0aW9uQXV0b01vZGlmeV0nLFxufSlcbmV4cG9ydCBjbGFzcyBEYk5neEFjdGlvbkF1dG9Nb2RpZnlEaXJlY3RpdmU8VCwgTz4gZXh0ZW5kcyBBYnN0cmFjdFN1YnNjcmlwdGlvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9hdXRvTW9kaWZ5RW5hYmxlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgQElucHV0KCdkYnhBY3Rpb25BdXRvTW9kaWZ5JylcbiAgZ2V0IGF1dG9Nb2RpZnlFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9hdXRvTW9kaWZ5RW5hYmxlZC52YWx1ZTtcbiAgfVxuXG4gIHNldCBhdXRvTW9kaWZ5RW5hYmxlZChhdXRvTW9kaWZ5RW5hYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuX2F1dG9Nb2RpZnlFbmFibGVkLm5leHQoYXV0b01vZGlmeUVuYWJsZWQgYXMgYW55ICE9PSAnZmFsc2UnKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKEBIb3N0KCkgcHVibGljIHJlYWRvbmx5IHNvdXJjZTogQWN0aW9uQ29udGV4dFN0b3JlU291cmNlSW5zdGFuY2U8VCwgTz4pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3Qgb2JzID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLl9hdXRvTW9kaWZ5RW5hYmxlZC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLCAvLyBEb24ndCBjaGFuZ2UgdW5sZXNzIHNwZWNpZmllZCBvdGhlcndpc2UuXG4gICAgICB0aGlzLnNvdXJjZS5pc01vZGlmaWVkJC5waXBlKGZpbHRlcih4ID0+ICF4KSkgLy8gT25seSB3aGVuIG5vdCBtb2RpZmllZCBzZW5kIGEgdmFsdWUuXG4gICAgXSk7XG5cbiAgICB0aGlzLnN1YiA9IG9icy5zdWJzY3JpYmUoKFthdXRvTW9kaWZ5RW5hYmxlZCwgaXNNb2RpZmllZF0pID0+IHtcbiAgICAgIGlmIChhdXRvTW9kaWZ5RW5hYmxlZCAmJiAhaXNNb2RpZmllZCkge1xuICAgICAgICB0aGlzLnNvdXJjZS5zZXRJc01vZGlmaWVkKHRydWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zb3VyY2UubG9ja1NldC5vbk5leHRVbmxvY2soKCkgPT4ge1xuICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgIHRoaXMuX2F1dG9Nb2RpZnlFbmFibGVkLmNvbXBsZXRlKCk7XG4gICAgfSk7XG4gIH1cblxufVxuIl19
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import { AbstractSubscriptionDirective } from '../../../subscription';
|
|
3
|
+
import { debounce, distinctUntilChanged, exhaustMap, filter, first, map, mergeMap, shareReplay, switchMap, throttle } from 'rxjs/operators';
|
|
4
|
+
import { EMPTY, interval, Subject, combineLatest } from 'rxjs';
|
|
5
|
+
import { ActionContextStoreSourceInstance } from '../../action.store.source';
|
|
6
|
+
import { Host } from '@angular/core';
|
|
7
|
+
import { BehaviorSubject } from 'rxjs';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "../../action.store.source";
|
|
10
|
+
const DEFAULT_DEBOUNCE_MS = 2 * 1000;
|
|
11
|
+
const DEFAULT_THROTTLE_MS = 10 * 1000;
|
|
12
|
+
const DEFAULT_ERROR_THROTTLE_MS = 3 * 1000;
|
|
13
|
+
const MAX_ERRORS_TO_THROTTLE_ON = 6;
|
|
14
|
+
/**
|
|
15
|
+
* Extension of DbNgxActionTransitionSafetyDirective that automatically triggers the action periodically when it is in a modified state.
|
|
16
|
+
*/
|
|
17
|
+
export class DbNgxActionAutoTriggerDirective extends AbstractSubscriptionDirective {
|
|
18
|
+
constructor(source) {
|
|
19
|
+
super();
|
|
20
|
+
this.source = source;
|
|
21
|
+
this._triggerEnabled = new BehaviorSubject(true);
|
|
22
|
+
this.triggerDebounce = DEFAULT_DEBOUNCE_MS;
|
|
23
|
+
this.triggerThrottle = DEFAULT_THROTTLE_MS;
|
|
24
|
+
this.triggerErrorThrottle = DEFAULT_ERROR_THROTTLE_MS;
|
|
25
|
+
this.maxErrorsForThrottle = MAX_ERRORS_TO_THROTTLE_ON;
|
|
26
|
+
this._triggerLimit = new BehaviorSubject(undefined);
|
|
27
|
+
this._trigger = new Subject();
|
|
28
|
+
this._triggerCount = 0;
|
|
29
|
+
this._errorCount$ = this.source.errorCountSinceLastSuccess$;
|
|
30
|
+
this._triggerCount$ = this.source.isModifiedAndCanTriggerUpdates$.pipe(filter(() => this.isEnabled), filter((x) => x), debounce(() => interval(this.triggerDebounce)), throttle(() => this._errorCount$.pipe(first(), exhaustMap((count) => interval(this.triggerThrottle + (Math.min(count, this.maxErrorsForThrottle) * this.triggerErrorThrottle)))), { leading: true, trailing: true }),
|
|
31
|
+
// Check again for the "trailing" piece.
|
|
32
|
+
filter(() => this.isEnabled), mergeMap(() => this.source.isModifiedAndCanTrigger$.pipe(first())), filter((x) => x), map(() => this._triggerCount += 1), shareReplay(1));
|
|
33
|
+
/**
|
|
34
|
+
* Observable for the trigger mechanism.
|
|
35
|
+
*/
|
|
36
|
+
this.triggerCount$ = this._triggerEnabled.pipe(switchMap((enabled) => {
|
|
37
|
+
if (enabled) {
|
|
38
|
+
return this._triggerCount$;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
return EMPTY;
|
|
42
|
+
}
|
|
43
|
+
}));
|
|
44
|
+
this._isTriggerLimited$ = combineLatest([this.triggerCount$, this._triggerLimit]).pipe(map(([triggerCount, limit]) => [triggerCount, ((limit) ? (triggerCount > limit) : false)]), shareReplay(1));
|
|
45
|
+
this.isTriggerLimited$ = this._isTriggerLimited$.pipe(map(x => x[1]));
|
|
46
|
+
this.trigger$ = this._isTriggerLimited$.pipe(filter(x => !x[1]), distinctUntilChanged((a, b) => a[0] === b[0]), // Only trigger when the count changes.
|
|
47
|
+
map(() => undefined));
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* How much to throttle the auto-triggering.
|
|
51
|
+
*/
|
|
52
|
+
get triggerEnabled() {
|
|
53
|
+
return this._triggerEnabled.value;
|
|
54
|
+
}
|
|
55
|
+
set triggerEnabled(triggerEnabled) {
|
|
56
|
+
triggerEnabled = triggerEnabled !== false; // Default to true
|
|
57
|
+
if (this.triggerEnabled !== triggerEnabled) {
|
|
58
|
+
this._triggerEnabled.next(triggerEnabled);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Optional input to override both triggerDebounce and triggerThrottle.
|
|
63
|
+
*
|
|
64
|
+
* Used in forms that are simple.
|
|
65
|
+
*/
|
|
66
|
+
set fastTrigger(fastTrigger) {
|
|
67
|
+
if (fastTrigger) {
|
|
68
|
+
this.triggerDebounce = 200;
|
|
69
|
+
this.triggerThrottle = 500;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Optional input to override both triggerDebounce and triggerThrottle to be 0.
|
|
74
|
+
*
|
|
75
|
+
* Used in forms that generally return a single value.
|
|
76
|
+
*/
|
|
77
|
+
set instantTrigger(instantTrigger) {
|
|
78
|
+
if (instantTrigger) {
|
|
79
|
+
this.triggerDebounce = 10;
|
|
80
|
+
this.triggerThrottle = 0;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
get triggerLimit() {
|
|
84
|
+
return this._triggerLimit.value;
|
|
85
|
+
}
|
|
86
|
+
set triggerLimit(triggerLimit) {
|
|
87
|
+
triggerLimit = triggerLimit || 0;
|
|
88
|
+
this._triggerLimit.next(triggerLimit);
|
|
89
|
+
}
|
|
90
|
+
get isEnabled() {
|
|
91
|
+
return this.triggerEnabled !== false;
|
|
92
|
+
}
|
|
93
|
+
ngOnInit() {
|
|
94
|
+
this.sub = this.trigger$.subscribe(() => {
|
|
95
|
+
this.source.trigger();
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
ngOnDestroy() {
|
|
99
|
+
this.source.lockSet.onNextUnlock(() => {
|
|
100
|
+
super.ngOnDestroy();
|
|
101
|
+
this._trigger.complete();
|
|
102
|
+
this._triggerLimit.complete();
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
DbNgxActionAutoTriggerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionAutoTriggerDirective, deps: [{ token: i1.ActionContextStoreSourceInstance, host: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
107
|
+
DbNgxActionAutoTriggerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: DbNgxActionAutoTriggerDirective, selector: "[dbxActionAutoTrigger]", inputs: { triggerEnabled: ["dbxActionAutoTrigger", "triggerEnabled"], triggerDebounce: "triggerDebounce", triggerThrottle: "triggerThrottle", triggerErrorThrottle: "triggerErrorThrottle", fastTrigger: "fastTrigger", instantTrigger: "instantTrigger", triggerLimit: "triggerLimit" }, usesInheritance: true, ngImport: i0 });
|
|
108
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionAutoTriggerDirective, decorators: [{
|
|
109
|
+
type: Directive,
|
|
110
|
+
args: [{
|
|
111
|
+
selector: '[dbxActionAutoTrigger]',
|
|
112
|
+
}]
|
|
113
|
+
}], ctorParameters: function () { return [{ type: i1.ActionContextStoreSourceInstance, decorators: [{
|
|
114
|
+
type: Host
|
|
115
|
+
}] }]; }, propDecorators: { triggerEnabled: [{
|
|
116
|
+
type: Input,
|
|
117
|
+
args: ['dbxActionAutoTrigger']
|
|
118
|
+
}], triggerDebounce: [{
|
|
119
|
+
type: Input
|
|
120
|
+
}], triggerThrottle: [{
|
|
121
|
+
type: Input
|
|
122
|
+
}], triggerErrorThrottle: [{
|
|
123
|
+
type: Input
|
|
124
|
+
}], fastTrigger: [{
|
|
125
|
+
type: Input
|
|
126
|
+
}], instantTrigger: [{
|
|
127
|
+
type: Input
|
|
128
|
+
}], triggerLimit: [{
|
|
129
|
+
type: Input
|
|
130
|
+
}] } });
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmF1dG90cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvYWN0aW9uL2RpcmVjdGl2ZS9hdXRvL2FjdGlvbi5hdXRvdHJpZ2dlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVJLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0QsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0UsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFHdkMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBRXJDLE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQUV0QyxNQUFNLHlCQUF5QixHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7QUFFM0MsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLENBQUM7QUFFcEM7O0dBRUc7QUFJSCxNQUFNLE9BQU8sK0JBQXNDLFNBQVEsNkJBQTZCO0lBbUh0RixZQUFvQyxNQUE4QztRQUNoRixLQUFLLEVBQUUsQ0FBQztRQUQwQixXQUFN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SSxZQUFZLENBQUMsWUFBMkI7UUFDMUMsWUFBWSxHQUFHLFlBQVksSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQXNERCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxjQUFjLEtBQUssS0FBSyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUSxXQUFXO1FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUU7WUFDcEMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzRIQXZJVSwrQkFBK0I7Z0hBQS9CLCtCQUErQjsyRkFBL0IsK0JBQStCO2tCQUgzQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7aUJBQ25DOzswQkFvSGMsSUFBSTs0Q0EzR2IsY0FBYztzQkFEakIsS0FBSzt1QkFBQyxzQkFBc0I7Z0JBYzdCLGVBQWU7c0JBRGQsS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBSU4sb0JBQW9CO3NCQURuQixLQUFLO2dCQVdGLFdBQVc7c0JBRGQsS0FBSztnQkFjRixjQUFjO3NCQURqQixLQUFLO2dCQVNGLFlBQVk7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFN1YnNjcmlwdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3N1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBkZWJvdW5jZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGV4aGF1c3RNYXAsIGZpbHRlciwgZmlyc3QsIG1hcCwgbWVyZ2VNYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRocm90dGxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRU1QVFksIGludGVydmFsLCBTdWJqZWN0LCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VJbnN0YW5jZSB9IGZyb20gJy4uLy4uL2FjdGlvbi5zdG9yZS5zb3VyY2UnO1xuaW1wb3J0IHsgSG9zdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuXG5jb25zdCBERUZBVUxUX0RFQk9VTkNFX01TID0gMiAqIDEwMDA7XG5cbmNvbnN0IERFRkFVTFRfVEhST1RUTEVfTVMgPSAxMCAqIDEwMDA7XG5cbmNvbnN0IERFRkFVTFRfRVJST1JfVEhST1RUTEVfTVMgPSAzICogMTAwMDtcblxuY29uc3QgTUFYX0VSUk9SU19UT19USFJPVFRMRV9PTiA9IDY7XG5cbi8qKlxuICogRXh0ZW5zaW9uIG9mIERiTmd4QWN0aW9uVHJhbnNpdGlvblNhZmV0eURpcmVjdGl2ZSB0aGF0IGF1dG9tYXRpY2FsbHkgdHJpZ2dlcnMgdGhlIGFjdGlvbiBwZXJpb2RpY2FsbHkgd2hlbiBpdCBpcyBpbiBhIG1vZGlmaWVkIHN0YXRlLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4QWN0aW9uQXV0b1RyaWdnZXJdJyxcbn0pXG5leHBvcnQgY2xhc3MgRGJOZ3hBY3Rpb25BdXRvVHJpZ2dlckRpcmVjdGl2ZTxULCBPPiBleHRlbmRzIEFic3RyYWN0U3Vic2NyaXB0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX3RyaWdnZXJFbmFibGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcblxuICAvKipcbiAgICogSG93IG11Y2ggdG8gdGhyb3R0bGUgdGhlIGF1dG8tdHJpZ2dlcmluZy5cbiAgICovXG4gIEBJbnB1dCgnZGJ4QWN0aW9uQXV0b1RyaWdnZXInKVxuICBnZXQgdHJpZ2dlckVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyaWdnZXJFbmFibGVkLnZhbHVlO1xuICB9XG5cbiAgc2V0IHRyaWdnZXJFbmFibGVkKHRyaWdnZXJFbmFibGVkOiBib29sZWFuKSB7XG4gICAgdHJpZ2dlckVuYWJsZWQgPSB0cmlnZ2VyRW5hYmxlZCAhPT0gZmFsc2U7ICAvLyBEZWZhdWx0IHRvIHRydWVcblxuICAgIGlmICh0aGlzLnRyaWdnZXJFbmFibGVkICE9PSB0cmlnZ2VyRW5hYmxlZCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVuYWJsZWQubmV4dCh0cmlnZ2VyRW5hYmxlZCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgdHJpZ2dlckRlYm91bmNlID0gREVGQVVMVF9ERUJPVU5DRV9NUztcblxuICBASW5wdXQoKVxuICB0cmlnZ2VyVGhyb3R0bGUgPSBERUZBVUxUX1RIUk9UVExFX01TO1xuXG4gIEBJbnB1dCgpXG4gIHRyaWdnZXJFcnJvclRocm90dGxlID0gREVGQVVMVF9FUlJPUl9USFJPVFRMRV9NUztcblxuICBtYXhFcnJvcnNGb3JUaHJvdHRsZSA9IE1BWF9FUlJPUlNfVE9fVEhST1RUTEVfT047XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGlucHV0IHRvIG92ZXJyaWRlIGJvdGggdHJpZ2dlckRlYm91bmNlIGFuZCB0cmlnZ2VyVGhyb3R0bGUuXG4gICAqXG4gICAqIFVzZWQgaW4gZm9ybXMgdGhhdCBhcmUgc2ltcGxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGZhc3RUcmlnZ2VyKGZhc3RUcmlnZ2VyOiBib29sZWFuKSB7XG4gICAgaWYgKGZhc3RUcmlnZ2VyKSB7XG4gICAgICB0aGlzLnRyaWdnZXJEZWJvdW5jZSA9IDIwMDtcbiAgICAgIHRoaXMudHJpZ2dlclRocm90dGxlID0gNTAwO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBpbnB1dCB0byBvdmVycmlkZSBib3RoIHRyaWdnZXJEZWJvdW5jZSBhbmQgdHJpZ2dlclRocm90dGxlIHRvIGJlIDAuXG4gICAqXG4gICAqIFVzZWQgaW4gZm9ybXMgdGhhdCBnZW5lcmFsbHkgcmV0dXJuIGEgc2luZ2xlIHZhbHVlLlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGluc3RhbnRUcmlnZ2VyKGluc3RhbnRUcmlnZ2VyOiBib29sZWFuKSB7XG4gICAgaWYgKGluc3RhbnRUcmlnZ2VyKSB7XG4gICAgICB0aGlzLnRyaWdnZXJEZWJvdW5jZSA9IDEwO1xuICAgICAgdGhpcy50cmlnZ2VyVGhyb3R0bGUgPSAwO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCB0cmlnZ2VyTGltaXQoKTogTWF5YmU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyaWdnZXJMaW1pdC52YWx1ZTtcbiAgfVxuXG4gIHNldCB0cmlnZ2VyTGltaXQodHJpZ2dlckxpbWl0OiBNYXliZTxudW1iZXI+KSB7XG4gICAgdHJpZ2dlckxpbWl0ID0gdHJpZ2dlckxpbWl0IHx8IDA7XG4gICAgdGhpcy5fdHJpZ2dlckxpbWl0Lm5leHQodHJpZ2dlckxpbWl0KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3RyaWdnZXJMaW1pdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcml2YXRlIHJlYWRvbmx5IF90cmlnZ2VyID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuICBwcml2YXRlIF90cmlnZ2VyQ291bnQgPSAwO1xuXG4gIHJlYWRvbmx5IF9lcnJvckNvdW50JCA9IHRoaXMuc291cmNlLmVycm9yQ291bnRTaW5jZUxhc3RTdWNjZXNzJDtcblxuICByZWFkb25seSBfdHJpZ2dlckNvdW50JCA9IHRoaXMuc291cmNlLmlzTW9kaWZpZWRBbmRDYW5UcmlnZ2VyVXBkYXRlcyQucGlwZShcbiAgICBmaWx0ZXIoKCkgPT4gdGhpcy5pc0VuYWJsZWQpLFxuICAgIGZpbHRlcigoeCkgPT4geCksXG4gICAgZGVib3VuY2UoKCkgPT4gaW50ZXJ2YWwodGhpcy50cmlnZ2VyRGVib3VuY2UpKSxcbiAgICB0aHJvdHRsZSgoKSA9PiB0aGlzLl9lcnJvckNvdW50JC5waXBlKFxuICAgICAgZmlyc3QoKSxcbiAgICAgIGV4aGF1c3RNYXAoKGNvdW50KSA9PiBpbnRlcnZhbCh0aGlzLnRyaWdnZXJUaHJvdHRsZSArIChNYXRoLm1pbihjb3VudCwgdGhpcy5tYXhFcnJvcnNGb3JUaHJvdHRsZSkgKiB0aGlzLnRyaWdnZXJFcnJvclRocm90dGxlKSkpXG4gICAgKSwgeyBsZWFkaW5nOiB0cnVlLCB0cmFpbGluZzogdHJ1ZSB9KSxcbiAgICAvLyBDaGVjayBhZ2FpbiBmb3IgdGhlIFwidHJhaWxpbmdcIiBwaWVjZS5cbiAgICBmaWx0ZXIoKCkgPT4gdGhpcy5pc0VuYWJsZWQpLFxuICAgIG1lcmdlTWFwKCgpID0+IHRoaXMuc291cmNlLmlzTW9kaWZpZWRBbmRDYW5UcmlnZ2VyJC5waXBlKGZpcnN0KCkpKSxcbiAgICBmaWx0ZXIoKHgpID0+IHgpLFxuICAgIG1hcCgoKSA9PiB0aGlzLl90cmlnZ2VyQ291bnQgKz0gMSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSBmb3IgdGhlIHRyaWdnZXIgbWVjaGFuaXNtLlxuICAgKi9cbiAgcmVhZG9ubHkgdHJpZ2dlckNvdW50JCA9IHRoaXMuX3RyaWdnZXJFbmFibGVkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChlbmFibGVkKSA9PiB7XG4gICAgICBpZiAoZW5hYmxlZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHJpZ2dlckNvdW50JDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgIH1cbiAgICB9KVxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2lzVHJpZ2dlckxpbWl0ZWQkOiBPYnNlcnZhYmxlPFtudW1iZXIsIGJvb2xlYW5dPiA9XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy50cmlnZ2VyQ291bnQkLCB0aGlzLl90cmlnZ2VyTGltaXRdKS5waXBlKFxuICAgICAgbWFwKChbdHJpZ2dlckNvdW50LCBsaW1pdF0pID0+IFt0cmlnZ2VyQ291bnQsICgobGltaXQpID8gKHRyaWdnZXJDb3VudCA+IGxpbWl0KSA6IGZhbHNlKV0gYXMgW251bWJlciwgYm9vbGVhbl0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gIHJlYWRvbmx5IGlzVHJpZ2dlckxpbWl0ZWQkID0gdGhpcy5faXNUcmlnZ2VyTGltaXRlZCQucGlwZShtYXAoeCA9PiB4WzFdKSk7XG4gIHJlYWRvbmx5IHRyaWdnZXIkOiBPYnNlcnZhYmxlPHZvaWQ+ID0gdGhpcy5faXNUcmlnZ2VyTGltaXRlZCQucGlwZShcbiAgICBmaWx0ZXIoeCA9PiAheFsxXSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGFbMF0gPT09IGJbMF0pLCAgICAvLyBPbmx5IHRyaWdnZXIgd2hlbiB0aGUgY291bnQgY2hhbmdlcy5cbiAgICBtYXAoKCkgPT4gdW5kZWZpbmVkIGFzIHZvaWQpXG4gICk7XG5cbiAgY29uc3RydWN0b3IoQEhvc3QoKSBwdWJsaWMgcmVhZG9ubHkgc291cmNlOiBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VJbnN0YW5jZTxULCBPPikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBnZXQgaXNFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRyaWdnZXJFbmFibGVkICE9PSBmYWxzZTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViID0gdGhpcy50cmlnZ2VyJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zb3VyY2UudHJpZ2dlcigpO1xuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zb3VyY2UubG9ja1NldC5vbk5leHRVbmxvY2soKCkgPT4ge1xuICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgIHRoaXMuX3RyaWdnZXIuY29tcGxldGUoKTtcbiAgICAgIHRoaXMuX3RyaWdnZXJMaW1pdC5jb21wbGV0ZSgpO1xuICAgIH0pO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { ActionContextStoreSourceInstance } from '../../action.store.source';
|
|
2
|
+
import { switchMap, mergeMap, map, withLatestFrom, shareReplay } from 'rxjs/operators';
|
|
3
|
+
import { Directive, Host, Input } from '@angular/core';
|
|
4
|
+
import { BehaviorSubject, Observable, of, EMPTY } from 'rxjs';
|
|
5
|
+
import { hasValueOrNotEmpty } from '@dereekb/util';
|
|
6
|
+
import { SubscriptionObject } from '@dereekb/rxjs';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "../../action.store.source";
|
|
9
|
+
/**
|
|
10
|
+
* Directive that watches an observable for changes and sets the new value and modified states as necessary.
|
|
11
|
+
*/
|
|
12
|
+
export class DbNgxActionAutoTriggerValueDirective {
|
|
13
|
+
constructor(source) {
|
|
14
|
+
this.source = source;
|
|
15
|
+
this._valueObs = new BehaviorSubject(EMPTY);
|
|
16
|
+
this._isModifiedFn = new BehaviorSubject(undefined);
|
|
17
|
+
this._modifiedSub = new SubscriptionObject();
|
|
18
|
+
this._triggerSub = new SubscriptionObject();
|
|
19
|
+
this.modifiedValue$ = this._valueObs.pipe(switchMap((obs) => obs.pipe(withLatestFrom(this._isModifiedFn), mergeMap(([value, dbxActionAutoTriggerModified]) => {
|
|
20
|
+
let result;
|
|
21
|
+
if (dbxActionAutoTriggerModified) {
|
|
22
|
+
result = dbxActionAutoTriggerModified(value).pipe(map((isModified) => [isModified, value]));
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
result = of([true, value]);
|
|
26
|
+
}
|
|
27
|
+
return result;
|
|
28
|
+
}), shareReplay(1))));
|
|
29
|
+
}
|
|
30
|
+
set dbxActionAutoTriggerValue(dbxActionAutoTriggerValue) {
|
|
31
|
+
this._valueObs.next(dbxActionAutoTriggerValue);
|
|
32
|
+
}
|
|
33
|
+
set dbxActionAutoTriggerModifiedNonEmptyValue(requireNonEmpty) {
|
|
34
|
+
if (requireNonEmpty) {
|
|
35
|
+
this.dbxActionAutoTriggerModified = (value) => {
|
|
36
|
+
return of(hasValueOrNotEmpty(value));
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
set dbxActionAutoTriggerModified(dbxActionAutoTriggerModified) {
|
|
41
|
+
this._isModifiedFn.next(dbxActionAutoTriggerModified);
|
|
42
|
+
}
|
|
43
|
+
ngOnInit() {
|
|
44
|
+
// Update Modified value.
|
|
45
|
+
this._modifiedSub.subscription = this.modifiedValue$.subscribe(([isModified, value]) => {
|
|
46
|
+
this.source.setIsModified(isModified);
|
|
47
|
+
});
|
|
48
|
+
// Set the value on triggers.
|
|
49
|
+
this._triggerSub.subscription = this.source.triggered$.pipe(mergeMap(x => this.modifiedValue$)).subscribe(([isModified, value]) => {
|
|
50
|
+
this.source.readyValue(value);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
ngOnDestroy() {
|
|
54
|
+
this.source.lockSet.onNextUnlock(() => {
|
|
55
|
+
this._isModifiedFn.complete();
|
|
56
|
+
this._valueObs.complete();
|
|
57
|
+
this._modifiedSub.destroy();
|
|
58
|
+
this._triggerSub.destroy();
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
DbNgxActionAutoTriggerValueDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionAutoTriggerValueDirective, deps: [{ token: i1.ActionContextStoreSourceInstance, host: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
63
|
+
DbNgxActionAutoTriggerValueDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: DbNgxActionAutoTriggerValueDirective, selector: "[dbxActionAutoTriggerValue]", inputs: { dbxActionAutoTriggerValue: "dbxActionAutoTriggerValue", dbxActionAutoTriggerModifiedNonEmptyValue: "dbxActionAutoTriggerModifiedNonEmptyValue", dbxActionAutoTriggerModified: "dbxActionAutoTriggerModified" }, ngImport: i0 });
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionAutoTriggerValueDirective, decorators: [{
|
|
65
|
+
type: Directive,
|
|
66
|
+
args: [{
|
|
67
|
+
selector: '[dbxActionAutoTriggerValue]',
|
|
68
|
+
}]
|
|
69
|
+
}], ctorParameters: function () { return [{ type: i1.ActionContextStoreSourceInstance, decorators: [{
|
|
70
|
+
type: Host
|
|
71
|
+
}] }]; }, propDecorators: { dbxActionAutoTriggerValue: [{
|
|
72
|
+
type: Input,
|
|
73
|
+
args: ['dbxActionAutoTriggerValue']
|
|
74
|
+
}], dbxActionAutoTriggerModifiedNonEmptyValue: [{
|
|
75
|
+
type: Input
|
|
76
|
+
}], dbxActionAutoTriggerModified: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}] } });
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmF1dG90cmlnZ2VyLnZhbHVlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvYWN0aW9uL2RpcmVjdGl2ZS9hdXRvL2FjdGlvbi5hdXRvdHJpZ2dlci52YWx1ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFJbkQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sb0NBQW9DO0lBK0MvQyxZQUFvQyxNQUE4QztRQUE5QyxXQUFNLEdBQU4sTUFBTSxDQUF3QztRQTdDMUUsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFnQixLQUFLLENBQUMsQ0FBQztRQUN0RCxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUErQyxTQUFTLENBQUMsQ0FBQztRQUU3RixpQkFBWSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUN4QyxnQkFBVyxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQXFCdEMsbUJBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDM0MsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVB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QWN0aW9uQ29udGV4dFN0b3JlU291cmNlSW5zdGFuY2UgfSBmcm9tICcuLi8uLi9hY3Rpb24uc3RvcmUuc291cmNlJztcbmltcG9ydCB7IHN3aXRjaE1hcCwgbWVyZ2VNYXAsIG1hcCwgd2l0aExhdGVzdEZyb20sIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCBFTVBUWSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBoYXNWYWx1ZU9yTm90RW1wdHksIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb25PYmplY3QgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcblxuZXhwb3J0IHR5cGUgRGJOZ3hBY3Rpb25BdXRvVHJpZ2dlcklzTW9kaWZpZWRGbjxUPiA9ICh2YWx1ZTogVCkgPT4gT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuLyoqXG4gKiBEaXJlY3RpdmUgdGhhdCB3YXRjaGVzIGFuIG9ic2VydmFibGUgZm9yIGNoYW5nZXMgYW5kIHNldHMgdGhlIG5ldyB2YWx1ZSBhbmQgbW9kaWZpZWQgc3RhdGVzIGFzIG5lY2Vzc2FyeS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RieEFjdGlvbkF1dG9UcmlnZ2VyVmFsdWVdJyxcbn0pXG5leHBvcnQgY2xhc3MgRGJOZ3hBY3Rpb25BdXRvVHJpZ2dlclZhbHVlRGlyZWN0aXZlPFQsIE8+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX3ZhbHVlT2JzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxPYnNlcnZhYmxlPFQ+PihFTVBUWSk7XG4gIHByaXZhdGUgX2lzTW9kaWZpZWRGbiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8RGJOZ3hBY3Rpb25BdXRvVHJpZ2dlcklzTW9kaWZpZWRGbjxUPj4+KHVuZGVmaW5lZCk7XG5cbiAgcHJpdmF0ZSBfbW9kaWZpZWRTdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG4gIHByaXZhdGUgX3RyaWdnZXJTdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG5cbiAgQElucHV0KCdkYnhBY3Rpb25BdXRvVHJpZ2dlclZhbHVlJylcbiAgc2V0IGRieEFjdGlvbkF1dG9UcmlnZ2VyVmFsdWUoZGJ4QWN0aW9uQXV0b1RyaWdnZXJWYWx1ZTogT2JzZXJ2YWJsZTxUPikge1xuICAgIHRoaXMuX3ZhbHVlT2JzLm5leHQoZGJ4QWN0aW9uQXV0b1RyaWdnZXJWYWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgZGJ4QWN0aW9uQXV0b1RyaWdnZXJNb2RpZmllZE5vbkVtcHR5VmFsdWUocmVxdWlyZU5vbkVtcHR5OiBib29sZWFuKSB7XG4gICAgaWYgKHJlcXVpcmVOb25FbXB0eSkge1xuICAgICAgdGhpcy5kYnhBY3Rpb25BdXRvVHJpZ2dlck1vZGlmaWVkID0gKHZhbHVlKSA9PiB7XG4gICAgICAgIHJldHVybiBvZihoYXNWYWx1ZU9yTm90RW1wdHkodmFsdWUpKTtcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGRieEFjdGlvbkF1dG9UcmlnZ2VyTW9kaWZpZWQoZGJ4QWN0aW9uQXV0b1RyaWdnZXJNb2RpZmllZDogRGJOZ3hBY3Rpb25BdXRvVHJpZ2dlcklzTW9kaWZpZWRGbjxUPikge1xuICAgIHRoaXMuX2lzTW9kaWZpZWRGbi5uZXh0KGRieEFjdGlvbkF1dG9UcmlnZ2VyTW9kaWZpZWQpO1xuICB9XG5cbiAgcmVhZG9ubHkgbW9kaWZpZWRWYWx1ZSQgPSB0aGlzLl92YWx1ZU9icy5waXBlKFxuICAgIHN3aXRjaE1hcCgob2JzKSA9PiBvYnMucGlwZShcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuX2lzTW9kaWZpZWRGbiksXG4gICAgICBtZXJnZU1hcCgoW3ZhbHVlLCBkYnhBY3Rpb25BdXRvVHJpZ2dlck1vZGlmaWVkXSkgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0OiBPYnNlcnZhYmxlPFtib29sZWFuLCBUXT47XG5cbiAgICAgICAgaWYgKGRieEFjdGlvbkF1dG9UcmlnZ2VyTW9kaWZpZWQpIHtcbiAgICAgICAgICByZXN1bHQgPSBkYnhBY3Rpb25BdXRvVHJpZ2dlck1vZGlmaWVkKHZhbHVlKS5waXBlKFxuICAgICAgICAgICAgbWFwKChpc01vZGlmaWVkKSA9PiBbaXNNb2RpZmllZCwgdmFsdWVdIGFzIFtib29sZWFuLCBUXSlcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IG9mKFt0cnVlLCB2YWx1ZV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKEBIb3N0KCkgcHVibGljIHJlYWRvbmx5IHNvdXJjZTogQWN0aW9uQ29udGV4dFN0b3JlU291cmNlSW5zdGFuY2U8VCwgTz4pIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFVwZGF0ZSBNb2RpZmllZCB2YWx1ZS5cbiAgICB0aGlzLl9tb2RpZmllZFN1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLm1vZGlmaWVkVmFsdWUkLnN1YnNjcmliZSgoW2lzTW9kaWZpZWQsIHZhbHVlXSkgPT4ge1xuICAgICAgdGhpcy5zb3VyY2Uuc2V0SXNNb2RpZmllZChpc01vZGlmaWVkKTtcbiAgICB9KTtcblxuICAgIC8vIFNldCB0aGUgdmFsdWUgb24gdHJpZ2dlcnMuXG4gICAgdGhpcy5fdHJpZ2dlclN1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLnNvdXJjZS50cmlnZ2VyZWQkLnBpcGUoXG4gICAgICBtZXJnZU1hcCh4ID0+IHRoaXMubW9kaWZpZWRWYWx1ZSQpXG4gICAgKS5zdWJzY3JpYmUoKFtpc01vZGlmaWVkLCB2YWx1ZV0pID0+IHtcbiAgICAgIHRoaXMuc291cmNlLnJlYWR5VmFsdWUodmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zb3VyY2UubG9ja1NldC5vbk5leHRVbmxvY2soKCkgPT4ge1xuICAgICAgdGhpcy5faXNNb2RpZmllZEZuLmNvbXBsZXRlKCk7XG4gICAgICB0aGlzLl92YWx1ZU9icy5jb21wbGV0ZSgpO1xuICAgICAgdGhpcy5fbW9kaWZpZWRTdWIuZGVzdHJveSgpO1xuICAgICAgdGhpcy5fdHJpZ2dlclN1Yi5kZXN0cm95KCk7XG4gICAgfSk7XG4gIH1cblxufVxuIl19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './action.automodify.directive';
|
|
2
|
+
export * from './action.autotrigger.directive';
|
|
3
|
+
export * from './action.autotrigger.value.directive';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2FjdGlvbi9kaXJlY3RpdmUvYXV0by9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxzQ0FBc0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWN0aW9uLmF1dG9tb2RpZnkuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uLmF1dG90cmlnZ2VyLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbi5hdXRvdHJpZ2dlci52YWx1ZS5kaXJlY3RpdmUnO1xuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { ProvideActionStoreSource } from '../../action.store.source';
|
|
3
|
+
import { DbNgxActionContextDirective } from './action.directive';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class DbNgxActionComponent extends DbNgxActionContextDirective {
|
|
6
|
+
}
|
|
7
|
+
DbNgxActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
8
|
+
DbNgxActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: DbNgxActionComponent, selector: "dbx-action", providers: ProvideActionStoreSource(DbNgxActionComponent), exportAs: ["action"], usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionComponent, decorators: [{
|
|
10
|
+
type: Component,
|
|
11
|
+
args: [{
|
|
12
|
+
selector: 'dbx-action',
|
|
13
|
+
exportAs: 'action',
|
|
14
|
+
template: '<ng-content></ng-content>',
|
|
15
|
+
providers: ProvideActionStoreSource(DbNgxActionComponent)
|
|
16
|
+
}]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvYWN0aW9uL2RpcmVjdGl2ZS9jb250ZXh0L2FjdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFTakUsTUFBTSxPQUFPLG9CQUF1QyxTQUFRLDJCQUFpQzs7aUhBQWhGLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHFDQUZwQix3QkFBd0IsQ0FBQyxvQkFBb0IsQ0FBQyx1RUFGL0MsMkJBQTJCOzJGQUkxQixvQkFBb0I7a0JBUGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFFBQVEsRUFBRSxRQUFRO29CQUNsQixRQUFRLEVBQUUsMkJBQTJCO29CQUVyQyxTQUFTLEVBQUUsd0JBQXdCLHNCQUFzQjtpQkFDMUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb3ZpZGVBY3Rpb25TdG9yZVNvdXJjZSB9IGZyb20gJy4uLy4uL2FjdGlvbi5zdG9yZS5zb3VyY2UnO1xuaW1wb3J0IHsgRGJOZ3hBY3Rpb25Db250ZXh0RGlyZWN0aXZlIH0gZnJvbSAnLi9hY3Rpb24uZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWFjdGlvbicsXG4gIGV4cG9ydEFzOiAnYWN0aW9uJyxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgXG4gIHByb3ZpZGVyczogUHJvdmlkZUFjdGlvblN0b3JlU291cmNlKERiTmd4QWN0aW9uQ29tcG9uZW50KVxufSlcbmV4cG9ydCBjbGFzcyBEYk5neEFjdGlvbkNvbXBvbmVudDxUID0gYW55LCBPID0gYW55PiBleHRlbmRzIERiTmd4QWN0aW9uQ29udGV4dERpcmVjdGl2ZTxULCBPPiAgeyB9XG4iXX0=
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Directive, Optional, Host } from '@angular/core';
|
|
2
|
+
import { ProvideActionStoreSource, SecondaryActionContextStoreSource } from '../../action.store.source';
|
|
3
|
+
import { ActionContextBaseSource } from '../../action.holder';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../action.store.source";
|
|
6
|
+
/**
|
|
7
|
+
* Provides an DbNgxActionContext.
|
|
8
|
+
*/
|
|
9
|
+
export class DbNgxActionContextDirective extends ActionContextBaseSource {
|
|
10
|
+
constructor(inputSource) {
|
|
11
|
+
super(inputSource);
|
|
12
|
+
}
|
|
13
|
+
ngOnDestroy() {
|
|
14
|
+
this.lockSet.destroyOnNextUnlock(() => {
|
|
15
|
+
this.destroy();
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
DbNgxActionContextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionContextDirective, deps: [{ token: i1.SecondaryActionContextStoreSource, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
20
|
+
DbNgxActionContextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: DbNgxActionContextDirective, selector: "[dbxActionContext]", providers: ProvideActionStoreSource(DbNgxActionContextDirective), exportAs: ["action"], usesInheritance: true, ngImport: i0 });
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionContextDirective, decorators: [{
|
|
22
|
+
type: Directive,
|
|
23
|
+
args: [{
|
|
24
|
+
selector: '[dbxActionContext]',
|
|
25
|
+
exportAs: 'action',
|
|
26
|
+
providers: ProvideActionStoreSource(DbNgxActionContextDirective)
|
|
27
|
+
}]
|
|
28
|
+
}], ctorParameters: function () { return [{ type: i1.SecondaryActionContextStoreSource, decorators: [{
|
|
29
|
+
type: Optional
|
|
30
|
+
}, {
|
|
31
|
+
type: Host
|
|
32
|
+
}] }]; } });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvYWN0aW9uL2RpcmVjdGl2ZS9jb250ZXh0L2FjdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQWEsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFFOUQ7O0dBRUc7QUFNSCxNQUFNLE9BQU8sMkJBQThDLFNBQVEsdUJBQXVCO0lBRXhGLFlBQWdDLFdBQThDO1FBQzVFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O3dIQVZVLDJCQUEyQjs0R0FBM0IsMkJBQTJCLDZDQUYzQix3QkFBd0IsQ0FBQywyQkFBMkIsQ0FBQzsyRkFFckQsMkJBQTJCO2tCQUx2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRSxRQUFRO29CQUNsQixTQUFTLEVBQUUsd0JBQXdCLDZCQUE2QjtpQkFDakU7OzBCQUdjLFFBQVE7OzBCQUFJLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIE9wdGlvbmFsLCBPbkRlc3Ryb3ksIEhvc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb3ZpZGVBY3Rpb25TdG9yZVNvdXJjZSwgU2Vjb25kYXJ5QWN0aW9uQ29udGV4dFN0b3JlU291cmNlIH0gZnJvbSAnLi4vLi4vYWN0aW9uLnN0b3JlLnNvdXJjZSc7XG5pbXBvcnQgeyBBY3Rpb25Db250ZXh0QmFzZVNvdXJjZSB9IGZyb20gJy4uLy4uL2FjdGlvbi5ob2xkZXInO1xuXG4vKipcbiAqIFByb3ZpZGVzIGFuIERiTmd4QWN0aW9uQ29udGV4dC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RieEFjdGlvbkNvbnRleHRdJyxcbiAgZXhwb3J0QXM6ICdhY3Rpb24nLFxuICBwcm92aWRlcnM6IFByb3ZpZGVBY3Rpb25TdG9yZVNvdXJjZShEYk5neEFjdGlvbkNvbnRleHREaXJlY3RpdmUpXG59KVxuZXhwb3J0IGNsYXNzIERiTmd4QWN0aW9uQ29udGV4dERpcmVjdGl2ZTxUID0gYW55LCBPID0gYW55PiBleHRlbmRzIEFjdGlvbkNvbnRleHRCYXNlU291cmNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASG9zdCgpIGlucHV0U291cmNlOiBTZWNvbmRhcnlBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2UpIHtcbiAgICBzdXBlcihpbnB1dFNvdXJjZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmxvY2tTZXQuZGVzdHJveU9uTmV4dFVubG9jaygoKSA9PiB7XG4gICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICB9KTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { filterMaybe } from '@dereekb/rxjs';
|
|
2
|
+
import { Directive, Input } from '@angular/core';
|
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
|
4
|
+
import { switchMap } from 'rxjs/operators';
|
|
5
|
+
import { ProvideSecondaryActionStoreSource, actionContextStoreSourcePipe } from '../../action.store.source';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* Directive that provides a DbNgxActionSourceDirective that is passed in.
|
|
9
|
+
*/
|
|
10
|
+
export class DbNgxActionSourceDirective {
|
|
11
|
+
constructor() {
|
|
12
|
+
this._source = new BehaviorSubject(undefined);
|
|
13
|
+
this.store$ = this._source.pipe(filterMaybe(), switchMap((x) => actionContextStoreSourcePipe(x.store$)));
|
|
14
|
+
}
|
|
15
|
+
ngOnDestroy() {
|
|
16
|
+
this._source.complete();
|
|
17
|
+
}
|
|
18
|
+
get source() {
|
|
19
|
+
return this._source.value;
|
|
20
|
+
}
|
|
21
|
+
set source(source) {
|
|
22
|
+
if (source && !source.store$) {
|
|
23
|
+
throw new Error('Invalid source passed to dbxActionSource.');
|
|
24
|
+
}
|
|
25
|
+
this._source.next(source);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
DbNgxActionSourceDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionSourceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
29
|
+
DbNgxActionSourceDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: DbNgxActionSourceDirective, selector: "[dbxActionSource]", inputs: { source: ["dbxActionSource", "source"] }, providers: ProvideSecondaryActionStoreSource(DbNgxActionSourceDirective), ngImport: i0 });
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionSourceDirective, decorators: [{
|
|
31
|
+
type: Directive,
|
|
32
|
+
args: [{
|
|
33
|
+
selector: '[dbxActionSource]',
|
|
34
|
+
providers: ProvideSecondaryActionStoreSource(DbNgxActionSourceDirective)
|
|
35
|
+
}]
|
|
36
|
+
}], propDecorators: { source: [{
|
|
37
|
+
type: Input,
|
|
38
|
+
args: ['dbxActionSource']
|
|
39
|
+
}] } });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLnNvdXJjZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2FjdGlvbi9kaXJlY3RpdmUvY29udGV4dC9hY3Rpb24uc291cmNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBK0QsNEJBQTRCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFFeks7O0dBRUc7QUFLSCxNQUFNLE9BQU8sMEJBQTBCO0lBSnZDO1FBTVUsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFrQyxTQUFTLENBQUMsQ0FBQztRQUN6RSxXQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBbUI5RztJQWpCQyxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFDSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsTUFBdUM7UUFDaEQsSUFBSSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztTQUM5RDtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7O3VIQXBCVSwwQkFBMEI7MkdBQTFCLDBCQUEwQiwrRkFGMUIsaUNBQWlDLENBQUMsMEJBQTBCLENBQUM7MkZBRTdELDBCQUEwQjtrQkFKdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixTQUFTLEVBQUUsaUNBQWlDLDRCQUE0QjtpQkFDekU7OEJBV0ssTUFBTTtzQkFEVCxLQUFLO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbHRlck1heWJlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFByb3ZpZGVTZWNvbmRhcnlBY3Rpb25TdG9yZVNvdXJjZSwgU2Vjb25kYXJ5QWN0aW9uQ29udGV4dFN0b3JlU291cmNlLCBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2UsIGFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZVBpcGUgfSBmcm9tICcuLi8uLi9hY3Rpb24uc3RvcmUuc291cmNlJztcblxuLyoqXG4gKiBEaXJlY3RpdmUgdGhhdCBwcm92aWRlcyBhIERiTmd4QWN0aW9uU291cmNlRGlyZWN0aXZlIHRoYXQgaXMgcGFzc2VkIGluLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4QWN0aW9uU291cmNlXScsXG4gIHByb3ZpZGVyczogUHJvdmlkZVNlY29uZGFyeUFjdGlvblN0b3JlU291cmNlKERiTmd4QWN0aW9uU291cmNlRGlyZWN0aXZlKVxufSlcbmV4cG9ydCBjbGFzcyBEYk5neEFjdGlvblNvdXJjZURpcmVjdGl2ZSBpbXBsZW1lbnRzIFNlY29uZGFyeUFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZSwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9zb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZT4+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHN0b3JlJCA9IHRoaXMuX3NvdXJjZS5waXBlKGZpbHRlck1heWJlKCksIHN3aXRjaE1hcCgoeCkgPT4gYWN0aW9uQ29udGV4dFN0b3JlU291cmNlUGlwZSh4LnN0b3JlJCkpKTtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zb3VyY2UuY29tcGxldGUoKTtcbiAgfVxuXG4gIEBJbnB1dCgnZGJ4QWN0aW9uU291cmNlJylcbiAgZ2V0IHNvdXJjZSgpOiBNYXliZTxBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2U+IHtcbiAgICByZXR1cm4gdGhpcy5fc291cmNlLnZhbHVlO1xuICB9XG5cbiAgc2V0IHNvdXJjZShzb3VyY2U6IE1heWJlPEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZT4pIHtcbiAgICBpZiAoc291cmNlICYmICFzb3VyY2Uuc3RvcmUkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc291cmNlIHBhc3NlZCB0byBkYnhBY3Rpb25Tb3VyY2UuJyk7XG4gICAgfVxuXG4gICAgdGhpcy5fc291cmNlLm5leHQoc291cmNlKTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './action.component';
|
|
2
|
+
export * from './action.directive';
|
|
3
|
+
export * from './action.source.directive';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2FjdGlvbi9kaXJlY3RpdmUvY29udGV4dC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWN0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24uc291cmNlLmRpcmVjdGl2ZSc7XG4iXX0=
|