@bimetal/calendar-angular-components 0.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +129 -0
- package/README.md +56 -0
- package/dist/binding/config.d.ts +6 -0
- package/dist/binding/config.d.ts.map +1 -0
- package/dist/binding/config.js +6 -0
- package/dist/binding/config.js.map +1 -0
- package/dist/binding/controller.d.ts +22 -0
- package/dist/binding/controller.d.ts.map +1 -0
- package/dist/binding/controller.js +17 -0
- package/dist/binding/controller.js.map +1 -0
- package/dist/binding/index.d.ts +24 -0
- package/dist/binding/index.d.ts.map +1 -0
- package/dist/binding/index.js +26 -0
- package/dist/binding/index.js.map +1 -0
- package/dist/binding/services/event-render.service.d.ts +40 -0
- package/dist/binding/services/event-render.service.d.ts.map +1 -0
- package/dist/binding/services/event-render.service.js +58 -0
- package/dist/binding/services/event-render.service.js.map +1 -0
- package/dist/binding/types.d.ts +128 -0
- package/dist/binding/types.d.ts.map +1 -0
- package/dist/binding/types.js +12 -0
- package/dist/binding/types.js.map +1 -0
- package/dist/binding/utils/date-strings.d.ts +16 -0
- package/dist/binding/utils/date-strings.d.ts.map +1 -0
- package/dist/binding/utils/date-strings.js +30 -0
- package/dist/binding/utils/date-strings.js.map +1 -0
- package/dist/binding/utils/gridUtils.d.ts +6 -0
- package/dist/binding/utils/gridUtils.d.ts.map +1 -0
- package/dist/binding/utils/gridUtils.js +13 -0
- package/dist/binding/utils/gridUtils.js.map +1 -0
- package/dist/binding/view-configs.d.ts +6 -0
- package/dist/binding/view-configs.d.ts.map +1 -0
- package/dist/binding/view-configs.js +6 -0
- package/dist/binding/view-configs.js.map +1 -0
- package/dist/components/Calendar.d.ts +110 -0
- package/dist/components/Calendar.d.ts.map +1 -0
- package/dist/components/Calendar.js +554 -0
- package/dist/components/Calendar.js.map +1 -0
- package/dist/components/CalendarHeader.d.ts +17 -0
- package/dist/components/CalendarHeader.d.ts.map +1 -0
- package/dist/components/CalendarHeader.js +105 -0
- package/dist/components/CalendarHeader.js.map +1 -0
- package/dist/components/CategoryFilter.d.ts +11 -0
- package/dist/components/CategoryFilter.d.ts.map +1 -0
- package/dist/components/CategoryFilter.js +66 -0
- package/dist/components/CategoryFilter.js.map +1 -0
- package/dist/components/EventBar.d.ts +56 -0
- package/dist/components/EventBar.d.ts.map +1 -0
- package/dist/components/EventBar.js +328 -0
- package/dist/components/EventBar.js.map +1 -0
- package/dist/components/EventDialog.d.ts +52 -0
- package/dist/components/EventDialog.d.ts.map +1 -0
- package/dist/components/EventDialog.js +557 -0
- package/dist/components/EventDialog.js.map +1 -0
- package/dist/components/EventHistory.d.ts +17 -0
- package/dist/components/EventHistory.d.ts.map +1 -0
- package/dist/components/EventHistory.js +166 -0
- package/dist/components/EventHistory.js.map +1 -0
- package/dist/components/ResourceFilter.d.ts +12 -0
- package/dist/components/ResourceFilter.d.ts.map +1 -0
- package/dist/components/ResourceFilter.js +67 -0
- package/dist/components/ResourceFilter.js.map +1 -0
- package/dist/components/UndoToast.d.ts +20 -0
- package/dist/components/UndoToast.d.ts.map +1 -0
- package/dist/components/UndoToast.js +90 -0
- package/dist/components/UndoToast.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/styles/index.css +1 -0
- package/dist/views/agenda/AgendaView.d.ts +54 -0
- package/dist/views/agenda/AgendaView.d.ts.map +1 -0
- package/dist/views/agenda/AgendaView.js +309 -0
- package/dist/views/agenda/AgendaView.js.map +1 -0
- package/dist/views/day/DayView.d.ts +85 -0
- package/dist/views/day/DayView.d.ts.map +1 -0
- package/dist/views/day/DayView.js +422 -0
- package/dist/views/day/DayView.js.map +1 -0
- package/dist/views/month/MonthView.d.ts +51 -0
- package/dist/views/month/MonthView.d.ts.map +1 -0
- package/dist/views/month/MonthView.js +184 -0
- package/dist/views/month/MonthView.js.map +1 -0
- package/dist/views/month/WeekRow.d.ts +89 -0
- package/dist/views/month/WeekRow.d.ts.map +1 -0
- package/dist/views/month/WeekRow.js +548 -0
- package/dist/views/month/WeekRow.js.map +1 -0
- package/dist/views/resource/ResourceView.d.ts +85 -0
- package/dist/views/resource/ResourceView.d.ts.map +1 -0
- package/dist/views/resource/ResourceView.js +388 -0
- package/dist/views/resource/ResourceView.js.map +1 -0
- package/dist/views/timeline/TimelineView.d.ts +69 -0
- package/dist/views/timeline/TimelineView.d.ts.map +1 -0
- package/dist/views/timeline/TimelineView.js +314 -0
- package/dist/views/timeline/TimelineView.js.map +1 -0
- package/dist/views/week/AllDayRow.d.ts +38 -0
- package/dist/views/week/AllDayRow.d.ts.map +1 -0
- package/dist/views/week/AllDayRow.js +149 -0
- package/dist/views/week/AllDayRow.js.map +1 -0
- package/dist/views/week/TimeEvent.d.ts +77 -0
- package/dist/views/week/TimeEvent.d.ts.map +1 -0
- package/dist/views/week/TimeEvent.js +279 -0
- package/dist/views/week/TimeEvent.js.map +1 -0
- package/dist/views/week/WeekView.d.ts +79 -0
- package/dist/views/week/WeekView.d.ts.map +1 -0
- package/dist/views/week/WeekView.js +370 -0
- package/dist/views/week/WeekView.js.map +1 -0
- package/dist/views/year/YearView.d.ts +37 -0
- package/dist/views/year/YearView.d.ts.map +1 -0
- package/dist/views/year/YearView.js +162 -0
- package/dist/views/year/YearView.js.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { EventEmitter, AfterViewInit, ElementRef } from '@angular/core';
|
|
2
|
+
import type { DialogState, EventDraft } from '@bimetal/calendar-headless';
|
|
3
|
+
import type { DomainEvent } from '@bimetal/calendar-data';
|
|
4
|
+
import type { CalendarConfig } from '../binding/index.js';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class EventDialogComponent implements AfterViewInit {
|
|
7
|
+
/** Controller-owned dialog state (draft, flags, validation). */
|
|
8
|
+
dialog: DialogState;
|
|
9
|
+
config: CalendarConfig;
|
|
10
|
+
history: DomainEvent[];
|
|
11
|
+
/** Patch the controlled draft from raw input (controller applies the policy). */
|
|
12
|
+
setDraft: EventEmitter<Partial<EventDraft>>;
|
|
13
|
+
/** Assemble + validate + save the held draft (controller owns all of it). */
|
|
14
|
+
save: EventEmitter<void>;
|
|
15
|
+
deleteEvent: EventEmitter<string>;
|
|
16
|
+
close: EventEmitter<void>;
|
|
17
|
+
dialogEl: ElementRef<HTMLDivElement>;
|
|
18
|
+
showHistory: boolean;
|
|
19
|
+
get draft(): EventDraft;
|
|
20
|
+
get event(): import("@bimetal/calendar-core").CalendarEvent | null;
|
|
21
|
+
get isNew(): boolean;
|
|
22
|
+
get isInstance(): boolean;
|
|
23
|
+
get validationErrors(): readonly string[];
|
|
24
|
+
readonly onEscape: () => void;
|
|
25
|
+
ngAfterViewInit(): void;
|
|
26
|
+
trackResource(_: number, r: {
|
|
27
|
+
id: string;
|
|
28
|
+
}): string;
|
|
29
|
+
openHistory(): void;
|
|
30
|
+
hideHistory(): void;
|
|
31
|
+
private value;
|
|
32
|
+
private checked;
|
|
33
|
+
onTitle(e: Event): void;
|
|
34
|
+
onAllDay(e: Event): void;
|
|
35
|
+
onRecurring(e: Event): void;
|
|
36
|
+
onRecInterval(e: Event): void;
|
|
37
|
+
onRecFreq(e: Event): void;
|
|
38
|
+
onRecUntil(e: Event): void;
|
|
39
|
+
onStartDate(e: Event): void;
|
|
40
|
+
onStartTime(e: Event): void;
|
|
41
|
+
onEndDate(e: Event): void;
|
|
42
|
+
onEndTime(e: Event): void;
|
|
43
|
+
onCategory(e: Event): void;
|
|
44
|
+
onResourceId(e: Event): void;
|
|
45
|
+
onLocation(e: Event): void;
|
|
46
|
+
onDescription(e: Event): void;
|
|
47
|
+
handleKeyDown(e: KeyboardEvent): void;
|
|
48
|
+
handleSave(): void;
|
|
49
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<EventDialogComponent, never>;
|
|
50
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<EventDialogComponent, "cal-event-dialog", never, { "dialog": { "alias": "dialog"; "required": false; }; "config": { "alias": "config"; "required": false; }; "history": { "alias": "history"; "required": false; }; }, { "setDraft": "setDraft"; "save": "save"; "deleteEvent": "deleteEvent"; "close": "close"; }, never, never, true, never>;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=EventDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventDialog.d.ts","sourceRoot":"","sources":["../../src/components/EventDialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,aAAa,EAAa,UAAU,EAAE,MAAM,eAAe,CAAC;AAE7G,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;;AAG1D,qBAiIa,oBAAqB,YAAW,aAAa;IACxD,gEAAgE;IACvD,MAAM,EAAG,WAAW,CAAC;IACrB,MAAM,EAAG,cAAc,CAAC;IACxB,OAAO,EAAE,WAAW,EAAE,CAAM;IACrC,iFAAiF;IACvE,QAAQ,oCAA2C;IAC7D,6EAA6E;IACnE,IAAI,qBAA4B;IAChC,WAAW,uBAA8B;IACzC,KAAK,qBAA4B;IAEpB,QAAQ,EAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAE7D,WAAW,UAAS;IAGpB,IAAI,KAAK,IAAI,UAAU,CAA8B;IACrD,IAAI,KAAK,0DAAgC;IACzC,IAAI,KAAK,IAAI,OAAO,CAA8B;IAClD,IAAI,UAAU,IAAI,OAAO,CAAmC;IAC5D,IAAI,gBAAgB,IAAI,SAAS,MAAM,EAAE,CAAyC;IAMlF,QAAQ,CAAC,QAAQ,aAA2B;IAE5C,eAAe;IAoBf,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE;IAE1C,WAAW;IACX,WAAW;IAGX,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,OAAO;IAEf,OAAO,CAAC,CAAC,EAAE,KAAK;IAChB,QAAQ,CAAC,CAAC,EAAE,KAAK;IACjB,WAAW,CAAC,CAAC,EAAE,KAAK;IACpB,aAAa,CAAC,CAAC,EAAE,KAAK;IACtB,SAAS,CAAC,CAAC,EAAE,KAAK;IAClB,UAAU,CAAC,CAAC,EAAE,KAAK;IACnB,WAAW,CAAC,CAAC,EAAE,KAAK;IACpB,WAAW,CAAC,CAAC,EAAE,KAAK;IACpB,SAAS,CAAC,CAAC,EAAE,KAAK;IAClB,SAAS,CAAC,CAAC,EAAE,KAAK;IAClB,UAAU,CAAC,CAAC,EAAE,KAAK;IACnB,YAAY,CAAC,CAAC,EAAE,KAAK;IACrB,UAAU,CAAC,CAAC,EAAE,KAAK;IACnB,aAAa,CAAC,CAAC,EAAE,KAAK;IAEtB,aAAa,CAAC,CAAC,EAAE,aAAa;IAO9B,UAAU;yCAhFC,oBAAoB;2CAApB,oBAAoB;CAiFhC"}
|
|
@@ -0,0 +1,557 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FocusTrapDirective } from '@bimetal/angular';
|
|
4
|
+
import { EventHistoryComponent } from './EventHistory.js';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
const _c0 = ["dialogEl"];
|
|
8
|
+
function EventDialogComponent_cal_event_history_3_Template(rf, ctx) { if (rf & 1) {
|
|
9
|
+
const _r2 = i0.ɵɵgetCurrentView();
|
|
10
|
+
i0.ɵɵelementStart(0, "cal-event-history", 5);
|
|
11
|
+
i0.ɵɵlistener("back", function EventDialogComponent_cal_event_history_3_Template_cal_event_history_back_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.hideHistory()); });
|
|
12
|
+
i0.ɵɵelementEnd();
|
|
13
|
+
} if (rf & 2) {
|
|
14
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
15
|
+
i0.ɵɵproperty("eventId", ctx_r2.event.id)("history", ctx_r2.history)("locale", ctx_r2.config.locale);
|
|
16
|
+
} }
|
|
17
|
+
function EventDialogComponent_ng_container_4_div_12_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
18
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
19
|
+
i0.ɵɵelementStart(0, "div", 36)(1, "span", 37);
|
|
20
|
+
i0.ɵɵtext(2, "Alle");
|
|
21
|
+
i0.ɵɵelementEnd();
|
|
22
|
+
i0.ɵɵelementStart(3, "input", 38);
|
|
23
|
+
i0.ɵɵlistener("input", function EventDialogComponent_ng_container_4_div_12_div_5_Template_input_input_3_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.onRecInterval($event)); });
|
|
24
|
+
i0.ɵɵelementEnd();
|
|
25
|
+
i0.ɵɵelementStart(4, "select", 21);
|
|
26
|
+
i0.ɵɵlistener("change", function EventDialogComponent_ng_container_4_div_12_div_5_Template_select_change_4_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.onRecFreq($event)); });
|
|
27
|
+
i0.ɵɵelementStart(5, "option", 39);
|
|
28
|
+
i0.ɵɵtext(6, "Tage");
|
|
29
|
+
i0.ɵɵelementEnd();
|
|
30
|
+
i0.ɵɵelementStart(7, "option", 40);
|
|
31
|
+
i0.ɵɵtext(8, "Wochen");
|
|
32
|
+
i0.ɵɵelementEnd();
|
|
33
|
+
i0.ɵɵelementStart(9, "option", 41);
|
|
34
|
+
i0.ɵɵtext(10, "Monate");
|
|
35
|
+
i0.ɵɵelementEnd();
|
|
36
|
+
i0.ɵɵelementStart(11, "option", 42);
|
|
37
|
+
i0.ɵɵtext(12, "Jahre");
|
|
38
|
+
i0.ɵɵelementEnd()();
|
|
39
|
+
i0.ɵɵelementStart(13, "label", 43)(14, "span", 37);
|
|
40
|
+
i0.ɵɵtext(15, "bis");
|
|
41
|
+
i0.ɵɵelementEnd();
|
|
42
|
+
i0.ɵɵelementStart(16, "input", 17);
|
|
43
|
+
i0.ɵɵlistener("input", function EventDialogComponent_ng_container_4_div_12_div_5_Template_input_input_16_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.onRecUntil($event)); });
|
|
44
|
+
i0.ɵɵelementEnd()()();
|
|
45
|
+
} if (rf & 2) {
|
|
46
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
47
|
+
i0.ɵɵadvance(3);
|
|
48
|
+
i0.ɵɵproperty("value", ctx_r2.draft.recInterval);
|
|
49
|
+
i0.ɵɵadvance(2);
|
|
50
|
+
i0.ɵɵproperty("selected", ctx_r2.draft.recFreq === "daily");
|
|
51
|
+
i0.ɵɵadvance(2);
|
|
52
|
+
i0.ɵɵproperty("selected", ctx_r2.draft.recFreq === "weekly");
|
|
53
|
+
i0.ɵɵadvance(2);
|
|
54
|
+
i0.ɵɵproperty("selected", ctx_r2.draft.recFreq === "monthly");
|
|
55
|
+
i0.ɵɵadvance(2);
|
|
56
|
+
i0.ɵɵproperty("selected", ctx_r2.draft.recFreq === "yearly");
|
|
57
|
+
i0.ɵɵadvance(5);
|
|
58
|
+
i0.ɵɵproperty("value", ctx_r2.draft.recUntil);
|
|
59
|
+
} }
|
|
60
|
+
function EventDialogComponent_ng_container_4_div_12_Template(rf, ctx) { if (rf & 1) {
|
|
61
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
62
|
+
i0.ɵɵelementStart(0, "div", 34)(1, "label", 11)(2, "span");
|
|
63
|
+
i0.ɵɵtext(3, "Wiederholen");
|
|
64
|
+
i0.ɵɵelementEnd();
|
|
65
|
+
i0.ɵɵelementStart(4, "input", 12);
|
|
66
|
+
i0.ɵɵlistener("change", function EventDialogComponent_ng_container_4_div_12_Template_input_change_4_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onRecurring($event)); });
|
|
67
|
+
i0.ɵɵelementEnd()();
|
|
68
|
+
i0.ɵɵtemplate(5, EventDialogComponent_ng_container_4_div_12_div_5_Template, 17, 6, "div", 35);
|
|
69
|
+
i0.ɵɵelementEnd();
|
|
70
|
+
} if (rf & 2) {
|
|
71
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
72
|
+
i0.ɵɵadvance(4);
|
|
73
|
+
i0.ɵɵproperty("checked", ctx_r2.draft.recurring);
|
|
74
|
+
i0.ɵɵadvance();
|
|
75
|
+
i0.ɵɵproperty("ngIf", ctx_r2.draft.recurring);
|
|
76
|
+
} }
|
|
77
|
+
function EventDialogComponent_ng_container_4_div_13_Template(rf, ctx) { if (rf & 1) {
|
|
78
|
+
i0.ɵɵelementStart(0, "div", 44);
|
|
79
|
+
i0.ɵɵtext(1, " \u21BB Instanz einer wiederkehrenden Serie ");
|
|
80
|
+
i0.ɵɵelementEnd();
|
|
81
|
+
} }
|
|
82
|
+
function EventDialogComponent_ng_container_4_input_19_Template(rf, ctx) { if (rf & 1) {
|
|
83
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
84
|
+
i0.ɵɵelementStart(0, "input", 45);
|
|
85
|
+
i0.ɵɵlistener("input", function EventDialogComponent_ng_container_4_input_19_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onStartTime($event)); });
|
|
86
|
+
i0.ɵɵelementEnd();
|
|
87
|
+
} if (rf & 2) {
|
|
88
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
89
|
+
i0.ɵɵproperty("value", ctx_r2.draft.startTime);
|
|
90
|
+
} }
|
|
91
|
+
function EventDialogComponent_ng_container_4_input_25_Template(rf, ctx) { if (rf & 1) {
|
|
92
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
93
|
+
i0.ɵɵelementStart(0, "input", 45);
|
|
94
|
+
i0.ɵɵlistener("input", function EventDialogComponent_ng_container_4_input_25_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onEndTime($event)); });
|
|
95
|
+
i0.ɵɵelementEnd();
|
|
96
|
+
} if (rf & 2) {
|
|
97
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
98
|
+
i0.ɵɵproperty("value", ctx_r2.draft.endTime);
|
|
99
|
+
} }
|
|
100
|
+
function EventDialogComponent_ng_container_4_option_31_Template(rf, ctx) { if (rf & 1) {
|
|
101
|
+
i0.ɵɵelementStart(0, "option", 46);
|
|
102
|
+
i0.ɵɵtext(1);
|
|
103
|
+
i0.ɵɵelementEnd();
|
|
104
|
+
} if (rf & 2) {
|
|
105
|
+
const cat_r9 = ctx.$implicit;
|
|
106
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
107
|
+
i0.ɵɵproperty("value", cat_r9.name)("selected", cat_r9.name === ctx_r2.draft.category);
|
|
108
|
+
i0.ɵɵadvance();
|
|
109
|
+
i0.ɵɵtextInterpolate(cat_r9.name);
|
|
110
|
+
} }
|
|
111
|
+
function EventDialogComponent_ng_container_4_label_33_option_6_Template(rf, ctx) { if (rf & 1) {
|
|
112
|
+
i0.ɵɵelementStart(0, "option", 46);
|
|
113
|
+
i0.ɵɵtext(1);
|
|
114
|
+
i0.ɵɵelementEnd();
|
|
115
|
+
} if (rf & 2) {
|
|
116
|
+
const r_r11 = ctx.$implicit;
|
|
117
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
118
|
+
i0.ɵɵproperty("value", r_r11.id)("selected", r_r11.id === ctx_r2.draft.resourceId);
|
|
119
|
+
i0.ɵɵadvance();
|
|
120
|
+
i0.ɵɵtextInterpolate(r_r11.name);
|
|
121
|
+
} }
|
|
122
|
+
function EventDialogComponent_ng_container_4_label_33_Template(rf, ctx) { if (rf & 1) {
|
|
123
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
124
|
+
i0.ɵɵelementStart(0, "label", 16)(1, "span");
|
|
125
|
+
i0.ɵɵtext(2);
|
|
126
|
+
i0.ɵɵelementEnd();
|
|
127
|
+
i0.ɵɵelementStart(3, "select", 21);
|
|
128
|
+
i0.ɵɵlistener("change", function EventDialogComponent_ng_container_4_label_33_Template_select_change_3_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onResourceId($event)); });
|
|
129
|
+
i0.ɵɵelementStart(4, "option", 47);
|
|
130
|
+
i0.ɵɵtext(5, "\u2014");
|
|
131
|
+
i0.ɵɵelementEnd();
|
|
132
|
+
i0.ɵɵtemplate(6, EventDialogComponent_ng_container_4_label_33_option_6_Template, 2, 3, "option", 48);
|
|
133
|
+
i0.ɵɵelementEnd()();
|
|
134
|
+
} if (rf & 2) {
|
|
135
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
136
|
+
i0.ɵɵadvance(2);
|
|
137
|
+
i0.ɵɵtextInterpolate(ctx_r2.config.locale.resources || "Resources");
|
|
138
|
+
i0.ɵɵadvance(2);
|
|
139
|
+
i0.ɵɵproperty("selected", ctx_r2.draft.resourceId === "");
|
|
140
|
+
i0.ɵɵadvance(2);
|
|
141
|
+
i0.ɵɵproperty("ngForOf", ctx_r2.config.resources)("ngForTrackBy", ctx_r2.trackResource);
|
|
142
|
+
} }
|
|
143
|
+
function EventDialogComponent_ng_container_4_div_42_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
144
|
+
i0.ɵɵelementStart(0, "div", 51);
|
|
145
|
+
i0.ɵɵtext(1);
|
|
146
|
+
i0.ɵɵelementEnd();
|
|
147
|
+
} if (rf & 2) {
|
|
148
|
+
const err_r12 = ctx.$implicit;
|
|
149
|
+
i0.ɵɵadvance();
|
|
150
|
+
i0.ɵɵtextInterpolate(err_r12);
|
|
151
|
+
} }
|
|
152
|
+
function EventDialogComponent_ng_container_4_div_42_Template(rf, ctx) { if (rf & 1) {
|
|
153
|
+
i0.ɵɵelementStart(0, "div", 49);
|
|
154
|
+
i0.ɵɵtemplate(1, EventDialogComponent_ng_container_4_div_42_div_1_Template, 2, 1, "div", 50);
|
|
155
|
+
i0.ɵɵelementEnd();
|
|
156
|
+
} if (rf & 2) {
|
|
157
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
158
|
+
i0.ɵɵadvance();
|
|
159
|
+
i0.ɵɵproperty("ngForOf", ctx_r2.validationErrors);
|
|
160
|
+
} }
|
|
161
|
+
function EventDialogComponent_ng_container_4_button_44_Template(rf, ctx) { if (rf & 1) {
|
|
162
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
163
|
+
i0.ɵɵelementStart(0, "button", 52);
|
|
164
|
+
i0.ɵɵlistener("click", function EventDialogComponent_ng_container_4_button_44_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.deleteEvent.emit(ctx_r2.event.id)); });
|
|
165
|
+
i0.ɵɵtext(1);
|
|
166
|
+
i0.ɵɵelementEnd();
|
|
167
|
+
} if (rf & 2) {
|
|
168
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
169
|
+
i0.ɵɵadvance();
|
|
170
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.config.locale.delete, " ");
|
|
171
|
+
} }
|
|
172
|
+
function EventDialogComponent_ng_container_4_button_45_Template(rf, ctx) { if (rf & 1) {
|
|
173
|
+
const _r14 = i0.ɵɵgetCurrentView();
|
|
174
|
+
i0.ɵɵelementStart(0, "button", 53);
|
|
175
|
+
i0.ɵɵlistener("click", function EventDialogComponent_ng_container_4_button_45_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.openHistory()); });
|
|
176
|
+
i0.ɵɵtext(1);
|
|
177
|
+
i0.ɵɵelementEnd();
|
|
178
|
+
} if (rf & 2) {
|
|
179
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
180
|
+
i0.ɵɵadvance();
|
|
181
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.config.locale.history, " ");
|
|
182
|
+
} }
|
|
183
|
+
function EventDialogComponent_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
184
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
185
|
+
i0.ɵɵelementContainerStart(0);
|
|
186
|
+
i0.ɵɵelementStart(1, "div", 6)(2, "span", 7);
|
|
187
|
+
i0.ɵɵtext(3);
|
|
188
|
+
i0.ɵɵelementEnd();
|
|
189
|
+
i0.ɵɵelementStart(4, "button", 8);
|
|
190
|
+
i0.ɵɵlistener("click", function EventDialogComponent_ng_container_4_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.close.emit()); });
|
|
191
|
+
i0.ɵɵtext(5, "\u00D7");
|
|
192
|
+
i0.ɵɵelementEnd()();
|
|
193
|
+
i0.ɵɵelementStart(6, "div", 9)(7, "input", 10);
|
|
194
|
+
i0.ɵɵlistener("input", function EventDialogComponent_ng_container_4_Template_input_input_7_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onTitle($event)); });
|
|
195
|
+
i0.ɵɵelementEnd();
|
|
196
|
+
i0.ɵɵelementStart(8, "label", 11)(9, "span");
|
|
197
|
+
i0.ɵɵtext(10);
|
|
198
|
+
i0.ɵɵelementEnd();
|
|
199
|
+
i0.ɵɵelementStart(11, "input", 12);
|
|
200
|
+
i0.ɵɵlistener("change", function EventDialogComponent_ng_container_4_Template_input_change_11_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onAllDay($event)); });
|
|
201
|
+
i0.ɵɵelementEnd()();
|
|
202
|
+
i0.ɵɵtemplate(12, EventDialogComponent_ng_container_4_div_12_Template, 6, 2, "div", 13)(13, EventDialogComponent_ng_container_4_div_13_Template, 2, 0, "div", 14);
|
|
203
|
+
i0.ɵɵelementStart(14, "div", 15)(15, "label", 16)(16, "span");
|
|
204
|
+
i0.ɵɵtext(17);
|
|
205
|
+
i0.ɵɵelementEnd();
|
|
206
|
+
i0.ɵɵelementStart(18, "input", 17);
|
|
207
|
+
i0.ɵɵlistener("input", function EventDialogComponent_ng_container_4_Template_input_input_18_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onStartDate($event)); });
|
|
208
|
+
i0.ɵɵelementEnd()();
|
|
209
|
+
i0.ɵɵtemplate(19, EventDialogComponent_ng_container_4_input_19_Template, 1, 1, "input", 18);
|
|
210
|
+
i0.ɵɵelementEnd();
|
|
211
|
+
i0.ɵɵelementStart(20, "div", 15)(21, "label", 16)(22, "span");
|
|
212
|
+
i0.ɵɵtext(23);
|
|
213
|
+
i0.ɵɵelementEnd();
|
|
214
|
+
i0.ɵɵelementStart(24, "input", 19);
|
|
215
|
+
i0.ɵɵlistener("input", function EventDialogComponent_ng_container_4_Template_input_input_24_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onEndDate($event)); });
|
|
216
|
+
i0.ɵɵelementEnd()();
|
|
217
|
+
i0.ɵɵtemplate(25, EventDialogComponent_ng_container_4_input_25_Template, 1, 1, "input", 18);
|
|
218
|
+
i0.ɵɵelementEnd();
|
|
219
|
+
i0.ɵɵelementStart(26, "label", 16)(27, "span");
|
|
220
|
+
i0.ɵɵtext(28);
|
|
221
|
+
i0.ɵɵelementEnd();
|
|
222
|
+
i0.ɵɵelementStart(29, "div", 20)(30, "select", 21);
|
|
223
|
+
i0.ɵɵlistener("change", function EventDialogComponent_ng_container_4_Template_select_change_30_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onCategory($event)); });
|
|
224
|
+
i0.ɵɵtemplate(31, EventDialogComponent_ng_container_4_option_31_Template, 2, 3, "option", 22);
|
|
225
|
+
i0.ɵɵelementEnd();
|
|
226
|
+
i0.ɵɵelement(32, "span", 23);
|
|
227
|
+
i0.ɵɵelementEnd()();
|
|
228
|
+
i0.ɵɵtemplate(33, EventDialogComponent_ng_container_4_label_33_Template, 7, 4, "label", 24);
|
|
229
|
+
i0.ɵɵelementStart(34, "label", 16)(35, "span");
|
|
230
|
+
i0.ɵɵtext(36);
|
|
231
|
+
i0.ɵɵelementEnd();
|
|
232
|
+
i0.ɵɵelementStart(37, "input", 25);
|
|
233
|
+
i0.ɵɵlistener("input", function EventDialogComponent_ng_container_4_Template_input_input_37_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onLocation($event)); });
|
|
234
|
+
i0.ɵɵelementEnd()();
|
|
235
|
+
i0.ɵɵelementStart(38, "label", 16)(39, "span");
|
|
236
|
+
i0.ɵɵtext(40);
|
|
237
|
+
i0.ɵɵelementEnd();
|
|
238
|
+
i0.ɵɵelementStart(41, "textarea", 26);
|
|
239
|
+
i0.ɵɵlistener("input", function EventDialogComponent_ng_container_4_Template_textarea_input_41_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onDescription($event)); });
|
|
240
|
+
i0.ɵɵelementEnd()()();
|
|
241
|
+
i0.ɵɵtemplate(42, EventDialogComponent_ng_container_4_div_42_Template, 2, 1, "div", 27);
|
|
242
|
+
i0.ɵɵelementStart(43, "div", 28);
|
|
243
|
+
i0.ɵɵtemplate(44, EventDialogComponent_ng_container_4_button_44_Template, 2, 1, "button", 29)(45, EventDialogComponent_ng_container_4_button_45_Template, 2, 1, "button", 30);
|
|
244
|
+
i0.ɵɵelementStart(46, "div", 31)(47, "button", 32);
|
|
245
|
+
i0.ɵɵlistener("click", function EventDialogComponent_ng_container_4_Template_button_click_47_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.close.emit()); });
|
|
246
|
+
i0.ɵɵtext(48);
|
|
247
|
+
i0.ɵɵelementEnd();
|
|
248
|
+
i0.ɵɵelementStart(49, "button", 33);
|
|
249
|
+
i0.ɵɵlistener("click", function EventDialogComponent_ng_container_4_Template_button_click_49_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.handleSave()); });
|
|
250
|
+
i0.ɵɵtext(50);
|
|
251
|
+
i0.ɵɵelementEnd()()();
|
|
252
|
+
i0.ɵɵelementContainerEnd();
|
|
253
|
+
} if (rf & 2) {
|
|
254
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
255
|
+
i0.ɵɵadvance(3);
|
|
256
|
+
i0.ɵɵtextInterpolate(ctx_r2.isNew ? ctx_r2.config.locale.newEvent : ctx_r2.config.locale.editEvent);
|
|
257
|
+
i0.ɵɵadvance();
|
|
258
|
+
i0.ɵɵattribute("aria-label", ctx_r2.config.locale.close);
|
|
259
|
+
i0.ɵɵadvance(3);
|
|
260
|
+
i0.ɵɵproperty("placeholder", ctx_r2.config.locale.titlePlaceholder)("value", ctx_r2.draft.title);
|
|
261
|
+
i0.ɵɵadvance(3);
|
|
262
|
+
i0.ɵɵtextInterpolate(ctx_r2.config.locale.allDay);
|
|
263
|
+
i0.ɵɵadvance();
|
|
264
|
+
i0.ɵɵproperty("checked", ctx_r2.draft.allDay);
|
|
265
|
+
i0.ɵɵadvance();
|
|
266
|
+
i0.ɵɵproperty("ngIf", !ctx_r2.isInstance);
|
|
267
|
+
i0.ɵɵadvance();
|
|
268
|
+
i0.ɵɵproperty("ngIf", ctx_r2.isInstance);
|
|
269
|
+
i0.ɵɵadvance(4);
|
|
270
|
+
i0.ɵɵtextInterpolate(ctx_r2.config.locale.from);
|
|
271
|
+
i0.ɵɵadvance();
|
|
272
|
+
i0.ɵɵproperty("value", ctx_r2.draft.startDate);
|
|
273
|
+
i0.ɵɵadvance();
|
|
274
|
+
i0.ɵɵproperty("ngIf", !ctx_r2.draft.allDay);
|
|
275
|
+
i0.ɵɵadvance(4);
|
|
276
|
+
i0.ɵɵtextInterpolate(ctx_r2.config.locale.to);
|
|
277
|
+
i0.ɵɵadvance();
|
|
278
|
+
i0.ɵɵproperty("value", ctx_r2.draft.endDate)("min", ctx_r2.draft.startDate);
|
|
279
|
+
i0.ɵɵadvance();
|
|
280
|
+
i0.ɵɵproperty("ngIf", !ctx_r2.draft.allDay);
|
|
281
|
+
i0.ɵɵadvance(3);
|
|
282
|
+
i0.ɵɵtextInterpolate(ctx_r2.config.locale.category);
|
|
283
|
+
i0.ɵɵadvance(3);
|
|
284
|
+
i0.ɵɵproperty("ngForOf", ctx_r2.config.categories);
|
|
285
|
+
i0.ɵɵadvance();
|
|
286
|
+
i0.ɵɵstyleProp("background-color", ctx_r2.draft.color);
|
|
287
|
+
i0.ɵɵadvance();
|
|
288
|
+
i0.ɵɵproperty("ngIf", ctx_r2.config.resources.length > 0);
|
|
289
|
+
i0.ɵɵadvance(3);
|
|
290
|
+
i0.ɵɵtextInterpolate(ctx_r2.config.locale.location);
|
|
291
|
+
i0.ɵɵadvance();
|
|
292
|
+
i0.ɵɵproperty("value", ctx_r2.draft.location);
|
|
293
|
+
i0.ɵɵadvance(3);
|
|
294
|
+
i0.ɵɵtextInterpolate(ctx_r2.config.locale.description);
|
|
295
|
+
i0.ɵɵadvance();
|
|
296
|
+
i0.ɵɵproperty("value", ctx_r2.draft.description);
|
|
297
|
+
i0.ɵɵadvance();
|
|
298
|
+
i0.ɵɵproperty("ngIf", ctx_r2.validationErrors.length > 0);
|
|
299
|
+
i0.ɵɵadvance(2);
|
|
300
|
+
i0.ɵɵproperty("ngIf", !ctx_r2.isNew && ctx_r2.config.locale.delete !== false);
|
|
301
|
+
i0.ɵɵadvance();
|
|
302
|
+
i0.ɵɵproperty("ngIf", !ctx_r2.isNew && ctx_r2.history.length > 0);
|
|
303
|
+
i0.ɵɵadvance(3);
|
|
304
|
+
i0.ɵɵtextInterpolate(ctx_r2.config.locale.cancel);
|
|
305
|
+
i0.ɵɵadvance();
|
|
306
|
+
i0.ɵɵproperty("disabled", !ctx_r2.draft.title.trim());
|
|
307
|
+
i0.ɵɵadvance();
|
|
308
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.isNew ? ctx_r2.config.locale.create : ctx_r2.config.locale.save, " ");
|
|
309
|
+
} }
|
|
310
|
+
export class EventDialogComponent {
|
|
311
|
+
/** Controller-owned dialog state (draft, flags, validation). */
|
|
312
|
+
dialog;
|
|
313
|
+
config;
|
|
314
|
+
history = [];
|
|
315
|
+
/** Patch the controlled draft from raw input (controller applies the policy). */
|
|
316
|
+
setDraft = new EventEmitter();
|
|
317
|
+
/** Assemble + validate + save the held draft (controller owns all of it). */
|
|
318
|
+
save = new EventEmitter();
|
|
319
|
+
deleteEvent = new EventEmitter();
|
|
320
|
+
close = new EventEmitter();
|
|
321
|
+
dialogEl;
|
|
322
|
+
showHistory = false;
|
|
323
|
+
// ── Controlled-draft accessors (template reads only) ──
|
|
324
|
+
get draft() { return this.dialog.draft; }
|
|
325
|
+
get event() { return this.dialog.event; }
|
|
326
|
+
get isNew() { return this.dialog.isNew; }
|
|
327
|
+
get isInstance() { return this.dialog.isInstance; }
|
|
328
|
+
get validationErrors() { return this.dialog.validationErrors; }
|
|
329
|
+
// v0.29 Tastatur: Escape is routed element-scoped by the shared FocusTrapDirective
|
|
330
|
+
// (no window keydown); click-outside is the backdrop element's (click). Focus restores
|
|
331
|
+
// to the opener else the `.calendar` root via the trap's closest()-anchor (the dialog
|
|
332
|
+
// is a `.calendar` descendant). Stable arrow so the template can bind it.
|
|
333
|
+
onEscape = () => this.close.emit();
|
|
334
|
+
ngAfterViewInit() {
|
|
335
|
+
if (!this.dialogEl)
|
|
336
|
+
return;
|
|
337
|
+
const el = this.dialogEl.nativeElement;
|
|
338
|
+
const rect = el.getBoundingClientRect();
|
|
339
|
+
const anchorRect = this.dialog.anchorRect;
|
|
340
|
+
const vw = window.innerWidth;
|
|
341
|
+
const vh = window.innerHeight;
|
|
342
|
+
let left = anchorRect.right + 8;
|
|
343
|
+
if (left + rect.width > vw - 16)
|
|
344
|
+
left = anchorRect.left - rect.width - 8;
|
|
345
|
+
if (left < 16)
|
|
346
|
+
left = Math.max(16, anchorRect.left + anchorRect.width / 2 - rect.width / 2);
|
|
347
|
+
let top = anchorRect.top;
|
|
348
|
+
if (top + rect.height > vh - 16)
|
|
349
|
+
top = vh - rect.height - 16;
|
|
350
|
+
if (top < 16)
|
|
351
|
+
top = 16;
|
|
352
|
+
el.style.left = `${left}px`;
|
|
353
|
+
el.style.top = `${top}px`;
|
|
354
|
+
}
|
|
355
|
+
trackResource(_, r) { return r.id; }
|
|
356
|
+
openHistory() { this.showHistory = true; }
|
|
357
|
+
hideHistory() { this.showHistory = false; }
|
|
358
|
+
// ── Raw-input → setDraft (controller applies derived policy) ──
|
|
359
|
+
value(e) { return e.target.value; }
|
|
360
|
+
checked(e) { return e.target.checked; }
|
|
361
|
+
onTitle(e) { this.setDraft.emit({ title: this.value(e) }); }
|
|
362
|
+
onAllDay(e) { this.setDraft.emit({ allDay: this.checked(e) }); }
|
|
363
|
+
onRecurring(e) { this.setDraft.emit({ recurring: this.checked(e) }); }
|
|
364
|
+
onRecInterval(e) { this.setDraft.emit({ recInterval: parseInt(this.value(e)) }); }
|
|
365
|
+
onRecFreq(e) { this.setDraft.emit({ recFreq: e.target.value }); }
|
|
366
|
+
onRecUntil(e) { this.setDraft.emit({ recUntil: this.value(e) }); }
|
|
367
|
+
onStartDate(e) { this.setDraft.emit({ startDate: this.value(e) }); }
|
|
368
|
+
onStartTime(e) { this.setDraft.emit({ startTime: this.value(e) }); }
|
|
369
|
+
onEndDate(e) { this.setDraft.emit({ endDate: this.value(e) }); }
|
|
370
|
+
onEndTime(e) { this.setDraft.emit({ endTime: this.value(e) }); }
|
|
371
|
+
onCategory(e) { this.setDraft.emit({ category: e.target.value }); }
|
|
372
|
+
onResourceId(e) { this.setDraft.emit({ resourceId: e.target.value }); }
|
|
373
|
+
onLocation(e) { this.setDraft.emit({ location: this.value(e) }); }
|
|
374
|
+
onDescription(e) { this.setDraft.emit({ description: e.target.value }); }
|
|
375
|
+
handleKeyDown(e) {
|
|
376
|
+
if (e.key === 'Enter' && !e.shiftKey) {
|
|
377
|
+
e.preventDefault();
|
|
378
|
+
this.handleSave();
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
handleSave() { this.save.emit(); }
|
|
382
|
+
static ɵfac = function EventDialogComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || EventDialogComponent)(); };
|
|
383
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EventDialogComponent, selectors: [["cal-event-dialog"]], viewQuery: function EventDialogComponent_Query(rf, ctx) { if (rf & 1) {
|
|
384
|
+
i0.ɵɵviewQuery(_c0, 5);
|
|
385
|
+
} if (rf & 2) {
|
|
386
|
+
let _t;
|
|
387
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dialogEl = _t.first);
|
|
388
|
+
} }, hostAttrs: [2, "display", "contents"], inputs: { dialog: "dialog", config: "config", history: "history" }, outputs: { setDraft: "setDraft", save: "save", deleteEvent: "deleteEvent", close: "close" }, decls: 5, vars: 4, consts: [["dialogEl", ""], [1, "dialog-backdrop", 3, "click"], ["role", "dialog", "aria-modal", "true", "bmFocusTrap", "", 1, "event-dialog", 3, "keydown", "bmFocusTrapOnEscape"], [3, "eventId", "history", "locale", "back", 4, "ngIf"], [4, "ngIf"], [3, "back", "eventId", "history", "locale"], [1, "dialog-header"], [1, "dialog-title"], [1, "dialog-close", 3, "click"], [1, "dialog-body"], ["type", "text", 1, "dialog-input", "dialog-input--title", 3, "input", "placeholder", "value"], [1, "dialog-toggle"], ["type", "checkbox", 3, "change", "checked"], ["class", "dialog-recurrence", 4, "ngIf"], ["style", "font-size: 12px; color: var(--cal-color-text-muted); padding: 4px 0;", 4, "ngIf"], [1, "dialog-row"], [1, "dialog-label"], ["type", "date", 1, "dialog-input", 3, "input", "value"], ["class", "dialog-input dialog-input--time", "type", "time", 3, "value", "input", 4, "ngIf"], ["type", "date", 1, "dialog-input", 3, "input", "value", "min"], [1, "dialog-category-row"], [1, "dialog-input", 3, "change"], [3, "value", "selected", 4, "ngFor", "ngForOf"], [1, "category-dot"], ["class", "dialog-label", 4, "ngIf"], ["type", "text", 1, "dialog-input", 3, "input", "value"], [1, "dialog-input", "dialog-input--description", 3, "input", "value"], ["class", "dialog-errors", 4, "ngIf"], [1, "dialog-footer"], ["class", "dialog-btn dialog-btn--delete", 3, "click", 4, "ngIf"], ["class", "dialog-btn dialog-btn--history", 3, "click", 4, "ngIf"], [1, "dialog-footer-right"], [1, "dialog-btn", "dialog-btn--cancel", 3, "click"], [1, "dialog-btn", "dialog-btn--save", 3, "click", "disabled"], [1, "dialog-recurrence"], ["class", "dialog-row", "style", "gap: 8px; align-items: center;", 4, "ngIf"], [1, "dialog-row", 2, "gap", "8px", "align-items", "center"], [2, "font-size", "13px"], ["type", "number", "min", "1", "max", "99", 1, "dialog-input", 2, "width", "50px", 3, "input", "value"], ["value", "daily", 3, "selected"], ["value", "weekly", 3, "selected"], ["value", "monthly", 3, "selected"], ["value", "yearly", 3, "selected"], [1, "dialog-label", 2, "flex-direction", "row", "align-items", "center", "gap", "6px"], [2, "font-size", "12px", "color", "var(--cal-color-text-muted)", "padding", "4px 0"], ["type", "time", 1, "dialog-input", "dialog-input--time", 3, "input", "value"], [3, "value", "selected"], ["value", "", 3, "selected"], [3, "value", "selected", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "dialog-errors"], ["class", "dialog-error", 4, "ngFor", "ngForOf"], [1, "dialog-error"], [1, "dialog-btn", "dialog-btn--delete", 3, "click"], [1, "dialog-btn", "dialog-btn--history", 3, "click"]], template: function EventDialogComponent_Template(rf, ctx) { if (rf & 1) {
|
|
389
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
390
|
+
i0.ɵɵelementStart(0, "div", 1);
|
|
391
|
+
i0.ɵɵlistener("click", function EventDialogComponent_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.close.emit()); });
|
|
392
|
+
i0.ɵɵelementEnd();
|
|
393
|
+
i0.ɵɵelementStart(1, "div", 2, 0);
|
|
394
|
+
i0.ɵɵlistener("keydown", function EventDialogComponent_Template_div_keydown_1_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleKeyDown($event)); });
|
|
395
|
+
i0.ɵɵtemplate(3, EventDialogComponent_cal_event_history_3_Template, 1, 3, "cal-event-history", 3)(4, EventDialogComponent_ng_container_4_Template, 51, 30, "ng-container", 4);
|
|
396
|
+
i0.ɵɵelementEnd();
|
|
397
|
+
} if (rf & 2) {
|
|
398
|
+
i0.ɵɵadvance();
|
|
399
|
+
i0.ɵɵproperty("bmFocusTrapOnEscape", ctx.onEscape);
|
|
400
|
+
i0.ɵɵattribute("aria-label", ctx.isNew ? ctx.config.locale.newEvent : ctx.config.locale.editEvent);
|
|
401
|
+
i0.ɵɵadvance(2);
|
|
402
|
+
i0.ɵɵproperty("ngIf", ctx.showHistory && ctx.event);
|
|
403
|
+
i0.ɵɵadvance();
|
|
404
|
+
i0.ɵɵproperty("ngIf", !ctx.showHistory || !ctx.event);
|
|
405
|
+
} }, dependencies: [CommonModule, i1.NgForOf, i1.NgIf, EventHistoryComponent, FocusTrapDirective], encapsulation: 2 });
|
|
406
|
+
}
|
|
407
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EventDialogComponent, [{
|
|
408
|
+
type: Component,
|
|
409
|
+
args: [{
|
|
410
|
+
selector: 'cal-event-dialog',
|
|
411
|
+
standalone: true,
|
|
412
|
+
host: { style: 'display: contents' },
|
|
413
|
+
imports: [CommonModule, EventHistoryComponent, FocusTrapDirective],
|
|
414
|
+
template: `
|
|
415
|
+
<div class="dialog-backdrop" (click)="close.emit()"></div>
|
|
416
|
+
<div #dialogEl class="event-dialog" role="dialog" aria-modal="true"
|
|
417
|
+
[attr.aria-label]="isNew ? config.locale.newEvent : config.locale.editEvent"
|
|
418
|
+
(keydown)="handleKeyDown($event)"
|
|
419
|
+
bmFocusTrap [bmFocusTrapOnEscape]="onEscape">
|
|
420
|
+
<cal-event-history *ngIf="showHistory && event"
|
|
421
|
+
[eventId]="event.id"
|
|
422
|
+
[history]="history"
|
|
423
|
+
[locale]="config.locale"
|
|
424
|
+
(back)="hideHistory()">
|
|
425
|
+
</cal-event-history>
|
|
426
|
+
|
|
427
|
+
<ng-container *ngIf="!showHistory || !event">
|
|
428
|
+
<div class="dialog-header">
|
|
429
|
+
<span class="dialog-title">{{ isNew ? config.locale.newEvent : config.locale.editEvent }}</span>
|
|
430
|
+
<button class="dialog-close" [attr.aria-label]="config.locale.close" (click)="close.emit()">×</button>
|
|
431
|
+
</div>
|
|
432
|
+
|
|
433
|
+
<div class="dialog-body">
|
|
434
|
+
<input class="dialog-input dialog-input--title" type="text"
|
|
435
|
+
[placeholder]="config.locale.titlePlaceholder"
|
|
436
|
+
[value]="draft.title" (input)="onTitle($event)" />
|
|
437
|
+
|
|
438
|
+
<label class="dialog-toggle">
|
|
439
|
+
<span>{{ config.locale.allDay }}</span>
|
|
440
|
+
<input type="checkbox" [checked]="draft.allDay" (change)="onAllDay($event)" />
|
|
441
|
+
</label>
|
|
442
|
+
|
|
443
|
+
<div class="dialog-recurrence" *ngIf="!isInstance">
|
|
444
|
+
<label class="dialog-toggle">
|
|
445
|
+
<span>Wiederholen</span>
|
|
446
|
+
<input type="checkbox" [checked]="draft.recurring" (change)="onRecurring($event)" />
|
|
447
|
+
</label>
|
|
448
|
+
<div *ngIf="draft.recurring" class="dialog-row" style="gap: 8px; align-items: center;">
|
|
449
|
+
<span style="font-size: 13px;">Alle</span>
|
|
450
|
+
<input class="dialog-input" type="number" min="1" max="99" style="width: 50px;"
|
|
451
|
+
[value]="draft.recInterval" (input)="onRecInterval($event)" />
|
|
452
|
+
<select class="dialog-input" (change)="onRecFreq($event)">
|
|
453
|
+
<option value="daily" [selected]="draft.recFreq === 'daily'">Tage</option>
|
|
454
|
+
<option value="weekly" [selected]="draft.recFreq === 'weekly'">Wochen</option>
|
|
455
|
+
<option value="monthly" [selected]="draft.recFreq === 'monthly'">Monate</option>
|
|
456
|
+
<option value="yearly" [selected]="draft.recFreq === 'yearly'">Jahre</option>
|
|
457
|
+
</select>
|
|
458
|
+
<label class="dialog-label" style="flex-direction: row; align-items: center; gap: 6px;">
|
|
459
|
+
<span style="font-size: 13px;">bis</span>
|
|
460
|
+
<input class="dialog-input" type="date" [value]="draft.recUntil" (input)="onRecUntil($event)" />
|
|
461
|
+
</label>
|
|
462
|
+
</div>
|
|
463
|
+
</div>
|
|
464
|
+
|
|
465
|
+
<div *ngIf="isInstance" style="font-size: 12px; color: var(--cal-color-text-muted); padding: 4px 0;">
|
|
466
|
+
↻ Instanz einer wiederkehrenden Serie
|
|
467
|
+
</div>
|
|
468
|
+
|
|
469
|
+
<div class="dialog-row">
|
|
470
|
+
<label class="dialog-label">
|
|
471
|
+
<span>{{ config.locale.from }}</span>
|
|
472
|
+
<input class="dialog-input" type="date" [value]="draft.startDate" (input)="onStartDate($event)" />
|
|
473
|
+
</label>
|
|
474
|
+
<input *ngIf="!draft.allDay" class="dialog-input dialog-input--time" type="time"
|
|
475
|
+
[value]="draft.startTime" (input)="onStartTime($event)" />
|
|
476
|
+
</div>
|
|
477
|
+
|
|
478
|
+
<div class="dialog-row">
|
|
479
|
+
<label class="dialog-label">
|
|
480
|
+
<span>{{ config.locale.to }}</span>
|
|
481
|
+
<input class="dialog-input" type="date" [value]="draft.endDate" [min]="draft.startDate" (input)="onEndDate($event)" />
|
|
482
|
+
</label>
|
|
483
|
+
<input *ngIf="!draft.allDay" class="dialog-input dialog-input--time" type="time"
|
|
484
|
+
[value]="draft.endTime" (input)="onEndTime($event)" />
|
|
485
|
+
</div>
|
|
486
|
+
|
|
487
|
+
<label class="dialog-label">
|
|
488
|
+
<span>{{ config.locale.category }}</span>
|
|
489
|
+
<div class="dialog-category-row">
|
|
490
|
+
<select class="dialog-input" (change)="onCategory($event)">
|
|
491
|
+
<option *ngFor="let cat of config.categories" [value]="cat.name" [selected]="cat.name === draft.category">{{ cat.name }}</option>
|
|
492
|
+
</select>
|
|
493
|
+
<span class="category-dot" [style.background-color]="draft.color"></span>
|
|
494
|
+
</div>
|
|
495
|
+
</label>
|
|
496
|
+
|
|
497
|
+
<label class="dialog-label" *ngIf="config.resources.length > 0">
|
|
498
|
+
<span>{{ config.locale.resources || 'Resources' }}</span>
|
|
499
|
+
<select class="dialog-input" (change)="onResourceId($event)">
|
|
500
|
+
<option value="" [selected]="draft.resourceId === ''">—</option>
|
|
501
|
+
<option *ngFor="let r of config.resources; trackBy: trackResource" [value]="r.id" [selected]="r.id === draft.resourceId">{{ r.name }}</option>
|
|
502
|
+
</select>
|
|
503
|
+
</label>
|
|
504
|
+
|
|
505
|
+
<label class="dialog-label">
|
|
506
|
+
<span>{{ config.locale.location }}</span>
|
|
507
|
+
<input class="dialog-input" type="text" [value]="draft.location" (input)="onLocation($event)" />
|
|
508
|
+
</label>
|
|
509
|
+
|
|
510
|
+
<label class="dialog-label">
|
|
511
|
+
<span>{{ config.locale.description }}</span>
|
|
512
|
+
<textarea class="dialog-input dialog-input--description" [value]="draft.description" (input)="onDescription($event)"></textarea>
|
|
513
|
+
</label>
|
|
514
|
+
</div>
|
|
515
|
+
|
|
516
|
+
<div class="dialog-errors" *ngIf="validationErrors.length > 0">
|
|
517
|
+
<div *ngFor="let err of validationErrors" class="dialog-error">{{ err }}</div>
|
|
518
|
+
</div>
|
|
519
|
+
|
|
520
|
+
<div class="dialog-footer">
|
|
521
|
+
<button *ngIf="!isNew && config.locale.delete !== false" class="dialog-btn dialog-btn--delete" (click)="deleteEvent.emit(event!.id)">
|
|
522
|
+
{{ config.locale.delete }}
|
|
523
|
+
</button>
|
|
524
|
+
<button *ngIf="!isNew && history.length > 0" class="dialog-btn dialog-btn--history" (click)="openHistory()">
|
|
525
|
+
{{ config.locale.history }}
|
|
526
|
+
</button>
|
|
527
|
+
<div class="dialog-footer-right">
|
|
528
|
+
<button class="dialog-btn dialog-btn--cancel" (click)="close.emit()">{{ config.locale.cancel }}</button>
|
|
529
|
+
<button class="dialog-btn dialog-btn--save" (click)="handleSave()" [disabled]="!draft.title.trim()">
|
|
530
|
+
{{ isNew ? config.locale.create : config.locale.save }}
|
|
531
|
+
</button>
|
|
532
|
+
</div>
|
|
533
|
+
</div>
|
|
534
|
+
</ng-container>
|
|
535
|
+
</div>
|
|
536
|
+
`,
|
|
537
|
+
}]
|
|
538
|
+
}], null, { dialog: [{
|
|
539
|
+
type: Input
|
|
540
|
+
}], config: [{
|
|
541
|
+
type: Input
|
|
542
|
+
}], history: [{
|
|
543
|
+
type: Input
|
|
544
|
+
}], setDraft: [{
|
|
545
|
+
type: Output
|
|
546
|
+
}], save: [{
|
|
547
|
+
type: Output
|
|
548
|
+
}], deleteEvent: [{
|
|
549
|
+
type: Output
|
|
550
|
+
}], close: [{
|
|
551
|
+
type: Output
|
|
552
|
+
}], dialogEl: [{
|
|
553
|
+
type: ViewChild,
|
|
554
|
+
args: ['dialogEl']
|
|
555
|
+
}] }); })();
|
|
556
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EventDialogComponent, { className: "EventDialogComponent", filePath: "components/eventdialog.ts", lineNumber: 138 }); })();
|
|
557
|
+
//# sourceMappingURL=EventDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventDialog.js","sourceRoot":"","sources":["../../src/components/EventDialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAiB,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC7G,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;;;;;;IAapD,4CAIyB;IAAvB,uMAAQ,oBAAa,KAAC;IACxB,iBAAoB;;;IAFlB,AADA,AADA,yCAAoB,2BACD,gCACK;;;;IA0BlB,AADF,+BAAuF,eACtD;IAAA,oBAAI;IAAA,iBAAO;IAC1C,iCACgE;IAAlC,4MAAS,4BAAqB,KAAC;IAD7D,iBACgE;IAChE,kCAA0D;IAA7B,+MAAU,wBAAiB,KAAC;IACvD,kCAA6D;IAAA,oBAAI;IAAA,iBAAS;IAC1E,kCAA+D;IAAA,sBAAM;IAAA,iBAAS;IAC9E,kCAAiE;IAAA,uBAAM;IAAA,iBAAS;IAChF,mCAA+D;IAAA,sBAAK;IACtE,AADsE,iBAAS,EACtE;IAEP,AADF,kCAAwF,gBACvD;IAAA,oBAAG;IAAA,iBAAO;IACzC,kCAAgG;IAA/B,6MAAS,yBAAkB,KAAC;IAEjG,AADE,AADE,iBAAgG,EAC1F,EACJ;;;IAXF,eAA2B;IAA3B,gDAA2B;IAEL,eAAsC;IAAtC,2DAAsC;IACrC,eAAuC;IAAvC,4DAAuC;IACtC,eAAwC;IAAxC,6DAAwC;IACzC,eAAuC;IAAvC,4DAAuC;IAItB,eAAwB;IAAxB,6CAAwB;;;;IAflE,AADF,AADF,+BAAmD,gBACpB,WACrB;IAAA,2BAAW;IAAA,iBAAO;IACxB,iCAAoF;IAAjC,wMAAU,0BAAmB,KAAC;IACnF,AADE,iBAAoF,EAC9E;IACR,6FAAuF;IAezF,iBAAM;;;IAjBqB,eAA2B;IAA3B,gDAA2B;IAE9C,cAAqB;IAArB,6CAAqB;;;IAiB7B,+BAAqG;IACnG,4DACF;IAAA,iBAAM;;;;IAOJ,iCAC4D;IAAhC,wMAAS,0BAAmB,KAAC;IADzD,iBAC4D;;;IAA1D,8CAAyB;;;;IAQ3B,iCACwD;IAA9B,wMAAS,wBAAiB,KAAC;IADrD,iBACwD;;;IAAtD,4CAAuB;;;IAOrB,kCAA0G;IAAA,YAAc;IAAA,iBAAS;;;;IAAhE,AAAnB,mCAAkB,mDAAyC;IAAC,cAAc;IAAd,iCAAc;;;IAU1H,kCAAyH;IAAA,YAAY;IAAA,iBAAS;;;;IAA5D,AAAf,gCAAc,kDAAuC;IAAC,cAAY;IAAZ,gCAAY;;;;IAHvI,AADF,iCAAgE,WACxD;IAAA,YAA4C;IAAA,iBAAO;IACzD,kCAA6D;IAAhC,4MAAU,2BAAoB,KAAC;IAC1D,kCAAsD;IAAA,sBAAC;IAAA,iBAAS;IAChE,oGAAyH;IAE7H,AADE,iBAAS,EACH;;;IALA,eAA4C;IAA5C,mEAA4C;IAE/B,eAAoC;IAApC,yDAAoC;IAC/B,eAAqB;IAAA,AAArB,iDAAqB,sCAAsB;;;IAgBrE,+BAA+D;IAAA,YAAS;IAAA,iBAAM;;;IAAf,cAAS;IAAT,6BAAS;;;IAD1E,+BAA+D;IAC7D,4FAA+D;IACjE,iBAAM;;;IADiB,cAAmB;IAAnB,iDAAmB;;;;IAIxC,kCAAqI;IAAtC,qMAAS,wCAA2B,KAAC;IAClI,YACF;IAAA,iBAAS;;;IADP,cACF;IADE,4DACF;;;;IACA,kCAA4G;IAAxB,qMAAS,oBAAa,KAAC;IACzG,YACF;IAAA,iBAAS;;;IADP,cACF;IADE,6DACF;;;;IAnGJ,6BAA6C;IAEzC,AADF,8BAA2B,cACE;IAAA,YAA8D;IAAA,iBAAO;IAChG,iCAA4F;IAAvB,yLAAS,mBAAY,KAAC;IAAC,sBAAO;IACrG,AADqG,iBAAS,EACxG;IAGJ,AADF,8BAAyB,gBAG6B;IAA5B,8LAAS,sBAAe,KAAC;IAFjD,iBAEoD;IAGlD,AADF,iCAA6B,WACrB;IAAA,aAA0B;IAAA,iBAAO;IACvC,kCAA8E;IAA9B,iMAAU,uBAAgB,KAAC;IAC7E,AADE,iBAA8E,EACxE;IAwBR,AAtBA,uFAAmD,0EAsBkD;IAMjG,AADF,AADF,gCAAwB,iBACM,YACpB;IAAA,aAAwB;IAAA,iBAAO;IACrC,kCAAkG;IAAhC,+LAAS,0BAAmB,KAAC;IACjG,AADE,iBAAkG,EAC5F;IACR,2FAC4D;IAC9D,iBAAM;IAIF,AADF,AADF,gCAAwB,iBACM,YACpB;IAAA,aAAsB;IAAA,iBAAO;IACnC,kCAAsH;IAA9B,+LAAS,wBAAiB,KAAC;IACrH,AADE,iBAAsH,EAChH;IACR,2FACwD;IAC1D,iBAAM;IAGJ,AADF,kCAA4B,YACpB;IAAA,aAA4B;IAAA,iBAAO;IAEvC,AADF,gCAAiC,kBAC4B;IAA9B,kMAAU,yBAAkB,KAAC;IACxD,6FAA0G;IAC5G,iBAAS;IACT,4BAAyE;IAE7E,AADE,iBAAM,EACA;IAER,2FAAgE;IAS9D,AADF,kCAA4B,YACpB;IAAA,aAA4B;IAAA,iBAAO;IACzC,kCAAgG;IAA/B,+LAAS,yBAAkB,KAAC;IAC/F,AADE,iBAAgG,EAC1F;IAGN,AADF,kCAA4B,YACpB;IAAA,aAA+B;IAAA,iBAAO;IAC5C,qCAAqH;IAAhC,kMAAS,4BAAqB,KAAC;IAExH,AADE,AADuH,iBAAW,EAC1H,EACJ;IAEN,uFAA+D;IAI/D,gCAA2B;IAIzB,AAHA,6FAAqI,gFAGzB;IAI1G,AADF,gCAAiC,kBACsC;IAAvB,0LAAS,mBAAY,KAAC;IAAC,aAA0B;IAAA,iBAAS;IACxG,mCAAoG;IAAxD,0LAAS,mBAAY,KAAC;IAChE,aACF;IAEJ,AADE,AADE,iBAAS,EACL,EACF;;;;IAxGuB,eAA8D;IAA9D,mGAA8D;IAC5D,cAAuC;;IAKlE,eAA8C;IAC9C,AADA,mEAA8C,6BACzB;IAGf,eAA0B;IAA1B,iDAA0B;IACT,cAAwB;IAAxB,6CAAwB;IAGjB,cAAiB;IAAjB,yCAAiB;IAsB3C,cAAgB;IAAhB,wCAAgB;IAMZ,eAAwB;IAAxB,+CAAwB;IACU,cAAyB;IAAzB,8CAAyB;IAE3D,cAAmB;IAAnB,2CAAmB;IAMnB,eAAsB;IAAtB,6CAAsB;IACY,cAAuB;IAAC,AAAxB,4CAAuB,+BAAwB;IAEjF,cAAmB;IAAnB,2CAAmB;IAKrB,eAA4B;IAA5B,mDAA4B;IAGN,eAAoB;IAApB,kDAAoB;IAEnB,cAAsC;IAAtC,sDAAsC;IAIxC,cAAiC;IAAjC,yDAAiC;IAStD,eAA4B;IAA5B,mDAA4B;IACM,cAAwB;IAAxB,6CAAwB;IAI1D,eAA+B;IAA/B,sDAA+B;IACoB,cAA2B;IAA3B,gDAA2B;IAI5D,cAAiC;IAAjC,yDAAiC;IAKlD,eAA8C;IAA9C,6EAA8C;IAG9C,cAAkC;IAAlC,iEAAkC;IAI4B,eAA0B;IAA1B,iDAA0B;IAC5B,cAAgC;IAAhC,qDAAgC;IACjG,cACF;IADE,uGACF;;AAOZ,MAAM,OAAO,oBAAoB;IAC/B,gEAAgE;IACvD,MAAM,CAAe;IACrB,MAAM,CAAkB;IACxB,OAAO,GAAkB,EAAE,CAAC;IACrC,iFAAiF;IACvE,QAAQ,GAAG,IAAI,YAAY,EAAuB,CAAC;IAC7D,6EAA6E;IACnE,IAAI,GAAG,IAAI,YAAY,EAAQ,CAAC;IAChC,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;IACzC,KAAK,GAAG,IAAI,YAAY,EAAQ,CAAC;IAEpB,QAAQ,CAA8B;IAE7D,WAAW,GAAG,KAAK,CAAC;IAEpB,yDAAyD;IACzD,IAAI,KAAK,KAAiB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC,IAAI,KAAK,KAAc,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,IAAI,UAAU,KAAc,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5D,IAAI,gBAAgB,KAAwB,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAElF,mFAAmF;IACnF,uFAAuF;IACvF,sFAAsF;IACtF,0EAA0E;IACjE,QAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAE5C,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;QACvC,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAqB,CAAC;QACrD,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;QAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;QAE9B,IAAI,IAAI,GAAG,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;QAChC,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,EAAE;YAAE,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACzE,IAAI,IAAI,GAAG,EAAE;YAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAE5F,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;QACzB,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE;YAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAC7D,IAAI,GAAG,GAAG,EAAE;YAAE,GAAG,GAAG,EAAE,CAAC;QAEvB,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC;QAC5B,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,aAAa,CAAC,CAAS,EAAE,CAAiB,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5D,WAAW,KAAK,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC;IAC1C,WAAW,KAAK,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC;IAE3C,iEAAiE;IACzD,KAAK,CAAC,CAAQ,IAAY,OAAQ,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAC,CAAC,CAAC;IACxE,OAAO,CAAC,CAAQ,IAAa,OAAQ,CAAC,CAAC,MAA2B,CAAC,OAAO,CAAC,CAAC,CAAC;IAErF,OAAO,CAAC,CAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnE,QAAQ,CAAC,CAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,WAAW,CAAC,CAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7E,aAAa,CAAC,CAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzF,SAAS,CAAC,CAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,CAAC,CAAC,MAA4B,CAAC,KAA8B,EAAE,CAAC,CAAC,CAAC,CAAC;IACxH,UAAU,CAAC,CAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,WAAW,CAAC,CAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3E,WAAW,CAAC,CAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3E,SAAS,CAAC,CAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,SAAS,CAAC,CAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,UAAU,CAAC,CAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAG,CAAC,CAAC,MAA4B,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACjG,YAAY,CAAC,CAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,EAAG,CAAC,CAAC,MAA4B,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACrG,UAAU,CAAC,CAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,aAAa,CAAC,CAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,EAAG,CAAC,CAAC,MAA8B,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAEzG,aAAa,CAAC,CAAgB;QAC5B,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YACrC,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED,UAAU,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;8GAhFvB,oBAAoB;6DAApB,oBAAoB;;;;;;;YA3H7B,8BAAoD;YAAvB,oIAAS,gBAAY,KAAC;YAAC,iBAAM;YAC1D,iCAG+C;YAD7C,8IAAW,yBAAqB,KAAC;YASjC,AAPA,iGAIyB,4EAGoB;YA4G/C,iBAAM;;YApHQ,cAAgC;YAAhC,kDAAgC;;YACxB,eAA0B;YAA1B,mDAA0B;YAO/B,cAA4B;YAA5B,qDAA4B;4BAdrC,YAAY,uBAAE,qBAAqB,EAAE,kBAAkB;;iFA6HtD,oBAAoB;cAjIhC,SAAS;eAAC;gBACT,QAAQ,EAAE,kBAAkB;gBAC5B,UAAU,EAAE,IAAI;gBAChB,IAAI,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE;gBACpC,OAAO,EAAE,CAAC,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,CAAC;gBAClE,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0HT;aACF;gBAGU,MAAM;kBAAd,KAAK;YACG,MAAM;kBAAd,KAAK;YACG,OAAO;kBAAf,KAAK;YAEI,QAAQ;kBAAjB,MAAM;YAEG,IAAI;kBAAb,MAAM;YACG,WAAW;kBAApB,MAAM;YACG,KAAK;kBAAd,MAAM;YAEgB,QAAQ;kBAA9B,SAAS;mBAAC,UAAU;;kFAZV,oBAAoB"}
|