@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.
Files changed (112) hide show
  1. package/LICENSE +129 -0
  2. package/README.md +56 -0
  3. package/dist/binding/config.d.ts +6 -0
  4. package/dist/binding/config.d.ts.map +1 -0
  5. package/dist/binding/config.js +6 -0
  6. package/dist/binding/config.js.map +1 -0
  7. package/dist/binding/controller.d.ts +22 -0
  8. package/dist/binding/controller.d.ts.map +1 -0
  9. package/dist/binding/controller.js +17 -0
  10. package/dist/binding/controller.js.map +1 -0
  11. package/dist/binding/index.d.ts +24 -0
  12. package/dist/binding/index.d.ts.map +1 -0
  13. package/dist/binding/index.js +26 -0
  14. package/dist/binding/index.js.map +1 -0
  15. package/dist/binding/services/event-render.service.d.ts +40 -0
  16. package/dist/binding/services/event-render.service.d.ts.map +1 -0
  17. package/dist/binding/services/event-render.service.js +58 -0
  18. package/dist/binding/services/event-render.service.js.map +1 -0
  19. package/dist/binding/types.d.ts +128 -0
  20. package/dist/binding/types.d.ts.map +1 -0
  21. package/dist/binding/types.js +12 -0
  22. package/dist/binding/types.js.map +1 -0
  23. package/dist/binding/utils/date-strings.d.ts +16 -0
  24. package/dist/binding/utils/date-strings.d.ts.map +1 -0
  25. package/dist/binding/utils/date-strings.js +30 -0
  26. package/dist/binding/utils/date-strings.js.map +1 -0
  27. package/dist/binding/utils/gridUtils.d.ts +6 -0
  28. package/dist/binding/utils/gridUtils.d.ts.map +1 -0
  29. package/dist/binding/utils/gridUtils.js +13 -0
  30. package/dist/binding/utils/gridUtils.js.map +1 -0
  31. package/dist/binding/view-configs.d.ts +6 -0
  32. package/dist/binding/view-configs.d.ts.map +1 -0
  33. package/dist/binding/view-configs.js +6 -0
  34. package/dist/binding/view-configs.js.map +1 -0
  35. package/dist/components/Calendar.d.ts +110 -0
  36. package/dist/components/Calendar.d.ts.map +1 -0
  37. package/dist/components/Calendar.js +554 -0
  38. package/dist/components/Calendar.js.map +1 -0
  39. package/dist/components/CalendarHeader.d.ts +17 -0
  40. package/dist/components/CalendarHeader.d.ts.map +1 -0
  41. package/dist/components/CalendarHeader.js +105 -0
  42. package/dist/components/CalendarHeader.js.map +1 -0
  43. package/dist/components/CategoryFilter.d.ts +11 -0
  44. package/dist/components/CategoryFilter.d.ts.map +1 -0
  45. package/dist/components/CategoryFilter.js +66 -0
  46. package/dist/components/CategoryFilter.js.map +1 -0
  47. package/dist/components/EventBar.d.ts +56 -0
  48. package/dist/components/EventBar.d.ts.map +1 -0
  49. package/dist/components/EventBar.js +328 -0
  50. package/dist/components/EventBar.js.map +1 -0
  51. package/dist/components/EventDialog.d.ts +52 -0
  52. package/dist/components/EventDialog.d.ts.map +1 -0
  53. package/dist/components/EventDialog.js +557 -0
  54. package/dist/components/EventDialog.js.map +1 -0
  55. package/dist/components/EventHistory.d.ts +17 -0
  56. package/dist/components/EventHistory.d.ts.map +1 -0
  57. package/dist/components/EventHistory.js +166 -0
  58. package/dist/components/EventHistory.js.map +1 -0
  59. package/dist/components/ResourceFilter.d.ts +12 -0
  60. package/dist/components/ResourceFilter.d.ts.map +1 -0
  61. package/dist/components/ResourceFilter.js +67 -0
  62. package/dist/components/ResourceFilter.js.map +1 -0
  63. package/dist/components/UndoToast.d.ts +20 -0
  64. package/dist/components/UndoToast.d.ts.map +1 -0
  65. package/dist/components/UndoToast.js +90 -0
  66. package/dist/components/UndoToast.js.map +1 -0
  67. package/dist/index.d.ts +20 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +25 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/styles/index.css +1 -0
  72. package/dist/views/agenda/AgendaView.d.ts +54 -0
  73. package/dist/views/agenda/AgendaView.d.ts.map +1 -0
  74. package/dist/views/agenda/AgendaView.js +309 -0
  75. package/dist/views/agenda/AgendaView.js.map +1 -0
  76. package/dist/views/day/DayView.d.ts +85 -0
  77. package/dist/views/day/DayView.d.ts.map +1 -0
  78. package/dist/views/day/DayView.js +422 -0
  79. package/dist/views/day/DayView.js.map +1 -0
  80. package/dist/views/month/MonthView.d.ts +51 -0
  81. package/dist/views/month/MonthView.d.ts.map +1 -0
  82. package/dist/views/month/MonthView.js +184 -0
  83. package/dist/views/month/MonthView.js.map +1 -0
  84. package/dist/views/month/WeekRow.d.ts +89 -0
  85. package/dist/views/month/WeekRow.d.ts.map +1 -0
  86. package/dist/views/month/WeekRow.js +548 -0
  87. package/dist/views/month/WeekRow.js.map +1 -0
  88. package/dist/views/resource/ResourceView.d.ts +85 -0
  89. package/dist/views/resource/ResourceView.d.ts.map +1 -0
  90. package/dist/views/resource/ResourceView.js +388 -0
  91. package/dist/views/resource/ResourceView.js.map +1 -0
  92. package/dist/views/timeline/TimelineView.d.ts +69 -0
  93. package/dist/views/timeline/TimelineView.d.ts.map +1 -0
  94. package/dist/views/timeline/TimelineView.js +314 -0
  95. package/dist/views/timeline/TimelineView.js.map +1 -0
  96. package/dist/views/week/AllDayRow.d.ts +38 -0
  97. package/dist/views/week/AllDayRow.d.ts.map +1 -0
  98. package/dist/views/week/AllDayRow.js +149 -0
  99. package/dist/views/week/AllDayRow.js.map +1 -0
  100. package/dist/views/week/TimeEvent.d.ts +77 -0
  101. package/dist/views/week/TimeEvent.d.ts.map +1 -0
  102. package/dist/views/week/TimeEvent.js +279 -0
  103. package/dist/views/week/TimeEvent.js.map +1 -0
  104. package/dist/views/week/WeekView.d.ts +79 -0
  105. package/dist/views/week/WeekView.d.ts.map +1 -0
  106. package/dist/views/week/WeekView.js +370 -0
  107. package/dist/views/week/WeekView.js.map +1 -0
  108. package/dist/views/year/YearView.d.ts +37 -0
  109. package/dist/views/year/YearView.d.ts.map +1 -0
  110. package/dist/views/year/YearView.js +162 -0
  111. package/dist/views/year/YearView.js.map +1 -0
  112. package/package.json +69 -0
@@ -0,0 +1,17 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import type { DomainEvent } from '@bimetal/calendar-data';
3
+ import type { CalendarLocale } from '../binding/index.js';
4
+ import * as i0 from "@angular/core";
5
+ export declare class EventHistoryComponent {
6
+ eventId: string;
7
+ history: DomainEvent[];
8
+ locale: CalendarLocale;
9
+ back: EventEmitter<void>;
10
+ getColor(type: string): string;
11
+ getLabel(type: string): string;
12
+ formatTime(timestamp: number): string;
13
+ getSummary(event: DomainEvent): string;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<EventHistoryComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<EventHistoryComponent, "cal-event-history", never, { "eventId": { "alias": "eventId"; "required": false; }; "history": { "alias": "history"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; }, { "back": "back"; }, never, never, true, never>;
16
+ }
17
+ //# sourceMappingURL=EventHistory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventHistory.d.ts","sourceRoot":"","sources":["../../src/components/EventHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,eAAe,CAAC;AAEvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;;AAS1D,qBAoCa,qBAAqB;IACvB,OAAO,SAAM;IACb,OAAO,EAAE,WAAW,EAAE,CAAM;IAC5B,MAAM,EAAG,cAAc,CAAC;IACvB,IAAI,qBAA4B;IAE1C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI9B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI9B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAOrC,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;yCArB3B,qBAAqB;2CAArB,qBAAqB;CAqCjC"}
@@ -0,0 +1,166 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ function EventHistoryComponent_div_6_Template(rf, ctx) { if (rf & 1) {
6
+ i0.ɵɵelementStart(0, "div", 7);
7
+ i0.ɵɵtext(1);
8
+ i0.ɵɵelementEnd();
9
+ } if (rf & 2) {
10
+ const ctx_r0 = i0.ɵɵnextContext();
11
+ i0.ɵɵadvance();
12
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.locale.historyLoading, " ");
13
+ } }
14
+ function EventHistoryComponent_div_8_div_3_Template(rf, ctx) { if (rf & 1) {
15
+ i0.ɵɵelement(0, "div", 17);
16
+ } }
17
+ function EventHistoryComponent_div_8_div_10_Template(rf, ctx) { if (rf & 1) {
18
+ i0.ɵɵelementStart(0, "div", 18);
19
+ i0.ɵɵtext(1);
20
+ i0.ɵɵelementEnd();
21
+ } if (rf & 2) {
22
+ const summary_r2 = ctx.ngIf;
23
+ i0.ɵɵadvance();
24
+ i0.ɵɵtextInterpolate(summary_r2);
25
+ } }
26
+ function EventHistoryComponent_div_8_Template(rf, ctx) { if (rf & 1) {
27
+ i0.ɵɵelementStart(0, "div", 8)(1, "div", 9);
28
+ i0.ɵɵelement(2, "div", 10);
29
+ i0.ɵɵtemplate(3, EventHistoryComponent_div_8_div_3_Template, 1, 0, "div", 11);
30
+ i0.ɵɵelementEnd();
31
+ i0.ɵɵelementStart(4, "div", 12)(5, "div", 13)(6, "span", 14);
32
+ i0.ɵɵtext(7);
33
+ i0.ɵɵelementEnd();
34
+ i0.ɵɵelementStart(8, "span", 15);
35
+ i0.ɵɵtext(9);
36
+ i0.ɵɵelementEnd()();
37
+ i0.ɵɵtemplate(10, EventHistoryComponent_div_8_div_10_Template, 2, 1, "div", 16);
38
+ i0.ɵɵelementEnd()();
39
+ } if (rf & 2) {
40
+ const entry_r3 = ctx.$implicit;
41
+ const last_r4 = ctx.last;
42
+ const ctx_r0 = i0.ɵɵnextContext();
43
+ i0.ɵɵadvance(2);
44
+ i0.ɵɵstyleProp("background-color", ctx_r0.getColor(entry_r3.type));
45
+ i0.ɵɵadvance();
46
+ i0.ɵɵproperty("ngIf", !last_r4);
47
+ i0.ɵɵadvance(3);
48
+ i0.ɵɵstyleProp("background-color", ctx_r0.getColor(entry_r3.type));
49
+ i0.ɵɵadvance();
50
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.getLabel(entry_r3.type), " ");
51
+ i0.ɵɵadvance(2);
52
+ i0.ɵɵtextInterpolate(ctx_r0.formatTime(entry_r3.envelope.timestamp));
53
+ i0.ɵɵadvance();
54
+ i0.ɵɵproperty("ngIf", ctx_r0.getSummary(entry_r3));
55
+ } }
56
+ const eventTypeColors = {
57
+ 'bimetal.calendar.CalendarEventCreated': '#4CD964',
58
+ 'bimetal.calendar.CalendarEventUpdated': '#007AFF',
59
+ 'bimetal.calendar.CalendarEventDeleted': '#FF3B30',
60
+ 'bimetal.calendar.CalendarEventReverted': '#FF9500',
61
+ };
62
+ export class EventHistoryComponent {
63
+ eventId = '';
64
+ history = [];
65
+ locale;
66
+ back = new EventEmitter();
67
+ getColor(type) {
68
+ return eventTypeColors[type] ?? '#8E8E93';
69
+ }
70
+ getLabel(type) {
71
+ return this.locale.historyEventTypes[type] ?? type;
72
+ }
73
+ formatTime(timestamp) {
74
+ return new Date(timestamp).toLocaleString(this.locale.code, {
75
+ day: '2-digit', month: '2-digit', year: 'numeric',
76
+ hour: '2-digit', minute: '2-digit',
77
+ });
78
+ }
79
+ getSummary(event) {
80
+ const payload = event.payload;
81
+ switch (event.type) {
82
+ case 'bimetal.calendar.CalendarEventCreated': {
83
+ const ev = payload.event;
84
+ return ev?.title ?? '';
85
+ }
86
+ case 'bimetal.calendar.CalendarEventUpdated': {
87
+ const changes = payload.changes;
88
+ if (!changes)
89
+ return '';
90
+ return Object.keys(changes).join(', ');
91
+ }
92
+ default:
93
+ return '';
94
+ }
95
+ }
96
+ static ɵfac = function EventHistoryComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || EventHistoryComponent)(); };
97
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EventHistoryComponent, selectors: [["cal-event-history"]], hostAttrs: [2, "display", "contents"], inputs: { eventId: "eventId", history: "history", locale: "locale" }, outputs: { back: "back" }, decls: 9, vars: 3, consts: [[1, "event-history"], [1, "event-history__header"], [1, "event-history__back", 3, "click"], [1, "event-history__title"], ["class", "event-history__loading", 4, "ngIf"], [1, "event-history__timeline"], ["class", "event-history__entry", 4, "ngFor", "ngForOf"], [1, "event-history__loading"], [1, "event-history__entry"], [1, "event-history__dot-col"], [1, "event-history__dot"], ["class", "event-history__line", 4, "ngIf"], [1, "event-history__content"], [1, "event-history__entry-header"], [1, "event-history__badge"], [1, "event-history__time"], ["class", "event-history__summary", 4, "ngIf"], [1, "event-history__line"], [1, "event-history__summary"]], template: function EventHistoryComponent_Template(rf, ctx) { if (rf & 1) {
98
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "button", 2);
99
+ i0.ɵɵlistener("click", function EventHistoryComponent_Template_button_click_2_listener() { return ctx.back.emit(); });
100
+ i0.ɵɵtext(3, "\u2190");
101
+ i0.ɵɵelementEnd();
102
+ i0.ɵɵelementStart(4, "span", 3);
103
+ i0.ɵɵtext(5);
104
+ i0.ɵɵelementEnd()();
105
+ i0.ɵɵtemplate(6, EventHistoryComponent_div_6_Template, 2, 1, "div", 4);
106
+ i0.ɵɵelementStart(7, "div", 5);
107
+ i0.ɵɵtemplate(8, EventHistoryComponent_div_8_Template, 11, 8, "div", 6);
108
+ i0.ɵɵelementEnd()();
109
+ } if (rf & 2) {
110
+ i0.ɵɵadvance(5);
111
+ i0.ɵɵtextInterpolate(ctx.locale.historyTitle);
112
+ i0.ɵɵadvance();
113
+ i0.ɵɵproperty("ngIf", ctx.history.length === 0);
114
+ i0.ɵɵadvance(2);
115
+ i0.ɵɵproperty("ngForOf", ctx.history);
116
+ } }, dependencies: [CommonModule, i1.NgForOf, i1.NgIf], encapsulation: 2 });
117
+ }
118
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EventHistoryComponent, [{
119
+ type: Component,
120
+ args: [{
121
+ selector: 'cal-event-history',
122
+ standalone: true,
123
+ host: { style: 'display: contents' },
124
+ imports: [CommonModule],
125
+ template: `
126
+ <div class="event-history">
127
+ <div class="event-history__header">
128
+ <button class="event-history__back" (click)="back.emit()">&larr;</button>
129
+ <span class="event-history__title">{{ locale.historyTitle }}</span>
130
+ </div>
131
+
132
+ <div class="event-history__loading" *ngIf="history.length === 0">
133
+ {{ locale.historyLoading }}
134
+ </div>
135
+
136
+ <div class="event-history__timeline">
137
+ <div *ngFor="let entry of history; let idx = index; let last = last" class="event-history__entry">
138
+ <div class="event-history__dot-col">
139
+ <div class="event-history__dot" [style.background-color]="getColor(entry.type)"></div>
140
+ <div class="event-history__line" *ngIf="!last"></div>
141
+ </div>
142
+ <div class="event-history__content">
143
+ <div class="event-history__entry-header">
144
+ <span class="event-history__badge" [style.background-color]="getColor(entry.type)">
145
+ {{ getLabel(entry.type) }}
146
+ </span>
147
+ <span class="event-history__time">{{ formatTime(entry.envelope.timestamp) }}</span>
148
+ </div>
149
+ <div class="event-history__summary" *ngIf="getSummary(entry) as summary">{{ summary }}</div>
150
+ </div>
151
+ </div>
152
+ </div>
153
+ </div>
154
+ `,
155
+ }]
156
+ }], null, { eventId: [{
157
+ type: Input
158
+ }], history: [{
159
+ type: Input
160
+ }], locale: [{
161
+ type: Input
162
+ }], back: [{
163
+ type: Output
164
+ }] }); })();
165
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EventHistoryComponent, { className: "EventHistoryComponent", filePath: "components/eventhistory.ts", lineNumber: 49 }); })();
166
+ //# sourceMappingURL=EventHistory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventHistory.js","sourceRoot":"","sources":["../../src/components/EventHistory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import type { Resource } from '@bimetal/calendar-core';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ResourceFilterComponent {
5
+ resources: Resource[];
6
+ hiddenResources: ReadonlySet<string>;
7
+ toggle: EventEmitter<string>;
8
+ trackById(_: number, r: Resource): string;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<ResourceFilterComponent, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<ResourceFilterComponent, "cal-resource-filter", never, { "resources": { "alias": "resources"; "required": false; }; "hiddenResources": { "alias": "hiddenResources"; "required": false; }; }, { "toggle": "toggle"; }, never, never, true, never>;
11
+ }
12
+ //# sourceMappingURL=ResourceFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceFilter.d.ts","sourceRoot":"","sources":["../../src/components/ResourceFilter.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,eAAe,CAAC;AAEvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;;AAEvD,qBAiBa,uBAAuB;IACzB,SAAS,EAAE,QAAQ,EAAE,CAAM;IAC3B,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAa;IAChD,MAAM,uBAA8B;IAC9C,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ;yCAJrB,uBAAuB;2CAAvB,uBAAuB;CAKnC"}
@@ -0,0 +1,67 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ function ResourceFilterComponent_div_0_button_1_Template(rf, ctx) { if (rf & 1) {
6
+ const _r1 = i0.ɵɵgetCurrentView();
7
+ i0.ɵɵelementStart(0, "button", 3);
8
+ i0.ɵɵlistener("click", function ResourceFilterComponent_div_0_button_1_Template_button_click_0_listener() { const r_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.toggle.emit(r_r2.id)); });
9
+ i0.ɵɵtext(1);
10
+ i0.ɵɵelementEnd();
11
+ } if (rf & 2) {
12
+ const r_r2 = ctx.$implicit;
13
+ const ctx_r2 = i0.ɵɵnextContext(2);
14
+ i0.ɵɵclassMap("resource-filter__pill" + (ctx_r2.hiddenResources.has(r_r2.id) ? " resource-filter__pill--hidden" : ""));
15
+ i0.ɵɵstyleProp("border-left-color", r_r2.color || "transparent");
16
+ i0.ɵɵadvance();
17
+ i0.ɵɵtextInterpolate1(" ", r_r2.name, " ");
18
+ } }
19
+ function ResourceFilterComponent_div_0_Template(rf, ctx) { if (rf & 1) {
20
+ i0.ɵɵelementStart(0, "div", 1);
21
+ i0.ɵɵtemplate(1, ResourceFilterComponent_div_0_button_1_Template, 2, 5, "button", 2);
22
+ i0.ɵɵelementEnd();
23
+ } if (rf & 2) {
24
+ const ctx_r2 = i0.ɵɵnextContext();
25
+ i0.ɵɵadvance();
26
+ i0.ɵɵproperty("ngForOf", ctx_r2.resources)("ngForTrackBy", ctx_r2.trackById);
27
+ } }
28
+ export class ResourceFilterComponent {
29
+ resources = [];
30
+ hiddenResources = new Set();
31
+ toggle = new EventEmitter();
32
+ trackById(_, r) { return r.id; }
33
+ static ɵfac = function ResourceFilterComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ResourceFilterComponent)(); };
34
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ResourceFilterComponent, selectors: [["cal-resource-filter"]], inputs: { resources: "resources", hiddenResources: "hiddenResources" }, outputs: { toggle: "toggle" }, decls: 1, vars: 1, consts: [["class", "resource-filter", 4, "ngIf"], [1, "resource-filter"], ["type", "button", 3, "class", "border-left-color", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["type", "button", 3, "click"]], template: function ResourceFilterComponent_Template(rf, ctx) { if (rf & 1) {
35
+ i0.ɵɵtemplate(0, ResourceFilterComponent_div_0_Template, 2, 2, "div", 0);
36
+ } if (rf & 2) {
37
+ i0.ɵɵproperty("ngIf", ctx.resources.length > 0);
38
+ } }, dependencies: [CommonModule, i1.NgForOf, i1.NgIf], encapsulation: 2 });
39
+ }
40
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ResourceFilterComponent, [{
41
+ type: Component,
42
+ args: [{
43
+ selector: 'cal-resource-filter',
44
+ standalone: true,
45
+ imports: [CommonModule],
46
+ template: `
47
+ <div *ngIf="resources.length > 0" class="resource-filter">
48
+ <button
49
+ *ngFor="let r of resources; trackBy: trackById"
50
+ type="button"
51
+ [class]="'resource-filter__pill' + (hiddenResources.has(r.id) ? ' resource-filter__pill--hidden' : '')"
52
+ [style.border-left-color]="r.color || 'transparent'"
53
+ (click)="toggle.emit(r.id)">
54
+ {{ r.name }}
55
+ </button>
56
+ </div>
57
+ `,
58
+ }]
59
+ }], null, { resources: [{
60
+ type: Input
61
+ }], hiddenResources: [{
62
+ type: Input
63
+ }], toggle: [{
64
+ type: Output
65
+ }] }); })();
66
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ResourceFilterComponent, { className: "ResourceFilterComponent", filePath: "components/resourcefilter.ts", lineNumber: 22 }); })();
67
+ //# sourceMappingURL=ResourceFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceFilter.js","sourceRoot":"","sources":["../../src/components/ResourceFilter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;;;;;IASzC,iCAK8B;IAA5B,oNAAS,2BAAiB,KAAC;IAC3B,YACF;IAAA,iBAAS;;;;IAJP,sHAAuG;IACvG,gEAAoD;IAEpD,cACF;IADE,0CACF;;;IARF,8BAA0D;IACxD,oFAK8B;IAGhC,iBAAM;;;IAPY,cAAc;IAAA,AAAd,0CAAc,kCAAkB;;AAUtD,MAAM,OAAO,uBAAuB;IACzB,SAAS,GAAe,EAAE,CAAC;IAC3B,eAAe,GAAwB,IAAI,GAAG,EAAE,CAAC;IAChD,MAAM,GAAG,IAAI,YAAY,EAAU,CAAC;IAC9C,SAAS,CAAC,CAAS,EAAE,CAAW,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iHAJvC,uBAAuB;6DAAvB,uBAAuB;YAZhC,wEAA0D;;YAApD,+CAA0B;4BAFxB,YAAY;;iFAcX,uBAAuB;cAjBnC,SAAS;eAAC;gBACT,QAAQ,EAAE,qBAAqB;gBAC/B,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,QAAQ,EAAE;;;;;;;;;;;GAWT;aACF;gBAEU,SAAS;kBAAjB,KAAK;YACG,eAAe;kBAAvB,KAAK;YACI,MAAM;kBAAf,MAAM;;kFAHI,uBAAuB"}
@@ -0,0 +1,20 @@
1
+ import { EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
2
+ import type { CalendarLocale } from '../binding/index.js';
3
+ import * as i0 from "@angular/core";
4
+ export declare class UndoToastComponent implements OnChanges, OnDestroy {
5
+ lastAction: {
6
+ entityId: string;
7
+ description: string;
8
+ } | null;
9
+ locale: CalendarLocale | undefined;
10
+ undoAction: EventEmitter<string>;
11
+ dismiss: EventEmitter<void>;
12
+ private timer;
13
+ ngOnChanges(changes: SimpleChanges): void;
14
+ ngOnDestroy(): void;
15
+ handleUndo(): void;
16
+ private clearTimer;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<UndoToastComponent, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<UndoToastComponent, "cal-undo-toast", never, { "lastAction": { "alias": "lastAction"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; }, { "undoAction": "undoAction"; "dismiss": "dismiss"; }, never, never, true, never>;
19
+ }
20
+ //# sourceMappingURL=UndoToast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UndoToast.d.ts","sourceRoot":"","sources":["../../src/components/UndoToast.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE5G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;;AAG1D,qBAea,kBAAmB,YAAW,SAAS,EAAE,SAAS;IACpD,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAQ;IACpE,MAAM,EAAE,cAAc,GAAG,SAAS,CAAC;IAClC,UAAU,uBAA8B;IACxC,OAAO,qBAA4B;IAE7C,OAAO,CAAC,KAAK,CAA8C;IAE3D,WAAW,CAAC,OAAO,EAAE,aAAa;IASlC,WAAW;IAIX,UAAU;IAOV,OAAO,CAAC,UAAU;yCA5BP,kBAAkB;2CAAlB,kBAAkB;CAkC9B"}
@@ -0,0 +1,90 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { DEFAULT_UNDO_DISMISS_MS } from '@bimetal/calendar-headless';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ function UndoToastComponent_div_0_Template(rf, ctx) { if (rf & 1) {
7
+ const _r1 = i0.ɵɵgetCurrentView();
8
+ i0.ɵɵelementStart(0, "div", 1)(1, "span", 2);
9
+ i0.ɵɵtext(2);
10
+ i0.ɵɵelementEnd();
11
+ i0.ɵɵelementStart(3, "button", 3);
12
+ i0.ɵɵlistener("click", function UndoToastComponent_div_0_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.handleUndo()); });
13
+ i0.ɵɵtext(4);
14
+ i0.ɵɵelementEnd();
15
+ i0.ɵɵelementStart(5, "button", 4);
16
+ i0.ɵɵlistener("click", function UndoToastComponent_div_0_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.dismiss.emit()); });
17
+ i0.ɵɵtext(6, "\u00D7");
18
+ i0.ɵɵelementEnd()();
19
+ } if (rf & 2) {
20
+ let tmp_2_0;
21
+ const ctx_r1 = i0.ɵɵnextContext();
22
+ i0.ɵɵadvance(2);
23
+ i0.ɵɵtextInterpolate(ctx_r1.lastAction.description);
24
+ i0.ɵɵadvance(2);
25
+ i0.ɵɵtextInterpolate1(" ", (tmp_2_0 = ctx_r1.locale == null ? null : ctx_r1.locale.undo) !== null && tmp_2_0 !== undefined ? tmp_2_0 : "Undo", " ");
26
+ } }
27
+ export class UndoToastComponent {
28
+ lastAction = null;
29
+ locale;
30
+ undoAction = new EventEmitter();
31
+ dismiss = new EventEmitter();
32
+ timer = null;
33
+ ngOnChanges(changes) {
34
+ if (changes['lastAction']) {
35
+ this.clearTimer();
36
+ if (this.lastAction) {
37
+ this.timer = setTimeout(() => this.dismiss.emit(), DEFAULT_UNDO_DISMISS_MS);
38
+ }
39
+ }
40
+ }
41
+ ngOnDestroy() {
42
+ this.clearTimer();
43
+ }
44
+ handleUndo() {
45
+ if (this.lastAction) {
46
+ this.undoAction.emit(this.lastAction.entityId);
47
+ this.dismiss.emit();
48
+ }
49
+ }
50
+ clearTimer() {
51
+ if (this.timer) {
52
+ clearTimeout(this.timer);
53
+ this.timer = null;
54
+ }
55
+ }
56
+ static ɵfac = function UndoToastComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UndoToastComponent)(); };
57
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UndoToastComponent, selectors: [["cal-undo-toast"]], hostAttrs: [2, "display", "contents"], inputs: { lastAction: "lastAction", locale: "locale" }, outputs: { undoAction: "undoAction", dismiss: "dismiss" }, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [["class", "undo-toast", "role", "status", 4, "ngIf"], ["role", "status", 1, "undo-toast"], [1, "undo-toast__text"], [1, "undo-toast__btn", 3, "click"], [1, "undo-toast__dismiss", 3, "click"]], template: function UndoToastComponent_Template(rf, ctx) { if (rf & 1) {
58
+ i0.ɵɵtemplate(0, UndoToastComponent_div_0_Template, 7, 2, "div", 0);
59
+ } if (rf & 2) {
60
+ i0.ɵɵproperty("ngIf", ctx.lastAction);
61
+ } }, dependencies: [CommonModule, i1.NgIf], encapsulation: 2 });
62
+ }
63
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UndoToastComponent, [{
64
+ type: Component,
65
+ args: [{
66
+ selector: 'cal-undo-toast',
67
+ standalone: true,
68
+ host: { style: 'display: contents' },
69
+ imports: [CommonModule],
70
+ template: `
71
+ <div class="undo-toast" role="status" *ngIf="lastAction">
72
+ <span class="undo-toast__text">{{ lastAction.description }}</span>
73
+ <button class="undo-toast__btn" (click)="handleUndo()">
74
+ {{ locale?.undo ?? 'Undo' }}
75
+ </button>
76
+ <button class="undo-toast__dismiss" (click)="dismiss.emit()">&times;</button>
77
+ </div>
78
+ `,
79
+ }]
80
+ }], null, { lastAction: [{
81
+ type: Input
82
+ }], locale: [{
83
+ type: Input
84
+ }], undoAction: [{
85
+ type: Output
86
+ }], dismiss: [{
87
+ type: Output
88
+ }] }); })();
89
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UndoToastComponent, { className: "UndoToastComponent", filePath: "components/undotoast.ts", lineNumber: 21 }); })();
90
+ //# sourceMappingURL=UndoToast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UndoToast.js","sourceRoot":"","sources":["../../src/components/UndoToast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAuC,MAAM,eAAe,CAAC;AAC5G,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;;;;;IAS/D,AADF,8BAAyD,cACxB;IAAA,YAA4B;IAAA,iBAAO;IAClE,iCAAuD;IAAvB,8KAAS,mBAAY,KAAC;IACpD,YACF;IAAA,iBAAS;IACT,iCAA6D;IAAzB,8KAAS,qBAAc,KAAC;IAAC,sBAAO;IACtE,AADsE,iBAAS,EACzE;;;;IAL2B,eAA4B;IAA5B,mDAA4B;IAEzD,eACF;IADE,mJACF;;AAKN,MAAM,OAAO,kBAAkB;IACpB,UAAU,GAAqD,IAAI,CAAC;IACpE,MAAM,CAA6B;IAClC,UAAU,GAAG,IAAI,YAAY,EAAU,CAAC;IACxC,OAAO,GAAG,IAAI,YAAY,EAAQ,CAAC;IAErC,KAAK,GAAyC,IAAI,CAAC;IAE3D,WAAW,CAAC,OAAsB;QAChC,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,uBAAuB,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,UAAU;QACR,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,UAAU;QAChB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;4GAjCU,kBAAkB;6DAAlB,kBAAkB;YAT3B,mEAAyD;;YAAlB,qCAAgB;4BAF/C,YAAY;;iFAWX,kBAAkB;cAf9B,SAAS;eAAC;gBACT,QAAQ,EAAE,gBAAgB;gBAC1B,UAAU,EAAE,IAAI;gBAChB,IAAI,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE;gBACpC,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,QAAQ,EAAE;;;;;;;;GAQT;aACF;gBAEU,UAAU;kBAAlB,KAAK;YACG,MAAM;kBAAd,KAAK;YACI,UAAU;kBAAnB,MAAM;YACG,OAAO;kBAAhB,MAAM;;kFAJI,kBAAkB"}
@@ -0,0 +1,20 @@
1
+ export { CalendarComponent } from './components/Calendar.js';
2
+ export { CalendarHeaderComponent } from './components/CalendarHeader.js';
3
+ export { CategoryFilterComponent } from './components/CategoryFilter.js';
4
+ export { UndoToastComponent } from './components/UndoToast.js';
5
+ export { EventHistoryComponent } from './components/EventHistory.js';
6
+ export { EventBarComponent } from './components/EventBar.js';
7
+ export { EventDialogComponent } from './components/EventDialog.js';
8
+ export { MonthViewComponent } from './views/month/MonthView.js';
9
+ export { WeekRowComponent } from './views/month/WeekRow.js';
10
+ export { WeekViewComponent } from './views/week/WeekView.js';
11
+ export { AllDayRowComponent } from './views/week/AllDayRow.js';
12
+ export { TimeEventComponent } from './views/week/TimeEvent.js';
13
+ export { DayViewComponent } from './views/day/DayView.js';
14
+ export { AgendaViewComponent } from './views/agenda/AgendaView.js';
15
+ export { YearViewComponent } from './views/year/YearView.js';
16
+ export { ResourceViewComponent } from './views/resource/ResourceView.js';
17
+ export { TimelineViewComponent } from './views/timeline/TimelineView.js';
18
+ export * from './binding/index.js';
19
+ export * from '@bimetal/angular';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAGzE,cAAc,oBAAoB,CAAC;AAGnC,cAAc,kBAAkB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,25 @@
1
+ // ── Main Component ──────────────────────────────────────────────
2
+ export { CalendarComponent } from './components/Calendar.js';
3
+ // ── UI Components ───────────────────────────────────────────────
4
+ export { CalendarHeaderComponent } from './components/CalendarHeader.js';
5
+ export { CategoryFilterComponent } from './components/CategoryFilter.js';
6
+ export { UndoToastComponent } from './components/UndoToast.js';
7
+ export { EventHistoryComponent } from './components/EventHistory.js';
8
+ export { EventBarComponent } from './components/EventBar.js';
9
+ export { EventDialogComponent } from './components/EventDialog.js';
10
+ // ── Views ───────────────────────────────────────────────────────
11
+ export { MonthViewComponent } from './views/month/MonthView.js';
12
+ export { WeekRowComponent } from './views/month/WeekRow.js';
13
+ export { WeekViewComponent } from './views/week/WeekView.js';
14
+ export { AllDayRowComponent } from './views/week/AllDayRow.js';
15
+ export { TimeEventComponent } from './views/week/TimeEvent.js';
16
+ export { DayViewComponent } from './views/day/DayView.js';
17
+ export { AgendaViewComponent } from './views/agenda/AgendaView.js';
18
+ export { YearViewComponent } from './views/year/YearView.js';
19
+ export { ResourceViewComponent } from './views/resource/ResourceView.js';
20
+ export { TimelineViewComponent } from './views/timeline/TimelineView.js';
21
+ // ── Calendar Angular binding (controller binding / services / config / types) ──
22
+ export * from './binding/index.js';
23
+ // ── Re-export the generic component-family bindings for convenience ──
24
+ export * from '@bimetal/angular';
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,mEAAmE;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,mEAAmE;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,kFAAkF;AAClF,cAAc,oBAAoB,CAAC;AAEnC,wEAAwE;AACxE,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1 @@
1
+ @import '@bimetal/calendar-themes';
@@ -0,0 +1,54 @@
1
+ import { EventEmitter, OnChanges } from '@angular/core';
2
+ import type { CalendarEvent, CalendarDateTime } from '@bimetal/calendar-core';
3
+ import { getDayOfMonth } from '@bimetal/calendar-core';
4
+ import type { CalendarConfig } from '../../binding/index.js';
5
+ import { EventRenderService } from '../../binding/index.js';
6
+ import * as i0 from "@angular/core";
7
+ interface DayGroup {
8
+ date: CalendarDateTime;
9
+ dateStr: string;
10
+ events: CalendarEvent[];
11
+ }
12
+ export declare class AgendaViewComponent implements OnChanges {
13
+ private renderService?;
14
+ currentDate: CalendarDateTime;
15
+ events: CalendarEvent[];
16
+ config: CalendarConfig;
17
+ selectedEventId: string | null;
18
+ selectedInstanceDate: number | undefined;
19
+ eventClick: EventEmitter<{
20
+ eventId: string;
21
+ rect: DOMRect;
22
+ instanceDate?: number;
23
+ }>;
24
+ selectEvent: EventEmitter<{
25
+ eventId: string;
26
+ instanceDate?: number;
27
+ }>;
28
+ dayGroups: DayGroup[];
29
+ click: import("@bimetal/calendar-headless").ClickIntent;
30
+ private currentNow;
31
+ constructor(renderService?: EventRenderService | undefined);
32
+ get badgesTpl(): import("@angular/core").TemplateRef<import("../../index.js").EventRenderTemplateContext> | undefined;
33
+ get contentTpl(): import("@angular/core").TemplateRef<import("../../index.js").EventRenderTemplateContext> | undefined;
34
+ tplCtx(ev: CalendarEvent): import("../../index.js").EventRenderTemplateContext | undefined;
35
+ renderedTitle(ev: CalendarEvent): string;
36
+ slotsClassName(ev: CalendarEvent): string;
37
+ slotsStyle(ev: CalendarEvent): Record<string, string | number> | undefined;
38
+ getDayOfMonth: typeof getDayOfMonth;
39
+ ngOnChanges(): void;
40
+ isToday(date: CalendarDateTime): boolean;
41
+ getWeekday(date: CalendarDateTime): string;
42
+ getMonthYear(date: CalendarDateTime): string;
43
+ getColor(ev: CalendarEvent): string;
44
+ getCategory(ev: CalendarEvent): string;
45
+ formatEventTime(ev: CalendarEvent, date: CalendarDateTime): string;
46
+ handleEventClick(e: MouseEvent, ev: CalendarEvent): void;
47
+ handleEventDoubleClick(e: MouseEvent, ev: CalendarEvent): void;
48
+ isEventSelected(ev: CalendarEvent): boolean;
49
+ private computeGroups;
50
+ static ɵfac: i0.ɵɵFactoryDeclaration<AgendaViewComponent, [{ optional: true; }]>;
51
+ static ɵcmp: i0.ɵɵComponentDeclaration<AgendaViewComponent, "cal-agenda-view", never, { "currentDate": { "alias": "currentDate"; "required": false; }; "events": { "alias": "events"; "required": false; }; "config": { "alias": "config"; "required": false; }; "selectedEventId": { "alias": "selectedEventId"; "required": false; }; "selectedInstanceDate": { "alias": "selectedInstanceDate"; "required": false; }; }, { "eventClick": "eventClick"; "selectEvent": "selectEvent"; }, never, never, true, never>;
52
+ }
53
+ export {};
54
+ //# sourceMappingURL=AgendaView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgendaView.d.ts","sourceRoot":"","sources":["../../../src/views/agenda/AgendaView.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,SAAS,EAAY,MAAM,eAAe,CAAC;AAE5F,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAEL,aAAa,EAEd,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAwB,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;;AAGlF,UAAU,QAAQ;IAChB,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED,qBA8Ca,mBAAoB,YAAW,SAAS;IAa3B,OAAO,CAAC,aAAa,CAAC;IAZrC,WAAW,EAAG,gBAAgB,CAAC;IAC/B,MAAM,EAAE,aAAa,EAAE,CAAM;IAC7B,MAAM,EAAG,cAAc,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IACtC,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAa;IACpD,UAAU;iBAA+B,MAAM;cAAQ,OAAO;uBAAiB,MAAM;OAAM;IAC3F,WAAW;iBAA+B,MAAM;uBAAiB,MAAM;OAAM;IAEvF,SAAS,EAAE,QAAQ,EAAE,CAAM;IAC3B,KAAK,mDAAuB;IAC5B,OAAO,CAAC,UAAU,CAAoB;gBAEN,aAAa,CAAC,EAAE,kBAAkB,YAAA;IAElE,IAAI,SAAS,yGAAiD;IAC9D,IAAI,UAAU,yGAAkD;IAChE,MAAM,CAAC,EAAE,EAAE,aAAa;IACxB,aAAa,CAAC,EAAE,EAAE,aAAa;IAC/B,cAAc,CAAC,EAAE,EAAE,aAAa;IAIhC,UAAU,CAAC,EAAE,EAAE,aAAa;IAG5B,aAAa,uBAAiB;IAE9B,WAAW;IAKX,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO;IAIxC,UAAU,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM;IAI1C,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM;IAI5C,QAAQ,CAAC,EAAE,EAAE,aAAa,GAAG,MAAM;IAInC,WAAW,CAAC,EAAE,EAAE,aAAa,GAAG,MAAM;IAItC,eAAe,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,GAAG,MAAM;IAmBlE,gBAAgB,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa;IAMjD,sBAAsB,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa;IAOvD,eAAe,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO;IAK3C,OAAO,CAAC,aAAa;yCA1FV,mBAAmB;2CAAnB,mBAAmB;CA6H/B"}