@semantic-components/ui 0.0.1 → 0.0.10

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 (48) hide show
  1. package/README.md +6 -0
  2. package/components/date-picker/date-picker.component.d.ts +30 -2
  3. package/components/date-picker/index.d.ts +1 -0
  4. package/components/date-picker/inline-date-picker.component.d.ts +23 -0
  5. package/components/date-picker/month-days.component.d.ts +11 -0
  6. package/components/date-picker/month-year-header.component.d.ts +7 -0
  7. package/components/date-picker/week-days-names.component.d.ts +11 -0
  8. package/components/dropdown/dropdown-divider.component.d.ts +5 -0
  9. package/components/dropdown/dropdown-item.component.d.ts +6 -0
  10. package/components/dropdown/dropdown.component.d.ts +5 -0
  11. package/components/dropdown/index.d.ts +3 -0
  12. package/components/editor/editor.component.d.ts +1 -1
  13. package/components/nav/index.d.ts +3 -0
  14. package/components/nav/nav-item-dropdown.component.d.ts +5 -0
  15. package/components/nav/nav-item.component.d.ts +5 -0
  16. package/components/nav/nav.component.d.ts +5 -0
  17. package/components/select/index.d.ts +2 -0
  18. package/components/select/select-option.component.d.ts +7 -0
  19. package/components/select/select.component.d.ts +55 -0
  20. package/components/tooltip/tooltip.component.d.ts +1 -1
  21. package/esm2022/components/date-picker/date-picker.component.mjs +181 -8
  22. package/esm2022/components/date-picker/index.mjs +2 -1
  23. package/esm2022/components/date-picker/inline-date-picker.component.mjs +185 -0
  24. package/esm2022/components/date-picker/month-days.component.mjs +69 -0
  25. package/esm2022/components/date-picker/month-year-header.component.mjs +124 -0
  26. package/esm2022/components/date-picker/week-days-names.component.mjs +37 -0
  27. package/esm2022/components/dropdown/dropdown-divider.component.mjs +16 -0
  28. package/esm2022/components/dropdown/dropdown-item.component.mjs +33 -0
  29. package/esm2022/components/dropdown/dropdown.component.mjs +85 -0
  30. package/esm2022/components/dropdown/index.mjs +4 -0
  31. package/esm2022/components/editor/editor.component.mjs +4 -4
  32. package/esm2022/components/nav/index.mjs +4 -0
  33. package/esm2022/components/nav/nav-item-dropdown.component.mjs +148 -0
  34. package/esm2022/components/nav/nav-item.component.mjs +16 -0
  35. package/esm2022/components/nav/nav.component.mjs +16 -0
  36. package/esm2022/components/select/index.mjs +3 -0
  37. package/esm2022/components/select/select-option.component.mjs +28 -0
  38. package/esm2022/components/select/select.component.mjs +252 -0
  39. package/esm2022/components/tooltip/tooltip.component.mjs +4 -4
  40. package/esm2022/index.mjs +4 -2
  41. package/fesm2022/semantic-components-ui.mjs +1132 -559
  42. package/fesm2022/semantic-components-ui.mjs.map +1 -1
  43. package/index.d.ts +3 -1
  44. package/package.json +7 -3
  45. package/components/navbar/index.d.ts +0 -1
  46. package/components/navbar/navbar.component.d.ts +0 -5
  47. package/esm2022/components/navbar/index.mjs +0 -2
  48. package/esm2022/components/navbar/navbar.component.mjs +0 -566
@@ -0,0 +1,185 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, Inject, LOCALE_ID, ViewEncapsulation, computed, signal, } from '@angular/core';
3
+ import { MonthDaysComponent } from './month-days.component';
4
+ import { MonthYearHeaderComponent } from './month-year-header.component';
5
+ import { WeekDaysNamesComponent } from './week-days-names.component';
6
+ import * as i0 from "@angular/core";
7
+ export class InlineDatePickerComponent {
8
+ localeId;
9
+ year = signal(0);
10
+ month = signal(0);
11
+ weekDaysNames = signal([]);
12
+ monthYear = computed(() => {
13
+ const options = {
14
+ month: 'long',
15
+ year: 'numeric',
16
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
+ };
18
+ const s = new Intl.DateTimeFormat(this.localeId, options).format(new Date(this.year(), this.month(), 1));
19
+ return s;
20
+ });
21
+ monthDays = computed(() => {
22
+ // Month in JavaScript is 0-indexed (January is 0, February is 1, etc),
23
+ // but by using 0 as the day it will give us the last day of the prior
24
+ // month. So passing in 1 as the month number will return the last day
25
+ // of January, not February
26
+ const numOfDays = new Date(this.year(), this.month() + 1, 0).getDate();
27
+ const days = [];
28
+ for (let i = 1; i <= numOfDays; i++) {
29
+ const date = new Date(this.year(), this.month(), i);
30
+ days.push(`${date.getFullYear()}-${this.twoDigits(date.getMonth() + 1)}-${this.twoDigits(date.getDate())}`);
31
+ }
32
+ return days;
33
+ });
34
+ firstDayMonth = computed(() => {
35
+ const date = new Date(this.year(), this.month(), 1);
36
+ const intlLongFormatter = new Intl.DateTimeFormat(this.localeId, { weekday: 'long' });
37
+ const dayName = intlLongFormatter.format(date);
38
+ return this.weekDaysNames()
39
+ .map((e) => e.long)
40
+ .indexOf(dayName);
41
+ });
42
+ selectedDay = signal('');
43
+ constructor(localeId) {
44
+ this.localeId = localeId;
45
+ }
46
+ ngOnInit() {
47
+ this.init();
48
+ this.setLocaleDayNames();
49
+ }
50
+ init() {
51
+ const today = new Date();
52
+ this.year.set(today.getFullYear());
53
+ this.month.set(today.getMonth());
54
+ }
55
+ setSelectedDay(day) {
56
+ this.selectedDay.set(day);
57
+ }
58
+ //https://github.com/angular/angular/issues/57193
59
+ setLocaleDayNames() {
60
+ const weekDaysNames = [];
61
+ const intlNarrowFormatter = new Intl.DateTimeFormat(this.localeId, { weekday: 'narrow' });
62
+ const intlShortFormatter = new Intl.DateTimeFormat(this.localeId, { weekday: 'short' });
63
+ const intlLongFormatter = new Intl.DateTimeFormat(this.localeId, { weekday: 'long' });
64
+ let k = 0;
65
+ const firstDayOfWeek = this.getFirstDayOfWeek();
66
+ if (firstDayOfWeek === 7) {
67
+ // First day of the week is Sunday
68
+ k = 3; // 3th January 2021 is a Sunday
69
+ }
70
+ if (firstDayOfWeek === 1) {
71
+ // First day of the week is Monday
72
+ k = 4; // 4th January 2021 is a Monday
73
+ }
74
+ for (let i = 0; i < 7; i += 1) {
75
+ const date = new Date(Date.UTC(2021, 0, i + k));
76
+ weekDaysNames.push({
77
+ narrow: intlNarrowFormatter.format(date),
78
+ short: intlShortFormatter.format(date),
79
+ long: intlLongFormatter.format(date),
80
+ });
81
+ }
82
+ this.weekDaysNames.set(weekDaysNames);
83
+ }
84
+ getFirstDayOfWeek() {
85
+ const locale = new Intl.Locale(this.localeId);
86
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
87
+ return locale.getWeekInfo().firstDay;
88
+ }
89
+ setMonthYear(n) {
90
+ if (n === 1) {
91
+ if (this.month() < 11) {
92
+ this.month.update((value) => value + 1);
93
+ }
94
+ else {
95
+ this.month.set(0);
96
+ this.year.update((value) => value + 1);
97
+ }
98
+ }
99
+ if (n === -1) {
100
+ if (this.month() > 0) {
101
+ this.month.update((value) => value - 1);
102
+ }
103
+ else {
104
+ this.month.set(11);
105
+ this.year.update((value) => value - 1);
106
+ }
107
+ }
108
+ }
109
+ twoDigits(n) {
110
+ return n.toLocaleString(this.localeId, {
111
+ minimumIntegerDigits: 2,
112
+ useGrouping: false,
113
+ });
114
+ }
115
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: InlineDatePickerComponent, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component });
116
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: InlineDatePickerComponent, isStandalone: true, selector: "sc-inline-date-picker", ngImport: i0, template: `
117
+ <div class="inline-block rounded-lg bg-white p-4 shadow-lg dark:bg-gray-700">
118
+ <div class="bg-white px-2 py-3 text-center font-semibold dark:bg-gray-700 dark:text-white">
119
+ <sc-month-year-header [monthYear]="monthYear()" (monthYearChange)="setMonthYear($event)" />
120
+ </div>
121
+
122
+ <sc-week-days-names [weekDaysNames]="weekDaysNames()" />
123
+
124
+ <sc-month-days
125
+ [days]="monthDays()"
126
+ [firstDayMonth]="firstDayMonth()"
127
+ [selectedDay]="selectedDay()"
128
+ (selectedDayChange)="setSelectedDay($event)"
129
+ />
130
+
131
+ <div class="mt-2 flex space-x-2 rtl:space-x-reverse">
132
+ <button
133
+ class="bg-primary-700 hover:bg-primary-800 dark:hover:bg-primary-700 focus:ring-primary-300 dark:bg-primary-600 w-1/2 rounded-lg px-5 py-2 text-center text-sm font-medium text-white focus:ring-4"
134
+ type="button"
135
+ >
136
+ Today
137
+ </button>
138
+ <button
139
+ class="focus:ring-primary-300 w-1/2 rounded-lg border border-gray-300 bg-white px-5 py-2 text-center text-sm font-medium text-gray-900 hover:bg-gray-100 focus:ring-4 dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:hover:bg-gray-600"
140
+ type="button"
141
+ >
142
+ Clear
143
+ </button>
144
+ </div>
145
+ </div>
146
+ `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: WeekDaysNamesComponent, selector: "sc-week-days-names", inputs: ["weekDaysNames"] }, { kind: "component", type: MonthYearHeaderComponent, selector: "sc-month-year-header", inputs: ["monthYear"], outputs: ["monthYearChange"] }, { kind: "component", type: MonthDaysComponent, selector: "sc-month-days", inputs: ["days", "firstDayMonth", "selectedDay"], outputs: ["selectedDayChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
147
+ }
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: InlineDatePickerComponent, decorators: [{
149
+ type: Component,
150
+ args: [{ selector: 'sc-inline-date-picker', standalone: true, imports: [CommonModule, WeekDaysNamesComponent, MonthYearHeaderComponent, MonthDaysComponent], template: `
151
+ <div class="inline-block rounded-lg bg-white p-4 shadow-lg dark:bg-gray-700">
152
+ <div class="bg-white px-2 py-3 text-center font-semibold dark:bg-gray-700 dark:text-white">
153
+ <sc-month-year-header [monthYear]="monthYear()" (monthYearChange)="setMonthYear($event)" />
154
+ </div>
155
+
156
+ <sc-week-days-names [weekDaysNames]="weekDaysNames()" />
157
+
158
+ <sc-month-days
159
+ [days]="monthDays()"
160
+ [firstDayMonth]="firstDayMonth()"
161
+ [selectedDay]="selectedDay()"
162
+ (selectedDayChange)="setSelectedDay($event)"
163
+ />
164
+
165
+ <div class="mt-2 flex space-x-2 rtl:space-x-reverse">
166
+ <button
167
+ class="bg-primary-700 hover:bg-primary-800 dark:hover:bg-primary-700 focus:ring-primary-300 dark:bg-primary-600 w-1/2 rounded-lg px-5 py-2 text-center text-sm font-medium text-white focus:ring-4"
168
+ type="button"
169
+ >
170
+ Today
171
+ </button>
172
+ <button
173
+ class="focus:ring-primary-300 w-1/2 rounded-lg border border-gray-300 bg-white px-5 py-2 text-center text-sm font-medium text-gray-900 hover:bg-gray-100 focus:ring-4 dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:hover:bg-gray-600"
174
+ type="button"
175
+ >
176
+ Clear
177
+ </button>
178
+ </div>
179
+ </div>
180
+ `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
181
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
182
+ type: Inject,
183
+ args: [LOCALE_ID]
184
+ }] }] });
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWRhdGUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvc3JjL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvaW5saW5lLWRhdGUtcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsUUFBUSxFQUNSLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQWUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUF5Q2xGLE1BQU0sT0FBTyx5QkFBeUI7SUFtRFk7SUFsRGhELElBQUksR0FBRyxNQUFNLENBQVMsQ0FBQyxDQUFDLENBQUM7SUFDekIsS0FBSyxHQUFHLE1BQU0sQ0FBUyxDQUFDLENBQUMsQ0FBQztJQUMxQixhQUFhLEdBQUcsTUFBTSxDQUFnQixFQUFFLENBQUMsQ0FBQztJQUUxQyxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUN4QixNQUFNLE9BQU8sR0FBRztZQUNkLEtBQUssRUFBRSxNQUFNO1lBQ2IsSUFBSSxFQUFFLFNBQVM7WUFDZiw4REFBOEQ7U0FDeEQsQ0FBQztRQUVULE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FDOUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEVB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Q0FBQyxDQUFTO1FBQ2pCLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3JDLG9CQUFvQixFQUFFLENBQUM7WUFDdkIsV0FBVyxFQUFFLEtBQUs7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0FqSVUseUJBQXlCLGtCQW1EaEIsU0FBUzs0RkFuRGxCLHlCQUF5QixpRkFuQzFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4QlQseUVBL0JTLFlBQVksK0JBQUUsc0JBQXNCLDBGQUFFLHdCQUF3QixzSEFBRSxrQkFBa0I7OzRGQW9DakYseUJBQXlCO2tCQXZDckMsU0FBUzsrQkFDRSx1QkFBdUIsY0FDckIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLHNCQUFzQixFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixDQUFDLFlBQ25GOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4QlQsaUJBRWMsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs7MEJBcURsQyxNQUFNOzJCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0LFxuICBMT0NBTEVfSUQsXG4gIE9uSW5pdCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGNvbXB1dGVkLFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNb250aERheXNDb21wb25lbnQgfSBmcm9tICcuL21vbnRoLWRheXMuY29tcG9uZW50JztcbmltcG9ydCB7IE1vbnRoWWVhckhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vbW9udGgteWVhci1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFdlZWtEYXlOYW1lLCBXZWVrRGF5c05hbWVzQ29tcG9uZW50IH0gZnJvbSAnLi93ZWVrLWRheXMtbmFtZXMuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2MtaW5saW5lLWRhdGUtcGlja2VyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgV2Vla0RheXNOYW1lc0NvbXBvbmVudCwgTW9udGhZZWFySGVhZGVyQ29tcG9uZW50LCBNb250aERheXNDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJpbmxpbmUtYmxvY2sgcm91bmRlZC1sZyBiZy13aGl0ZSBwLTQgc2hhZG93LWxnIGRhcms6YmctZ3JheS03MDBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJiZy13aGl0ZSBweC0yIHB5LTMgdGV4dC1jZW50ZXIgZm9udC1zZW1pYm9sZCBkYXJrOmJnLWdyYXktNzAwIGRhcms6dGV4dC13aGl0ZVwiPlxuICAgICAgICA8c2MtbW9udGgteWVhci1oZWFkZXIgW21vbnRoWWVhcl09XCJtb250aFllYXIoKVwiIChtb250aFllYXJDaGFuZ2UpPVwic2V0TW9udGhZZWFyKCRldmVudClcIiAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxzYy13ZWVrLWRheXMtbmFtZXMgW3dlZWtEYXlzTmFtZXNdPVwid2Vla0RheXNOYW1lcygpXCIgLz5cblxuICAgICAgPHNjLW1vbnRoLWRheXNcbiAgICAgICAgW2RheXNdPVwibW9udGhEYXlzKClcIlxuICAgICAgICBbZmlyc3REYXlNb250aF09XCJmaXJzdERheU1vbnRoKClcIlxuICAgICAgICBbc2VsZWN0ZWREYXldPVwic2VsZWN0ZWREYXkoKVwiXG4gICAgICAgIChzZWxlY3RlZERheUNoYW5nZSk9XCJzZXRTZWxlY3RlZERheSgkZXZlbnQpXCJcbiAgICAgIC8+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIGZsZXggc3BhY2UteC0yIHJ0bDpzcGFjZS14LXJldmVyc2VcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYmctcHJpbWFyeS03MDAgaG92ZXI6YmctcHJpbWFyeS04MDAgZGFyazpob3ZlcjpiZy1wcmltYXJ5LTcwMCBmb2N1czpyaW5nLXByaW1hcnktMzAwIGRhcms6YmctcHJpbWFyeS02MDAgdy0xLzIgcm91bmRlZC1sZyBweC01IHB5LTIgdGV4dC1jZW50ZXIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LXdoaXRlIGZvY3VzOnJpbmctNFwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgID5cbiAgICAgICAgICBUb2RheVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiZm9jdXM6cmluZy1wcmltYXJ5LTMwMCB3LTEvMiByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItZ3JheS0zMDAgYmctd2hpdGUgcHgtNSBweS0yIHRleHQtY2VudGVyIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBob3ZlcjpiZy1ncmF5LTEwMCBmb2N1czpyaW5nLTQgZGFyazpib3JkZXItZ3JheS02MDAgZGFyazpiZy1ncmF5LTcwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpob3ZlcjpiZy1ncmF5LTYwMFwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgID5cbiAgICAgICAgICBDbGVhclxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IGBgLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgSW5saW5lRGF0ZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHllYXIgPSBzaWduYWw8bnVtYmVyPigwKTtcbiAgbW9udGggPSBzaWduYWw8bnVtYmVyPigwKTtcbiAgd2Vla0RheXNOYW1lcyA9IHNpZ25hbDxXZWVrRGF5TmFtZVtdPihbXSk7XG5cbiAgbW9udGhZZWFyID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBtb250aDogJ2xvbmcnLFxuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICB9IGFzIGFueTtcblxuICAgIGNvbnN0IHMgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCh0aGlzLmxvY2FsZUlkLCBvcHRpb25zKS5mb3JtYXQoXG4gICAgICBuZXcgRGF0ZSh0aGlzLnllYXIoKSwgdGhpcy5tb250aCgpLCAxKSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHM7XG4gIH0pO1xuXG4gIG1vbnRoRGF5cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAvLyBNb250aCBpbiBKYXZhU2NyaXB0IGlzIDAtaW5kZXhlZCAoSmFudWFyeSBpcyAwLCBGZWJydWFyeSBpcyAxLCBldGMpLFxuICAgIC8vIGJ1dCBieSB1c2luZyAwIGFzIHRoZSBkYXkgaXQgd2lsbCBnaXZlIHVzIHRoZSBsYXN0IGRheSBvZiB0aGUgcHJpb3JcbiAgICAvLyBtb250aC4gU28gcGFzc2luZyBpbiAxIGFzIHRoZSBtb250aCBudW1iZXIgd2lsbCByZXR1cm4gdGhlIGxhc3QgZGF5XG4gICAgLy8gb2YgSmFudWFyeSwgbm90IEZlYnJ1YXJ5XG4gICAgY29uc3QgbnVtT2ZEYXlzID0gbmV3IERhdGUodGhpcy55ZWFyKCksIHRoaXMubW9udGgoKSArIDEsIDApLmdldERhdGUoKTtcblxuICAgIGNvbnN0IGRheXMgPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IG51bU9mRGF5czsgaSsrKSB7XG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGhpcy55ZWFyKCksIHRoaXMubW9udGgoKSwgaSk7XG5cbiAgICAgIGRheXMucHVzaChcbiAgICAgICAgYCR7ZGF0ZS5nZXRGdWxsWWVhcigpfS0ke3RoaXMudHdvRGlnaXRzKGRhdGUuZ2V0TW9udGgoKSArIDEpfS0ke3RoaXMudHdvRGlnaXRzKGRhdGUuZ2V0RGF0ZSgpKX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF5cztcbiAgfSk7XG5cbiAgZmlyc3REYXlNb250aCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGhpcy55ZWFyKCksIHRoaXMubW9udGgoKSwgMSk7XG4gICAgY29uc3QgaW50bExvbmdGb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCh0aGlzLmxvY2FsZUlkLCB7IHdlZWtkYXk6ICdsb25nJyB9KTtcblxuICAgIGNvbnN0IGRheU5hbWUgPSBpbnRsTG9uZ0Zvcm1hdHRlci5mb3JtYXQoZGF0ZSk7XG4gICAgcmV0dXJuIHRoaXMud2Vla0RheXNOYW1lcygpXG4gICAgICAubWFwKChlKSA9PiBlLmxvbmcpXG4gICAgICAuaW5kZXhPZihkYXlOYW1lKTtcbiAgfSk7XG5cbiAgc2VsZWN0ZWREYXkgPSBzaWduYWw8c3RyaW5nPignJyk7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChMT0NBTEVfSUQpIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxlSWQ6IHN0cmluZykge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmluaXQoKTtcbiAgICB0aGlzLnNldExvY2FsZURheU5hbWVzKCk7XG4gIH1cblxuICBpbml0KCkge1xuICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgICB0aGlzLnllYXIuc2V0KHRvZGF5LmdldEZ1bGxZZWFyKCkpO1xuICAgIHRoaXMubW9udGguc2V0KHRvZGF5LmdldE1vbnRoKCkpO1xuICB9XG5cbiAgc2V0U2VsZWN0ZWREYXkoZGF5OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlbGVjdGVkRGF5LnNldChkYXkpO1xuICB9XG5cbiAgLy9odHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy81NzE5M1xuICBwcml2YXRlIHNldExvY2FsZURheU5hbWVzKCkge1xuICAgIGNvbnN0IHdlZWtEYXlzTmFtZXMgPSBbXTtcbiAgICBjb25zdCBpbnRsTmFycm93Rm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodGhpcy5sb2NhbGVJZCwgeyB3ZWVrZGF5OiAnbmFycm93JyB9KTtcbiAgICBjb25zdCBpbnRsU2hvcnRGb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCh0aGlzLmxvY2FsZUlkLCB7IHdlZWtkYXk6ICdzaG9ydCcgfSk7XG4gICAgY29uc3QgaW50bExvbmdGb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCh0aGlzLmxvY2FsZUlkLCB7IHdlZWtkYXk6ICdsb25nJyB9KTtcblxuICAgIGxldCBrID0gMDtcbiAgICBjb25zdCBmaXJzdERheU9mV2VlayA9IHRoaXMuZ2V0Rmlyc3REYXlPZldlZWsoKTtcbiAgICBpZiAoZmlyc3REYXlPZldlZWsgPT09IDcpIHtcbiAgICAgIC8vIEZpcnN0IGRheSBvZiB0aGUgd2VlayBpcyBTdW5kYXlcbiAgICAgIGsgPSAzOyAvLyAzdGggSmFudWFyeSAyMDIxIGlzIGEgU3VuZGF5XG4gICAgfVxuICAgIGlmIChmaXJzdERheU9mV2VlayA9PT0gMSkge1xuICAgICAgLy8gRmlyc3QgZGF5IG9mIHRoZSB3ZWVrIGlzIE1vbmRheVxuICAgICAgayA9IDQ7IC8vIDR0aCBKYW51YXJ5IDIwMjEgaXMgYSBNb25kYXlcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDc7IGkgKz0gMSkge1xuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKERhdGUuVVRDKDIwMjEsIDAsIGkgKyBrKSk7XG4gICAgICB3ZWVrRGF5c05hbWVzLnB1c2goe1xuICAgICAgICBuYXJyb3c6IGludGxOYXJyb3dGb3JtYXR0ZXIuZm9ybWF0KGRhdGUpLFxuICAgICAgICBzaG9ydDogaW50bFNob3J0Rm9ybWF0dGVyLmZvcm1hdChkYXRlKSxcbiAgICAgICAgbG9uZzogaW50bExvbmdGb3JtYXR0ZXIuZm9ybWF0KGRhdGUpLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy53ZWVrRGF5c05hbWVzLnNldCh3ZWVrRGF5c05hbWVzKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Rmlyc3REYXlPZldlZWsoKTogbnVtYmVyIHtcbiAgICBjb25zdCBsb2NhbGUgPSBuZXcgSW50bC5Mb2NhbGUodGhpcy5sb2NhbGVJZCk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICByZXR1cm4gKGxvY2FsZSBhcyBhbnkpLmdldFdlZWtJbmZvKCkuZmlyc3REYXk7XG4gIH1cblxuICBzZXRNb250aFllYXIobjogbnVtYmVyKSB7XG4gICAgaWYgKG4gPT09IDEpIHtcbiAgICAgIGlmICh0aGlzLm1vbnRoKCkgPCAxMSkge1xuICAgICAgICB0aGlzLm1vbnRoLnVwZGF0ZSgodmFsdWUpID0+IHZhbHVlICsgMSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm1vbnRoLnNldCgwKTtcbiAgICAgICAgdGhpcy55ZWFyLnVwZGF0ZSgodmFsdWUpID0+IHZhbHVlICsgMSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG4gPT09IC0xKSB7XG4gICAgICBpZiAodGhpcy5tb250aCgpID4gMCkge1xuICAgICAgICB0aGlzLm1vbnRoLnVwZGF0ZSgodmFsdWUpID0+IHZhbHVlIC0gMSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm1vbnRoLnNldCgxMSk7XG4gICAgICAgIHRoaXMueWVhci51cGRhdGUoKHZhbHVlKSA9PiB2YWx1ZSAtIDEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHR3b0RpZ2l0cyhuOiBudW1iZXIpIHtcbiAgICByZXR1cm4gbi50b0xvY2FsZVN0cmluZyh0aGlzLmxvY2FsZUlkLCB7XG4gICAgICBtaW5pbXVtSW50ZWdlckRpZ2l0czogMixcbiAgICAgIHVzZUdyb3VwaW5nOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,69 @@
1
+ import { CommonModule, NgClass } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, ViewEncapsulation, input, output, } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export class MonthDaysComponent {
6
+ days = input.required();
7
+ firstDayMonth = input.required();
8
+ selectedDay = input('');
9
+ selectedDayChange = output();
10
+ isSelected(day) {
11
+ return day === this.selectedDay();
12
+ }
13
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
+ setSelectedDay(event) {
15
+ const selectedDay = event.target.dataset.scDay;
16
+ this.selectedDayChange.emit(selectedDay);
17
+ }
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: MonthDaysComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: MonthDaysComponent, isStandalone: true, selector: "sc-month-days", inputs: { days: { classPropertyName: "days", publicName: "days", isSignal: true, isRequired: true, transformFunction: null }, firstDayMonth: { classPropertyName: "firstDayMonth", publicName: "firstDayMonth", isSignal: true, isRequired: true, transformFunction: null }, selectedDay: { classPropertyName: "selectedDay", publicName: "selectedDay", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedDayChange: "selectedDayChange" }, ngImport: i0, template: `
20
+ <div class="grid w-64 grid-cols-7">
21
+ @for (day of days(); track $index; let index = $index) {
22
+ <button
23
+ class="block flex-1 cursor-pointer rounded-lg border-0 text-center text-sm font-semibold leading-9 text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600"
24
+ [ngClass]="{
25
+ 'col-start-1': index === 0 && firstDayMonth() === 0,
26
+ 'col-start-2': index === 0 && firstDayMonth() === 1,
27
+ 'col-start-3': index === 0 && firstDayMonth() === 2,
28
+ 'col-start-4': index === 0 && firstDayMonth() === 3,
29
+ 'col-start-5': index === 0 && firstDayMonth() === 4,
30
+ 'col-start-6': index === 0 && firstDayMonth() === 5,
31
+ 'col-start-7': index === 0 && firstDayMonth() === 6,
32
+ '!bg-primary-700 dark:!bg-primary-600 !text-white': isSelected(day),
33
+ }"
34
+ [attr.data-sc-day]="day"
35
+ (click)="setSelectedDay($event)"
36
+ >
37
+ {{ day.slice(-2) }}
38
+ </button>
39
+ }
40
+ </div>
41
+ `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: MonthDaysComponent, decorators: [{
44
+ type: Component,
45
+ args: [{ selector: 'sc-month-days', standalone: true, imports: [CommonModule, NgClass], template: `
46
+ <div class="grid w-64 grid-cols-7">
47
+ @for (day of days(); track $index; let index = $index) {
48
+ <button
49
+ class="block flex-1 cursor-pointer rounded-lg border-0 text-center text-sm font-semibold leading-9 text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600"
50
+ [ngClass]="{
51
+ 'col-start-1': index === 0 && firstDayMonth() === 0,
52
+ 'col-start-2': index === 0 && firstDayMonth() === 1,
53
+ 'col-start-3': index === 0 && firstDayMonth() === 2,
54
+ 'col-start-4': index === 0 && firstDayMonth() === 3,
55
+ 'col-start-5': index === 0 && firstDayMonth() === 4,
56
+ 'col-start-6': index === 0 && firstDayMonth() === 5,
57
+ 'col-start-7': index === 0 && firstDayMonth() === 6,
58
+ '!bg-primary-700 dark:!bg-primary-600 !text-white': isSelected(day),
59
+ }"
60
+ [attr.data-sc-day]="day"
61
+ (click)="setSelectedDay($event)"
62
+ >
63
+ {{ day.slice(-2) }}
64
+ </button>
65
+ }
66
+ </div>
67
+ `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
68
+ }] });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtZGF5cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NyYy9jb21wb25lbnRzL2RhdGUtcGlja2VyL21vbnRoLWRheXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7OztBQWlDdkIsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixJQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBWSxDQUFDO0lBQ2xDLGFBQWEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7SUFDekMsV0FBVyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztJQUVoQyxpQkFBaUIsR0FBRyxNQUFNLEVBQVUsQ0FBQztJQUVyQyxVQUFVLENBQUMsR0FBVztRQUNwQixPQUFPLEdBQUcsS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELDhEQUE4RDtJQUM5RCxjQUFjLENBQUMsS0FBVTtRQUN2QixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDL0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMzQyxDQUFDO3dHQWZVLGtCQUFrQjs0RkFBbEIsa0JBQWtCLHVoQkEzQm5COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JULHlFQXZCUyxZQUFZOzs0RkE0Qlgsa0JBQWtCO2tCQS9COUIsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUN0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCVCxpQkFFYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbnB1dCxcbiAgb3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2MtbW9udGgtZGF5cycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE5nQ2xhc3NdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJncmlkIHctNjQgZ3JpZC1jb2xzLTdcIj5cbiAgICAgIEBmb3IgKGRheSBvZiBkYXlzKCk7IHRyYWNrICRpbmRleDsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJsb2NrIGZsZXgtMSBjdXJzb3ItcG9pbnRlciByb3VuZGVkLWxnIGJvcmRlci0wIHRleHQtY2VudGVyIHRleHQtc20gZm9udC1zZW1pYm9sZCBsZWFkaW5nLTkgdGV4dC1ncmF5LTkwMCBob3ZlcjpiZy1ncmF5LTEwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpob3ZlcjpiZy1ncmF5LTYwMFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ2NvbC1zdGFydC0xJzogaW5kZXggPT09IDAgJiYgZmlyc3REYXlNb250aCgpID09PSAwLFxuICAgICAgICAgICAgJ2NvbC1zdGFydC0yJzogaW5kZXggPT09IDAgJiYgZmlyc3REYXlNb250aCgpID09PSAxLFxuICAgICAgICAgICAgJ2NvbC1zdGFydC0zJzogaW5kZXggPT09IDAgJiYgZmlyc3REYXlNb250aCgpID09PSAyLFxuICAgICAgICAgICAgJ2NvbC1zdGFydC00JzogaW5kZXggPT09IDAgJiYgZmlyc3REYXlNb250aCgpID09PSAzLFxuICAgICAgICAgICAgJ2NvbC1zdGFydC01JzogaW5kZXggPT09IDAgJiYgZmlyc3REYXlNb250aCgpID09PSA0LFxuICAgICAgICAgICAgJ2NvbC1zdGFydC02JzogaW5kZXggPT09IDAgJiYgZmlyc3REYXlNb250aCgpID09PSA1LFxuICAgICAgICAgICAgJ2NvbC1zdGFydC03JzogaW5kZXggPT09IDAgJiYgZmlyc3REYXlNb250aCgpID09PSA2LFxuICAgICAgICAgICAgJyFiZy1wcmltYXJ5LTcwMCBkYXJrOiFiZy1wcmltYXJ5LTYwMCAhdGV4dC13aGl0ZSc6IGlzU2VsZWN0ZWQoZGF5KSxcbiAgICAgICAgICB9XCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXNjLWRheV09XCJkYXlcIlxuICAgICAgICAgIChjbGljayk9XCJzZXRTZWxlY3RlZERheSgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGRheS5zbGljZSgtMikgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogYGAsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBNb250aERheXNDb21wb25lbnQge1xuICBkYXlzID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nW10+KCk7XG4gIGZpcnN0RGF5TW9udGggPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XG4gIHNlbGVjdGVkRGF5ID0gaW5wdXQ8c3RyaW5nPignJyk7XG5cbiAgc2VsZWN0ZWREYXlDaGFuZ2UgPSBvdXRwdXQ8c3RyaW5nPigpO1xuXG4gIGlzU2VsZWN0ZWQoZGF5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZGF5ID09PSB0aGlzLnNlbGVjdGVkRGF5KCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBzZXRTZWxlY3RlZERheShldmVudDogYW55KSB7XG4gICAgY29uc3Qgc2VsZWN0ZWREYXkgPSBldmVudC50YXJnZXQuZGF0YXNldC5zY0RheTtcbiAgICB0aGlzLnNlbGVjdGVkRGF5Q2hhbmdlLmVtaXQoc2VsZWN0ZWREYXkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,124 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, ViewEncapsulation, input, output, } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class MonthYearHeaderComponent {
5
+ monthYear = input.required();
6
+ monthYearChange = output();
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: MonthYearHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.11", type: MonthYearHeaderComponent, isStandalone: true, selector: "sc-month-year-header", inputs: { monthYear: { classPropertyName: "monthYear", publicName: "monthYear", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { monthYearChange: "monthYearChange" }, ngImport: i0, template: `
9
+ <div class="mb-2 flex justify-between">
10
+ <button
11
+ class="rounded-lg bg-white p-2.5 text-lg text-gray-500 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-gray-200 dark:bg-gray-700 dark:text-white dark:hover:bg-gray-600 dark:hover:text-white"
12
+ (click)="monthYearChange.emit(-1)"
13
+ aria-label="Previous month"
14
+ type="button"
15
+ >
16
+ <svg
17
+ class="size-4 text-gray-800 rtl:rotate-180 dark:text-white"
18
+ aria-hidden="true"
19
+ xmlns="http://www.w3.org/2000/svg"
20
+ fill="none"
21
+ viewBox="0 0 14 10"
22
+ >
23
+ <path
24
+ stroke="currentColor"
25
+ stroke-linecap="round"
26
+ stroke-linejoin="round"
27
+ stroke-width="2"
28
+ d="M13 5H1m0 0 4 4M1 5l4-4"
29
+ ></path>
30
+ </svg>
31
+ </button>
32
+
33
+ <button
34
+ class="rounded-lg bg-white px-5 py-2.5 text-sm font-semibold text-gray-900 hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-gray-200 dark:bg-gray-700 dark:text-white dark:hover:bg-gray-600"
35
+ type="button"
36
+ >
37
+ {{ monthYear() }}
38
+ </button>
39
+
40
+ <button
41
+ class="rounded-lg bg-white p-2.5 text-lg text-gray-500 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-gray-200 dark:bg-gray-700 dark:text-white dark:hover:bg-gray-600 dark:hover:text-white"
42
+ (click)="monthYearChange.emit(1)"
43
+ type="button"
44
+ aria-label="Next month"
45
+ >
46
+ <svg
47
+ class="size-4 text-gray-800 rtl:rotate-180 dark:text-white"
48
+ aria-hidden="true"
49
+ xmlns="http://www.w3.org/2000/svg"
50
+ fill="none"
51
+ viewBox="0 0 14 10"
52
+ >
53
+ <path
54
+ stroke="currentColor"
55
+ stroke-linecap="round"
56
+ stroke-linejoin="round"
57
+ stroke-width="2"
58
+ d="M1 5h12m0 0L9 1m4 4L9 9"
59
+ ></path>
60
+ </svg>
61
+ </button>
62
+ </div>
63
+ `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
64
+ }
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: MonthYearHeaderComponent, decorators: [{
66
+ type: Component,
67
+ args: [{ selector: 'sc-month-year-header', standalone: true, imports: [CommonModule], template: `
68
+ <div class="mb-2 flex justify-between">
69
+ <button
70
+ class="rounded-lg bg-white p-2.5 text-lg text-gray-500 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-gray-200 dark:bg-gray-700 dark:text-white dark:hover:bg-gray-600 dark:hover:text-white"
71
+ (click)="monthYearChange.emit(-1)"
72
+ aria-label="Previous month"
73
+ type="button"
74
+ >
75
+ <svg
76
+ class="size-4 text-gray-800 rtl:rotate-180 dark:text-white"
77
+ aria-hidden="true"
78
+ xmlns="http://www.w3.org/2000/svg"
79
+ fill="none"
80
+ viewBox="0 0 14 10"
81
+ >
82
+ <path
83
+ stroke="currentColor"
84
+ stroke-linecap="round"
85
+ stroke-linejoin="round"
86
+ stroke-width="2"
87
+ d="M13 5H1m0 0 4 4M1 5l4-4"
88
+ ></path>
89
+ </svg>
90
+ </button>
91
+
92
+ <button
93
+ class="rounded-lg bg-white px-5 py-2.5 text-sm font-semibold text-gray-900 hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-gray-200 dark:bg-gray-700 dark:text-white dark:hover:bg-gray-600"
94
+ type="button"
95
+ >
96
+ {{ monthYear() }}
97
+ </button>
98
+
99
+ <button
100
+ class="rounded-lg bg-white p-2.5 text-lg text-gray-500 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-gray-200 dark:bg-gray-700 dark:text-white dark:hover:bg-gray-600 dark:hover:text-white"
101
+ (click)="monthYearChange.emit(1)"
102
+ type="button"
103
+ aria-label="Next month"
104
+ >
105
+ <svg
106
+ class="size-4 text-gray-800 rtl:rotate-180 dark:text-white"
107
+ aria-hidden="true"
108
+ xmlns="http://www.w3.org/2000/svg"
109
+ fill="none"
110
+ viewBox="0 0 14 10"
111
+ >
112
+ <path
113
+ stroke="currentColor"
114
+ stroke-linecap="round"
115
+ stroke-linejoin="round"
116
+ stroke-width="2"
117
+ d="M1 5h12m0 0L9 1m4 4L9 9"
118
+ ></path>
119
+ </svg>
120
+ </button>
121
+ </div>
122
+ `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
123
+ }] });
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgteWVhci1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9zcmMvY29tcG9uZW50cy9kYXRlLXBpY2tlci9tb250aC15ZWFyLWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGlCQUFpQixFQUNqQixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOztBQWtFdkIsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBRXJDLGVBQWUsR0FBRyxNQUFNLEVBQVUsQ0FBQzt3R0FIeEIsd0JBQXdCOzRGQUF4Qix3QkFBd0IsZ1JBNUR6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVEVCx5RUF4RFMsWUFBWTs7NEZBNkRYLHdCQUF3QjtrQkFoRXBDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdURULGlCQUVjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGlucHV0LFxuICBvdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYy1tb250aC15ZWFyLWhlYWRlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJtYi0yIGZsZXgganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwicm91bmRlZC1sZyBiZy13aGl0ZSBwLTIuNSB0ZXh0LWxnIHRleHQtZ3JheS01MDAgaG92ZXI6YmctZ3JheS0xMDAgaG92ZXI6dGV4dC1ncmF5LTkwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctZ3JheS0yMDAgZGFyazpiZy1ncmF5LTcwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpob3ZlcjpiZy1ncmF5LTYwMCBkYXJrOmhvdmVyOnRleHQtd2hpdGVcIlxuICAgICAgICAoY2xpY2spPVwibW9udGhZZWFyQ2hhbmdlLmVtaXQoLTEpXCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIlByZXZpb3VzIG1vbnRoXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIDxzdmdcbiAgICAgICAgICBjbGFzcz1cInNpemUtNCB0ZXh0LWdyYXktODAwIHJ0bDpyb3RhdGUtMTgwIGRhcms6dGV4dC13aGl0ZVwiXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgdmlld0JveD1cIjAgMCAxNCAxMFwiXG4gICAgICAgID5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICAgICAgICBkPVwiTTEzIDVIMW0wIDAgNCA0TTEgNWw0LTRcIlxuICAgICAgICAgID48L3BhdGg+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJyb3VuZGVkLWxnIGJnLXdoaXRlIHB4LTUgcHktMi41IHRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktOTAwIGhvdmVyOmJnLWdyYXktMTAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1ncmF5LTIwMCBkYXJrOmJnLWdyYXktNzAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOmhvdmVyOmJnLWdyYXktNjAwXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIHt7IG1vbnRoWWVhcigpIH19XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cInJvdW5kZWQtbGcgYmctd2hpdGUgcC0yLjUgdGV4dC1sZyB0ZXh0LWdyYXktNTAwIGhvdmVyOmJnLWdyYXktMTAwIGhvdmVyOnRleHQtZ3JheS05MDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLWdyYXktMjAwIGRhcms6YmctZ3JheS03MDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6aG92ZXI6YmctZ3JheS02MDAgZGFyazpob3Zlcjp0ZXh0LXdoaXRlXCJcbiAgICAgICAgKGNsaWNrKT1cIm1vbnRoWWVhckNoYW5nZS5lbWl0KDEpXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJOZXh0IG1vbnRoXCJcbiAgICAgID5cbiAgICAgICAgPHN2Z1xuICAgICAgICAgIGNsYXNzPVwic2l6ZS00IHRleHQtZ3JheS04MDAgcnRsOnJvdGF0ZS0xODAgZGFyazp0ZXh0LXdoaXRlXCJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE0IDEwXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcbiAgICAgICAgICAgIGQ9XCJNMSA1aDEybTAgMEw5IDFtNCA0TDkgOVwiXG4gICAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBgYCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1vbnRoWWVhckhlYWRlckNvbXBvbmVudCB7XG4gIG1vbnRoWWVhciA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcblxuICBtb250aFllYXJDaGFuZ2UgPSBvdXRwdXQ8bnVtYmVyPigpO1xufVxuIl19
@@ -0,0 +1,37 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class WeekDaysNamesComponent {
5
+ weekDaysNames = input.required();
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: WeekDaysNamesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: WeekDaysNamesComponent, isStandalone: true, selector: "sc-week-days-names", inputs: { weekDaysNames: { classPropertyName: "weekDaysNames", publicName: "weekDaysNames", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
8
+ <div class="mb-1 grid grid-cols-7">
9
+ @for (weekDayName of weekDaysNames(); track weekDayName.long) {
10
+ <abbr
11
+ class="h-6 text-center text-sm font-medium leading-6 text-gray-500 dark:text-gray-400"
12
+ [title]="weekDayName.long"
13
+ [attr.aria-label]="weekDayName.long"
14
+ >
15
+ {{ weekDayName.short }}
16
+ </abbr>
17
+ }
18
+ </div>
19
+ `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: WeekDaysNamesComponent, decorators: [{
22
+ type: Component,
23
+ args: [{ selector: 'sc-week-days-names', standalone: true, imports: [CommonModule], template: `
24
+ <div class="mb-1 grid grid-cols-7">
25
+ @for (weekDayName of weekDaysNames(); track weekDayName.long) {
26
+ <abbr
27
+ class="h-6 text-center text-sm font-medium leading-6 text-gray-500 dark:text-gray-400"
28
+ [title]="weekDayName.long"
29
+ [attr.aria-label]="weekDayName.long"
30
+ >
31
+ {{ weekDayName.short }}
32
+ </abbr>
33
+ }
34
+ </div>
35
+ `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
36
+ }] });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vlay1kYXlzLW5hbWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvc3JjL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvd2Vlay1kYXlzLW5hbWVzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBNkI3RixNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLGFBQWEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFpQixDQUFDO3dHQURyQyxzQkFBc0I7NEZBQXRCLHNCQUFzQix5T0FqQnZCOzs7Ozs7Ozs7Ozs7R0FZVCx5RUFiUyxZQUFZOzs0RkFrQlgsc0JBQXNCO2tCQXJCbEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLFlBQ2I7Ozs7Ozs7Ozs7OztHQVlULGlCQUVjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2Vla0RheU5hbWUge1xuICBuYXJyb3c6IHN0cmluZztcbiAgc2hvcnQ6IHN0cmluZztcbiAgbG9uZzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYy13ZWVrLWRheXMtbmFtZXMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwibWItMSBncmlkIGdyaWQtY29scy03XCI+XG4gICAgICBAZm9yICh3ZWVrRGF5TmFtZSBvZiB3ZWVrRGF5c05hbWVzKCk7IHRyYWNrIHdlZWtEYXlOYW1lLmxvbmcpIHtcbiAgICAgICAgPGFiYnJcbiAgICAgICAgICBjbGFzcz1cImgtNiB0ZXh0LWNlbnRlciB0ZXh0LXNtIGZvbnQtbWVkaXVtIGxlYWRpbmctNiB0ZXh0LWdyYXktNTAwIGRhcms6dGV4dC1ncmF5LTQwMFwiXG4gICAgICAgICAgW3RpdGxlXT1cIndlZWtEYXlOYW1lLmxvbmdcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwid2Vla0RheU5hbWUubG9uZ1wiXG4gICAgICAgID5cbiAgICAgICAgICB7eyB3ZWVrRGF5TmFtZS5zaG9ydCB9fVxuICAgICAgICA8L2FiYnI+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogYGAsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBXZWVrRGF5c05hbWVzQ29tcG9uZW50IHtcbiAgd2Vla0RheXNOYW1lcyA9IGlucHV0LnJlcXVpcmVkPFdlZWtEYXlOYW1lW10+KCk7XG59XG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class DropdownDividerComponent {
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DropdownDividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: DropdownDividerComponent, isStandalone: true, selector: "sc-dropdown-divider", ngImport: i0, template: `
7
+ <li class="py-2"><hr /></li>
8
+ `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DropdownDividerComponent, decorators: [{
11
+ type: Component,
12
+ args: [{ selector: 'sc-dropdown-divider', standalone: true, imports: [CommonModule], template: `
13
+ <li class="py-2"><hr /></li>
14
+ `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tZGl2aWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NyYy9jb21wb25lbnRzL2Ryb3Bkb3duL2Ryb3Bkb3duLWRpdmlkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWF0RixNQUFNLE9BQU8sd0JBQXdCO3dHQUF4Qix3QkFBd0I7NEZBQXhCLHdCQUF3QiwrRUFQekI7O0dBRVQseUVBSFMsWUFBWTs7NEZBUVgsd0JBQXdCO2tCQVhwQyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsWUFDYjs7R0FFVCxpQkFFYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NjLWRyb3Bkb3duLWRpdmlkZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bGkgY2xhc3M9XCJweS0yXCI+PGhyIC8+PC9saT5cbiAgYCxcbiAgc3R5bGVzOiBgYCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duRGl2aWRlckNvbXBvbmVudCB7fVxuIl19
@@ -0,0 +1,33 @@
1
+ import { CdkMenuItem } from '@angular/cdk/menu';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';
4
+ import * as i0 from "@angular/core";
5
+ //TODO try to add CdkMenuItem
6
+ export class DropdownItemComponent {
7
+ text = input.required();
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DropdownItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.11", type: DropdownItemComponent, isStandalone: true, selector: "sc-dropdown-item", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
10
+ <li>
11
+ <a
12
+ class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white"
13
+ href="javascript:void(0)"
14
+ >
15
+ {{ text() }}
16
+ </a>
17
+ </li>
18
+ `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DropdownItemComponent, decorators: [{
21
+ type: Component,
22
+ args: [{ selector: 'sc-dropdown-item', standalone: true, imports: [CommonModule, CdkMenuItem], template: `
23
+ <li>
24
+ <a
25
+ class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white"
26
+ href="javascript:void(0)"
27
+ >
28
+ {{ text() }}
29
+ </a>
30
+ </li>
31
+ `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
32
+ }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NyYy9jb21wb25lbnRzL2Ryb3Bkb3duL2Ryb3Bkb3duLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTdGLDZCQUE2QjtBQW9CN0IsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxJQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO3dHQURyQixxQkFBcUI7NEZBQXJCLHFCQUFxQiw0TUFkdEI7Ozs7Ozs7OztHQVNULHlFQVZTLFlBQVk7OzRGQWVYLHFCQUFxQjtrQkFsQmpDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsWUFDMUI7Ozs7Ozs7OztHQVNULGlCQUVjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtNZW51SXRlbSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9tZW51JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy9UT0RPIHRyeSB0byBhZGQgQ2RrTWVudUl0ZW1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2MtZHJvcGRvd24taXRlbScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENka01lbnVJdGVtXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bGk+XG4gICAgICA8YVxuICAgICAgICBjbGFzcz1cImJsb2NrIHB4LTQgcHktMiBob3ZlcjpiZy1ncmF5LTEwMCBkYXJrOmhvdmVyOmJnLWdyYXktNjAwIGRhcms6aG92ZXI6dGV4dC13aGl0ZVwiXG4gICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxuICAgICAgPlxuICAgICAgICB7eyB0ZXh0KCkgfX1cbiAgICAgIDwvYT5cbiAgICA8L2xpPlxuICBgLFxuICBzdHlsZXM6IGBgLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25JdGVtQ29tcG9uZW50IHtcbiAgdGV4dCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbn1cbiJdfQ==
@@ -0,0 +1,85 @@
1
+ import { CdkMenu, CdkMenuTrigger } from '@angular/cdk/menu';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';
4
+ import * as i0 from "@angular/core";
5
+ export class DropdownComponent {
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: DropdownComponent, isStandalone: true, selector: "sc-dropdown", ngImport: i0, template: `
8
+ <!--ng-content select="dropdown-toggle" /-->
9
+
10
+ <button
11
+ class="inline-flex items-center rounded-lg bg-blue-700 px-5 py-2.5 text-center text-sm font-medium text-white hover:bg-blue-800 focus:outline-none focus:ring-4 focus:ring-blue-300 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800"
12
+ [cdkMenuTriggerFor]="menu"
13
+ type="button"
14
+ >
15
+ Dropdown button
16
+ <svg
17
+ class="ms-3 size-2.5"
18
+ aria-hidden="true"
19
+ xmlns="http://www.w3.org/2000/svg"
20
+ fill="none"
21
+ viewBox="0 0 10 6"
22
+ >
23
+ <path
24
+ stroke="currentColor"
25
+ stroke-linecap="round"
26
+ stroke-linejoin="round"
27
+ stroke-width="2"
28
+ d="m1 1 4 4 4-4"
29
+ />
30
+ </svg>
31
+ </button>
32
+
33
+ <ng-template #menu>
34
+ <div
35
+ class="z-10 w-44 divide-y divide-gray-100 rounded-lg bg-white shadow dark:bg-gray-700"
36
+ cdkMenu
37
+ >
38
+ <ul class="py-2 text-sm text-gray-700 dark:text-gray-200">
39
+ <ng-content select="dropdown-items" />
40
+ </ul>
41
+ </div>
42
+ </ng-template>
43
+ `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "directive", type: CdkMenu, selector: "[cdkMenu]", outputs: ["closed"], exportAs: ["cdkMenu"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
44
+ }
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DropdownComponent, decorators: [{
46
+ type: Component,
47
+ args: [{ selector: 'sc-dropdown', standalone: true, imports: [CommonModule, CdkMenuTrigger, CdkMenu], template: `
48
+ <!--ng-content select="dropdown-toggle" /-->
49
+
50
+ <button
51
+ class="inline-flex items-center rounded-lg bg-blue-700 px-5 py-2.5 text-center text-sm font-medium text-white hover:bg-blue-800 focus:outline-none focus:ring-4 focus:ring-blue-300 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800"
52
+ [cdkMenuTriggerFor]="menu"
53
+ type="button"
54
+ >
55
+ Dropdown button
56
+ <svg
57
+ class="ms-3 size-2.5"
58
+ aria-hidden="true"
59
+ xmlns="http://www.w3.org/2000/svg"
60
+ fill="none"
61
+ viewBox="0 0 10 6"
62
+ >
63
+ <path
64
+ stroke="currentColor"
65
+ stroke-linecap="round"
66
+ stroke-linejoin="round"
67
+ stroke-width="2"
68
+ d="m1 1 4 4 4-4"
69
+ />
70
+ </svg>
71
+ </button>
72
+
73
+ <ng-template #menu>
74
+ <div
75
+ class="z-10 w-44 divide-y divide-gray-100 rounded-lg bg-white shadow dark:bg-gray-700"
76
+ cdkMenu
77
+ >
78
+ <ul class="py-2 text-sm text-gray-700 dark:text-gray-200">
79
+ <ng-content select="dropdown-items" />
80
+ </ul>
81
+ </div>
82
+ </ng-template>
83
+ `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
84
+ }] });
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9zcmMvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUErQ3RGLE1BQU0sT0FBTyxpQkFBaUI7d0dBQWpCLGlCQUFpQjs0RkFBakIsaUJBQWlCLHVFQXpDbEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9DVCx5RUFyQ1MsWUFBWSwrQkFBRSxjQUFjLHNOQUFFLE9BQU87OzRGQTBDcEMsaUJBQWlCO2tCQTdDN0IsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGNBQWMsRUFBRSxPQUFPLENBQUMsWUFDdEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9DVCxpQkFFYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrTWVudSwgQ2RrTWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbWVudSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2MtZHJvcGRvd24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDZGtNZW51VHJpZ2dlciwgQ2RrTWVudV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPCEtLW5nLWNvbnRlbnQgc2VsZWN0PVwiZHJvcGRvd24tdG9nZ2xlXCIgLy0tPlxuXG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgcm91bmRlZC1sZyBiZy1ibHVlLTcwMCBweC01IHB5LTIuNSB0ZXh0LWNlbnRlciB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtd2hpdGUgaG92ZXI6YmctYmx1ZS04MDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLWJsdWUtMzAwIGRhcms6YmctYmx1ZS02MDAgZGFyazpob3ZlcjpiZy1ibHVlLTcwMCBkYXJrOmZvY3VzOnJpbmctYmx1ZS04MDBcIlxuICAgICAgW2Nka01lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAgRHJvcGRvd24gYnV0dG9uXG4gICAgICA8c3ZnXG4gICAgICAgIGNsYXNzPVwibXMtMyBzaXplLTIuNVwiXG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMTAgNlwiXG4gICAgICA+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICAgICAgZD1cIm0xIDEgNCA0IDQtNFwiXG4gICAgICAgIC8+XG4gICAgICA8L3N2Zz5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjbWVudT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ6LTEwIHctNDQgZGl2aWRlLXkgZGl2aWRlLWdyYXktMTAwIHJvdW5kZWQtbGcgYmctd2hpdGUgc2hhZG93IGRhcms6YmctZ3JheS03MDBcIlxuICAgICAgICBjZGtNZW51XG4gICAgICA+XG4gICAgICAgIDx1bCBjbGFzcz1cInB5LTIgdGV4dC1zbSB0ZXh0LWdyYXktNzAwIGRhcms6dGV4dC1ncmF5LTIwMFwiPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRyb3Bkb3duLWl0ZW1zXCIgLz5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIGAsXG4gIHN0eWxlczogYGAsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkNvbXBvbmVudCB7fVxuIl19
@@ -0,0 +1,4 @@
1
+ export * from './dropdown.component';
2
+ export * from './dropdown-divider.component';
3
+ export * from './dropdown-item.component';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NyYy9jb21wb25lbnRzL2Ryb3Bkb3duL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi1kaXZpZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2Ryb3Bkb3duLWl0ZW0uY29tcG9uZW50JztcbiJdfQ==