@memberjunction/ng-timeline 2.122.2 → 2.123.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.
|
@@ -59,6 +59,10 @@ export declare class TimelineComponent<T = any> implements OnInit, OnDestroy, Af
|
|
|
59
59
|
get groups(): TimelineGroup<T>[];
|
|
60
60
|
set groups(value: TimelineGroup<T>[]);
|
|
61
61
|
private _groups;
|
|
62
|
+
/**
|
|
63
|
+
* Check if timeline groups have meaningfully changed
|
|
64
|
+
*/
|
|
65
|
+
private didGroupsChange;
|
|
62
66
|
/**
|
|
63
67
|
* Controls whether data loading is allowed.
|
|
64
68
|
* Set to false to defer loading until ready.
|
|
@@ -73,26 +77,34 @@ export declare class TimelineComponent<T = any> implements OnInit, OnDestroy, Af
|
|
|
73
77
|
* - `horizontal`: Events displayed left-to-right
|
|
74
78
|
* @default 'vertical'
|
|
75
79
|
*/
|
|
76
|
-
orientation: TimelineOrientation;
|
|
80
|
+
get orientation(): TimelineOrientation;
|
|
81
|
+
set orientation(value: TimelineOrientation);
|
|
82
|
+
private _orientation;
|
|
77
83
|
/**
|
|
78
84
|
* Layout mode for vertical timeline.
|
|
79
85
|
* - `single`: All cards on one side
|
|
80
86
|
* - `alternating`: Cards alternate sides
|
|
81
87
|
* @default 'single'
|
|
82
88
|
*/
|
|
83
|
-
layout: TimelineLayout;
|
|
89
|
+
get layout(): TimelineLayout;
|
|
90
|
+
set layout(value: TimelineLayout);
|
|
91
|
+
private _layout;
|
|
84
92
|
/**
|
|
85
93
|
* Sort order for events.
|
|
86
94
|
* - `desc`: Newest first
|
|
87
95
|
* - `asc`: Oldest first
|
|
88
96
|
* @default 'desc'
|
|
89
97
|
*/
|
|
90
|
-
sortOrder: TimelineSortOrder;
|
|
98
|
+
get sortOrder(): TimelineSortOrder;
|
|
99
|
+
set sortOrder(value: TimelineSortOrder);
|
|
100
|
+
private _sortOrder;
|
|
91
101
|
/**
|
|
92
102
|
* How to group events into time segments.
|
|
93
103
|
* @default 'month'
|
|
94
104
|
*/
|
|
95
|
-
segmentGrouping: TimeSegmentGrouping;
|
|
105
|
+
get segmentGrouping(): TimeSegmentGrouping;
|
|
106
|
+
set segmentGrouping(value: TimeSegmentGrouping);
|
|
107
|
+
private _segmentGrouping;
|
|
96
108
|
/**
|
|
97
109
|
* Default card configuration applied to all groups.
|
|
98
110
|
* Individual groups can override these settings.
|
|
@@ -137,6 +149,13 @@ export declare class TimelineComponent<T = any> implements OnInit, OnDestroy, Af
|
|
|
137
149
|
* @default true
|
|
138
150
|
*/
|
|
139
151
|
enableKeyboardNavigation: boolean;
|
|
152
|
+
/**
|
|
153
|
+
* ID of the currently selected event.
|
|
154
|
+
* When set, the corresponding event will be highlighted with the focused style.
|
|
155
|
+
*/
|
|
156
|
+
get selectedEventId(): string | null;
|
|
157
|
+
set selectedEventId(value: string | null);
|
|
158
|
+
private _selectedEventId;
|
|
140
159
|
/** Emitted before an event card is clicked. Set `cancel = true` to prevent. */
|
|
141
160
|
beforeEventClick: EventEmitter<BeforeEventClickArgs<T>>;
|
|
142
161
|
/** Emitted before an event card expands. Set `cancel = true` to prevent. */
|
|
@@ -221,7 +240,7 @@ export declare class TimelineComponent<T = any> implements OnInit, OnDestroy, Af
|
|
|
221
240
|
* Refreshes all data from the configured groups.
|
|
222
241
|
* Clears existing data and reloads from sources.
|
|
223
242
|
*/
|
|
224
|
-
refresh(): Promise<void>;
|
|
243
|
+
refresh(force?: boolean): Promise<void>;
|
|
225
244
|
/**
|
|
226
245
|
* Loads more events (for virtual scrolling).
|
|
227
246
|
*/
|
|
@@ -334,6 +353,13 @@ export declare class TimelineComponent<T = any> implements OnInit, OnDestroy, Af
|
|
|
334
353
|
* Gets the global index of an event in the allEvents array.
|
|
335
354
|
*/
|
|
336
355
|
getGlobalIndex(event: MJTimelineEvent<T>): number;
|
|
356
|
+
/**
|
|
357
|
+
* Checks if an event is currently selected/focused.
|
|
358
|
+
* An event is selected if either:
|
|
359
|
+
* - Its ID matches the selectedEventId input
|
|
360
|
+
* - Its global index matches the focusedEventIndex (keyboard navigation)
|
|
361
|
+
*/
|
|
362
|
+
isEventSelected(event: MJTimelineEvent<T>, globalIndex: number): boolean;
|
|
337
363
|
/**
|
|
338
364
|
* Loads data from all groups.
|
|
339
365
|
*/
|
|
@@ -409,9 +435,10 @@ export declare class TimelineComponent<T = any> implements OnInit, OnDestroy, Af
|
|
|
409
435
|
private mapEventConfigToCardConfig;
|
|
410
436
|
/**
|
|
411
437
|
* Simple date formatter (replaces Angular DatePipe for standalone use).
|
|
438
|
+
* Uses placeholder tokens to avoid replacement conflicts.
|
|
412
439
|
*/
|
|
413
440
|
private formatDateInternal;
|
|
414
441
|
static ɵfac: i0.ɵɵFactoryDeclaration<TimelineComponent<any>, never>;
|
|
415
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TimelineComponent<any>, "mj-timeline", never, { "groups": { "alias": "groups"; "required": false; }; "allowLoad": { "alias": "allowLoad"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; "sortOrder": { "alias": "sortOrder"; "required": false; }; "segmentGrouping": { "alias": "segmentGrouping"; "required": false; }; "defaultCardConfig": { "alias": "defaultCardConfig"; "required": false; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; }; "segmentsCollapsible": { "alias": "segmentsCollapsible"; "required": false; }; "segmentsDefaultExpanded": { "alias": "segmentsDefaultExpanded"; "required": false; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; }; "emptyIcon": { "alias": "emptyIcon"; "required": false; }; "loadingMessage": { "alias": "loadingMessage"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "enableKeyboardNavigation": { "alias": "enableKeyboardNavigation"; "required": false; }; }, { "beforeEventClick": "beforeEventClick"; "beforeEventExpand": "beforeEventExpand"; "beforeEventCollapse": "beforeEventCollapse"; "beforeEventHover": "beforeEventHover"; "beforeActionClick": "beforeActionClick"; "beforeSegmentExpand": "beforeSegmentExpand"; "beforeSegmentCollapse": "beforeSegmentCollapse"; "beforeLoad": "beforeLoad"; "afterEventClick": "afterEventClick"; "afterEventExpand": "afterEventExpand"; "afterEventCollapse": "afterEventCollapse"; "afterEventHover": "afterEventHover"; "afterActionClick": "afterActionClick"; "afterSegmentExpand": "afterSegmentExpand"; "afterSegmentCollapse": "afterSegmentCollapse"; "afterLoad": "afterLoad"; }, ["cardTemplate", "headerTemplate", "bodyTemplate", "actionsTemplate", "segmentHeaderTemplate", "emptyTemplate", "loadingTemplate"], never, false, never>;
|
|
442
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TimelineComponent<any>, "mj-timeline", never, { "groups": { "alias": "groups"; "required": false; }; "allowLoad": { "alias": "allowLoad"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; "sortOrder": { "alias": "sortOrder"; "required": false; }; "segmentGrouping": { "alias": "segmentGrouping"; "required": false; }; "defaultCardConfig": { "alias": "defaultCardConfig"; "required": false; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; }; "segmentsCollapsible": { "alias": "segmentsCollapsible"; "required": false; }; "segmentsDefaultExpanded": { "alias": "segmentsDefaultExpanded"; "required": false; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; }; "emptyIcon": { "alias": "emptyIcon"; "required": false; }; "loadingMessage": { "alias": "loadingMessage"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "enableKeyboardNavigation": { "alias": "enableKeyboardNavigation"; "required": false; }; "selectedEventId": { "alias": "selectedEventId"; "required": false; }; }, { "beforeEventClick": "beforeEventClick"; "beforeEventExpand": "beforeEventExpand"; "beforeEventCollapse": "beforeEventCollapse"; "beforeEventHover": "beforeEventHover"; "beforeActionClick": "beforeActionClick"; "beforeSegmentExpand": "beforeSegmentExpand"; "beforeSegmentCollapse": "beforeSegmentCollapse"; "beforeLoad": "beforeLoad"; "afterEventClick": "afterEventClick"; "afterEventExpand": "afterEventExpand"; "afterEventCollapse": "afterEventCollapse"; "afterEventHover": "afterEventHover"; "afterActionClick": "afterActionClick"; "afterSegmentExpand": "afterSegmentExpand"; "afterSegmentCollapse": "afterSegmentCollapse"; "afterLoad": "afterLoad"; }, ["cardTemplate", "headerTemplate", "bodyTemplate", "actionsTemplate", "segmentHeaderTemplate", "emptyTemplate", "loadingTemplate"], never, false, never>;
|
|
416
443
|
}
|
|
417
444
|
//# sourceMappingURL=timeline.component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.component.d.ts","sourceRoot":"","sources":["../../../src/lib/component/timeline.component.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAIL,YAAY,EACZ,MAAM,EACN,SAAS,EACT,aAAa,EACb,UAAU,EAGV,WAAW,EACX,iBAAiB,
|
|
1
|
+
{"version":3,"file":"timeline.component.d.ts","sourceRoot":"","sources":["../../../src/lib/component/timeline.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*
|
|
12
12
|
* @module @memberjunction/ng-timeline
|
|
13
13
|
*/
|
|
14
|
-
import { Component, Input, Output, EventEmitter, ViewChild, ContentChild, ChangeDetectionStrategy } from '@angular/core';
|
|
14
|
+
import { Component, Input, Output, EventEmitter, ViewChild, ContentChild, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';
|
|
15
15
|
import { Subject } from 'rxjs';
|
|
16
16
|
import { takeUntil, debounceTime } from 'rxjs/operators';
|
|
17
17
|
import { DEFAULT_CARD_CONFIG, DEFAULT_VIRTUAL_SCROLL_CONFIG, DEFAULT_VIRTUAL_SCROLL_STATE } from '../types';
|
|
@@ -379,7 +379,7 @@ function TimelineComponent_ng_template_7_ng_template_7_ng_template_9_div_0_ng_co
|
|
|
379
379
|
i0.ɵɵelement(0, "i", 72);
|
|
380
380
|
} if (rf & 2) {
|
|
381
381
|
const field_r24 = i0.ɵɵnextContext().$implicit;
|
|
382
|
-
i0.ɵɵ
|
|
382
|
+
i0.ɵɵproperty("ngClass", field_r24.icon);
|
|
383
383
|
} }
|
|
384
384
|
function TimelineComponent_ng_template_7_ng_template_7_ng_template_9_div_0_ng_container_1_span_3_Template(rf, ctx) { if (rf & 1) {
|
|
385
385
|
i0.ɵɵelementStart(0, "span", 73);
|
|
@@ -393,7 +393,7 @@ function TimelineComponent_ng_template_7_ng_template_7_ng_template_9_div_0_ng_co
|
|
|
393
393
|
function TimelineComponent_ng_template_7_ng_template_7_ng_template_9_div_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
394
394
|
i0.ɵɵelementContainerStart(0);
|
|
395
395
|
i0.ɵɵelementStart(1, "div", 68);
|
|
396
|
-
i0.ɵɵtemplate(2, TimelineComponent_ng_template_7_ng_template_7_ng_template_9_div_0_ng_container_1_i_2_Template, 1,
|
|
396
|
+
i0.ɵɵtemplate(2, TimelineComponent_ng_template_7_ng_template_7_ng_template_9_div_0_ng_container_1_i_2_Template, 1, 1, "i", 69)(3, TimelineComponent_ng_template_7_ng_template_7_ng_template_9_div_0_ng_container_1_span_3_Template, 2, 1, "span", 70);
|
|
397
397
|
i0.ɵɵelementStart(4, "span", 71);
|
|
398
398
|
i0.ɵɵtext(5);
|
|
399
399
|
i0.ɵɵelementEnd()();
|
|
@@ -403,7 +403,7 @@ function TimelineComponent_ng_template_7_ng_template_7_ng_template_9_div_0_ng_co
|
|
|
403
403
|
const event_r17 = i0.ɵɵnextContext(4).event;
|
|
404
404
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
405
405
|
i0.ɵɵadvance();
|
|
406
|
-
i0.ɵɵ
|
|
406
|
+
i0.ɵɵproperty("ngClass", field_r24.cssClass);
|
|
407
407
|
i0.ɵɵadvance();
|
|
408
408
|
i0.ɵɵproperty("ngIf", field_r24.icon);
|
|
409
409
|
i0.ɵɵadvance();
|
|
@@ -413,7 +413,7 @@ function TimelineComponent_ng_template_7_ng_template_7_ng_template_9_div_0_ng_co
|
|
|
413
413
|
} }
|
|
414
414
|
function TimelineComponent_ng_template_7_ng_template_7_ng_template_9_div_0_Template(rf, ctx) { if (rf & 1) {
|
|
415
415
|
i0.ɵɵelementStart(0, "div", 66);
|
|
416
|
-
i0.ɵɵtemplate(1, TimelineComponent_ng_template_7_ng_template_7_ng_template_9_div_0_ng_container_1_Template, 6,
|
|
416
|
+
i0.ɵɵtemplate(1, TimelineComponent_ng_template_7_ng_template_7_ng_template_9_div_0_ng_container_1_Template, 6, 4, "ng-container", 67);
|
|
417
417
|
i0.ɵɵelementEnd();
|
|
418
418
|
} if (rf & 2) {
|
|
419
419
|
const event_r17 = i0.ɵɵnextContext(3).event;
|
|
@@ -454,7 +454,7 @@ function TimelineComponent_ng_template_7_ng_template_7_ng_template_9_div_2_ng_co
|
|
|
454
454
|
i0.ɵɵelement(0, "i", 72);
|
|
455
455
|
} if (rf & 2) {
|
|
456
456
|
const field_r26 = i0.ɵɵnextContext().$implicit;
|
|
457
|
-
i0.ɵɵ
|
|
457
|
+
i0.ɵɵproperty("ngClass", field_r26.icon);
|
|
458
458
|
} }
|
|
459
459
|
function TimelineComponent_ng_template_7_ng_template_7_ng_template_9_div_2_ng_container_1_span_3_Template(rf, ctx) { if (rf & 1) {
|
|
460
460
|
i0.ɵɵelementStart(0, "span", 73);
|
|
@@ -468,7 +468,7 @@ function TimelineComponent_ng_template_7_ng_template_7_ng_template_9_div_2_ng_co
|
|
|
468
468
|
function TimelineComponent_ng_template_7_ng_template_7_ng_template_9_div_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
469
469
|
i0.ɵɵelementContainerStart(0);
|
|
470
470
|
i0.ɵɵelementStart(1, "div", 68);
|
|
471
|
-
i0.ɵɵtemplate(2, TimelineComponent_ng_template_7_ng_template_7_ng_template_9_div_2_ng_container_1_i_2_Template, 1,
|
|
471
|
+
i0.ɵɵtemplate(2, TimelineComponent_ng_template_7_ng_template_7_ng_template_9_div_2_ng_container_1_i_2_Template, 1, 1, "i", 69)(3, TimelineComponent_ng_template_7_ng_template_7_ng_template_9_div_2_ng_container_1_span_3_Template, 2, 1, "span", 70);
|
|
472
472
|
i0.ɵɵelementStart(4, "span", 71);
|
|
473
473
|
i0.ɵɵtext(5);
|
|
474
474
|
i0.ɵɵelementEnd()();
|
|
@@ -478,7 +478,7 @@ function TimelineComponent_ng_template_7_ng_template_7_ng_template_9_div_2_ng_co
|
|
|
478
478
|
const event_r17 = i0.ɵɵnextContext(4).event;
|
|
479
479
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
480
480
|
i0.ɵɵadvance();
|
|
481
|
-
i0.ɵɵ
|
|
481
|
+
i0.ɵɵproperty("ngClass", field_r26.cssClass);
|
|
482
482
|
i0.ɵɵadvance();
|
|
483
483
|
i0.ɵɵproperty("ngIf", field_r26.icon);
|
|
484
484
|
i0.ɵɵadvance();
|
|
@@ -488,7 +488,7 @@ function TimelineComponent_ng_template_7_ng_template_7_ng_template_9_div_2_ng_co
|
|
|
488
488
|
} }
|
|
489
489
|
function TimelineComponent_ng_template_7_ng_template_7_ng_template_9_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
490
490
|
i0.ɵɵelementStart(0, "div", 76);
|
|
491
|
-
i0.ɵɵtemplate(1, TimelineComponent_ng_template_7_ng_template_7_ng_template_9_div_2_ng_container_1_Template, 6,
|
|
491
|
+
i0.ɵɵtemplate(1, TimelineComponent_ng_template_7_ng_template_7_ng_template_9_div_2_ng_container_1_Template, 6, 4, "ng-container", 67);
|
|
492
492
|
i0.ɵɵelementEnd();
|
|
493
493
|
} if (rf & 2) {
|
|
494
494
|
const event_r17 = i0.ɵɵnextContext(3).event;
|
|
@@ -523,31 +523,30 @@ function TimelineComponent_ng_template_7_ng_template_7_div_11_ng_container_1_Tem
|
|
|
523
523
|
i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.actionsTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c12, event_r17, ctx_r1.getActions(event_r17)));
|
|
524
524
|
} }
|
|
525
525
|
function TimelineComponent_ng_template_7_ng_template_7_div_11_ng_template_2_button_0_i_1_Template(rf, ctx) { if (rf & 1) {
|
|
526
|
-
i0.ɵɵelement(0, "i");
|
|
526
|
+
i0.ɵɵelement(0, "i", 81);
|
|
527
527
|
} if (rf & 2) {
|
|
528
528
|
const action_r28 = i0.ɵɵnextContext().$implicit;
|
|
529
|
-
i0.ɵɵ
|
|
529
|
+
i0.ɵɵproperty("ngClass", action_r28.icon);
|
|
530
530
|
} }
|
|
531
531
|
function TimelineComponent_ng_template_7_ng_template_7_div_11_ng_template_2_button_0_Template(rf, ctx) { if (rf & 1) {
|
|
532
532
|
const _r27 = i0.ɵɵgetCurrentView();
|
|
533
533
|
i0.ɵɵelementStart(0, "button", 79);
|
|
534
534
|
i0.ɵɵlistener("click", function TimelineComponent_ng_template_7_ng_template_7_div_11_ng_template_2_button_0_Template_button_click_0_listener($event) { const action_r28 = i0.ɵɵrestoreView(_r27).$implicit; const ctx_r22 = i0.ɵɵnextContext(4); const event_r17 = ctx_r22.event; const globalIndex_r19 = ctx_r22.globalIndex; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onActionClick(event_r17, action_r28, globalIndex_r19, $event)); });
|
|
535
|
-
i0.ɵɵtemplate(1, TimelineComponent_ng_template_7_ng_template_7_div_11_ng_template_2_button_0_i_1_Template, 1,
|
|
535
|
+
i0.ɵɵtemplate(1, TimelineComponent_ng_template_7_ng_template_7_div_11_ng_template_2_button_0_i_1_Template, 1, 1, "i", 80);
|
|
536
536
|
i0.ɵɵelementStart(2, "span");
|
|
537
537
|
i0.ɵɵtext(3);
|
|
538
538
|
i0.ɵɵelementEnd()();
|
|
539
539
|
} if (rf & 2) {
|
|
540
540
|
const action_r28 = ctx.$implicit;
|
|
541
|
-
i0.ɵɵclassMap(action_r28.cssClass);
|
|
542
541
|
i0.ɵɵclassProp("mj-timeline__action--primary", action_r28.variant === "primary")("mj-timeline__action--secondary", action_r28.variant === "secondary" || !action_r28.variant)("mj-timeline__action--danger", action_r28.variant === "danger")("mj-timeline__action--link", action_r28.variant === "link");
|
|
543
|
-
i0.ɵɵproperty("disabled", action_r28.disabled)("title", action_r28.tooltip || "");
|
|
542
|
+
i0.ɵɵproperty("ngClass", action_r28.cssClass)("disabled", action_r28.disabled)("title", action_r28.tooltip || "");
|
|
544
543
|
i0.ɵɵadvance();
|
|
545
544
|
i0.ɵɵproperty("ngIf", action_r28.icon);
|
|
546
545
|
i0.ɵɵadvance(2);
|
|
547
546
|
i0.ɵɵtextInterpolate(action_r28.label);
|
|
548
547
|
} }
|
|
549
548
|
function TimelineComponent_ng_template_7_ng_template_7_div_11_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
550
|
-
i0.ɵɵtemplate(0, TimelineComponent_ng_template_7_ng_template_7_div_11_ng_template_2_button_0_Template, 4,
|
|
549
|
+
i0.ɵɵtemplate(0, TimelineComponent_ng_template_7_ng_template_7_div_11_ng_template_2_button_0_Template, 4, 13, "button", 78);
|
|
551
550
|
} if (rf & 2) {
|
|
552
551
|
const event_r17 = i0.ɵɵnextContext(3).event;
|
|
553
552
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -611,7 +610,7 @@ function TimelineComponent_ng_template_7_Template(rf, ctx) { if (rf & 1) {
|
|
|
611
610
|
const globalIndex_r19 = ctx.globalIndex;
|
|
612
611
|
const defaultCard_r33 = i0.ɵɵreference(8);
|
|
613
612
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
614
|
-
i0.ɵɵclassProp("mj-timeline__event--odd", isOdd_r32 && ctx_r1.layout === "alternating")("mj-timeline__event--even", !isOdd_r32 && ctx_r1.layout === "alternating")("mj-timeline__event--expanded", event_r17.isExpanded)("mj-timeline__event--focused", ctx_r1.
|
|
613
|
+
i0.ɵɵclassProp("mj-timeline__event--odd", isOdd_r32 && ctx_r1.layout === "alternating")("mj-timeline__event--even", !isOdd_r32 && ctx_r1.layout === "alternating")("mj-timeline__event--expanded", event_r17.isExpanded)("mj-timeline__event--focused", ctx_r1.isEventSelected(event_r17, globalIndex_r19));
|
|
615
614
|
i0.ɵɵattribute("data-event-id", event_r17.id)("aria-expanded", event_r17.isExpanded);
|
|
616
615
|
i0.ɵɵadvance();
|
|
617
616
|
i0.ɵɵstyleProp("background-color", ctx_r1.getColor(event_r17));
|
|
@@ -622,8 +621,8 @@ function TimelineComponent_ng_template_7_Template(rf, ctx) { if (rf & 1) {
|
|
|
622
621
|
i0.ɵɵadvance();
|
|
623
622
|
i0.ɵɵproperty("ngIf", ctx_r1.layout === "alternating");
|
|
624
623
|
i0.ɵɵadvance();
|
|
625
|
-
i0.ɵɵclassMap(ctx_r1.getEffectiveCardConfig(event_r17).cssClass);
|
|
626
624
|
i0.ɵɵstyleProp("max-width", ctx_r1.getEffectiveCardConfig(event_r17).maxWidth)("min-width", ctx_r1.getEffectiveCardConfig(event_r17).minWidth)("border-left-color", ctx_r1.getColor(event_r17));
|
|
625
|
+
i0.ɵɵproperty("ngClass", ctx_r1.getEffectiveCardConfig(event_r17).cssClass);
|
|
627
626
|
i0.ɵɵadvance();
|
|
628
627
|
i0.ɵɵproperty("ngIf", ctx_r1.cardTemplate)("ngIfElse", defaultCard_r33);
|
|
629
628
|
} }
|
|
@@ -699,12 +698,40 @@ export class TimelineComponent {
|
|
|
699
698
|
return this._groups;
|
|
700
699
|
}
|
|
701
700
|
set groups(value) {
|
|
701
|
+
const prevGroups = this._groups;
|
|
702
702
|
this._groups = value || [];
|
|
703
|
-
|
|
704
|
-
|
|
703
|
+
const hasGroups = this._groups.length > 0;
|
|
704
|
+
// Check if groups actually changed (different date field, label, or data)
|
|
705
|
+
const groupsChanged = this.didGroupsChange(prevGroups, this._groups);
|
|
706
|
+
if (this.allowLoad && hasGroups) {
|
|
707
|
+
if (!this._hasLoaded) {
|
|
708
|
+
// First load
|
|
709
|
+
this.refresh();
|
|
710
|
+
}
|
|
711
|
+
else if (groupsChanged) {
|
|
712
|
+
// Groups changed after initial load - force refresh
|
|
713
|
+
this.refresh(true);
|
|
714
|
+
}
|
|
705
715
|
}
|
|
706
716
|
}
|
|
707
717
|
_groups = [];
|
|
718
|
+
/**
|
|
719
|
+
* Check if timeline groups have meaningfully changed
|
|
720
|
+
*/
|
|
721
|
+
didGroupsChange(prev, next) {
|
|
722
|
+
if (prev.length !== next.length)
|
|
723
|
+
return true;
|
|
724
|
+
for (let i = 0; i < prev.length; i++) {
|
|
725
|
+
const p = prev[i];
|
|
726
|
+
const n = next[i];
|
|
727
|
+
if (p.DateFieldName !== n.DateFieldName ||
|
|
728
|
+
p.GroupLabel !== n.GroupLabel ||
|
|
729
|
+
p.EntityObjects !== n.EntityObjects) {
|
|
730
|
+
return true;
|
|
731
|
+
}
|
|
732
|
+
}
|
|
733
|
+
return false;
|
|
734
|
+
}
|
|
708
735
|
/**
|
|
709
736
|
* Controls whether data loading is allowed.
|
|
710
737
|
* Set to false to defer loading until ready.
|
|
@@ -716,13 +743,14 @@ export class TimelineComponent {
|
|
|
716
743
|
set allowLoad(value) {
|
|
717
744
|
const wasDisabled = !this._allowLoad;
|
|
718
745
|
this._allowLoad = value;
|
|
719
|
-
|
|
720
|
-
|
|
746
|
+
// When allowLoad becomes true and we have groups, trigger refresh
|
|
747
|
+
if (value && wasDisabled && this._groups.length > 0) {
|
|
748
|
+
this.refresh(this._hasLoaded);
|
|
721
749
|
}
|
|
722
750
|
}
|
|
723
751
|
_allowLoad = true;
|
|
724
752
|
// ============================================================================
|
|
725
|
-
// INPUTS - LAYOUT
|
|
753
|
+
// INPUTS - LAYOUT (using setters for reactive updates)
|
|
726
754
|
// ============================================================================
|
|
727
755
|
/**
|
|
728
756
|
* Timeline orientation.
|
|
@@ -730,26 +758,70 @@ export class TimelineComponent {
|
|
|
730
758
|
* - `horizontal`: Events displayed left-to-right
|
|
731
759
|
* @default 'vertical'
|
|
732
760
|
*/
|
|
733
|
-
orientation
|
|
761
|
+
get orientation() {
|
|
762
|
+
return this._orientation;
|
|
763
|
+
}
|
|
764
|
+
set orientation(value) {
|
|
765
|
+
if (this._orientation !== value) {
|
|
766
|
+
this._orientation = value;
|
|
767
|
+
this.cdr.markForCheck();
|
|
768
|
+
}
|
|
769
|
+
}
|
|
770
|
+
_orientation = 'vertical';
|
|
734
771
|
/**
|
|
735
772
|
* Layout mode for vertical timeline.
|
|
736
773
|
* - `single`: All cards on one side
|
|
737
774
|
* - `alternating`: Cards alternate sides
|
|
738
775
|
* @default 'single'
|
|
739
776
|
*/
|
|
740
|
-
layout
|
|
777
|
+
get layout() {
|
|
778
|
+
return this._layout;
|
|
779
|
+
}
|
|
780
|
+
set layout(value) {
|
|
781
|
+
if (this._layout !== value) {
|
|
782
|
+
this._layout = value;
|
|
783
|
+
this.cdr.markForCheck();
|
|
784
|
+
}
|
|
785
|
+
}
|
|
786
|
+
_layout = 'single';
|
|
741
787
|
/**
|
|
742
788
|
* Sort order for events.
|
|
743
789
|
* - `desc`: Newest first
|
|
744
790
|
* - `asc`: Oldest first
|
|
745
791
|
* @default 'desc'
|
|
746
792
|
*/
|
|
747
|
-
sortOrder
|
|
793
|
+
get sortOrder() {
|
|
794
|
+
return this._sortOrder;
|
|
795
|
+
}
|
|
796
|
+
set sortOrder(value) {
|
|
797
|
+
if (this._sortOrder !== value) {
|
|
798
|
+
this._sortOrder = value;
|
|
799
|
+
// Re-process events when sort order changes - force refresh since data already loaded
|
|
800
|
+
if (this._initialized) {
|
|
801
|
+
this.refresh(true);
|
|
802
|
+
}
|
|
803
|
+
this.cdr.markForCheck();
|
|
804
|
+
}
|
|
805
|
+
}
|
|
806
|
+
_sortOrder = 'desc';
|
|
748
807
|
/**
|
|
749
808
|
* How to group events into time segments.
|
|
750
809
|
* @default 'month'
|
|
751
810
|
*/
|
|
752
|
-
segmentGrouping
|
|
811
|
+
get segmentGrouping() {
|
|
812
|
+
return this._segmentGrouping;
|
|
813
|
+
}
|
|
814
|
+
set segmentGrouping(value) {
|
|
815
|
+
if (this._segmentGrouping !== value) {
|
|
816
|
+
this._segmentGrouping = value;
|
|
817
|
+
// Re-segment events when grouping changes - force refresh since data already loaded
|
|
818
|
+
if (this._initialized) {
|
|
819
|
+
this.refresh(true);
|
|
820
|
+
}
|
|
821
|
+
this.cdr.markForCheck();
|
|
822
|
+
}
|
|
823
|
+
}
|
|
824
|
+
_segmentGrouping = 'month';
|
|
753
825
|
// ============================================================================
|
|
754
826
|
// INPUTS - CARD DEFAULTS
|
|
755
827
|
// ============================================================================
|
|
@@ -809,6 +881,21 @@ export class TimelineComponent {
|
|
|
809
881
|
* @default true
|
|
810
882
|
*/
|
|
811
883
|
enableKeyboardNavigation = true;
|
|
884
|
+
/**
|
|
885
|
+
* ID of the currently selected event.
|
|
886
|
+
* When set, the corresponding event will be highlighted with the focused style.
|
|
887
|
+
*/
|
|
888
|
+
get selectedEventId() {
|
|
889
|
+
return this._selectedEventId;
|
|
890
|
+
}
|
|
891
|
+
set selectedEventId(value) {
|
|
892
|
+
const changed = this._selectedEventId !== value;
|
|
893
|
+
this._selectedEventId = value;
|
|
894
|
+
if (changed) {
|
|
895
|
+
this.cdr.markForCheck();
|
|
896
|
+
}
|
|
897
|
+
}
|
|
898
|
+
_selectedEventId = null;
|
|
812
899
|
// ============================================================================
|
|
813
900
|
// OUTPUTS - BEFORE EVENTS (with cancel support)
|
|
814
901
|
// ============================================================================
|
|
@@ -930,7 +1017,11 @@ export class TimelineComponent {
|
|
|
930
1017
|
* Refreshes all data from the configured groups.
|
|
931
1018
|
* Clears existing data and reloads from sources.
|
|
932
1019
|
*/
|
|
933
|
-
async refresh() {
|
|
1020
|
+
async refresh(force = false) {
|
|
1021
|
+
// Prevent concurrent refresh calls - if already refreshing, exit immediately
|
|
1022
|
+
if (this.isLoading || (this._hasLoaded && !force)) {
|
|
1023
|
+
return;
|
|
1024
|
+
}
|
|
934
1025
|
const startTime = Date.now();
|
|
935
1026
|
// Emit before event
|
|
936
1027
|
const beforeArgs = {
|
|
@@ -1399,6 +1490,20 @@ export class TimelineComponent {
|
|
|
1399
1490
|
getGlobalIndex(event) {
|
|
1400
1491
|
return this.allEvents.indexOf(event);
|
|
1401
1492
|
}
|
|
1493
|
+
/**
|
|
1494
|
+
* Checks if an event is currently selected/focused.
|
|
1495
|
+
* An event is selected if either:
|
|
1496
|
+
* - Its ID matches the selectedEventId input
|
|
1497
|
+
* - Its global index matches the focusedEventIndex (keyboard navigation)
|
|
1498
|
+
*/
|
|
1499
|
+
isEventSelected(event, globalIndex) {
|
|
1500
|
+
// Check selectedEventId from parent first (takes priority)
|
|
1501
|
+
if (this.selectedEventId && event.id === this.selectedEventId) {
|
|
1502
|
+
return true;
|
|
1503
|
+
}
|
|
1504
|
+
// Fall back to keyboard navigation focus
|
|
1505
|
+
return this.focusedEventIndex === globalIndex;
|
|
1506
|
+
}
|
|
1402
1507
|
// ============================================================================
|
|
1403
1508
|
// PRIVATE METHODS - DATA LOADING
|
|
1404
1509
|
// ============================================================================
|
|
@@ -1810,6 +1915,7 @@ export class TimelineComponent {
|
|
|
1810
1915
|
}
|
|
1811
1916
|
/**
|
|
1812
1917
|
* Simple date formatter (replaces Angular DatePipe for standalone use).
|
|
1918
|
+
* Uses placeholder tokens to avoid replacement conflicts.
|
|
1813
1919
|
*/
|
|
1814
1920
|
formatDateInternal(date, format) {
|
|
1815
1921
|
const months = ['January', 'February', 'March', 'April', 'May', 'June',
|
|
@@ -1821,17 +1927,34 @@ export class TimelineComponent {
|
|
|
1821
1927
|
const day = date.getDate();
|
|
1822
1928
|
const hours = date.getHours();
|
|
1823
1929
|
const minutes = date.getMinutes();
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1930
|
+
// Use placeholder tokens to avoid conflicts (e.g., 'May' containing 'M')
|
|
1931
|
+
// Replace longer patterns first with placeholders, then substitute values
|
|
1932
|
+
let result = format;
|
|
1933
|
+
// Replace patterns with unique placeholders first
|
|
1934
|
+
result = result.replace(/yyyy/g, '{{YEAR}}');
|
|
1935
|
+
result = result.replace(/MMMM/g, '{{MONTH_FULL}}');
|
|
1936
|
+
result = result.replace(/MMM/g, '{{MONTH_SHORT}}');
|
|
1937
|
+
result = result.replace(/MM/g, '{{MONTH_PAD}}');
|
|
1938
|
+
result = result.replace(/dd/g, '{{DAY_PAD}}');
|
|
1939
|
+
result = result.replace(/d/g, '{{DAY}}');
|
|
1940
|
+
result = result.replace(/HH/g, '{{HOUR_24}}');
|
|
1941
|
+
result = result.replace(/hh/g, '{{HOUR_12_PAD}}');
|
|
1942
|
+
result = result.replace(/h/g, '{{HOUR_12}}');
|
|
1943
|
+
result = result.replace(/mm/g, '{{MIN}}');
|
|
1944
|
+
result = result.replace(/a/g, '{{AMPM}}');
|
|
1945
|
+
// Now substitute the actual values
|
|
1946
|
+
result = result.replace(/\{\{YEAR\}\}/g, String(year));
|
|
1947
|
+
result = result.replace(/\{\{MONTH_FULL\}\}/g, months[month]);
|
|
1948
|
+
result = result.replace(/\{\{MONTH_SHORT\}\}/g, monthsShort[month]);
|
|
1949
|
+
result = result.replace(/\{\{MONTH_PAD\}\}/g, String(month + 1).padStart(2, '0'));
|
|
1950
|
+
result = result.replace(/\{\{DAY_PAD\}\}/g, String(day).padStart(2, '0'));
|
|
1951
|
+
result = result.replace(/\{\{DAY\}\}/g, String(day));
|
|
1952
|
+
result = result.replace(/\{\{HOUR_24\}\}/g, String(hours).padStart(2, '0'));
|
|
1953
|
+
result = result.replace(/\{\{HOUR_12_PAD\}\}/g, String(hours % 12 || 12).padStart(2, '0'));
|
|
1954
|
+
result = result.replace(/\{\{HOUR_12\}\}/g, String(hours % 12 || 12));
|
|
1955
|
+
result = result.replace(/\{\{MIN\}\}/g, String(minutes).padStart(2, '0'));
|
|
1956
|
+
result = result.replace(/\{\{AMPM\}\}/g, hours >= 12 ? 'PM' : 'AM');
|
|
1957
|
+
return result;
|
|
1835
1958
|
}
|
|
1836
1959
|
static ɵfac = function TimelineComponent_Factory(t) { return new (t || TimelineComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
|
|
1837
1960
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TimelineComponent, selectors: [["mj-timeline"]], contentQueries: function TimelineComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
|
@@ -1856,13 +1979,13 @@ export class TimelineComponent {
|
|
|
1856
1979
|
} if (rf & 2) {
|
|
1857
1980
|
let _t;
|
|
1858
1981
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.scrollContainer = _t.first);
|
|
1859
|
-
} }, inputs: { groups: "groups", allowLoad: "allowLoad", orientation: "orientation", layout: "layout", sortOrder: "sortOrder", segmentGrouping: "segmentGrouping", defaultCardConfig: "defaultCardConfig", virtualScroll: "virtualScroll", segmentsCollapsible: "segmentsCollapsible", segmentsDefaultExpanded: "segmentsDefaultExpanded", emptyMessage: "emptyMessage", emptyIcon: "emptyIcon", loadingMessage: "loadingMessage", ariaLabel: "ariaLabel", enableKeyboardNavigation: "enableKeyboardNavigation" }, outputs: { beforeEventClick: "beforeEventClick", beforeEventExpand: "beforeEventExpand", beforeEventCollapse: "beforeEventCollapse", beforeEventHover: "beforeEventHover", beforeActionClick: "beforeActionClick", beforeSegmentExpand: "beforeSegmentExpand", beforeSegmentCollapse: "beforeSegmentCollapse", beforeLoad: "beforeLoad", afterEventClick: "afterEventClick", afterEventExpand: "afterEventExpand", afterEventCollapse: "afterEventCollapse", afterEventHover: "afterEventHover", afterActionClick: "afterActionClick", afterSegmentExpand: "afterSegmentExpand", afterSegmentCollapse: "afterSegmentCollapse", afterLoad: "afterLoad" }, decls: 9, vars: 14, consts: [["scrollContainer", ""], ["eventCard", ""], ["defaultLoading", ""], ["defaultEmpty", ""], ["defaultSegmentHeader", ""], ["defaultCard", ""], ["defaultHeader", ""], ["defaultBody", ""], ["plainDescription", ""], ["defaultActions", ""], ["role", "list", "tabindex", "0", 1, "mj-timeline", 3, "keydown", "scroll"], [4, "ngIf"], ["class", "mj-timeline-scroll-sentinel", 4, "ngIf"], ["class", "mj-timeline__loading-more", 4, "ngIf"], [4, "ngIf", "ngIfElse"], [4, "ngTemplateOutlet"], [1, "mj-timeline__loading"], [1, "mj-timeline__loading-spinner"], [1, "mj-timeline__loading-text"], [1, "mj-timeline__empty"], [1, "mj-timeline__empty-icon"], [1, "mj-timeline__empty-text"], ["class", "mj-timeline__segment", 3, "mj-timeline__segment--collapsed", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "mj-timeline__segment"], ["role", "button", 1, "mj-timeline__segment-header", 3, "click"], [1, "mj-timeline__segment-content", 3, "id"], [1, "mj-timeline__axis"], [4, "ngFor", "ngForOf", "ngForTrackBy"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["class", "mj-timeline__segment-toggle", 4, "ngIf"], [1, "mj-timeline__segment-label"], [1, "mj-timeline__segment-count"], [1, "mj-timeline__segment-line"], [1, "mj-timeline__segment-toggle"], [1, "mj-timeline-scroll-sentinel"], [1, "mj-timeline__loading-more"], [1, "mj-timeline__loading-spinner", "mj-timeline__loading-spinner--small"], ["role", "listitem", 1, "mj-timeline__event"], [1, "mj-timeline__marker"], [1, "mj-timeline__marker-icon"], [1, "mj-timeline__connector"], ["class", "mj-timeline__date-label", 4, "ngIf"], [1, "mj-timeline__card", 3, "click", "mouseenter", "mouseleave"], [1, "mj-timeline__date-label"], [1, "mj-timeline__card-header"], ["class", "mj-timeline__card-image mj-timeline__card-image--left", 3, "mj-timeline__card-image--small", "mj-timeline__card-image--medium", "mj-timeline__card-image--large", 4, "ngIf"], [1, "mj-timeline__card-header-content"], ["class", "mj-timeline__card-image mj-timeline__card-image--top", 4, "ngIf"], [1, "mj-timeline__card-body"], ["class", "mj-timeline__card-actions", 3, "mj-timeline__card-actions--hover-only", 4, "ngIf"], [1, "mj-timeline__card-image", "mj-timeline__card-image--left"], [3, "src", "alt"], ["class", "mj-timeline__card-icon", 3, "color", 4, "ngIf"], [1, "mj-timeline__card-titles"], [1, "mj-timeline__card-title"], ["class", "mj-timeline__card-subtitle", 4, "ngIf"], ["class", "mj-timeline__card-date", 4, "ngIf"], ["class", "mj-timeline__card-toggle", "type", "button", 3, "click", 4, "ngIf"], [1, "mj-timeline__card-icon"], [1, "mj-timeline__card-subtitle"], [1, "mj-timeline__card-date"], ["type", "button", 1, "mj-timeline__card-toggle", 3, "click"], [1, "mj-timeline__card-image", "mj-timeline__card-image--top"], ["class", "mj-timeline__card-fields mj-timeline__card-fields--summary", 4, "ngIf"], ["class", "mj-timeline__card-description", 3, "mj-timeline__card-description--clamped", "-webkit-line-clamp", 4, "ngIf"], ["class", "mj-timeline__card-fields mj-timeline__card-fields--expanded", 4, "ngIf"], [1, "mj-timeline__card-fields", "mj-timeline__card-fields--summary"], [4, "ngFor", "ngForOf"], [1, "mj-timeline__card-field"], ["class", "mj-timeline__card-field-icon", 3, "
|
|
1982
|
+
} }, inputs: { groups: "groups", allowLoad: "allowLoad", orientation: "orientation", layout: "layout", sortOrder: "sortOrder", segmentGrouping: "segmentGrouping", defaultCardConfig: "defaultCardConfig", virtualScroll: "virtualScroll", segmentsCollapsible: "segmentsCollapsible", segmentsDefaultExpanded: "segmentsDefaultExpanded", emptyMessage: "emptyMessage", emptyIcon: "emptyIcon", loadingMessage: "loadingMessage", ariaLabel: "ariaLabel", enableKeyboardNavigation: "enableKeyboardNavigation", selectedEventId: "selectedEventId" }, outputs: { beforeEventClick: "beforeEventClick", beforeEventExpand: "beforeEventExpand", beforeEventCollapse: "beforeEventCollapse", beforeEventHover: "beforeEventHover", beforeActionClick: "beforeActionClick", beforeSegmentExpand: "beforeSegmentExpand", beforeSegmentCollapse: "beforeSegmentCollapse", beforeLoad: "beforeLoad", afterEventClick: "afterEventClick", afterEventExpand: "afterEventExpand", afterEventCollapse: "afterEventCollapse", afterEventHover: "afterEventHover", afterActionClick: "afterActionClick", afterSegmentExpand: "afterSegmentExpand", afterSegmentCollapse: "afterSegmentCollapse", afterLoad: "afterLoad" }, decls: 9, vars: 14, consts: [["scrollContainer", ""], ["eventCard", ""], ["defaultLoading", ""], ["defaultEmpty", ""], ["defaultSegmentHeader", ""], ["defaultCard", ""], ["defaultHeader", ""], ["defaultBody", ""], ["plainDescription", ""], ["defaultActions", ""], ["role", "list", "tabindex", "0", 1, "mj-timeline", 3, "keydown", "scroll"], [4, "ngIf"], ["class", "mj-timeline-scroll-sentinel", 4, "ngIf"], ["class", "mj-timeline__loading-more", 4, "ngIf"], [4, "ngIf", "ngIfElse"], [4, "ngTemplateOutlet"], [1, "mj-timeline__loading"], [1, "mj-timeline__loading-spinner"], [1, "mj-timeline__loading-text"], [1, "mj-timeline__empty"], [1, "mj-timeline__empty-icon"], [1, "mj-timeline__empty-text"], ["class", "mj-timeline__segment", 3, "mj-timeline__segment--collapsed", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "mj-timeline__segment"], ["role", "button", 1, "mj-timeline__segment-header", 3, "click"], [1, "mj-timeline__segment-content", 3, "id"], [1, "mj-timeline__axis"], [4, "ngFor", "ngForOf", "ngForTrackBy"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["class", "mj-timeline__segment-toggle", 4, "ngIf"], [1, "mj-timeline__segment-label"], [1, "mj-timeline__segment-count"], [1, "mj-timeline__segment-line"], [1, "mj-timeline__segment-toggle"], [1, "mj-timeline-scroll-sentinel"], [1, "mj-timeline__loading-more"], [1, "mj-timeline__loading-spinner", "mj-timeline__loading-spinner--small"], ["role", "listitem", 1, "mj-timeline__event"], [1, "mj-timeline__marker"], [1, "mj-timeline__marker-icon"], [1, "mj-timeline__connector"], ["class", "mj-timeline__date-label", 4, "ngIf"], [1, "mj-timeline__card", 3, "click", "mouseenter", "mouseleave", "ngClass"], [1, "mj-timeline__date-label"], [1, "mj-timeline__card-header"], ["class", "mj-timeline__card-image mj-timeline__card-image--left", 3, "mj-timeline__card-image--small", "mj-timeline__card-image--medium", "mj-timeline__card-image--large", 4, "ngIf"], [1, "mj-timeline__card-header-content"], ["class", "mj-timeline__card-image mj-timeline__card-image--top", 4, "ngIf"], [1, "mj-timeline__card-body"], ["class", "mj-timeline__card-actions", 3, "mj-timeline__card-actions--hover-only", 4, "ngIf"], [1, "mj-timeline__card-image", "mj-timeline__card-image--left"], [3, "src", "alt"], ["class", "mj-timeline__card-icon", 3, "color", 4, "ngIf"], [1, "mj-timeline__card-titles"], [1, "mj-timeline__card-title"], ["class", "mj-timeline__card-subtitle", 4, "ngIf"], ["class", "mj-timeline__card-date", 4, "ngIf"], ["class", "mj-timeline__card-toggle", "type", "button", 3, "click", 4, "ngIf"], [1, "mj-timeline__card-icon"], [1, "mj-timeline__card-subtitle"], [1, "mj-timeline__card-date"], ["type", "button", 1, "mj-timeline__card-toggle", 3, "click"], [1, "mj-timeline__card-image", "mj-timeline__card-image--top"], ["class", "mj-timeline__card-fields mj-timeline__card-fields--summary", 4, "ngIf"], ["class", "mj-timeline__card-description", 3, "mj-timeline__card-description--clamped", "-webkit-line-clamp", 4, "ngIf"], ["class", "mj-timeline__card-fields mj-timeline__card-fields--expanded", 4, "ngIf"], [1, "mj-timeline__card-fields", "mj-timeline__card-fields--summary"], [4, "ngFor", "ngForOf"], [1, "mj-timeline__card-field", 3, "ngClass"], ["class", "mj-timeline__card-field-icon", 3, "ngClass", 4, "ngIf"], ["class", "mj-timeline__card-field-label", 4, "ngIf"], [1, "mj-timeline__card-field-value"], [1, "mj-timeline__card-field-icon", 3, "ngClass"], [1, "mj-timeline__card-field-label"], [1, "mj-timeline__card-description"], [3, "innerHTML"], [1, "mj-timeline__card-fields", "mj-timeline__card-fields--expanded"], [1, "mj-timeline__card-actions"], ["class", "mj-timeline__action", "type", "button", 3, "mj-timeline__action--primary", "mj-timeline__action--secondary", "mj-timeline__action--danger", "mj-timeline__action--link", "ngClass", "disabled", "title", "click", 4, "ngFor", "ngForOf"], ["type", "button", 1, "mj-timeline__action", 3, "click", "ngClass", "disabled", "title"], [3, "ngClass", 4, "ngIf"], [3, "ngClass"]], template: function TimelineComponent_Template(rf, ctx) { if (rf & 1) {
|
|
1860
1983
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
1861
1984
|
i0.ɵɵelementStart(0, "div", 10, 0);
|
|
1862
1985
|
i0.ɵɵlistener("keydown", function TimelineComponent_Template_div_keydown_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onKeyDown($event)); })("scroll", function TimelineComponent_Template_div_scroll_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onScroll($event)); });
|
|
1863
1986
|
i0.ɵɵtemplate(2, TimelineComponent_ng_container_2_Template, 4, 2, "ng-container", 11)(3, TimelineComponent_ng_container_3_Template, 4, 2, "ng-container", 11)(4, TimelineComponent_ng_container_4_Template, 3, 2, "ng-container", 11)(5, TimelineComponent_div_5_Template, 1, 0, "div", 12)(6, TimelineComponent_div_6_Template, 4, 1, "div", 13);
|
|
1864
1987
|
i0.ɵɵelementEnd();
|
|
1865
|
-
i0.ɵɵtemplate(7, TimelineComponent_ng_template_7_Template, 9,
|
|
1988
|
+
i0.ɵɵtemplate(7, TimelineComponent_ng_template_7_Template, 9, 26, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
|
|
1866
1989
|
} if (rf & 2) {
|
|
1867
1990
|
i0.ɵɵclassProp("mj-timeline--vertical", ctx.orientation === "vertical")("mj-timeline--horizontal", ctx.orientation === "horizontal")("mj-timeline--single", ctx.layout === "single")("mj-timeline--alternating", ctx.layout === "alternating");
|
|
1868
1991
|
i0.ɵɵattribute("aria-label", ctx.ariaLabel);
|
|
@@ -1876,11 +1999,11 @@ export class TimelineComponent {
|
|
|
1876
1999
|
i0.ɵɵproperty("ngIf", ctx.virtualScroll.enabled && ctx.scrollState.hasMore);
|
|
1877
2000
|
i0.ɵɵadvance();
|
|
1878
2001
|
i0.ɵɵproperty("ngIf", ctx.scrollState.isLoading && ctx.virtualScroll.showLoadingIndicator);
|
|
1879
|
-
} }, dependencies: [i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet], styles: ["\n\n\n\n\n\n\n\n\n// ============================================================================\n// CSS VARIABLES (Theming)\n// ============================================================================\n\n[_nghost-%COMP%] {\n // Colors\n --mj-timeline-bg: transparent;\n --mj-timeline-line-color: #e0e0e0;\n --mj-timeline-marker-bg: #1976d2;\n --mj-timeline-marker-border: #ffffff;\n --mj-timeline-card-bg: #ffffff;\n --mj-timeline-card-border: #e0e0e0;\n --mj-timeline-card-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n --mj-timeline-card-shadow-hover: 0 4px 16px rgba(0, 0, 0, 0.15);\n --mj-timeline-card-radius: 8px;\n --mj-timeline-text-primary: #212121;\n --mj-timeline-text-secondary: #757575;\n --mj-timeline-text-muted: #9e9e9e;\n --mj-timeline-accent: #1976d2;\n --mj-timeline-segment-bg: #f5f5f5;\n --mj-timeline-focus-ring: 0 0 0 3px rgba(25, 118, 210, 0.3);\n\n // Sizing\n --mj-timeline-line-width: 2px;\n --mj-timeline-marker-size: 14px;\n --mj-timeline-marker-icon-size: 8px;\n --mj-timeline-card-padding: 16px;\n --mj-timeline-card-max-width: 400px;\n --mj-timeline-card-min-width: 250px;\n --mj-timeline-gap: 16px;\n --mj-timeline-segment-gap: 24px;\n --mj-timeline-axis-offset: 60px;\n\n // Animation\n --mj-timeline-transition: 0.25s ease;\n\n display: block;\n width: 100%;\n}\n\n// Dark mode support\n.dark-theme[_nghost-%COMP%], .dark-theme [_nghost-%COMP%], \n[data-theme=\"dark\"][_nghost-%COMP%], [data-theme=\"dark\"] [_nghost-%COMP%] {\n --mj-timeline-line-color: #424242;\n --mj-timeline-card-bg: #1e1e1e;\n --mj-timeline-card-border: #424242;\n --mj-timeline-card-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);\n --mj-timeline-text-primary: #ffffff;\n --mj-timeline-text-secondary: #b0b0b0;\n --mj-timeline-text-muted: #757575;\n --mj-timeline-segment-bg: #2d2d2d;\n}\n\n//[_ngcontent-%COMP%] ============================================================================\n//[_ngcontent-%COMP%] MAIN[_ngcontent-%COMP%] CONTAINER\n//[_ngcontent-%COMP%] ============================================================================\n\n.mj-timeline[_ngcontent-%COMP%] {\n position: relative;\n width: 100%;\n padding: var(--mj-timeline-gap);\n background: var(--mj-timeline-bg);\n outline: none;\n\n &:focus-visible {\n box-shadow: var(--mj-timeline-focus-ring);\n border-radius: 4px;\n }\n}\n\n//[_ngcontent-%COMP%] ============================================================================\n//[_ngcontent-%COMP%] LOADING[_ngcontent-%COMP%] STATE\n//[_ngcontent-%COMP%] ============================================================================\n\n.mj-timeline__loading[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 24px;\n gap: 16px;\n}\n\n.mj-timeline__loading-spinner[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n border: 3px solid var(--mj-timeline-line-color);\n border-top-color: var(--mj-timeline-accent);\n border-radius: 50%;\n animation: _ngcontent-%COMP%_mj-timeline-spin 0.8s linear infinite;\n\n &--small {\n width: 20px;\n height: 20px;\n border-width: 2px;\n }\n}\n\n.mj-timeline__loading-text[_ngcontent-%COMP%] {\n color: var(--mj-timeline-text-secondary);\n font-size: 14px;\n}\n\n.mj-timeline__loading-more[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 16px;\n gap: 8px;\n color: var(--mj-timeline-text-secondary);\n font-size: 13px;\n}\n\n@keyframes _ngcontent-%COMP%_mj-timeline-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n//[_ngcontent-%COMP%] ============================================================================\n//[_ngcontent-%COMP%] EMPTY[_ngcontent-%COMP%] STATE\n//[_ngcontent-%COMP%] ============================================================================\n\n.mj-timeline__empty[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 64px 24px;\n gap: 16px;\n text-align: center;\n}\n\n.mj-timeline__empty-icon[_ngcontent-%COMP%] {\n font-size: 48px;\n color: var(--mj-timeline-text-muted);\n}\n\n.mj-timeline__empty-text[_ngcontent-%COMP%] {\n color: var(--mj-timeline-text-secondary);\n font-size: 16px;\n}\n\n//[_ngcontent-%COMP%] ============================================================================\n//[_ngcontent-%COMP%] TIME[_ngcontent-%COMP%] SEGMENTS\n//[_ngcontent-%COMP%] ============================================================================\n\n.mj-timeline__segment[_ngcontent-%COMP%] {\n margin-bottom: var(--mj-timeline-segment-gap);\n\n &:last-child {\n margin-bottom: 0;\n }\n}\n\n.mj-timeline__segment-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n margin-bottom: var(--mj-timeline-gap);\n background: var(--mj-timeline-segment-bg);\n border-radius: 6px;\n font-weight: 600;\n color: var(--mj-timeline-text-primary);\n user-select: none;\n\n &--clickable {\n cursor: pointer;\n transition: background-color var(--mj-timeline-transition);\n\n &:hover {\n background: darken(#f5f5f5, 5%);\n }\n\n .dark-theme-shadowcsshost-no-combinator &:hover, .dark-theme -shadowcsshost-no-combinator &:hover,\n [data-theme=\"dark\"]-shadowcsshost-no-combinator &:hover , [data-theme=\"dark\"] -shadowcsshost-no-combinator &:hover {\n background: lighten(#2d2d2d, 5%);\n }\n }\n}\n\n.mj-timeline__segment-toggle[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n color: var(--mj-timeline-text-secondary);\n font-size: 12px;\n transition: transform var(--mj-timeline-transition);\n}\n\n.mj-timeline__segment-label[_ngcontent-%COMP%] {\n font-size: 15px;\n}\n\n.mj-timeline__segment-count[_ngcontent-%COMP%] {\n color: var(--mj-timeline-text-secondary);\n font-size: 13px;\n font-weight: 400;\n}\n\n.mj-timeline__segment-line[_ngcontent-%COMP%] {\n flex: 1;\n height: 1px;\n background: var(--mj-timeline-line-color);\n margin-left: 8px;\n}\n\n.mj-timeline__segment-content[_ngcontent-%COMP%] {\n overflow: hidden;\n transition: max-height var(--mj-timeline-transition), opacity var(--mj-timeline-transition);\n\n &--hidden {\n max-height: 0;\n opacity: 0;\n pointer-events: none;\n }\n}\n\n//[_ngcontent-%COMP%] ============================================================================\n//[_ngcontent-%COMP%] TIMELINE[_ngcontent-%COMP%] AXIS\n//[_ngcontent-%COMP%] ============================================================================\n\n.mj-timeline__axis[_ngcontent-%COMP%] {\n position: relative;\n padding-left: var(--mj-timeline-axis-offset);\n\n // Vertical line\n &::before {\n content: '';\n position: absolute;\n left: calc(var(--mj-timeline-marker-size) / 2);\n top: 0;\n bottom: 0;\n width: var(--mj-timeline-line-width);\n background: var(--mj-timeline-line-color);\n }\n}\n\n//[_ngcontent-%COMP%] ============================================================================\n//[_ngcontent-%COMP%] TIMELINE[_ngcontent-%COMP%] EVENT\n//[_ngcontent-%COMP%] ============================================================================\n\n.mj-timeline__event[_ngcontent-%COMP%] {\n position: relative;\n display: flex;\n align-items: flex-start;\n margin-bottom: var(--mj-timeline-gap);\n\n &:last-child {\n margin-bottom: 0;\n }\n}\n\n//[_ngcontent-%COMP%] ============================================================================\n//[_ngcontent-%COMP%] MARKER\n//[_ngcontent-%COMP%] ============================================================================\n\n.mj-timeline__marker[_ngcontent-%COMP%] {\n position: absolute;\n left: 0;\n top: 16px;\n width: var(--mj-timeline-marker-size);\n height: var(--mj-timeline-marker-size);\n border-radius: 50%;\n background: var(--mj-timeline-marker-bg);\n border: 2px solid var(--mj-timeline-marker-border);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1;\n}\n\n.mj-timeline__marker-icon[_ngcontent-%COMP%] {\n font-size: var(--mj-timeline-marker-icon-size);\n color: var(--mj-timeline-marker-border);\n display: none; // Hidden by default, shown in larger markers\n}\n\n.mj-timeline__connector[_ngcontent-%COMP%] {\n display: none; // Hidden by default, used in horizontal mode\n}\n\n//[_ngcontent-%COMP%] ============================================================================\n//[_ngcontent-%COMP%] DATE[_ngcontent-%COMP%] LABEL[_ngcontent-%COMP%] (Alternating[_ngcontent-%COMP%] Layout)\n//[_ngcontent-%COMP%] ============================================================================\n\n.mj-timeline__date-label[_ngcontent-%COMP%] {\n display: none; // Hidden by default\n}\n\n//[_ngcontent-%COMP%] ============================================================================\n//[_ngcontent-%COMP%] EVENT[_ngcontent-%COMP%] CARD\n//[_ngcontent-%COMP%] ============================================================================\n\n.mj-timeline__card[_ngcontent-%COMP%] {\n flex: 1;\n background: var(--mj-timeline-card-bg);\n border: 1px solid var(--mj-timeline-card-border);\n border-left-width: 4px;\n border-radius: var(--mj-timeline-card-radius);\n box-shadow: var(--mj-timeline-card-shadow);\n overflow: hidden;\n transition: box-shadow var(--mj-timeline-transition), transform var(--mj-timeline-transition);\n cursor: pointer;\n max-width: var(--mj-timeline-card-max-width);\n min-width: var(--mj-timeline-card-min-width);\n\n &:hover {\n box-shadow: var(--mj-timeline-card-shadow-hover);\n transform: translateY(-1px);\n }\n\n .mj-timeline__event--focused & {\n box-shadow: var(--mj-timeline-focus-ring), var(--mj-timeline-card-shadow);\n }\n}\n\n//[_ngcontent-%COMP%] ============================================================================\n//[_ngcontent-%COMP%] CARD[_ngcontent-%COMP%] HEADER\n//[_ngcontent-%COMP%] ============================================================================\n\n.mj-timeline__card-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n padding: var(--mj-timeline-card-padding);\n gap: 12px;\n}\n\n.mj-timeline__card-header-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n align-items: flex-start;\n gap: 10px;\n min-width: 0; // Enable text truncation\n}\n\n.mj-timeline__card-icon[_ngcontent-%COMP%] {\n flex-shrink: 0;\n font-size: 18px;\n line-height: 1;\n margin-top: 2px;\n}\n\n.mj-timeline__card-titles[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.mj-timeline__card-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 15px;\n font-weight: 600;\n color: var(--mj-timeline-text-primary);\n line-height: 1.4;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.mj-timeline__card-subtitle[_ngcontent-%COMP%] {\n display: block;\n font-size: 13px;\n color: var(--mj-timeline-text-secondary);\n margin-top: 2px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.mj-timeline__card-date[_ngcontent-%COMP%] {\n display: block;\n font-size: 12px;\n color: var(--mj-timeline-text-muted);\n margin-top: 4px;\n}\n\n.mj-timeline__card-toggle[_ngcontent-%COMP%] {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n background: transparent;\n color: var(--mj-timeline-text-secondary);\n border-radius: 4px;\n cursor: pointer;\n transition: background-color var(--mj-timeline-transition), color var(--mj-timeline-transition);\n\n &:hover {\n background: var(--mj-timeline-segment-bg);\n color: var(--mj-timeline-text-primary);\n }\n\n &:focus-visible {\n box-shadow: var(--mj-timeline-focus-ring);\n outline: none;\n }\n}\n\n//[_ngcontent-%COMP%] ============================================================================\n//[_ngcontent-%COMP%] CARD[_ngcontent-%COMP%] IMAGE\n//[_ngcontent-%COMP%] ============================================================================\n\n.mj-timeline__card-image[_ngcontent-%COMP%] {\n overflow: hidden;\n border-radius: 4px;\n flex-shrink: 0;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n &--left {\n &.mj-timeline__card-image--small {\n width: 48px;\n height: 48px;\n }\n\n &.mj-timeline__card-image--medium {\n width: 80px;\n height: 80px;\n }\n\n &.mj-timeline__card-image--large {\n width: 120px;\n height: 120px;\n }\n }\n\n &--top {\n width: 100%;\n max-height: 200px;\n margin: 0 var(--mj-timeline-card-padding);\n margin-top: 0;\n border-radius: 4px;\n\n img {\n width: calc(100% - 2 * var(--mj-timeline-card-padding));\n height: auto;\n }\n }\n}\n\n//[_ngcontent-%COMP%] ============================================================================\n//[_ngcontent-%COMP%] CARD[_ngcontent-%COMP%] BODY\n//[_ngcontent-%COMP%] ============================================================================\n\n.mj-timeline__card-body[_ngcontent-%COMP%] {\n padding: 0 var(--mj-timeline-card-padding);\n padding-bottom: var(--mj-timeline-card-padding);\n\n &--collapsed {\n display: none;\n }\n}\n\n.mj-timeline__card-description[_ngcontent-%COMP%] {\n font-size: 14px;\n line-height: 1.6;\n color: var(--mj-timeline-text-secondary);\n margin-bottom: 12px;\n\n &--clamped {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n}\n\n//[_ngcontent-%COMP%] ============================================================================\n//[_ngcontent-%COMP%] CARD[_ngcontent-%COMP%] FIELDS\n//[_ngcontent-%COMP%] ============================================================================\n\n.mj-timeline__card-fields[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 8px 16px;\n\n &--summary {\n padding-top: 8px;\n border-top: 1px solid var(--mj-timeline-line-color);\n margin-top: 8px;\n }\n\n &--expanded {\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid var(--mj-timeline-line-color);\n }\n}\n\n.mj-timeline__card-field[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n}\n\n.mj-timeline__card-field-icon[_ngcontent-%COMP%] {\n color: var(--mj-timeline-text-muted);\n font-size: 12px;\n}\n\n.mj-timeline__card-field-label[_ngcontent-%COMP%] {\n color: var(--mj-timeline-text-muted);\n}\n\n.mj-timeline__card-field-value[_ngcontent-%COMP%] {\n color: var(--mj-timeline-text-secondary);\n font-weight: 500;\n}\n\n//[_ngcontent-%COMP%] ============================================================================\n//[_ngcontent-%COMP%] CARD[_ngcontent-%COMP%] ACTIONS\n//[_ngcontent-%COMP%] ============================================================================\n\n.mj-timeline__card-actions[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n padding: var(--mj-timeline-card-padding);\n padding-top: 0;\n justify-content: flex-end;\n\n &--hover-only {\n opacity: 0;\n transition: opacity var(--mj-timeline-transition);\n\n .mj-timeline__card:hover &,\n .mj-timeline__card:focus-within & {\n opacity: 1;\n }\n }\n}\n\n.mj-timeline__action[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n font-size: 13px;\n font-weight: 500;\n border: 1px solid;\n border-radius: 4px;\n cursor: pointer;\n transition: all var(--mj-timeline-transition);\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n &:focus-visible {\n box-shadow: var(--mj-timeline-focus-ring);\n outline: none;\n }\n\n i {\n font-size: 12px;\n }\n\n // Variants\n &--primary {\n background: var(--mj-timeline-accent);\n border-color: var(--mj-timeline-accent);\n color: #ffffff;\n\n &:hover:not(:disabled) {\n background: darken(#1976d2, 8%);\n border-color: darken(#1976d2, 8%);\n }\n }\n\n &--secondary {\n background: transparent;\n border-color: var(--mj-timeline-card-border);\n color: var(--mj-timeline-text-primary);\n\n &:hover:not(:disabled) {\n background: var(--mj-timeline-segment-bg);\n }\n }\n\n &--danger {\n background: #f44336;\n border-color: #f44336;\n color: #ffffff;\n\n &:hover:not(:disabled) {\n background: darken(#f44336, 8%);\n border-color: darken(#f44336, 8%);\n }\n }\n\n &--link {\n background: transparent;\n border-color: transparent;\n color: var(--mj-timeline-accent);\n padding: 6px 8px;\n\n &:hover:not(:disabled) {\n background: rgba(25, 118, 210, 0.08);\n }\n }\n}\n\n//[_ngcontent-%COMP%] ============================================================================\n//[_ngcontent-%COMP%] VIRTUAL[_ngcontent-%COMP%] SCROLL[_ngcontent-%COMP%] SENTINEL\n//[_ngcontent-%COMP%] ============================================================================\n\n.mj-timeline-scroll-sentinel[_ngcontent-%COMP%] {\n height: 1px;\n width: 100%;\n visibility: hidden;\n}\n\n//[_ngcontent-%COMP%] ============================================================================\n//[_ngcontent-%COMP%] ALTERNATING[_ngcontent-%COMP%] LAYOUT\n//[_ngcontent-%COMP%] ============================================================================\n\n.mj-timeline--alternating[_ngcontent-%COMP%] {\n .mj-timeline__axis {\n padding-left: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n\n &::before {\n left: 50%;\n transform: translateX(-50%);\n }\n }\n\n .mj-timeline__event {\n width: 100%;\n justify-content: flex-start;\n padding-right: calc(50% + var(--mj-timeline-gap));\n\n &--odd {\n justify-content: flex-end;\n padding-right: 0;\n padding-left: calc(50% + var(--mj-timeline-gap));\n flex-direction: row-reverse;\n }\n }\n\n .mj-timeline__marker {\n left: 50%;\n transform: translateX(-50%);\n }\n\n .mj-timeline__date-label {\n display: block;\n position: absolute;\n top: 12px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-timeline-accent);\n white-space: nowrap;\n\n .mj-timeline__event:not(.mj-timeline__event--odd) & {\n right: calc(50% + var(--mj-timeline-gap) + var(--mj-timeline-marker-size));\n text-align: right;\n }\n\n .mj-timeline__event--odd & {\n left: calc(50% + var(--mj-timeline-gap) + var(--mj-timeline-marker-size));\n text-align: left;\n }\n }\n\n .mj-timeline__card {\n max-width: calc(50% - var(--mj-timeline-gap) - var(--mj-timeline-marker-size));\n }\n}\n\n//[_ngcontent-%COMP%] ============================================================================\n//[_ngcontent-%COMP%] HORIZONTAL[_ngcontent-%COMP%] LAYOUT\n//[_ngcontent-%COMP%] ============================================================================\n\n.mj-timeline--horizontal[_ngcontent-%COMP%] {\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n\n .mj-timeline__axis {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n padding-left: 0;\n padding-top: var(--mj-timeline-gap);\n min-width: max-content;\n\n &::before {\n left: 0;\n right: 0;\n top: calc(var(--mj-timeline-marker-size) / 2 + var(--mj-timeline-gap));\n bottom: auto;\n width: auto;\n height: var(--mj-timeline-line-width);\n }\n }\n\n .mj-timeline__segment-content {\n .mj-timeline__axis {\n flex-direction: row;\n }\n }\n\n .mj-timeline__event {\n flex-direction: column;\n align-items: center;\n margin-bottom: 0;\n margin-right: var(--mj-timeline-gap);\n min-width: 280px;\n max-width: 320px;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n .mj-timeline__marker {\n position: relative;\n left: auto;\n top: auto;\n margin-bottom: var(--mj-timeline-gap);\n }\n\n .mj-timeline__card {\n max-width: none;\n width: 100%;\n }\n\n .mj-timeline__date-label {\n display: block;\n margin-bottom: 8px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-timeline-accent);\n }\n}\n\n//[_ngcontent-%COMP%] ============================================================================\n//[_ngcontent-%COMP%] RESPONSIVE[_ngcontent-%COMP%] STYLES\n//[_ngcontent-%COMP%] ============================================================================\n\n//[_ngcontent-%COMP%] Tablet\n@media[_ngcontent-%COMP%] (max-width[_ngcontent-%COMP%]: 1024px)[_ngcontent-%COMP%] {\n -shadowcsshost-no-combinator {\n --mj-timeline-card-max-width: 350px;\n --mj-timeline-axis-offset: 50px;\n }\n\n // Force single layout on tablet\n .mj-timeline--alternating {\n .mj-timeline__axis {\n align-items: flex-start;\n padding-left: var(--mj-timeline-axis-offset);\n\n &::before {\n left: calc(var(--mj-timeline-marker-size) / 2);\n transform: none;\n }\n }\n\n .mj-timeline__event {\n padding-right: 0;\n padding-left: 0;\n justify-content: flex-start;\n flex-direction: row;\n\n &--odd {\n padding-left: 0;\n justify-content: flex-start;\n flex-direction: row;\n }\n }\n\n .mj-timeline__marker {\n left: 0;\n transform: none;\n }\n\n .mj-timeline__date-label {\n display: none;\n }\n\n .mj-timeline__card {\n max-width: var(--mj-timeline-card-max-width);\n }\n }\n}\n\n//[_ngcontent-%COMP%] Mobile\n@media[_ngcontent-%COMP%] (max-width[_ngcontent-%COMP%]: 767px)[_ngcontent-%COMP%] {\n -shadowcsshost-no-combinator {\n --mj-timeline-card-max-width: 100%;\n --mj-timeline-card-min-width: 0;\n --mj-timeline-axis-offset: 40px;\n --mj-timeline-marker-size: 12px;\n --mj-timeline-card-padding: 12px;\n --mj-timeline-gap: 12px;\n }\n\n .mj-timeline {\n padding: var(--mj-timeline-gap);\n }\n\n .mj-timeline__segment-header {\n padding: 10px 12px;\n font-size: 14px;\n }\n\n .mj-timeline__segment-line {\n display: none;\n }\n\n .mj-timeline__card {\n max-width: none;\n min-width: 0;\n }\n\n .mj-timeline__card-title {\n font-size: 14px;\n white-space: normal;\n }\n\n .mj-timeline__card-actions {\n flex-direction: column;\n\n .mj-timeline__action {\n width: 100%;\n justify-content: center;\n }\n }\n\n // Horizontal mode on mobile\n .mj-timeline--horizontal {\n .mj-timeline__event {\n min-width: 240px;\n max-width: 280px;\n }\n }\n}\n\n//[_ngcontent-%COMP%] Touch[_ngcontent-%COMP%] device[_ngcontent-%COMP%] optimizations\n@media[_ngcontent-%COMP%] (hover[_ngcontent-%COMP%]: none)[_ngcontent-%COMP%] and[_ngcontent-%COMP%] (pointer[_ngcontent-%COMP%]: coarse)[_ngcontent-%COMP%] {\n .mj-timeline__card-actions--hover-only {\n opacity: 1;\n }\n\n .mj-timeline__action {\n min-height: 44px;\n min-width: 44px;\n }\n}"], changeDetection: 0 });
|
|
2002
|
+
} }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet], styles: ["/**\n * MJ Timeline Component Styles\n * Kendo-inspired design with vertical alternating and horizontal layouts\n */\n\n/* ============================================================================\n CSS VARIABLES (Theming)\n ============================================================================ */\n\nmj-timeline {\n /* Colors */\n --mj-timeline-bg: transparent;\n --mj-timeline-line-color: #d0d7de;\n --mj-timeline-marker-bg: #ffffff;\n --mj-timeline-marker-border: #4678a8;\n --mj-timeline-marker-fill: #4678a8;\n --mj-timeline-card-bg: #ffffff;\n --mj-timeline-card-border: #d0d7de;\n --mj-timeline-card-shadow: 0 1px 3px rgba(31, 35, 40, 0.08);\n --mj-timeline-card-shadow-hover: 0 4px 12px rgba(31, 35, 40, 0.12);\n --mj-timeline-card-radius: 6px;\n --mj-timeline-text-primary: #1f2328;\n --mj-timeline-text-secondary: #656d76;\n --mj-timeline-text-muted: #8c959f;\n --mj-timeline-accent: #4678a8;\n --mj-timeline-accent-light: rgba(70, 120, 168, 0.08);\n --mj-timeline-segment-bg: #4678a8;\n --mj-timeline-segment-text: #ffffff;\n --mj-timeline-focus-ring: 0 0 0 2px rgba(70, 120, 168, 0.3);\n\n /* Sizing */\n --mj-timeline-line-width: 2px;\n --mj-timeline-marker-size: 14px;\n --mj-timeline-card-padding: 16px;\n --mj-timeline-card-max-width: 400px;\n --mj-timeline-card-min-width: 200px;\n --mj-timeline-gap: 24px;\n --mj-timeline-segment-gap: 16px;\n --mj-timeline-axis-offset: 50%;\n\n /* Animation */\n --mj-timeline-transition: 0.15s ease;\n\n display: block;\n width: 100%;\n height: 100%;\n}\n\n/* Dark mode */\n.dark-theme mj-timeline,\n[data-theme=\"dark\"] mj-timeline {\n --mj-timeline-line-color: #3d444d;\n --mj-timeline-card-bg: #161b22;\n --mj-timeline-card-border: #3d444d;\n --mj-timeline-card-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);\n --mj-timeline-text-primary: #e6edf3;\n --mj-timeline-text-secondary: #8b949e;\n --mj-timeline-text-muted: #6e7681;\n --mj-timeline-accent: #58a6ff;\n --mj-timeline-accent-light: rgba(88, 166, 255, 0.1);\n --mj-timeline-marker-border: #58a6ff;\n --mj-timeline-marker-fill: #58a6ff;\n --mj-timeline-segment-bg: #58a6ff;\n}\n\n/* ============================================================================\n MAIN CONTAINER\n ============================================================================ */\n\n.mj-timeline {\n position: relative;\n width: 100%;\n height: 100%;\n padding: 0;\n background: var(--mj-timeline-bg);\n outline: none;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n/* Subtle scrollbar */\n.mj-timeline::-webkit-scrollbar {\n width: 6px;\n}\n\n.mj-timeline::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.mj-timeline::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.15);\n border-radius: 3px;\n}\n\n.mj-timeline::-webkit-scrollbar-thumb:hover {\n background: rgba(0, 0, 0, 0.25);\n}\n\n.mj-timeline:focus-visible {\n box-shadow: inset var(--mj-timeline-focus-ring);\n}\n\n/* ============================================================================\n LOADING & EMPTY STATES\n ============================================================================ */\n\n.mj-timeline__loading {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 24px;\n gap: 12px;\n}\n\n.mj-timeline__loading-spinner {\n width: 24px;\n height: 24px;\n border: 2px solid var(--mj-timeline-line-color);\n border-top-color: var(--mj-timeline-accent);\n border-radius: 50%;\n animation: mj-timeline-spin 0.6s linear infinite;\n}\n\n.mj-timeline__loading-spinner--small {\n width: 14px;\n height: 14px;\n}\n\n.mj-timeline__loading-text {\n color: var(--mj-timeline-text-muted);\n font-size: 13px;\n}\n\n.mj-timeline__loading-more {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 16px;\n gap: 8px;\n color: var(--mj-timeline-text-muted);\n font-size: 12px;\n}\n\n@keyframes mj-timeline-spin {\n to { transform: rotate(360deg); }\n}\n\n.mj-timeline__empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 64px 24px;\n gap: 8px;\n text-align: center;\n}\n\n.mj-timeline__empty-icon {\n font-size: 32px;\n color: var(--mj-timeline-text-muted);\n opacity: 0.4;\n}\n\n.mj-timeline__empty-text {\n color: var(--mj-timeline-text-secondary);\n font-size: 13px;\n}\n\n/* ============================================================================\n TIME SEGMENTS - Year/Month badges on the axis\n ============================================================================ */\n\n.mj-timeline__segment {\n margin-bottom: var(--mj-timeline-segment-gap);\n position: relative;\n}\n\n.mj-timeline__segment:last-child {\n margin-bottom: 0;\n}\n\n.mj-timeline__segment-header {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 6px 16px;\n margin-bottom: var(--mj-timeline-gap);\n background: var(--mj-timeline-segment-bg);\n border-radius: 4px;\n font-weight: 600;\n font-size: 13px;\n color: var(--mj-timeline-segment-text);\n user-select: none;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n position: relative;\n z-index: 10;\n}\n\n.mj-timeline__segment-header--clickable {\n cursor: pointer;\n transition: all var(--mj-timeline-transition);\n}\n\n.mj-timeline__segment-header--clickable:hover {\n filter: brightness(1.1);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n}\n\n.mj-timeline__segment-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n color: inherit;\n font-size: 10px;\n opacity: 0.9;\n transition: transform var(--mj-timeline-transition);\n}\n\n.mj-timeline__segment--collapsed .mj-timeline__segment-toggle {\n transform: rotate(-90deg);\n}\n\n.mj-timeline__segment-label {\n font-size: inherit;\n font-weight: inherit;\n color: inherit;\n}\n\n.mj-timeline__segment-count {\n display: none;\n}\n\n.mj-timeline__segment-line {\n display: none;\n}\n\n.mj-timeline__segment-content {\n overflow: visible;\n transition: max-height 0.25s ease, opacity 0.2s ease;\n padding-top: 8px;\n}\n\n.mj-timeline__segment-content--hidden {\n max-height: 0;\n opacity: 0;\n pointer-events: none;\n}\n\n/* ============================================================================\n TIMELINE AXIS - Vertical line in center\n ============================================================================ */\n\n.mj-timeline__axis {\n position: relative;\n padding-left: 0;\n}\n\n/* Vertical center line */\n.mj-timeline__axis::before {\n content: '';\n position: absolute;\n left: 50%;\n top: 0;\n bottom: 0;\n width: var(--mj-timeline-line-width);\n background: var(--mj-timeline-line-color);\n transform: translateX(-50%);\n}\n\n/* ============================================================================\n TIMELINE EVENT - Alternating left/right by default\n ============================================================================ */\n\n.mj-timeline__event {\n position: relative;\n display: flex;\n align-items: flex-start;\n margin-bottom: var(--mj-timeline-gap);\n width: 100%;\n}\n\n/* Even events (0, 2, 4...) - card on LEFT, date on RIGHT */\n.mj-timeline__event {\n padding-right: calc(50% + 32px);\n justify-content: flex-end;\n}\n\n/* Odd events (1, 3, 5...) - card on RIGHT, date on LEFT */\n.mj-timeline__event--odd {\n padding-right: 0;\n padding-left: calc(50% + 32px);\n justify-content: flex-start;\n flex-direction: row;\n}\n\n.mj-timeline__event:last-child {\n margin-bottom: 0;\n}\n\n/* ============================================================================\n MARKER - Circular dot on the axis\n ============================================================================ */\n\n.mj-timeline__marker {\n position: absolute;\n left: 50%;\n top: 12px;\n transform: translateX(-50%);\n width: var(--mj-timeline-marker-size);\n height: var(--mj-timeline-marker-size);\n background: var(--mj-timeline-marker-fill);\n border: 2px solid var(--mj-timeline-marker-bg);\n border-radius: 50%;\n box-shadow: 0 0 0 2px var(--mj-timeline-marker-fill);\n z-index: 5;\n transition: transform var(--mj-timeline-transition);\n}\n\n.mj-timeline__marker-icon {\n display: none;\n}\n\n.mj-timeline__event:hover .mj-timeline__marker {\n transform: translateX(-50%) scale(1.2);\n}\n\n.mj-timeline__connector {\n display: none;\n}\n\n/* ============================================================================\n DATE LABEL - Positioned opposite the card\n ============================================================================ */\n\n.mj-timeline__date-label {\n position: absolute;\n top: 10px;\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-timeline-text-secondary);\n white-space: nowrap;\n}\n\n/* Even events - date on RIGHT side of axis */\n.mj-timeline__event:not(.mj-timeline__event--odd) .mj-timeline__date-label {\n left: calc(50% + 24px);\n text-align: left;\n}\n\n/* Odd events - date on LEFT side of axis */\n.mj-timeline__event--odd .mj-timeline__date-label {\n right: calc(50% + 24px);\n text-align: right;\n}\n\n/* ============================================================================\n EVENT CARD - Clean design matching Kendo\n ============================================================================ */\n\n.mj-timeline__card {\n background: var(--mj-timeline-card-bg);\n border: 1px solid var(--mj-timeline-card-border);\n border-radius: var(--mj-timeline-card-radius);\n box-shadow: var(--mj-timeline-card-shadow);\n overflow: hidden;\n transition: all var(--mj-timeline-transition);\n cursor: pointer;\n max-width: var(--mj-timeline-card-max-width);\n min-width: var(--mj-timeline-card-min-width);\n width: 100%;\n}\n\n/* Card arrow/pointer toward the axis */\n.mj-timeline__card::before {\n content: '';\n position: absolute;\n top: 14px;\n width: 10px;\n height: 10px;\n background: var(--mj-timeline-card-bg);\n border: 1px solid var(--mj-timeline-card-border);\n transform: rotate(45deg);\n}\n\n/* Even events - arrow points RIGHT toward axis */\n.mj-timeline__event:not(.mj-timeline__event--odd) .mj-timeline__card::before {\n right: -6px;\n border-left: none;\n border-bottom: none;\n}\n\n/* Odd events - arrow points LEFT toward axis */\n.mj-timeline__event--odd .mj-timeline__card::before {\n left: -6px;\n border-right: none;\n border-top: none;\n}\n\n/* Hover state */\n.mj-timeline__card:hover {\n box-shadow: var(--mj-timeline-card-shadow-hover);\n border-color: var(--mj-timeline-accent);\n}\n\n/* Selected/Focused state - prominent highlight with animation */\n.mj-timeline__event--focused .mj-timeline__card {\n background: var(--mj-timeline-accent-light);\n border-color: var(--mj-timeline-accent);\n box-shadow:\n 0 0 0 3px var(--mj-timeline-accent),\n 0 8px 24px rgba(70, 120, 168, 0.25);\n transform: scale(1.02);\n}\n\n/* Selected marker - larger and more prominent */\n.mj-timeline__event--focused .mj-timeline__marker {\n transform: translateX(-50%) scale(1.4);\n box-shadow:\n 0 0 0 3px var(--mj-timeline-marker-fill),\n 0 0 12px rgba(70, 120, 168, 0.5);\n}\n\n/* Pulse animation for selected marker */\n.mj-timeline__event--focused .mj-timeline__marker::after {\n content: '';\n position: absolute;\n top: -4px;\n left: -4px;\n right: -4px;\n bottom: -4px;\n border-radius: 50%;\n border: 2px solid var(--mj-timeline-accent);\n animation: mj-timeline-pulse 1.5s ease-out infinite;\n}\n\n@keyframes mj-timeline-pulse {\n 0% {\n transform: scale(1);\n opacity: 0.8;\n }\n 100% {\n transform: scale(1.8);\n opacity: 0;\n }\n}\n\n/* Selected date label - bolder */\n.mj-timeline__event--focused .mj-timeline__date-label {\n color: var(--mj-timeline-accent);\n font-weight: 600;\n}\n\n/* Card arrow gets accent color when selected */\n.mj-timeline__event--focused .mj-timeline__card::before {\n border-color: var(--mj-timeline-accent);\n background: var(--mj-timeline-accent-light);\n}\n\n/* ============================================================================\n CARD HEADER\n ============================================================================ */\n\n.mj-timeline__card-header {\n display: flex;\n align-items: flex-start;\n padding: var(--mj-timeline-card-padding);\n gap: 10px;\n}\n\n.mj-timeline__card-header-content {\n flex: 1;\n display: flex;\n align-items: flex-start;\n gap: 10px;\n min-width: 0;\n}\n\n.mj-timeline__card-icon {\n display: none;\n}\n\n.mj-timeline__card-titles {\n flex: 1;\n min-width: 0;\n}\n\n.mj-timeline__card-title {\n margin: 0;\n font-size: 15px;\n font-weight: 600;\n color: var(--mj-timeline-text-primary);\n line-height: 1.35;\n}\n\n.mj-timeline__card-subtitle {\n display: block;\n font-size: 13px;\n color: var(--mj-timeline-text-secondary);\n margin-top: 4px;\n}\n\n.mj-timeline__card-date {\n display: block;\n font-size: 12px;\n color: var(--mj-timeline-text-muted);\n margin-top: 6px;\n}\n\n.mj-timeline__card-date::before {\n display: none;\n}\n\n.mj-timeline__card-toggle {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n background: transparent;\n color: var(--mj-timeline-text-muted);\n border-radius: 4px;\n cursor: pointer;\n transition: all var(--mj-timeline-transition);\n font-size: 14px;\n}\n\n.mj-timeline__card-toggle:hover {\n background: var(--mj-timeline-accent-light);\n color: var(--mj-timeline-accent);\n}\n\n/* ============================================================================\n CARD IMAGE\n ============================================================================ */\n\n.mj-timeline__card-image {\n overflow: hidden;\n border-radius: 4px;\n flex-shrink: 0;\n}\n\n.mj-timeline__card-image img {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.mj-timeline__card-image--left.mj-timeline__card-image--small {\n width: 48px;\n height: 48px;\n}\n\n.mj-timeline__card-image--left.mj-timeline__card-image--medium {\n width: 72px;\n height: 72px;\n}\n\n.mj-timeline__card-image--left.mj-timeline__card-image--large {\n width: 96px;\n height: 96px;\n}\n\n.mj-timeline__card-image--top {\n width: calc(100% - 32px);\n max-height: 180px;\n margin: 0 16px 12px;\n}\n\n/* ============================================================================\n CARD BODY\n ============================================================================ */\n\n.mj-timeline__card-body {\n padding: 0 var(--mj-timeline-card-padding) var(--mj-timeline-card-padding);\n}\n\n.mj-timeline__card-body--collapsed {\n display: none;\n}\n\n.mj-timeline__card-description {\n font-size: 13px;\n line-height: 1.6;\n color: var(--mj-timeline-text-secondary);\n margin-bottom: 12px;\n}\n\n.mj-timeline__card-description--clamped {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.mj-timeline__card-description:last-child {\n margin-bottom: 0;\n}\n\n/* ============================================================================\n CARD FIELDS\n ============================================================================ */\n\n.mj-timeline__card-fields {\n display: flex;\n flex-wrap: wrap;\n gap: 4px 12px;\n}\n\n.mj-timeline__card-fields--summary {\n padding-top: 12px;\n border-top: 1px solid var(--mj-timeline-line-color);\n margin-top: 12px;\n}\n\n.mj-timeline__card-fields--expanded {\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid var(--mj-timeline-line-color);\n}\n\n.mj-timeline__card-field {\n display: flex;\n align-items: center;\n gap: 5px;\n font-size: 12px;\n}\n\n.mj-timeline__card-field-icon {\n color: var(--mj-timeline-text-muted);\n font-size: 10px;\n}\n\n.mj-timeline__card-field-label {\n color: var(--mj-timeline-text-muted);\n}\n\n.mj-timeline__card-field-value {\n color: var(--mj-timeline-text-secondary);\n font-weight: 500;\n}\n\n/* ============================================================================\n CARD ACTIONS\n ============================================================================ */\n\n.mj-timeline__card-actions {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n padding: 0 var(--mj-timeline-card-padding) var(--mj-timeline-card-padding);\n justify-content: flex-end;\n}\n\n.mj-timeline__card-actions--hover-only {\n opacity: 0;\n transition: opacity var(--mj-timeline-transition);\n}\n\n.mj-timeline__card:hover .mj-timeline__card-actions--hover-only,\n.mj-timeline__card:focus-within .mj-timeline__card-actions--hover-only {\n opacity: 1;\n}\n\n.mj-timeline__action {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 6px 12px;\n font-size: 12px;\n font-weight: 500;\n border: 1px solid;\n border-radius: 4px;\n cursor: pointer;\n transition: all var(--mj-timeline-transition);\n}\n\n.mj-timeline__action:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.mj-timeline__action i {\n font-size: 10px;\n}\n\n.mj-timeline__action--primary {\n background: var(--mj-timeline-accent);\n border-color: var(--mj-timeline-accent);\n color: #ffffff;\n}\n\n.mj-timeline__action--primary:hover:not(:disabled) {\n filter: brightness(1.1);\n}\n\n.mj-timeline__action--secondary {\n background: transparent;\n border-color: var(--mj-timeline-card-border);\n color: var(--mj-timeline-text-primary);\n}\n\n.mj-timeline__action--secondary:hover:not(:disabled) {\n background: var(--mj-timeline-accent-light);\n border-color: var(--mj-timeline-accent);\n color: var(--mj-timeline-accent);\n}\n\n.mj-timeline__action--danger {\n background: #cf222e;\n border-color: #cf222e;\n color: #ffffff;\n}\n\n.mj-timeline__action--link {\n background: transparent;\n border-color: transparent;\n color: var(--mj-timeline-accent);\n}\n\n.mj-timeline__action--link:hover:not(:disabled) {\n text-decoration: underline;\n}\n\n/* ============================================================================\n VIRTUAL SCROLL\n ============================================================================ */\n\n.mj-timeline-scroll-sentinel {\n height: 1px;\n width: 100%;\n visibility: hidden;\n}\n\n/* ============================================================================\n SINGLE LAYOUT - Cards only on right side\n ============================================================================ */\n\n.mj-timeline--single .mj-timeline__axis::before {\n left: 24px;\n transform: none;\n}\n\n.mj-timeline--single .mj-timeline__segment-header {\n margin-left: 12px;\n}\n\n.mj-timeline--single .mj-timeline__event {\n padding-right: 0;\n padding-left: 56px;\n justify-content: flex-start;\n}\n\n.mj-timeline--single .mj-timeline__event--odd {\n padding-left: 56px;\n flex-direction: row;\n}\n\n.mj-timeline--single .mj-timeline__marker {\n left: 24px;\n transform: translateX(-50%);\n}\n\n.mj-timeline--single .mj-timeline__date-label {\n display: none;\n}\n\n.mj-timeline--single .mj-timeline__card::before {\n left: -6px;\n right: auto;\n border-right: none;\n border-top: none;\n border-left: 1px solid var(--mj-timeline-card-border);\n border-bottom: 1px solid var(--mj-timeline-card-border);\n}\n\n.mj-timeline--single .mj-timeline__card {\n max-width: none;\n}\n\n/* ============================================================================\n ALTERNATING LAYOUT - Explicit class (same as default vertical)\n ============================================================================ */\n\n.mj-timeline--alternating .mj-timeline__segment-header {\n left: 50%;\n transform: translateX(-50%);\n}\n\n/* ============================================================================\n HORIZONTAL LAYOUT\n ============================================================================ */\n\n.mj-timeline--horizontal {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n align-items: flex-start;\n overflow-x: auto;\n overflow-y: hidden;\n padding: 80px 40px 24px;\n min-width: 100%;\n}\n\n.mj-timeline--horizontal .mj-timeline__segment {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n margin-bottom: 0;\n margin-right: 40px;\n position: relative;\n}\n\n.mj-timeline--horizontal .mj-timeline__segment:last-child {\n margin-right: 0;\n}\n\n.mj-timeline--horizontal .mj-timeline__segment-header {\n position: absolute;\n top: -56px;\n left: 0;\n margin-bottom: 0;\n white-space: nowrap;\n}\n\n.mj-timeline--horizontal .mj-timeline__segment-content {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n}\n\n.mj-timeline--horizontal .mj-timeline__axis {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n padding-left: 0;\n min-width: max-content;\n gap: 0;\n}\n\n/* Horizontal axis line */\n.mj-timeline--horizontal .mj-timeline__axis::before {\n left: 0;\n right: 0;\n top: 0;\n bottom: auto;\n width: 100%;\n height: var(--mj-timeline-line-width);\n transform: none;\n}\n\n.mj-timeline--horizontal .mj-timeline__event {\n flex-direction: column;\n align-items: center;\n margin-bottom: 0;\n margin-right: 48px;\n padding: 0;\n padding-top: 32px;\n min-width: 180px;\n max-width: 280px;\n width: auto;\n}\n\n.mj-timeline--horizontal .mj-timeline__event--odd {\n padding-left: 0;\n flex-direction: column;\n}\n\n.mj-timeline--horizontal .mj-timeline__event:last-child {\n margin-right: 0;\n}\n\n.mj-timeline--horizontal .mj-timeline__marker {\n position: absolute;\n left: 50%;\n /* Position so marker is centered on the axis line (top: 0 of axis) */\n /* Event has padding-top: 32px, marker is 14px, so top: -(32 + 7) = -39px for center */\n top: calc(-32px - var(--mj-timeline-marker-size) / 2);\n transform: translateX(-50%);\n margin: 0;\n}\n\n.mj-timeline--horizontal .mj-timeline__event:hover .mj-timeline__marker {\n transform: translateX(-50%) scale(1.2);\n}\n\n.mj-timeline--horizontal .mj-timeline__date-label {\n position: absolute;\n top: -40px;\n left: 50%;\n right: auto;\n transform: translateX(-50%);\n text-align: center;\n font-size: 12px;\n}\n\n.mj-timeline--horizontal .mj-timeline__card {\n max-width: none;\n width: 100%;\n min-width: 0;\n}\n\n.mj-timeline--horizontal .mj-timeline__card::before {\n display: none;\n}\n\n/* Horizontal focused marker override */\n.mj-timeline--horizontal .mj-timeline__event--focused .mj-timeline__marker {\n transform: translateX(-50%) scale(1.4);\n}\n\n/* Horizontal collapsed segment - rotate 90\u00B0 CCW and compress */\n.mj-timeline--horizontal .mj-timeline__segment--collapsed {\n flex: 0 0 auto;\n width: 32px;\n min-width: 32px;\n margin-right: 4px;\n}\n\n.mj-timeline--horizontal .mj-timeline__segment--collapsed .mj-timeline__segment-header {\n writing-mode: vertical-rl;\n text-orientation: mixed;\n transform: rotate(180deg);\n white-space: nowrap;\n padding: 8px 4px;\n margin: 0;\n top: 0;\n position: relative;\n}\n\n.mj-timeline--horizontal .mj-timeline__segment--collapsed .mj-timeline__segment-content {\n display: none;\n}\n\n/* ============================================================================\n RESPONSIVE\n ============================================================================ */\n\n@media (max-width: 900px) {\n /* Force single layout on smaller screens */\n .mj-timeline--alternating .mj-timeline__axis::before {\n left: 24px;\n transform: none;\n }\n\n .mj-timeline--alternating .mj-timeline__segment-header {\n left: auto;\n transform: none;\n margin-left: 12px;\n }\n\n .mj-timeline--alternating .mj-timeline__event {\n padding-right: 0;\n padding-left: 56px;\n justify-content: flex-start;\n }\n\n .mj-timeline--alternating .mj-timeline__event--odd {\n padding-left: 56px;\n padding-right: 0;\n flex-direction: row;\n }\n\n .mj-timeline--alternating .mj-timeline__marker {\n left: 24px;\n transform: translateX(-50%);\n }\n\n .mj-timeline--alternating .mj-timeline__event:hover .mj-timeline__marker {\n transform: translateX(-50%) scale(1.2);\n }\n\n .mj-timeline--alternating .mj-timeline__date-label {\n display: none;\n }\n\n .mj-timeline--alternating .mj-timeline__card::before {\n left: -6px;\n right: auto;\n border-right: none;\n border-top: none;\n border-left: 1px solid var(--mj-timeline-card-border);\n border-bottom: 1px solid var(--mj-timeline-card-border);\n }\n\n .mj-timeline--alternating .mj-timeline__card {\n max-width: none;\n }\n}\n\n@media (max-width: 600px) {\n mj-timeline {\n --mj-timeline-card-padding: 12px;\n --mj-timeline-gap: 16px;\n --mj-timeline-marker-size: 12px;\n }\n\n .mj-timeline {\n padding: 16px 12px;\n }\n\n .mj-timeline__card-title {\n font-size: 14px;\n }\n\n .mj-timeline--horizontal .mj-timeline__event {\n min-width: 160px;\n max-width: 220px;\n margin-right: 32px;\n }\n}\n\n/* Touch devices */\n@media (hover: none) and (pointer: coarse) {\n .mj-timeline__card-actions--hover-only {\n opacity: 1;\n }\n\n .mj-timeline__action {\n min-height: 40px;\n }\n}\n\n/* Reduced motion */\n@media (prefers-reduced-motion: reduce) {\n .mj-timeline__card,\n .mj-timeline__marker,\n .mj-timeline__segment-toggle {\n transition: none;\n }\n}\n"], encapsulation: 2, changeDetection: 0 });
|
|
1880
2003
|
}
|
|
1881
2004
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimelineComponent, [{
|
|
1882
2005
|
type: Component,
|
|
1883
|
-
args: [{ selector: 'mj-timeline', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n MJ Timeline Component Template\n\n Structure:\n - Loading state\n - Empty state\n - Timeline container (vertical/horizontal)\n - Time segments (collapsible)\n - Segment header\n - Event cards within segment\n - Or flat list of events (when segmentGrouping='none')\n - Virtual scroll sentinel\n-->\n\n<div\n class=\"mj-timeline\"\n [class.mj-timeline--vertical]=\"orientation === 'vertical'\"\n [class.mj-timeline--horizontal]=\"orientation === 'horizontal'\"\n [class.mj-timeline--single]=\"layout === 'single'\"\n [class.mj-timeline--alternating]=\"layout === 'alternating'\"\n [attr.aria-label]=\"ariaLabel\"\n role=\"list\"\n tabindex=\"0\"\n (keydown)=\"onKeyDown($event)\"\n #scrollContainer\n (scroll)=\"onScroll($event)\">\n\n <!-- Loading State -->\n <ng-container *ngIf=\"isLoading && !isInitialized\">\n <ng-container *ngIf=\"loadingTemplate; else defaultLoading\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultLoading>\n <div class=\"mj-timeline__loading\">\n <div class=\"mj-timeline__loading-spinner\"></div>\n <span class=\"mj-timeline__loading-text\">{{ loadingMessage }}</span>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Empty State -->\n <ng-container *ngIf=\"isInitialized && allEvents.length === 0 && !isLoading\">\n <ng-container *ngIf=\"emptyTemplate; else defaultEmpty\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultEmpty>\n <div class=\"mj-timeline__empty\">\n <i [class]=\"emptyIcon\" class=\"mj-timeline__empty-icon\"></i>\n <span class=\"mj-timeline__empty-text\">{{ emptyMessage }}</span>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Timeline Content -->\n <ng-container *ngIf=\"isInitialized && allEvents.length > 0\">\n\n <!-- Segmented View -->\n <ng-container *ngIf=\"segmentGrouping !== 'none'\">\n <div\n *ngFor=\"let segment of segments; trackBy: trackBySegmentLabel; let segmentIndex = index\"\n class=\"mj-timeline__segment\"\n [class.mj-timeline__segment--collapsed]=\"!segment.isExpanded\"\n [attr.data-segment-label]=\"segment.label\">\n\n <!-- Segment Header -->\n <div\n class=\"mj-timeline__segment-header\"\n [class.mj-timeline__segment-header--clickable]=\"segmentsCollapsible\"\n (click)=\"onSegmentClick(segment)\"\n role=\"button\"\n [attr.aria-expanded]=\"segment.isExpanded\"\n [attr.aria-controls]=\"'segment-content-' + segmentIndex\">\n\n <ng-container *ngIf=\"segmentHeaderTemplate; else defaultSegmentHeader\">\n <ng-container *ngTemplateOutlet=\"segmentHeaderTemplate; context: { segment: segment }\"></ng-container>\n </ng-container>\n\n <ng-template #defaultSegmentHeader>\n <span class=\"mj-timeline__segment-toggle\" *ngIf=\"segmentsCollapsible\">\n <i [class]=\"segment.isExpanded ? 'fa-solid fa-chevron-down' : 'fa-solid fa-chevron-right'\"></i>\n </span>\n <span class=\"mj-timeline__segment-label\">{{ segment.label }}</span>\n <span class=\"mj-timeline__segment-count\">({{ segment.eventCount }} {{ segment.eventCount === 1 ? 'event' : 'events' }})</span>\n <span class=\"mj-timeline__segment-line\"></span>\n </ng-template>\n </div>\n\n <!-- Segment Content -->\n <div\n class=\"mj-timeline__segment-content\"\n [id]=\"'segment-content-' + segmentIndex\"\n [class.mj-timeline__segment-content--hidden]=\"!segment.isExpanded\">\n\n <div class=\"mj-timeline__axis\">\n <!-- Events in Segment -->\n <ng-container *ngFor=\"let event of segment.events; trackBy: trackByEventId; let eventIndex = index; let isOdd = odd\">\n <ng-container *ngTemplateOutlet=\"eventCard; context: {\n event: event,\n index: eventIndex,\n isOdd: isOdd,\n globalIndex: getGlobalIndex(event)\n }\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n\n <!-- Flat View (no segments) -->\n <ng-container *ngIf=\"segmentGrouping === 'none'\">\n <div class=\"mj-timeline__axis\">\n <ng-container *ngFor=\"let event of allEvents; trackBy: trackByEventId; let eventIndex = index; let isOdd = odd\">\n <ng-container *ngTemplateOutlet=\"eventCard; context: {\n event: event,\n index: eventIndex,\n isOdd: isOdd,\n globalIndex: eventIndex\n }\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n\n </ng-container>\n\n <!-- Virtual Scroll Sentinel -->\n <div\n class=\"mj-timeline-scroll-sentinel\"\n *ngIf=\"virtualScroll.enabled && scrollState.hasMore\">\n </div>\n\n <!-- Loading More Indicator -->\n <div\n class=\"mj-timeline__loading-more\"\n *ngIf=\"scrollState.isLoading && virtualScroll.showLoadingIndicator\">\n <div class=\"mj-timeline__loading-spinner mj-timeline__loading-spinner--small\"></div>\n <span>{{ virtualScroll.loadingMessage }}</span>\n </div>\n\n</div>\n\n<!-- Event Card Template -->\n<ng-template #eventCard let-event=\"event\" let-index=\"index\" let-isOdd=\"isOdd\" let-globalIndex=\"globalIndex\">\n <div\n class=\"mj-timeline__event\"\n [class.mj-timeline__event--odd]=\"isOdd && layout === 'alternating'\"\n [class.mj-timeline__event--even]=\"!isOdd && layout === 'alternating'\"\n [class.mj-timeline__event--expanded]=\"event.isExpanded\"\n [class.mj-timeline__event--focused]=\"focusedEventIndex === globalIndex\"\n [attr.data-event-id]=\"event.id\"\n role=\"listitem\"\n [attr.aria-expanded]=\"event.isExpanded\">\n\n <!-- Timeline Marker -->\n <div class=\"mj-timeline__marker\" [style.background-color]=\"getColor(event)\">\n <i [class]=\"getIcon(event)\" class=\"mj-timeline__marker-icon\"></i>\n </div>\n\n <!-- Connector Line -->\n <div class=\"mj-timeline__connector\" [style.background-color]=\"getColor(event)\"></div>\n\n <!-- Date Label (for alternating layout) -->\n <div class=\"mj-timeline__date-label\" *ngIf=\"layout === 'alternating'\">\n {{ formatDate(event.date) }}\n </div>\n\n <!-- Event Card -->\n <div\n class=\"mj-timeline__card\"\n [class]=\"getEffectiveCardConfig(event).cssClass\"\n [style.max-width]=\"getEffectiveCardConfig(event).maxWidth\"\n [style.min-width]=\"getEffectiveCardConfig(event).minWidth\"\n [style.border-left-color]=\"getColor(event)\"\n (click)=\"onEventClick(event, globalIndex, $event)\"\n (mouseenter)=\"onEventMouseEnter(event, globalIndex, $event)\"\n (mouseleave)=\"onEventMouseLeave(event, globalIndex, $event)\">\n\n <!-- Custom Card Template -->\n <ng-container *ngIf=\"cardTemplate; else defaultCard\">\n <ng-container *ngTemplateOutlet=\"cardTemplate; context: {\n event: event,\n group: groups[event.groupIndex]\n }\"></ng-container>\n </ng-container>\n\n <!-- Default Card Template -->\n <ng-template #defaultCard>\n <!-- Card Header -->\n <div class=\"mj-timeline__card-header\">\n <!-- Image (left position) -->\n <div\n class=\"mj-timeline__card-image mj-timeline__card-image--left\"\n *ngIf=\"event.imageUrl && getEffectiveCardConfig(event).imagePosition === 'left'\"\n [class.mj-timeline__card-image--small]=\"getEffectiveCardConfig(event).imageSize === 'small'\"\n [class.mj-timeline__card-image--medium]=\"getEffectiveCardConfig(event).imageSize === 'medium'\"\n [class.mj-timeline__card-image--large]=\"getEffectiveCardConfig(event).imageSize === 'large'\">\n <img [src]=\"event.imageUrl\" [alt]=\"event.title\" />\n </div>\n\n <div class=\"mj-timeline__card-header-content\">\n <!-- Custom Header Template -->\n <ng-container *ngIf=\"headerTemplate; else defaultHeader\">\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { event: event }\"></ng-container>\n </ng-container>\n\n <ng-template #defaultHeader>\n <!-- Icon -->\n <span\n class=\"mj-timeline__card-icon\"\n *ngIf=\"getEffectiveCardConfig(event).showIcon\"\n [style.color]=\"getColor(event)\">\n <i [class]=\"getIcon(event)\"></i>\n </span>\n\n <!-- Title & Subtitle -->\n <div class=\"mj-timeline__card-titles\">\n <h4 class=\"mj-timeline__card-title\">{{ event.title }}</h4>\n <span\n class=\"mj-timeline__card-subtitle\"\n *ngIf=\"event.subtitle && getEffectiveCardConfig(event).showSubtitle\">\n {{ event.subtitle }}\n </span>\n <span\n class=\"mj-timeline__card-date\"\n *ngIf=\"getEffectiveCardConfig(event).showDate && layout !== 'alternating'\">\n {{ formatDate(event.date, getEffectiveCardConfig(event).dateFormat) }}\n </span>\n </div>\n\n <!-- Expand/Collapse Toggle -->\n <button\n class=\"mj-timeline__card-toggle\"\n *ngIf=\"getEffectiveCardConfig(event).collapsible\"\n (click)=\"onToggleExpand(event, globalIndex, $event)\"\n [attr.aria-label]=\"event.isExpanded ? 'Collapse' : 'Expand'\"\n type=\"button\">\n <i [class]=\"event.isExpanded ? 'fa-solid fa-chevron-up' : 'fa-solid fa-chevron-down'\"></i>\n </button>\n </ng-template>\n </div>\n </div>\n\n <!-- Image (top position) -->\n <div\n class=\"mj-timeline__card-image mj-timeline__card-image--top\"\n *ngIf=\"event.imageUrl && getEffectiveCardConfig(event).imagePosition === 'top'\">\n <img [src]=\"event.imageUrl\" [alt]=\"event.title\" />\n </div>\n\n <!-- Card Body -->\n <div\n class=\"mj-timeline__card-body\"\n [class.mj-timeline__card-body--collapsed]=\"!event.isExpanded && getEffectiveCardConfig(event).collapsible\">\n\n <!-- Custom Body Template -->\n <ng-container *ngIf=\"bodyTemplate; else defaultBody\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { event: event }\"></ng-container>\n </ng-container>\n\n <ng-template #defaultBody>\n <!-- Summary Fields (always visible) -->\n <div\n class=\"mj-timeline__card-fields mj-timeline__card-fields--summary\"\n *ngIf=\"getEffectiveCardConfig(event).summaryFields?.length\">\n <ng-container *ngFor=\"let field of getEffectiveCardConfig(event).summaryFields\">\n <div class=\"mj-timeline__card-field\" [class]=\"field.cssClass\">\n <i *ngIf=\"field.icon\" [class]=\"field.icon\" class=\"mj-timeline__card-field-icon\"></i>\n <span *ngIf=\"!field.hideLabel && field.label\" class=\"mj-timeline__card-field-label\">{{ field.label }}:</span>\n <span class=\"mj-timeline__card-field-value\">{{ getFieldValue(event, field) }}</span>\n </div>\n </ng-container>\n </div>\n\n <!-- Description (expanded view) -->\n <div\n class=\"mj-timeline__card-description\"\n *ngIf=\"event.description && event.isExpanded\"\n [class.mj-timeline__card-description--clamped]=\"(getEffectiveCardConfig(event).descriptionMaxLines ?? 0) > 0\"\n [style.-webkit-line-clamp]=\"getEffectiveCardConfig(event).descriptionMaxLines || null\">\n <ng-container *ngIf=\"getEffectiveCardConfig(event).allowHtmlDescription; else plainDescription\">\n <div [innerHTML]=\"event.description\"></div>\n </ng-container>\n <ng-template #plainDescription>\n {{ event.description }}\n </ng-template>\n </div>\n\n <!-- Expanded Fields -->\n <div\n class=\"mj-timeline__card-fields mj-timeline__card-fields--expanded\"\n *ngIf=\"event.isExpanded && getEffectiveCardConfig(event).expandedFields?.length\">\n <ng-container *ngFor=\"let field of getEffectiveCardConfig(event).expandedFields\">\n <div class=\"mj-timeline__card-field\" [class]=\"field.cssClass\">\n <i *ngIf=\"field.icon\" [class]=\"field.icon\" class=\"mj-timeline__card-field-icon\"></i>\n <span *ngIf=\"!field.hideLabel\" class=\"mj-timeline__card-field-label\">{{ field.label || field.fieldName }}:</span>\n <span class=\"mj-timeline__card-field-value\">{{ getFieldValue(event, field) }}</span>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </div>\n\n <!-- Card Actions -->\n <div\n class=\"mj-timeline__card-actions\"\n [class.mj-timeline__card-actions--hover-only]=\"getEffectiveCardConfig(event).actionsOnHover\"\n *ngIf=\"getActions(event).length > 0\">\n\n <!-- Custom Actions Template -->\n <ng-container *ngIf=\"actionsTemplate; else defaultActions\">\n <ng-container *ngTemplateOutlet=\"actionsTemplate; context: {\n event: event,\n actions: getActions(event)\n }\"></ng-container>\n </ng-container>\n\n <ng-template #defaultActions>\n <button\n *ngFor=\"let action of getActions(event)\"\n class=\"mj-timeline__action\"\n [class.mj-timeline__action--primary]=\"action.variant === 'primary'\"\n [class.mj-timeline__action--secondary]=\"action.variant === 'secondary' || !action.variant\"\n [class.mj-timeline__action--danger]=\"action.variant === 'danger'\"\n [class.mj-timeline__action--link]=\"action.variant === 'link'\"\n [class]=\"action.cssClass\"\n [disabled]=\"action.disabled\"\n [title]=\"action.tooltip || ''\"\n (click)=\"onActionClick(event, action, globalIndex, $event)\"\n type=\"button\">\n <i *ngIf=\"action.icon\" [class]=\"action.icon\"></i>\n <span>{{ action.label }}</span>\n </button>\n </ng-template>\n </div>\n </ng-template>\n </div>\n </div>\n</ng-template>\n", styles: ["/**\n * MJ Timeline Component Styles\n *\n * A responsive, themeable timeline component using CSS variables.\n * Supports vertical/horizontal orientations, single/alternating layouts,\n * and fully responsive mobile design.\n */\n\n// ============================================================================\n// CSS VARIABLES (Theming)\n// ============================================================================\n\n:host {\n // Colors\n --mj-timeline-bg: transparent;\n --mj-timeline-line-color: #e0e0e0;\n --mj-timeline-marker-bg: #1976d2;\n --mj-timeline-marker-border: #ffffff;\n --mj-timeline-card-bg: #ffffff;\n --mj-timeline-card-border: #e0e0e0;\n --mj-timeline-card-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n --mj-timeline-card-shadow-hover: 0 4px 16px rgba(0, 0, 0, 0.15);\n --mj-timeline-card-radius: 8px;\n --mj-timeline-text-primary: #212121;\n --mj-timeline-text-secondary: #757575;\n --mj-timeline-text-muted: #9e9e9e;\n --mj-timeline-accent: #1976d2;\n --mj-timeline-segment-bg: #f5f5f5;\n --mj-timeline-focus-ring: 0 0 0 3px rgba(25, 118, 210, 0.3);\n\n // Sizing\n --mj-timeline-line-width: 2px;\n --mj-timeline-marker-size: 14px;\n --mj-timeline-marker-icon-size: 8px;\n --mj-timeline-card-padding: 16px;\n --mj-timeline-card-max-width: 400px;\n --mj-timeline-card-min-width: 250px;\n --mj-timeline-gap: 16px;\n --mj-timeline-segment-gap: 24px;\n --mj-timeline-axis-offset: 60px;\n\n // Animation\n --mj-timeline-transition: 0.25s ease;\n\n display: block;\n width: 100%;\n}\n\n// Dark mode support\n:host-context(.dark-theme),\n:host-context([data-theme=\"dark\"]) {\n --mj-timeline-line-color: #424242;\n --mj-timeline-card-bg: #1e1e1e;\n --mj-timeline-card-border: #424242;\n --mj-timeline-card-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);\n --mj-timeline-text-primary: #ffffff;\n --mj-timeline-text-secondary: #b0b0b0;\n --mj-timeline-text-muted: #757575;\n --mj-timeline-segment-bg: #2d2d2d;\n}\n\n// ============================================================================\n// MAIN CONTAINER\n// ============================================================================\n\n.mj-timeline {\n position: relative;\n width: 100%;\n padding: var(--mj-timeline-gap);\n background: var(--mj-timeline-bg);\n outline: none;\n\n &:focus-visible {\n box-shadow: var(--mj-timeline-focus-ring);\n border-radius: 4px;\n }\n}\n\n// ============================================================================\n// LOADING STATE\n// ============================================================================\n\n.mj-timeline__loading {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 24px;\n gap: 16px;\n}\n\n.mj-timeline__loading-spinner {\n width: 40px;\n height: 40px;\n border: 3px solid var(--mj-timeline-line-color);\n border-top-color: var(--mj-timeline-accent);\n border-radius: 50%;\n animation: mj-timeline-spin 0.8s linear infinite;\n\n &--small {\n width: 20px;\n height: 20px;\n border-width: 2px;\n }\n}\n\n.mj-timeline__loading-text {\n color: var(--mj-timeline-text-secondary);\n font-size: 14px;\n}\n\n.mj-timeline__loading-more {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 16px;\n gap: 8px;\n color: var(--mj-timeline-text-secondary);\n font-size: 13px;\n}\n\n@keyframes mj-timeline-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n// ============================================================================\n// EMPTY STATE\n// ============================================================================\n\n.mj-timeline__empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 64px 24px;\n gap: 16px;\n text-align: center;\n}\n\n.mj-timeline__empty-icon {\n font-size: 48px;\n color: var(--mj-timeline-text-muted);\n}\n\n.mj-timeline__empty-text {\n color: var(--mj-timeline-text-secondary);\n font-size: 16px;\n}\n\n// ============================================================================\n// TIME SEGMENTS\n// ============================================================================\n\n.mj-timeline__segment {\n margin-bottom: var(--mj-timeline-segment-gap);\n\n &:last-child {\n margin-bottom: 0;\n }\n}\n\n.mj-timeline__segment-header {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n margin-bottom: var(--mj-timeline-gap);\n background: var(--mj-timeline-segment-bg);\n border-radius: 6px;\n font-weight: 600;\n color: var(--mj-timeline-text-primary);\n user-select: none;\n\n &--clickable {\n cursor: pointer;\n transition: background-color var(--mj-timeline-transition);\n\n &:hover {\n background: darken(#f5f5f5, 5%);\n }\n\n :host-context(.dark-theme) &:hover,\n :host-context([data-theme=\"dark\"]) &:hover {\n background: lighten(#2d2d2d, 5%);\n }\n }\n}\n\n.mj-timeline__segment-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n color: var(--mj-timeline-text-secondary);\n font-size: 12px;\n transition: transform var(--mj-timeline-transition);\n}\n\n.mj-timeline__segment-label {\n font-size: 15px;\n}\n\n.mj-timeline__segment-count {\n color: var(--mj-timeline-text-secondary);\n font-size: 13px;\n font-weight: 400;\n}\n\n.mj-timeline__segment-line {\n flex: 1;\n height: 1px;\n background: var(--mj-timeline-line-color);\n margin-left: 8px;\n}\n\n.mj-timeline__segment-content {\n overflow: hidden;\n transition: max-height var(--mj-timeline-transition), opacity var(--mj-timeline-transition);\n\n &--hidden {\n max-height: 0;\n opacity: 0;\n pointer-events: none;\n }\n}\n\n// ============================================================================\n// TIMELINE AXIS\n// ============================================================================\n\n.mj-timeline__axis {\n position: relative;\n padding-left: var(--mj-timeline-axis-offset);\n\n // Vertical line\n &::before {\n content: '';\n position: absolute;\n left: calc(var(--mj-timeline-marker-size) / 2);\n top: 0;\n bottom: 0;\n width: var(--mj-timeline-line-width);\n background: var(--mj-timeline-line-color);\n }\n}\n\n// ============================================================================\n// TIMELINE EVENT\n// ============================================================================\n\n.mj-timeline__event {\n position: relative;\n display: flex;\n align-items: flex-start;\n margin-bottom: var(--mj-timeline-gap);\n\n &:last-child {\n margin-bottom: 0;\n }\n}\n\n// ============================================================================\n// MARKER\n// ============================================================================\n\n.mj-timeline__marker {\n position: absolute;\n left: 0;\n top: 16px;\n width: var(--mj-timeline-marker-size);\n height: var(--mj-timeline-marker-size);\n border-radius: 50%;\n background: var(--mj-timeline-marker-bg);\n border: 2px solid var(--mj-timeline-marker-border);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1;\n}\n\n.mj-timeline__marker-icon {\n font-size: var(--mj-timeline-marker-icon-size);\n color: var(--mj-timeline-marker-border);\n display: none; // Hidden by default, shown in larger markers\n}\n\n.mj-timeline__connector {\n display: none; // Hidden by default, used in horizontal mode\n}\n\n// ============================================================================\n// DATE LABEL (Alternating Layout)\n// ============================================================================\n\n.mj-timeline__date-label {\n display: none; // Hidden by default\n}\n\n// ============================================================================\n// EVENT CARD\n// ============================================================================\n\n.mj-timeline__card {\n flex: 1;\n background: var(--mj-timeline-card-bg);\n border: 1px solid var(--mj-timeline-card-border);\n border-left-width: 4px;\n border-radius: var(--mj-timeline-card-radius);\n box-shadow: var(--mj-timeline-card-shadow);\n overflow: hidden;\n transition: box-shadow var(--mj-timeline-transition), transform var(--mj-timeline-transition);\n cursor: pointer;\n max-width: var(--mj-timeline-card-max-width);\n min-width: var(--mj-timeline-card-min-width);\n\n &:hover {\n box-shadow: var(--mj-timeline-card-shadow-hover);\n transform: translateY(-1px);\n }\n\n .mj-timeline__event--focused & {\n box-shadow: var(--mj-timeline-focus-ring), var(--mj-timeline-card-shadow);\n }\n}\n\n// ============================================================================\n// CARD HEADER\n// ============================================================================\n\n.mj-timeline__card-header {\n display: flex;\n align-items: flex-start;\n padding: var(--mj-timeline-card-padding);\n gap: 12px;\n}\n\n.mj-timeline__card-header-content {\n flex: 1;\n display: flex;\n align-items: flex-start;\n gap: 10px;\n min-width: 0; // Enable text truncation\n}\n\n.mj-timeline__card-icon {\n flex-shrink: 0;\n font-size: 18px;\n line-height: 1;\n margin-top: 2px;\n}\n\n.mj-timeline__card-titles {\n flex: 1;\n min-width: 0;\n}\n\n.mj-timeline__card-title {\n margin: 0;\n font-size: 15px;\n font-weight: 600;\n color: var(--mj-timeline-text-primary);\n line-height: 1.4;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.mj-timeline__card-subtitle {\n display: block;\n font-size: 13px;\n color: var(--mj-timeline-text-secondary);\n margin-top: 2px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.mj-timeline__card-date {\n display: block;\n font-size: 12px;\n color: var(--mj-timeline-text-muted);\n margin-top: 4px;\n}\n\n.mj-timeline__card-toggle {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n background: transparent;\n color: var(--mj-timeline-text-secondary);\n border-radius: 4px;\n cursor: pointer;\n transition: background-color var(--mj-timeline-transition), color var(--mj-timeline-transition);\n\n &:hover {\n background: var(--mj-timeline-segment-bg);\n color: var(--mj-timeline-text-primary);\n }\n\n &:focus-visible {\n box-shadow: var(--mj-timeline-focus-ring);\n outline: none;\n }\n}\n\n// ============================================================================\n// CARD IMAGE\n// ============================================================================\n\n.mj-timeline__card-image {\n overflow: hidden;\n border-radius: 4px;\n flex-shrink: 0;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n &--left {\n &.mj-timeline__card-image--small {\n width: 48px;\n height: 48px;\n }\n\n &.mj-timeline__card-image--medium {\n width: 80px;\n height: 80px;\n }\n\n &.mj-timeline__card-image--large {\n width: 120px;\n height: 120px;\n }\n }\n\n &--top {\n width: 100%;\n max-height: 200px;\n margin: 0 var(--mj-timeline-card-padding);\n margin-top: 0;\n border-radius: 4px;\n\n img {\n width: calc(100% - 2 * var(--mj-timeline-card-padding));\n height: auto;\n }\n }\n}\n\n// ============================================================================\n// CARD BODY\n// ============================================================================\n\n.mj-timeline__card-body {\n padding: 0 var(--mj-timeline-card-padding);\n padding-bottom: var(--mj-timeline-card-padding);\n\n &--collapsed {\n display: none;\n }\n}\n\n.mj-timeline__card-description {\n font-size: 14px;\n line-height: 1.6;\n color: var(--mj-timeline-text-secondary);\n margin-bottom: 12px;\n\n &--clamped {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n}\n\n// ============================================================================\n// CARD FIELDS\n// ============================================================================\n\n.mj-timeline__card-fields {\n display: flex;\n flex-wrap: wrap;\n gap: 8px 16px;\n\n &--summary {\n padding-top: 8px;\n border-top: 1px solid var(--mj-timeline-line-color);\n margin-top: 8px;\n }\n\n &--expanded {\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid var(--mj-timeline-line-color);\n }\n}\n\n.mj-timeline__card-field {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n}\n\n.mj-timeline__card-field-icon {\n color: var(--mj-timeline-text-muted);\n font-size: 12px;\n}\n\n.mj-timeline__card-field-label {\n color: var(--mj-timeline-text-muted);\n}\n\n.mj-timeline__card-field-value {\n color: var(--mj-timeline-text-secondary);\n font-weight: 500;\n}\n\n// ============================================================================\n// CARD ACTIONS\n// ============================================================================\n\n.mj-timeline__card-actions {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n padding: var(--mj-timeline-card-padding);\n padding-top: 0;\n justify-content: flex-end;\n\n &--hover-only {\n opacity: 0;\n transition: opacity var(--mj-timeline-transition);\n\n .mj-timeline__card:hover &,\n .mj-timeline__card:focus-within & {\n opacity: 1;\n }\n }\n}\n\n.mj-timeline__action {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n font-size: 13px;\n font-weight: 500;\n border: 1px solid;\n border-radius: 4px;\n cursor: pointer;\n transition: all var(--mj-timeline-transition);\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n &:focus-visible {\n box-shadow: var(--mj-timeline-focus-ring);\n outline: none;\n }\n\n i {\n font-size: 12px;\n }\n\n // Variants\n &--primary {\n background: var(--mj-timeline-accent);\n border-color: var(--mj-timeline-accent);\n color: #ffffff;\n\n &:hover:not(:disabled) {\n background: darken(#1976d2, 8%);\n border-color: darken(#1976d2, 8%);\n }\n }\n\n &--secondary {\n background: transparent;\n border-color: var(--mj-timeline-card-border);\n color: var(--mj-timeline-text-primary);\n\n &:hover:not(:disabled) {\n background: var(--mj-timeline-segment-bg);\n }\n }\n\n &--danger {\n background: #f44336;\n border-color: #f44336;\n color: #ffffff;\n\n &:hover:not(:disabled) {\n background: darken(#f44336, 8%);\n border-color: darken(#f44336, 8%);\n }\n }\n\n &--link {\n background: transparent;\n border-color: transparent;\n color: var(--mj-timeline-accent);\n padding: 6px 8px;\n\n &:hover:not(:disabled) {\n background: rgba(25, 118, 210, 0.08);\n }\n }\n}\n\n// ============================================================================\n// VIRTUAL SCROLL SENTINEL\n// ============================================================================\n\n.mj-timeline-scroll-sentinel {\n height: 1px;\n width: 100%;\n visibility: hidden;\n}\n\n// ============================================================================\n// ALTERNATING LAYOUT\n// ============================================================================\n\n.mj-timeline--alternating {\n .mj-timeline__axis {\n padding-left: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n\n &::before {\n left: 50%;\n transform: translateX(-50%);\n }\n }\n\n .mj-timeline__event {\n width: 100%;\n justify-content: flex-start;\n padding-right: calc(50% + var(--mj-timeline-gap));\n\n &--odd {\n justify-content: flex-end;\n padding-right: 0;\n padding-left: calc(50% + var(--mj-timeline-gap));\n flex-direction: row-reverse;\n }\n }\n\n .mj-timeline__marker {\n left: 50%;\n transform: translateX(-50%);\n }\n\n .mj-timeline__date-label {\n display: block;\n position: absolute;\n top: 12px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-timeline-accent);\n white-space: nowrap;\n\n .mj-timeline__event:not(.mj-timeline__event--odd) & {\n right: calc(50% + var(--mj-timeline-gap) + var(--mj-timeline-marker-size));\n text-align: right;\n }\n\n .mj-timeline__event--odd & {\n left: calc(50% + var(--mj-timeline-gap) + var(--mj-timeline-marker-size));\n text-align: left;\n }\n }\n\n .mj-timeline__card {\n max-width: calc(50% - var(--mj-timeline-gap) - var(--mj-timeline-marker-size));\n }\n}\n\n// ============================================================================\n// HORIZONTAL LAYOUT\n// ============================================================================\n\n.mj-timeline--horizontal {\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n\n .mj-timeline__axis {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n padding-left: 0;\n padding-top: var(--mj-timeline-gap);\n min-width: max-content;\n\n &::before {\n left: 0;\n right: 0;\n top: calc(var(--mj-timeline-marker-size) / 2 + var(--mj-timeline-gap));\n bottom: auto;\n width: auto;\n height: var(--mj-timeline-line-width);\n }\n }\n\n .mj-timeline__segment-content {\n .mj-timeline__axis {\n flex-direction: row;\n }\n }\n\n .mj-timeline__event {\n flex-direction: column;\n align-items: center;\n margin-bottom: 0;\n margin-right: var(--mj-timeline-gap);\n min-width: 280px;\n max-width: 320px;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n .mj-timeline__marker {\n position: relative;\n left: auto;\n top: auto;\n margin-bottom: var(--mj-timeline-gap);\n }\n\n .mj-timeline__card {\n max-width: none;\n width: 100%;\n }\n\n .mj-timeline__date-label {\n display: block;\n margin-bottom: 8px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-timeline-accent);\n }\n}\n\n// ============================================================================\n// RESPONSIVE STYLES\n// ============================================================================\n\n// Tablet\n@media (max-width: 1024px) {\n :host {\n --mj-timeline-card-max-width: 350px;\n --mj-timeline-axis-offset: 50px;\n }\n\n // Force single layout on tablet\n .mj-timeline--alternating {\n .mj-timeline__axis {\n align-items: flex-start;\n padding-left: var(--mj-timeline-axis-offset);\n\n &::before {\n left: calc(var(--mj-timeline-marker-size) / 2);\n transform: none;\n }\n }\n\n .mj-timeline__event {\n padding-right: 0;\n padding-left: 0;\n justify-content: flex-start;\n flex-direction: row;\n\n &--odd {\n padding-left: 0;\n justify-content: flex-start;\n flex-direction: row;\n }\n }\n\n .mj-timeline__marker {\n left: 0;\n transform: none;\n }\n\n .mj-timeline__date-label {\n display: none;\n }\n\n .mj-timeline__card {\n max-width: var(--mj-timeline-card-max-width);\n }\n }\n}\n\n// Mobile\n@media (max-width: 767px) {\n :host {\n --mj-timeline-card-max-width: 100%;\n --mj-timeline-card-min-width: 0;\n --mj-timeline-axis-offset: 40px;\n --mj-timeline-marker-size: 12px;\n --mj-timeline-card-padding: 12px;\n --mj-timeline-gap: 12px;\n }\n\n .mj-timeline {\n padding: var(--mj-timeline-gap);\n }\n\n .mj-timeline__segment-header {\n padding: 10px 12px;\n font-size: 14px;\n }\n\n .mj-timeline__segment-line {\n display: none;\n }\n\n .mj-timeline__card {\n max-width: none;\n min-width: 0;\n }\n\n .mj-timeline__card-title {\n font-size: 14px;\n white-space: normal;\n }\n\n .mj-timeline__card-actions {\n flex-direction: column;\n\n .mj-timeline__action {\n width: 100%;\n justify-content: center;\n }\n }\n\n // Horizontal mode on mobile\n .mj-timeline--horizontal {\n .mj-timeline__event {\n min-width: 240px;\n max-width: 280px;\n }\n }\n}\n\n// Touch device optimizations\n@media (hover: none) and (pointer: coarse) {\n .mj-timeline__card-actions--hover-only {\n opacity: 1;\n }\n\n .mj-timeline__action {\n min-height: 44px;\n min-width: 44px;\n }\n}\n"] }]
|
|
2006
|
+
args: [{ selector: 'mj-timeline', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<!--\n MJ Timeline Component Template\n\n Structure:\n - Loading state\n - Empty state\n - Timeline container (vertical/horizontal)\n - Time segments (collapsible)\n - Segment header\n - Event cards within segment\n - Or flat list of events (when segmentGrouping='none')\n - Virtual scroll sentinel\n-->\n\n<div\n class=\"mj-timeline\"\n [class.mj-timeline--vertical]=\"orientation === 'vertical'\"\n [class.mj-timeline--horizontal]=\"orientation === 'horizontal'\"\n [class.mj-timeline--single]=\"layout === 'single'\"\n [class.mj-timeline--alternating]=\"layout === 'alternating'\"\n [attr.aria-label]=\"ariaLabel\"\n role=\"list\"\n tabindex=\"0\"\n (keydown)=\"onKeyDown($event)\"\n #scrollContainer\n (scroll)=\"onScroll($event)\">\n\n <!-- Loading State -->\n <ng-container *ngIf=\"isLoading && !isInitialized\">\n <ng-container *ngIf=\"loadingTemplate; else defaultLoading\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultLoading>\n <div class=\"mj-timeline__loading\">\n <div class=\"mj-timeline__loading-spinner\"></div>\n <span class=\"mj-timeline__loading-text\">{{ loadingMessage }}</span>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Empty State -->\n <ng-container *ngIf=\"isInitialized && allEvents.length === 0 && !isLoading\">\n <ng-container *ngIf=\"emptyTemplate; else defaultEmpty\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultEmpty>\n <div class=\"mj-timeline__empty\">\n <i [class]=\"emptyIcon\" class=\"mj-timeline__empty-icon\"></i>\n <span class=\"mj-timeline__empty-text\">{{ emptyMessage }}</span>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Timeline Content -->\n <ng-container *ngIf=\"isInitialized && allEvents.length > 0\">\n\n <!-- Segmented View -->\n <ng-container *ngIf=\"segmentGrouping !== 'none'\">\n <div\n *ngFor=\"let segment of segments; trackBy: trackBySegmentLabel; let segmentIndex = index\"\n class=\"mj-timeline__segment\"\n [class.mj-timeline__segment--collapsed]=\"!segment.isExpanded\"\n [attr.data-segment-label]=\"segment.label\">\n\n <!-- Segment Header -->\n <div\n class=\"mj-timeline__segment-header\"\n [class.mj-timeline__segment-header--clickable]=\"segmentsCollapsible\"\n (click)=\"onSegmentClick(segment)\"\n role=\"button\"\n [attr.aria-expanded]=\"segment.isExpanded\"\n [attr.aria-controls]=\"'segment-content-' + segmentIndex\">\n\n <ng-container *ngIf=\"segmentHeaderTemplate; else defaultSegmentHeader\">\n <ng-container *ngTemplateOutlet=\"segmentHeaderTemplate; context: { segment: segment }\"></ng-container>\n </ng-container>\n\n <ng-template #defaultSegmentHeader>\n <span class=\"mj-timeline__segment-toggle\" *ngIf=\"segmentsCollapsible\">\n <i [class]=\"segment.isExpanded ? 'fa-solid fa-chevron-down' : 'fa-solid fa-chevron-right'\"></i>\n </span>\n <span class=\"mj-timeline__segment-label\">{{ segment.label }}</span>\n <span class=\"mj-timeline__segment-count\">({{ segment.eventCount }} {{ segment.eventCount === 1 ? 'event' : 'events' }})</span>\n <span class=\"mj-timeline__segment-line\"></span>\n </ng-template>\n </div>\n\n <!-- Segment Content -->\n <div\n class=\"mj-timeline__segment-content\"\n [id]=\"'segment-content-' + segmentIndex\"\n [class.mj-timeline__segment-content--hidden]=\"!segment.isExpanded\">\n\n <div class=\"mj-timeline__axis\">\n <!-- Events in Segment -->\n <ng-container *ngFor=\"let event of segment.events; trackBy: trackByEventId; let eventIndex = index; let isOdd = odd\">\n <ng-container *ngTemplateOutlet=\"eventCard; context: {\n event: event,\n index: eventIndex,\n isOdd: isOdd,\n globalIndex: getGlobalIndex(event)\n }\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n\n <!-- Flat View (no segments) -->\n <ng-container *ngIf=\"segmentGrouping === 'none'\">\n <div class=\"mj-timeline__axis\">\n <ng-container *ngFor=\"let event of allEvents; trackBy: trackByEventId; let eventIndex = index; let isOdd = odd\">\n <ng-container *ngTemplateOutlet=\"eventCard; context: {\n event: event,\n index: eventIndex,\n isOdd: isOdd,\n globalIndex: eventIndex\n }\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n\n </ng-container>\n\n <!-- Virtual Scroll Sentinel -->\n <div\n class=\"mj-timeline-scroll-sentinel\"\n *ngIf=\"virtualScroll.enabled && scrollState.hasMore\">\n </div>\n\n <!-- Loading More Indicator -->\n <div\n class=\"mj-timeline__loading-more\"\n *ngIf=\"scrollState.isLoading && virtualScroll.showLoadingIndicator\">\n <div class=\"mj-timeline__loading-spinner mj-timeline__loading-spinner--small\"></div>\n <span>{{ virtualScroll.loadingMessage }}</span>\n </div>\n\n</div>\n\n<!-- Event Card Template -->\n<ng-template #eventCard let-event=\"event\" let-index=\"index\" let-isOdd=\"isOdd\" let-globalIndex=\"globalIndex\">\n <div\n class=\"mj-timeline__event\"\n [class.mj-timeline__event--odd]=\"isOdd && layout === 'alternating'\"\n [class.mj-timeline__event--even]=\"!isOdd && layout === 'alternating'\"\n [class.mj-timeline__event--expanded]=\"event.isExpanded\"\n [class.mj-timeline__event--focused]=\"isEventSelected(event, globalIndex)\"\n [attr.data-event-id]=\"event.id\"\n role=\"listitem\"\n [attr.aria-expanded]=\"event.isExpanded\">\n\n <!-- Timeline Marker -->\n <div class=\"mj-timeline__marker\" [style.background-color]=\"getColor(event)\">\n <i [class]=\"getIcon(event)\" class=\"mj-timeline__marker-icon\"></i>\n </div>\n\n <!-- Connector Line -->\n <div class=\"mj-timeline__connector\" [style.background-color]=\"getColor(event)\"></div>\n\n <!-- Date Label (for alternating layout) -->\n <div class=\"mj-timeline__date-label\" *ngIf=\"layout === 'alternating'\">\n {{ formatDate(event.date) }}\n </div>\n\n <!-- Event Card -->\n <div\n class=\"mj-timeline__card\"\n [ngClass]=\"getEffectiveCardConfig(event).cssClass\"\n [style.max-width]=\"getEffectiveCardConfig(event).maxWidth\"\n [style.min-width]=\"getEffectiveCardConfig(event).minWidth\"\n [style.border-left-color]=\"getColor(event)\"\n (click)=\"onEventClick(event, globalIndex, $event)\"\n (mouseenter)=\"onEventMouseEnter(event, globalIndex, $event)\"\n (mouseleave)=\"onEventMouseLeave(event, globalIndex, $event)\">\n\n <!-- Custom Card Template -->\n <ng-container *ngIf=\"cardTemplate; else defaultCard\">\n <ng-container *ngTemplateOutlet=\"cardTemplate; context: {\n event: event,\n group: groups[event.groupIndex]\n }\"></ng-container>\n </ng-container>\n\n <!-- Default Card Template -->\n <ng-template #defaultCard>\n <!-- Card Header -->\n <div class=\"mj-timeline__card-header\">\n <!-- Image (left position) -->\n <div\n class=\"mj-timeline__card-image mj-timeline__card-image--left\"\n *ngIf=\"event.imageUrl && getEffectiveCardConfig(event).imagePosition === 'left'\"\n [class.mj-timeline__card-image--small]=\"getEffectiveCardConfig(event).imageSize === 'small'\"\n [class.mj-timeline__card-image--medium]=\"getEffectiveCardConfig(event).imageSize === 'medium'\"\n [class.mj-timeline__card-image--large]=\"getEffectiveCardConfig(event).imageSize === 'large'\">\n <img [src]=\"event.imageUrl\" [alt]=\"event.title\" />\n </div>\n\n <div class=\"mj-timeline__card-header-content\">\n <!-- Custom Header Template -->\n <ng-container *ngIf=\"headerTemplate; else defaultHeader\">\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { event: event }\"></ng-container>\n </ng-container>\n\n <ng-template #defaultHeader>\n <!-- Icon -->\n <span\n class=\"mj-timeline__card-icon\"\n *ngIf=\"getEffectiveCardConfig(event).showIcon\"\n [style.color]=\"getColor(event)\">\n <i [class]=\"getIcon(event)\"></i>\n </span>\n\n <!-- Title & Subtitle -->\n <div class=\"mj-timeline__card-titles\">\n <h4 class=\"mj-timeline__card-title\">{{ event.title }}</h4>\n <span\n class=\"mj-timeline__card-subtitle\"\n *ngIf=\"event.subtitle && getEffectiveCardConfig(event).showSubtitle\">\n {{ event.subtitle }}\n </span>\n <span\n class=\"mj-timeline__card-date\"\n *ngIf=\"getEffectiveCardConfig(event).showDate && layout !== 'alternating'\">\n {{ formatDate(event.date, getEffectiveCardConfig(event).dateFormat) }}\n </span>\n </div>\n\n <!-- Expand/Collapse Toggle -->\n <button\n class=\"mj-timeline__card-toggle\"\n *ngIf=\"getEffectiveCardConfig(event).collapsible\"\n (click)=\"onToggleExpand(event, globalIndex, $event)\"\n [attr.aria-label]=\"event.isExpanded ? 'Collapse' : 'Expand'\"\n type=\"button\">\n <i [class]=\"event.isExpanded ? 'fa-solid fa-chevron-up' : 'fa-solid fa-chevron-down'\"></i>\n </button>\n </ng-template>\n </div>\n </div>\n\n <!-- Image (top position) -->\n <div\n class=\"mj-timeline__card-image mj-timeline__card-image--top\"\n *ngIf=\"event.imageUrl && getEffectiveCardConfig(event).imagePosition === 'top'\">\n <img [src]=\"event.imageUrl\" [alt]=\"event.title\" />\n </div>\n\n <!-- Card Body -->\n <div\n class=\"mj-timeline__card-body\"\n [class.mj-timeline__card-body--collapsed]=\"!event.isExpanded && getEffectiveCardConfig(event).collapsible\">\n\n <!-- Custom Body Template -->\n <ng-container *ngIf=\"bodyTemplate; else defaultBody\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { event: event }\"></ng-container>\n </ng-container>\n\n <ng-template #defaultBody>\n <!-- Summary Fields (always visible) -->\n <div\n class=\"mj-timeline__card-fields mj-timeline__card-fields--summary\"\n *ngIf=\"getEffectiveCardConfig(event).summaryFields?.length\">\n <ng-container *ngFor=\"let field of getEffectiveCardConfig(event).summaryFields\">\n <div class=\"mj-timeline__card-field\" [ngClass]=\"field.cssClass\">\n <i *ngIf=\"field.icon\" [ngClass]=\"field.icon\" class=\"mj-timeline__card-field-icon\"></i>\n <span *ngIf=\"!field.hideLabel && field.label\" class=\"mj-timeline__card-field-label\">{{ field.label }}:</span>\n <span class=\"mj-timeline__card-field-value\">{{ getFieldValue(event, field) }}</span>\n </div>\n </ng-container>\n </div>\n\n <!-- Description (expanded view) -->\n <div\n class=\"mj-timeline__card-description\"\n *ngIf=\"event.description && event.isExpanded\"\n [class.mj-timeline__card-description--clamped]=\"(getEffectiveCardConfig(event).descriptionMaxLines ?? 0) > 0\"\n [style.-webkit-line-clamp]=\"getEffectiveCardConfig(event).descriptionMaxLines || null\">\n <ng-container *ngIf=\"getEffectiveCardConfig(event).allowHtmlDescription; else plainDescription\">\n <div [innerHTML]=\"event.description\"></div>\n </ng-container>\n <ng-template #plainDescription>\n {{ event.description }}\n </ng-template>\n </div>\n\n <!-- Expanded Fields -->\n <div\n class=\"mj-timeline__card-fields mj-timeline__card-fields--expanded\"\n *ngIf=\"event.isExpanded && getEffectiveCardConfig(event).expandedFields?.length\">\n <ng-container *ngFor=\"let field of getEffectiveCardConfig(event).expandedFields\">\n <div class=\"mj-timeline__card-field\" [ngClass]=\"field.cssClass\">\n <i *ngIf=\"field.icon\" [ngClass]=\"field.icon\" class=\"mj-timeline__card-field-icon\"></i>\n <span *ngIf=\"!field.hideLabel\" class=\"mj-timeline__card-field-label\">{{ field.label || field.fieldName }}:</span>\n <span class=\"mj-timeline__card-field-value\">{{ getFieldValue(event, field) }}</span>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </div>\n\n <!-- Card Actions -->\n <div\n class=\"mj-timeline__card-actions\"\n [class.mj-timeline__card-actions--hover-only]=\"getEffectiveCardConfig(event).actionsOnHover\"\n *ngIf=\"getActions(event).length > 0\">\n\n <!-- Custom Actions Template -->\n <ng-container *ngIf=\"actionsTemplate; else defaultActions\">\n <ng-container *ngTemplateOutlet=\"actionsTemplate; context: {\n event: event,\n actions: getActions(event)\n }\"></ng-container>\n </ng-container>\n\n <ng-template #defaultActions>\n <button\n *ngFor=\"let action of getActions(event)\"\n class=\"mj-timeline__action\"\n [class.mj-timeline__action--primary]=\"action.variant === 'primary'\"\n [class.mj-timeline__action--secondary]=\"action.variant === 'secondary' || !action.variant\"\n [class.mj-timeline__action--danger]=\"action.variant === 'danger'\"\n [class.mj-timeline__action--link]=\"action.variant === 'link'\"\n [ngClass]=\"action.cssClass\"\n [disabled]=\"action.disabled\"\n [title]=\"action.tooltip || ''\"\n (click)=\"onActionClick(event, action, globalIndex, $event)\"\n type=\"button\">\n <i *ngIf=\"action.icon\" [ngClass]=\"action.icon\"></i>\n <span>{{ action.label }}</span>\n </button>\n </ng-template>\n </div>\n </ng-template>\n </div>\n </div>\n</ng-template>\n", styles: ["/**\n * MJ Timeline Component Styles\n * Kendo-inspired design with vertical alternating and horizontal layouts\n */\n\n/* ============================================================================\n CSS VARIABLES (Theming)\n ============================================================================ */\n\nmj-timeline {\n /* Colors */\n --mj-timeline-bg: transparent;\n --mj-timeline-line-color: #d0d7de;\n --mj-timeline-marker-bg: #ffffff;\n --mj-timeline-marker-border: #4678a8;\n --mj-timeline-marker-fill: #4678a8;\n --mj-timeline-card-bg: #ffffff;\n --mj-timeline-card-border: #d0d7de;\n --mj-timeline-card-shadow: 0 1px 3px rgba(31, 35, 40, 0.08);\n --mj-timeline-card-shadow-hover: 0 4px 12px rgba(31, 35, 40, 0.12);\n --mj-timeline-card-radius: 6px;\n --mj-timeline-text-primary: #1f2328;\n --mj-timeline-text-secondary: #656d76;\n --mj-timeline-text-muted: #8c959f;\n --mj-timeline-accent: #4678a8;\n --mj-timeline-accent-light: rgba(70, 120, 168, 0.08);\n --mj-timeline-segment-bg: #4678a8;\n --mj-timeline-segment-text: #ffffff;\n --mj-timeline-focus-ring: 0 0 0 2px rgba(70, 120, 168, 0.3);\n\n /* Sizing */\n --mj-timeline-line-width: 2px;\n --mj-timeline-marker-size: 14px;\n --mj-timeline-card-padding: 16px;\n --mj-timeline-card-max-width: 400px;\n --mj-timeline-card-min-width: 200px;\n --mj-timeline-gap: 24px;\n --mj-timeline-segment-gap: 16px;\n --mj-timeline-axis-offset: 50%;\n\n /* Animation */\n --mj-timeline-transition: 0.15s ease;\n\n display: block;\n width: 100%;\n height: 100%;\n}\n\n/* Dark mode */\n.dark-theme mj-timeline,\n[data-theme=\"dark\"] mj-timeline {\n --mj-timeline-line-color: #3d444d;\n --mj-timeline-card-bg: #161b22;\n --mj-timeline-card-border: #3d444d;\n --mj-timeline-card-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);\n --mj-timeline-text-primary: #e6edf3;\n --mj-timeline-text-secondary: #8b949e;\n --mj-timeline-text-muted: #6e7681;\n --mj-timeline-accent: #58a6ff;\n --mj-timeline-accent-light: rgba(88, 166, 255, 0.1);\n --mj-timeline-marker-border: #58a6ff;\n --mj-timeline-marker-fill: #58a6ff;\n --mj-timeline-segment-bg: #58a6ff;\n}\n\n/* ============================================================================\n MAIN CONTAINER\n ============================================================================ */\n\n.mj-timeline {\n position: relative;\n width: 100%;\n height: 100%;\n padding: 0;\n background: var(--mj-timeline-bg);\n outline: none;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n/* Subtle scrollbar */\n.mj-timeline::-webkit-scrollbar {\n width: 6px;\n}\n\n.mj-timeline::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.mj-timeline::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.15);\n border-radius: 3px;\n}\n\n.mj-timeline::-webkit-scrollbar-thumb:hover {\n background: rgba(0, 0, 0, 0.25);\n}\n\n.mj-timeline:focus-visible {\n box-shadow: inset var(--mj-timeline-focus-ring);\n}\n\n/* ============================================================================\n LOADING & EMPTY STATES\n ============================================================================ */\n\n.mj-timeline__loading {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 24px;\n gap: 12px;\n}\n\n.mj-timeline__loading-spinner {\n width: 24px;\n height: 24px;\n border: 2px solid var(--mj-timeline-line-color);\n border-top-color: var(--mj-timeline-accent);\n border-radius: 50%;\n animation: mj-timeline-spin 0.6s linear infinite;\n}\n\n.mj-timeline__loading-spinner--small {\n width: 14px;\n height: 14px;\n}\n\n.mj-timeline__loading-text {\n color: var(--mj-timeline-text-muted);\n font-size: 13px;\n}\n\n.mj-timeline__loading-more {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 16px;\n gap: 8px;\n color: var(--mj-timeline-text-muted);\n font-size: 12px;\n}\n\n@keyframes mj-timeline-spin {\n to { transform: rotate(360deg); }\n}\n\n.mj-timeline__empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 64px 24px;\n gap: 8px;\n text-align: center;\n}\n\n.mj-timeline__empty-icon {\n font-size: 32px;\n color: var(--mj-timeline-text-muted);\n opacity: 0.4;\n}\n\n.mj-timeline__empty-text {\n color: var(--mj-timeline-text-secondary);\n font-size: 13px;\n}\n\n/* ============================================================================\n TIME SEGMENTS - Year/Month badges on the axis\n ============================================================================ */\n\n.mj-timeline__segment {\n margin-bottom: var(--mj-timeline-segment-gap);\n position: relative;\n}\n\n.mj-timeline__segment:last-child {\n margin-bottom: 0;\n}\n\n.mj-timeline__segment-header {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 6px 16px;\n margin-bottom: var(--mj-timeline-gap);\n background: var(--mj-timeline-segment-bg);\n border-radius: 4px;\n font-weight: 600;\n font-size: 13px;\n color: var(--mj-timeline-segment-text);\n user-select: none;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n position: relative;\n z-index: 10;\n}\n\n.mj-timeline__segment-header--clickable {\n cursor: pointer;\n transition: all var(--mj-timeline-transition);\n}\n\n.mj-timeline__segment-header--clickable:hover {\n filter: brightness(1.1);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n}\n\n.mj-timeline__segment-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n color: inherit;\n font-size: 10px;\n opacity: 0.9;\n transition: transform var(--mj-timeline-transition);\n}\n\n.mj-timeline__segment--collapsed .mj-timeline__segment-toggle {\n transform: rotate(-90deg);\n}\n\n.mj-timeline__segment-label {\n font-size: inherit;\n font-weight: inherit;\n color: inherit;\n}\n\n.mj-timeline__segment-count {\n display: none;\n}\n\n.mj-timeline__segment-line {\n display: none;\n}\n\n.mj-timeline__segment-content {\n overflow: visible;\n transition: max-height 0.25s ease, opacity 0.2s ease;\n padding-top: 8px;\n}\n\n.mj-timeline__segment-content--hidden {\n max-height: 0;\n opacity: 0;\n pointer-events: none;\n}\n\n/* ============================================================================\n TIMELINE AXIS - Vertical line in center\n ============================================================================ */\n\n.mj-timeline__axis {\n position: relative;\n padding-left: 0;\n}\n\n/* Vertical center line */\n.mj-timeline__axis::before {\n content: '';\n position: absolute;\n left: 50%;\n top: 0;\n bottom: 0;\n width: var(--mj-timeline-line-width);\n background: var(--mj-timeline-line-color);\n transform: translateX(-50%);\n}\n\n/* ============================================================================\n TIMELINE EVENT - Alternating left/right by default\n ============================================================================ */\n\n.mj-timeline__event {\n position: relative;\n display: flex;\n align-items: flex-start;\n margin-bottom: var(--mj-timeline-gap);\n width: 100%;\n}\n\n/* Even events (0, 2, 4...) - card on LEFT, date on RIGHT */\n.mj-timeline__event {\n padding-right: calc(50% + 32px);\n justify-content: flex-end;\n}\n\n/* Odd events (1, 3, 5...) - card on RIGHT, date on LEFT */\n.mj-timeline__event--odd {\n padding-right: 0;\n padding-left: calc(50% + 32px);\n justify-content: flex-start;\n flex-direction: row;\n}\n\n.mj-timeline__event:last-child {\n margin-bottom: 0;\n}\n\n/* ============================================================================\n MARKER - Circular dot on the axis\n ============================================================================ */\n\n.mj-timeline__marker {\n position: absolute;\n left: 50%;\n top: 12px;\n transform: translateX(-50%);\n width: var(--mj-timeline-marker-size);\n height: var(--mj-timeline-marker-size);\n background: var(--mj-timeline-marker-fill);\n border: 2px solid var(--mj-timeline-marker-bg);\n border-radius: 50%;\n box-shadow: 0 0 0 2px var(--mj-timeline-marker-fill);\n z-index: 5;\n transition: transform var(--mj-timeline-transition);\n}\n\n.mj-timeline__marker-icon {\n display: none;\n}\n\n.mj-timeline__event:hover .mj-timeline__marker {\n transform: translateX(-50%) scale(1.2);\n}\n\n.mj-timeline__connector {\n display: none;\n}\n\n/* ============================================================================\n DATE LABEL - Positioned opposite the card\n ============================================================================ */\n\n.mj-timeline__date-label {\n position: absolute;\n top: 10px;\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-timeline-text-secondary);\n white-space: nowrap;\n}\n\n/* Even events - date on RIGHT side of axis */\n.mj-timeline__event:not(.mj-timeline__event--odd) .mj-timeline__date-label {\n left: calc(50% + 24px);\n text-align: left;\n}\n\n/* Odd events - date on LEFT side of axis */\n.mj-timeline__event--odd .mj-timeline__date-label {\n right: calc(50% + 24px);\n text-align: right;\n}\n\n/* ============================================================================\n EVENT CARD - Clean design matching Kendo\n ============================================================================ */\n\n.mj-timeline__card {\n background: var(--mj-timeline-card-bg);\n border: 1px solid var(--mj-timeline-card-border);\n border-radius: var(--mj-timeline-card-radius);\n box-shadow: var(--mj-timeline-card-shadow);\n overflow: hidden;\n transition: all var(--mj-timeline-transition);\n cursor: pointer;\n max-width: var(--mj-timeline-card-max-width);\n min-width: var(--mj-timeline-card-min-width);\n width: 100%;\n}\n\n/* Card arrow/pointer toward the axis */\n.mj-timeline__card::before {\n content: '';\n position: absolute;\n top: 14px;\n width: 10px;\n height: 10px;\n background: var(--mj-timeline-card-bg);\n border: 1px solid var(--mj-timeline-card-border);\n transform: rotate(45deg);\n}\n\n/* Even events - arrow points RIGHT toward axis */\n.mj-timeline__event:not(.mj-timeline__event--odd) .mj-timeline__card::before {\n right: -6px;\n border-left: none;\n border-bottom: none;\n}\n\n/* Odd events - arrow points LEFT toward axis */\n.mj-timeline__event--odd .mj-timeline__card::before {\n left: -6px;\n border-right: none;\n border-top: none;\n}\n\n/* Hover state */\n.mj-timeline__card:hover {\n box-shadow: var(--mj-timeline-card-shadow-hover);\n border-color: var(--mj-timeline-accent);\n}\n\n/* Selected/Focused state - prominent highlight with animation */\n.mj-timeline__event--focused .mj-timeline__card {\n background: var(--mj-timeline-accent-light);\n border-color: var(--mj-timeline-accent);\n box-shadow:\n 0 0 0 3px var(--mj-timeline-accent),\n 0 8px 24px rgba(70, 120, 168, 0.25);\n transform: scale(1.02);\n}\n\n/* Selected marker - larger and more prominent */\n.mj-timeline__event--focused .mj-timeline__marker {\n transform: translateX(-50%) scale(1.4);\n box-shadow:\n 0 0 0 3px var(--mj-timeline-marker-fill),\n 0 0 12px rgba(70, 120, 168, 0.5);\n}\n\n/* Pulse animation for selected marker */\n.mj-timeline__event--focused .mj-timeline__marker::after {\n content: '';\n position: absolute;\n top: -4px;\n left: -4px;\n right: -4px;\n bottom: -4px;\n border-radius: 50%;\n border: 2px solid var(--mj-timeline-accent);\n animation: mj-timeline-pulse 1.5s ease-out infinite;\n}\n\n@keyframes mj-timeline-pulse {\n 0% {\n transform: scale(1);\n opacity: 0.8;\n }\n 100% {\n transform: scale(1.8);\n opacity: 0;\n }\n}\n\n/* Selected date label - bolder */\n.mj-timeline__event--focused .mj-timeline__date-label {\n color: var(--mj-timeline-accent);\n font-weight: 600;\n}\n\n/* Card arrow gets accent color when selected */\n.mj-timeline__event--focused .mj-timeline__card::before {\n border-color: var(--mj-timeline-accent);\n background: var(--mj-timeline-accent-light);\n}\n\n/* ============================================================================\n CARD HEADER\n ============================================================================ */\n\n.mj-timeline__card-header {\n display: flex;\n align-items: flex-start;\n padding: var(--mj-timeline-card-padding);\n gap: 10px;\n}\n\n.mj-timeline__card-header-content {\n flex: 1;\n display: flex;\n align-items: flex-start;\n gap: 10px;\n min-width: 0;\n}\n\n.mj-timeline__card-icon {\n display: none;\n}\n\n.mj-timeline__card-titles {\n flex: 1;\n min-width: 0;\n}\n\n.mj-timeline__card-title {\n margin: 0;\n font-size: 15px;\n font-weight: 600;\n color: var(--mj-timeline-text-primary);\n line-height: 1.35;\n}\n\n.mj-timeline__card-subtitle {\n display: block;\n font-size: 13px;\n color: var(--mj-timeline-text-secondary);\n margin-top: 4px;\n}\n\n.mj-timeline__card-date {\n display: block;\n font-size: 12px;\n color: var(--mj-timeline-text-muted);\n margin-top: 6px;\n}\n\n.mj-timeline__card-date::before {\n display: none;\n}\n\n.mj-timeline__card-toggle {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n background: transparent;\n color: var(--mj-timeline-text-muted);\n border-radius: 4px;\n cursor: pointer;\n transition: all var(--mj-timeline-transition);\n font-size: 14px;\n}\n\n.mj-timeline__card-toggle:hover {\n background: var(--mj-timeline-accent-light);\n color: var(--mj-timeline-accent);\n}\n\n/* ============================================================================\n CARD IMAGE\n ============================================================================ */\n\n.mj-timeline__card-image {\n overflow: hidden;\n border-radius: 4px;\n flex-shrink: 0;\n}\n\n.mj-timeline__card-image img {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.mj-timeline__card-image--left.mj-timeline__card-image--small {\n width: 48px;\n height: 48px;\n}\n\n.mj-timeline__card-image--left.mj-timeline__card-image--medium {\n width: 72px;\n height: 72px;\n}\n\n.mj-timeline__card-image--left.mj-timeline__card-image--large {\n width: 96px;\n height: 96px;\n}\n\n.mj-timeline__card-image--top {\n width: calc(100% - 32px);\n max-height: 180px;\n margin: 0 16px 12px;\n}\n\n/* ============================================================================\n CARD BODY\n ============================================================================ */\n\n.mj-timeline__card-body {\n padding: 0 var(--mj-timeline-card-padding) var(--mj-timeline-card-padding);\n}\n\n.mj-timeline__card-body--collapsed {\n display: none;\n}\n\n.mj-timeline__card-description {\n font-size: 13px;\n line-height: 1.6;\n color: var(--mj-timeline-text-secondary);\n margin-bottom: 12px;\n}\n\n.mj-timeline__card-description--clamped {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.mj-timeline__card-description:last-child {\n margin-bottom: 0;\n}\n\n/* ============================================================================\n CARD FIELDS\n ============================================================================ */\n\n.mj-timeline__card-fields {\n display: flex;\n flex-wrap: wrap;\n gap: 4px 12px;\n}\n\n.mj-timeline__card-fields--summary {\n padding-top: 12px;\n border-top: 1px solid var(--mj-timeline-line-color);\n margin-top: 12px;\n}\n\n.mj-timeline__card-fields--expanded {\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid var(--mj-timeline-line-color);\n}\n\n.mj-timeline__card-field {\n display: flex;\n align-items: center;\n gap: 5px;\n font-size: 12px;\n}\n\n.mj-timeline__card-field-icon {\n color: var(--mj-timeline-text-muted);\n font-size: 10px;\n}\n\n.mj-timeline__card-field-label {\n color: var(--mj-timeline-text-muted);\n}\n\n.mj-timeline__card-field-value {\n color: var(--mj-timeline-text-secondary);\n font-weight: 500;\n}\n\n/* ============================================================================\n CARD ACTIONS\n ============================================================================ */\n\n.mj-timeline__card-actions {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n padding: 0 var(--mj-timeline-card-padding) var(--mj-timeline-card-padding);\n justify-content: flex-end;\n}\n\n.mj-timeline__card-actions--hover-only {\n opacity: 0;\n transition: opacity var(--mj-timeline-transition);\n}\n\n.mj-timeline__card:hover .mj-timeline__card-actions--hover-only,\n.mj-timeline__card:focus-within .mj-timeline__card-actions--hover-only {\n opacity: 1;\n}\n\n.mj-timeline__action {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 6px 12px;\n font-size: 12px;\n font-weight: 500;\n border: 1px solid;\n border-radius: 4px;\n cursor: pointer;\n transition: all var(--mj-timeline-transition);\n}\n\n.mj-timeline__action:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.mj-timeline__action i {\n font-size: 10px;\n}\n\n.mj-timeline__action--primary {\n background: var(--mj-timeline-accent);\n border-color: var(--mj-timeline-accent);\n color: #ffffff;\n}\n\n.mj-timeline__action--primary:hover:not(:disabled) {\n filter: brightness(1.1);\n}\n\n.mj-timeline__action--secondary {\n background: transparent;\n border-color: var(--mj-timeline-card-border);\n color: var(--mj-timeline-text-primary);\n}\n\n.mj-timeline__action--secondary:hover:not(:disabled) {\n background: var(--mj-timeline-accent-light);\n border-color: var(--mj-timeline-accent);\n color: var(--mj-timeline-accent);\n}\n\n.mj-timeline__action--danger {\n background: #cf222e;\n border-color: #cf222e;\n color: #ffffff;\n}\n\n.mj-timeline__action--link {\n background: transparent;\n border-color: transparent;\n color: var(--mj-timeline-accent);\n}\n\n.mj-timeline__action--link:hover:not(:disabled) {\n text-decoration: underline;\n}\n\n/* ============================================================================\n VIRTUAL SCROLL\n ============================================================================ */\n\n.mj-timeline-scroll-sentinel {\n height: 1px;\n width: 100%;\n visibility: hidden;\n}\n\n/* ============================================================================\n SINGLE LAYOUT - Cards only on right side\n ============================================================================ */\n\n.mj-timeline--single .mj-timeline__axis::before {\n left: 24px;\n transform: none;\n}\n\n.mj-timeline--single .mj-timeline__segment-header {\n margin-left: 12px;\n}\n\n.mj-timeline--single .mj-timeline__event {\n padding-right: 0;\n padding-left: 56px;\n justify-content: flex-start;\n}\n\n.mj-timeline--single .mj-timeline__event--odd {\n padding-left: 56px;\n flex-direction: row;\n}\n\n.mj-timeline--single .mj-timeline__marker {\n left: 24px;\n transform: translateX(-50%);\n}\n\n.mj-timeline--single .mj-timeline__date-label {\n display: none;\n}\n\n.mj-timeline--single .mj-timeline__card::before {\n left: -6px;\n right: auto;\n border-right: none;\n border-top: none;\n border-left: 1px solid var(--mj-timeline-card-border);\n border-bottom: 1px solid var(--mj-timeline-card-border);\n}\n\n.mj-timeline--single .mj-timeline__card {\n max-width: none;\n}\n\n/* ============================================================================\n ALTERNATING LAYOUT - Explicit class (same as default vertical)\n ============================================================================ */\n\n.mj-timeline--alternating .mj-timeline__segment-header {\n left: 50%;\n transform: translateX(-50%);\n}\n\n/* ============================================================================\n HORIZONTAL LAYOUT\n ============================================================================ */\n\n.mj-timeline--horizontal {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n align-items: flex-start;\n overflow-x: auto;\n overflow-y: hidden;\n padding: 80px 40px 24px;\n min-width: 100%;\n}\n\n.mj-timeline--horizontal .mj-timeline__segment {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n margin-bottom: 0;\n margin-right: 40px;\n position: relative;\n}\n\n.mj-timeline--horizontal .mj-timeline__segment:last-child {\n margin-right: 0;\n}\n\n.mj-timeline--horizontal .mj-timeline__segment-header {\n position: absolute;\n top: -56px;\n left: 0;\n margin-bottom: 0;\n white-space: nowrap;\n}\n\n.mj-timeline--horizontal .mj-timeline__segment-content {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n}\n\n.mj-timeline--horizontal .mj-timeline__axis {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n padding-left: 0;\n min-width: max-content;\n gap: 0;\n}\n\n/* Horizontal axis line */\n.mj-timeline--horizontal .mj-timeline__axis::before {\n left: 0;\n right: 0;\n top: 0;\n bottom: auto;\n width: 100%;\n height: var(--mj-timeline-line-width);\n transform: none;\n}\n\n.mj-timeline--horizontal .mj-timeline__event {\n flex-direction: column;\n align-items: center;\n margin-bottom: 0;\n margin-right: 48px;\n padding: 0;\n padding-top: 32px;\n min-width: 180px;\n max-width: 280px;\n width: auto;\n}\n\n.mj-timeline--horizontal .mj-timeline__event--odd {\n padding-left: 0;\n flex-direction: column;\n}\n\n.mj-timeline--horizontal .mj-timeline__event:last-child {\n margin-right: 0;\n}\n\n.mj-timeline--horizontal .mj-timeline__marker {\n position: absolute;\n left: 50%;\n /* Position so marker is centered on the axis line (top: 0 of axis) */\n /* Event has padding-top: 32px, marker is 14px, so top: -(32 + 7) = -39px for center */\n top: calc(-32px - var(--mj-timeline-marker-size) / 2);\n transform: translateX(-50%);\n margin: 0;\n}\n\n.mj-timeline--horizontal .mj-timeline__event:hover .mj-timeline__marker {\n transform: translateX(-50%) scale(1.2);\n}\n\n.mj-timeline--horizontal .mj-timeline__date-label {\n position: absolute;\n top: -40px;\n left: 50%;\n right: auto;\n transform: translateX(-50%);\n text-align: center;\n font-size: 12px;\n}\n\n.mj-timeline--horizontal .mj-timeline__card {\n max-width: none;\n width: 100%;\n min-width: 0;\n}\n\n.mj-timeline--horizontal .mj-timeline__card::before {\n display: none;\n}\n\n/* Horizontal focused marker override */\n.mj-timeline--horizontal .mj-timeline__event--focused .mj-timeline__marker {\n transform: translateX(-50%) scale(1.4);\n}\n\n/* Horizontal collapsed segment - rotate 90\u00B0 CCW and compress */\n.mj-timeline--horizontal .mj-timeline__segment--collapsed {\n flex: 0 0 auto;\n width: 32px;\n min-width: 32px;\n margin-right: 4px;\n}\n\n.mj-timeline--horizontal .mj-timeline__segment--collapsed .mj-timeline__segment-header {\n writing-mode: vertical-rl;\n text-orientation: mixed;\n transform: rotate(180deg);\n white-space: nowrap;\n padding: 8px 4px;\n margin: 0;\n top: 0;\n position: relative;\n}\n\n.mj-timeline--horizontal .mj-timeline__segment--collapsed .mj-timeline__segment-content {\n display: none;\n}\n\n/* ============================================================================\n RESPONSIVE\n ============================================================================ */\n\n@media (max-width: 900px) {\n /* Force single layout on smaller screens */\n .mj-timeline--alternating .mj-timeline__axis::before {\n left: 24px;\n transform: none;\n }\n\n .mj-timeline--alternating .mj-timeline__segment-header {\n left: auto;\n transform: none;\n margin-left: 12px;\n }\n\n .mj-timeline--alternating .mj-timeline__event {\n padding-right: 0;\n padding-left: 56px;\n justify-content: flex-start;\n }\n\n .mj-timeline--alternating .mj-timeline__event--odd {\n padding-left: 56px;\n padding-right: 0;\n flex-direction: row;\n }\n\n .mj-timeline--alternating .mj-timeline__marker {\n left: 24px;\n transform: translateX(-50%);\n }\n\n .mj-timeline--alternating .mj-timeline__event:hover .mj-timeline__marker {\n transform: translateX(-50%) scale(1.2);\n }\n\n .mj-timeline--alternating .mj-timeline__date-label {\n display: none;\n }\n\n .mj-timeline--alternating .mj-timeline__card::before {\n left: -6px;\n right: auto;\n border-right: none;\n border-top: none;\n border-left: 1px solid var(--mj-timeline-card-border);\n border-bottom: 1px solid var(--mj-timeline-card-border);\n }\n\n .mj-timeline--alternating .mj-timeline__card {\n max-width: none;\n }\n}\n\n@media (max-width: 600px) {\n mj-timeline {\n --mj-timeline-card-padding: 12px;\n --mj-timeline-gap: 16px;\n --mj-timeline-marker-size: 12px;\n }\n\n .mj-timeline {\n padding: 16px 12px;\n }\n\n .mj-timeline__card-title {\n font-size: 14px;\n }\n\n .mj-timeline--horizontal .mj-timeline__event {\n min-width: 160px;\n max-width: 220px;\n margin-right: 32px;\n }\n}\n\n/* Touch devices */\n@media (hover: none) and (pointer: coarse) {\n .mj-timeline__card-actions--hover-only {\n opacity: 1;\n }\n\n .mj-timeline__action {\n min-height: 40px;\n }\n}\n\n/* Reduced motion */\n@media (prefers-reduced-motion: reduce) {\n .mj-timeline__card,\n .mj-timeline__marker,\n .mj-timeline__segment-toggle {\n transition: none;\n }\n}\n"] }]
|
|
1884
2007
|
}], () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], { groups: [{
|
|
1885
2008
|
type: Input
|
|
1886
2009
|
}], allowLoad: [{
|
|
@@ -1911,6 +2034,8 @@ export class TimelineComponent {
|
|
|
1911
2034
|
type: Input
|
|
1912
2035
|
}], enableKeyboardNavigation: [{
|
|
1913
2036
|
type: Input
|
|
2037
|
+
}], selectedEventId: [{
|
|
2038
|
+
type: Input
|
|
1914
2039
|
}], beforeEventClick: [{
|
|
1915
2040
|
type: Output
|
|
1916
2041
|
}], beforeEventExpand: [{
|
|
@@ -1968,5 +2093,5 @@ export class TimelineComponent {
|
|
|
1968
2093
|
type: ViewChild,
|
|
1969
2094
|
args: ['scrollContainer']
|
|
1970
2095
|
}] }); })();
|
|
1971
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TimelineComponent, { className: "TimelineComponent", filePath: "src/lib/component/timeline.component.ts", lineNumber:
|
|
2096
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TimelineComponent, { className: "TimelineComponent", filePath: "src/lib/component/timeline.component.ts", lineNumber: 143 }); })();
|
|
1972
2097
|
//# sourceMappingURL=timeline.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.component.js","sourceRoot":"","sources":["../../../src/lib/component/timeline.component.ts","../../../src/lib/component/timeline.component.html"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,SAAS,EACT,KAAK,EACL,MAAM,EACN,YAAY,EAKZ,SAAS,EACT,YAAY,EAGZ,uBAAuB,EAExB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAaL,mBAAmB,EACnB,6BAA6B,EAC7B,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAElB,OAAO,EAAiB,aAAa,EAAE,MAAM,mBAAmB,CAAC;;;;;;;;;;;;;;;;;ICtB3D,wBAAiE;;;IADnE,6BAA2D;IACzD,mHAAkD;;;;IAAnC,cAAiC;IAAjC,yDAAiC;;;IAGhD,+BAAkC;IAChC,0BAAgD;IAChD,gCAAwC;IAAA,YAAoB;IAC9D,AAD8D,iBAAO,EAC/D;;;IADoC,eAAoB;IAApB,2CAAoB;;;IAPlE,6BAAkD;IAIhD,AAHA,oGAA2D,qHAG9B;;;;;IAHd,cAAuB;IAAA,AAAvB,6CAAuB,+BAAmB;;;IAcvD,wBAA+D;;;IADjE,6BAAuD;IACrD,mHAAgD;;;;IAAjC,cAA+B;IAA/B,uDAA+B;;;IAG9C,+BAAgC;IAC9B,wBAA2D;IAC3D,gCAAsC;IAAA,YAAkB;IAC1D,AAD0D,iBAAO,EAC3D;;;IAFD,cAAmB;IAAnB,+BAAmB;IACgB,eAAkB;IAAlB,yCAAkB;;;IAP9D,6BAA4E;IAI1E,AAHA,oGAAuD,qHAG5B;;;;;IAHZ,cAAqB;IAAA,AAArB,2CAAqB,6BAAiB;;;IAgC7C,wBAAsG;;;IADxG,6BAAuE;IACrE,wIAAuF;;;;;IAAxE,cAAyC;IAAA,AAAzC,+DAAyC,mEAA6B;;;IAIrF,gCAAsE;IACpE,oBAA+F;IACjG,iBAAO;;;IADF,cAAuF;IAAvF,+FAAuF;;;IAD5F,uHAAsE;IAGtE,gCAAyC;IAAA,YAAmB;IAAA,iBAAO;IACnE,gCAAyC;IAAA,YAA8E;IAAA,iBAAO;IAC9H,2BAA+C;;;;IALJ,iDAAyB;IAG3B,eAAmB;IAAnB,sCAAmB;IACnB,eAA8E;IAA9E,6GAA8E;;;IAcrH,wBAKkB;;;IANpB,6BAAqH;IACnH,wIAKG;;;;;;;;IALY,cAA6B;IAAA,AAA7B,gDAA6B,2HAK3C;;;;IApCP,AAPF,+BAI4C,cASiB;IAHzD,sOAAS,iCAAuB,KAAC;IASjC,AAJA,yHAAuE,0IAIpC;IAQrC,iBAAM;IAQJ,AALF,+BAGqE,cAEpC;IAE7B,yHAAqH;IAU3H,AADE,AADE,iBAAM,EACF,EACF;;;;;;IA5CJ,yEAA6D;;IAM3D,cAAoE;IAApE,oFAAoE;;IAMrD,cAA6B;IAAA,AAA7B,mDAA6B,sCAAyB;IAkBrE,eAAkE;IAAlE,8EAAkE;IADlE,0DAAwC;IAKN,eAAmB;IAAA,AAAnB,2CAAmB,uCAAyB;;;IAtCpF,6BAAiD;IAC/C,kGAI4C;;;;IAHtB,cAAa;IAAA,AAAb,yCAAa,4CAA8B;;;IAqD7D,wBAKkB;;;IANpB,6BAAgH;IAC9G,kIAKG;;;;;;;;IALY,cAA6B;IAAA,AAA7B,gDAA6B,6GAK3C;;;IARP,6BAAiD;IAC/C,+BAA+B;IAC7B,mHAAgH;IAQlH,iBAAM;;;;IAR4B,eAAc;IAAA,AAAd,0CAAc,uCAAyB;;;IAzD7E,6BAA4D;IAuD1D,AApDA,oGAAiD,uFAoDA;;;;IApDlC,cAAgC;IAAhC,wDAAgC;IAoDhC,cAAgC;IAAhC,wDAAgC;;;IAgBjD,0BAGM;;;IAGN,+BAEsE;IACpE,0BAAoF;IACpF,4BAAM;IAAA,YAAkC;IAC1C,AAD0C,iBAAO,EAC3C;;;IADE,eAAkC;IAAlC,yDAAkC;;;IA0BxC,+BAAsE;IACpE,YACF;IAAA,iBAAM;;;;IADJ,cACF;IADE,kEACF;;;IAeI,wBAGkB;;;IAJpB,6BAAqD;IACnD,kHAGG;;;;;IAHY,cAAgC;IAAA,AAAhC,sDAAgC,wGAG9C;;;IAQC,+BAK+F;IAC7F,0BAAkD;IACpD,iBAAM;;;;IAFJ,AADA,AADA,gHAA4F,oGACE,kGACF;IACvF,cAAsB;IAAC,AAAvB,0DAAsB,wBAAoB;;;IAM7C,wBAA2F;;;IAD7F,6BAAyD;IACvD,gIAA4E;;;;;IAA7D,cAAkC;IAAA,AAAlC,wDAAkC,mEAAyB;;;IAK1E,gCAGkC;IAChC,oBAAgC;IAClC,iBAAO;;;;IAFL,mDAA+B;IAC5B,cAAwB;IAAxB,wCAAwB;;;IAM3B,gCAEuE;IACrE,YACF;IAAA,iBAAO;;;IADL,cACF;IADE,mDACF;;;IACA,gCAE6E;IAC3E,YACF;IAAA,iBAAO;;;;IADL,cACF;IADE,uHACF;;;;IAIF,kCAKgB;IAFd,oVAAS,yDAA0C,KAAC;IAGpD,oBAA0F;IAC5F,iBAAS;;;;IADJ,cAAkF;IAAlF,2FAAkF;;;IA7BvF,+GAGkC;IAMhC,AADF,+BAAsC,aACA;IAAA,YAAiB;IAAA,iBAAK;IAM1D,AALA,+GAEuE,kGAKM;IAG/E,iBAAM;IAGN,mHAKgB;;;;IA1Bb,wEAA4C;IAOT,eAAiB;IAAjB,qCAAiB;IAGlD,cAAkE;IAAlE,kGAAkE;IAKlE,cAAwE;IAAxE,2GAAwE;IAQ1E,cAA+C;IAA/C,2EAA+C;;;IAWxD,+BAEkF;IAChF,0BAAkD;IACpD,iBAAM;;;IADC,cAAsB;IAAC,AAAvB,0DAAsB,wBAAoB;;;IAU7C,wBAAyF;;;IAD3F,6BAAqD;IACnD,gIAA0E;;;;;IAA3D,cAAgC;IAAA,AAAhC,sDAAgC,mEAAyB;;;IAUlE,wBAAoF;;;IAA9D,6BAAoB;;;IAC1C,gCAAoF;IAAA,YAAkB;IAAA,iBAAO;;;IAAzB,cAAkB;IAAlB,+CAAkB;;;IAH1G,6BAAgF;IAC9E,+BAA8D;IAE5D,AADA,8HAAgF,uHACI;IACpF,gCAA4C;IAAA,YAAiC;IAC/E,AAD+E,iBAAO,EAChF;;;;;;IAJ+B,cAAwB;IAAxB,iCAAwB;IACvD,cAAgB;IAAhB,qCAAgB;IACb,cAAqC;IAArC,8DAAqC;IACA,eAAiC;IAAjC,gEAAiC;;;IAPnF,+BAE8D;IAC5D,qIAAgF;IAOlF,iBAAM;;;;IAP4B,cAA8C;IAA9C,gFAA8C;;;IAe9E,6BAAgG;IAC9F,0BAA2C;;;;IAAtC,cAA+B;IAA/B,oEAA+B;;;IAGpC,YACF;;;IADE,sDACF;;;IAVF,+BAIyF;IAIvF,AAHA,qIAAgG,sJAGjE;IAGjC,iBAAM;;;;;;IAPJ,0GAAsF;IADtF,2LAA6G;IAE9F,cAA0D;IAAA,AAA1D,oFAA0D,kCAAqB;;;IAc1F,wBAAoF;;;IAA9D,6BAAoB;;;IAC1C,gCAAqE;IAAA,YAAqC;IAAA,iBAAO;;;IAA5C,cAAqC;IAArC,sEAAqC;;;IAH9G,6BAAiF;IAC/E,+BAA8D;IAE5D,AADA,8HAAgF,uHACX;IACrE,gCAA4C;IAAA,YAAiC;IAC/E,AAD+E,iBAAO,EAChF;;;;;;IAJ+B,cAAwB;IAAxB,iCAAwB;IACvD,cAAgB;IAAhB,qCAAgB;IACb,cAAsB;IAAtB,2CAAsB;IACe,eAAiC;IAAjC,gEAAiC;;;IAPnF,+BAEmF;IACjF,qIAAiF;IAOnF,iBAAM;;;;IAP4B,cAA+C;IAA/C,iFAA+C;;;IAHjF,AAdA,AAbA,6GAE8D,gGAe2B,gGAYN;;;;;;IA3BhF,2HAAyD;IAazD,cAA2C;IAA3C,oEAA2C;IAc3C,cAA8E;IAA9E,sJAA8E;;;IAoBjF,wBAGkB;;;IAJpB,6BAA2D;IACzD,uIAGG;;;;;IAHY,cAAmC;IAAA,AAAnC,yDAAmC,iGAGjD;;;IAgBC,oBAAiD;;;IAA1B,8BAAqB;;;;IAZ9C,kCAWgB;IADd,wXAAS,oEAAiD,KAAC;IAE3D,yHAA6C;IAC7C,4BAAM;IAAA,YAAkB;IAC1B,AAD0B,iBAAO,EACxB;;;IAPP,kCAAyB;IADzB,AADA,AADA,AADA,gFAAmE,6FACuB,gEACzB,4DACJ;IAG7D,AADA,8CAA4B,mCACE;IAG1B,cAAiB;IAAjB,sCAAiB;IACf,eAAkB;IAAlB,sCAAkB;;;IAb1B,2HAWgB;;;;IAVK,sDAAoB;;;IAf7C,+BAGuC;IAUrC,AAPA,wHAA2D,yIAO9B;IAiB/B,iBAAM;;;;;IA5BJ,gHAA4F;IAI7E,cAAuB;IAAA,AAAvB,6CAAuB,gCAAmB;;;IAzH3D,+BAAsC;IAEpC,+FAK+F;IAI/F,+BAA8C;IAM5C,AAJA,iHAAyD,kIAI7B;IAmChC,AADE,iBAAM,EACF;IAGN,+FAEkF;IAKlF,+BAE6G;IAO3G,AAJA,iHAAqD,kIAI3B;IAyC5B,iBAAM;IAGN,iGAGuC;;;;;;IAlHlC,cAA8E;IAA9E,8GAA8E;IAShE,eAAsB;IAAA,AAAtB,4CAAsB,+BAAkB;IA4CxD,eAA6E;IAA7E,6GAA6E;IAO9E,cAA0G;IAA1G,kIAA0G;IAG3F,cAAoB;IAAA,AAApB,0CAAoB,6BAAgB;IAmDlD,eAAkC;IAAlC,8DAAkC;;;;IAxJzC,AAXF,+BAQ0C,cAGoC;IAC1E,wBAAiE;IACnE,iBAAM;IAGN,0BAAqF;IAGrF,iFAAsE;IAKtE,+BAQ+D;IAA7D,AADA,AADA,uRAAS,uDAAwC,KAAC,oRACpC,4DAA6C,KAAC,oRAC9C,4DAA6C,KAAC;IAW5D,AARA,mGAAqD,qHAQ3B;IAsJ9B,AADE,iBAAM,EACF;;;;;;;IA5LJ,AADA,AADA,AADA,uFAAmE,2EACE,sDACd,6EACgB;;IAMtC,cAA0C;IAA1C,8DAA0C;IACtE,cAAwB;IAAxB,wCAAwB;IAIO,cAA0C;IAA1C,8DAA0C;IAGxC,cAA8B;IAA9B,sDAA8B;IAOlE,cAAgD;IAAhD,gEAAgD;IAGhD,AADA,AADA,8EAA0D,gEACA,iDACf;IAM5B,cAAoB;IAAA,AAApB,0CAAoB,6BAAgB;;ADxGzD,+EAA+E;AAC/E,kCAAkC;AAClC,+EAA+E;AAE/E,MAAM,WAAW,GAAG;IAClB,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,MAAM;IACjB,SAAS,CAAE,OAAO;CACnB,CAAC;AAEF,MAAM,aAAa,GAAG;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,qBAAqB;IACrB,kBAAkB;IAClB,mBAAmB;CACpB,CAAC;AAEF,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAOH,MAAM,OAAO,iBAAiB;IA8QlB;IACA;IACA;IA/QV,+EAA+E;IAC/E,gBAAgB;IAChB,+EAA+E;IAE/E;;;OAGG;IACH,IACI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,IAAI,MAAM,CAAC,KAAyB;QAClC,IAAI,CAAC,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IACO,OAAO,GAAuB,EAAE,CAAC;IAEzC;;;;OAIG;IACH,IACI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACD,IAAI,SAAS,CAAC,KAAc;QAC1B,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,KAAK,IAAI,WAAW,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAClE,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IACO,UAAU,GAAG,IAAI,CAAC;IAE1B,+EAA+E;IAC/E,kBAAkB;IAClB,+EAA+E;IAE/E;;;;;OAKG;IACM,WAAW,GAAwB,UAAU,CAAC;IAEvD;;;;;OAKG;IACM,MAAM,GAAmB,QAAQ,CAAC;IAE3C;;;;;OAKG;IACM,SAAS,GAAsB,MAAM,CAAC;IAE/C;;;OAGG;IACM,eAAe,GAAwB,OAAO,CAAC;IAExD,+EAA+E;IAC/E,yBAAyB;IACzB,+EAA+E;IAE/E;;;OAGG;IACM,iBAAiB,GAAuB,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAE5E,+EAA+E;IAC/E,6BAA6B;IAC7B,+EAA+E;IAE/E;;OAEG;IACM,aAAa,GAAwB,EAAE,GAAG,6BAA6B,EAAE,CAAC;IAEnF,+EAA+E;IAC/E,oBAAoB;IACpB,+EAA+E;IAE/E;;;OAGG;IACM,mBAAmB,GAAG,IAAI,CAAC;IAEpC;;;OAGG;IACM,uBAAuB,GAAG,IAAI,CAAC;IAExC,+EAA+E;IAC/E,kCAAkC;IAClC,+EAA+E;IAE/E;;;OAGG;IACM,YAAY,GAAG,sBAAsB,CAAC;IAE/C;;;OAGG;IACM,SAAS,GAAG,8BAA8B,CAAC;IAEpD;;;OAGG;IACM,cAAc,GAAG,qBAAqB,CAAC;IAEhD,+EAA+E;IAC/E,yBAAyB;IACzB,+EAA+E;IAE/E;;;OAGG;IACM,SAAS,GAAG,UAAU,CAAC;IAEhC;;;OAGG;IACM,wBAAwB,GAAG,IAAI,CAAC;IAEzC,+EAA+E;IAC/E,gDAAgD;IAChD,+EAA+E;IAE/E,+EAA+E;IACrE,gBAAgB,GAAG,IAAI,YAAY,EAA2B,CAAC;IAEzE,4EAA4E;IAClE,iBAAiB,GAAG,IAAI,YAAY,EAA4B,CAAC;IAE3E,8EAA8E;IACpE,mBAAmB,GAAG,IAAI,YAAY,EAA8B,CAAC;IAE/E,0EAA0E;IAChE,gBAAgB,GAAG,IAAI,YAAY,EAA2B,CAAC;IAEzE,kFAAkF;IACxE,iBAAiB,GAAG,IAAI,YAAY,EAA4B,CAAC;IAE3E,6EAA6E;IACnE,mBAAmB,GAAG,IAAI,YAAY,EAA2B,CAAC;IAE5E,+EAA+E;IACrE,qBAAqB,GAAG,IAAI,YAAY,EAA6B,CAAC;IAEhF,0EAA0E;IAChE,UAAU,GAAG,IAAI,YAAY,EAAkB,CAAC;IAE1D,+EAA+E;IAC/E,yBAAyB;IACzB,+EAA+E;IAE/E,8CAA8C;IACpC,eAAe,GAAG,IAAI,YAAY,EAA0B,CAAC;IAEvE,2CAA2C;IACjC,gBAAgB,GAAG,IAAI,YAAY,EAA2B,CAAC;IAEzE,6CAA6C;IACnC,kBAAkB,GAAG,IAAI,YAAY,EAA6B,CAAC;IAE7E,yCAAyC;IAC/B,eAAe,GAAG,IAAI,YAAY,EAA0B,CAAC;IAEvE,iDAAiD;IACvC,gBAAgB,GAAG,IAAI,YAAY,EAA2B,CAAC;IAEzE,4CAA4C;IAClC,kBAAkB,GAAG,IAAI,YAAY,EAA0B,CAAC;IAE1E,8CAA8C;IACpC,oBAAoB,GAAG,IAAI,YAAY,EAA4B,CAAC;IAE9E,4CAA4C;IAClC,SAAS,GAAG,IAAI,YAAY,EAAiB,CAAC;IAExD,+EAA+E;IAC/E,wCAAwC;IACxC,+EAA+E;IAE/E,iEAAiE;IACnC,YAAY,CAAuE;IAEjH,0DAA0D;IAC1B,cAAc,CAA8C;IAE5F,wDAAwD;IAC1B,YAAY,CAA8C;IAExF,oEAAoE;IACnC,eAAe,CAAyE;IAEzH,+DAA+D;IACxB,qBAAqB,CAA6C;IAEzG,uCAAuC;IACR,aAAa,CAAqB;IAEjE,yCAAyC;IACR,eAAe,CAAqB;IAErE,+EAA+E;IAC/E,gBAAgB;IAChB,+EAA+E;IAEjD,eAAe,CAA2B;IAExE,+EAA+E;IAC/E,oBAAoB;IACpB,+EAA+E;IAE/E,yCAAyC;IACzC,QAAQ,GAAsB,EAAE,CAAC;IAEjC,wDAAwD;IACxD,SAAS,GAAyB,EAAE,CAAC;IAErC,4BAA4B;IAC5B,WAAW,GAAuB,EAAE,GAAG,4BAA4B,EAAE,CAAC;IAEtE,wCAAwC;IACxC,aAAa,GAAG,KAAK,CAAC;IAEtB,sCAAsC;IACtC,SAAS,GAAG,KAAK,CAAC;IAElB,kEAAkE;IAClE,iBAAiB,GAAG,CAAC,CAAC,CAAC;IAEvB,+EAA+E;IAC/E,qBAAqB;IACrB,+EAA+E;IAEvE,YAAY,GAAG,KAAK,CAAC;IACrB,UAAU,GAAG,KAAK,CAAC;IACnB,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;IAChC,QAAQ,GAAG,IAAI,OAAO,EAAS,CAAC;IAChC,qBAAqB,CAAwB;IAErD,+EAA+E;IAC/E,cAAc;IACd,+EAA+E;IAE/E,YACU,GAAsB,EACtB,UAAsB,EACtB,MAAc;QAFd,QAAG,GAAH,GAAG,CAAmB;QACtB,eAAU,GAAV,UAAU,CAAY;QACtB,WAAM,GAAN,MAAM,CAAQ;IACrB,CAAC;IAEJ,+EAA+E;IAC/E,kBAAkB;IAClB,+EAA+E;IAE/E,QAAQ;QACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,+CAA+C;QAC/C,IAAI,CAAC,QAAQ;aACV,IAAI,CACH,YAAY,CAAC,GAAG,CAAC,EACjB,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;aACA,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;QAED,0DAA0D;QAC1D,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACnC,CAAC;IAED,WAAW;QACT,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QAE1B,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,iBAAiB;IACjB,+EAA+E;IAE/E;;;OAGG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,oBAAoB;QACpB,MAAM,UAAU,GAAmB;YACjC,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,aAAa,EAAE,KAAK;SACrB,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEjC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAExB,IAAI,CAAC;YACH,sBAAsB;YACtB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,4BAA4B,EAAE,CAAC;YAEvD,4BAA4B;YAC5B,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAE3B,sBAAsB;YACtB,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAE1B,mBAAmB;YACnB,MAAM,SAAS,GAAkB;gBAC/B,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;gBACnC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;gBAClC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAClC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO;aAClC,CAAC;YACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YAErD,MAAM,SAAS,GAAkB;gBAC/B,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;gBACtE,YAAY,EAAE,CAAC;gBACf,WAAW,EAAE,CAAC;gBACd,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAClC,OAAO,EAAE,KAAK;aACf,CAAC;YACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YAC3F,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,oBAAoB;QACpB,MAAM,UAAU,GAAmB;YACjC,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,aAAa,EAAE,IAAI;YACnB,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW;YACpC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS;SACxC,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEjC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAExB,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAE5C,kCAAkC;YAClC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAE3B,iCAAiC;YACjC,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,aAAa,CAAC;YAEvD,mBAAmB;YACnB,MAAM,SAAS,GAAkB;gBAC/B,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,QAAQ;gBACtB,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;gBAClC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAClC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO;aAClC,CAAC;YACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,KAAK,CAAC;YACnC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,eAAe;QACb,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;gBACtB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBACxB,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAAe;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YAC/B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,OAAe;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,KAAK,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,OAAe,EAAE,WAA2B,QAAQ;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,mBAAmB,OAAO,IAAI,CAAC,CAAC;QAC5F,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,IAAU,EAAE,WAA2B,QAAQ;QAC1D,wCAAwC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACrC,IAAI,IAAI,CAAC,CAAC,SAAS,IAAI,IAAI,GAAG,CAAC,CAAC,OAAO,CACxC,CAAC;QAEF,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CACzD,wBAAwB,OAAO,CAAC,KAAK,IAAI,CAC1C,CAAC;YACF,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,OAAe;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,+EAA+E;IAC/E,qCAAqC;IACrC,+EAA+E;IAE/E;;OAEG;IACH,YAAY,CAAC,KAAyB,EAAE,KAAa,EAAE,QAAe;QACpE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE7C,oBAAoB;QACpB,MAAM,UAAU,GAA4B;YAC1C,MAAM,EAAE,KAAK;YACb,KAAK;YACL,KAAK;YACL,KAAK;YACL,QAAQ;SACT,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEvC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,0DAA0D;QAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;YAC3B,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnD,CAAC;QAED,mBAAmB;QACnB,MAAM,SAAS,GAA2B;YACxC,OAAO,EAAE,IAAI;YACb,KAAK;YACL,KAAK;YACL,KAAK;YACL,QAAQ;SACT,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,KAAyB,EAAE,KAAa,EAAE,QAAe;QACtE,QAAQ,CAAC,eAAe,EAAE,CAAC;QAC3B,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,KAAyB,EAAE,KAAa,EAAE,QAAe;QACzE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE7C,MAAM,UAAU,GAA4B;YAC1C,MAAM,EAAE,KAAK;YACb,KAAK;YACL,KAAK;YACL,KAAK;YACL,QAAQ;YACR,UAAU,EAAE,OAAO;SACpB,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEvC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,SAAS,GAA2B;gBACxC,OAAO,EAAE,IAAI;gBACb,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,QAAQ;gBACR,UAAU,EAAE,OAAO;aACpB,CAAC;YACF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,KAAyB,EAAE,KAAa,EAAE,QAAe;QACzE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE7C,MAAM,UAAU,GAA4B;YAC1C,MAAM,EAAE,KAAK;YACb,KAAK;YACL,KAAK;YACL,KAAK;YACL,QAAQ;YACR,UAAU,EAAE,OAAO;SACpB,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEvC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,SAAS,GAA2B;gBACxC,OAAO,EAAE,IAAI;gBACb,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,QAAQ;gBACR,UAAU,EAAE,OAAO;aACpB,CAAC;YACF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,KAAyB,EAAE,MAAsB,EAAE,KAAa,EAAE,QAAe;QAC7F,QAAQ,CAAC,eAAe,EAAE,CAAC;QAE3B,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE7C,MAAM,UAAU,GAA6B;YAC3C,MAAM,EAAE,KAAK;YACb,KAAK;YACL,KAAK;YACL,KAAK;YACL,QAAQ;YACR,MAAM;SACP,CAAC;QACF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAExC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,SAAS,GAA4B;gBACzC,OAAO,EAAE,IAAI;gBACb,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,QAAQ;gBACR,MAAM;aACP,CAAC;YACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,OAAwB;QACrC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAAY;QACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,KAAoB;QAC5B,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QAED,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC;YAClB,KAAK,WAAW,CAAC;YACjB,KAAK,YAAY;gBACf,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,MAAM;YAER,KAAK,SAAS,CAAC;YACf,KAAK,WAAW;gBACd,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,MAAM;YAER,KAAK,OAAO,CAAC;YACb,KAAK,GAAG;gBACN,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,MAAM;YAER,KAAK,QAAQ;gBACX,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,MAAM;YAER,KAAK,MAAM;gBACT,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM;YAER,KAAK,KAAK;gBACR,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,MAAM;QACV,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,mBAAmB;IACnB,+EAA+E;IAE/E;;OAEG;IACH,sBAAsB,CAAC,KAAyB;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC7C,OAAO;YACL,GAAG,IAAI,CAAC,iBAAiB;YACzB,GAAG,KAAK,EAAE,UAAU;YACpB,GAAG,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,MAAM,CAAC;SACjD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAAyB;QAChC,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAC5B,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,KAAK,EAAE,gBAAgB,KAAK,QAAQ,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YAC/D,OAAO,KAAK,CAAC,YAAY,CAAC;QAC5B,CAAC;QAED,OAAO,WAAW,CAAC,KAAK,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,KAAyB;QAC/B,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;QAC3B,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,KAAK,EAAE,eAAe,KAAK,QAAQ,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC,WAAW,CAAC;QAC3B,CAAC;QAED,OAAO,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,KAAyB;QAClC,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;QAC9B,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACtD,OAAO,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAAU,EAAE,MAAe;QACpC,MAAM,GAAG,GAAG,MAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,IAAI,aAAa,CAAC;QACzE,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,KAAyB,EAAE,KAA2B;QAClE,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAE3D,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,MAAc,EAAE,KAAyB;QACtD,OAAO,KAAK,CAAC,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,MAAc,EAAE,OAAwB;QAC1D,OAAO,OAAO,CAAC,KAAK,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,KAAyB;QACtC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,+EAA+E;IAC/E,iCAAiC;IACjC,+EAA+E;IAE/E;;OAEG;IACK,KAAK,CAAC,aAAa;QACzB,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;YACxE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACvC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC1C,CAAC;QAED,0BAA0B;QAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,sBAAsB;QACtB,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QACrD,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,8CAA8C;IAClF,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,SAAS,CAAC,KAAuB,EAAE,UAAkB;QACjE,IAAI,OAAO,GAAQ,EAAE,CAAC;QAEtB,IAAI,KAAK,CAAC,cAAc,KAAK,OAAO,EAAE,CAAC;YACrC,OAAO,GAAG,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC;QACtC,CAAC;aAAM,IAAI,KAAK,CAAC,cAAc,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACjE,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QAED,qCAAqC;QACrC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;YAClE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAAC,KAAuB;QAClD,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACzD,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;YAEzB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC;gBAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,WAAW,EAAE,KAAK,CAAC,MAAM;gBACzB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,KAAK,CAAC,UAAU;gBACzB,UAAU,EAAE,eAAe;aAC5B,CAAC,CAAC;YAEH,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,OAAO,MAAM,CAAC,OAAc,CAAC;YAC/B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,0EAA0E,EAAE,KAAK,CAAC,CAAC;QAClG,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa;QACzB,yDAAyD;QACzD,iCAAiC;IACnC,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,MAAS,EAAE,KAAuB,EAAE,UAAkB;QAChF,MAAM,UAAU,GAAG,KAAK,CAAC,sBAAsB,EAAE,CAAC;QAElD,OAAO;YACL,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;YACvB,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC7B,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAC3B,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;YACnC,WAAW,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;YACzC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;YACnC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;YACpC,UAAU;YACV,UAAU,EAAE,UAAU,CAAC,eAAe,IAAI,KAAK;SAChD,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,UAAU;QAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,+EAA+E;IAC/E,iCAAiC;IACjC,+EAA+E;IAE/E;;OAEG;IACK,aAAa;QACnB,IAAI,IAAI,CAAC,eAAe,KAAK,MAAM,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,GAAG,EAA2B,CAAC;QAEtD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEtE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE;oBACpB,KAAK;oBACL,SAAS;oBACT,OAAO;oBACP,MAAM,EAAE,EAAE;oBACV,UAAU,EAAE,IAAI,CAAC,uBAAuB;oBACxC,UAAU,EAAE,CAAC;iBACd,CAAC,CAAC;YACL,CAAC;YAED,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;YACvC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,CAAC;QAED,4BAA4B;QAC5B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,IAAU;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAE3B,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;YAC7B,KAAK,KAAK;gBACR,OAAO;oBACL,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,cAAc,CAAC;oBACpD,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC;oBACrC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC;iBACxC,CAAC;YAEJ,KAAK,MAAM;gBACT,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjC,SAAS,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBACvC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;gBACpC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;gBACzC,OAAO;oBACL,KAAK,EAAE,WAAW,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE;oBACrE,SAAS,EAAE,SAAS;oBACpB,OAAO,EAAE,OAAO;iBACjB,CAAC;YAEJ,KAAK,OAAO;gBACV,OAAO;oBACL,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC;oBACrE,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;oBACnC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;iBACtC,CAAC;YAEJ,KAAK,SAAS;gBACZ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACtC,OAAO;oBACL,KAAK,EAAE,IAAI,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE;oBAChC,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;oBACzC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;iBAC9C,CAAC;YAEJ,KAAK,MAAM;gBACT,OAAO;oBACL,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC;oBACnB,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;oBAC/B,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;iBAClC,CAAC;YAEJ;gBACE,OAAO;oBACL,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,WAAW,CAAC;oBACjD,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;oBACnC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;iBACtC,CAAC;QACN,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,oCAAoC;IACpC,+EAA+E;IAE/E;;OAEG;IACK,mBAAmB,CAAC,KAAyB,EAAE,KAAa,EAAE,QAAgB;QACpF,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,KAAyB,EAAE,QAAiB;QACnE,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,KAAyB,EAAE,KAAa,EAAE,QAAgB;QACpF,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE7C,MAAM,UAAU,GAA6B;YAC3C,MAAM,EAAE,KAAK;YACb,KAAK;YACL,KAAK;YACL,KAAK;YACL,QAAQ;SACT,CAAC;QACF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAExC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAExB,MAAM,SAAS,GAA4B;YACzC,OAAO,EAAE,IAAI;YACb,KAAK;YACL,KAAK;YACL,KAAK;YACL,QAAQ;SACT,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,KAAyB,EAAE,KAAa,EAAE,QAAgB;QACtF,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE7C,MAAM,UAAU,GAA+B;YAC7C,MAAM,EAAE,KAAK;YACb,KAAK;YACL,KAAK;YACL,KAAK;YACL,QAAQ;SACT,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE1C,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAExB,MAAM,SAAS,GAA8B;YAC3C,OAAO,EAAE,IAAI;YACb,KAAK;YACL,KAAK;YACL,KAAK;YACL,QAAQ;SACT,CAAC;QACF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,OAAwB;QAC5C,MAAM,UAAU,GAA4B;YAC1C,MAAM,EAAE,KAAK;YACb,OAAO;YACP,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE1C,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAExB,MAAM,SAAS,GAA2B;YACxC,OAAO,EAAE,IAAI;YACb,OAAO;YACP,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;QACF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,OAAwB;QAC9C,MAAM,UAAU,GAA8B;YAC5C,MAAM,EAAE,KAAK;YACb,OAAO;YACP,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;QACF,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE5C,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAExB,MAAM,SAAS,GAA6B;YAC1C,OAAO,EAAE,IAAI;YACb,OAAO;YACP,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,OAAwB,EAAE,QAAiB;QACpE,OAAO,CAAC,UAAU,GAAG,QAAQ,CAAC;IAChC,CAAC;IAED,+EAA+E;IAC/E,wCAAwC;IACxC,+EAA+E;IAEvE,cAAc;QACpB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAExC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAC/B,IAAI,CAAC,iBAAiB,GAAG,CAAC,EAC1B,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAC1B,CAAC;QACF,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAExC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAEO,eAAe;QACrB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAExC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAEO,cAAc;QACpB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAExC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACnD,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAEO,oBAAoB;QAC1B,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAClF,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACrD,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAEO,oBAAoB;QAC1B,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAClF,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACrD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrB,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IAEO,oBAAoB;QAC1B,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAClF,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACrD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC1B,CAAC;IAED,+EAA+E;IAC/E,sCAAsC;IACtC,+EAA+E;IAEvE,yBAAyB;QAC/B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO;YAAE,OAAO;QAExC,mDAAmD;QACnD,qBAAqB,CAAC,GAAG,EAAE;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC;YAC7F,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAEtB,IAAI,CAAC,qBAAqB,GAAG,IAAI,oBAAoB,CACnD,CAAC,OAAO,EAAE,EAAE;gBACV,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,KAAK,EAAE,cAAc,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;oBACrF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC,EACD;gBACE,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa;gBACzC,SAAS,EAAE,CAAC;gBACZ,UAAU,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,IAAI;aACpD,CACF,CAAC;YAEF,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YACxE,OAAO;QACT,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;QAC9C,IAAI,CAAC,WAAW,CAAC,YAAY,GAAG,EAAE,CAAC,SAAS,CAAC;QAE7C,MAAM,kBAAkB,GAAG,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC;QAC5E,IAAI,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACtF,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,8BAA8B;IAC9B,+EAA+E;IAE/E;;OAEG;IACK,0BAA0B,CAAC,SAA8B,EAAE;QACjE,OAAO;YACL,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,IAAU,EAAE,MAAc;QACnD,MAAM,MAAM,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;YACtD,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAClF,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;YACxC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAE/D,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAElC,OAAO,MAAM;aACV,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;aAC7B,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;aAC9B,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;aAClC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aACjD,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aAC3C,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;aACzB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aAC7C,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;aACtC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aAC/C,OAAO,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;2EAx1CU,iBAAiB;6DAAjB,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;YC9H9B,kCAW8B;YAA5B,AAFA,2IAAW,qBAAiB,KAAC,4HAEnB,oBAAgB,KAAC;YA0G3B,AANA,AAvEA,AAbA,AAbA,qFAAkD,wEAa0B,wEAahB,sDAyEL,sDAMe;YAKxE,iBAAM;YAGN,oHAA4G;;YA1H1G,AADA,AADA,AADA,uEAA0D,6DACI,gDACb,0DACU;;YAS5C,eAAiC;YAAjC,0DAAiC;YAajC,cAA2D;YAA3D,wFAA2D;YAa3D,cAA2C;YAA3C,oEAA2C;YAyEvD,cAAkD;YAAlD,2EAAkD;YAMlD,cAAiE;YAAjE,0FAAiE;;;iFDOzD,iBAAiB;cAN7B,SAAS;2BACE,aAAa,mBAGN,uBAAuB,CAAC,MAAM;gGAY3C,MAAM;kBADT,KAAK;YAkBF,SAAS;kBADZ,KAAK;YAuBG,WAAW;kBAAnB,KAAK;YAQG,MAAM;kBAAd,KAAK;YAQG,SAAS;kBAAjB,KAAK;YAMG,eAAe;kBAAvB,KAAK;YAUG,iBAAiB;kBAAzB,KAAK;YASG,aAAa;kBAArB,KAAK;YAUG,mBAAmB;kBAA3B,KAAK;YAMG,uBAAuB;kBAA/B,KAAK;YAUG,YAAY;kBAApB,KAAK;YAMG,SAAS;kBAAjB,KAAK;YAMG,cAAc;kBAAtB,KAAK;YAUG,SAAS;kBAAjB,KAAK;YAMG,wBAAwB;kBAAhC,KAAK;YAOI,gBAAgB;kBAAzB,MAAM;YAGG,iBAAiB;kBAA1B,MAAM;YAGG,mBAAmB;kBAA5B,MAAM;YAGG,gBAAgB;kBAAzB,MAAM;YAGG,iBAAiB;kBAA1B,MAAM;YAGG,mBAAmB;kBAA5B,MAAM;YAGG,qBAAqB;kBAA9B,MAAM;YAGG,UAAU;kBAAnB,MAAM;YAOG,eAAe;kBAAxB,MAAM;YAGG,gBAAgB;kBAAzB,MAAM;YAGG,kBAAkB;kBAA3B,MAAM;YAGG,eAAe;kBAAxB,MAAM;YAGG,gBAAgB;kBAAzB,MAAM;YAGG,kBAAkB;kBAA3B,MAAM;YAGG,oBAAoB;kBAA7B,MAAM;YAGG,SAAS;kBAAlB,MAAM;YAOuB,YAAY;kBAAzC,YAAY;mBAAC,cAAc;YAGI,cAAc;kBAA7C,YAAY;mBAAC,gBAAgB;YAGA,YAAY;kBAAzC,YAAY;mBAAC,cAAc;YAGK,eAAe;kBAA/C,YAAY;mBAAC,iBAAiB;YAGQ,qBAAqB;kBAA3D,YAAY;mBAAC,uBAAuB;YAGN,aAAa;kBAA3C,YAAY;mBAAC,eAAe;YAGI,eAAe;kBAA/C,YAAY;mBAAC,iBAAiB;YAMD,eAAe;kBAA5C,SAAS;mBAAC,iBAAiB;;kFAvOjB,iBAAiB"}
|
|
1
|
+
{"version":3,"file":"timeline.component.js","sourceRoot":"","sources":["../../../src/lib/component/timeline.component.ts","../../../src/lib/component/timeline.component.html"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/ng-timeline",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.123.0",
|
|
4
4
|
"description": "MemberJunction: Responsive timeline component for Angular. Works with MemberJunction entities or plain JavaScript objects. No external dependencies.",
|
|
5
5
|
"main": "./dist/public-api.js",
|
|
6
6
|
"typings": "./dist/public-api.d.ts",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
}
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@memberjunction/core": "2.
|
|
38
|
+
"@memberjunction/core": "2.123.0",
|
|
39
39
|
"rxjs": "~7.8.0",
|
|
40
40
|
"tslib": "^2.3.0"
|
|
41
41
|
},
|