@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,26 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { DbNgxInjectedComponent } from './injected.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class DbNgxInjectedComponentModule {
|
|
6
|
+
}
|
|
7
|
+
DbNgxInjectedComponentModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxInjectedComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
+
DbNgxInjectedComponentModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxInjectedComponentModule, declarations: [DbNgxInjectedComponent], imports: [CommonModule], exports: [DbNgxInjectedComponent] });
|
|
9
|
+
DbNgxInjectedComponentModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxInjectedComponentModule, imports: [[
|
|
10
|
+
CommonModule
|
|
11
|
+
]] });
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxInjectedComponentModule, decorators: [{
|
|
13
|
+
type: NgModule,
|
|
14
|
+
args: [{
|
|
15
|
+
imports: [
|
|
16
|
+
CommonModule
|
|
17
|
+
],
|
|
18
|
+
declarations: [
|
|
19
|
+
DbNgxInjectedComponent
|
|
20
|
+
],
|
|
21
|
+
exports: [
|
|
22
|
+
DbNgxInjectedComponent
|
|
23
|
+
],
|
|
24
|
+
}]
|
|
25
|
+
}] });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0ZWQuY29tcG9uZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvaW5qZWN0ZWQvaW5qZWN0ZWQuY29tcG9uZW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFhOUQsTUFBTSxPQUFPLDRCQUE0Qjs7eUhBQTVCLDRCQUE0QjswSEFBNUIsNEJBQTRCLGlCQU5yQyxzQkFBc0IsYUFIdEIsWUFBWSxhQU1aLHNCQUFzQjswSEFHYiw0QkFBNEIsWUFWOUI7WUFDUCxZQUFZO1NBQ2I7MkZBUVUsNEJBQTRCO2tCQVh4QyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO29CQUNELFlBQVksRUFBRTt3QkFDWixzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxzQkFBc0I7cUJBQ3ZCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYk5neEluamVjdGVkQ29tcG9uZW50IH0gZnJvbSAnLi9pbmplY3RlZC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIERiTmd4SW5qZWN0ZWRDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIERiTmd4SW5qZWN0ZWRDb21wb25lbnRcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRGJOZ3hJbmplY3RlZENvbXBvbmVudE1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
|
+
import { DbNgxInjectedComponentInstance } from './injected.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 AbstractDbNgxInjectedDirective {
|
|
8
|
+
constructor() {
|
|
9
|
+
this._instance = new DbNgxInjectedComponentInstance();
|
|
10
|
+
}
|
|
11
|
+
ngOnInit() {
|
|
12
|
+
this._instance.init();
|
|
13
|
+
}
|
|
14
|
+
ngOnDestroy() {
|
|
15
|
+
this._instance.destroy();
|
|
16
|
+
}
|
|
17
|
+
setConfig(config) {
|
|
18
|
+
this._instance.config = config;
|
|
19
|
+
}
|
|
20
|
+
setTemplate(template) {
|
|
21
|
+
this._instance.template = template;
|
|
22
|
+
}
|
|
23
|
+
setContent(content) {
|
|
24
|
+
this._instance.content = content;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
AbstractDbNgxInjectedDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: AbstractDbNgxInjectedDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
28
|
+
AbstractDbNgxInjectedDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: AbstractDbNgxInjectedDirective, ngImport: i0 });
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: AbstractDbNgxInjectedDirective, decorators: [{
|
|
30
|
+
type: Directive
|
|
31
|
+
}] });
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0ZWQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9pbmplY3RlZC9pbmplY3RlZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0UsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRXJFOztHQUVHO0FBRUgsTUFBTSxPQUFnQiw4QkFBOEI7SUFEcEQ7UUFHVSxjQUFTLEdBQUcsSUFBSSw4QkFBOEIsRUFBSyxDQUFDO0tBc0I3RDtJQXBCQyxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUEyQztRQUNuRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUE0QztRQUN0RCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDckMsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFnQztRQUN6QyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDbkMsQ0FBQzs7MkhBdEJtQiw4QkFBOEI7K0dBQTlCLDhCQUE4QjsyRkFBOUIsOEJBQThCO2tCQURuRCxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmlld0NvbnRhaW5lclJlZiwgT25Jbml0LCBPbkRlc3Ryb3ksIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IERiTmd4SW5qZWN0ZWRDb21wb25lbnRDb25maWcsIERiTmd4SW5qZWN0ZWRUZW1wbGF0ZUNvbmZpZyB9IGZyb20gJy4vaW5qZWN0ZWQnO1xuaW1wb3J0IHsgRGJOZ3hJbmplY3RlZENvbXBvbmVudEluc3RhbmNlIH0gZnJvbSAnLi9pbmplY3RlZC5pbnN0YW5jZSc7XG5cbi8qKlxuICogQWJzdHJhY3QgZGlyZWN0aXZlIHRoYXQgaW5qZWN0cyBjb250ZW50IGJhc2VkIG9uIHRoZSBjb25maWd1cmF0aW9uIGludG8gdGhlIHZpZXcuXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RGJOZ3hJbmplY3RlZERpcmVjdGl2ZTxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9pbnN0YW5jZSA9IG5ldyBEYk5neEluamVjdGVkQ29tcG9uZW50SW5zdGFuY2U8VD4oKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9pbnN0YW5jZS5pbml0KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9pbnN0YW5jZS5kZXN0cm95KCk7XG4gIH1cblxuICBzZXRDb25maWcoY29uZmlnOiBNYXliZTxEYk5neEluamVjdGVkQ29tcG9uZW50Q29uZmlnPikge1xuICAgIHRoaXMuX2luc3RhbmNlLmNvbmZpZyA9IGNvbmZpZztcbiAgfVxuXG4gIHNldFRlbXBsYXRlKHRlbXBsYXRlOiBNYXliZTxEYk5neEluamVjdGVkVGVtcGxhdGVDb25maWc+KSB7XG4gICAgdGhpcy5faW5zdGFuY2UudGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgfVxuXG4gIHNldENvbnRlbnQoY29udGVudDogTWF5YmU8Vmlld0NvbnRhaW5lclJlZj4pIHtcbiAgICB0aGlzLl9pbnN0YW5jZS5jb250ZW50ID0gY29udGVudDtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { distinctUntilChanged, map, shareReplay } from 'rxjs/operators';
|
|
2
|
+
import { BehaviorSubject, combineLatest } from 'rxjs';
|
|
3
|
+
import { SubscriptionObject, filterMaybe, skipFirstMaybe } from '@dereekb/rxjs';
|
|
4
|
+
/**
|
|
5
|
+
* Instance used by components to inject content based on the configuration into the view.
|
|
6
|
+
*/
|
|
7
|
+
export class DbNgxInjectedComponentInstance {
|
|
8
|
+
constructor() {
|
|
9
|
+
this._subscriptionObject = new SubscriptionObject();
|
|
10
|
+
this._config = new BehaviorSubject(undefined);
|
|
11
|
+
this._template = new BehaviorSubject(undefined);
|
|
12
|
+
this._content = new BehaviorSubject(undefined);
|
|
13
|
+
this._componentRef = new BehaviorSubject(undefined);
|
|
14
|
+
this.config$ = this._config.pipe(distinctUntilChanged());
|
|
15
|
+
this.template$ = this._template.pipe(distinctUntilChanged());
|
|
16
|
+
this.content$ = this._content.pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));
|
|
17
|
+
}
|
|
18
|
+
get config() {
|
|
19
|
+
return this._config.value;
|
|
20
|
+
}
|
|
21
|
+
set config(config) {
|
|
22
|
+
this._config.next(config);
|
|
23
|
+
}
|
|
24
|
+
get template() {
|
|
25
|
+
return this._template.value;
|
|
26
|
+
}
|
|
27
|
+
set template(template) {
|
|
28
|
+
this._template.next(template);
|
|
29
|
+
}
|
|
30
|
+
get content() {
|
|
31
|
+
return this._content.value;
|
|
32
|
+
}
|
|
33
|
+
set content(content) {
|
|
34
|
+
this._content.next(content);
|
|
35
|
+
}
|
|
36
|
+
get componentRef() {
|
|
37
|
+
return this._componentRef.value;
|
|
38
|
+
}
|
|
39
|
+
set componentRef(componentRef) {
|
|
40
|
+
this._componentRef.next(componentRef);
|
|
41
|
+
}
|
|
42
|
+
init() {
|
|
43
|
+
// Wait until the first of either of the two inputs comes in as not defined, and then emit.
|
|
44
|
+
// We filter the first maybe here between the two items.
|
|
45
|
+
const configTemplateObs = combineLatest([this.config$, this.template$]).pipe(map(([config, template]) => {
|
|
46
|
+
if (config || template) {
|
|
47
|
+
return {
|
|
48
|
+
config,
|
|
49
|
+
template
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
}), skipFirstMaybe());
|
|
56
|
+
this._subscriptionObject.subscription = combineLatest([configTemplateObs, this.content$]).subscribe(([inputConfig, content]) => {
|
|
57
|
+
const { config, template } = inputConfig ?? {};
|
|
58
|
+
this._reset(content);
|
|
59
|
+
if (config) {
|
|
60
|
+
this._initComponent(config, content);
|
|
61
|
+
}
|
|
62
|
+
else if (template) {
|
|
63
|
+
this._initTemplate(template, content);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
destroy() {
|
|
68
|
+
this._config.complete();
|
|
69
|
+
this._template.complete();
|
|
70
|
+
this._content.complete();
|
|
71
|
+
this._componentRef.complete();
|
|
72
|
+
}
|
|
73
|
+
_initComponent(config, content) {
|
|
74
|
+
content.clear();
|
|
75
|
+
const { init, injector, componentClass } = config;
|
|
76
|
+
const componentRef = content.createComponent(componentClass, { injector });
|
|
77
|
+
const instance = componentRef.instance;
|
|
78
|
+
if (init) {
|
|
79
|
+
init(instance);
|
|
80
|
+
}
|
|
81
|
+
this.componentRef = componentRef;
|
|
82
|
+
}
|
|
83
|
+
_initTemplate(config, content) {
|
|
84
|
+
content.clear();
|
|
85
|
+
const { templateRef, viewRef } = config;
|
|
86
|
+
if (templateRef) {
|
|
87
|
+
content.createEmbeddedView(templateRef);
|
|
88
|
+
// 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.
|
|
89
|
+
}
|
|
90
|
+
else if (viewRef) {
|
|
91
|
+
content.insert(viewRef);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
_reset(content) {
|
|
95
|
+
if (this.componentRef) {
|
|
96
|
+
content.clear();
|
|
97
|
+
this.componentRef = undefined;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0ZWQuaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2luamVjdGVkL2luamVjdGVkLmluc3RhbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEY7O0dBRUc7QUFDSCxNQUFNLE9BQU8sOEJBQThCO0lBQTNDO1FBRVUsd0JBQW1CLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBRS9DLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBeUMsU0FBUyxDQUFDLENBQUM7UUFDakYsY0FBUyxHQUFHLElBQUksZUFBZSxDQUF3QyxTQUFTLENBQUMsQ0FBQztRQUVsRixhQUFRLEdBQUcsSUFBSSxlQUFlLENBQTBCLFNBQVMsQ0FBQyxDQUFDO1FBQ25FLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQXlCLFNBQVMsQ0FBQyxDQUFDO1FBRXRFLFlBQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7UUFDcEQsY0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUN4RCxhQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQTZHaEcsQ0FBQztJQTNHQyxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUE4QztRQUN2RCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsUUFBK0M7UUFDMUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLE9BQXVDO1FBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxZQUFvQztRQUNuRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSTtRQUVGLDJGQUEyRjtRQUMzRix3REFBd0Q7UUFDeEQsTUFBTSxpQkFBaUIsR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDMUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUN6QixJQUFJLE1BQU0sSUFBSSxRQUFRLEVBQUU7Z0JBQ3RCLE9BQU87b0JBQ0wsTUFBTTtvQkFDTixRQUFRO2lCQUNULENBQUM7YUFDSDtpQkFBTTtnQkFDTCxPQUFPLFNBQVMsQ0FBQzthQUNsQjtRQUNILENBQUMsQ0FBQyxFQUNGLGNBQWMsRUFBRSxDQUNqQixDQUFDO1FBRUYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksR0FBRyxhQUFhLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQzdILE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsV0FBVyxJQUFJLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXJCLElBQUksTUFBTSxFQUFFO2dCQUNWLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2FBQ3RDO2lCQUFNLElBQUksUUFBUSxFQUFFO2dCQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQzthQUN2QztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTyxjQUFjLENBQUMsTUFBdUMsRUFBRSxPQUF5QjtRQUN2RixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFaEIsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBRWxELE1BQU0sWUFBWSxHQUFvQixPQUFPLENBQUMsZUFBZSxDQUFDLGNBQWMsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFNUYsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUV2QyxJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNoQjtRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQ25DLENBQUM7SUFFTyxhQUFhLENBQUMsTUFBc0MsRUFBRSxPQUF5QjtRQUNyRixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFaEIsTUFBTSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFFeEMsSUFBSSxXQUFXLEVBQUU7WUFDZixPQUFPLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFeEMsa0lBQWtJO1NBRW5JO2FBQU0sSUFBSSxPQUFPLEVBQUU7WUFDbEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtTQUN4QjtJQUNILENBQUM7SUFFTyxNQUFNLENBQUMsT0FBeUI7UUFDdEMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztTQUMvQjtJQUNILENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERiTmd4SW5qZWN0ZWRDb21wb25lbnRDb25maWcsIERiTmd4SW5qZWN0ZWRUZW1wbGF0ZUNvbmZpZyB9IGZyb20gJy4vaW5qZWN0ZWQnO1xuaW1wb3J0IHsgSW5pdGlhbGl6ZWQsIERlc3Ryb3lhYmxlLCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uT2JqZWN0LCBmaWx0ZXJNYXliZSwgc2tpcEZpcnN0TWF5YmUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcblxuLyoqXG4gKiBJbnN0YW5jZSB1c2VkIGJ5IGNvbXBvbmVudHMgdG8gaW5qZWN0IGNvbnRlbnQgYmFzZWQgb24gdGhlIGNvbmZpZ3VyYXRpb24gaW50byB0aGUgdmlldy5cbiAqL1xuZXhwb3J0IGNsYXNzIERiTmd4SW5qZWN0ZWRDb21wb25lbnRJbnN0YW5jZTxUPiBpbXBsZW1lbnRzIEluaXRpYWxpemVkLCBEZXN0cm95YWJsZSB7XG5cbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uT2JqZWN0ID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuXG4gIHByaXZhdGUgX2NvbmZpZyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8RGJOZ3hJbmplY3RlZENvbXBvbmVudENvbmZpZzxUPj4+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgX3RlbXBsYXRlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxEYk5neEluamVjdGVkVGVtcGxhdGVDb25maWc8VD4+Pih1bmRlZmluZWQpO1xuXG4gIHByaXZhdGUgX2NvbnRlbnQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPFZpZXdDb250YWluZXJSZWY+Pih1bmRlZmluZWQpO1xuICBwcml2YXRlIF9jb21wb25lbnRSZWYgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPENvbXBvbmVudFJlZjxUPj4+KHVuZGVmaW5lZCk7XG5cbiAgcmVhZG9ubHkgY29uZmlnJCA9IHRoaXMuX2NvbmZpZy5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICByZWFkb25seSB0ZW1wbGF0ZSQgPSB0aGlzLl90ZW1wbGF0ZS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICByZWFkb25seSBjb250ZW50JCA9IHRoaXMuX2NvbnRlbnQucGlwZShmaWx0ZXJNYXliZSgpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgZ2V0IGNvbmZpZygpOiBNYXliZTxEYk5neEluamVjdGVkQ29tcG9uZW50Q29uZmlnPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZy52YWx1ZTtcbiAgfVxuXG4gIHNldCBjb25maWcoY29uZmlnOiBNYXliZTxEYk5neEluamVjdGVkQ29tcG9uZW50Q29uZmlnPFQ+Pikge1xuICAgIHRoaXMuX2NvbmZpZy5uZXh0KGNvbmZpZyk7XG4gIH1cblxuICBnZXQgdGVtcGxhdGUoKTogTWF5YmU8RGJOZ3hJbmplY3RlZFRlbXBsYXRlQ29uZmlnPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuX3RlbXBsYXRlLnZhbHVlO1xuICB9XG5cbiAgc2V0IHRlbXBsYXRlKHRlbXBsYXRlOiBNYXliZTxEYk5neEluamVjdGVkVGVtcGxhdGVDb25maWc8VD4+KSB7XG4gICAgdGhpcy5fdGVtcGxhdGUubmV4dCh0ZW1wbGF0ZSk7XG4gIH1cblxuICBnZXQgY29udGVudCgpOiBNYXliZTxNYXliZTxWaWV3Q29udGFpbmVyUmVmPj4ge1xuICAgIHJldHVybiB0aGlzLl9jb250ZW50LnZhbHVlO1xuICB9XG5cbiAgc2V0IGNvbnRlbnQoY29udGVudDogTWF5YmU8TWF5YmU8Vmlld0NvbnRhaW5lclJlZj4+KSB7XG4gICAgdGhpcy5fY29udGVudC5uZXh0KGNvbnRlbnQpO1xuICB9XG5cbiAgZ2V0IGNvbXBvbmVudFJlZigpOiBNYXliZTxDb21wb25lbnRSZWY8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5fY29tcG9uZW50UmVmLnZhbHVlO1xuICB9XG5cbiAgc2V0IGNvbXBvbmVudFJlZihjb21wb25lbnRSZWY6IE1heWJlPENvbXBvbmVudFJlZjxUPj4pIHtcbiAgICB0aGlzLl9jb21wb25lbnRSZWYubmV4dChjb21wb25lbnRSZWYpO1xuICB9XG5cbiAgaW5pdCgpOiB2b2lkIHtcblxuICAgIC8vIFdhaXQgdW50aWwgdGhlIGZpcnN0IG9mIGVpdGhlciBvZiB0aGUgdHdvIGlucHV0cyBjb21lcyBpbiBhcyBub3QgZGVmaW5lZCwgYW5kIHRoZW4gZW1pdC5cbiAgICAvLyBXZSBmaWx0ZXIgdGhlIGZpcnN0IG1heWJlIGhlcmUgYmV0d2VlbiB0aGUgdHdvIGl0ZW1zLlxuICAgIGNvbnN0IGNvbmZpZ1RlbXBsYXRlT2JzID0gY29tYmluZUxhdGVzdChbdGhpcy5jb25maWckLCB0aGlzLnRlbXBsYXRlJF0pLnBpcGUoXG4gICAgICBtYXAoKFtjb25maWcsIHRlbXBsYXRlXSkgPT4ge1xuICAgICAgICBpZiAoY29uZmlnIHx8IHRlbXBsYXRlKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgIHRlbXBsYXRlXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHNraXBGaXJzdE1heWJlKClcbiAgICApO1xuXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uT2JqZWN0LnN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW2NvbmZpZ1RlbXBsYXRlT2JzLCB0aGlzLmNvbnRlbnQkXSkuc3Vic2NyaWJlKChbaW5wdXRDb25maWcsIGNvbnRlbnRdKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbmZpZywgdGVtcGxhdGUgfSA9IGlucHV0Q29uZmlnID8/IHt9O1xuICAgICAgdGhpcy5fcmVzZXQoY29udGVudCk7XG5cbiAgICAgIGlmIChjb25maWcpIHtcbiAgICAgICAgdGhpcy5faW5pdENvbXBvbmVudChjb25maWcsIGNvbnRlbnQpO1xuICAgICAgfSBlbHNlIGlmICh0ZW1wbGF0ZSkge1xuICAgICAgICB0aGlzLl9pbml0VGVtcGxhdGUodGVtcGxhdGUsIGNvbnRlbnQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9jb25maWcuY29tcGxldGUoKTtcbiAgICB0aGlzLl90ZW1wbGF0ZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2NvbnRlbnQuY29tcGxldGUoKTtcbiAgICB0aGlzLl9jb21wb25lbnRSZWYuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRDb21wb25lbnQoY29uZmlnOiBEYk5neEluamVjdGVkQ29tcG9uZW50Q29uZmlnPFQ+LCBjb250ZW50OiBWaWV3Q29udGFpbmVyUmVmKTogdm9pZCB7XG4gICAgY29udGVudC5jbGVhcigpO1xuXG4gICAgY29uc3QgeyBpbml0LCBpbmplY3RvciwgY29tcG9uZW50Q2xhc3MgfSA9IGNvbmZpZztcblxuICAgIGNvbnN0IGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFQ+ID0gY29udGVudC5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50Q2xhc3MsIHsgaW5qZWN0b3IgfSk7XG5cbiAgICBjb25zdCBpbnN0YW5jZSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZTtcblxuICAgIGlmIChpbml0KSB7XG4gICAgICBpbml0KGluc3RhbmNlKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbXBvbmVudFJlZiA9IGNvbXBvbmVudFJlZjtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRUZW1wbGF0ZShjb25maWc6IERiTmd4SW5qZWN0ZWRUZW1wbGF0ZUNvbmZpZzxUPiwgY29udGVudDogVmlld0NvbnRhaW5lclJlZik6IHZvaWQge1xuICAgIGNvbnRlbnQuY2xlYXIoKTtcblxuICAgIGNvbnN0IHsgdGVtcGxhdGVSZWYsIHZpZXdSZWYgfSA9IGNvbmZpZztcblxuICAgIGlmICh0ZW1wbGF0ZVJlZikge1xuICAgICAgY29udGVudC5jcmVhdGVFbWJlZGRlZFZpZXcodGVtcGxhdGVSZWYpO1xuXG4gICAgICAvLyBUT0RPOiBGaWd1cmUgb3V0IGlmIHRoZXNlIGl0ZW1zIG5lZWQgdG8gYmUgZGVzdHJveWVkIG9yIG5vdCB3aGVuIHRoaXMgaXRlbSBpcyBkZXN0cm95ZWQuIElmIHNvLCB3ZSBuZWVkIGEgcmVmZXJlbmNlIHRvIGRlc3Ryb3kuXG5cbiAgICB9IGVsc2UgaWYgKHZpZXdSZWYpIHtcbiAgICAgIGNvbnRlbnQuaW5zZXJ0KHZpZXdSZWYpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVzZXQoY29udGVudDogVmlld0NvbnRhaW5lclJlZik6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgY29udGVudC5jbGVhcigpO1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2luamVjdGVkL2luamVjdGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciwgVGVtcGxhdGVSZWYsIFR5cGUsIFZpZXdSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTWF5YmUgfSBmcm9tIFwiQGRlcmVla2IvdXRpbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERiTmd4SW5qZWN0ZWRDb21wb25lbnRDb25maWc8VCA9IGFueT4ge1xuICAvKipcbiAgICogVHlwZSBvZiBDb21wb25lbnQgdG8gaW5pdGlhbGl6ZS5cbiAgICovXG4gIGNvbXBvbmVudENsYXNzOiBUeXBlPFQ+O1xuICAvKipcbiAgICogQ3VzdG9tIEluamVjdG9yIHRvIHVzZSB3aGVuIGNyZWF0aW5nIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBpbmplY3Rvcj86IEluamVjdG9yO1xuICAvKipcbiAgICogQ3VzdG9tIGluaXRpYWxpemF0aW9uIGNvZGUgd2hlbiBhbiBpbnN0YW5jZSBpcyBjcmVhdGVkLlxuICAgKi9cbiAgaW5pdD86IChpbnN0YW5jZTogVCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYk5neEluamVjdGVkVGVtcGxhdGVDb25maWc8VCA9IGFueT4ge1xuICAvKipcbiAgICogVGVtcGxhdGUgcmVmIHRvIGRpc3BsYXkuXG4gICAqL1xuICB0ZW1wbGF0ZVJlZj86IE1heWJlPFRlbXBsYXRlUmVmPFQ+PjtcbiAgLyoqXG4gICAqIFZpZXcgcmVmIHRvIGluamVjdC5cbiAgICovXG4gIHZpZXdSZWY/OiBNYXliZTxWaWV3UmVmPjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { DateFromToTimePipe } from './datefromtoformat.pipe';
|
|
3
|
+
import { MinutesStringPipe } from './minutesstring.pipe';
|
|
4
|
+
import { TimeDistanceCountdownPipe, TimeDistancePipe } from './timedistance.pipe';
|
|
5
|
+
import { ToJsDatePipe } from './tojsdate.pipe';
|
|
6
|
+
import { ToMinutesPipe } from './tominutes.pipe';
|
|
7
|
+
import { DateFormatDistancePipe } from './dateformatdistance.pipe';
|
|
8
|
+
import { DateDistancePipe } from './datedistance.pipe';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export class DbNgxDatePipeModule {
|
|
11
|
+
}
|
|
12
|
+
DbNgxDatePipeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxDatePipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
13
|
+
DbNgxDatePipeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxDatePipeModule, declarations: [DateFromToTimePipe,
|
|
14
|
+
DateFormatDistancePipe,
|
|
15
|
+
MinutesStringPipe,
|
|
16
|
+
TimeDistanceCountdownPipe,
|
|
17
|
+
TimeDistancePipe,
|
|
18
|
+
DateDistancePipe,
|
|
19
|
+
ToJsDatePipe,
|
|
20
|
+
ToMinutesPipe], exports: [DateFromToTimePipe,
|
|
21
|
+
DateFormatDistancePipe,
|
|
22
|
+
MinutesStringPipe,
|
|
23
|
+
TimeDistanceCountdownPipe,
|
|
24
|
+
TimeDistancePipe,
|
|
25
|
+
DateDistancePipe,
|
|
26
|
+
ToJsDatePipe,
|
|
27
|
+
ToMinutesPipe] });
|
|
28
|
+
DbNgxDatePipeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxDatePipeModule });
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxDatePipeModule, decorators: [{
|
|
30
|
+
type: NgModule,
|
|
31
|
+
args: [{
|
|
32
|
+
exports: [
|
|
33
|
+
DateFromToTimePipe,
|
|
34
|
+
DateFormatDistancePipe,
|
|
35
|
+
MinutesStringPipe,
|
|
36
|
+
TimeDistanceCountdownPipe,
|
|
37
|
+
TimeDistancePipe,
|
|
38
|
+
DateDistancePipe,
|
|
39
|
+
ToJsDatePipe,
|
|
40
|
+
ToMinutesPipe
|
|
41
|
+
],
|
|
42
|
+
declarations: [
|
|
43
|
+
DateFromToTimePipe,
|
|
44
|
+
DateFormatDistancePipe,
|
|
45
|
+
MinutesStringPipe,
|
|
46
|
+
TimeDistanceCountdownPipe,
|
|
47
|
+
TimeDistancePipe,
|
|
48
|
+
DateDistancePipe,
|
|
49
|
+
ToJsDatePipe,
|
|
50
|
+
ToMinutesPipe
|
|
51
|
+
]
|
|
52
|
+
}]
|
|
53
|
+
}] });
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5waXBlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvcGlwZS9kYXRlL2RhdGUucGlwZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQXdCdkQsTUFBTSxPQUFPLG1CQUFtQjs7Z0hBQW5CLG1CQUFtQjtpSEFBbkIsbUJBQW1CLGlCQVY1QixrQkFBa0I7UUFDbEIsc0JBQXNCO1FBQ3RCLGlCQUFpQjtRQUNqQix5QkFBeUI7UUFDekIsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixZQUFZO1FBQ1osYUFBYSxhQWpCYixrQkFBa0I7UUFDbEIsc0JBQXNCO1FBQ3RCLGlCQUFpQjtRQUNqQix5QkFBeUI7UUFDekIsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixZQUFZO1FBQ1osYUFBYTtpSEFhSixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkF0Qi9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0QixpQkFBaUI7d0JBQ2pCLHlCQUF5Qjt3QkFDekIsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osYUFBYTtxQkFDZDtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLGlCQUFpQjt3QkFDakIseUJBQXlCO3dCQUN6QixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixhQUFhO3FCQUNkO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVGcm9tVG9UaW1lUGlwZSB9IGZyb20gJy4vZGF0ZWZyb210b2Zvcm1hdC5waXBlJztcbmltcG9ydCB7IE1pbnV0ZXNTdHJpbmdQaXBlIH0gZnJvbSAnLi9taW51dGVzc3RyaW5nLnBpcGUnO1xuaW1wb3J0IHsgVGltZURpc3RhbmNlQ291bnRkb3duUGlwZSwgVGltZURpc3RhbmNlUGlwZSB9IGZyb20gJy4vdGltZWRpc3RhbmNlLnBpcGUnO1xuaW1wb3J0IHsgVG9Kc0RhdGVQaXBlIH0gZnJvbSAnLi90b2pzZGF0ZS5waXBlJztcbmltcG9ydCB7IFRvTWludXRlc1BpcGUgfSBmcm9tICcuL3RvbWludXRlcy5waXBlJztcbmltcG9ydCB7IERhdGVGb3JtYXREaXN0YW5jZVBpcGUgfSBmcm9tICcuL2RhdGVmb3JtYXRkaXN0YW5jZS5waXBlJztcbmltcG9ydCB7IERhdGVEaXN0YW5jZVBpcGUgfSBmcm9tICcuL2RhdGVkaXN0YW5jZS5waXBlJztcblxuQE5nTW9kdWxlKHtcbiAgZXhwb3J0czogW1xuICAgIERhdGVGcm9tVG9UaW1lUGlwZSxcbiAgICBEYXRlRm9ybWF0RGlzdGFuY2VQaXBlLFxuICAgIE1pbnV0ZXNTdHJpbmdQaXBlLFxuICAgIFRpbWVEaXN0YW5jZUNvdW50ZG93blBpcGUsXG4gICAgVGltZURpc3RhbmNlUGlwZSxcbiAgICBEYXRlRGlzdGFuY2VQaXBlLFxuICAgIFRvSnNEYXRlUGlwZSxcbiAgICBUb01pbnV0ZXNQaXBlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIERhdGVGcm9tVG9UaW1lUGlwZSxcbiAgICBEYXRlRm9ybWF0RGlzdGFuY2VQaXBlLFxuICAgIE1pbnV0ZXNTdHJpbmdQaXBlLFxuICAgIFRpbWVEaXN0YW5jZUNvdW50ZG93blBpcGUsXG4gICAgVGltZURpc3RhbmNlUGlwZSxcbiAgICBEYXRlRGlzdGFuY2VQaXBlLFxuICAgIFRvSnNEYXRlUGlwZSxcbiAgICBUb01pbnV0ZXNQaXBlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGJOZ3hEYXRlUGlwZU1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { formatDistance, isSameDay, startOfDay } from 'date-fns';
|
|
3
|
+
import { ToJsDatePipe } from './tojsdate.pipe';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class DateDistancePipe {
|
|
6
|
+
transform(input, to, unavailable = 'Not Available') {
|
|
7
|
+
if (input) {
|
|
8
|
+
const defaultTo = !to;
|
|
9
|
+
if (defaultTo) {
|
|
10
|
+
to = new Date();
|
|
11
|
+
}
|
|
12
|
+
const from = ToJsDatePipe.toJsDate(input);
|
|
13
|
+
const fromStart = startOfDay(from);
|
|
14
|
+
const toStart = startOfDay(to);
|
|
15
|
+
if (isSameDay(fromStart, toStart)) {
|
|
16
|
+
let text;
|
|
17
|
+
if (defaultTo || isSameDay(from, new Date())) {
|
|
18
|
+
text = 'Today';
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
text = 'Same Day';
|
|
22
|
+
}
|
|
23
|
+
return text;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
return formatDistance(fromStart, toStart, {
|
|
27
|
+
addSuffix: true
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
return unavailable;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
DateDistancePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DateDistancePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
37
|
+
DateDistancePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DateDistancePipe, name: "dateDistance", pure: false });
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DateDistancePipe, decorators: [{
|
|
39
|
+
type: Pipe,
|
|
40
|
+
args: [{ name: 'dateDistance', pure: false }]
|
|
41
|
+
}] });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZWRpc3RhbmNlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3BpcGUvZGF0ZS9kYXRlZGlzdGFuY2UucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFVLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUcvQyxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFNBQVMsQ0FBQyxLQUFtQyxFQUFFLEVBQVEsRUFBRSxjQUFzQixlQUFlO1FBQzVGLElBQUksS0FBSyxFQUFFO1lBQ1QsTUFBTSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFFdEIsSUFBSSxTQUFTLEVBQUU7Z0JBQ2IsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7YUFDakI7WUFFRCxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBRSxDQUFDO1lBRTNDLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuQyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFL0IsSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxFQUFFO2dCQUNqQyxJQUFJLElBQUksQ0FBQztnQkFFVCxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRTtvQkFDNUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztpQkFDaEI7cUJBQU07b0JBQ0wsSUFBSSxHQUFHLFVBQVUsQ0FBQztpQkFDbkI7Z0JBRUQsT0FBTyxJQUFJLENBQUM7YUFDYjtpQkFBTTtnQkFDTCxPQUFPLGNBQWMsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFO29CQUN4QyxTQUFTLEVBQUUsSUFBSTtpQkFDaEIsQ0FBQyxDQUFDO2FBQ0o7U0FDRjthQUFNO1lBQ0wsT0FBTyxXQUFXLENBQUM7U0FDcEI7SUFDSCxDQUFDOzs2R0FqQ1UsZ0JBQWdCOzJHQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZvcm1hdERpc3RhbmNlLCBpc1Bhc3QsIGlzU2FtZURheSwgc3RhcnRPZkRheSB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IERhdGVPckRhdGVTdHJpbmcgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IFRvSnNEYXRlUGlwZSB9IGZyb20gJy4vdG9qc2RhdGUucGlwZSc7XG5cbkBQaXBlKHsgbmFtZTogJ2RhdGVEaXN0YW5jZScsIHB1cmU6IGZhbHNlIH0pXG5leHBvcnQgY2xhc3MgRGF0ZURpc3RhbmNlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIHRyYW5zZm9ybShpbnB1dDogRGF0ZU9yRGF0ZVN0cmluZyB8IHVuZGVmaW5lZCwgdG86IERhdGUsIHVuYXZhaWxhYmxlOiBzdHJpbmcgPSAnTm90IEF2YWlsYWJsZScpOiBzdHJpbmcge1xuICAgIGlmIChpbnB1dCkge1xuICAgICAgY29uc3QgZGVmYXVsdFRvID0gIXRvO1xuXG4gICAgICBpZiAoZGVmYXVsdFRvKSB7XG4gICAgICAgIHRvID0gbmV3IERhdGUoKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZnJvbSA9IFRvSnNEYXRlUGlwZS50b0pzRGF0ZShpbnB1dCkhO1xuXG4gICAgICBjb25zdCBmcm9tU3RhcnQgPSBzdGFydE9mRGF5KGZyb20pO1xuICAgICAgY29uc3QgdG9TdGFydCA9IHN0YXJ0T2ZEYXkodG8pO1xuXG4gICAgICBpZiAoaXNTYW1lRGF5KGZyb21TdGFydCwgdG9TdGFydCkpIHtcbiAgICAgICAgbGV0IHRleHQ7XG5cbiAgICAgICAgaWYgKGRlZmF1bHRUbyB8fCBpc1NhbWVEYXkoZnJvbSwgbmV3IERhdGUoKSkpIHtcbiAgICAgICAgICB0ZXh0ID0gJ1RvZGF5JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0ZXh0ID0gJ1NhbWUgRGF5JztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0ZXh0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZvcm1hdERpc3RhbmNlKGZyb21TdGFydCwgdG9TdGFydCwge1xuICAgICAgICAgIGFkZFN1ZmZpeDogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuYXZhaWxhYmxlO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Pipe, Inject, LOCALE_ID } from '@angular/core';
|
|
2
|
+
import { formatDate } from '@angular/common';
|
|
3
|
+
import { formatDistanceToNow, isValid } from 'date-fns';
|
|
4
|
+
import { toJsDate } from '@dereekb/date';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* Pipe that takes in a date and appends the distance to it in parenthesis.
|
|
8
|
+
*/
|
|
9
|
+
export class DateFormatDistancePipe {
|
|
10
|
+
constructor(locale) {
|
|
11
|
+
this.locale = locale;
|
|
12
|
+
}
|
|
13
|
+
transform(input, format, includeSeconds = false) {
|
|
14
|
+
if (input) {
|
|
15
|
+
const date = toJsDate(input);
|
|
16
|
+
if (isValid(date)) {
|
|
17
|
+
const dateString = formatDate(date, format, this.locale);
|
|
18
|
+
const distance = formatDistanceToNow(date, {
|
|
19
|
+
includeSeconds,
|
|
20
|
+
addSuffix: true
|
|
21
|
+
});
|
|
22
|
+
return `${dateString} (${distance})`;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
DateFormatDistancePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DateFormatDistancePipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
29
|
+
DateFormatDistancePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DateFormatDistancePipe, name: "dateFormatDistance", pure: false });
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DateFormatDistancePipe, decorators: [{
|
|
31
|
+
type: Pipe,
|
|
32
|
+
args: [{ name: 'dateFormatDistance', pure: false }]
|
|
33
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
34
|
+
type: Inject,
|
|
35
|
+
args: [LOCALE_ID]
|
|
36
|
+
}] }]; } });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZWZvcm1hdGRpc3RhbmNlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3BpcGUvZGF0ZS9kYXRlZm9ybWF0ZGlzdGFuY2UucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXhELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRXpDOztHQUVHO0FBRUgsTUFBTSxPQUFPLHNCQUFzQjtJQUVqQyxZQUF1QyxNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFJLENBQUM7SUFFMUQsU0FBUyxDQUFDLEtBQThCLEVBQUUsTUFBYyxFQUFFLGNBQWMsR0FBRyxLQUFLO1FBQzlFLElBQUksS0FBSyxFQUFFO1lBQ1QsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBRSxDQUFDO1lBRTlCLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUVqQixNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBRXpELE1BQU0sUUFBUSxHQUFHLG1CQUFtQixDQUFDLElBQUksRUFBRTtvQkFDekMsY0FBYztvQkFDZCxTQUFTLEVBQUUsSUFBSTtpQkFDaEIsQ0FBQyxDQUFDO2dCQUVILE9BQU8sR0FBRyxVQUFVLEtBQUssUUFBUSxHQUFHLENBQUM7YUFDdEM7U0FDRjtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7O21IQXRCVSxzQkFBc0Isa0JBRWIsU0FBUztpSEFGbEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBRGxDLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTs7MEJBR2xDLE1BQU07MkJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0sIEluamVjdCwgTE9DQUxFX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGZvcm1hdERpc3RhbmNlVG9Ob3csIGlzVmFsaWQgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBEYXRlT3JEYXRlU3RyaW5nLCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgdG9Kc0RhdGUgfSBmcm9tICdAZGVyZWVrYi9kYXRlJztcblxuLyoqXG4gKiBQaXBlIHRoYXQgdGFrZXMgaW4gYSBkYXRlIGFuZCBhcHBlbmRzIHRoZSBkaXN0YW5jZSB0byBpdCBpbiBwYXJlbnRoZXNpcy5cbiAqL1xuQFBpcGUoeyBuYW1lOiAnZGF0ZUZvcm1hdERpc3RhbmNlJywgcHVyZTogZmFsc2UgfSlcbmV4cG9ydCBjbGFzcyBEYXRlRm9ybWF0RGlzdGFuY2VQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChMT0NBTEVfSUQpIHByaXZhdGUgbG9jYWxlOiBzdHJpbmcpIHsgfVxuXG4gIHRyYW5zZm9ybShpbnB1dDogTWF5YmU8RGF0ZU9yRGF0ZVN0cmluZz4sIGZvcm1hdDogc3RyaW5nLCBpbmNsdWRlU2Vjb25kcyA9IGZhbHNlKTogTWF5YmU8c3RyaW5nPiB7XG4gICAgaWYgKGlucHV0KSB7XG4gICAgICBjb25zdCBkYXRlID0gdG9Kc0RhdGUoaW5wdXQpITtcblxuICAgICAgaWYgKGlzVmFsaWQoZGF0ZSkpIHtcblxuICAgICAgICBjb25zdCBkYXRlU3RyaW5nID0gZm9ybWF0RGF0ZShkYXRlLCBmb3JtYXQsIHRoaXMubG9jYWxlKTtcblxuICAgICAgICBjb25zdCBkaXN0YW5jZSA9IGZvcm1hdERpc3RhbmNlVG9Ob3coZGF0ZSwge1xuICAgICAgICAgIGluY2x1ZGVTZWNvbmRzLFxuICAgICAgICAgIGFkZFN1ZmZpeDogdHJ1ZVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gYCR7ZGF0ZVN0cmluZ30gKCR7ZGlzdGFuY2V9KWA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { addMinutes } from 'date-fns';
|
|
2
|
+
import { Pipe, Inject, LOCALE_ID } from '@angular/core';
|
|
3
|
+
import { formatDate } from '@angular/common';
|
|
4
|
+
import { formatToTimeString, toJsDate } from '@dereekb/date';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* Pipe that takes in a date and number of minutes and outputs a formatted date.
|
|
8
|
+
*/
|
|
9
|
+
export class DateFromToTimePipe {
|
|
10
|
+
constructor(locale) {
|
|
11
|
+
this.locale = locale;
|
|
12
|
+
}
|
|
13
|
+
transform(input, format, minutes) {
|
|
14
|
+
return DateFromToTimePipe.formatFromTo(input, format, minutes, this.locale);
|
|
15
|
+
}
|
|
16
|
+
static formatFromTo(input, format, minutes, locale) {
|
|
17
|
+
if (input) {
|
|
18
|
+
const date = toJsDate(input);
|
|
19
|
+
const endDate = addMinutes(date, minutes);
|
|
20
|
+
const dateString = formatDate(date, format, locale);
|
|
21
|
+
return dateString + ' - ' + formatToTimeString(endDate);
|
|
22
|
+
}
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
DateFromToTimePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DateFromToTimePipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
27
|
+
DateFromToTimePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DateFromToTimePipe, name: "dateFromPlusTo" });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DateFromToTimePipe, decorators: [{
|
|
29
|
+
type: Pipe,
|
|
30
|
+
args: [{ name: 'dateFromPlusTo' }]
|
|
31
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
32
|
+
type: Inject,
|
|
33
|
+
args: [LOCALE_ID]
|
|
34
|
+
}] }]; } });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZWZyb210b2Zvcm1hdC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9waXBlL2RhdGUvZGF0ZWZyb210b2Zvcm1hdC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEMsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFN0Q7O0dBRUc7QUFFSCxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCLFlBQXVDLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQUksQ0FBQztJQUUxRCxTQUFTLENBQUMsS0FBOEIsRUFBRSxNQUFjLEVBQUUsT0FBZTtRQUN2RSxPQUFPLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBOEIsRUFBRSxNQUFjLEVBQUUsT0FBZSxFQUFFLE1BQWM7UUFDakcsSUFBSSxLQUFLLEVBQUU7WUFDVCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMxQyxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNwRCxPQUFPLFVBQVUsR0FBRyxLQUFLLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDekQ7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOzsrR0FqQlUsa0JBQWtCLGtCQUVULFNBQVM7NkdBRmxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUQ5QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFOzswQkFHakIsTUFBTTsyQkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRkTWludXRlcyB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0sIEluamVjdCwgTE9DQUxFX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1heWJlLCBEYXRlT3JEYXRlU3RyaW5nIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBmb3JtYXRUb1RpbWVTdHJpbmcsIHRvSnNEYXRlIH0gZnJvbSAnQGRlcmVla2IvZGF0ZSc7XG5cbi8qKlxuICogUGlwZSB0aGF0IHRha2VzIGluIGEgZGF0ZSBhbmQgbnVtYmVyIG9mIG1pbnV0ZXMgYW5kIG91dHB1dHMgYSBmb3JtYXR0ZWQgZGF0ZS5cbiAqL1xuQFBpcGUoeyBuYW1lOiAnZGF0ZUZyb21QbHVzVG8nIH0pXG5leHBvcnQgY2xhc3MgRGF0ZUZyb21Ub1RpbWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChMT0NBTEVfSUQpIHByaXZhdGUgbG9jYWxlOiBzdHJpbmcpIHsgfVxuXG4gIHRyYW5zZm9ybShpbnB1dDogTWF5YmU8RGF0ZU9yRGF0ZVN0cmluZz4sIGZvcm1hdDogc3RyaW5nLCBtaW51dGVzOiBudW1iZXIpOiBNYXliZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gRGF0ZUZyb21Ub1RpbWVQaXBlLmZvcm1hdEZyb21UbyhpbnB1dCwgZm9ybWF0LCBtaW51dGVzLCB0aGlzLmxvY2FsZSk7XG4gIH1cblxuICBzdGF0aWMgZm9ybWF0RnJvbVRvKGlucHV0OiBNYXliZTxEYXRlT3JEYXRlU3RyaW5nPiwgZm9ybWF0OiBzdHJpbmcsIG1pbnV0ZXM6IG51bWJlciwgbG9jYWxlOiBzdHJpbmcpOiBNYXliZTxzdHJpbmc+IHtcbiAgICBpZiAoaW5wdXQpIHtcbiAgICAgIGNvbnN0IGRhdGUgPSB0b0pzRGF0ZShpbnB1dCk7XG4gICAgICBjb25zdCBlbmREYXRlID0gYWRkTWludXRlcyhkYXRlLCBtaW51dGVzKTtcbiAgICAgIGNvbnN0IGRhdGVTdHJpbmcgPSBmb3JtYXREYXRlKGRhdGUsIGZvcm1hdCwgbG9jYWxlKTtcbiAgICAgIHJldHVybiBkYXRlU3RyaW5nICsgJyAtICcgKyBmb3JtYXRUb1RpbWVTdHJpbmcoZW5kRGF0ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './date.pipe.module';
|
|
2
|
+
export * from './datedistance.pipe';
|
|
3
|
+
export * from './dateformatdistance.pipe';
|
|
4
|
+
export * from './datefromtoformat.pipe';
|
|
5
|
+
export * from './minutesstring.pipe';
|
|
6
|
+
export * from './timedistance.pipe';
|
|
7
|
+
export * from './tojsdate.pipe';
|
|
8
|
+
export * from './tominutes.pipe';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3BpcGUvZGF0ZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RhdGUucGlwZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRlZGlzdGFuY2UucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGVmb3JtYXRkaXN0YW5jZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0ZWZyb210b2Zvcm1hdC5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbWludXRlc3N0cmluZy5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vdGltZWRpc3RhbmNlLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi90b2pzZGF0ZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vdG9taW51dGVzLnBpcGUnO1xuIl19
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class MinutesStringPipe {
|
|
4
|
+
transform(input) {
|
|
5
|
+
const minutes = Number(input);
|
|
6
|
+
if (input != null && !isNaN(minutes)) {
|
|
7
|
+
if (minutes > 3600) {
|
|
8
|
+
const unrounded = minutes / 3600;
|
|
9
|
+
const days = Math.ceil(unrounded);
|
|
10
|
+
return ((unrounded !== days) ? '~' : '') + days + ' days';
|
|
11
|
+
}
|
|
12
|
+
else if (minutes > 180) {
|
|
13
|
+
const unrounded = minutes / 60;
|
|
14
|
+
const hours = Math.ceil(unrounded);
|
|
15
|
+
return ((unrounded !== hours) ? '~' : '') + hours + ' hours';
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
return minutes + ' minutes';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
MinutesStringPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MinutesStringPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
27
|
+
MinutesStringPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MinutesStringPipe, name: "minutesString", pure: false });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MinutesStringPipe, decorators: [{
|
|
29
|
+
type: Pipe,
|
|
30
|
+
args: [{ name: 'minutesString', pure: false }]
|
|
31
|
+
}] });
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWludXRlc3N0cmluZy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9waXBlL2RhdGUvbWludXRlc3N0cmluZy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUlwRCxNQUFNLE9BQU8saUJBQWlCO0lBRTVCLFNBQVMsQ0FBQyxLQUE2QjtRQUNyQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFOUIsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3BDLElBQUksT0FBTyxHQUFHLElBQUksRUFBRTtnQkFDbEIsTUFBTSxTQUFTLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDakMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDbEMsT0FBTyxDQUFDLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxPQUFPLENBQUM7YUFDM0Q7aUJBQU0sSUFBSSxPQUFPLEdBQUcsR0FBRyxFQUFFO2dCQUN4QixNQUFNLFNBQVMsR0FBRyxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUMvQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNuQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxHQUFHLFFBQVEsQ0FBQzthQUM5RDtpQkFBTTtnQkFDTCxPQUFPLE9BQU8sR0FBRyxVQUFVLENBQUM7YUFDN0I7U0FDRjthQUFNO1lBQ0wsT0FBTyxTQUFTLENBQUM7U0FDbEI7SUFDSCxDQUFDOzs4R0FwQlUsaUJBQWlCOzRHQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbkBQaXBlKHsgbmFtZTogJ21pbnV0ZXNTdHJpbmcnLCBwdXJlOiBmYWxzZSB9KVxuZXhwb3J0IGNsYXNzIE1pbnV0ZXNTdHJpbmdQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgdHJhbnNmb3JtKGlucHV0OiBNYXliZTxudW1iZXIgfCBzdHJpbmc+KTogTWF5YmU8c3RyaW5nPiB7XG4gICAgY29uc3QgbWludXRlcyA9IE51bWJlcihpbnB1dCk7XG5cbiAgICBpZiAoaW5wdXQgIT0gbnVsbCAmJiAhaXNOYU4obWludXRlcykpIHtcbiAgICAgIGlmIChtaW51dGVzID4gMzYwMCkge1xuICAgICAgICBjb25zdCB1bnJvdW5kZWQgPSBtaW51dGVzIC8gMzYwMDtcbiAgICAgICAgY29uc3QgZGF5cyA9IE1hdGguY2VpbCh1bnJvdW5kZWQpO1xuICAgICAgICByZXR1cm4gKCh1bnJvdW5kZWQgIT09IGRheXMpID8gJ34nIDogJycpICsgZGF5cyArICcgZGF5cyc7XG4gICAgICB9IGVsc2UgaWYgKG1pbnV0ZXMgPiAxODApIHtcbiAgICAgICAgY29uc3QgdW5yb3VuZGVkID0gbWludXRlcyAvIDYwO1xuICAgICAgICBjb25zdCBob3VycyA9IE1hdGguY2VpbCh1bnJvdW5kZWQpO1xuICAgICAgICByZXR1cm4gKCh1bnJvdW5kZWQgIT09IGhvdXJzKSA/ICd+JyA6ICcnKSArIGhvdXJzICsgJyBob3Vycyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbWludXRlcyArICcgbWludXRlcyc7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { formatDistance, isPast } from 'date-fns';
|
|
3
|
+
import { ToJsDatePipe } from './tojsdate.pipe';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class TimeDistanceCountdownPipe {
|
|
6
|
+
transform(input, soonString = 'Soon', unavailable = 'Not Available') {
|
|
7
|
+
if (input) {
|
|
8
|
+
const from = ToJsDatePipe.toJsDate(input);
|
|
9
|
+
if (isPast(from)) {
|
|
10
|
+
return soonString;
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
const to = new Date();
|
|
14
|
+
return formatDistance(from, to, {
|
|
15
|
+
addSuffix: true
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
return unavailable;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
TimeDistanceCountdownPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: TimeDistanceCountdownPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
25
|
+
TimeDistanceCountdownPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: TimeDistanceCountdownPipe, name: "timeCountdownDistance", pure: false });
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: TimeDistanceCountdownPipe, decorators: [{
|
|
27
|
+
type: Pipe,
|
|
28
|
+
args: [{ name: 'timeCountdownDistance', pure: false }]
|
|
29
|
+
}] });
|
|
30
|
+
export class TimeDistancePipe {
|
|
31
|
+
transform(input, to = new Date(), unavailable = 'Not Available') {
|
|
32
|
+
if (input) {
|
|
33
|
+
const from = ToJsDatePipe.toJsDate(input);
|
|
34
|
+
return formatDistance(from, to, {
|
|
35
|
+
addSuffix: true
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
return unavailable;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
TimeDistancePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: TimeDistancePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
44
|
+
TimeDistancePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: TimeDistancePipe, name: "timeDistance", pure: false });
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: TimeDistancePipe, decorators: [{
|
|
46
|
+
type: Pipe,
|
|
47
|
+
args: [{ name: 'timeDistance', pure: false }]
|
|
48
|
+
}] });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWRpc3RhbmNlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3BpcGUvZGF0ZS90aW1lZGlzdGFuY2UucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRy9DLE1BQU0sT0FBTyx5QkFBeUI7SUFFcEMsU0FBUyxDQUFDLEtBQThCLEVBQUUsYUFBcUIsTUFBTSxFQUFFLGNBQXNCLGVBQWU7UUFDMUcsSUFBSSxLQUFLLEVBQUU7WUFDVCxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBRSxDQUFDO1lBRTNDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNoQixPQUFPLFVBQVUsQ0FBQzthQUNuQjtpQkFBTTtnQkFDTCxNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUN0QixPQUFPLGNBQWMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFO29CQUM5QixTQUFTLEVBQUUsSUFBSTtpQkFDaEIsQ0FBQyxDQUFDO2FBQ0o7U0FDRjthQUFNO1lBQ0wsT0FBTyxXQUFXLENBQUM7U0FDcEI7SUFDSCxDQUFDOztzSEFqQlUseUJBQXlCO29IQUF6Qix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFEckMsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSx1QkFBdUIsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFOztBQXVCcEQsTUFBTSxPQUFPLGdCQUFnQjtJQUUzQixTQUFTLENBQUMsS0FBOEIsRUFBRSxLQUFXLElBQUksSUFBSSxFQUFFLEVBQUUsY0FBc0IsZUFBZTtRQUNwRyxJQUFJLEtBQUssRUFBRTtZQUNULE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFFLENBQUM7WUFDM0MsT0FBTyxjQUFjLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRTtnQkFDOUIsU0FBUyxFQUFFLElBQUk7YUFDaEIsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLE9BQU8sV0FBVyxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQzs7NkdBWFUsZ0JBQWdCOzJHQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1heWJlLCBEYXRlT3JEYXRlU3RyaW5nIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBmb3JtYXREaXN0YW5jZSwgaXNQYXN0IH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgVG9Kc0RhdGVQaXBlIH0gZnJvbSAnLi90b2pzZGF0ZS5waXBlJztcblxuQFBpcGUoeyBuYW1lOiAndGltZUNvdW50ZG93bkRpc3RhbmNlJywgcHVyZTogZmFsc2UgfSlcbmV4cG9ydCBjbGFzcyBUaW1lRGlzdGFuY2VDb3VudGRvd25QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgdHJhbnNmb3JtKGlucHV0OiBNYXliZTxEYXRlT3JEYXRlU3RyaW5nPiwgc29vblN0cmluZzogc3RyaW5nID0gJ1Nvb24nLCB1bmF2YWlsYWJsZTogc3RyaW5nID0gJ05vdCBBdmFpbGFibGUnKTogc3RyaW5nIHtcbiAgICBpZiAoaW5wdXQpIHtcbiAgICAgIGNvbnN0IGZyb20gPSBUb0pzRGF0ZVBpcGUudG9Kc0RhdGUoaW5wdXQpITtcblxuICAgICAgaWYgKGlzUGFzdChmcm9tKSkge1xuICAgICAgICByZXR1cm4gc29vblN0cmluZztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHRvID0gbmV3IERhdGUoKTtcbiAgICAgICAgcmV0dXJuIGZvcm1hdERpc3RhbmNlKGZyb20sIHRvLCB7XG4gICAgICAgICAgYWRkU3VmZml4OiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5hdmFpbGFibGU7XG4gICAgfVxuICB9XG5cbn1cblxuQFBpcGUoeyBuYW1lOiAndGltZURpc3RhbmNlJywgcHVyZTogZmFsc2UgfSlcbmV4cG9ydCBjbGFzcyBUaW1lRGlzdGFuY2VQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgdHJhbnNmb3JtKGlucHV0OiBNYXliZTxEYXRlT3JEYXRlU3RyaW5nPiwgdG86IERhdGUgPSBuZXcgRGF0ZSgpLCB1bmF2YWlsYWJsZTogc3RyaW5nID0gJ05vdCBBdmFpbGFibGUnKTogc3RyaW5nIHtcbiAgICBpZiAoaW5wdXQpIHtcbiAgICAgIGNvbnN0IGZyb20gPSBUb0pzRGF0ZVBpcGUudG9Kc0RhdGUoaW5wdXQpITtcbiAgICAgIHJldHVybiBmb3JtYXREaXN0YW5jZShmcm9tLCB0bywge1xuICAgICAgICBhZGRTdWZmaXg6IHRydWVcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5hdmFpbGFibGU7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { toJsDate } from '@dereekb/date';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ToJsDatePipe {
|
|
5
|
+
static toJsDate(input) {
|
|
6
|
+
return (input) ? toJsDate(input) : undefined;
|
|
7
|
+
}
|
|
8
|
+
transform(input) {
|
|
9
|
+
return ToJsDatePipe.toJsDate(input);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
ToJsDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: ToJsDatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
13
|
+
ToJsDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: ToJsDatePipe, name: "toJsDate" });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: ToJsDatePipe, decorators: [{
|
|
15
|
+
type: Pipe,
|
|
16
|
+
args: [{ name: 'toJsDate' }]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9qc2RhdGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvcGlwZS9kYXRlL3RvanNkYXRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJekMsTUFBTSxPQUFPLFlBQVk7SUFFaEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUE4QjtRQUNuRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQy9DLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBOEI7UUFDdEMsT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7O3lHQVJVLFlBQVk7dUdBQVosWUFBWTsyRkFBWixZQUFZO2tCQUR4QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvSnNEYXRlIH0gZnJvbSAnQGRlcmVla2IvZGF0ZSc7XG5pbXBvcnQgeyBEYXRlT3JEYXRlU3RyaW5nLCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuXG5AUGlwZSh7IG5hbWU6ICd0b0pzRGF0ZScgfSlcbmV4cG9ydCBjbGFzcyBUb0pzRGF0ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICBwdWJsaWMgc3RhdGljIHRvSnNEYXRlKGlucHV0OiBNYXliZTxEYXRlT3JEYXRlU3RyaW5nPik6IE1heWJlPERhdGU+IHtcbiAgICByZXR1cm4gKGlucHV0KSA/IHRvSnNEYXRlKGlucHV0KSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHRyYW5zZm9ybShpbnB1dDogTWF5YmU8RGF0ZU9yRGF0ZVN0cmluZz4pOiBNYXliZTxEYXRlPiB7XG4gICAgcmV0dXJuIFRvSnNEYXRlUGlwZS50b0pzRGF0ZShpbnB1dCk7XG4gIH1cblxufVxuIl19
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ToMinutesPipe {
|
|
4
|
+
transform(milliseconds) {
|
|
5
|
+
if (milliseconds) {
|
|
6
|
+
return Math.floor(milliseconds / (60 * 1000));
|
|
7
|
+
}
|
|
8
|
+
return milliseconds;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
ToMinutesPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: ToMinutesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
12
|
+
ToMinutesPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: ToMinutesPipe, name: "toMinutes" });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: ToMinutesPipe, decorators: [{
|
|
14
|
+
type: Pipe,
|
|
15
|
+
args: [{ name: 'toMinutes' }]
|
|
16
|
+
}] });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9taW51dGVzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3BpcGUvZGF0ZS90b21pbnV0ZXMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFHcEQsTUFBTSxPQUFPLGFBQWE7SUFFeEIsU0FBUyxDQUFDLFlBQW9CO1FBQzVCLElBQUksWUFBWSxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUMvQztRQUVELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7OzBHQVJVLGFBQWE7d0dBQWIsYUFBYTsyRkFBYixhQUFhO2tCQUR6QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoeyBuYW1lOiAndG9NaW51dGVzJyB9KVxuZXhwb3J0IGNsYXNzIFRvTWludXRlc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICB0cmFuc2Zvcm0obWlsbGlzZWNvbmRzOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmIChtaWxsaXNlY29uZHMpIHtcbiAgICAgIHJldHVybiBNYXRoLmZsb29yKG1pbGxpc2Vjb25kcyAvICg2MCAqIDEwMDApKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWlsbGlzZWNvbmRzO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './date';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3BpcGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RhdGUnO1xuIl19
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { skipFirstMaybe } from '@dereekb/rxjs';
|
|
2
|
+
import { map, shareReplay, distinctUntilChanged } from 'rxjs/operators';
|
|
3
|
+
import { BehaviorSubject, combineLatest } from 'rxjs';
|
|
4
|
+
import { Directive, Input } from '@angular/core';
|
|
5
|
+
import { anchorTypeForAnchor } from './anchor';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* Abstract anchor directive.
|
|
9
|
+
*/
|
|
10
|
+
export class AbstractDbNgxAnchorDirective {
|
|
11
|
+
constructor() {
|
|
12
|
+
this._disabled = new BehaviorSubject(false);
|
|
13
|
+
this._anchor = new BehaviorSubject(undefined);
|
|
14
|
+
this.disabled$ = this._disabled.asObservable();
|
|
15
|
+
this.anchor$ = this._anchor.pipe(skipFirstMaybe(), distinctUntilChanged(), shareReplay(1));
|
|
16
|
+
this.type$ = combineLatest([this.disabled$, this.anchor$]).pipe(map(([disabled, anchor]) => anchorTypeForAnchor(anchor, disabled)), distinctUntilChanged(), shareReplay(1));
|
|
17
|
+
}
|
|
18
|
+
get anchor() {
|
|
19
|
+
return this._anchor.value;
|
|
20
|
+
}
|
|
21
|
+
set anchor(anchor) {
|
|
22
|
+
this._anchor.next(anchor);
|
|
23
|
+
}
|
|
24
|
+
get disabled() {
|
|
25
|
+
return this._disabled.value;
|
|
26
|
+
}
|
|
27
|
+
set disabled(disabled) {
|
|
28
|
+
this._disabled.next(disabled);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
AbstractDbNgxAnchorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: AbstractDbNgxAnchorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
32
|
+
AbstractDbNgxAnchorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: AbstractDbNgxAnchorDirective, inputs: { anchor: "anchor", disabled: "disabled" }, ngImport: i0 });
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: AbstractDbNgxAnchorDirective, decorators: [{
|
|
34
|
+
type: Directive
|
|
35
|
+
}], propDecorators: { anchor: [{
|
|
36
|
+
type: Input
|
|
37
|
+
}], disabled: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}] } });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5jaG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvcm91dGVyL2FuY2hvci9hbmNob3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQStCLG1CQUFtQixFQUFlLE1BQU0sVUFBVSxDQUFDOztBQUV6Rjs7R0FFRztBQUVILE1BQU0sT0FBTyw0QkFBNEI7SUFEekM7UUFHVSxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQWlCLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBVyxTQUFTLENBQUMsQ0FBQztRQUVsRCxjQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQyxZQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV0RixVQUFLLEdBQTJCLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN6RixHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQ2xFLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0tBb0JIO0lBbEJDLElBQ1csTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQVcsTUFBTSxDQUFDLE1BQWdCO1FBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUNXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBVyxRQUFRLENBQUMsUUFBd0I7UUFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEMsQ0FBQzs7eUhBOUJVLDRCQUE0Qjs2R0FBNUIsNEJBQTRCOzJGQUE1Qiw0QkFBNEI7a0JBRHhDLFNBQVM7OEJBZ0JHLE1BQU07c0JBRGhCLEtBQUs7Z0JBVUssUUFBUTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbHRlck1heWJlLCBza2lwRmlyc3RNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBBbmNob3JUeXBlLCBDbGlja2FibGVBbmNob3IsIGFuY2hvclR5cGVGb3JBbmNob3IsIERiTmd4QW5jaG9yIH0gZnJvbSAnLi9hbmNob3InO1xuXG4vKipcbiAqIEFic3RyYWN0IGFuY2hvciBkaXJlY3RpdmUuXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIEFic3RyYWN0RGJOZ3hBbmNob3JEaXJlY3RpdmU8VCBleHRlbmRzIENsaWNrYWJsZUFuY2hvciA9IENsaWNrYWJsZUFuY2hvcj4gaW1wbGVtZW50cyBEYk5neEFuY2hvciB7XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPGJvb2xlYW4+PihmYWxzZSk7XG4gIHByaXZhdGUgX2FuY2hvciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8VD4+KHVuZGVmaW5lZCk7XG5cbiAgcmVhZG9ubHkgZGlzYWJsZWQkID0gdGhpcy5fZGlzYWJsZWQuYXNPYnNlcnZhYmxlKCk7XG4gIHJlYWRvbmx5IGFuY2hvciQgPSB0aGlzLl9hbmNob3IucGlwZShza2lwRmlyc3RNYXliZSgpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgdHlwZSQ6IE9ic2VydmFibGU8QW5jaG9yVHlwZT4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmRpc2FibGVkJCwgdGhpcy5hbmNob3IkXSkucGlwZShcbiAgICBtYXAoKFtkaXNhYmxlZCwgYW5jaG9yXSkgPT4gYW5jaG9yVHlwZUZvckFuY2hvcihhbmNob3IsIGRpc2FibGVkKSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgYW5jaG9yKCk6IE1heWJlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5fYW5jaG9yLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIHNldCBhbmNob3IoYW5jaG9yOiBNYXliZTxUPikge1xuICAgIHRoaXMuX2FuY2hvci5uZXh0KGFuY2hvcik7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IE1heWJlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgc2V0IGRpc2FibGVkKGRpc2FibGVkOiBNYXliZTxib29sZWFuPikge1xuICAgIHRoaXMuX2Rpc2FibGVkLm5leHQoZGlzYWJsZWQpO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export var AnchorType;
|
|
2
|
+
(function (AnchorType) {
|
|
3
|
+
AnchorType[AnchorType["None"] = 0] = "None";
|
|
4
|
+
AnchorType[AnchorType["Clickable"] = 1] = "Clickable";
|
|
5
|
+
AnchorType[AnchorType["Sref"] = 2] = "Sref";
|
|
6
|
+
AnchorType[AnchorType["Href"] = 3] = "Href";
|
|
7
|
+
AnchorType[AnchorType["Disabled"] = 4] = "Disabled";
|
|
8
|
+
})(AnchorType || (AnchorType = {}));
|
|
9
|
+
export function anchorTypeForAnchor(anchor, disabled) {
|
|
10
|
+
let type = AnchorType.Disabled;
|
|
11
|
+
if (!disabled && anchor) {
|
|
12
|
+
if (anchor.disabled) {
|
|
13
|
+
type = AnchorType.Disabled;
|
|
14
|
+
}
|
|
15
|
+
else if (anchor.ref) {
|
|
16
|
+
type = AnchorType.Sref;
|
|
17
|
+
}
|
|
18
|
+
else if (anchor.onClick) {
|
|
19
|
+
type = AnchorType.Clickable;
|
|
20
|
+
}
|
|
21
|
+
else if (anchor.url) {
|
|
22
|
+
type = AnchorType.Href;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return type;
|
|
26
|
+
}
|
|
27
|
+
export class DbNgxAnchor {
|
|
28
|
+
}
|
|
29
|
+
export function ProvideDbNgxAnchor(sourceType) {
|
|
30
|
+
return [{
|
|
31
|
+
provide: DbNgxAnchor,
|
|
32
|
+
useExisting: sourceType
|
|
33
|
+
}];
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5jaG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9yb3V0ZXIvYW5jaG9yL2FuY2hvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkEsTUFBTSxDQUFOLElBQVksVUFNWDtBQU5ELFdBQVksVUFBVTtJQUNwQiwyQ0FBUSxDQUFBO0lBQ1IscURBQWEsQ0FBQTtJQUNiLDJDQUFRLENBQUE7SUFDUiwyQ0FBUSxDQUFBO0lBQ1IsbURBQVksQ0FBQTtBQUNkLENBQUMsRUFOVyxVQUFVLEtBQVYsVUFBVSxRQU1yQjtBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxNQUE4QixFQUFFLFFBQXlCO0lBQzNGLElBQUksSUFBSSxHQUFlLFVBQVUsQ0FBQyxRQUFRLENBQUM7SUFFM0MsSUFBSSxDQUFDLFFBQVEsSUFBSSxNQUFNLEVBQUU7UUFDdkIsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO1lBQ25CLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQzVCO2FBQU0sSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ3JCLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1NBQ3hCO2FBQU0sSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ3pCLElBQUksR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDO1NBQzdCO2FBQU0sSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ3JCLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1NBQ3hCO0tBQ0Y7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLE9BQWdCLFdBQVc7Q0FNaEM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQXdCLFVBQW1CO0lBQzNFLE9BQU8sQ0FBQztZQUNOLE9BQU8sRUFBRSxXQUFXO1lBQ3BCLFdBQVcsRUFBRSxVQUFVO1NBQ3hCLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbGlja2FibGVGdW5jdGlvbiwgQ2xpY2thYmxlVXJsIH0gZnJvbSAnLi9jbGlja2FibGUnO1xuaW1wb3J0IHsgU2VndWVSZWYgfSBmcm9tICcuLi9zZWd1ZSc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgVHlwZSwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBDbGlja2FibGVBbmNob3IgZXh0ZW5kcyBDbGlja2FibGVGdW5jdGlvbiwgQ2xpY2thYmxlVXJsLCBTZWd1ZVJlZiB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbGlja2FibGVBbmNob3JMaW5rIGV4dGVuZHMgQ2xpY2thYmxlQW5jaG9yIHtcbiAgdGl0bGU6IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbGlja2FibGVJY29uQW5jaG9yTGluayBleHRlbmRzIE9taXQ8Q2xpY2thYmxlQW5jaG9yTGluaywgJ3RpdGxlJz4ge1xuICBpY29uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIEFuY2hvclR5cGUge1xuICBOb25lID0gMCxcbiAgQ2xpY2thYmxlID0gMSxcbiAgU3JlZiA9IDIsXG4gIEhyZWYgPSAzLFxuICBEaXNhYmxlZCA9IDRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFuY2hvclR5cGVGb3JBbmNob3IoYW5jaG9yOiBNYXliZTxDbGlja2FibGVBbmNob3I+LCBkaXNhYmxlZD86IE1heWJlPGJvb2xlYW4+KTogQW5jaG9yVHlwZSB7XG4gIGxldCB0eXBlOiBBbmNob3JUeXBlID0gQW5jaG9yVHlwZS5EaXNhYmxlZDtcblxuICBpZiAoIWRpc2FibGVkICYmIGFuY2hvcikge1xuICAgIGlmIChhbmNob3IuZGlzYWJsZWQpIHtcbiAgICAgIHR5cGUgPSBBbmNob3JUeXBlLkRpc2FibGVkO1xuICAgIH0gZWxzZSBpZiAoYW5jaG9yLnJlZikge1xuICAgICAgdHlwZSA9IEFuY2hvclR5cGUuU3JlZjtcbiAgICB9IGVsc2UgaWYgKGFuY2hvci5vbkNsaWNrKSB7XG4gICAgICB0eXBlID0gQW5jaG9yVHlwZS5DbGlja2FibGU7XG4gICAgfSBlbHNlIGlmIChhbmNob3IudXJsKSB7XG4gICAgICB0eXBlID0gQW5jaG9yVHlwZS5IcmVmO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0eXBlO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGJOZ3hBbmNob3I8VCBleHRlbmRzIENsaWNrYWJsZUFuY2hvciA9IENsaWNrYWJsZUFuY2hvcj4ge1xuICBhYnN0cmFjdCBkaXNhYmxlZCQ6IE9ic2VydmFibGU8TWF5YmU8Ym9vbGVhbj4+O1xuICBhYnN0cmFjdCBhbmNob3IkOiBPYnNlcnZhYmxlPE1heWJlPFQ+PjtcbiAgYWJzdHJhY3QgZGlzYWJsZWQ6IE1heWJlPGJvb2xlYW4+O1xuICBhYnN0cmFjdCBhbmNob3I6IE1heWJlPFQ+O1xuICBhYnN0cmFjdCB0eXBlJDogT2JzZXJ2YWJsZTxBbmNob3JUeXBlPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFByb3ZpZGVEYk5neEFuY2hvcjxTIGV4dGVuZHMgRGJOZ3hBbmNob3I+KHNvdXJjZVR5cGU6IFR5cGU8Uz4pOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIFt7XG4gICAgcHJvdmlkZTogRGJOZ3hBbmNob3IsXG4gICAgdXNlRXhpc3Rpbmc6IHNvdXJjZVR5cGVcbiAgfV07XG59XG4iXX0=
|