@frxjs/ngx-timeline 18.0.6 → 19.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/fesm2022/frxjs-ngx-timeline.mjs +15 -15
- package/fesm2022/frxjs-ngx-timeline.mjs.map +1 -1
- package/package.json +4 -6
- package/style.scss +1 -1
- package/esm2022/frxjs-ngx-timeline.mjs +0 -5
- package/esm2022/lib/components/index.mjs +0 -3
- package/esm2022/lib/components/ngx-timeline-event/ngx-timeline-event.component.mjs +0 -74
- package/esm2022/lib/components/ngx-timeline.component.mjs +0 -202
- package/esm2022/lib/models/NgxConfigObj.mjs +0 -143
- package/esm2022/lib/models/NgxTimelineEvent.mjs +0 -6
- package/esm2022/lib/models/index.mjs +0 -3
- package/esm2022/lib/ngx-timeline.module.mjs +0 -37
- package/esm2022/lib/pipes/index.mjs +0 -2
- package/esm2022/lib/pipes/ngx-date-pipe.mjs +0 -34
- package/esm2022/public-api.mjs +0 -8
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { DatePipe, NgClass, NgTemplateOutlet, TitleCasePipe } from '@angular/common';
|
|
2
|
-
import { Component, Input, Output } from '@angular/core';
|
|
3
|
-
import { BehaviorSubject } from 'rxjs';
|
|
4
|
-
import { defaultSupportedLanguageCode, NgxTimelineOrientation } from '../../models';
|
|
5
|
-
import { NgxTimelineItemPosition } from '../../models/NgxTimelineEvent';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class NgxTimelineEventComponent {
|
|
8
|
-
constructor() {
|
|
9
|
-
/**
|
|
10
|
-
* Language code used to format the dates
|
|
11
|
-
*/
|
|
12
|
-
this.langCode = defaultSupportedLanguageCode;
|
|
13
|
-
/**
|
|
14
|
-
* Boolean used to enable or disable the animations
|
|
15
|
-
*/
|
|
16
|
-
this.enableAnimation = true;
|
|
17
|
-
/**
|
|
18
|
-
* Orientation of the timeline
|
|
19
|
-
*/
|
|
20
|
-
this.orientation = NgxTimelineOrientation.VERTICAL;
|
|
21
|
-
/**
|
|
22
|
-
* Output click event emitter
|
|
23
|
-
*/
|
|
24
|
-
this.clickEmitter = new BehaviorSubject(null);
|
|
25
|
-
this.ngxTimelineItemPosition = NgxTimelineItemPosition;
|
|
26
|
-
this.ngxTimelineOrientation = NgxTimelineOrientation;
|
|
27
|
-
this.monthAbbr = 'MMM';
|
|
28
|
-
this.dayFormat = 'dd';
|
|
29
|
-
}
|
|
30
|
-
getDateObj() {
|
|
31
|
-
let day;
|
|
32
|
-
let month;
|
|
33
|
-
let year;
|
|
34
|
-
const dateTimestamp = this.event?.eventInfo?.timestamp;
|
|
35
|
-
if (dateTimestamp) {
|
|
36
|
-
const timestamp = new Date(dateTimestamp);
|
|
37
|
-
const langCode = this.getLangCode();
|
|
38
|
-
month = new DatePipe(langCode).transform(timestamp, this.monthAbbr);
|
|
39
|
-
day = new DatePipe(langCode).transform(timestamp, this.dayFormat);
|
|
40
|
-
year = timestamp.getFullYear();
|
|
41
|
-
}
|
|
42
|
-
return { day, month, year };
|
|
43
|
-
}
|
|
44
|
-
getLangCode() {
|
|
45
|
-
return this.langCode;
|
|
46
|
-
}
|
|
47
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: NgxTimelineEventComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
48
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.5", type: NgxTimelineEventComponent, isStandalone: true, selector: "ngx-timeline-event", inputs: { event: "event", colSidePosition: "colSidePosition", langCode: "langCode", innerEventCustomTemplate: "innerEventCustomTemplate", eventDescriptionCustomTemplate: "eventDescriptionCustomTemplate", enableAnimation: "enableAnimation", orientation: "orientation" }, outputs: { clickEmitter: "clickEmitter" }, ngImport: i0, template: "<div class=\"event-wrapper-container\" (click)=\"clickEmitter.next(event)\" [ngClass]=\"{'horizontal': orientation === ngxTimelineOrientation.HORIZONTAL}\">\n @if (colSidePosition===ngxTimelineItemPosition.ON_RIGHT) {\n <div class=\"arrow left\"></div>\n }\n <div class=\"event\" [ngClass]=\"{'enableAnimation': enableAnimation}\">\n <ng-container *ngTemplateOutlet=\"innerEventCustomTemplate || innerEventContainer; context: {event: event}\"></ng-container>\n </div>\n @if (colSidePosition === ngxTimelineItemPosition.ON_LEFT) {\n <div class=\"arrow right\"></div>\n }\n</div>\n\n<ng-template #innerEventContainer let-event=event>\n <div class=\"event-container\" [ngClass]=\"{'reverse': colSidePosition === ngxTimelineItemPosition.ON_LEFT}\">\n <div class=\"event-info-container\">\n <div class=\"event-info-header\">\n <div class=\"title-container\">{{event?.eventInfo?.title | titlecase}}</div>\n </div>\n <div class=\"event-info-body\">\n <ng-container *ngTemplateOutlet=\"eventDescriptionCustomTemplate || eventDescriptionContainer; context: {event: event}\"></ng-container>\n </div>\n </div>\n\n <div class=\"event-divider-container\">\n <hr>\n </div>\n\n @if (getDateObj(); as dateObj) {\n <div class=\"event-date-container\">\n <div>\n <p>{{dateObj?.month}}</p>\n </div>\n <div>\n <p class=\"day\">{{dateObj?.day}}</p>\n </div>\n <div>\n <p>{{dateObj?.year}}</p>\n </div>\n </div>\n }\n </div>\n</ng-template>\n\n\n<ng-template #eventDescriptionContainer let-event=event>\n <p class=\"event-info-description\">{{event?.eventInfo?.description}}</p>\n</ng-template>\n", styles: ["::ng-deep :root{--ngx-timeline-period-inner-container: orange;--ngx-timeline-icon: orange;--ngx-timeline-line-background: #464646;--ngx-timeline-flex-display-col: 49 49 0;--ngx-timeline-flex-display-col-center: 2 2 0;--ngx-timeline-event-background: white;--ngx-timeline-event-divider-background: #e9e9e9;---ngx-timeline-event-text-color: black}.event-wrapper-container{display:flex;justify-content:center;align-items:center;cursor:pointer;color:var(--ngx-timeline-event-text-color)}.event-wrapper-container.horizontal{display:flex;flex-direction:column;padding:0 3rem}.event-wrapper-container.horizontal .event-container.reverse{flex-direction:row}.event-wrapper-container.horizontal .event{margin:0}.event-wrapper-container.horizontal .arrow.right{border-left:.5rem solid transparent;border-right:.5rem solid transparent;border-top:.5rem solid var(--ngx-timeline-event-background);border-bottom:none}.event-wrapper-container.horizontal .arrow.left{border-left:.5rem solid transparent;border-right:.5rem solid transparent;border-bottom:.5rem solid var(--ngx-timeline-event-background);border-top:none}.arrow{width:0;height:0;border-top:.5rem solid transparent;border-bottom:.5rem solid transparent;border-radius:6px;z-index:10}.arrow.right{filter:drop-shadow(2px 0px 0px rgba(36,74,110,.1333333333));border-left:.5rem solid var(--ngx-timeline-event-background)}.arrow.left{filter:drop-shadow(-1px 0px 0px rgba(36,74,110,.1333333333));border-right:.5rem solid var(--ngx-timeline-event-background)}.event{background:var(--ngx-timeline-event-background);border-radius:.8rem;padding:1rem;width:100%;margin:1rem 0}.event.enableAnimation:hover{padding:2rem;transition:all .5s ease-in-out}.event.enableAnimation:not(:hover){padding:1rem;transition:all .5s ease-in-out}.event:not(.hour){background:var(--ngx-timeline-event-background) 0% 0% no-repeat padding-box;box-shadow:0 3px 6px #244a6e52}.event.hour{padding:.5rem;background:none;display:flex;justify-content:center;align-items:center}.event.hour.right{justify-content:flex-start}.event.hour.left{justify-content:flex-end}.event .hour-inner-container{margin:0}.event-container{display:flex}.event-container.reverse{flex-direction:row-reverse}.event-container .event-info-container{display:flex;flex-direction:column;align-items:flex-start;padding:.1rem;flex:88 88 0}.event-container .event-info-container .event-info-header{display:flex;align-items:center;width:100%}.event-container .event-info-container .event-info-header .icon-container{margin-right:.3rem}.event-container .event-info-container .event-info-header .title-container{font-weight:700;font-size:15px}.event-container .event-info-container .event-info-body{padding:.5rem 0;display:flex;flex-direction:column;justify-content:flex-start;overflow-wrap:anywhere}.event-container .event-info-container .event-info-body .event-info-description{margin-bottom:.5rem;font-size:13px}.event-container .event-info-container .event-info-body .expiration-container,.event-container .event-info-container .event-info-body .category-container{display:flex;font-size:13px;justify-content:flex-start;align-items:center}.event-container .event-info-container .event-info-body .expiration-container p,.event-container .event-info-container .event-info-body .category-container p{font-size:13px;margin:0}.event-container .event-info-container .event-info-body .expiration-container .expiration-label,.event-container .event-info-container .event-info-body .expiration-container .category-label,.event-container .event-info-container .event-info-body .category-container .expiration-label,.event-container .event-info-container .event-info-body .category-container .category-label{margin-right:.5rem}.event-container .event-info-container .event-info-body .expiration-container .expiration-value,.event-container .event-info-container .event-info-body .expiration-container .category-value,.event-container .event-info-container .event-info-body .category-container .expiration-value,.event-container .event-info-container .event-info-body .category-container .category-value{font-weight:700}.event-container .event-info-container .event-info-footer{font-size:15px;cursor:pointer;padding-top:1rem}.event-container .event-info-container .event-info-footer .footer-inner-container{display:flex;justify-content:flex-start;align-items:flex-end}.event-container .event-divider-container{display:flex;justify-content:center;align-items:center;padding:.1rem;flex:5 5 0}.event-container .event-divider-container hr{height:100%;width:1px;background:var(--ngx-timeline-event-divider-background)}.event-container .event-date-container{display:flex;justify-content:center;align-items:center;flex-direction:column;padding:.1rem;flex:15 15 0}.event-container .event-date-container p{margin:0;text-align:center}.event-container .event-date-container p.day{font-size:32px;font-weight:700;padding:.5rem 0}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: TitleCasePipe, name: "titlecase" }] }); }
|
|
49
|
-
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: NgxTimelineEventComponent, decorators: [{
|
|
51
|
-
type: Component,
|
|
52
|
-
args: [{ selector: 'ngx-timeline-event', standalone: true, imports: [
|
|
53
|
-
NgClass,
|
|
54
|
-
NgTemplateOutlet,
|
|
55
|
-
TitleCasePipe,
|
|
56
|
-
], template: "<div class=\"event-wrapper-container\" (click)=\"clickEmitter.next(event)\" [ngClass]=\"{'horizontal': orientation === ngxTimelineOrientation.HORIZONTAL}\">\n @if (colSidePosition===ngxTimelineItemPosition.ON_RIGHT) {\n <div class=\"arrow left\"></div>\n }\n <div class=\"event\" [ngClass]=\"{'enableAnimation': enableAnimation}\">\n <ng-container *ngTemplateOutlet=\"innerEventCustomTemplate || innerEventContainer; context: {event: event}\"></ng-container>\n </div>\n @if (colSidePosition === ngxTimelineItemPosition.ON_LEFT) {\n <div class=\"arrow right\"></div>\n }\n</div>\n\n<ng-template #innerEventContainer let-event=event>\n <div class=\"event-container\" [ngClass]=\"{'reverse': colSidePosition === ngxTimelineItemPosition.ON_LEFT}\">\n <div class=\"event-info-container\">\n <div class=\"event-info-header\">\n <div class=\"title-container\">{{event?.eventInfo?.title | titlecase}}</div>\n </div>\n <div class=\"event-info-body\">\n <ng-container *ngTemplateOutlet=\"eventDescriptionCustomTemplate || eventDescriptionContainer; context: {event: event}\"></ng-container>\n </div>\n </div>\n\n <div class=\"event-divider-container\">\n <hr>\n </div>\n\n @if (getDateObj(); as dateObj) {\n <div class=\"event-date-container\">\n <div>\n <p>{{dateObj?.month}}</p>\n </div>\n <div>\n <p class=\"day\">{{dateObj?.day}}</p>\n </div>\n <div>\n <p>{{dateObj?.year}}</p>\n </div>\n </div>\n }\n </div>\n</ng-template>\n\n\n<ng-template #eventDescriptionContainer let-event=event>\n <p class=\"event-info-description\">{{event?.eventInfo?.description}}</p>\n</ng-template>\n", styles: ["::ng-deep :root{--ngx-timeline-period-inner-container: orange;--ngx-timeline-icon: orange;--ngx-timeline-line-background: #464646;--ngx-timeline-flex-display-col: 49 49 0;--ngx-timeline-flex-display-col-center: 2 2 0;--ngx-timeline-event-background: white;--ngx-timeline-event-divider-background: #e9e9e9;---ngx-timeline-event-text-color: black}.event-wrapper-container{display:flex;justify-content:center;align-items:center;cursor:pointer;color:var(--ngx-timeline-event-text-color)}.event-wrapper-container.horizontal{display:flex;flex-direction:column;padding:0 3rem}.event-wrapper-container.horizontal .event-container.reverse{flex-direction:row}.event-wrapper-container.horizontal .event{margin:0}.event-wrapper-container.horizontal .arrow.right{border-left:.5rem solid transparent;border-right:.5rem solid transparent;border-top:.5rem solid var(--ngx-timeline-event-background);border-bottom:none}.event-wrapper-container.horizontal .arrow.left{border-left:.5rem solid transparent;border-right:.5rem solid transparent;border-bottom:.5rem solid var(--ngx-timeline-event-background);border-top:none}.arrow{width:0;height:0;border-top:.5rem solid transparent;border-bottom:.5rem solid transparent;border-radius:6px;z-index:10}.arrow.right{filter:drop-shadow(2px 0px 0px rgba(36,74,110,.1333333333));border-left:.5rem solid var(--ngx-timeline-event-background)}.arrow.left{filter:drop-shadow(-1px 0px 0px rgba(36,74,110,.1333333333));border-right:.5rem solid var(--ngx-timeline-event-background)}.event{background:var(--ngx-timeline-event-background);border-radius:.8rem;padding:1rem;width:100%;margin:1rem 0}.event.enableAnimation:hover{padding:2rem;transition:all .5s ease-in-out}.event.enableAnimation:not(:hover){padding:1rem;transition:all .5s ease-in-out}.event:not(.hour){background:var(--ngx-timeline-event-background) 0% 0% no-repeat padding-box;box-shadow:0 3px 6px #244a6e52}.event.hour{padding:.5rem;background:none;display:flex;justify-content:center;align-items:center}.event.hour.right{justify-content:flex-start}.event.hour.left{justify-content:flex-end}.event .hour-inner-container{margin:0}.event-container{display:flex}.event-container.reverse{flex-direction:row-reverse}.event-container .event-info-container{display:flex;flex-direction:column;align-items:flex-start;padding:.1rem;flex:88 88 0}.event-container .event-info-container .event-info-header{display:flex;align-items:center;width:100%}.event-container .event-info-container .event-info-header .icon-container{margin-right:.3rem}.event-container .event-info-container .event-info-header .title-container{font-weight:700;font-size:15px}.event-container .event-info-container .event-info-body{padding:.5rem 0;display:flex;flex-direction:column;justify-content:flex-start;overflow-wrap:anywhere}.event-container .event-info-container .event-info-body .event-info-description{margin-bottom:.5rem;font-size:13px}.event-container .event-info-container .event-info-body .expiration-container,.event-container .event-info-container .event-info-body .category-container{display:flex;font-size:13px;justify-content:flex-start;align-items:center}.event-container .event-info-container .event-info-body .expiration-container p,.event-container .event-info-container .event-info-body .category-container p{font-size:13px;margin:0}.event-container .event-info-container .event-info-body .expiration-container .expiration-label,.event-container .event-info-container .event-info-body .expiration-container .category-label,.event-container .event-info-container .event-info-body .category-container .expiration-label,.event-container .event-info-container .event-info-body .category-container .category-label{margin-right:.5rem}.event-container .event-info-container .event-info-body .expiration-container .expiration-value,.event-container .event-info-container .event-info-body .expiration-container .category-value,.event-container .event-info-container .event-info-body .category-container .expiration-value,.event-container .event-info-container .event-info-body .category-container .category-value{font-weight:700}.event-container .event-info-container .event-info-footer{font-size:15px;cursor:pointer;padding-top:1rem}.event-container .event-info-container .event-info-footer .footer-inner-container{display:flex;justify-content:flex-start;align-items:flex-end}.event-container .event-divider-container{display:flex;justify-content:center;align-items:center;padding:.1rem;flex:5 5 0}.event-container .event-divider-container hr{height:100%;width:1px;background:var(--ngx-timeline-event-divider-background)}.event-container .event-date-container{display:flex;justify-content:center;align-items:center;flex-direction:column;padding:.1rem;flex:15 15 0}.event-container .event-date-container p{margin:0;text-align:center}.event-container .event-date-container p.day{font-size:32px;font-weight:700;padding:.5rem 0}\n"] }]
|
|
57
|
-
}], ctorParameters: () => [], propDecorators: { event: [{
|
|
58
|
-
type: Input
|
|
59
|
-
}], colSidePosition: [{
|
|
60
|
-
type: Input
|
|
61
|
-
}], langCode: [{
|
|
62
|
-
type: Input
|
|
63
|
-
}], innerEventCustomTemplate: [{
|
|
64
|
-
type: Input
|
|
65
|
-
}], eventDescriptionCustomTemplate: [{
|
|
66
|
-
type: Input
|
|
67
|
-
}], enableAnimation: [{
|
|
68
|
-
type: Input
|
|
69
|
-
}], orientation: [{
|
|
70
|
-
type: Input
|
|
71
|
-
}], clickEmitter: [{
|
|
72
|
-
type: Output
|
|
73
|
-
}] } });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRpbWVsaW5lLWV2ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10aW1lbGluZS9zcmMvbGliL2NvbXBvbmVudHMvbmd4LXRpbWVsaW5lLWV2ZW50L25neC10aW1lbGluZS1ldmVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGltZWxpbmUvc3JjL2xpYi9jb21wb25lbnRzL25neC10aW1lbGluZS1ldmVudC9uZ3gtdGltZWxpbmUtZXZlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDbkYsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFckMsT0FBTyxFQUFDLDRCQUE0QixFQUFFLHNCQUFzQixFQUF3QixNQUFNLGNBQWMsQ0FBQztBQUN6RyxPQUFPLEVBQWtCLHVCQUF1QixFQUFDLE1BQU0sK0JBQStCLENBQUM7O0FBYXZGLE1BQU0sT0FBTyx5QkFBeUI7SUF3Q3BDO1FBL0JBOztXQUVHO1FBQ00sYUFBUSxHQUEwQiw0QkFBNEIsQ0FBQztRQVN4RTs7V0FFRztRQUNNLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ2hDOztXQUVHO1FBQ00sZ0JBQVcsR0FBMkIsc0JBQXNCLENBQUMsUUFBUSxDQUFDO1FBQy9FOztXQUVHO1FBQ08saUJBQVksR0FBcUMsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckYsNEJBQXVCLEdBQUcsdUJBQXVCLENBQUM7UUFDbEQsMkJBQXNCLEdBQUcsc0JBQXNCLENBQUM7UUFFL0IsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixjQUFTLEdBQUcsSUFBSSxDQUFDO0lBRWxCLENBQUM7SUFFakIsVUFBVTtRQUNSLElBQUksR0FBRyxDQUFDO1FBQ1IsSUFBSSxLQUFLLENBQUM7UUFDVixJQUFJLElBQUksQ0FBQztRQUNULE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQztRQUN2RCxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzFDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNwQyxLQUFLLEdBQUcsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDcEUsR0FBRyxHQUFHLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2xFLElBQUksR0FBRyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakMsQ0FBQztRQUVELE9BQU8sRUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQyxDQUFDO0lBQzVCLENBQUM7SUFFUyxXQUFXO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDOzhHQTVEVSx5QkFBeUI7a0dBQXpCLHlCQUF5Qix1WUNsQnRDLGtzREErQ0EsNDBKRGxDSSxPQUFPLG9GQUNQLGdCQUFnQiwrSUFDaEIsYUFBYTs7MkZBR0oseUJBQXlCO2tCQVhyQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBR1A7d0JBQ1AsT0FBTzt3QkFDUCxnQkFBZ0I7d0JBQ2hCLGFBQWE7cUJBQ2Q7d0RBTVEsS0FBSztzQkFBYixLQUFLO2dCQUlHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFJRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBSUcsOEJBQThCO3NCQUF0QyxLQUFLO2dCQUlHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBSUcsV0FBVztzQkFBbkIsS0FBSztnQkFJSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRlUGlwZSwgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCwgVGl0bGVDYXNlUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBUZW1wbGF0ZVJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7ZGVmYXVsdFN1cHBvcnRlZExhbmd1YWdlQ29kZSwgTmd4VGltZWxpbmVPcmllbnRhdGlvbiwgU3VwcG9ydGVkTGFuZ3VhZ2VDb2RlfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtOZ3hUaW1lbGluZUl0ZW0sIE5neFRpbWVsaW5lSXRlbVBvc2l0aW9ufSBmcm9tICcuLi8uLi9tb2RlbHMvTmd4VGltZWxpbmVFdmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC10aW1lbGluZS1ldmVudCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiAnLi9uZ3gtdGltZWxpbmUtZXZlbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbmd4LXRpbWVsaW5lLWV2ZW50LmNvbXBvbmVudC5zY3NzJyxcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBUaXRsZUNhc2VQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hUaW1lbGluZUV2ZW50Q29tcG9uZW50IHtcbiAgLyoqXG4gICAqIEV2ZW50IHRvIGJlIGRpc3BsYXllZFxuICAgKi9cbiAgQElucHV0KCkgZXZlbnQhOiBOZ3hUaW1lbGluZUl0ZW07XG4gIC8qKlxuICAgKiBFdmVudCBwb3NpdGlvbiByZXNwZWN0IHRvIHRoZSB2ZXJ0aWNhbCBsaW5lIChMRUZUIG9yIFJJR0hUKVxuICAgKi9cbiAgQElucHV0KCkgY29sU2lkZVBvc2l0aW9uPzogTmd4VGltZWxpbmVJdGVtUG9zaXRpb247XG4gIC8qKlxuICAgKiBMYW5ndWFnZSBjb2RlIHVzZWQgdG8gZm9ybWF0IHRoZSBkYXRlc1xuICAgKi9cbiAgQElucHV0KCkgbGFuZ0NvZGU6IFN1cHBvcnRlZExhbmd1YWdlQ29kZSA9IGRlZmF1bHRTdXBwb3J0ZWRMYW5ndWFnZUNvZGU7XG4gIC8qKlxuICAgKiBJbm5lciBjdXN0b20gdGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IHRoZSBldmVudCBkZXRhaWxcbiAgICovXG4gIEBJbnB1dCgpIGlubmVyRXZlbnRDdXN0b21UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gIC8qKlxuICAgKiBJbm5lciBjdXN0b20gdGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IHRoZSBldmVudCBkZXNjcmlwdGlvblxuICAgKi9cbiAgQElucHV0KCkgZXZlbnREZXNjcmlwdGlvbkN1c3RvbVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgLyoqXG4gICAqIEJvb2xlYW4gdXNlZCB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgYW5pbWF0aW9uc1xuICAgKi9cbiAgQElucHV0KCkgZW5hYmxlQW5pbWF0aW9uID0gdHJ1ZTtcbiAgLyoqXG4gICAqIE9yaWVudGF0aW9uIG9mIHRoZSB0aW1lbGluZVxuICAgKi9cbiAgQElucHV0KCkgb3JpZW50YXRpb246IE5neFRpbWVsaW5lT3JpZW50YXRpb24gPSBOZ3hUaW1lbGluZU9yaWVudGF0aW9uLlZFUlRJQ0FMO1xuICAvKipcbiAgICogT3V0cHV0IGNsaWNrIGV2ZW50IGVtaXR0ZXJcbiAgICovXG4gIEBPdXRwdXQoKSBjbGlja0VtaXR0ZXI6IEJlaGF2aW9yU3ViamVjdDxOZ3hUaW1lbGluZUl0ZW0+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcblxuICBuZ3hUaW1lbGluZUl0ZW1Qb3NpdGlvbiA9IE5neFRpbWVsaW5lSXRlbVBvc2l0aW9uO1xuICBuZ3hUaW1lbGluZU9yaWVudGF0aW9uID0gTmd4VGltZWxpbmVPcmllbnRhdGlvbjtcblxuICBwcml2YXRlIHJlYWRvbmx5IG1vbnRoQWJiciA9ICdNTU0nO1xuICBwcml2YXRlIHJlYWRvbmx5IGRheUZvcm1hdCA9ICdkZCc7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBnZXREYXRlT2JqKCk6IGFueSB7XG4gICAgbGV0IGRheTtcbiAgICBsZXQgbW9udGg7XG4gICAgbGV0IHllYXI7XG4gICAgY29uc3QgZGF0ZVRpbWVzdGFtcCA9IHRoaXMuZXZlbnQ/LmV2ZW50SW5mbz8udGltZXN0YW1wO1xuICAgIGlmIChkYXRlVGltZXN0YW1wKSB7XG4gICAgICBjb25zdCB0aW1lc3RhbXAgPSBuZXcgRGF0ZShkYXRlVGltZXN0YW1wKTtcbiAgICAgIGNvbnN0IGxhbmdDb2RlID0gdGhpcy5nZXRMYW5nQ29kZSgpO1xuICAgICAgbW9udGggPSBuZXcgRGF0ZVBpcGUobGFuZ0NvZGUpLnRyYW5zZm9ybSh0aW1lc3RhbXAsIHRoaXMubW9udGhBYmJyKTtcbiAgICAgIGRheSA9IG5ldyBEYXRlUGlwZShsYW5nQ29kZSkudHJhbnNmb3JtKHRpbWVzdGFtcCwgdGhpcy5kYXlGb3JtYXQpO1xuICAgICAgeWVhciA9IHRpbWVzdGFtcC5nZXRGdWxsWWVhcigpO1xuICAgIH1cblxuICAgIHJldHVybiB7ZGF5LCBtb250aCwgeWVhcn07XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0TGFuZ0NvZGUoKTogU3VwcG9ydGVkTGFuZ3VhZ2VDb2RlIHtcbiAgICByZXR1cm4gdGhpcy5sYW5nQ29kZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImV2ZW50LXdyYXBwZXItY29udGFpbmVyXCIgKGNsaWNrKT1cImNsaWNrRW1pdHRlci5uZXh0KGV2ZW50KVwiIFtuZ0NsYXNzXT1cInsnaG9yaXpvbnRhbCc6IG9yaWVudGF0aW9uID09PSBuZ3hUaW1lbGluZU9yaWVudGF0aW9uLkhPUklaT05UQUx9XCI+XG4gIEBpZiAoY29sU2lkZVBvc2l0aW9uPT09bmd4VGltZWxpbmVJdGVtUG9zaXRpb24uT05fUklHSFQpIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXJyb3cgbGVmdFwiPjwvZGl2PlxuICB9XG4gIDxkaXYgY2xhc3M9XCJldmVudFwiIFtuZ0NsYXNzXT1cInsnZW5hYmxlQW5pbWF0aW9uJzogZW5hYmxlQW5pbWF0aW9ufVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbm5lckV2ZW50Q3VzdG9tVGVtcGxhdGUgfHwgaW5uZXJFdmVudENvbnRhaW5lcjsgY29udGV4dDoge2V2ZW50OiBldmVudH1cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIEBpZiAoY29sU2lkZVBvc2l0aW9uID09PSBuZ3hUaW1lbGluZUl0ZW1Qb3NpdGlvbi5PTl9MRUZUKSB7XG4gICAgPGRpdiBjbGFzcz1cImFycm93IHJpZ2h0XCI+PC9kaXY+XG4gIH1cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2lubmVyRXZlbnRDb250YWluZXIgbGV0LWV2ZW50PWV2ZW50PlxuICA8ZGl2IGNsYXNzPVwiZXZlbnQtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieydyZXZlcnNlJzogY29sU2lkZVBvc2l0aW9uID09PSBuZ3hUaW1lbGluZUl0ZW1Qb3NpdGlvbi5PTl9MRUZUfVwiPlxuICAgIDxkaXYgY2xhc3M9XCJldmVudC1pbmZvLWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LWluZm8taGVhZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1jb250YWluZXJcIj57e2V2ZW50Py5ldmVudEluZm8/LnRpdGxlIHwgdGl0bGVjYXNlfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LWluZm8tYm9keVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXZlbnREZXNjcmlwdGlvbkN1c3RvbVRlbXBsYXRlIHx8IGV2ZW50RGVzY3JpcHRpb25Db250YWluZXI7IGNvbnRleHQ6IHtldmVudDogZXZlbnR9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJldmVudC1kaXZpZGVyLWNvbnRhaW5lclwiPlxuICAgICAgPGhyPlxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChnZXREYXRlT2JqKCk7IGFzIGRhdGVPYmopIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJldmVudC1kYXRlLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxwPnt7ZGF0ZU9iaj8ubW9udGh9fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPHAgY2xhc3M9XCJkYXlcIj57e2RhdGVPYmo/LmRheX19PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8cD57e2RhdGVPYmo/LnllYXJ9fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuXG48bmctdGVtcGxhdGUgI2V2ZW50RGVzY3JpcHRpb25Db250YWluZXIgbGV0LWV2ZW50PWV2ZW50PlxuICA8cCBjbGFzcz1cImV2ZW50LWluZm8tZGVzY3JpcHRpb25cIj57e2V2ZW50Py5ldmVudEluZm8/LmRlc2NyaXB0aW9ufX08L3A+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
import { NgClass, NgTemplateOutlet } from '@angular/common';
|
|
2
|
-
import { Component, inject, Input, IterableDiffers, Output } from '@angular/core';
|
|
3
|
-
import { BehaviorSubject } from 'rxjs';
|
|
4
|
-
import { NgxTimelineEventComponent } from './ngx-timeline-event/ngx-timeline-event.component';
|
|
5
|
-
import { NgxTimelineItemPosition, NgxTimelineOrientation, NgxDateFormat, NgxTimelineEventGroup, NgxTimelineEventChangeSide, periodKeyDateFormat, fieldsToCheckEventChangeSideInGroup as fieldsToCheckEventChangeSide, fieldsToAddEventGroup, defaultSupportedLanguageCode, } from '../models';
|
|
6
|
-
import { NgxDatePipe } from '../pipes';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export class NgxTimelineComponent {
|
|
9
|
-
constructor() {
|
|
10
|
-
/**
|
|
11
|
-
* Language code used to show the date formatted
|
|
12
|
-
*/
|
|
13
|
-
this.langCode = defaultSupportedLanguageCode;
|
|
14
|
-
/**
|
|
15
|
-
* Boolean used to enable or disable the animations
|
|
16
|
-
*/
|
|
17
|
-
this.enableAnimation = true;
|
|
18
|
-
/**
|
|
19
|
-
* Boolean used to reverse sort order (default older first)
|
|
20
|
-
*/
|
|
21
|
-
this.reverseOrder = false;
|
|
22
|
-
/**
|
|
23
|
-
* Orientation of the timeline
|
|
24
|
-
*/
|
|
25
|
-
this.orientation = NgxTimelineOrientation.VERTICAL;
|
|
26
|
-
/**
|
|
27
|
-
* Logic to be applied in order to group events
|
|
28
|
-
*/
|
|
29
|
-
this.groupEvent = NgxTimelineEventGroup.MONTH_YEAR;
|
|
30
|
-
/**
|
|
31
|
-
* Logic to be applied in order to put events on LEFT or RIGHT
|
|
32
|
-
*/
|
|
33
|
-
this.changeSide = NgxTimelineEventChangeSide.ON_DIFFERENT_DAY_IN_GROUP;
|
|
34
|
-
/**
|
|
35
|
-
* Output click event emitter
|
|
36
|
-
*/
|
|
37
|
-
this.clickEmitter = new BehaviorSubject(null);
|
|
38
|
-
this.groups = {};
|
|
39
|
-
this.periods = [];
|
|
40
|
-
this.items = [];
|
|
41
|
-
this.ngxTimelineItemPosition = NgxTimelineItemPosition;
|
|
42
|
-
this.ngxTimelineOrientation = NgxTimelineOrientation;
|
|
43
|
-
this.ngxDateFormat = NgxDateFormat;
|
|
44
|
-
this.differs = inject(IterableDiffers);
|
|
45
|
-
this.iterableDiffer = this.differs.find([]).create();
|
|
46
|
-
this.separator = '/';
|
|
47
|
-
}
|
|
48
|
-
ngOnInit() {
|
|
49
|
-
this.groupEvents(this.events);
|
|
50
|
-
}
|
|
51
|
-
ngOnChanges() {
|
|
52
|
-
this.groupEvents(this.events);
|
|
53
|
-
}
|
|
54
|
-
ngDoCheck() {
|
|
55
|
-
const changes = this.iterableDiffer.diff(this.events);
|
|
56
|
-
if (changes) {
|
|
57
|
-
this.groupEvents(this.events);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
getPeriodKeyDateFormat() {
|
|
61
|
-
return periodKeyDateFormat[this.groupEvent];
|
|
62
|
-
}
|
|
63
|
-
clear() {
|
|
64
|
-
this.groups = {};
|
|
65
|
-
this.periods = [];
|
|
66
|
-
this.items = [];
|
|
67
|
-
}
|
|
68
|
-
groupEvents(events) {
|
|
69
|
-
if (events) {
|
|
70
|
-
this.clear();
|
|
71
|
-
this.sortEvents(events);
|
|
72
|
-
this.setGroupsAndPeriods(events);
|
|
73
|
-
this.setItems();
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
sortEvents(events) {
|
|
77
|
-
events.sort((a, b) => {
|
|
78
|
-
const aTime = a.timestamp.getTime();
|
|
79
|
-
const bTime = b.timestamp.getTime();
|
|
80
|
-
return this.reverseOrder ? bTime - aTime : aTime - bTime;
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
setGroupsAndPeriods(events) {
|
|
84
|
-
this.periods = [];
|
|
85
|
-
events.forEach((event) => {
|
|
86
|
-
// conversion from string to actual Date
|
|
87
|
-
event.timestamp = new Date(event.timestamp);
|
|
88
|
-
const periodKey = this.getPeriodKeyFromEvent(event);
|
|
89
|
-
if (!this.groups[periodKey]) {
|
|
90
|
-
this.groups[periodKey] = [];
|
|
91
|
-
this.periods.push(this.getPeriodInfoFromPeriodKey(periodKey, event));
|
|
92
|
-
}
|
|
93
|
-
this.groups[periodKey].push(event);
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
setItems() {
|
|
97
|
-
let isLastItemOnLeft = false;
|
|
98
|
-
this.periods.forEach((p) => {
|
|
99
|
-
// insert first the period
|
|
100
|
-
this.items.push(p);
|
|
101
|
-
// in each period putting items on left
|
|
102
|
-
let onLeft = true;
|
|
103
|
-
if (this.changeSide === NgxTimelineEventChangeSide.ALL) {
|
|
104
|
-
onLeft = !isLastItemOnLeft;
|
|
105
|
-
}
|
|
106
|
-
const periodInfo = p.periodInfo;
|
|
107
|
-
// insert then all the events in this period
|
|
108
|
-
isLastItemOnLeft = this.addPeriodEvents(periodInfo, onLeft);
|
|
109
|
-
// onLeft = this.addEventItemsAndGetIfOnLeft(periodInfo, onLeft);
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
addPeriodEvents(periodInfo, onLeft) {
|
|
113
|
-
this.groups[periodInfo.periodKey].forEach((event, index) => {
|
|
114
|
-
const prevEvent = this.groups[periodInfo.periodKey][index - 1];
|
|
115
|
-
if (event.itemPosition) {
|
|
116
|
-
onLeft = event.itemPosition && event.itemPosition === NgxTimelineItemPosition.ON_LEFT;
|
|
117
|
-
}
|
|
118
|
-
else if (index > 0 && this.compareEvents(prevEvent, event)) {
|
|
119
|
-
onLeft = !onLeft;
|
|
120
|
-
}
|
|
121
|
-
this.pushEventOnItems(event, onLeft);
|
|
122
|
-
});
|
|
123
|
-
return onLeft;
|
|
124
|
-
}
|
|
125
|
-
pushEventOnItems(event, onLeft) {
|
|
126
|
-
this.items.push({
|
|
127
|
-
eventInfo: { ...event }, position: onLeft ?
|
|
128
|
-
this.ngxTimelineItemPosition.ON_LEFT : this.ngxTimelineItemPosition.ON_RIGHT,
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Compare the events inside the same group
|
|
133
|
-
*/
|
|
134
|
-
compareEvents(prevEvent, event) {
|
|
135
|
-
return this.shouldChangeEventsInPeriod() ||
|
|
136
|
-
this.compareEventsField(prevEvent, event, ...fieldsToCheckEventChangeSide[this.changeSide]);
|
|
137
|
-
}
|
|
138
|
-
compareEventsField(prevEvent, event, ...fields) {
|
|
139
|
-
return fields.reduce((res, field) => res = res || prevEvent.timestamp[field]() !== event.timestamp[field](), false);
|
|
140
|
-
}
|
|
141
|
-
getPeriodInfoFromPeriodKey(periodKey, firstGroupEvent) {
|
|
142
|
-
const split = periodKey.split(this.separator);
|
|
143
|
-
return this.getPeriodInfo(split, periodKey, firstGroupEvent);
|
|
144
|
-
}
|
|
145
|
-
getPeriodInfo(split, periodKey, firstGroupEvent) {
|
|
146
|
-
return {
|
|
147
|
-
periodInfo: {
|
|
148
|
-
year: Number(split[0]),
|
|
149
|
-
month: Number(split[1]),
|
|
150
|
-
day: Number(split[2]),
|
|
151
|
-
periodKey,
|
|
152
|
-
firstDate: firstGroupEvent.timestamp,
|
|
153
|
-
},
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
shouldChangeEventsInPeriod() {
|
|
157
|
-
return [NgxTimelineEventChangeSide.ALL_IN_GROUP, NgxTimelineEventChangeSide.ALL].indexOf(this.changeSide) != -1;
|
|
158
|
-
}
|
|
159
|
-
getPeriodKeyFromEvent(event) {
|
|
160
|
-
return fieldsToAddEventGroup[this.groupEvent].map((field) => event.timestamp[field]()).join(this.separator);
|
|
161
|
-
}
|
|
162
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: NgxTimelineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
163
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.5", type: NgxTimelineComponent, isStandalone: true, selector: "ngx-timeline", inputs: { events: "events", langCode: "langCode", enableAnimation: "enableAnimation", reverseOrder: "reverseOrder", orientation: "orientation", groupEvent: "groupEvent", changeSide: "changeSide", periodCustomTemplate: "periodCustomTemplate", eventCustomTemplate: "eventCustomTemplate", centerIconCustomTemplate: "centerIconCustomTemplate", dateInstantCustomTemplate: "dateInstantCustomTemplate", innerEventCustomTemplate: "innerEventCustomTemplate", eventDescriptionCustomTemplate: "eventDescriptionCustomTemplate" }, outputs: { clickEmitter: "clickEmitter" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"main-container\">\r\n <div class=\"items-container\" [ngClass]=\"{'horizontal': orientation === ngxTimelineOrientation.HORIZONTAL}\">\r\n @for (item of items; track item; let index = $index) {\r\n <div class=\"row\">\r\n <!-- DESKTOP -->\r\n <div class=\"col col-left desktop\" [ngClass]=\"item.periodInfo ? 'col-period' : 'col-event'\">\r\n @if (item.eventInfo && item.position === ngxTimelineItemPosition.ON_LEFT) {\r\n <div class=\"event-outer-container\">\r\n <ng-container *ngTemplateOutlet=\"eventCustomTemplate || eventTemplate; context: {event: item, colSidePosition: ngxTimelineItemPosition.ON_LEFT}\"></ng-container>\r\n </div>\r\n }\r\n @if (item.eventInfo && item.position === ngxTimelineItemPosition.ON_RIGHT) {\r\n <div class=\"hour left\">\r\n <ng-container *ngTemplateOutlet=\"dateInstantCustomTemplate || dateInstantTemplate; context: {item: item.eventInfo}\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"col col-center desktop\" [ngClass]=\"item.periodInfo ? 'col-period' : 'col-event'\">\r\n @if (item.periodInfo) {\r\n <div class=\"center-inner\">\r\n <ng-container *ngTemplateOutlet=\"periodContainerTemplate; context: {period: item.periodInfo, index: index, event: item}\"></ng-container>\r\n </div>\r\n }\r\n @if (!item.periodInfo) {\r\n <div class=\"center-inner no-period-key\">\r\n <ng-container *ngTemplateOutlet=\"centerLinesIconTemplate; context: {event: item, index: index}\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"col col-right desktop\" [ngClass]=\"item.periodInfo ? 'col-period' : 'col-event'\">\r\n @if (item.eventInfo && item.position === ngxTimelineItemPosition.ON_RIGHT) {\r\n <div class=\"event-outer-container\">\r\n <ng-container *ngTemplateOutlet=\"eventCustomTemplate || eventTemplate; context: {event: item, colSidePosition: ngxTimelineItemPosition.ON_RIGHT}\"></ng-container>\r\n </div>\r\n }\r\n @if (item.eventInfo && item.position === ngxTimelineItemPosition.ON_LEFT) {\r\n <div class=\"hour right\">\r\n <ng-container *ngTemplateOutlet=\"dateInstantCustomTemplate || dateInstantTemplate; context: {item: item.eventInfo}\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n <!-- MOBILE -->\r\n <div class=\"col col-left mobile\" [ngClass]=\"item.periodInfo ? 'col-period' : 'col-event'\">\r\n @if (item.eventInfo) {\r\n <div class=\"hour left\">\r\n <div class=\"hour-inner-container\">\r\n <ng-container *ngTemplateOutlet=\"dateInstantCustomTemplate || dateInstantTemplate; context: {item: item.eventInfo}\"></ng-container>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"col col-center mobile\" [ngClass]=\"item.periodInfo ? 'col-period' : 'col-event'\">\r\n @if (item.periodInfo; ) {\r\n <div class=\"center-inner\">\r\n <ng-container *ngTemplateOutlet=\"periodContainerTemplate; context: {period: item.periodInfo, index: index, event: item}\"></ng-container>\r\n </div>\r\n }\r\n @if (!item.periodInfo; ) {\r\n <div class=\"center-inner no-period-key\">\r\n <ng-container *ngTemplateOutlet=\"centerLinesIconTemplate; context: {event: item, index: index}\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"col col-right mobile\" [ngClass]=\"item.periodInfo ? 'col-period' : 'col-event'\">\r\n @if (item.eventInfo) {\r\n <div class=\"event-outer-container\">\r\n <ng-container *ngTemplateOutlet=\"eventCustomTemplate || eventTemplate; context: {event: item, colSidePosition: ngxTimelineItemPosition.ON_RIGHT}\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n\r\n\r\n<ng-template #centerLinesIconTemplate let-index=index let-event=event>\r\n <div class=\"line\"></div>\r\n <ng-container *ngTemplateOutlet=\"centerIconCustomTemplate || centerIconTemplate; context: {index:index, event:event}\"></ng-container>\r\n <div [ngClass]=\"{'transparent last-line': index === items.length - 1}\" class=\"line\"></div>\r\n</ng-template>\r\n\r\n<ng-template #centerIconTemplate let-index=index let-event=event>\r\n <div class=\"center-icon-container\">\r\n <div class=\"icon\"></div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #dateInstantTemplate let-item=item>\r\n <span>\r\n {{item?.timestamp | ngxdate : ngxDateFormat.HOURS_MINUTES : langCode}}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #periodContainerTemplate let-period=period let-index=index let-event=event>\r\n <div class=\"period-container\">\r\n <ng-container *ngTemplateOutlet=\"periodCustomTemplate || periodTemplate; context: {period: period, index:index, event:event}\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #periodTemplate let-period=period>\r\n <div class=\"period-inner-container\">\r\n <span>{{period?.firstDate | ngxdate : getPeriodKeyDateFormat() : langCode}}</span>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n<ng-template #eventTemplate let-event=event let-colSidePosition=colSidePosition>\r\n <ngx-timeline-event\r\n [event]=\"event\"\r\n [langCode]=\"langCode\"\r\n [orientation]=\"orientation\"\r\n [enableAnimation]=\"enableAnimation\"\r\n [innerEventCustomTemplate]=\"innerEventCustomTemplate\"\r\n [eventDescriptionCustomTemplate]=\"eventDescriptionCustomTemplate\"\r\n [colSidePosition]=\"colSidePosition\"\r\n (clickEmitter)=\"clickEmitter.next($event)\">\r\n </ngx-timeline-event>\r\n</ng-template>\r\n\r\n", styles: ["::ng-deep :root{--ngx-timeline-period-inner-container: orange;--ngx-timeline-icon: orange;--ngx-timeline-line-background: #464646;--ngx-timeline-flex-display-col: 49 49 0;--ngx-timeline-flex-display-col-center: 2 2 0;--ngx-timeline-event-background: white;--ngx-timeline-event-divider-background: #e9e9e9;---ngx-timeline-event-text-color: black}.main-container{display:flex;justify-content:center;width:100%}.items-container{padding:1rem 0;min-width:max(20rem,100%)}.items-container.horizontal{display:flex;flex-direction:row;min-height:max(20rem,100%)}.items-container.horizontal .row{min-width:fit-content;flex-direction:column}.items-container.horizontal .row>[class*=col-]{display:flex;flex-direction:column;align-items:center}.items-container.horizontal .col-center{min-height:2rem}.items-container.horizontal .col-left{min-height:300px;align-items:center;justify-content:flex-end}.items-container.horizontal .col-right{min-height:300px;align-items:center;justify-content:flex-start}.items-container.horizontal .center-inner{display:flex;flex-direction:row}.items-container.horizontal .center-inner .line{max-width:50%;width:50%;height:.1rem;min-height:.1rem;max-height:.1rem}.items-container.horizontal .center-icon-container{padding:0 .5rem}.row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-wrap:wrap}.row>[class*=col-]{display:flex;flex-direction:column;justify-content:center}.col-left{align-items:flex-end;padding:0;flex:var(--ngx-timeline-flex-display-col)}.col-right{align-items:flex-start;padding:0;flex:var(--ngx-timeline-flex-display-col)}.col-center{padding:0;flex:var(--ngx-timeline-flex-display-col-center)}.col-center:not(.col-period){min-height:10rem}.center-inner{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%}.center-inner .line{flex:50 50 0;background:var(--ngx-timeline-line-background);width:.1rem}.center-inner .line.transparent{background:transparent}.period-container .period-inner-container{color:#fff;border-radius:2px;background:var(--ngx-timeline-period-inner-container);width:max-content;padding:.2rem .5rem;z-index:10}.center-icon-container{padding:.8rem 0;display:flex;justify-content:center;align-items:center;position:relative;height:10px;width:10px}.center-icon-container .icon{height:1rem;width:1rem;border-radius:50%;background:var(--ngx-timeline-icon);margin:0;position:absolute}.event-outer-container{margin:0 .5rem;width:97%}.hour{padding:.5rem;background:none;display:flex;justify-content:center;align-items:center}.hour.right{justify-content:flex-start}.hour.left{justify-content:flex-end}.hour .hour-inner-container{margin:0}.desktop{display:flex!important}.mobile{display:none!important}@media (max-width: 900px){.desktop{display:none!important}.mobile{display:flex!important}.items-container{min-width:max(20rem,95%)}.items-container.horizontal .event-outer-container{margin:0 .5rem}.items-container.horizontal .col-left{min-height:6rem}.items-container.horizontal .col-center{min-height:2rem}.event-outer-container{margin:.5rem .3rem}.col-left{align-items:flex-start}.col-left .hour{font-size:clamp(10px,2.5vw,12px);padding:0;margin-right:.3rem}.col-left.col-period{flex:14 14 0}.col-left.col-event{flex:17 17 0;padding:0;align-items:flex-end}.col-right{align-items:flex-start}.col-right.col-period{flex:77 77 0}.col-right.col-event{flex:77 77 0;padding:0}.col-center{justify-content:center;margin:0}.col-center.col-period,.col-center.col-event{flex:5 5 0}.center-inner{align-items:center}.period-container{height:fit-content;display:flex;justify-content:center;align-items:center;position:relative}.center-icon-container{align-items:center;justify-content:center}.center-icon-container .icon{height:1rem;width:1rem;position:absolute}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: NgxDatePipe, name: "ngxdate" }, { kind: "component", type: NgxTimelineEventComponent, selector: "ngx-timeline-event", inputs: ["event", "colSidePosition", "langCode", "innerEventCustomTemplate", "eventDescriptionCustomTemplate", "enableAnimation", "orientation"], outputs: ["clickEmitter"] }] }); }
|
|
164
|
-
}
|
|
165
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: NgxTimelineComponent, decorators: [{
|
|
166
|
-
type: Component,
|
|
167
|
-
args: [{ selector: 'ngx-timeline', standalone: true, imports: [
|
|
168
|
-
NgClass,
|
|
169
|
-
NgTemplateOutlet,
|
|
170
|
-
NgxDatePipe,
|
|
171
|
-
NgxTimelineEventComponent,
|
|
172
|
-
], template: "<div class=\"main-container\">\r\n <div class=\"items-container\" [ngClass]=\"{'horizontal': orientation === ngxTimelineOrientation.HORIZONTAL}\">\r\n @for (item of items; track item; let index = $index) {\r\n <div class=\"row\">\r\n <!-- DESKTOP -->\r\n <div class=\"col col-left desktop\" [ngClass]=\"item.periodInfo ? 'col-period' : 'col-event'\">\r\n @if (item.eventInfo && item.position === ngxTimelineItemPosition.ON_LEFT) {\r\n <div class=\"event-outer-container\">\r\n <ng-container *ngTemplateOutlet=\"eventCustomTemplate || eventTemplate; context: {event: item, colSidePosition: ngxTimelineItemPosition.ON_LEFT}\"></ng-container>\r\n </div>\r\n }\r\n @if (item.eventInfo && item.position === ngxTimelineItemPosition.ON_RIGHT) {\r\n <div class=\"hour left\">\r\n <ng-container *ngTemplateOutlet=\"dateInstantCustomTemplate || dateInstantTemplate; context: {item: item.eventInfo}\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"col col-center desktop\" [ngClass]=\"item.periodInfo ? 'col-period' : 'col-event'\">\r\n @if (item.periodInfo) {\r\n <div class=\"center-inner\">\r\n <ng-container *ngTemplateOutlet=\"periodContainerTemplate; context: {period: item.periodInfo, index: index, event: item}\"></ng-container>\r\n </div>\r\n }\r\n @if (!item.periodInfo) {\r\n <div class=\"center-inner no-period-key\">\r\n <ng-container *ngTemplateOutlet=\"centerLinesIconTemplate; context: {event: item, index: index}\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"col col-right desktop\" [ngClass]=\"item.periodInfo ? 'col-period' : 'col-event'\">\r\n @if (item.eventInfo && item.position === ngxTimelineItemPosition.ON_RIGHT) {\r\n <div class=\"event-outer-container\">\r\n <ng-container *ngTemplateOutlet=\"eventCustomTemplate || eventTemplate; context: {event: item, colSidePosition: ngxTimelineItemPosition.ON_RIGHT}\"></ng-container>\r\n </div>\r\n }\r\n @if (item.eventInfo && item.position === ngxTimelineItemPosition.ON_LEFT) {\r\n <div class=\"hour right\">\r\n <ng-container *ngTemplateOutlet=\"dateInstantCustomTemplate || dateInstantTemplate; context: {item: item.eventInfo}\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n <!-- MOBILE -->\r\n <div class=\"col col-left mobile\" [ngClass]=\"item.periodInfo ? 'col-period' : 'col-event'\">\r\n @if (item.eventInfo) {\r\n <div class=\"hour left\">\r\n <div class=\"hour-inner-container\">\r\n <ng-container *ngTemplateOutlet=\"dateInstantCustomTemplate || dateInstantTemplate; context: {item: item.eventInfo}\"></ng-container>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"col col-center mobile\" [ngClass]=\"item.periodInfo ? 'col-period' : 'col-event'\">\r\n @if (item.periodInfo; ) {\r\n <div class=\"center-inner\">\r\n <ng-container *ngTemplateOutlet=\"periodContainerTemplate; context: {period: item.periodInfo, index: index, event: item}\"></ng-container>\r\n </div>\r\n }\r\n @if (!item.periodInfo; ) {\r\n <div class=\"center-inner no-period-key\">\r\n <ng-container *ngTemplateOutlet=\"centerLinesIconTemplate; context: {event: item, index: index}\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"col col-right mobile\" [ngClass]=\"item.periodInfo ? 'col-period' : 'col-event'\">\r\n @if (item.eventInfo) {\r\n <div class=\"event-outer-container\">\r\n <ng-container *ngTemplateOutlet=\"eventCustomTemplate || eventTemplate; context: {event: item, colSidePosition: ngxTimelineItemPosition.ON_RIGHT}\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n\r\n\r\n<ng-template #centerLinesIconTemplate let-index=index let-event=event>\r\n <div class=\"line\"></div>\r\n <ng-container *ngTemplateOutlet=\"centerIconCustomTemplate || centerIconTemplate; context: {index:index, event:event}\"></ng-container>\r\n <div [ngClass]=\"{'transparent last-line': index === items.length - 1}\" class=\"line\"></div>\r\n</ng-template>\r\n\r\n<ng-template #centerIconTemplate let-index=index let-event=event>\r\n <div class=\"center-icon-container\">\r\n <div class=\"icon\"></div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #dateInstantTemplate let-item=item>\r\n <span>\r\n {{item?.timestamp | ngxdate : ngxDateFormat.HOURS_MINUTES : langCode}}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #periodContainerTemplate let-period=period let-index=index let-event=event>\r\n <div class=\"period-container\">\r\n <ng-container *ngTemplateOutlet=\"periodCustomTemplate || periodTemplate; context: {period: period, index:index, event:event}\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #periodTemplate let-period=period>\r\n <div class=\"period-inner-container\">\r\n <span>{{period?.firstDate | ngxdate : getPeriodKeyDateFormat() : langCode}}</span>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n<ng-template #eventTemplate let-event=event let-colSidePosition=colSidePosition>\r\n <ngx-timeline-event\r\n [event]=\"event\"\r\n [langCode]=\"langCode\"\r\n [orientation]=\"orientation\"\r\n [enableAnimation]=\"enableAnimation\"\r\n [innerEventCustomTemplate]=\"innerEventCustomTemplate\"\r\n [eventDescriptionCustomTemplate]=\"eventDescriptionCustomTemplate\"\r\n [colSidePosition]=\"colSidePosition\"\r\n (clickEmitter)=\"clickEmitter.next($event)\">\r\n </ngx-timeline-event>\r\n</ng-template>\r\n\r\n", styles: ["::ng-deep :root{--ngx-timeline-period-inner-container: orange;--ngx-timeline-icon: orange;--ngx-timeline-line-background: #464646;--ngx-timeline-flex-display-col: 49 49 0;--ngx-timeline-flex-display-col-center: 2 2 0;--ngx-timeline-event-background: white;--ngx-timeline-event-divider-background: #e9e9e9;---ngx-timeline-event-text-color: black}.main-container{display:flex;justify-content:center;width:100%}.items-container{padding:1rem 0;min-width:max(20rem,100%)}.items-container.horizontal{display:flex;flex-direction:row;min-height:max(20rem,100%)}.items-container.horizontal .row{min-width:fit-content;flex-direction:column}.items-container.horizontal .row>[class*=col-]{display:flex;flex-direction:column;align-items:center}.items-container.horizontal .col-center{min-height:2rem}.items-container.horizontal .col-left{min-height:300px;align-items:center;justify-content:flex-end}.items-container.horizontal .col-right{min-height:300px;align-items:center;justify-content:flex-start}.items-container.horizontal .center-inner{display:flex;flex-direction:row}.items-container.horizontal .center-inner .line{max-width:50%;width:50%;height:.1rem;min-height:.1rem;max-height:.1rem}.items-container.horizontal .center-icon-container{padding:0 .5rem}.row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-wrap:wrap}.row>[class*=col-]{display:flex;flex-direction:column;justify-content:center}.col-left{align-items:flex-end;padding:0;flex:var(--ngx-timeline-flex-display-col)}.col-right{align-items:flex-start;padding:0;flex:var(--ngx-timeline-flex-display-col)}.col-center{padding:0;flex:var(--ngx-timeline-flex-display-col-center)}.col-center:not(.col-period){min-height:10rem}.center-inner{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%}.center-inner .line{flex:50 50 0;background:var(--ngx-timeline-line-background);width:.1rem}.center-inner .line.transparent{background:transparent}.period-container .period-inner-container{color:#fff;border-radius:2px;background:var(--ngx-timeline-period-inner-container);width:max-content;padding:.2rem .5rem;z-index:10}.center-icon-container{padding:.8rem 0;display:flex;justify-content:center;align-items:center;position:relative;height:10px;width:10px}.center-icon-container .icon{height:1rem;width:1rem;border-radius:50%;background:var(--ngx-timeline-icon);margin:0;position:absolute}.event-outer-container{margin:0 .5rem;width:97%}.hour{padding:.5rem;background:none;display:flex;justify-content:center;align-items:center}.hour.right{justify-content:flex-start}.hour.left{justify-content:flex-end}.hour .hour-inner-container{margin:0}.desktop{display:flex!important}.mobile{display:none!important}@media (max-width: 900px){.desktop{display:none!important}.mobile{display:flex!important}.items-container{min-width:max(20rem,95%)}.items-container.horizontal .event-outer-container{margin:0 .5rem}.items-container.horizontal .col-left{min-height:6rem}.items-container.horizontal .col-center{min-height:2rem}.event-outer-container{margin:.5rem .3rem}.col-left{align-items:flex-start}.col-left .hour{font-size:clamp(10px,2.5vw,12px);padding:0;margin-right:.3rem}.col-left.col-period{flex:14 14 0}.col-left.col-event{flex:17 17 0;padding:0;align-items:flex-end}.col-right{align-items:flex-start}.col-right.col-period{flex:77 77 0}.col-right.col-event{flex:77 77 0;padding:0}.col-center{justify-content:center;margin:0}.col-center.col-period,.col-center.col-event{flex:5 5 0}.center-inner{align-items:center}.period-container{height:fit-content;display:flex;justify-content:center;align-items:center;position:relative}.center-icon-container{align-items:center;justify-content:center}.center-icon-container .icon{height:1rem;width:1rem;position:absolute}}\n"] }]
|
|
173
|
-
}], propDecorators: { events: [{
|
|
174
|
-
type: Input
|
|
175
|
-
}], langCode: [{
|
|
176
|
-
type: Input
|
|
177
|
-
}], enableAnimation: [{
|
|
178
|
-
type: Input
|
|
179
|
-
}], reverseOrder: [{
|
|
180
|
-
type: Input
|
|
181
|
-
}], orientation: [{
|
|
182
|
-
type: Input
|
|
183
|
-
}], groupEvent: [{
|
|
184
|
-
type: Input
|
|
185
|
-
}], changeSide: [{
|
|
186
|
-
type: Input
|
|
187
|
-
}], periodCustomTemplate: [{
|
|
188
|
-
type: Input
|
|
189
|
-
}], eventCustomTemplate: [{
|
|
190
|
-
type: Input
|
|
191
|
-
}], centerIconCustomTemplate: [{
|
|
192
|
-
type: Input
|
|
193
|
-
}], dateInstantCustomTemplate: [{
|
|
194
|
-
type: Input
|
|
195
|
-
}], innerEventCustomTemplate: [{
|
|
196
|
-
type: Input
|
|
197
|
-
}], eventDescriptionCustomTemplate: [{
|
|
198
|
-
type: Input
|
|
199
|
-
}], clickEmitter: [{
|
|
200
|
-
type: Output
|
|
201
|
-
}] } });
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRpbWVsaW5lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10aW1lbGluZS9zcmMvbGliL2NvbXBvbmVudHMvbmd4LXRpbWVsaW5lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10aW1lbGluZS9zcmMvbGliL2NvbXBvbmVudHMvbmd4LXRpbWVsaW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsU0FBUyxFQUFXLE1BQU0sRUFBRSxLQUFLLEVBQWtCLGVBQWUsRUFBcUIsTUFBTSxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ3pJLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFckMsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDNUYsT0FBTyxFQUdMLHVCQUF1QixFQUN2QixzQkFBc0IsRUFFdEIsYUFBYSxFQUNiLHFCQUFxQixFQUNyQiwwQkFBMEIsRUFDMUIsbUJBQW1CLEVBQ25CLG1DQUFtQyxJQUFJLDRCQUE0QixFQUNuRSxxQkFBcUIsRUFBeUIsNEJBQTRCLEdBQzNFLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxVQUFVLENBQUM7O0FBZXJDLE1BQU0sT0FBTyxvQkFBb0I7SUFaakM7UUFpQkU7O1dBRUc7UUFDTSxhQUFRLEdBQTBCLDRCQUE0QixDQUFDO1FBQ3hFOztXQUVHO1FBQ00sb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDaEM7O1dBRUc7UUFDTSxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUM5Qjs7V0FFRztRQUNNLGdCQUFXLEdBQTJCLHNCQUFzQixDQUFDLFFBQVEsQ0FBQztRQUMvRTs7V0FFRztR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QUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUcsQ0FBQzs4R0FyTVUsb0JBQW9CO2tHQUFwQixvQkFBb0IsOG9CQ2pDakMseTJMQXdIQSx3dkhEN0ZJLE9BQU8sb0ZBQ1AsZ0JBQWdCLCtJQUNoQixXQUFXLGdEQUNYLHlCQUF5Qjs7MkZBR2hCLG9CQUFvQjtrQkFaaEMsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUdQO3dCQUNQLE9BQU87d0JBQ1AsZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLHlCQUF5QjtxQkFDMUI7OEJBTVEsTUFBTTtzQkFBZCxLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsZUFBZTtzQkFBdkIsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBSUcsVUFBVTtzQkFBbEIsS0FBSztnQkFJRyxVQUFVO3NCQUFsQixLQUFLO2dCQUlHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFJRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBSUcsd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUlHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFJRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBSUcsOEJBQThCO3NCQUF0QyxLQUFLO2dCQUtKLFlBQVk7c0JBRGIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q29tcG9uZW50LCBEb0NoZWNrLCBpbmplY3QsIElucHV0LCBJdGVyYWJsZURpZmZlciwgSXRlcmFibGVEaWZmZXJzLCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7Tmd4VGltZWxpbmVFdmVudENvbXBvbmVudH0gZnJvbSAnLi9uZ3gtdGltZWxpbmUtZXZlbnQvbmd4LXRpbWVsaW5lLWV2ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBOZ3hUaW1lbGluZUV2ZW50LFxuICBOZ3hUaW1lbGluZUl0ZW0sXG4gIE5neFRpbWVsaW5lSXRlbVBvc2l0aW9uLFxuICBOZ3hUaW1lbGluZU9yaWVudGF0aW9uLFxuICBOZ3hUaW1lbGluZVBlcmlvZEluZm8sXG4gIE5neERhdGVGb3JtYXQsXG4gIE5neFRpbWVsaW5lRXZlbnRHcm91cCxcbiAgTmd4VGltZWxpbmVFdmVudENoYW5nZVNpZGUsXG4gIHBlcmlvZEtleURhdGVGb3JtYXQsXG4gIGZpZWxkc1RvQ2hlY2tFdmVudENoYW5nZVNpZGVJbkdyb3VwIGFzIGZpZWxkc1RvQ2hlY2tFdmVudENoYW5nZVNpZGUsXG4gIGZpZWxkc1RvQWRkRXZlbnRHcm91cCwgU3VwcG9ydGVkTGFuZ3VhZ2VDb2RlLCBkZWZhdWx0U3VwcG9ydGVkTGFuZ3VhZ2VDb2RlLFxufSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHtOZ3hEYXRlUGlwZX0gZnJvbSAnLi4vcGlwZXMnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC10aW1lbGluZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiAnLi9uZ3gtdGltZWxpbmUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbmd4LXRpbWVsaW5lLmNvbXBvbmVudC5zY3NzJyxcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBOZ3hEYXRlUGlwZSxcbiAgICBOZ3hUaW1lbGluZUV2ZW50Q29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hUaW1lbGluZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBEb0NoZWNrIHtcbiAgLyoqXG4gICAqIExpc3Qgb2YgZXZlbnRzIHRvIGJlIGRpc3BsYXllZFxuICAgKi9cbiAgQElucHV0KCkgZXZlbnRzITogTmd4VGltZWxpbmVFdmVudFtdO1xuICAvKipcbiAgICogTGFuZ3VhZ2UgY29kZSB1c2VkIHRvIHNob3cgdGhlIGRhdGUgZm9ybWF0dGVkXG4gICAqL1xuICBASW5wdXQoKSBsYW5nQ29kZTogU3VwcG9ydGVkTGFuZ3VhZ2VDb2RlID0gZGVmYXVsdFN1cHBvcnRlZExhbmd1YWdlQ29kZTtcbiAgLyoqXG4gICAqIEJvb2xlYW4gdXNlZCB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgYW5pbWF0aW9uc1xuICAgKi9cbiAgQElucHV0KCkgZW5hYmxlQW5pbWF0aW9uID0gdHJ1ZTtcbiAgLyoqXG4gICAqIEJvb2xlYW4gdXNlZCB0byByZXZlcnNlIHNvcnQgb3JkZXIgKGRlZmF1bHQgb2xkZXIgZmlyc3QpXG4gICAqL1xuICBASW5wdXQoKSByZXZlcnNlT3JkZXIgPSBmYWxzZTtcbiAgLyoqXG4gICAqIE9yaWVudGF0aW9uIG9mIHRoZSB0aW1lbGluZVxuICAgKi9cbiAgQElucHV0KCkgb3JpZW50YXRpb246IE5neFRpbWVsaW5lT3JpZW50YXRpb24gPSBOZ3hUaW1lbGluZU9yaWVudGF0aW9uLlZFUlRJQ0FMO1xuICAvKipcbiAgICogTG9naWMgdG8gYmUgYXBwbGllZCBpbiBvcmRlciB0byBncm91cCBldmVudHNcbiAgICovXG4gIEBJbnB1dCgpIGdyb3VwRXZlbnQ6IE5neFRpbWVsaW5lRXZlbnRHcm91cCA9IE5neFRpbWVsaW5lRXZlbnRHcm91cC5NT05USF9ZRUFSO1xuICAvKipcbiAgICogTG9naWMgdG8gYmUgYXBwbGllZCBpbiBvcmRlciB0byBwdXQgZXZlbnRzIG9uIExFRlQgb3IgUklHSFRcbiAgICovXG4gIEBJbnB1dCgpIGNoYW5nZVNpZGU6IE5neFRpbWVsaW5lRXZlbnRDaGFuZ2VTaWRlID0gTmd4VGltZWxpbmVFdmVudENoYW5nZVNpZGUuT05fRElGRkVSRU5UX0RBWV9JTl9HUk9VUDtcbiAgLyoqXG4gICAqIEN1c3RvbSBUZW1wbGF0ZSBkaXNwbGF5ZWQgYmVmb3JlIGEgZ3JvdXAgb2YgZXZlbnRzXG4gICAqL1xuICBASW5wdXQoKSBwZXJpb2RDdXN0b21UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gIC8qKlxuICAgKiBDdXN0b20gVGVtcGxhdGUgZGlzcGxheWVkIHRvIHNob3cgYSBzaW5nbGUgZXZlbnRcbiAgICovXG4gIEBJbnB1dCgpIGV2ZW50Q3VzdG9tVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAvKipcbiAgICogQ3VzdG9tIFRlbXBsYXRlIGRpc3BsYXllZCB0byBzaG93IGFuIHNlcGFyYXRvciBpY29uXG4gICAqL1xuICBASW5wdXQoKSBjZW50ZXJJY29uQ3VzdG9tVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAvKipcbiAgICogQ3VzdG9tIFRlbXBsYXRlIGRpc3BsYXllZCB0byBzaG93IHRoZSBzaWRlIGRhdGVcbiAgICovXG4gIEBJbnB1dCgpIGRhdGVJbnN0YW50Q3VzdG9tVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAvKipcbiAgICogQ3VzdG9tIFRlbXBsYXRlIGRpc3BsYXllZCB0byBzaG93IHRoZSBpbm5lciBldmVudFxuICAgKi9cbiAgQElucHV0KCkgaW5uZXJFdmVudEN1c3RvbVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgLyoqXG4gICAqIElubmVyIGN1c3RvbSB0ZW1wbGF0ZSB1c2VkIHRvIGRpc3BsYXkgdGhlIGV2ZW50IGRlc2NyaXB0aW9uXG4gICAqL1xuICBASW5wdXQoKSBldmVudERlc2NyaXB0aW9uQ3VzdG9tVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAvKipcbiAgICogT3V0cHV0IGNsaWNrIGV2ZW50IGVtaXR0ZXJcbiAgICovXG4gIEBPdXRwdXQoKVxuICAgIGNsaWNrRW1pdHRlcjogQmVoYXZpb3JTdWJqZWN0PE5neFRpbWVsaW5lSXRlbT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuXG4gIGdyb3VwczogeyBba2V5OiBzdHJpbmddOiBOZ3hUaW1lbGluZUV2ZW50W10gfSA9IHt9O1xuICBwZXJpb2RzOiBOZ3hUaW1lbGluZUl0ZW1bXSA9IFtdO1xuICBpdGVtczogTmd4VGltZWxpbmVJdGVtW10gPSBbXTtcbiAgbmd4VGltZWxpbmVJdGVtUG9zaXRpb24gPSBOZ3hUaW1lbGluZUl0ZW1Qb3NpdGlvbjtcbiAgbmd4VGltZWxpbmVPcmllbnRhdGlvbiA9IE5neFRpbWVsaW5lT3JpZW50YXRpb247XG4gIG5neERhdGVGb3JtYXQgPSBOZ3hEYXRlRm9ybWF0O1xuXG4gIHByaXZhdGUgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzID0gaW5qZWN0KEl0ZXJhYmxlRGlmZmVycyk7XG4gIHByaXZhdGUgaXRlcmFibGVEaWZmZXI6IEl0ZXJhYmxlRGlmZmVyPGFueT4gPSB0aGlzLmRpZmZlcnMuZmluZChbXSkuY3JlYXRlKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2VwYXJhdG9yID0gJy8nO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ3JvdXBFdmVudHModGhpcy5ldmVudHMpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgdGhpcy5ncm91cEV2ZW50cyh0aGlzLmV2ZW50cyk7XG4gIH1cblxuICBuZ0RvQ2hlY2soKSB7XG4gICAgY29uc3QgY2hhbmdlcyA9IHRoaXMuaXRlcmFibGVEaWZmZXIuZGlmZih0aGlzLmV2ZW50cyk7XG4gICAgaWYgKGNoYW5nZXMpIHtcbiAgICAgIHRoaXMuZ3JvdXBFdmVudHModGhpcy5ldmVudHMpO1xuICAgIH1cbiAgfVxuXG4gIGdldFBlcmlvZEtleURhdGVGb3JtYXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcGVyaW9kS2V5RGF0ZUZvcm1hdFt0aGlzLmdyb3VwRXZlbnRdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuZ3JvdXBzID0ge307XG4gICAgdGhpcy5wZXJpb2RzID0gW107XG4gICAgdGhpcy5pdGVtcyA9IFtdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdyb3VwRXZlbnRzKGV2ZW50czogTmd4VGltZWxpbmVFdmVudFtdKTogdm9pZCB7XG4gICAgaWYgKGV2ZW50cykge1xuICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgdGhpcy5zb3J0RXZlbnRzKGV2ZW50cyk7XG4gICAgICB0aGlzLnNldEdyb3Vwc0FuZFBlcmlvZHMoZXZlbnRzKTtcbiAgICAgIHRoaXMuc2V0SXRlbXMoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc29ydEV2ZW50cyhldmVudHM6IE5neFRpbWVsaW5lRXZlbnRbXSk6IHZvaWQge1xuICAgIGV2ZW50cy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICBjb25zdCBhVGltZSA9IGEudGltZXN0YW1wLmdldFRpbWUoKTtcbiAgICAgIGNvbnN0IGJUaW1lID0gYi50aW1lc3RhbXAuZ2V0VGltZSgpO1xuICAgICAgcmV0dXJuIHRoaXMucmV2ZXJzZU9yZGVyID8gYlRpbWUgLSBhVGltZSA6IGFUaW1lIC0gYlRpbWU7fSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0R3JvdXBzQW5kUGVyaW9kcyhldmVudHM6IE5neFRpbWVsaW5lRXZlbnRbXSk6IHZvaWQge1xuICAgIHRoaXMucGVyaW9kcyA9IFtdO1xuICAgIGV2ZW50cy5mb3JFYWNoKChldmVudCkgPT4ge1xuICAgICAgLy8gY29udmVyc2lvbiBmcm9tIHN0cmluZyB0byBhY3R1YWwgRGF0ZVxuICAgICAgZXZlbnQudGltZXN0YW1wID0gbmV3IERhdGUoZXZlbnQudGltZXN0YW1wKTtcbiAgICAgIGNvbnN0IHBlcmlvZEtleSA9IHRoaXMuZ2V0UGVyaW9kS2V5RnJvbUV2ZW50KGV2ZW50KTtcbiAgICAgIGlmICghdGhpcy5ncm91cHNbcGVyaW9kS2V5XSkge1xuICAgICAgICB0aGlzLmdyb3Vwc1twZXJpb2RLZXldID0gW107XG4gICAgICAgIHRoaXMucGVyaW9kcy5wdXNoKHRoaXMuZ2V0UGVyaW9kSW5mb0Zyb21QZXJpb2RLZXkocGVyaW9kS2V5LCBldmVudCkpXG4gICAgICB9XG4gICAgICB0aGlzLmdyb3Vwc1twZXJpb2RLZXldLnB1c2goZXZlbnQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldEl0ZW1zKCk6IHZvaWQge1xuICAgIGxldCBpc0xhc3RJdGVtT25MZWZ0ID0gZmFsc2U7XG4gICAgdGhpcy5wZXJpb2RzLmZvckVhY2goKHApID0+IHtcbiAgICAgIC8vIGluc2VydCBmaXJzdCB0aGUgcGVyaW9kXG4gICAgICB0aGlzLml0ZW1zLnB1c2gocCk7XG4gICAgICAvLyBpbiBlYWNoIHBlcmlvZCBwdXR0aW5nIGl0ZW1zIG9uIGxlZnRcbiAgICAgIGxldCBvbkxlZnQgPSB0cnVlO1xuICAgICAgaWYgKHRoaXMuY2hhbmdlU2lkZSA9PT0gTmd4VGltZWxpbmVFdmVudENoYW5nZVNpZGUuQUxMKSB7XG4gICAgICAgIG9uTGVmdCA9ICFpc0xhc3RJdGVtT25MZWZ0O1xuICAgICAgfVxuICAgICAgY29uc3QgcGVyaW9kSW5mbyA9IHAucGVyaW9kSW5mbztcbiAgICAgIC8vIGluc2VydCB0aGVuIGFsbCB0aGUgZXZlbnRzIGluIHRoaXMgcGVyaW9kXG4gICAgICBpc0xhc3RJdGVtT25MZWZ0ID0gdGhpcy5hZGRQZXJpb2RFdmVudHMocGVyaW9kSW5mbywgb25MZWZ0KTtcbiAgICAgIC8vIG9uTGVmdCA9IHRoaXMuYWRkRXZlbnRJdGVtc0FuZEdldElmT25MZWZ0KHBlcmlvZEluZm8sIG9uTGVmdCk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWRkUGVyaW9kRXZlbnRzKHBlcmlvZEluZm86IE5neFRpbWVsaW5lUGVyaW9kSW5mbywgb25MZWZ0OiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgdGhpcy5ncm91cHNbcGVyaW9kSW5mby5wZXJpb2RLZXldLmZvckVhY2goKGV2ZW50LCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgcHJldkV2ZW50ID0gdGhpcy5ncm91cHNbcGVyaW9kSW5mby5wZXJpb2RLZXldW2luZGV4IC0gMV07XG4gICAgICBpZiAoZXZlbnQuaXRlbVBvc2l0aW9uKSB7XG4gICAgICAgIG9uTGVmdCA9IGV2ZW50Lml0ZW1Qb3NpdGlvbiAmJiBldmVudC5pdGVtUG9zaXRpb24gPT09IE5neFRpbWVsaW5lSXRlbVBvc2l0aW9uLk9OX0xFRlQ7XG4gICAgICB9IGVsc2UgaWYgKGluZGV4ID4gMCAmJiB0aGlzLmNvbXBhcmVFdmVudHMocHJldkV2ZW50LCBldmVudCkpIHtcbiAgICAgICAgICBvbkxlZnQgPSAhb25MZWZ0O1xuICAgICAgfVxuICAgICAgdGhpcy5wdXNoRXZlbnRPbkl0ZW1zKGV2ZW50LCBvbkxlZnQpO1xuICAgIH0pO1xuICAgIHJldHVybiBvbkxlZnQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgcHVzaEV2ZW50T25JdGVtcyhldmVudDogTmd4VGltZWxpbmVFdmVudCwgb25MZWZ0OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pdGVtcy5wdXNoKHtcbiAgICAgIGV2ZW50SW5mbzogey4uLmV2ZW50fSwgcG9zaXRpb246IG9uTGVmdCA/XG4gICAgICAgIHRoaXMubmd4VGltZWxpbmVJdGVtUG9zaXRpb24uT05fTEVGVCA6IHRoaXMubmd4VGltZWxpbmVJdGVtUG9zaXRpb24uT05fUklHSFQsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZSB0aGUgZXZlbnRzIGluc2lkZSB0aGUgc2FtZSBncm91cFxuICAgKi9cbiAgcHJvdGVjdGVkIGNvbXBhcmVFdmVudHMocHJldkV2ZW50OiBOZ3hUaW1lbGluZUV2ZW50LCBldmVudDogTmd4VGltZWxpbmVFdmVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNob3VsZENoYW5nZUV2ZW50c0luUGVyaW9kKCkgfHxcbiAgICAgIHRoaXMuY29tcGFyZUV2ZW50c0ZpZWxkKHByZXZFdmVudCwgZXZlbnQsIC4uLmZpZWxkc1RvQ2hlY2tFdmVudENoYW5nZVNpZGVbdGhpcy5jaGFuZ2VTaWRlXSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29tcGFyZUV2ZW50c0ZpZWxkKHByZXZFdmVudDogTmd4VGltZWxpbmVFdmVudCwgZXZlbnQ6IE5neFRpbWVsaW5lRXZlbnQsIC4uLmZpZWxkczogc3RyaW5nW10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmllbGRzLnJlZHVjZSgocmVzLCBmaWVsZCkgPT4gcmVzID0gcmVzIHx8IHByZXZFdmVudC50aW1lc3RhbXBbZmllbGRdKCkgIT09IGV2ZW50LnRpbWVzdGFtcFtmaWVsZF0oKSwgZmFsc2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFBlcmlvZEluZm9Gcm9tUGVyaW9kS2V5KHBlcmlvZEtleTogc3RyaW5nLCBmaXJzdEdyb3VwRXZlbnQ6IE5neFRpbWVsaW5lRXZlbnQpOiB7IHBlcmlvZEluZm86IE5neFRpbWVsaW5lUGVyaW9kSW5mbyB9IHtcbiAgICAgIGNvbnN0IHNwbGl0ID0gcGVyaW9kS2V5LnNwbGl0KHRoaXMuc2VwYXJhdG9yKTtcbiAgICAgIHJldHVybiB0aGlzLmdldFBlcmlvZEluZm8oc3BsaXQsIHBlcmlvZEtleSwgZmlyc3RHcm91cEV2ZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGVyaW9kSW5mbyhzcGxpdDogc3RyaW5nW10sIHBlcmlvZEtleTogc3RyaW5nLCBmaXJzdEdyb3VwRXZlbnQ6IE5neFRpbWVsaW5lRXZlbnQpOiB7IHBlcmlvZEluZm86IE5neFRpbWVsaW5lUGVyaW9kSW5mbyB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgcGVyaW9kSW5mbzoge1xuICAgICAgICB5ZWFyOiBOdW1iZXIoc3BsaXRbMF0pLFxuICAgICAgICBtb250aDogTnVtYmVyKHNwbGl0WzFdKSxcbiAgICAgICAgZGF5OiBOdW1iZXIoc3BsaXRbMl0pLFxuICAgICAgICBwZXJpb2RLZXksXG4gICAgICAgIGZpcnN0RGF0ZTogZmlyc3RHcm91cEV2ZW50LnRpbWVzdGFtcCBhcyBEYXRlLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGRDaGFuZ2VFdmVudHNJblBlcmlvZCgpIHtcbiAgICByZXR1cm4gW05neFRpbWVsaW5lRXZlbnRDaGFuZ2VTaWRlLkFMTF9JTl9HUk9VUCwgTmd4VGltZWxpbmVFdmVudENoYW5nZVNpZGUuQUxMXS5pbmRleE9mKHRoaXMuY2hhbmdlU2lkZSkgIT0gLTE7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0UGVyaW9kS2V5RnJvbUV2ZW50KGV2ZW50OiBOZ3hUaW1lbGluZUV2ZW50KTogc3RyaW5nIHtcbiAgICByZXR1cm4gZmllbGRzVG9BZGRFdmVudEdyb3VwW3RoaXMuZ3JvdXBFdmVudF0ubWFwKChmaWVsZCkgPT4gZXZlbnQudGltZXN0YW1wW2ZpZWxkXSgpKS5qb2luKHRoaXMuc2VwYXJhdG9yKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1haW4tY29udGFpbmVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cIml0ZW1zLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsnaG9yaXpvbnRhbCc6IG9yaWVudGF0aW9uID09PSBuZ3hUaW1lbGluZU9yaWVudGF0aW9uLkhPUklaT05UQUx9XCI+XHJcbiAgICBAZm9yIChpdGVtIG9mIGl0ZW1zOyB0cmFjayBpdGVtOyBsZXQgaW5kZXggPSAkaW5kZXgpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDwhLS0gREVTS1RPUCAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC1sZWZ0IGRlc2t0b3BcIiBbbmdDbGFzc109XCJpdGVtLnBlcmlvZEluZm8gPyAnY29sLXBlcmlvZCcgOiAnY29sLWV2ZW50J1wiPlxyXG4gICAgICAgICAgQGlmIChpdGVtLmV2ZW50SW5mbyAmJiBpdGVtLnBvc2l0aW9uID09PSBuZ3hUaW1lbGluZUl0ZW1Qb3NpdGlvbi5PTl9MRUZUKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC1vdXRlci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXZlbnRDdXN0b21UZW1wbGF0ZSB8fCBldmVudFRlbXBsYXRlOyBjb250ZXh0OiB7ZXZlbnQ6IGl0ZW0sIGNvbFNpZGVQb3NpdGlvbjogbmd4VGltZWxpbmVJdGVtUG9zaXRpb24uT05fTEVGVH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAaWYgKGl0ZW0uZXZlbnRJbmZvICYmIGl0ZW0ucG9zaXRpb24gPT09IG5neFRpbWVsaW5lSXRlbVBvc2l0aW9uLk9OX1JJR0hUKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJob3VyIGxlZnRcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0ZUluc3RhbnRDdXN0b21UZW1wbGF0ZSB8fCBkYXRlSW5zdGFudFRlbXBsYXRlOyBjb250ZXh0OiB7aXRlbTogaXRlbS5ldmVudEluZm99XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLWNlbnRlciBkZXNrdG9wXCIgW25nQ2xhc3NdPVwiaXRlbS5wZXJpb2RJbmZvID8gJ2NvbC1wZXJpb2QnIDogJ2NvbC1ldmVudCdcIj5cclxuICAgICAgICAgIEBpZiAoaXRlbS5wZXJpb2RJbmZvKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZW50ZXItaW5uZXJcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGVyaW9kQ29udGFpbmVyVGVtcGxhdGU7IGNvbnRleHQ6IHtwZXJpb2Q6IGl0ZW0ucGVyaW9kSW5mbywgaW5kZXg6IGluZGV4LCBldmVudDogaXRlbX1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAaWYgKCFpdGVtLnBlcmlvZEluZm8pIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbnRlci1pbm5lciBuby1wZXJpb2Qta2V5XCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNlbnRlckxpbmVzSWNvblRlbXBsYXRlOyBjb250ZXh0OiB7ZXZlbnQ6IGl0ZW0sIGluZGV4OiBpbmRleH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtcmlnaHQgZGVza3RvcFwiIFtuZ0NsYXNzXT1cIml0ZW0ucGVyaW9kSW5mbyA/ICdjb2wtcGVyaW9kJyA6ICdjb2wtZXZlbnQnXCI+XHJcbiAgICAgICAgICBAaWYgKGl0ZW0uZXZlbnRJbmZvICYmIGl0ZW0ucG9zaXRpb24gPT09IG5neFRpbWVsaW5lSXRlbVBvc2l0aW9uLk9OX1JJR0hUKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC1vdXRlci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXZlbnRDdXN0b21UZW1wbGF0ZSB8fCBldmVudFRlbXBsYXRlOyBjb250ZXh0OiB7ZXZlbnQ6IGl0ZW0sIGNvbFNpZGVQb3NpdGlvbjogbmd4VGltZWxpbmVJdGVtUG9zaXRpb24uT05fUklHSFR9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGlmIChpdGVtLmV2ZW50SW5mbyAmJiBpdGVtLnBvc2l0aW9uID09PSBuZ3hUaW1lbGluZUl0ZW1Qb3NpdGlvbi5PTl9MRUZUKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJob3VyIHJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRhdGVJbnN0YW50Q3VzdG9tVGVtcGxhdGUgfHwgZGF0ZUluc3RhbnRUZW1wbGF0ZTsgY29udGV4dDoge2l0ZW06IGl0ZW0uZXZlbnRJbmZvfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIE1PQklMRSAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC1sZWZ0IG1vYmlsZVwiIFtuZ0NsYXNzXT1cIml0ZW0ucGVyaW9kSW5mbyA/ICdjb2wtcGVyaW9kJyA6ICdjb2wtZXZlbnQnXCI+XHJcbiAgICAgICAgICBAaWYgKGl0ZW0uZXZlbnRJbmZvKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJob3VyIGxlZnRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaG91ci1pbm5lci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRlSW5zdGFudEN1c3RvbVRlbXBsYXRlIHx8IGRhdGVJbnN0YW50VGVtcGxhdGU7IGNvbnRleHQ6IHtpdGVtOiBpdGVtLmV2ZW50SW5mb31cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtY2VudGVyIG1vYmlsZVwiIFtuZ0NsYXNzXT1cIml0ZW0ucGVyaW9kSW5mbyA/ICdjb2wtcGVyaW9kJyA6ICdjb2wtZXZlbnQnXCI+XHJcbiAgICAgICAgICBAaWYgKGl0ZW0ucGVyaW9kSW5mbzsgKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZW50ZXItaW5uZXJcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGVyaW9kQ29udGFpbmVyVGVtcGxhdGU7IGNvbnRleHQ6IHtwZXJpb2Q6IGl0ZW0ucGVyaW9kSW5mbywgaW5kZXg6IGluZGV4LCBldmVudDogaXRlbX1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAaWYgKCFpdGVtLnBlcmlvZEluZm87ICkge1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VudGVyLWlubmVyIG5vLXBlcmlvZC1rZXlcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2VudGVyTGluZXNJY29uVGVtcGxhdGU7IGNvbnRleHQ6IHtldmVudDogaXRlbSwgaW5kZXg6IGluZGV4fVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC1yaWdodCBtb2JpbGVcIiBbbmdDbGFzc109XCJpdGVtLnBlcmlvZEluZm8gPyAnY29sLXBlcmlvZCcgOiAnY29sLWV2ZW50J1wiPlxyXG4gICAgICAgICAgQGlmIChpdGVtLmV2ZW50SW5mbykge1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtb3V0ZXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImV2ZW50Q3VzdG9tVGVtcGxhdGUgfHwgZXZlbnRUZW1wbGF0ZTsgY29udGV4dDoge2V2ZW50OiBpdGVtLCBjb2xTaWRlUG9zaXRpb246IG5neFRpbWVsaW5lSXRlbVBvc2l0aW9uLk9OX1JJR0hUfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY2VudGVyTGluZXNJY29uVGVtcGxhdGUgbGV0LWluZGV4PWluZGV4IGxldC1ldmVudD1ldmVudD5cclxuICA8ZGl2IGNsYXNzPVwibGluZVwiPjwvZGl2PlxyXG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjZW50ZXJJY29uQ3VzdG9tVGVtcGxhdGUgfHwgY2VudGVySWNvblRlbXBsYXRlOyBjb250ZXh0OiB7aW5kZXg6aW5kZXgsIGV2ZW50OmV2ZW50fVwiPjwvbmctY29udGFpbmVyPlxyXG4gIDxkaXYgW25nQ2xhc3NdPVwieyd0cmFuc3BhcmVudCBsYXN0LWxpbmUnOiBpbmRleCA9PT0gaXRlbXMubGVuZ3RoIC0gMX1cIiBjbGFzcz1cImxpbmVcIj48L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY2VudGVySWNvblRlbXBsYXRlIGxldC1pbmRleD1pbmRleCBsZXQtZXZlbnQ9ZXZlbnQ+XHJcbiAgPGRpdiBjbGFzcz1cImNlbnRlci1pY29uLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImljb25cIj48L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGF0ZUluc3RhbnRUZW1wbGF0ZSBsZXQtaXRlbT1pdGVtPlxyXG4gIDxzcGFuPlxyXG4gICAge3tpdGVtPy50aW1lc3RhbXAgfCBuZ3hkYXRlIDogbmd4RGF0ZUZvcm1hdC5IT1VSU19NSU5VVEVTIDogbGFuZ0NvZGV9fVxyXG4gIDwvc3Bhbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcGVyaW9kQ29udGFpbmVyVGVtcGxhdGUgbGV0LXBlcmlvZD1wZXJpb2QgbGV0LWluZGV4PWluZGV4IGxldC1ldmVudD1ldmVudD5cclxuICA8ZGl2IGNsYXNzPVwicGVyaW9kLWNvbnRhaW5lclwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBlcmlvZEN1c3RvbVRlbXBsYXRlIHx8IHBlcmlvZFRlbXBsYXRlOyBjb250ZXh0OiB7cGVyaW9kOiBwZXJpb2QsIGluZGV4OmluZGV4LCBldmVudDpldmVudH1cIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcGVyaW9kVGVtcGxhdGUgbGV0LXBlcmlvZD1wZXJpb2Q+XHJcbiAgPGRpdiBjbGFzcz1cInBlcmlvZC1pbm5lci1jb250YWluZXJcIj5cclxuICAgIDxzcGFuPnt7cGVyaW9kPy5maXJzdERhdGUgfCBuZ3hkYXRlIDogZ2V0UGVyaW9kS2V5RGF0ZUZvcm1hdCgpIDogbGFuZ0NvZGV9fTwvc3Bhbj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG48bmctdGVtcGxhdGUgI2V2ZW50VGVtcGxhdGUgbGV0LWV2ZW50PWV2ZW50IGxldC1jb2xTaWRlUG9zaXRpb249Y29sU2lkZVBvc2l0aW9uPlxyXG4gIDxuZ3gtdGltZWxpbmUtZXZlbnRcclxuICAgIFtldmVudF09XCJldmVudFwiXHJcbiAgICBbbGFuZ0NvZGVdPVwibGFuZ0NvZGVcIlxyXG4gICAgW29yaWVudGF0aW9uXT1cIm9yaWVudGF0aW9uXCJcclxuICAgIFtlbmFibGVBbmltYXRpb25dPVwiZW5hYmxlQW5pbWF0aW9uXCJcclxuICAgIFtpbm5lckV2ZW50Q3VzdG9tVGVtcGxhdGVdPVwiaW5uZXJFdmVudEN1c3RvbVRlbXBsYXRlXCJcclxuICAgIFtldmVudERlc2NyaXB0aW9uQ3VzdG9tVGVtcGxhdGVdPVwiZXZlbnREZXNjcmlwdGlvbkN1c3RvbVRlbXBsYXRlXCJcclxuICAgIFtjb2xTaWRlUG9zaXRpb25dPVwiY29sU2lkZVBvc2l0aW9uXCJcclxuICAgIChjbGlja0VtaXR0ZXIpPVwiY2xpY2tFbWl0dGVyLm5leHQoJGV2ZW50KVwiPlxyXG4gIDwvbmd4LXRpbWVsaW5lLWV2ZW50PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuIl19
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
export const supportedLanguageCodes = ['en', 'it', 'fr', 'de', 'es', 'sl', 'tr', 'pl', 'pt', 'ru'];
|
|
2
|
-
export const defaultSupportedLanguageCode = supportedLanguageCodes[0];
|
|
3
|
-
export const dateConfigMap = {
|
|
4
|
-
en: {
|
|
5
|
-
code: 'en-US',
|
|
6
|
-
fullDate: 'MM/dd/yyyy h:mm a',
|
|
7
|
-
dayMonthYear: 'dd MMMM yyyy',
|
|
8
|
-
monthYear: 'MMMM yyyy',
|
|
9
|
-
year: 'yyyy',
|
|
10
|
-
hoursMinutes: 'hh:mm a',
|
|
11
|
-
},
|
|
12
|
-
it: {
|
|
13
|
-
code: 'it-IT',
|
|
14
|
-
fullDate: 'dd/MM/yyyy H:mm',
|
|
15
|
-
dayMonthYear: 'dd MMMM yyyy',
|
|
16
|
-
monthYear: 'MMMM yyyy',
|
|
17
|
-
year: 'yyyy',
|
|
18
|
-
hoursMinutes: 'HH:mm',
|
|
19
|
-
},
|
|
20
|
-
fr: {
|
|
21
|
-
code: 'fr-FR',
|
|
22
|
-
fullDate: 'dd/MM/yyyy H:mm',
|
|
23
|
-
dayMonthYear: 'dd MMMM yyyy',
|
|
24
|
-
monthYear: 'MMMM yyyy',
|
|
25
|
-
year: 'yyyy',
|
|
26
|
-
hoursMinutes: 'HH:mm',
|
|
27
|
-
},
|
|
28
|
-
de: {
|
|
29
|
-
code: 'de',
|
|
30
|
-
fullDate: 'dd/MM/yyyy H:mm',
|
|
31
|
-
dayMonthYear: 'dd MMMM yyyy',
|
|
32
|
-
monthYear: 'MMMM yyyy',
|
|
33
|
-
year: 'yyyy',
|
|
34
|
-
hoursMinutes: 'HH:mm',
|
|
35
|
-
},
|
|
36
|
-
es: {
|
|
37
|
-
code: 'es',
|
|
38
|
-
fullDate: 'dd/MM/yyyy H:mm',
|
|
39
|
-
dayMonthYear: 'dd MMMM yyyy',
|
|
40
|
-
monthYear: 'MMMM yyyy',
|
|
41
|
-
year: 'yyyy',
|
|
42
|
-
hoursMinutes: 'HH:mm',
|
|
43
|
-
},
|
|
44
|
-
sl: {
|
|
45
|
-
code: 'sl-SL',
|
|
46
|
-
fullDate: 'dd/MM/yyyy H:mm',
|
|
47
|
-
dayMonthYear: 'dd MMMM yyyy',
|
|
48
|
-
monthYear: 'MMMM yyyy',
|
|
49
|
-
year: 'yyyy',
|
|
50
|
-
hoursMinutes: 'HH:mm',
|
|
51
|
-
},
|
|
52
|
-
tr: {
|
|
53
|
-
code: 'tr',
|
|
54
|
-
fullDate: 'dd/MM/yyyy H:mm',
|
|
55
|
-
dayMonthYear: 'dd MMMM yyyy',
|
|
56
|
-
monthYear: 'MMMM yyyy',
|
|
57
|
-
year: 'yyyy',
|
|
58
|
-
hoursMinutes: 'HH:mm',
|
|
59
|
-
},
|
|
60
|
-
pl: {
|
|
61
|
-
code: 'pl',
|
|
62
|
-
fullDate: 'dd/MM/yyyy H:mm',
|
|
63
|
-
dayMonthYear: 'dd MMMM yyyy',
|
|
64
|
-
monthYear: 'MMMM yyyy',
|
|
65
|
-
year: 'yyyy',
|
|
66
|
-
hoursMinutes: 'HH:mm',
|
|
67
|
-
},
|
|
68
|
-
pt: {
|
|
69
|
-
code: 'pt',
|
|
70
|
-
fullDate: 'dd/MM/yyyy H:mm',
|
|
71
|
-
dayMonthYear: 'dd MMMM yyyy',
|
|
72
|
-
monthYear: 'MMMM yyyy',
|
|
73
|
-
year: 'yyyy',
|
|
74
|
-
hoursMinutes: 'HH:mm',
|
|
75
|
-
},
|
|
76
|
-
ru: {
|
|
77
|
-
code: 'ru-RU',
|
|
78
|
-
fullDate: 'dd/MM/yyyy H:mm',
|
|
79
|
-
dayMonthYear: 'dd MMMM yyyy',
|
|
80
|
-
monthYear: 'MMMM yyyy',
|
|
81
|
-
year: 'yyyy',
|
|
82
|
-
hoursMinutes: 'HH:mm',
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
export var NgxDateFormat;
|
|
86
|
-
(function (NgxDateFormat) {
|
|
87
|
-
NgxDateFormat["DAY_MONTH_YEAR"] = "DAY_MONTH_YEAR";
|
|
88
|
-
NgxDateFormat["FULL_DATE"] = "FULL_DATE";
|
|
89
|
-
NgxDateFormat["MONTH_YEAR"] = "MONTH_YEAR";
|
|
90
|
-
NgxDateFormat["HOURS_MINUTES"] = "HOURS_MINUTES";
|
|
91
|
-
NgxDateFormat["YEAR"] = "YEAR";
|
|
92
|
-
})(NgxDateFormat || (NgxDateFormat = {}));
|
|
93
|
-
export const fieldConfigDate = {
|
|
94
|
-
MONTH_YEAR: 'monthYear',
|
|
95
|
-
YEAR: 'year',
|
|
96
|
-
HOURS_MINUTES: 'hoursMinutes',
|
|
97
|
-
FULL_DATE: 'fullDate',
|
|
98
|
-
DAY_MONTH_YEAR: 'dayMonthYear',
|
|
99
|
-
};
|
|
100
|
-
/**
|
|
101
|
-
* Enum used to set the group event logic
|
|
102
|
-
*/
|
|
103
|
-
export var NgxTimelineEventGroup;
|
|
104
|
-
(function (NgxTimelineEventGroup) {
|
|
105
|
-
NgxTimelineEventGroup["YEAR"] = "YEAR";
|
|
106
|
-
NgxTimelineEventGroup["MONTH_YEAR"] = "MONTH_YEAR";
|
|
107
|
-
NgxTimelineEventGroup["DAY_MONTH_YEAR"] = "DAY_MONTH_YEAR";
|
|
108
|
-
})(NgxTimelineEventGroup || (NgxTimelineEventGroup = {}));
|
|
109
|
-
/**
|
|
110
|
-
* Enum used to set the group event logic
|
|
111
|
-
*/
|
|
112
|
-
export var NgxTimelineOrientation;
|
|
113
|
-
(function (NgxTimelineOrientation) {
|
|
114
|
-
NgxTimelineOrientation["HORIZONTAL"] = "HORIZONTAL";
|
|
115
|
-
NgxTimelineOrientation["VERTICAL"] = "VERTICAL";
|
|
116
|
-
})(NgxTimelineOrientation || (NgxTimelineOrientation = {}));
|
|
117
|
-
export const fieldsToAddEventGroup = {
|
|
118
|
-
YEAR: ['getFullYear'],
|
|
119
|
-
MONTH_YEAR: ['getFullYear', 'getMonth'],
|
|
120
|
-
DAY_MONTH_YEAR: ['getFullYear', 'getMonth', 'getDate'],
|
|
121
|
-
};
|
|
122
|
-
export const periodKeyDateFormat = {
|
|
123
|
-
YEAR: NgxDateFormat.YEAR,
|
|
124
|
-
MONTH_YEAR: NgxDateFormat.MONTH_YEAR,
|
|
125
|
-
DAY_MONTH_YEAR: NgxDateFormat.DAY_MONTH_YEAR,
|
|
126
|
-
};
|
|
127
|
-
/**
|
|
128
|
-
* Enum used to set the change side event logic
|
|
129
|
-
*/
|
|
130
|
-
export var NgxTimelineEventChangeSide;
|
|
131
|
-
(function (NgxTimelineEventChangeSide) {
|
|
132
|
-
NgxTimelineEventChangeSide["ALL"] = "ALL";
|
|
133
|
-
NgxTimelineEventChangeSide["ALL_IN_GROUP"] = "ALL_IN_GROUP";
|
|
134
|
-
NgxTimelineEventChangeSide["ON_DIFFERENT_DAY_IN_GROUP"] = "ON_DIFFERENT_DAY_IN_GROUP";
|
|
135
|
-
NgxTimelineEventChangeSide["ON_DIFFERENT_HMS_IN_GROUP"] = "ON_DIFFERENT_HMS_IN_GROUP";
|
|
136
|
-
NgxTimelineEventChangeSide["ON_DIFFERENT_MONTH_IN_GROUP"] = "ON_DIFFERENT_MONTH_IN_GROUP";
|
|
137
|
-
})(NgxTimelineEventChangeSide || (NgxTimelineEventChangeSide = {}));
|
|
138
|
-
export const fieldsToCheckEventChangeSideInGroup = {
|
|
139
|
-
ON_DIFFERENT_DAY_IN_GROUP: ['getFullYear', 'getMonth', 'getDate'],
|
|
140
|
-
ON_DIFFERENT_MONTH_IN_GROUP: ['getFullYear', 'getMonth'],
|
|
141
|
-
ON_DIFFERENT_HMS_IN_GROUP: ['getFullYear', 'getMonth', 'getDate', 'getHours', 'getMinutes', 'getSeconds'],
|
|
142
|
-
};
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmd4Q29uZmlnT2JqLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRpbWVsaW5lL3NyYy9saWIvbW9kZWxzL05neENvbmZpZ09iai50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBVSxDQUFDO0FBRTVHLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUEwQixzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQWU3RixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQWtCO0lBQzFDLEVBQUUsRUFBRTtRQUNGLElBQUksRUFBRSxPQUFPO1FBQ2IsUUFBUSxFQUFFLG1CQUFtQjtRQUM3QixZQUFZLEVBQUUsY0FBYztRQUM1QixTQUFTLEVBQUUsV0FBVztRQUN0QixJQUFJLEVBQUUsTUFBTTtRQUNaLFlBQVksRUFBRSxTQUFTO0tBQ3hCO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsSUFBSSxFQUFFLE9BQU87UUFDYixRQUFRLEVBQUUsaUJBQWlCO1FBQzNCLFlBQVksRUFBRSxjQUFjO1FBQzVCLFNBQVMsRUFBRSxXQUFXO1FBQ3RCLElBQUksRUFBRSxNQUFNO1FBQ1osWUFBWSxFQUFFLE9BQU87S0FDdEI7SUFDRCxFQUFFLEVBQUU7UUFDRixJQUFJLEVBQUUsT0FBTztRQUNiLFFBQVEsRUFBRSxpQkFBaUI7UUFDM0IsWUFBWSxFQUFFLGNBQWM7UUFDNUIsU0FBUyxFQUFFLFdBQVc7UUFDdEIsSUFBSSxFQUFFLE1BQU07UUFDWixZQUFZLEVBQUUsT0FBTztLQUN0QjtJQUNELEVBQUUsRUFBRTtRQUNGLElBQUksRUFBRSxJQUFJO1FBQ1YsUUFBUSxFQUFFLGlCQUFpQjtRQUMzQixZQUFZ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YUFBYSxDQUFDLFVBQVU7SUFDcEMsY0FBYyxFQUFFLGFBQWEsQ0FBQyxjQUFjO0NBQzdDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLDBCQU1YO0FBTkQsV0FBWSwwQkFBMEI7SUFDcEMseUNBQVcsQ0FBQTtJQUNYLDJEQUE2QixDQUFBO0lBQzdCLHFGQUF1RCxDQUFBO0lBQ3ZELHFGQUF1RCxDQUFBO0lBQ3ZELHlGQUEyRCxDQUFBO0FBQzdELENBQUMsRUFOVywwQkFBMEIsS0FBMUIsMEJBQTBCLFFBTXJDO0FBRUQsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUc7SUFDakQseUJBQXlCLEVBQUUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQztJQUNqRSwyQkFBMkIsRUFBRSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUM7SUFDeEQseUJBQXlCLEVBQUUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQztDQUMxRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHN1cHBvcnRlZExhbmd1YWdlQ29kZXMgPSBbJ2VuJywgJ2l0JywgJ2ZyJywgJ2RlJywgJ2VzJywgJ3NsJywgJ3RyJywgJ3BsJywgJ3B0JywgJ3J1J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBTdXBwb3J0ZWRMYW5ndWFnZUNvZGUgPSB0eXBlb2Ygc3VwcG9ydGVkTGFuZ3VhZ2VDb2Rlc1tudW1iZXJdO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRTdXBwb3J0ZWRMYW5ndWFnZUNvZGU6IFN1cHBvcnRlZExhbmd1YWdlQ29kZSA9IHN1cHBvcnRlZExhbmd1YWdlQ29kZXNbMF07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd4Q29uZmlnRGF0ZSB7XG4gIGNvZGU6IHN0cmluZztcbiAgZGF5TW9udGhZZWFyOiBzdHJpbmc7XG4gIGZ1bGxEYXRlOiBzdHJpbmc7XG4gIGhvdXJzTWludXRlczogc3RyaW5nO1xuICBtb250aFllYXI6IHN0cmluZztcbiAgeWVhcjogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBOZ3hEYXRlT2JqTWFwID0ge1xuICBba2V5IGluIFN1cHBvcnRlZExhbmd1YWdlQ29kZV06IE5neENvbmZpZ0RhdGU7XG59O1xuXG5leHBvcnQgY29uc3QgZGF0ZUNvbmZpZ01hcDogTmd4RGF0ZU9iak1hcCA9IHtcbiAgZW46IHtcbiAgICBjb2RlOiAnZW4tVVMnLFxuICAgIGZ1bGxEYXRlOiAnTU0vZGQveXl5eSBoOm1tIGEnLFxuICAgIGRheU1vbnRoWWVhcjogJ2RkIE1NTU0geXl5eScsXG4gICAgbW9udGhZZWFyOiAnTU1NTSB5eXl5JyxcbiAgICB5ZWFyOiAneXl5eScsXG4gICAgaG91cnNNaW51dGVzOiAnaGg6bW0gYScsXG4gIH0sXG4gIGl0OiB7XG4gICAgY29kZTogJ2l0LUlUJyxcbiAgICBmdWxsRGF0ZTogJ2RkL01NL3l5eXkgSDptbScsXG4gICAgZGF5TW9udGhZZWFyOiAnZGQgTU1NTSB5eXl5JyxcbiAgICBtb250aFllYXI6ICdNTU1NIHl5eXknLFxuICAgIHllYXI6ICd5eXl5JyxcbiAgICBob3Vyc01pbnV0ZXM6ICdISDptbScsXG4gIH0sXG4gIGZyOiB7XG4gICAgY29kZTogJ2ZyLUZSJyxcbiAgICBmdWxsRGF0ZTogJ2RkL01NL3l5eXkgSDptbScsXG4gICAgZGF5TW9udGhZZWFyOiAnZGQgTU1NTSB5eXl5JyxcbiAgICBtb250aFllYXI6ICdNTU1NIHl5eXknLFxuICAgIHllYXI6ICd5eXl5JyxcbiAgICBob3Vyc01pbnV0ZXM6ICdISDptbScsXG4gIH0sXG4gIGRlOiB7XG4gICAgY29kZTogJ2RlJyxcbiAgICBmdWxsRGF0ZTogJ2RkL01NL3l5eXkgSDptbScsXG4gICAgZGF5TW9udGhZZWFyOiAnZGQgTU1NTSB5eXl5JyxcbiAgICBtb250aFllYXI6ICdNTU1NIHl5eXknLFxuICAgIHllYXI6ICd5eXl5JyxcbiAgICBob3Vyc01pbnV0ZXM6ICdISDptbScsXG4gIH0sXG4gIGVzOiB7XG4gICAgY29kZTogJ2VzJyxcbiAgICBmdWxsRGF0ZTogJ2RkL01NL3l5eXkgSDptbScsXG4gICAgZGF5TW9udGhZZWFyOiAnZGQgTU1NTSB5eXl5JyxcbiAgICBtb250aFllYXI6ICdNTU1NIHl5eXknLFxuICAgIHllYXI6ICd5eXl5JyxcbiAgICBob3Vyc01pbnV0ZXM6ICdISDptbScsXG4gIH0sXG4gIHNsOiB7XG4gICAgY29kZTogJ3NsLVNMJyxcbiAgICBmdWxsRGF0ZTogJ2RkL01NL3l5eXkgSDptbScsXG4gICAgZGF5TW9udGhZZWFyOiAnZGQgTU1NTSB5eXl5JyxcbiAgICBtb250aFllYXI6ICdNTU1NIHl5eXknLFxuICAgIHllYXI6ICd5eXl5JyxcbiAgICBob3Vyc01pbnV0ZXM6ICdISDptbScsXG4gIH0sXG4gIHRyOiB7XG4gICAgY29kZTogJ3RyJyxcbiAgICBmdWxsRGF0ZTogJ2RkL01NL3l5eXkgSDptbScsXG4gICAgZGF5TW9udGhZZWFyOiAnZGQgTU1NTSB5eXl5JyxcbiAgICBtb250aFllYXI6ICdNTU1NIHl5eXknLFxuICAgIHllYXI6ICd5eXl5JyxcbiAgICBob3Vyc01pbnV0ZXM6ICdISDptbScsXG4gIH0sXG4gIHBsOiB7XG4gICAgY29kZTogJ3BsJyxcbiAgICBmdWxsRGF0ZTogJ2RkL01NL3l5eXkgSDptbScsXG4gICAgZGF5TW9udGhZZWFyOiAnZGQgTU1NTSB5eXl5JyxcbiAgICBtb250aFllYXI6ICdNTU1NIHl5eXknLFxuICAgIHllYXI6ICd5eXl5JyxcbiAgICBob3Vyc01pbnV0ZXM6ICdISDptbScsXG4gIH0sXG4gIHB0OiB7XG4gICAgY29kZTogJ3B0JyxcbiAgICBmdWxsRGF0ZTogJ2RkL01NL3l5eXkgSDptbScsXG4gICAgZGF5TW9udGhZZWFyOiAnZGQgTU1NTSB5eXl5JyxcbiAgICBtb250aFllYXI6ICdNTU1NIHl5eXknLFxuICAgIHllYXI6ICd5eXl5JyxcbiAgICBob3Vyc01pbnV0ZXM6ICdISDptbScsXG4gIH0sXG4gIHJ1OiB7XG4gICAgY29kZTogJ3J1LVJVJyxcbiAgICBmdWxsRGF0ZTogJ2RkL01NL3l5eXkgSDptbScsXG4gICAgZGF5TW9udGhZZWFyOiAnZGQgTU1NTSB5eXl5JyxcbiAgICBtb250aFllYXI6ICdNTU1NIHl5eXknLFxuICAgIHllYXI6ICd5eXl5JyxcbiAgICBob3Vyc01pbnV0ZXM6ICdISDptbScsXG4gIH1cbn07XG5cbmV4cG9ydCBlbnVtIE5neERhdGVGb3JtYXQge1xuICBEQVlfTU9OVEhfWUVBUiA9ICdEQVlfTU9OVEhfWUVBUicsXG4gIEZVTExfREFURSA9ICdGVUxMX0RBVEUnLFxuICBNT05USF9ZRUFSID0gJ01PTlRIX1lFQVInLFxuICBIT1VSU19NSU5VVEVTID0gJ0hPVVJTX01JTlVURVMnLFxuICBZRUFSID0gJ1lFQVInXG59XG5cbmV4cG9ydCBjb25zdCBmaWVsZENvbmZpZ0RhdGUgPSB7XG4gIE1PTlRIX1lFQVI6ICdtb250aFllYXInLFxuICBZRUFSOiAneWVhcicsXG4gIEhPVVJTX01JTlVURVM6ICdob3Vyc01pbnV0ZXMnLFxuICBGVUxMX0RBVEU6ICdmdWxsRGF0ZScsXG4gIERBWV9NT05USF9ZRUFSOiAnZGF5TW9udGhZZWFyJyxcbn07XG5cbi8qKlxuICogRW51bSB1c2VkIHRvIHNldCB0aGUgZ3JvdXAgZXZlbnQgbG9naWNcbiAqL1xuZXhwb3J0IGVudW0gTmd4VGltZWxpbmVFdmVudEdyb3VwIHtcbiAgWUVBUiA9ICdZRUFSJyxcbiAgTU9OVEhfWUVBUiA9ICdNT05USF9ZRUFSJyxcbiAgREFZX01PTlRIX1lFQVIgPSAnREFZX01PTlRIX1lFQVInXG59XG5cbi8qKlxuICogRW51bSB1c2VkIHRvIHNldCB0aGUgZ3JvdXAgZXZlbnQgbG9naWNcbiAqL1xuZXhwb3J0IGVudW0gTmd4VGltZWxpbmVPcmllbnRhdGlvbiB7XG4gIEhPUklaT05UQUwgPSAnSE9SSVpPTlRBTCcsXG4gIFZFUlRJQ0FMID0gJ1ZFUlRJQ0FMJyxcbn1cblxuZXhwb3J0IGNvbnN0IGZpZWxkc1RvQWRkRXZlbnRHcm91cCA9IHtcbiAgWUVBUjogWydnZXRGdWxsWWVhciddLFxuICBNT05USF9ZRUFSOiBbJ2dldEZ1bGxZZWFyJywgJ2dldE1vbnRoJ10sXG4gIERBWV9NT05USF9ZRUFSOiBbJ2dldEZ1bGxZZWFyJywgJ2dldE1vbnRoJywgJ2dldERhdGUnXSxcbn07XG5cbmV4cG9ydCBjb25zdCBwZXJpb2RLZXlEYXRlRm9ybWF0ID0ge1xuICBZRUFSOiBOZ3hEYXRlRm9ybWF0LllFQVIsXG4gIE1PTlRIX1lFQVI6IE5neERhdGVGb3JtYXQuTU9OVEhfWUVBUixcbiAgREFZX01PTlRIX1lFQVI6IE5neERhdGVGb3JtYXQuREFZX01PTlRIX1lFQVIsXG59O1xuXG4vKipcbiAqIEVudW0gdXNlZCB0byBzZXQgdGhlIGNoYW5nZSBzaWRlIGV2ZW50IGxvZ2ljXG4gKi9cbmV4cG9ydCBlbnVtIE5neFRpbWVsaW5lRXZlbnRDaGFuZ2VTaWRlIHtcbiAgQUxMID0gJ0FMTCcsXG4gIEFMTF9JTl9HUk9VUCA9ICdBTExfSU5fR1JPVVAnLFxuICBPTl9ESUZGRVJFTlRfREFZX0lOX0dST1VQID0gJ09OX0RJRkZFUkVOVF9EQVlfSU5fR1JPVVAnLFxuICBPTl9ESUZGRVJFTlRfSE1TX0lOX0dST1VQID0gJ09OX0RJRkZFUkVOVF9ITVNfSU5fR1JPVVAnLFxuICBPTl9ESUZGRVJFTlRfTU9OVEhfSU5fR1JPVVAgPSAnT05fRElGRkVSRU5UX01PTlRIX0lOX0dST1VQJ1xufVxuXG5leHBvcnQgY29uc3QgZmllbGRzVG9DaGVja0V2ZW50Q2hhbmdlU2lkZUluR3JvdXAgPSB7XG4gIE9OX0RJRkZFUkVOVF9EQVlfSU5fR1JPVVA6IFsnZ2V0RnVsbFllYXInLCAnZ2V0TW9udGgnLCAnZ2V0RGF0ZSddLFxuICBPTl9ESUZGRVJFTlRfTU9OVEhfSU5fR1JPVVA6IFsnZ2V0RnVsbFllYXInLCAnZ2V0TW9udGgnXSxcbiAgT05fRElGRkVSRU5UX0hNU19JTl9HUk9VUDogWydnZXRGdWxsWWVhcicsICdnZXRNb250aCcsICdnZXREYXRlJywgJ2dldEhvdXJzJywgJ2dldE1pbnV0ZXMnLCAnZ2V0U2Vjb25kcyddLFxufTtcbiJdfQ==
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export var NgxTimelineItemPosition;
|
|
2
|
-
(function (NgxTimelineItemPosition) {
|
|
3
|
-
NgxTimelineItemPosition["ON_LEFT"] = "ON_LEFT";
|
|
4
|
-
NgxTimelineItemPosition["ON_RIGHT"] = "ON_RIGHT";
|
|
5
|
-
})(NgxTimelineItemPosition || (NgxTimelineItemPosition = {}));
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmd4VGltZWxpbmVFdmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10aW1lbGluZS9zcmMvbGliL21vZGVscy9OZ3hUaW1lbGluZUV2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZCQSxNQUFNLENBQU4sSUFBWSx1QkFHWDtBQUhELFdBQVksdUJBQXVCO0lBQ2pDLDhDQUFtQixDQUFBO0lBQ25CLGdEQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFIVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBR2xDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFdmVudCB0byBiZSBwcm92aWRlZCBmcm9tIG91dHNpZGUgdGhlIHRpbWVsaW5lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmd4VGltZWxpbmVFdmVudCB7XG4gIHRpbWVzdGFtcD86IERhdGU7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgaWQ/OiBhbnk7XG4gIGl0ZW1Qb3NpdGlvbj86IE5neFRpbWVsaW5lSXRlbVBvc2l0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5neFRpbWVsaW5lUGVyaW9kSW5mbyB7XG4gIHBlcmlvZEtleT86IHN0cmluZztcbiAgeWVhcj86IG51bWJlcjtcbiAgbW9udGg/OiBudW1iZXI7XG4gIGRheT86IG51bWJlcjtcbiAgZmlyc3REYXRlPzogYW55O1xufVxuXG4vKipcbiAqIEl0ZW0gdXNlZCBpbnNpZGUgdGhlIHRpbWVsaW5lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmd4VGltZWxpbmVJdGVtIHtcbiAgdHlwZT86IHN0cmluZztcbiAgcG9zaXRpb24/OiBOZ3hUaW1lbGluZUl0ZW1Qb3NpdGlvbi5PTl9MRUZUIHwgTmd4VGltZWxpbmVJdGVtUG9zaXRpb24uT05fUklHSFQ7XG4gIHBlcmlvZEluZm8/OiBOZ3hUaW1lbGluZVBlcmlvZEluZm87XG4gIGV2ZW50SW5mbz86IE5neFRpbWVsaW5lRXZlbnQ7XG59XG5cbmV4cG9ydCBlbnVtIE5neFRpbWVsaW5lSXRlbVBvc2l0aW9uIHtcbiAgT05fTEVGVCA9ICdPTl9MRUZUJyxcbiAgT05fUklHSFQgPSAnT05fUklHSFQnXG59XG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './NgxConfigObj';
|
|
2
|
-
export * from './NgxTimelineEvent';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGltZWxpbmUvc3JjL2xpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9OZ3hDb25maWdPYmonO1xuZXhwb3J0ICogZnJvbSAnLi9OZ3hUaW1lbGluZUV2ZW50JztcbiJdfQ==
|