@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.
- package/README.md +6 -0
- package/components/date-picker/date-picker.component.d.ts +30 -2
- package/components/date-picker/index.d.ts +1 -0
- package/components/date-picker/inline-date-picker.component.d.ts +23 -0
- package/components/date-picker/month-days.component.d.ts +11 -0
- package/components/date-picker/month-year-header.component.d.ts +7 -0
- package/components/date-picker/week-days-names.component.d.ts +11 -0
- package/components/dropdown/dropdown-divider.component.d.ts +5 -0
- package/components/dropdown/dropdown-item.component.d.ts +6 -0
- package/components/dropdown/dropdown.component.d.ts +5 -0
- package/components/dropdown/index.d.ts +3 -0
- package/components/editor/editor.component.d.ts +1 -1
- package/components/nav/index.d.ts +3 -0
- package/components/nav/nav-item-dropdown.component.d.ts +5 -0
- package/components/nav/nav-item.component.d.ts +5 -0
- package/components/nav/nav.component.d.ts +5 -0
- package/components/select/index.d.ts +2 -0
- package/components/select/select-option.component.d.ts +7 -0
- package/components/select/select.component.d.ts +55 -0
- package/components/tooltip/tooltip.component.d.ts +1 -1
- package/esm2022/components/date-picker/date-picker.component.mjs +181 -8
- package/esm2022/components/date-picker/index.mjs +2 -1
- package/esm2022/components/date-picker/inline-date-picker.component.mjs +185 -0
- package/esm2022/components/date-picker/month-days.component.mjs +69 -0
- package/esm2022/components/date-picker/month-year-header.component.mjs +124 -0
- package/esm2022/components/date-picker/week-days-names.component.mjs +37 -0
- package/esm2022/components/dropdown/dropdown-divider.component.mjs +16 -0
- package/esm2022/components/dropdown/dropdown-item.component.mjs +33 -0
- package/esm2022/components/dropdown/dropdown.component.mjs +85 -0
- package/esm2022/components/dropdown/index.mjs +4 -0
- package/esm2022/components/editor/editor.component.mjs +4 -4
- package/esm2022/components/nav/index.mjs +4 -0
- package/esm2022/components/nav/nav-item-dropdown.component.mjs +148 -0
- package/esm2022/components/nav/nav-item.component.mjs +16 -0
- package/esm2022/components/nav/nav.component.mjs +16 -0
- package/esm2022/components/select/index.mjs +3 -0
- package/esm2022/components/select/select-option.component.mjs +28 -0
- package/esm2022/components/select/select.component.mjs +252 -0
- package/esm2022/components/tooltip/tooltip.component.mjs +4 -4
- package/esm2022/index.mjs +4 -2
- package/fesm2022/semantic-components-ui.mjs +1132 -559
- package/fesm2022/semantic-components-ui.mjs.map +1 -1
- package/index.d.ts +3 -1
- package/package.json +7 -3
- package/components/navbar/index.d.ts +0 -1
- package/components/navbar/navbar.component.d.ts +0 -5
- package/esm2022/components/navbar/index.mjs +0 -2
- 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==
|