@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.
@@ -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==