@egose/shadcn-theme-ng 0.0.28 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +130 -13
- package/accordion/README.md +2 -63
- package/accordion/fesm2022/accordion.mjs +27 -39
- package/alert/README.md +2 -63
- package/alert/fesm2022/alert.mjs +47 -47
- package/alert-dialog/fesm2022/alert-dialog.mjs +47 -47
- package/aspect-ratio/fesm2022/aspect-ratio.mjs +9 -9
- package/autocomplete/README.md +2 -63
- package/autocomplete/fesm2022/autocomplete.mjs +53 -71
- package/avatar/fesm2022/avatar.mjs +32 -32
- package/badge/README.md +2 -63
- package/badge/fesm2022/badge.mjs +57 -57
- package/basic-alert/README.md +2 -63
- package/basic-alert/fesm2022/basic-alert.mjs +6 -18
- package/breadcrumb/fesm2022/breadcrumb.mjs +33 -39
- package/button/README.md +2 -63
- package/button/fesm2022/button.mjs +126 -176
- package/button/types/button.d.ts +2 -2
- package/button-group/fesm2022/button-group.mjs +20 -20
- package/calendar/README.md +2 -63
- package/calendar/fesm2022/calendar.mjs +29 -743
- package/card/fesm2022/card.mjs +33 -33
- package/carousel/fesm2022/carousel.mjs +36 -78
- package/checkbox/README.md +2 -63
- package/checkbox/fesm2022/checkbox.mjs +20 -58
- package/checkbox/types/checkbox.d.ts +5 -4
- package/collapsible/fesm2022/collapsible.mjs +15 -15
- package/combobox/fesm2022/combobox.mjs +88 -224
- package/command/fesm2022/command.mjs +49 -109
- package/confirmation-dialog/README.md +2 -63
- package/confirmation-dialog/fesm2022/confirmation-dialog.mjs +15 -40
- package/confirmation-dialog/types/confirmation-dialog.d.ts +8 -4
- package/context-menu/fesm2022/context-menu.mjs +9 -9
- package/date-picker/README.md +2 -63
- package/date-picker/fesm2022/date-picker.mjs +63 -266
- package/date-picker/types/date-picker.d.ts +7 -3
- package/dialog/README.md +2 -63
- package/dialog/fesm2022/dialog.mjs +45 -71
- package/drawer/fesm2022/drawer.mjs +44 -54
- package/dropdown-menu/fesm2022/dropdown-menu.mjs +82 -70
- package/dropdown-menu/types/dropdown-menu.d.ts +4 -0
- package/empty/fesm2022/empty.mjs +30 -30
- package/field/fesm2022/field.mjs +56 -72
- package/form-checkbox/README.md +2 -63
- package/form-checkbox/fesm2022/form-checkbox.mjs +25 -85
- package/form-checkbox/types/form-checkbox.d.ts +7 -1
- package/form-date-picker/README.md +2 -63
- package/form-date-picker/fesm2022/form-date-picker.mjs +31 -84
- package/form-date-picker/types/form-date-picker.d.ts +7 -1
- package/form-field/README.md +2 -63
- package/form-field/fesm2022/form-field.mjs +33 -19
- package/form-field/types/form-field.d.ts +28 -20
- package/form-field-simple/README.md +2 -63
- package/form-field-simple/fesm2022/form-field-simple.mjs +4 -4
- package/form-searchable-multiselect/README.md +2 -63
- package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs +31 -91
- package/form-searchable-multiselect/types/form-searchable-multiselect.d.ts +7 -1
- package/form-select/README.md +2 -63
- package/form-select/fesm2022/form-select.mjs +32 -149
- package/form-select/types/form-select.d.ts +7 -1
- package/form-text-input/README.md +2 -63
- package/form-text-input/fesm2022/form-text-input.mjs +35 -149
- package/form-text-input/types/form-text-input.d.ts +9 -12
- package/form-textarea/README.md +2 -63
- package/form-textarea/fesm2022/form-textarea.mjs +34 -109
- package/form-textarea/types/form-textarea.d.ts +8 -1
- package/hover-card/fesm2022/hover-card.mjs +19 -19
- package/icon/README.md +2 -63
- package/icon/fesm2022/icon.mjs +8 -8
- package/input/README.md +2 -63
- package/input/fesm2022/input.mjs +17 -12
- package/input/types/input.d.ts +2 -1
- package/input-group/fesm2022/input-group.mjs +33 -33
- package/input-otp/fesm2022/input-otp.mjs +26 -26
- package/item/fesm2022/item.mjs +53 -53
- package/kbd/fesm2022/kbd.mjs +12 -12
- package/label/README.md +2 -63
- package/label/fesm2022/label.mjs +10 -10
- package/label/types/label.d.ts +1 -1
- package/layout-simple/README.md +2 -63
- package/layout-simple/fesm2022/layout-simple.mjs +98 -429
- package/layout-simple/types/layout-simple.d.ts +25 -11
- package/menu/README.md +3 -0
- package/menu/fesm2022/menu.mjs +455 -0
- package/menu/package.json +24 -0
- package/menu/types/menu.d.ts +137 -0
- package/menubar/fesm2022/menubar.mjs +13 -13
- package/native-select/fesm2022/native-select.mjs +19 -19
- package/navigation-menu/fesm2022/navigation-menu.mjs +35 -47
- package/package.json +183 -154
- package/pagination/fesm2022/pagination.mjs +45 -331
- package/popover/README.md +2 -63
- package/popover/fesm2022/popover.mjs +30 -30
- package/progress/fesm2022/progress.mjs +13 -13
- package/radio-group/README.md +2 -63
- package/radio-group/fesm2022/radio-group.mjs +22 -19
- package/resizable/fesm2022/resizable.mjs +18 -26
- package/scroll-area/fesm2022/scroll-area.mjs +9 -9
- package/searchable-multiselect/README.md +2 -63
- package/searchable-multiselect/fesm2022/searchable-multiselect.mjs +28 -117
- package/searchable-multiselect/types/searchable-multiselect.d.ts +8 -2
- package/select/README.md +2 -63
- package/select/fesm2022/select.mjs +71 -111
- package/select/types/select.d.ts +3 -1
- package/separator/README.md +2 -63
- package/separator/fesm2022/separator.mjs +9 -9
- package/separator/types/separator.d.ts +1 -1
- package/sheet/README.md +2 -63
- package/sheet/fesm2022/sheet.mjs +41 -53
- package/sidebar/fesm2022/sidebar.mjs +125 -227
- package/skeleton/fesm2022/skeleton.mjs +9 -9
- package/slider/fesm2022/slider.mjs +10 -80
- package/sonner/README.md +2 -63
- package/sonner/fesm2022/sonner.mjs +13 -13
- package/spinner/README.md +2 -63
- package/spinner/fesm2022/spinner.mjs +11 -11
- package/switch/README.md +2 -63
- package/switch/fesm2022/switch.mjs +13 -15
- package/table/fesm2022/table.mjs +41 -41
- package/tabs/README.md +2 -63
- package/tabs/fesm2022/tabs.mjs +35 -111
- package/textarea/fesm2022/textarea.mjs +9 -9
- package/toggle/fesm2022/toggle.mjs +13 -13
- package/toggle-group/fesm2022/toggle-group.mjs +13 -13
- package/toggle-group/types/toggle-group.d.ts +13 -7
- package/tooltip/README.md +2 -63
- package/tooltip/fesm2022/tooltip.mjs +14 -14
- package/typography/fesm2022/typography.mjs +53 -53
- package/typography/types/typography.d.ts +12 -12
- package/utils/README.md +2 -63
- package/utils/fesm2022/utils.mjs +68 -44
- package/accordion/fesm2022/accordion.mjs.map +0 -1
- package/alert/fesm2022/alert.mjs.map +0 -1
- package/alert-dialog/fesm2022/alert-dialog.mjs.map +0 -1
- package/aspect-ratio/fesm2022/aspect-ratio.mjs.map +0 -1
- package/autocomplete/fesm2022/autocomplete.mjs.map +0 -1
- package/avatar/fesm2022/avatar.mjs.map +0 -1
- package/badge/fesm2022/badge.mjs.map +0 -1
- package/basic-alert/fesm2022/basic-alert.mjs.map +0 -1
- package/breadcrumb/fesm2022/breadcrumb.mjs.map +0 -1
- package/button/fesm2022/button.mjs.map +0 -1
- package/button-group/fesm2022/button-group.mjs.map +0 -1
- package/calendar/fesm2022/calendar.mjs.map +0 -1
- package/card/fesm2022/card.mjs.map +0 -1
- package/carousel/fesm2022/carousel.mjs.map +0 -1
- package/checkbox/fesm2022/checkbox.mjs.map +0 -1
- package/collapsible/fesm2022/collapsible.mjs.map +0 -1
- package/combobox/fesm2022/combobox.mjs.map +0 -1
- package/command/fesm2022/command.mjs.map +0 -1
- package/confirmation-dialog/fesm2022/confirmation-dialog.mjs.map +0 -1
- package/context-menu/fesm2022/context-menu.mjs.map +0 -1
- package/date-picker/fesm2022/date-picker.mjs.map +0 -1
- package/dialog/fesm2022/dialog.mjs.map +0 -1
- package/drawer/fesm2022/drawer.mjs.map +0 -1
- package/dropdown-menu/fesm2022/dropdown-menu.mjs.map +0 -1
- package/empty/fesm2022/empty.mjs.map +0 -1
- package/field/fesm2022/field.mjs.map +0 -1
- package/form-checkbox/fesm2022/form-checkbox.mjs.map +0 -1
- package/form-date-picker/fesm2022/form-date-picker.mjs.map +0 -1
- package/form-field/fesm2022/form-field.mjs.map +0 -1
- package/form-field-simple/fesm2022/form-field-simple.mjs.map +0 -1
- package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs.map +0 -1
- package/form-select/fesm2022/form-select.mjs.map +0 -1
- package/form-text-input/fesm2022/form-text-input.mjs.map +0 -1
- package/form-textarea/fesm2022/form-textarea.mjs.map +0 -1
- package/hover-card/fesm2022/hover-card.mjs.map +0 -1
- package/icon/fesm2022/icon.mjs.map +0 -1
- package/input/fesm2022/input.mjs.map +0 -1
- package/input-group/fesm2022/input-group.mjs.map +0 -1
- package/input-otp/fesm2022/input-otp.mjs.map +0 -1
- package/item/fesm2022/item.mjs.map +0 -1
- package/kbd/fesm2022/kbd.mjs.map +0 -1
- package/label/fesm2022/label.mjs.map +0 -1
- package/layout-simple/fesm2022/layout-simple.mjs.map +0 -1
- package/menubar/fesm2022/menubar.mjs.map +0 -1
- package/native-select/fesm2022/native-select.mjs.map +0 -1
- package/navigation-menu/fesm2022/navigation-menu.mjs.map +0 -1
- package/pagination/fesm2022/pagination.mjs.map +0 -1
- package/popover/fesm2022/popover.mjs.map +0 -1
- package/progress/fesm2022/progress.mjs.map +0 -1
- package/radio-group/fesm2022/radio-group.mjs.map +0 -1
- package/resizable/fesm2022/resizable.mjs.map +0 -1
- package/scroll-area/fesm2022/scroll-area.mjs.map +0 -1
- package/searchable-multiselect/fesm2022/searchable-multiselect.mjs.map +0 -1
- package/select/fesm2022/select.mjs.map +0 -1
- package/separator/fesm2022/separator.mjs.map +0 -1
- package/sheet/fesm2022/sheet.mjs.map +0 -1
- package/sidebar/fesm2022/sidebar.mjs.map +0 -1
- package/skeleton/fesm2022/skeleton.mjs.map +0 -1
- package/slider/fesm2022/slider.mjs.map +0 -1
- package/sonner/fesm2022/sonner.mjs.map +0 -1
- package/spinner/fesm2022/spinner.mjs.map +0 -1
- package/switch/fesm2022/switch.mjs.map +0 -1
- package/table/fesm2022/table.mjs.map +0 -1
- package/tabs/fesm2022/tabs.mjs.map +0 -1
- package/textarea/fesm2022/textarea.mjs.map +0 -1
- package/toggle/fesm2022/toggle.mjs.map +0 -1
- package/toggle-group/fesm2022/toggle-group.mjs.map +0 -1
- package/tooltip/fesm2022/tooltip.mjs.map +0 -1
- package/typography/fesm2022/typography.mjs.map +0 -1
- package/utils/fesm2022/utils.mjs.map +0 -1
|
@@ -33,116 +33,15 @@ class HlmCalendar {
|
|
|
33
33
|
};
|
|
34
34
|
}, /* @ts-ignore */
|
|
35
35
|
...(ngDevMode ? [{ debugName: "_heading" }] : /* istanbul ignore next */ []));
|
|
36
|
-
_btnClass = hlm(buttonVariants({ variant: 'ghost', size: 'icon' }),
|
|
36
|
+
_btnClass = hlm(buttonVariants({ variant: 'ghost', size: 'icon' }), "data-[today=true]:bg-muted group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:bg-muted data-[range-middle=true]:text-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground dark:hover:bg-muted/50 dark:hover:text-foreground relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 border-0 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-(--cell-radius) data-[range-end=true]:rounded-e-(--cell-radius) data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-(--cell-radius) data-[range-start=true]:rounded-s-(--cell-radius) [&>span]:text-xs [&>span]:opacity-70", "data-[outside=true]:opacity-50", "data-[highlighted]:before:content-['']", "data-[highlighted]:before:absolute", "data-[highlighted]:before:bottom-1", "data-[highlighted]:before:start-1/2", "data-[highlighted]:before:h-1", "data-[highlighted]:before:w-1", "data-[highlighted]:before:-translate-x-1/2", "data-[highlighted]:before:rounded-full", "data-[highlighted]:before:bg-destructive");
|
|
37
37
|
_selectClass = 'gap-0 px-1.5 py-2 [&>ng-icon]:ms-1';
|
|
38
38
|
constructor() {
|
|
39
|
-
classes(() =>
|
|
39
|
+
classes(() => "p-3 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(8)] group/calendar bg-background block in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent");
|
|
40
40
|
}
|
|
41
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
42
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
43
|
-
<div class="inline-flex flex-col gap-4">
|
|
44
|
-
<!-- Header -->
|
|
45
|
-
<div class="flex w-full items-center justify-between gap-1.5">
|
|
46
|
-
<ng-template #month>
|
|
47
|
-
<hlm-select brnCalendarMonthSelect class="order-1">
|
|
48
|
-
<hlm-select-trigger size="sm" [class]="_selectClass">
|
|
49
|
-
<hlm-select-value />
|
|
50
|
-
</hlm-select-trigger>
|
|
51
|
-
<hlm-select-content *hlmSelectPortal class="max-h-80">
|
|
52
|
-
<hlm-select-group>
|
|
53
|
-
@for (month of _i18n.config().months(); track month) {
|
|
54
|
-
<hlm-select-item [value]="month">{{ month }}</hlm-select-item>
|
|
55
|
-
}
|
|
56
|
-
</hlm-select-group>
|
|
57
|
-
</hlm-select-content>
|
|
58
|
-
</hlm-select>
|
|
59
|
-
</ng-template>
|
|
60
|
-
<ng-template #year>
|
|
61
|
-
<hlm-select brnCalendarYearSelect class="order-3">
|
|
62
|
-
<hlm-select-trigger size="sm" [class]="_selectClass">
|
|
63
|
-
<hlm-select-value />
|
|
64
|
-
</hlm-select-trigger>
|
|
65
|
-
<hlm-select-content *hlmSelectPortal class="max-h-80">
|
|
66
|
-
<hlm-select-group>
|
|
67
|
-
@for (year of _i18n.config().years(); track year) {
|
|
68
|
-
<hlm-select-item [value]="year">{{ year }}</hlm-select-item>
|
|
69
|
-
}
|
|
70
|
-
</hlm-select-group>
|
|
71
|
-
</hlm-select-content>
|
|
72
|
-
</hlm-select>
|
|
73
|
-
</ng-template>
|
|
74
|
-
@let heading = _heading();
|
|
75
|
-
|
|
76
|
-
<button
|
|
77
|
-
brnCalendarPreviousButton
|
|
78
|
-
variant="ghost"
|
|
79
|
-
hlmBtn
|
|
80
|
-
class="order-first size-(--cell-size) p-0 select-none aria-disabled:opacity-50"
|
|
81
|
-
>
|
|
82
|
-
<ng-icon name="lucideChevronLeft" class="rtl:rotate-180" />
|
|
83
|
-
</button>
|
|
84
|
-
|
|
85
|
-
@switch (captionLayout()) {
|
|
86
|
-
@case ('dropdown') {
|
|
87
|
-
<ng-container [ngTemplateOutlet]="month" />
|
|
88
|
-
<ng-container [ngTemplateOutlet]="year" />
|
|
89
|
-
}
|
|
90
|
-
@case ('dropdown-months') {
|
|
91
|
-
<ng-container [ngTemplateOutlet]="month" />
|
|
92
|
-
<div brnCalendarHeader class="order-4 text-sm font-medium">{{ heading.year }}</div>
|
|
93
|
-
}
|
|
94
|
-
@case ('dropdown-years') {
|
|
95
|
-
<div brnCalendarHeader class="order-2 text-sm font-medium">{{ heading.month }}</div>
|
|
96
|
-
<ng-container [ngTemplateOutlet]="year" />
|
|
97
|
-
}
|
|
98
|
-
@case ('label') {
|
|
99
|
-
<div brnCalendarHeader class="order-5 text-sm font-medium">{{ heading.header }}</div>
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
<button
|
|
104
|
-
brnCalendarNextButton
|
|
105
|
-
hlmBtn
|
|
106
|
-
variant="ghost"
|
|
107
|
-
class="order-last size-(--cell-size) p-0 select-none aria-disabled:opacity-50"
|
|
108
|
-
>
|
|
109
|
-
<ng-icon name="lucideChevronRight" class="rtl:rotate-180" />
|
|
110
|
-
</button>
|
|
111
|
-
</div>
|
|
112
|
-
|
|
113
|
-
<table class="w-full border-collapse space-y-1" brnCalendarGrid>
|
|
114
|
-
<thead aria-hidden="true">
|
|
115
|
-
<tr class="flex">
|
|
116
|
-
<th
|
|
117
|
-
*brnCalendarWeekday="let weekday"
|
|
118
|
-
scope="col"
|
|
119
|
-
class="text-muted-foreground flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal select-none"
|
|
120
|
-
[attr.aria-label]="_i18n.config().labelWeekday(weekday)"
|
|
121
|
-
>
|
|
122
|
-
{{ _i18n.config().formatWeekdayName(weekday) }}
|
|
123
|
-
</th>
|
|
124
|
-
</tr>
|
|
125
|
-
</thead>
|
|
126
|
-
|
|
127
|
-
<tbody role="rowgroup">
|
|
128
|
-
<tr *brnCalendarWeek="let week" class="mt-2 flex w-full">
|
|
129
|
-
@for (date of week; track _dateAdapter.getTime(date)) {
|
|
130
|
-
<td
|
|
131
|
-
brnCalendarCell
|
|
132
|
-
class="group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:first-child[data-selected=true]_button]:rounded-s-(--cell-radius) [&:last-child[data-selected=true]_button]:rounded-e-(--cell-radius)"
|
|
133
|
-
>
|
|
134
|
-
<button brnCalendarCellButton [date]="date" [class]="_btnClass">
|
|
135
|
-
{{ _dateAdapter.getDate(date) }}
|
|
136
|
-
</button>
|
|
137
|
-
</td>
|
|
138
|
-
}
|
|
139
|
-
</tr>
|
|
140
|
-
</tbody>
|
|
141
|
-
</table>
|
|
142
|
-
</div>
|
|
143
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i1.BrnCalendarCellButton, selector: "button[brnCalendarCellButton]", inputs: ["date"] }, { kind: "directive", type: i1.BrnCalendarGrid, selector: "[brnCalendarGrid]" }, { kind: "directive", type: i1.BrnCalendarHeader, selector: "[brnCalendarHeader]", inputs: ["id"] }, { kind: "directive", type: i1.BrnCalendarNextButton, selector: "[brnCalendarNextButton]" }, { kind: "directive", type: i1.BrnCalendarPreviousButton, selector: "[brnCalendarPreviousButton]" }, { kind: "directive", type: i1.BrnCalendarWeek, selector: "[brnCalendarWeek]" }, { kind: "directive", type: i1.BrnCalendarWeekday, selector: "[brnCalendarWeekday]" }, { kind: "directive", type: i1.BrnCalendarCell, selector: "[brnCalendarCell]" }, { kind: "directive", type: i1.BrnCalendarMonthSelect, selector: "brnSelect[brnCalendarMonthSelect],hlm-select[brnCalendarMonthSelect]" }, { kind: "directive", type: i1.BrnCalendarYearSelect, selector: "brnSelect[brnCalendarYearSelect],hlm-select[brnCalendarYearSelect]" }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: i2.HlmSelect, selector: "[hlmSelect],hlm-select" }, { kind: "component", type: i2.HlmSelectContent, selector: "hlm-select-content", inputs: ["showScroll"] }, { kind: "directive", type: i2.HlmSelectGroup, selector: "[hlmSelectGroup],hlm-select-group" }, { kind: "component", type: i2.HlmSelectItem, selector: "hlm-select-item" }, { kind: "directive", type: i2.HlmSelectPortal, selector: "[hlmSelectPortal]" }, { kind: "component", type: i2.HlmSelectTrigger, selector: "hlm-select-trigger", inputs: ["class", "buttonId", "size", "forceInvalid"] }, { kind: "directive", type: i2.HlmSelectValue, selector: "[hlmSelectValue],hlm-select-value" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.HlmBtn, selector: "button[hlmBtn], a[hlmBtn]", inputs: ["variant", "size", "class", "type"], exportAs: ["hlmBtn"] }], viewProviders: [provideIcons({ lucideChevronLeft, lucideChevronRight })], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
41
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmCalendar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
42
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.3", type: HlmCalendar, isStandalone: true, selector: "hlm-calendar", inputs: { captionLayout: { classPropertyName: "captionLayout", publicName: "captionLayout", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-slot": "calendar" } }, hostDirectives: [{ directive: i1.BrnCalendar, inputs: ["min", "min", "max", "max", "disabled", "disabled", "date", "date", "dateDisabled", "dateDisabled", "weekStartsOn", "weekStartsOn", "highlightDays", "highlightDays", "defaultFocusedDate", "defaultFocusedDate"], outputs: ["dateChange", "dateChange"] }], ngImport: i0, template: "\n <div class=\"inline-flex flex-col gap-4\">\n <!-- Header -->\n <div class=\"flex w-full items-center justify-between gap-1.5\">\n <ng-template #month>\n <hlm-select brnCalendarMonthSelect class=\"order-1\">\n <hlm-select-trigger size=\"sm\" [class]=\"_selectClass\">\n <hlm-select-value />\n </hlm-select-trigger>\n <hlm-select-content *hlmSelectPortal class=\"max-h-80\">\n <hlm-select-group>\n @for (month of _i18n.config().months(); track month) {\n <hlm-select-item [value]=\"month\">{{ month }}</hlm-select-item>\n }\n </hlm-select-group>\n </hlm-select-content>\n </hlm-select>\n </ng-template>\n <ng-template #year>\n <hlm-select brnCalendarYearSelect class=\"order-3\">\n <hlm-select-trigger size=\"sm\" [class]=\"_selectClass\">\n <hlm-select-value />\n </hlm-select-trigger>\n <hlm-select-content *hlmSelectPortal class=\"max-h-80\">\n <hlm-select-group>\n @for (year of _i18n.config().years(); track year) {\n <hlm-select-item [value]=\"year\">{{ year }}</hlm-select-item>\n }\n </hlm-select-group>\n </hlm-select-content>\n </hlm-select>\n </ng-template>\n @let heading = _heading();\n\n <button\n brnCalendarPreviousButton\n variant=\"ghost\"\n hlmBtn\n class=\"order-first size-(--cell-size) p-0 select-none aria-disabled:opacity-50\"\n >\n <ng-icon name=\"lucideChevronLeft\" class=\"rtl:rotate-180\" />\n </button>\n\n @switch (captionLayout()) {\n @case ('dropdown') {\n <ng-container [ngTemplateOutlet]=\"month\" />\n <ng-container [ngTemplateOutlet]=\"year\" />\n }\n @case ('dropdown-months') {\n <ng-container [ngTemplateOutlet]=\"month\" />\n <div brnCalendarHeader class=\"order-4 text-sm font-medium\">{{ heading.year }}</div>\n }\n @case ('dropdown-years') {\n <div brnCalendarHeader class=\"order-2 text-sm font-medium\">{{ heading.month }}</div>\n <ng-container [ngTemplateOutlet]=\"year\" />\n }\n @case ('label') {\n <div brnCalendarHeader class=\"order-5 text-sm font-medium\">{{ heading.header }}</div>\n }\n }\n\n <button\n brnCalendarNextButton\n hlmBtn\n variant=\"ghost\"\n class=\"order-last size-(--cell-size) p-0 select-none aria-disabled:opacity-50\"\n >\n <ng-icon name=\"lucideChevronRight\" class=\"rtl:rotate-180\" />\n </button>\n </div>\n\n <table class=\"w-full border-collapse space-y-1\" brnCalendarGrid>\n <thead aria-hidden=\"true\">\n <tr class=\"flex\">\n <th\n *brnCalendarWeekday=\"let weekday\"\n scope=\"col\"\n class=\"text-muted-foreground flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal select-none\"\n [attr.aria-label]=\"_i18n.config().labelWeekday(weekday)\"\n >\n {{ _i18n.config().formatWeekdayName(weekday) }}\n </th>\n </tr>\n </thead>\n\n <tbody role=\"rowgroup\">\n <tr *brnCalendarWeek=\"let week\" class=\"mt-2 flex w-full\">\n @for (date of week; track _dateAdapter.getTime(date)) {\n <td\n brnCalendarCell\n class=\"group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:first-child[data-selected=true]_button]:rounded-s-(--cell-radius) [&:last-child[data-selected=true]_button]:rounded-e-(--cell-radius)\"\n >\n <button brnCalendarCellButton [date]=\"date\" [class]=\"_btnClass\">\n {{ _dateAdapter.getDate(date) }}\n </button>\n </td>\n }\n </tr>\n </tbody>\n </table>\n </div>\n ", isInline: true, dependencies: [{ kind: "directive", type: i1.BrnCalendarCellButton, selector: "button[brnCalendarCellButton]", inputs: ["date"] }, { kind: "directive", type: i1.BrnCalendarGrid, selector: "[brnCalendarGrid]" }, { kind: "directive", type: i1.BrnCalendarHeader, selector: "[brnCalendarHeader]", inputs: ["id"] }, { kind: "directive", type: i1.BrnCalendarNextButton, selector: "[brnCalendarNextButton]" }, { kind: "directive", type: i1.BrnCalendarPreviousButton, selector: "[brnCalendarPreviousButton]" }, { kind: "directive", type: i1.BrnCalendarWeek, selector: "[brnCalendarWeek]" }, { kind: "directive", type: i1.BrnCalendarWeekday, selector: "[brnCalendarWeekday]" }, { kind: "directive", type: i1.BrnCalendarCell, selector: "[brnCalendarCell]" }, { kind: "directive", type: i1.BrnCalendarMonthSelect, selector: "brnSelect[brnCalendarMonthSelect],hlm-select[brnCalendarMonthSelect]" }, { kind: "directive", type: i1.BrnCalendarYearSelect, selector: "brnSelect[brnCalendarYearSelect],hlm-select[brnCalendarYearSelect]" }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: i2.HlmSelect, selector: "[hlmSelect],hlm-select" }, { kind: "component", type: i2.HlmSelectContent, selector: "hlm-select-content", inputs: ["showScroll"] }, { kind: "directive", type: i2.HlmSelectGroup, selector: "[hlmSelectGroup],hlm-select-group" }, { kind: "component", type: i2.HlmSelectItem, selector: "hlm-select-item" }, { kind: "directive", type: i2.HlmSelectPortal, selector: "[hlmSelectPortal]" }, { kind: "component", type: i2.HlmSelectTrigger, selector: "hlm-select-trigger", inputs: ["class", "buttonId", "ariaDescribedby", "wrapperDisabled", "size", "forceInvalid"] }, { kind: "directive", type: i2.HlmSelectValue, selector: "[hlmSelectValue],hlm-select-value" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.HlmBtn, selector: "button[hlmBtn], a[hlmBtn]", inputs: ["variant", "size", "class", "type"], exportAs: ["hlmBtn"] }], viewProviders: [provideIcons({ lucideChevronLeft, lucideChevronRight })], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
144
43
|
}
|
|
145
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmCalendar, decorators: [{
|
|
146
45
|
type: Component,
|
|
147
46
|
args: [{
|
|
148
47
|
selector: 'hlm-calendar',
|
|
@@ -157,108 +56,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
|
|
|
157
56
|
},
|
|
158
57
|
],
|
|
159
58
|
host: { 'data-slot': 'calendar' },
|
|
160
|
-
template:
|
|
161
|
-
<div class="inline-flex flex-col gap-4">
|
|
162
|
-
<!-- Header -->
|
|
163
|
-
<div class="flex w-full items-center justify-between gap-1.5">
|
|
164
|
-
<ng-template #month>
|
|
165
|
-
<hlm-select brnCalendarMonthSelect class="order-1">
|
|
166
|
-
<hlm-select-trigger size="sm" [class]="_selectClass">
|
|
167
|
-
<hlm-select-value />
|
|
168
|
-
</hlm-select-trigger>
|
|
169
|
-
<hlm-select-content *hlmSelectPortal class="max-h-80">
|
|
170
|
-
<hlm-select-group>
|
|
171
|
-
@for (month of _i18n.config().months(); track month) {
|
|
172
|
-
<hlm-select-item [value]="month">{{ month }}</hlm-select-item>
|
|
173
|
-
}
|
|
174
|
-
</hlm-select-group>
|
|
175
|
-
</hlm-select-content>
|
|
176
|
-
</hlm-select>
|
|
177
|
-
</ng-template>
|
|
178
|
-
<ng-template #year>
|
|
179
|
-
<hlm-select brnCalendarYearSelect class="order-3">
|
|
180
|
-
<hlm-select-trigger size="sm" [class]="_selectClass">
|
|
181
|
-
<hlm-select-value />
|
|
182
|
-
</hlm-select-trigger>
|
|
183
|
-
<hlm-select-content *hlmSelectPortal class="max-h-80">
|
|
184
|
-
<hlm-select-group>
|
|
185
|
-
@for (year of _i18n.config().years(); track year) {
|
|
186
|
-
<hlm-select-item [value]="year">{{ year }}</hlm-select-item>
|
|
187
|
-
}
|
|
188
|
-
</hlm-select-group>
|
|
189
|
-
</hlm-select-content>
|
|
190
|
-
</hlm-select>
|
|
191
|
-
</ng-template>
|
|
192
|
-
@let heading = _heading();
|
|
193
|
-
|
|
194
|
-
<button
|
|
195
|
-
brnCalendarPreviousButton
|
|
196
|
-
variant="ghost"
|
|
197
|
-
hlmBtn
|
|
198
|
-
class="order-first size-(--cell-size) p-0 select-none aria-disabled:opacity-50"
|
|
199
|
-
>
|
|
200
|
-
<ng-icon name="lucideChevronLeft" class="rtl:rotate-180" />
|
|
201
|
-
</button>
|
|
202
|
-
|
|
203
|
-
@switch (captionLayout()) {
|
|
204
|
-
@case ('dropdown') {
|
|
205
|
-
<ng-container [ngTemplateOutlet]="month" />
|
|
206
|
-
<ng-container [ngTemplateOutlet]="year" />
|
|
207
|
-
}
|
|
208
|
-
@case ('dropdown-months') {
|
|
209
|
-
<ng-container [ngTemplateOutlet]="month" />
|
|
210
|
-
<div brnCalendarHeader class="order-4 text-sm font-medium">{{ heading.year }}</div>
|
|
211
|
-
}
|
|
212
|
-
@case ('dropdown-years') {
|
|
213
|
-
<div brnCalendarHeader class="order-2 text-sm font-medium">{{ heading.month }}</div>
|
|
214
|
-
<ng-container [ngTemplateOutlet]="year" />
|
|
215
|
-
}
|
|
216
|
-
@case ('label') {
|
|
217
|
-
<div brnCalendarHeader class="order-5 text-sm font-medium">{{ heading.header }}</div>
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
<button
|
|
222
|
-
brnCalendarNextButton
|
|
223
|
-
hlmBtn
|
|
224
|
-
variant="ghost"
|
|
225
|
-
class="order-last size-(--cell-size) p-0 select-none aria-disabled:opacity-50"
|
|
226
|
-
>
|
|
227
|
-
<ng-icon name="lucideChevronRight" class="rtl:rotate-180" />
|
|
228
|
-
</button>
|
|
229
|
-
</div>
|
|
230
|
-
|
|
231
|
-
<table class="w-full border-collapse space-y-1" brnCalendarGrid>
|
|
232
|
-
<thead aria-hidden="true">
|
|
233
|
-
<tr class="flex">
|
|
234
|
-
<th
|
|
235
|
-
*brnCalendarWeekday="let weekday"
|
|
236
|
-
scope="col"
|
|
237
|
-
class="text-muted-foreground flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal select-none"
|
|
238
|
-
[attr.aria-label]="_i18n.config().labelWeekday(weekday)"
|
|
239
|
-
>
|
|
240
|
-
{{ _i18n.config().formatWeekdayName(weekday) }}
|
|
241
|
-
</th>
|
|
242
|
-
</tr>
|
|
243
|
-
</thead>
|
|
244
|
-
|
|
245
|
-
<tbody role="rowgroup">
|
|
246
|
-
<tr *brnCalendarWeek="let week" class="mt-2 flex w-full">
|
|
247
|
-
@for (date of week; track _dateAdapter.getTime(date)) {
|
|
248
|
-
<td
|
|
249
|
-
brnCalendarCell
|
|
250
|
-
class="group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:first-child[data-selected=true]_button]:rounded-s-(--cell-radius) [&:last-child[data-selected=true]_button]:rounded-e-(--cell-radius)"
|
|
251
|
-
>
|
|
252
|
-
<button brnCalendarCellButton [date]="date" [class]="_btnClass">
|
|
253
|
-
{{ _dateAdapter.getDate(date) }}
|
|
254
|
-
</button>
|
|
255
|
-
</td>
|
|
256
|
-
}
|
|
257
|
-
</tr>
|
|
258
|
-
</tbody>
|
|
259
|
-
</table>
|
|
260
|
-
</div>
|
|
261
|
-
`,
|
|
59
|
+
template: "\n <div class=\"inline-flex flex-col gap-4\">\n <!-- Header -->\n <div class=\"flex w-full items-center justify-between gap-1.5\">\n <ng-template #month>\n <hlm-select brnCalendarMonthSelect class=\"order-1\">\n <hlm-select-trigger size=\"sm\" [class]=\"_selectClass\">\n <hlm-select-value />\n </hlm-select-trigger>\n <hlm-select-content *hlmSelectPortal class=\"max-h-80\">\n <hlm-select-group>\n @for (month of _i18n.config().months(); track month) {\n <hlm-select-item [value]=\"month\">{{ month }}</hlm-select-item>\n }\n </hlm-select-group>\n </hlm-select-content>\n </hlm-select>\n </ng-template>\n <ng-template #year>\n <hlm-select brnCalendarYearSelect class=\"order-3\">\n <hlm-select-trigger size=\"sm\" [class]=\"_selectClass\">\n <hlm-select-value />\n </hlm-select-trigger>\n <hlm-select-content *hlmSelectPortal class=\"max-h-80\">\n <hlm-select-group>\n @for (year of _i18n.config().years(); track year) {\n <hlm-select-item [value]=\"year\">{{ year }}</hlm-select-item>\n }\n </hlm-select-group>\n </hlm-select-content>\n </hlm-select>\n </ng-template>\n @let heading = _heading();\n\n <button\n brnCalendarPreviousButton\n variant=\"ghost\"\n hlmBtn\n class=\"order-first size-(--cell-size) p-0 select-none aria-disabled:opacity-50\"\n >\n <ng-icon name=\"lucideChevronLeft\" class=\"rtl:rotate-180\" />\n </button>\n\n @switch (captionLayout()) {\n @case ('dropdown') {\n <ng-container [ngTemplateOutlet]=\"month\" />\n <ng-container [ngTemplateOutlet]=\"year\" />\n }\n @case ('dropdown-months') {\n <ng-container [ngTemplateOutlet]=\"month\" />\n <div brnCalendarHeader class=\"order-4 text-sm font-medium\">{{ heading.year }}</div>\n }\n @case ('dropdown-years') {\n <div brnCalendarHeader class=\"order-2 text-sm font-medium\">{{ heading.month }}</div>\n <ng-container [ngTemplateOutlet]=\"year\" />\n }\n @case ('label') {\n <div brnCalendarHeader class=\"order-5 text-sm font-medium\">{{ heading.header }}</div>\n }\n }\n\n <button\n brnCalendarNextButton\n hlmBtn\n variant=\"ghost\"\n class=\"order-last size-(--cell-size) p-0 select-none aria-disabled:opacity-50\"\n >\n <ng-icon name=\"lucideChevronRight\" class=\"rtl:rotate-180\" />\n </button>\n </div>\n\n <table class=\"w-full border-collapse space-y-1\" brnCalendarGrid>\n <thead aria-hidden=\"true\">\n <tr class=\"flex\">\n <th\n *brnCalendarWeekday=\"let weekday\"\n scope=\"col\"\n class=\"text-muted-foreground flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal select-none\"\n [attr.aria-label]=\"_i18n.config().labelWeekday(weekday)\"\n >\n {{ _i18n.config().formatWeekdayName(weekday) }}\n </th>\n </tr>\n </thead>\n\n <tbody role=\"rowgroup\">\n <tr *brnCalendarWeek=\"let week\" class=\"mt-2 flex w-full\">\n @for (date of week; track _dateAdapter.getTime(date)) {\n <td\n brnCalendarCell\n class=\"group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:first-child[data-selected=true]_button]:rounded-s-(--cell-radius) [&:last-child[data-selected=true]_button]:rounded-e-(--cell-radius)\"\n >\n <button brnCalendarCellButton [date]=\"date\" [class]=\"_btnClass\">\n {{ _dateAdapter.getDate(date) }}\n </button>\n </td>\n }\n </tr>\n </tbody>\n </table>\n </div>\n ",
|
|
262
60
|
}]
|
|
263
61
|
}], ctorParameters: () => [], propDecorators: { captionLayout: [{ type: i0.Input, args: [{ isSignal: true, alias: "captionLayout", required: false }] }] } });
|
|
264
62
|
|
|
@@ -283,116 +81,15 @@ class HlmCalendarMulti {
|
|
|
283
81
|
};
|
|
284
82
|
}, /* @ts-ignore */
|
|
285
83
|
...(ngDevMode ? [{ debugName: "_heading" }] : /* istanbul ignore next */ []));
|
|
286
|
-
_btnClass = hlm(buttonVariants({ variant: 'ghost', size: 'icon' }),
|
|
84
|
+
_btnClass = hlm(buttonVariants({ variant: 'ghost', size: 'icon' }), "data-[today=true]:bg-muted group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:bg-muted data-[range-middle=true]:text-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground dark:hover:bg-muted/50 dark:hover:text-foreground relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 border-0 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-(--cell-radius) data-[range-end=true]:rounded-e-(--cell-radius) data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-(--cell-radius) data-[range-start=true]:rounded-s-(--cell-radius) [&>span]:text-xs [&>span]:opacity-70", "data-[outside=true]:opacity-50", "data-[highlighted]:before:content-['']", "data-[highlighted]:before:absolute", "data-[highlighted]:before:bottom-1", "data-[highlighted]:before:start-1/2", "data-[highlighted]:before:h-1", "data-[highlighted]:before:w-1", "data-[highlighted]:before:-translate-x-1/2", "data-[highlighted]:before:rounded-full", "data-[highlighted]:before:bg-destructive");
|
|
287
85
|
_selectClass = 'gap-0 px-1.5 py-2 [&>ng-icon]:ms-1';
|
|
288
86
|
constructor() {
|
|
289
|
-
classes(() =>
|
|
87
|
+
classes(() => "p-3 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(8)] group/calendar bg-background block in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent");
|
|
290
88
|
}
|
|
291
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
292
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
293
|
-
<div class="inline-flex flex-col space-y-4">
|
|
294
|
-
<!-- Header -->
|
|
295
|
-
<div class="flex w-full items-center justify-between gap-1.5">
|
|
296
|
-
<ng-template #month>
|
|
297
|
-
<hlm-select brnCalendarMonthSelect class="order-1">
|
|
298
|
-
<hlm-select-trigger size="sm" [class]="_selectClass">
|
|
299
|
-
<hlm-select-value />
|
|
300
|
-
</hlm-select-trigger>
|
|
301
|
-
<hlm-select-content *hlmSelectPortal class="max-h-80">
|
|
302
|
-
<hlm-select-group>
|
|
303
|
-
@for (month of _i18n.config().months(); track month) {
|
|
304
|
-
<hlm-select-item [value]="month">{{ month }}</hlm-select-item>
|
|
305
|
-
}
|
|
306
|
-
</hlm-select-group>
|
|
307
|
-
</hlm-select-content>
|
|
308
|
-
</hlm-select>
|
|
309
|
-
</ng-template>
|
|
310
|
-
<ng-template #year>
|
|
311
|
-
<hlm-select brnCalendarYearSelect class="order-3">
|
|
312
|
-
<hlm-select-trigger size="sm" [class]="_selectClass">
|
|
313
|
-
<hlm-select-value />
|
|
314
|
-
</hlm-select-trigger>
|
|
315
|
-
<hlm-select-content *hlmSelectPortal class="max-h-80">
|
|
316
|
-
<hlm-select-group>
|
|
317
|
-
@for (year of _i18n.config().years(); track year) {
|
|
318
|
-
<hlm-select-item [value]="year">{{ year }}</hlm-select-item>
|
|
319
|
-
}
|
|
320
|
-
</hlm-select-group>
|
|
321
|
-
</hlm-select-content>
|
|
322
|
-
</hlm-select>
|
|
323
|
-
</ng-template>
|
|
324
|
-
@let heading = _heading();
|
|
325
|
-
|
|
326
|
-
<button
|
|
327
|
-
brnCalendarPreviousButton
|
|
328
|
-
variant="ghost"
|
|
329
|
-
hlmBtn
|
|
330
|
-
class="order-first size-(--cell-size) p-0 select-none aria-disabled:opacity-50"
|
|
331
|
-
>
|
|
332
|
-
<ng-icon name="lucideChevronLeft" class="rtl:rotate-180" />
|
|
333
|
-
</button>
|
|
334
|
-
|
|
335
|
-
@switch (captionLayout()) {
|
|
336
|
-
@case ('dropdown') {
|
|
337
|
-
<ng-container [ngTemplateOutlet]="month" />
|
|
338
|
-
<ng-container [ngTemplateOutlet]="year" />
|
|
339
|
-
}
|
|
340
|
-
@case ('dropdown-months') {
|
|
341
|
-
<ng-container [ngTemplateOutlet]="month" />
|
|
342
|
-
<div brnCalendarHeader class="order-4 text-sm font-medium">{{ heading.year }}</div>
|
|
343
|
-
}
|
|
344
|
-
@case ('dropdown-years') {
|
|
345
|
-
<div brnCalendarHeader class="order-2 text-sm font-medium">{{ heading.month }}</div>
|
|
346
|
-
<ng-container [ngTemplateOutlet]="year" />
|
|
347
|
-
}
|
|
348
|
-
@case ('label') {
|
|
349
|
-
<div brnCalendarHeader class="order-5 text-sm font-medium">{{ heading.header }}</div>
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
<button
|
|
354
|
-
brnCalendarNextButton
|
|
355
|
-
hlmBtn
|
|
356
|
-
variant="ghost"
|
|
357
|
-
class="order-last size-(--cell-size) p-0 select-none aria-disabled:opacity-50"
|
|
358
|
-
>
|
|
359
|
-
<ng-icon name="lucideChevronRight" class="rtl:rotate-180" />
|
|
360
|
-
</button>
|
|
361
|
-
</div>
|
|
362
|
-
|
|
363
|
-
<table class="w-full border-collapse" brnCalendarGrid>
|
|
364
|
-
<thead aria-hidden="true">
|
|
365
|
-
<tr class="flex">
|
|
366
|
-
<th
|
|
367
|
-
*brnCalendarWeekday="let weekday"
|
|
368
|
-
scope="col"
|
|
369
|
-
class="text-muted-foreground flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal select-none"
|
|
370
|
-
[attr.aria-label]="_i18n.config().labelWeekday(weekday)"
|
|
371
|
-
>
|
|
372
|
-
{{ _i18n.config().formatWeekdayName(weekday) }}
|
|
373
|
-
</th>
|
|
374
|
-
</tr>
|
|
375
|
-
</thead>
|
|
376
|
-
|
|
377
|
-
<tbody role="rowgroup">
|
|
378
|
-
<tr *brnCalendarWeek="let week" class="mt-2 flex w-full">
|
|
379
|
-
@for (date of week; track _dateAdapter.getTime(date)) {
|
|
380
|
-
<td
|
|
381
|
-
brnCalendarCell
|
|
382
|
-
class="group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:first-child[data-selected=true]_button]:rounded-s-(--cell-radius) [&:last-child[data-selected=true]_button]:rounded-e-(--cell-radius)"
|
|
383
|
-
>
|
|
384
|
-
<button brnCalendarCellButton [date]="date" [class]="_btnClass">
|
|
385
|
-
{{ _dateAdapter.getDate(date) }}
|
|
386
|
-
</button>
|
|
387
|
-
</td>
|
|
388
|
-
}
|
|
389
|
-
</tr>
|
|
390
|
-
</tbody>
|
|
391
|
-
</table>
|
|
392
|
-
</div>
|
|
393
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i1.BrnCalendarCellButton, selector: "button[brnCalendarCellButton]", inputs: ["date"] }, { kind: "directive", type: i1.BrnCalendarGrid, selector: "[brnCalendarGrid]" }, { kind: "directive", type: i1.BrnCalendarHeader, selector: "[brnCalendarHeader]", inputs: ["id"] }, { kind: "directive", type: i1.BrnCalendarNextButton, selector: "[brnCalendarNextButton]" }, { kind: "directive", type: i1.BrnCalendarPreviousButton, selector: "[brnCalendarPreviousButton]" }, { kind: "directive", type: i1.BrnCalendarWeek, selector: "[brnCalendarWeek]" }, { kind: "directive", type: i1.BrnCalendarWeekday, selector: "[brnCalendarWeekday]" }, { kind: "directive", type: i1.BrnCalendarCell, selector: "[brnCalendarCell]" }, { kind: "directive", type: i1.BrnCalendarMonthSelect, selector: "brnSelect[brnCalendarMonthSelect],hlm-select[brnCalendarMonthSelect]" }, { kind: "directive", type: i1.BrnCalendarYearSelect, selector: "brnSelect[brnCalendarYearSelect],hlm-select[brnCalendarYearSelect]" }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.HlmSelect, selector: "[hlmSelect],hlm-select" }, { kind: "component", type: i2.HlmSelectContent, selector: "hlm-select-content", inputs: ["showScroll"] }, { kind: "directive", type: i2.HlmSelectGroup, selector: "[hlmSelectGroup],hlm-select-group" }, { kind: "component", type: i2.HlmSelectItem, selector: "hlm-select-item" }, { kind: "directive", type: i2.HlmSelectPortal, selector: "[hlmSelectPortal]" }, { kind: "component", type: i2.HlmSelectTrigger, selector: "hlm-select-trigger", inputs: ["class", "buttonId", "size", "forceInvalid"] }, { kind: "directive", type: i2.HlmSelectValue, selector: "[hlmSelectValue],hlm-select-value" }, { kind: "directive", type: i3.HlmBtn, selector: "button[hlmBtn], a[hlmBtn]", inputs: ["variant", "size", "class", "type"], exportAs: ["hlmBtn"] }], viewProviders: [provideIcons({ lucideChevronLeft, lucideChevronRight })], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
89
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmCalendarMulti, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
90
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.3", type: HlmCalendarMulti, isStandalone: true, selector: "hlm-calendar-multi", inputs: { captionLayout: { classPropertyName: "captionLayout", publicName: "captionLayout", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-slot": "calendar" } }, hostDirectives: [{ directive: i1.BrnCalendarMulti, inputs: ["min", "min", "max", "max", "minSelection", "minSelection", "maxSelection", "maxSelection", "disabled", "disabled", "date", "date", "dateDisabled", "dateDisabled", "weekStartsOn", "weekStartsOn", "highlightDays", "highlightDays", "defaultFocusedDate", "defaultFocusedDate"], outputs: ["dateChange", "dateChange"] }], ngImport: i0, template: "\n <div class=\"inline-flex flex-col space-y-4\">\n <!-- Header -->\n <div class=\"flex w-full items-center justify-between gap-1.5\">\n <ng-template #month>\n <hlm-select brnCalendarMonthSelect class=\"order-1\">\n <hlm-select-trigger size=\"sm\" [class]=\"_selectClass\">\n <hlm-select-value />\n </hlm-select-trigger>\n <hlm-select-content *hlmSelectPortal class=\"max-h-80\">\n <hlm-select-group>\n @for (month of _i18n.config().months(); track month) {\n <hlm-select-item [value]=\"month\">{{ month }}</hlm-select-item>\n }\n </hlm-select-group>\n </hlm-select-content>\n </hlm-select>\n </ng-template>\n <ng-template #year>\n <hlm-select brnCalendarYearSelect class=\"order-3\">\n <hlm-select-trigger size=\"sm\" [class]=\"_selectClass\">\n <hlm-select-value />\n </hlm-select-trigger>\n <hlm-select-content *hlmSelectPortal class=\"max-h-80\">\n <hlm-select-group>\n @for (year of _i18n.config().years(); track year) {\n <hlm-select-item [value]=\"year\">{{ year }}</hlm-select-item>\n }\n </hlm-select-group>\n </hlm-select-content>\n </hlm-select>\n </ng-template>\n @let heading = _heading();\n\n <button\n brnCalendarPreviousButton\n variant=\"ghost\"\n hlmBtn\n class=\"order-first size-(--cell-size) p-0 select-none aria-disabled:opacity-50\"\n >\n <ng-icon name=\"lucideChevronLeft\" class=\"rtl:rotate-180\" />\n </button>\n\n @switch (captionLayout()) {\n @case ('dropdown') {\n <ng-container [ngTemplateOutlet]=\"month\" />\n <ng-container [ngTemplateOutlet]=\"year\" />\n }\n @case ('dropdown-months') {\n <ng-container [ngTemplateOutlet]=\"month\" />\n <div brnCalendarHeader class=\"order-4 text-sm font-medium\">{{ heading.year }}</div>\n }\n @case ('dropdown-years') {\n <div brnCalendarHeader class=\"order-2 text-sm font-medium\">{{ heading.month }}</div>\n <ng-container [ngTemplateOutlet]=\"year\" />\n }\n @case ('label') {\n <div brnCalendarHeader class=\"order-5 text-sm font-medium\">{{ heading.header }}</div>\n }\n }\n\n <button\n brnCalendarNextButton\n hlmBtn\n variant=\"ghost\"\n class=\"order-last size-(--cell-size) p-0 select-none aria-disabled:opacity-50\"\n >\n <ng-icon name=\"lucideChevronRight\" class=\"rtl:rotate-180\" />\n </button>\n </div>\n\n <table class=\"w-full border-collapse\" brnCalendarGrid>\n <thead aria-hidden=\"true\">\n <tr class=\"flex\">\n <th\n *brnCalendarWeekday=\"let weekday\"\n scope=\"col\"\n class=\"text-muted-foreground flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal select-none\"\n [attr.aria-label]=\"_i18n.config().labelWeekday(weekday)\"\n >\n {{ _i18n.config().formatWeekdayName(weekday) }}\n </th>\n </tr>\n </thead>\n\n <tbody role=\"rowgroup\">\n <tr *brnCalendarWeek=\"let week\" class=\"mt-2 flex w-full\">\n @for (date of week; track _dateAdapter.getTime(date)) {\n <td\n brnCalendarCell\n class=\"group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:first-child[data-selected=true]_button]:rounded-s-(--cell-radius) [&:last-child[data-selected=true]_button]:rounded-e-(--cell-radius)\"\n >\n <button brnCalendarCellButton [date]=\"date\" [class]=\"_btnClass\">\n {{ _dateAdapter.getDate(date) }}\n </button>\n </td>\n }\n </tr>\n </tbody>\n </table>\n </div>\n ", isInline: true, dependencies: [{ kind: "directive", type: i1.BrnCalendarCellButton, selector: "button[brnCalendarCellButton]", inputs: ["date"] }, { kind: "directive", type: i1.BrnCalendarGrid, selector: "[brnCalendarGrid]" }, { kind: "directive", type: i1.BrnCalendarHeader, selector: "[brnCalendarHeader]", inputs: ["id"] }, { kind: "directive", type: i1.BrnCalendarNextButton, selector: "[brnCalendarNextButton]" }, { kind: "directive", type: i1.BrnCalendarPreviousButton, selector: "[brnCalendarPreviousButton]" }, { kind: "directive", type: i1.BrnCalendarWeek, selector: "[brnCalendarWeek]" }, { kind: "directive", type: i1.BrnCalendarWeekday, selector: "[brnCalendarWeekday]" }, { kind: "directive", type: i1.BrnCalendarCell, selector: "[brnCalendarCell]" }, { kind: "directive", type: i1.BrnCalendarMonthSelect, selector: "brnSelect[brnCalendarMonthSelect],hlm-select[brnCalendarMonthSelect]" }, { kind: "directive", type: i1.BrnCalendarYearSelect, selector: "brnSelect[brnCalendarYearSelect],hlm-select[brnCalendarYearSelect]" }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.HlmSelect, selector: "[hlmSelect],hlm-select" }, { kind: "component", type: i2.HlmSelectContent, selector: "hlm-select-content", inputs: ["showScroll"] }, { kind: "directive", type: i2.HlmSelectGroup, selector: "[hlmSelectGroup],hlm-select-group" }, { kind: "component", type: i2.HlmSelectItem, selector: "hlm-select-item" }, { kind: "directive", type: i2.HlmSelectPortal, selector: "[hlmSelectPortal]" }, { kind: "component", type: i2.HlmSelectTrigger, selector: "hlm-select-trigger", inputs: ["class", "buttonId", "ariaDescribedby", "wrapperDisabled", "size", "forceInvalid"] }, { kind: "directive", type: i2.HlmSelectValue, selector: "[hlmSelectValue],hlm-select-value" }, { kind: "directive", type: i3.HlmBtn, selector: "button[hlmBtn], a[hlmBtn]", inputs: ["variant", "size", "class", "type"], exportAs: ["hlmBtn"] }], viewProviders: [provideIcons({ lucideChevronLeft, lucideChevronRight })], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
394
91
|
}
|
|
395
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
92
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmCalendarMulti, decorators: [{
|
|
396
93
|
type: Component,
|
|
397
94
|
args: [{
|
|
398
95
|
selector: 'hlm-calendar-multi',
|
|
@@ -418,108 +115,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
|
|
|
418
115
|
},
|
|
419
116
|
],
|
|
420
117
|
host: { 'data-slot': 'calendar' },
|
|
421
|
-
template:
|
|
422
|
-
<div class="inline-flex flex-col space-y-4">
|
|
423
|
-
<!-- Header -->
|
|
424
|
-
<div class="flex w-full items-center justify-between gap-1.5">
|
|
425
|
-
<ng-template #month>
|
|
426
|
-
<hlm-select brnCalendarMonthSelect class="order-1">
|
|
427
|
-
<hlm-select-trigger size="sm" [class]="_selectClass">
|
|
428
|
-
<hlm-select-value />
|
|
429
|
-
</hlm-select-trigger>
|
|
430
|
-
<hlm-select-content *hlmSelectPortal class="max-h-80">
|
|
431
|
-
<hlm-select-group>
|
|
432
|
-
@for (month of _i18n.config().months(); track month) {
|
|
433
|
-
<hlm-select-item [value]="month">{{ month }}</hlm-select-item>
|
|
434
|
-
}
|
|
435
|
-
</hlm-select-group>
|
|
436
|
-
</hlm-select-content>
|
|
437
|
-
</hlm-select>
|
|
438
|
-
</ng-template>
|
|
439
|
-
<ng-template #year>
|
|
440
|
-
<hlm-select brnCalendarYearSelect class="order-3">
|
|
441
|
-
<hlm-select-trigger size="sm" [class]="_selectClass">
|
|
442
|
-
<hlm-select-value />
|
|
443
|
-
</hlm-select-trigger>
|
|
444
|
-
<hlm-select-content *hlmSelectPortal class="max-h-80">
|
|
445
|
-
<hlm-select-group>
|
|
446
|
-
@for (year of _i18n.config().years(); track year) {
|
|
447
|
-
<hlm-select-item [value]="year">{{ year }}</hlm-select-item>
|
|
448
|
-
}
|
|
449
|
-
</hlm-select-group>
|
|
450
|
-
</hlm-select-content>
|
|
451
|
-
</hlm-select>
|
|
452
|
-
</ng-template>
|
|
453
|
-
@let heading = _heading();
|
|
454
|
-
|
|
455
|
-
<button
|
|
456
|
-
brnCalendarPreviousButton
|
|
457
|
-
variant="ghost"
|
|
458
|
-
hlmBtn
|
|
459
|
-
class="order-first size-(--cell-size) p-0 select-none aria-disabled:opacity-50"
|
|
460
|
-
>
|
|
461
|
-
<ng-icon name="lucideChevronLeft" class="rtl:rotate-180" />
|
|
462
|
-
</button>
|
|
463
|
-
|
|
464
|
-
@switch (captionLayout()) {
|
|
465
|
-
@case ('dropdown') {
|
|
466
|
-
<ng-container [ngTemplateOutlet]="month" />
|
|
467
|
-
<ng-container [ngTemplateOutlet]="year" />
|
|
468
|
-
}
|
|
469
|
-
@case ('dropdown-months') {
|
|
470
|
-
<ng-container [ngTemplateOutlet]="month" />
|
|
471
|
-
<div brnCalendarHeader class="order-4 text-sm font-medium">{{ heading.year }}</div>
|
|
472
|
-
}
|
|
473
|
-
@case ('dropdown-years') {
|
|
474
|
-
<div brnCalendarHeader class="order-2 text-sm font-medium">{{ heading.month }}</div>
|
|
475
|
-
<ng-container [ngTemplateOutlet]="year" />
|
|
476
|
-
}
|
|
477
|
-
@case ('label') {
|
|
478
|
-
<div brnCalendarHeader class="order-5 text-sm font-medium">{{ heading.header }}</div>
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
|
-
|
|
482
|
-
<button
|
|
483
|
-
brnCalendarNextButton
|
|
484
|
-
hlmBtn
|
|
485
|
-
variant="ghost"
|
|
486
|
-
class="order-last size-(--cell-size) p-0 select-none aria-disabled:opacity-50"
|
|
487
|
-
>
|
|
488
|
-
<ng-icon name="lucideChevronRight" class="rtl:rotate-180" />
|
|
489
|
-
</button>
|
|
490
|
-
</div>
|
|
491
|
-
|
|
492
|
-
<table class="w-full border-collapse" brnCalendarGrid>
|
|
493
|
-
<thead aria-hidden="true">
|
|
494
|
-
<tr class="flex">
|
|
495
|
-
<th
|
|
496
|
-
*brnCalendarWeekday="let weekday"
|
|
497
|
-
scope="col"
|
|
498
|
-
class="text-muted-foreground flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal select-none"
|
|
499
|
-
[attr.aria-label]="_i18n.config().labelWeekday(weekday)"
|
|
500
|
-
>
|
|
501
|
-
{{ _i18n.config().formatWeekdayName(weekday) }}
|
|
502
|
-
</th>
|
|
503
|
-
</tr>
|
|
504
|
-
</thead>
|
|
505
|
-
|
|
506
|
-
<tbody role="rowgroup">
|
|
507
|
-
<tr *brnCalendarWeek="let week" class="mt-2 flex w-full">
|
|
508
|
-
@for (date of week; track _dateAdapter.getTime(date)) {
|
|
509
|
-
<td
|
|
510
|
-
brnCalendarCell
|
|
511
|
-
class="group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:first-child[data-selected=true]_button]:rounded-s-(--cell-radius) [&:last-child[data-selected=true]_button]:rounded-e-(--cell-radius)"
|
|
512
|
-
>
|
|
513
|
-
<button brnCalendarCellButton [date]="date" [class]="_btnClass">
|
|
514
|
-
{{ _dateAdapter.getDate(date) }}
|
|
515
|
-
</button>
|
|
516
|
-
</td>
|
|
517
|
-
}
|
|
518
|
-
</tr>
|
|
519
|
-
</tbody>
|
|
520
|
-
</table>
|
|
521
|
-
</div>
|
|
522
|
-
`,
|
|
118
|
+
template: "\n <div class=\"inline-flex flex-col space-y-4\">\n <!-- Header -->\n <div class=\"flex w-full items-center justify-between gap-1.5\">\n <ng-template #month>\n <hlm-select brnCalendarMonthSelect class=\"order-1\">\n <hlm-select-trigger size=\"sm\" [class]=\"_selectClass\">\n <hlm-select-value />\n </hlm-select-trigger>\n <hlm-select-content *hlmSelectPortal class=\"max-h-80\">\n <hlm-select-group>\n @for (month of _i18n.config().months(); track month) {\n <hlm-select-item [value]=\"month\">{{ month }}</hlm-select-item>\n }\n </hlm-select-group>\n </hlm-select-content>\n </hlm-select>\n </ng-template>\n <ng-template #year>\n <hlm-select brnCalendarYearSelect class=\"order-3\">\n <hlm-select-trigger size=\"sm\" [class]=\"_selectClass\">\n <hlm-select-value />\n </hlm-select-trigger>\n <hlm-select-content *hlmSelectPortal class=\"max-h-80\">\n <hlm-select-group>\n @for (year of _i18n.config().years(); track year) {\n <hlm-select-item [value]=\"year\">{{ year }}</hlm-select-item>\n }\n </hlm-select-group>\n </hlm-select-content>\n </hlm-select>\n </ng-template>\n @let heading = _heading();\n\n <button\n brnCalendarPreviousButton\n variant=\"ghost\"\n hlmBtn\n class=\"order-first size-(--cell-size) p-0 select-none aria-disabled:opacity-50\"\n >\n <ng-icon name=\"lucideChevronLeft\" class=\"rtl:rotate-180\" />\n </button>\n\n @switch (captionLayout()) {\n @case ('dropdown') {\n <ng-container [ngTemplateOutlet]=\"month\" />\n <ng-container [ngTemplateOutlet]=\"year\" />\n }\n @case ('dropdown-months') {\n <ng-container [ngTemplateOutlet]=\"month\" />\n <div brnCalendarHeader class=\"order-4 text-sm font-medium\">{{ heading.year }}</div>\n }\n @case ('dropdown-years') {\n <div brnCalendarHeader class=\"order-2 text-sm font-medium\">{{ heading.month }}</div>\n <ng-container [ngTemplateOutlet]=\"year\" />\n }\n @case ('label') {\n <div brnCalendarHeader class=\"order-5 text-sm font-medium\">{{ heading.header }}</div>\n }\n }\n\n <button\n brnCalendarNextButton\n hlmBtn\n variant=\"ghost\"\n class=\"order-last size-(--cell-size) p-0 select-none aria-disabled:opacity-50\"\n >\n <ng-icon name=\"lucideChevronRight\" class=\"rtl:rotate-180\" />\n </button>\n </div>\n\n <table class=\"w-full border-collapse\" brnCalendarGrid>\n <thead aria-hidden=\"true\">\n <tr class=\"flex\">\n <th\n *brnCalendarWeekday=\"let weekday\"\n scope=\"col\"\n class=\"text-muted-foreground flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal select-none\"\n [attr.aria-label]=\"_i18n.config().labelWeekday(weekday)\"\n >\n {{ _i18n.config().formatWeekdayName(weekday) }}\n </th>\n </tr>\n </thead>\n\n <tbody role=\"rowgroup\">\n <tr *brnCalendarWeek=\"let week\" class=\"mt-2 flex w-full\">\n @for (date of week; track _dateAdapter.getTime(date)) {\n <td\n brnCalendarCell\n class=\"group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:first-child[data-selected=true]_button]:rounded-s-(--cell-radius) [&:last-child[data-selected=true]_button]:rounded-e-(--cell-radius)\"\n >\n <button brnCalendarCellButton [date]=\"date\" [class]=\"_btnClass\">\n {{ _dateAdapter.getDate(date) }}\n </button>\n </td>\n }\n </tr>\n </tbody>\n </table>\n </div>\n ",
|
|
523
119
|
}]
|
|
524
120
|
}], ctorParameters: () => [], propDecorators: { captionLayout: [{ type: i0.Input, args: [{ isSignal: true, alias: "captionLayout", required: false }] }] } });
|
|
525
121
|
|
|
@@ -544,116 +140,15 @@ class HlmCalendarRange {
|
|
|
544
140
|
};
|
|
545
141
|
}, /* @ts-ignore */
|
|
546
142
|
...(ngDevMode ? [{ debugName: "_heading" }] : /* istanbul ignore next */ []));
|
|
547
|
-
_btnClass = hlm(buttonVariants({ variant: 'ghost', size: 'icon' }),
|
|
143
|
+
_btnClass = hlm(buttonVariants({ variant: 'ghost', size: 'icon' }), "data-[today=true]:bg-muted group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:bg-muted data-[range-middle=true]:text-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground dark:hover:bg-muted/50 dark:hover:text-foreground relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 border-0 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-(--cell-radius) data-[range-end=true]:rounded-e-(--cell-radius) data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-(--cell-radius) data-[range-start=true]:rounded-s-(--cell-radius) [&>span]:text-xs [&>span]:opacity-70", "data-[outside=true]:opacity-50", "data-[highlighted]:before:content-['']", "data-[highlighted]:before:absolute", "data-[highlighted]:before:bottom-1", "data-[highlighted]:before:start-1/2", "data-[highlighted]:before:h-1", "data-[highlighted]:before:w-1", "data-[highlighted]:before:-translate-x-1/2", "data-[highlighted]:before:rounded-full", "data-[highlighted]:before:bg-destructive");
|
|
548
144
|
_selectClass = 'gap-0 px-1.5 py-2 [&>ng-icon]:ms-1';
|
|
549
145
|
constructor() {
|
|
550
|
-
classes(() =>
|
|
146
|
+
classes(() => "p-3 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(8)] group/calendar bg-background block in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent");
|
|
551
147
|
}
|
|
552
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
553
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
554
|
-
<div class="inline-flex flex-col space-y-4">
|
|
555
|
-
<!-- Header -->
|
|
556
|
-
<div class="flex w-full items-center justify-between gap-1.5">
|
|
557
|
-
<ng-template #month>
|
|
558
|
-
<hlm-select brnCalendarMonthSelect class="order-1">
|
|
559
|
-
<hlm-select-trigger size="sm" [class]="_selectClass">
|
|
560
|
-
<hlm-select-value />
|
|
561
|
-
</hlm-select-trigger>
|
|
562
|
-
<hlm-select-content *hlmSelectPortal class="max-h-80">
|
|
563
|
-
<hlm-select-group>
|
|
564
|
-
@for (month of _i18n.config().months(); track month) {
|
|
565
|
-
<hlm-select-item [value]="month">{{ month }}</hlm-select-item>
|
|
566
|
-
}
|
|
567
|
-
</hlm-select-group>
|
|
568
|
-
</hlm-select-content>
|
|
569
|
-
</hlm-select>
|
|
570
|
-
</ng-template>
|
|
571
|
-
<ng-template #year>
|
|
572
|
-
<hlm-select brnCalendarYearSelect class="order-3">
|
|
573
|
-
<hlm-select-trigger size="sm" [class]="_selectClass">
|
|
574
|
-
<hlm-select-value />
|
|
575
|
-
</hlm-select-trigger>
|
|
576
|
-
<hlm-select-content *hlmSelectPortal class="max-h-80">
|
|
577
|
-
<hlm-select-group>
|
|
578
|
-
@for (year of _i18n.config().years(); track year) {
|
|
579
|
-
<hlm-select-item [value]="year">{{ year }}</hlm-select-item>
|
|
580
|
-
}
|
|
581
|
-
</hlm-select-group>
|
|
582
|
-
</hlm-select-content>
|
|
583
|
-
</hlm-select>
|
|
584
|
-
</ng-template>
|
|
585
|
-
@let heading = _heading();
|
|
586
|
-
|
|
587
|
-
<button
|
|
588
|
-
brnCalendarPreviousButton
|
|
589
|
-
variant="ghost"
|
|
590
|
-
hlmBtn
|
|
591
|
-
class="order-first size-(--cell-size) p-0 select-none aria-disabled:opacity-50"
|
|
592
|
-
>
|
|
593
|
-
<ng-icon name="lucideChevronLeft" class="rtl:rotate-180" />
|
|
594
|
-
</button>
|
|
595
|
-
|
|
596
|
-
@switch (captionLayout()) {
|
|
597
|
-
@case ('dropdown') {
|
|
598
|
-
<ng-container [ngTemplateOutlet]="month" />
|
|
599
|
-
<ng-container [ngTemplateOutlet]="year" />
|
|
600
|
-
}
|
|
601
|
-
@case ('dropdown-months') {
|
|
602
|
-
<ng-container [ngTemplateOutlet]="month" />
|
|
603
|
-
<div brnCalendarHeader class="order-4 text-sm font-medium">{{ heading.year }}</div>
|
|
604
|
-
}
|
|
605
|
-
@case ('dropdown-years') {
|
|
606
|
-
<div brnCalendarHeader class="order-2 text-sm font-medium">{{ heading.month }}</div>
|
|
607
|
-
<ng-container [ngTemplateOutlet]="year" />
|
|
608
|
-
}
|
|
609
|
-
@case ('label') {
|
|
610
|
-
<div brnCalendarHeader class="order-5 text-sm font-medium">{{ heading.header }}</div>
|
|
611
|
-
}
|
|
612
|
-
}
|
|
613
|
-
|
|
614
|
-
<button
|
|
615
|
-
brnCalendarNextButton
|
|
616
|
-
hlmBtn
|
|
617
|
-
variant="ghost"
|
|
618
|
-
class="order-last size-(--cell-size) p-0 select-none aria-disabled:opacity-50"
|
|
619
|
-
>
|
|
620
|
-
<ng-icon name="lucideChevronRight" class="rtl:rotate-180" />
|
|
621
|
-
</button>
|
|
622
|
-
</div>
|
|
623
|
-
|
|
624
|
-
<table class="w-full border-collapse space-y-1" brnCalendarGrid>
|
|
625
|
-
<thead aria-hidden="true">
|
|
626
|
-
<tr class="flex">
|
|
627
|
-
<th
|
|
628
|
-
*brnCalendarWeekday="let weekday"
|
|
629
|
-
scope="col"
|
|
630
|
-
class="text-muted-foreground flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal select-none"
|
|
631
|
-
[attr.aria-label]="_i18n.config().labelWeekday(weekday)"
|
|
632
|
-
>
|
|
633
|
-
{{ _i18n.config().formatWeekdayName(weekday) }}
|
|
634
|
-
</th>
|
|
635
|
-
</tr>
|
|
636
|
-
</thead>
|
|
637
|
-
|
|
638
|
-
<tbody role="rowgroup">
|
|
639
|
-
<tr *brnCalendarWeek="let week" class="mt-2 flex w-full">
|
|
640
|
-
@for (date of week; track _dateAdapter.getTime(date)) {
|
|
641
|
-
<td
|
|
642
|
-
brnCalendarCell
|
|
643
|
-
class="group/day has-[button[data-range-start=true]]:bg-muted has-[button[data-range-start=true]]:after:bg-muted has-[button[data-range-end=true]]:bg-muted has-[button[data-range-end=true]]:after:bg-muted relative isolate z-0 aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none has-[button[data-range-end=true]]:rounded-e-(--cell-radius) has-[button[data-range-end=true]]:after:absolute has-[button[data-range-end=true]]:after:inset-y-0 has-[button[data-range-end=true]]:after:start-0 has-[button[data-range-end=true]]:after:w-4 has-[button[data-range-start=true]]:rounded-s-(--cell-radius) has-[button[data-range-start=true]]:after:absolute has-[button[data-range-start=true]]:after:inset-y-0 has-[button[data-range-start=true]]:after:end-0 has-[button[data-range-start=true]]:after:w-4 [&:first-child[data-selected=true]_button]:rounded-s-(--cell-radius) [&:last-child[data-selected=true]_button]:rounded-e-(--cell-radius)"
|
|
644
|
-
>
|
|
645
|
-
<button brnCalendarCellButton [date]="date" [class]="_btnClass">
|
|
646
|
-
{{ _dateAdapter.getDate(date) }}
|
|
647
|
-
</button>
|
|
648
|
-
</td>
|
|
649
|
-
}
|
|
650
|
-
</tr>
|
|
651
|
-
</tbody>
|
|
652
|
-
</table>
|
|
653
|
-
</div>
|
|
654
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i1.BrnCalendarCellButton, selector: "button[brnCalendarCellButton]", inputs: ["date"] }, { kind: "directive", type: i1.BrnCalendarGrid, selector: "[brnCalendarGrid]" }, { kind: "directive", type: i1.BrnCalendarHeader, selector: "[brnCalendarHeader]", inputs: ["id"] }, { kind: "directive", type: i1.BrnCalendarNextButton, selector: "[brnCalendarNextButton]" }, { kind: "directive", type: i1.BrnCalendarPreviousButton, selector: "[brnCalendarPreviousButton]" }, { kind: "directive", type: i1.BrnCalendarWeek, selector: "[brnCalendarWeek]" }, { kind: "directive", type: i1.BrnCalendarWeekday, selector: "[brnCalendarWeekday]" }, { kind: "directive", type: i1.BrnCalendarCell, selector: "[brnCalendarCell]" }, { kind: "directive", type: i1.BrnCalendarMonthSelect, selector: "brnSelect[brnCalendarMonthSelect],hlm-select[brnCalendarMonthSelect]" }, { kind: "directive", type: i1.BrnCalendarYearSelect, selector: "brnSelect[brnCalendarYearSelect],hlm-select[brnCalendarYearSelect]" }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: i2.HlmSelect, selector: "[hlmSelect],hlm-select" }, { kind: "component", type: i2.HlmSelectContent, selector: "hlm-select-content", inputs: ["showScroll"] }, { kind: "directive", type: i2.HlmSelectGroup, selector: "[hlmSelectGroup],hlm-select-group" }, { kind: "component", type: i2.HlmSelectItem, selector: "hlm-select-item" }, { kind: "directive", type: i2.HlmSelectPortal, selector: "[hlmSelectPortal]" }, { kind: "component", type: i2.HlmSelectTrigger, selector: "hlm-select-trigger", inputs: ["class", "buttonId", "size", "forceInvalid"] }, { kind: "directive", type: i2.HlmSelectValue, selector: "[hlmSelectValue],hlm-select-value" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.HlmBtn, selector: "button[hlmBtn], a[hlmBtn]", inputs: ["variant", "size", "class", "type"], exportAs: ["hlmBtn"] }], viewProviders: [provideIcons({ lucideChevronLeft, lucideChevronRight })], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
148
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmCalendarRange, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
149
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.3", type: HlmCalendarRange, isStandalone: true, selector: "hlm-calendar-range", inputs: { captionLayout: { classPropertyName: "captionLayout", publicName: "captionLayout", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-slot": "calendar" } }, hostDirectives: [{ directive: i1.BrnCalendarRange, inputs: ["min", "min", "max", "max", "disabled", "disabled", "startDate", "startDate", "endDate", "endDate", "dateDisabled", "dateDisabled", "weekStartsOn", "weekStartsOn", "highlightDays", "highlightDays", "defaultFocusedDate", "defaultFocusedDate"], outputs: ["endDateChange", "endDateChange", "startDateChange", "startDateChange"] }], ngImport: i0, template: "\n <div class=\"inline-flex flex-col space-y-4\">\n <!-- Header -->\n <div class=\"flex w-full items-center justify-between gap-1.5\">\n <ng-template #month>\n <hlm-select brnCalendarMonthSelect class=\"order-1\">\n <hlm-select-trigger size=\"sm\" [class]=\"_selectClass\">\n <hlm-select-value />\n </hlm-select-trigger>\n <hlm-select-content *hlmSelectPortal class=\"max-h-80\">\n <hlm-select-group>\n @for (month of _i18n.config().months(); track month) {\n <hlm-select-item [value]=\"month\">{{ month }}</hlm-select-item>\n }\n </hlm-select-group>\n </hlm-select-content>\n </hlm-select>\n </ng-template>\n <ng-template #year>\n <hlm-select brnCalendarYearSelect class=\"order-3\">\n <hlm-select-trigger size=\"sm\" [class]=\"_selectClass\">\n <hlm-select-value />\n </hlm-select-trigger>\n <hlm-select-content *hlmSelectPortal class=\"max-h-80\">\n <hlm-select-group>\n @for (year of _i18n.config().years(); track year) {\n <hlm-select-item [value]=\"year\">{{ year }}</hlm-select-item>\n }\n </hlm-select-group>\n </hlm-select-content>\n </hlm-select>\n </ng-template>\n @let heading = _heading();\n\n <button\n brnCalendarPreviousButton\n variant=\"ghost\"\n hlmBtn\n class=\"order-first size-(--cell-size) p-0 select-none aria-disabled:opacity-50\"\n >\n <ng-icon name=\"lucideChevronLeft\" class=\"rtl:rotate-180\" />\n </button>\n\n @switch (captionLayout()) {\n @case ('dropdown') {\n <ng-container [ngTemplateOutlet]=\"month\" />\n <ng-container [ngTemplateOutlet]=\"year\" />\n }\n @case ('dropdown-months') {\n <ng-container [ngTemplateOutlet]=\"month\" />\n <div brnCalendarHeader class=\"order-4 text-sm font-medium\">{{ heading.year }}</div>\n }\n @case ('dropdown-years') {\n <div brnCalendarHeader class=\"order-2 text-sm font-medium\">{{ heading.month }}</div>\n <ng-container [ngTemplateOutlet]=\"year\" />\n }\n @case ('label') {\n <div brnCalendarHeader class=\"order-5 text-sm font-medium\">{{ heading.header }}</div>\n }\n }\n\n <button\n brnCalendarNextButton\n hlmBtn\n variant=\"ghost\"\n class=\"order-last size-(--cell-size) p-0 select-none aria-disabled:opacity-50\"\n >\n <ng-icon name=\"lucideChevronRight\" class=\"rtl:rotate-180\" />\n </button>\n </div>\n\n <table class=\"w-full border-collapse space-y-1\" brnCalendarGrid>\n <thead aria-hidden=\"true\">\n <tr class=\"flex\">\n <th\n *brnCalendarWeekday=\"let weekday\"\n scope=\"col\"\n class=\"text-muted-foreground flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal select-none\"\n [attr.aria-label]=\"_i18n.config().labelWeekday(weekday)\"\n >\n {{ _i18n.config().formatWeekdayName(weekday) }}\n </th>\n </tr>\n </thead>\n\n <tbody role=\"rowgroup\">\n <tr *brnCalendarWeek=\"let week\" class=\"mt-2 flex w-full\">\n @for (date of week; track _dateAdapter.getTime(date)) {\n <td\n brnCalendarCell\n class=\"group/day has-[button[data-range-start=true]]:bg-muted has-[button[data-range-start=true]]:after:bg-muted has-[button[data-range-end=true]]:bg-muted has-[button[data-range-end=true]]:after:bg-muted relative isolate z-0 aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none has-[button[data-range-end=true]]:rounded-e-(--cell-radius) has-[button[data-range-end=true]]:after:absolute has-[button[data-range-end=true]]:after:inset-y-0 has-[button[data-range-end=true]]:after:start-0 has-[button[data-range-end=true]]:after:w-4 has-[button[data-range-start=true]]:rounded-s-(--cell-radius) has-[button[data-range-start=true]]:after:absolute has-[button[data-range-start=true]]:after:inset-y-0 has-[button[data-range-start=true]]:after:end-0 has-[button[data-range-start=true]]:after:w-4 [&:first-child[data-selected=true]_button]:rounded-s-(--cell-radius) [&:last-child[data-selected=true]_button]:rounded-e-(--cell-radius)\"\n >\n <button brnCalendarCellButton [date]=\"date\" [class]=\"_btnClass\">\n {{ _dateAdapter.getDate(date) }}\n </button>\n </td>\n }\n </tr>\n </tbody>\n </table>\n </div>\n ", isInline: true, dependencies: [{ kind: "directive", type: i1.BrnCalendarCellButton, selector: "button[brnCalendarCellButton]", inputs: ["date"] }, { kind: "directive", type: i1.BrnCalendarGrid, selector: "[brnCalendarGrid]" }, { kind: "directive", type: i1.BrnCalendarHeader, selector: "[brnCalendarHeader]", inputs: ["id"] }, { kind: "directive", type: i1.BrnCalendarNextButton, selector: "[brnCalendarNextButton]" }, { kind: "directive", type: i1.BrnCalendarPreviousButton, selector: "[brnCalendarPreviousButton]" }, { kind: "directive", type: i1.BrnCalendarWeek, selector: "[brnCalendarWeek]" }, { kind: "directive", type: i1.BrnCalendarWeekday, selector: "[brnCalendarWeekday]" }, { kind: "directive", type: i1.BrnCalendarCell, selector: "[brnCalendarCell]" }, { kind: "directive", type: i1.BrnCalendarMonthSelect, selector: "brnSelect[brnCalendarMonthSelect],hlm-select[brnCalendarMonthSelect]" }, { kind: "directive", type: i1.BrnCalendarYearSelect, selector: "brnSelect[brnCalendarYearSelect],hlm-select[brnCalendarYearSelect]" }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: i2.HlmSelect, selector: "[hlmSelect],hlm-select" }, { kind: "component", type: i2.HlmSelectContent, selector: "hlm-select-content", inputs: ["showScroll"] }, { kind: "directive", type: i2.HlmSelectGroup, selector: "[hlmSelectGroup],hlm-select-group" }, { kind: "component", type: i2.HlmSelectItem, selector: "hlm-select-item" }, { kind: "directive", type: i2.HlmSelectPortal, selector: "[hlmSelectPortal]" }, { kind: "component", type: i2.HlmSelectTrigger, selector: "hlm-select-trigger", inputs: ["class", "buttonId", "ariaDescribedby", "wrapperDisabled", "size", "forceInvalid"] }, { kind: "directive", type: i2.HlmSelectValue, selector: "[hlmSelectValue],hlm-select-value" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.HlmBtn, selector: "button[hlmBtn], a[hlmBtn]", inputs: ["variant", "size", "class", "type"], exportAs: ["hlmBtn"] }], viewProviders: [provideIcons({ lucideChevronLeft, lucideChevronRight })], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
655
150
|
}
|
|
656
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
151
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmCalendarRange, decorators: [{
|
|
657
152
|
type: Component,
|
|
658
153
|
args: [{
|
|
659
154
|
selector: 'hlm-calendar-range',
|
|
@@ -678,108 +173,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
|
|
|
678
173
|
},
|
|
679
174
|
],
|
|
680
175
|
host: { 'data-slot': 'calendar' },
|
|
681
|
-
template:
|
|
682
|
-
<div class="inline-flex flex-col space-y-4">
|
|
683
|
-
<!-- Header -->
|
|
684
|
-
<div class="flex w-full items-center justify-between gap-1.5">
|
|
685
|
-
<ng-template #month>
|
|
686
|
-
<hlm-select brnCalendarMonthSelect class="order-1">
|
|
687
|
-
<hlm-select-trigger size="sm" [class]="_selectClass">
|
|
688
|
-
<hlm-select-value />
|
|
689
|
-
</hlm-select-trigger>
|
|
690
|
-
<hlm-select-content *hlmSelectPortal class="max-h-80">
|
|
691
|
-
<hlm-select-group>
|
|
692
|
-
@for (month of _i18n.config().months(); track month) {
|
|
693
|
-
<hlm-select-item [value]="month">{{ month }}</hlm-select-item>
|
|
694
|
-
}
|
|
695
|
-
</hlm-select-group>
|
|
696
|
-
</hlm-select-content>
|
|
697
|
-
</hlm-select>
|
|
698
|
-
</ng-template>
|
|
699
|
-
<ng-template #year>
|
|
700
|
-
<hlm-select brnCalendarYearSelect class="order-3">
|
|
701
|
-
<hlm-select-trigger size="sm" [class]="_selectClass">
|
|
702
|
-
<hlm-select-value />
|
|
703
|
-
</hlm-select-trigger>
|
|
704
|
-
<hlm-select-content *hlmSelectPortal class="max-h-80">
|
|
705
|
-
<hlm-select-group>
|
|
706
|
-
@for (year of _i18n.config().years(); track year) {
|
|
707
|
-
<hlm-select-item [value]="year">{{ year }}</hlm-select-item>
|
|
708
|
-
}
|
|
709
|
-
</hlm-select-group>
|
|
710
|
-
</hlm-select-content>
|
|
711
|
-
</hlm-select>
|
|
712
|
-
</ng-template>
|
|
713
|
-
@let heading = _heading();
|
|
714
|
-
|
|
715
|
-
<button
|
|
716
|
-
brnCalendarPreviousButton
|
|
717
|
-
variant="ghost"
|
|
718
|
-
hlmBtn
|
|
719
|
-
class="order-first size-(--cell-size) p-0 select-none aria-disabled:opacity-50"
|
|
720
|
-
>
|
|
721
|
-
<ng-icon name="lucideChevronLeft" class="rtl:rotate-180" />
|
|
722
|
-
</button>
|
|
723
|
-
|
|
724
|
-
@switch (captionLayout()) {
|
|
725
|
-
@case ('dropdown') {
|
|
726
|
-
<ng-container [ngTemplateOutlet]="month" />
|
|
727
|
-
<ng-container [ngTemplateOutlet]="year" />
|
|
728
|
-
}
|
|
729
|
-
@case ('dropdown-months') {
|
|
730
|
-
<ng-container [ngTemplateOutlet]="month" />
|
|
731
|
-
<div brnCalendarHeader class="order-4 text-sm font-medium">{{ heading.year }}</div>
|
|
732
|
-
}
|
|
733
|
-
@case ('dropdown-years') {
|
|
734
|
-
<div brnCalendarHeader class="order-2 text-sm font-medium">{{ heading.month }}</div>
|
|
735
|
-
<ng-container [ngTemplateOutlet]="year" />
|
|
736
|
-
}
|
|
737
|
-
@case ('label') {
|
|
738
|
-
<div brnCalendarHeader class="order-5 text-sm font-medium">{{ heading.header }}</div>
|
|
739
|
-
}
|
|
740
|
-
}
|
|
741
|
-
|
|
742
|
-
<button
|
|
743
|
-
brnCalendarNextButton
|
|
744
|
-
hlmBtn
|
|
745
|
-
variant="ghost"
|
|
746
|
-
class="order-last size-(--cell-size) p-0 select-none aria-disabled:opacity-50"
|
|
747
|
-
>
|
|
748
|
-
<ng-icon name="lucideChevronRight" class="rtl:rotate-180" />
|
|
749
|
-
</button>
|
|
750
|
-
</div>
|
|
751
|
-
|
|
752
|
-
<table class="w-full border-collapse space-y-1" brnCalendarGrid>
|
|
753
|
-
<thead aria-hidden="true">
|
|
754
|
-
<tr class="flex">
|
|
755
|
-
<th
|
|
756
|
-
*brnCalendarWeekday="let weekday"
|
|
757
|
-
scope="col"
|
|
758
|
-
class="text-muted-foreground flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal select-none"
|
|
759
|
-
[attr.aria-label]="_i18n.config().labelWeekday(weekday)"
|
|
760
|
-
>
|
|
761
|
-
{{ _i18n.config().formatWeekdayName(weekday) }}
|
|
762
|
-
</th>
|
|
763
|
-
</tr>
|
|
764
|
-
</thead>
|
|
765
|
-
|
|
766
|
-
<tbody role="rowgroup">
|
|
767
|
-
<tr *brnCalendarWeek="let week" class="mt-2 flex w-full">
|
|
768
|
-
@for (date of week; track _dateAdapter.getTime(date)) {
|
|
769
|
-
<td
|
|
770
|
-
brnCalendarCell
|
|
771
|
-
class="group/day has-[button[data-range-start=true]]:bg-muted has-[button[data-range-start=true]]:after:bg-muted has-[button[data-range-end=true]]:bg-muted has-[button[data-range-end=true]]:after:bg-muted relative isolate z-0 aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none has-[button[data-range-end=true]]:rounded-e-(--cell-radius) has-[button[data-range-end=true]]:after:absolute has-[button[data-range-end=true]]:after:inset-y-0 has-[button[data-range-end=true]]:after:start-0 has-[button[data-range-end=true]]:after:w-4 has-[button[data-range-start=true]]:rounded-s-(--cell-radius) has-[button[data-range-start=true]]:after:absolute has-[button[data-range-start=true]]:after:inset-y-0 has-[button[data-range-start=true]]:after:end-0 has-[button[data-range-start=true]]:after:w-4 [&:first-child[data-selected=true]_button]:rounded-s-(--cell-radius) [&:last-child[data-selected=true]_button]:rounded-e-(--cell-radius)"
|
|
772
|
-
>
|
|
773
|
-
<button brnCalendarCellButton [date]="date" [class]="_btnClass">
|
|
774
|
-
{{ _dateAdapter.getDate(date) }}
|
|
775
|
-
</button>
|
|
776
|
-
</td>
|
|
777
|
-
}
|
|
778
|
-
</tr>
|
|
779
|
-
</tbody>
|
|
780
|
-
</table>
|
|
781
|
-
</div>
|
|
782
|
-
`,
|
|
176
|
+
template: "\n <div class=\"inline-flex flex-col space-y-4\">\n <!-- Header -->\n <div class=\"flex w-full items-center justify-between gap-1.5\">\n <ng-template #month>\n <hlm-select brnCalendarMonthSelect class=\"order-1\">\n <hlm-select-trigger size=\"sm\" [class]=\"_selectClass\">\n <hlm-select-value />\n </hlm-select-trigger>\n <hlm-select-content *hlmSelectPortal class=\"max-h-80\">\n <hlm-select-group>\n @for (month of _i18n.config().months(); track month) {\n <hlm-select-item [value]=\"month\">{{ month }}</hlm-select-item>\n }\n </hlm-select-group>\n </hlm-select-content>\n </hlm-select>\n </ng-template>\n <ng-template #year>\n <hlm-select brnCalendarYearSelect class=\"order-3\">\n <hlm-select-trigger size=\"sm\" [class]=\"_selectClass\">\n <hlm-select-value />\n </hlm-select-trigger>\n <hlm-select-content *hlmSelectPortal class=\"max-h-80\">\n <hlm-select-group>\n @for (year of _i18n.config().years(); track year) {\n <hlm-select-item [value]=\"year\">{{ year }}</hlm-select-item>\n }\n </hlm-select-group>\n </hlm-select-content>\n </hlm-select>\n </ng-template>\n @let heading = _heading();\n\n <button\n brnCalendarPreviousButton\n variant=\"ghost\"\n hlmBtn\n class=\"order-first size-(--cell-size) p-0 select-none aria-disabled:opacity-50\"\n >\n <ng-icon name=\"lucideChevronLeft\" class=\"rtl:rotate-180\" />\n </button>\n\n @switch (captionLayout()) {\n @case ('dropdown') {\n <ng-container [ngTemplateOutlet]=\"month\" />\n <ng-container [ngTemplateOutlet]=\"year\" />\n }\n @case ('dropdown-months') {\n <ng-container [ngTemplateOutlet]=\"month\" />\n <div brnCalendarHeader class=\"order-4 text-sm font-medium\">{{ heading.year }}</div>\n }\n @case ('dropdown-years') {\n <div brnCalendarHeader class=\"order-2 text-sm font-medium\">{{ heading.month }}</div>\n <ng-container [ngTemplateOutlet]=\"year\" />\n }\n @case ('label') {\n <div brnCalendarHeader class=\"order-5 text-sm font-medium\">{{ heading.header }}</div>\n }\n }\n\n <button\n brnCalendarNextButton\n hlmBtn\n variant=\"ghost\"\n class=\"order-last size-(--cell-size) p-0 select-none aria-disabled:opacity-50\"\n >\n <ng-icon name=\"lucideChevronRight\" class=\"rtl:rotate-180\" />\n </button>\n </div>\n\n <table class=\"w-full border-collapse space-y-1\" brnCalendarGrid>\n <thead aria-hidden=\"true\">\n <tr class=\"flex\">\n <th\n *brnCalendarWeekday=\"let weekday\"\n scope=\"col\"\n class=\"text-muted-foreground flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal select-none\"\n [attr.aria-label]=\"_i18n.config().labelWeekday(weekday)\"\n >\n {{ _i18n.config().formatWeekdayName(weekday) }}\n </th>\n </tr>\n </thead>\n\n <tbody role=\"rowgroup\">\n <tr *brnCalendarWeek=\"let week\" class=\"mt-2 flex w-full\">\n @for (date of week; track _dateAdapter.getTime(date)) {\n <td\n brnCalendarCell\n class=\"group/day has-[button[data-range-start=true]]:bg-muted has-[button[data-range-start=true]]:after:bg-muted has-[button[data-range-end=true]]:bg-muted has-[button[data-range-end=true]]:after:bg-muted relative isolate z-0 aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none has-[button[data-range-end=true]]:rounded-e-(--cell-radius) has-[button[data-range-end=true]]:after:absolute has-[button[data-range-end=true]]:after:inset-y-0 has-[button[data-range-end=true]]:after:start-0 has-[button[data-range-end=true]]:after:w-4 has-[button[data-range-start=true]]:rounded-s-(--cell-radius) has-[button[data-range-start=true]]:after:absolute has-[button[data-range-start=true]]:after:inset-y-0 has-[button[data-range-start=true]]:after:end-0 has-[button[data-range-start=true]]:after:w-4 [&:first-child[data-selected=true]_button]:rounded-s-(--cell-radius) [&:last-child[data-selected=true]_button]:rounded-e-(--cell-radius)\"\n >\n <button brnCalendarCellButton [date]=\"date\" [class]=\"_btnClass\">\n {{ _dateAdapter.getDate(date) }}\n </button>\n </td>\n }\n </tr>\n </tbody>\n </table>\n </div>\n ",
|
|
783
177
|
}]
|
|
784
178
|
}], ctorParameters: () => [], propDecorators: { captionLayout: [{ type: i0.Input, args: [{ isSignal: true, alias: "captionLayout", required: false }] }] } });
|
|
785
179
|
|
|
@@ -800,68 +194,14 @@ class HlmMonthYearCalendar {
|
|
|
800
194
|
return `${config.formatYear(start)} – ${config.formatYear(end)}`;
|
|
801
195
|
}, /* @ts-ignore */
|
|
802
196
|
...(ngDevMode ? [{ debugName: "_heading" }] : /* istanbul ignore next */ []));
|
|
803
|
-
_btnClass = hlm(buttonVariants({ variant: 'ghost' }),
|
|
197
|
+
_btnClass = hlm(buttonVariants({ variant: 'ghost' }), "data-[today=true]:bg-muted", "data-[selected=true]:bg-primary data-[selected=true]:text-primary-foreground data-[selected=true]:hover:bg-primary data-[selected=true]:hover:text-primary-foreground", "data-[focused=true]:border-ring data-[focused=true]:ring-ring/50 data-[focused=true]:ring-[3px]", "aria-disabled:pointer-events-none aria-disabled:opacity-50", "h-(--cell-size)");
|
|
804
198
|
constructor() {
|
|
805
|
-
classes(() =>
|
|
199
|
+
classes(() => "p-3 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(8)] group/calendar bg-background block in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent");
|
|
806
200
|
}
|
|
807
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
808
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
809
|
-
<div class="flex flex-col gap-4">
|
|
810
|
-
<!-- Header -->
|
|
811
|
-
<div class="flex w-full items-center justify-between gap-1.5">
|
|
812
|
-
<button
|
|
813
|
-
brnMonthYearCalendarPreviousButton
|
|
814
|
-
hlmBtn
|
|
815
|
-
variant="ghost"
|
|
816
|
-
class="order-first size-(--cell-size) p-0 select-none aria-disabled:opacity-50"
|
|
817
|
-
>
|
|
818
|
-
<ng-icon name="lucideChevronLeft" class="rtl:rotate-180" />
|
|
819
|
-
</button>
|
|
820
|
-
|
|
821
|
-
<button
|
|
822
|
-
hlmBtn
|
|
823
|
-
variant="ghost"
|
|
824
|
-
class="h-(--cell-size) py-0 select-none aria-disabled:opacity-50"
|
|
825
|
-
brnMonthYearCalendarHeader
|
|
826
|
-
>
|
|
827
|
-
{{ _heading() }}
|
|
828
|
-
</button>
|
|
829
|
-
|
|
830
|
-
<button
|
|
831
|
-
brnMonthYearCalendarNextButton
|
|
832
|
-
hlmBtn
|
|
833
|
-
variant="ghost"
|
|
834
|
-
class="order-last size-(--cell-size) p-0 select-none aria-disabled:opacity-50"
|
|
835
|
-
>
|
|
836
|
-
<ng-icon name="lucideChevronRight" class="rtl:rotate-180" />
|
|
837
|
-
</button>
|
|
838
|
-
</div>
|
|
839
|
-
|
|
840
|
-
<!-- Grid -->
|
|
841
|
-
@switch (_picker.view()) {
|
|
842
|
-
@case ('year') {
|
|
843
|
-
<div brnMonthYearCalendarGrid class="grid grid-cols-4 gap-2">
|
|
844
|
-
@for (year of _picker.years(); track _dateAdapter.getYear(year)) {
|
|
845
|
-
<button brnMonthYearCalendarYearButton [date]="year" [class]="_btnClass">
|
|
846
|
-
{{ _i18n.config().formatYear(_dateAdapter.getYear(year)) }}
|
|
847
|
-
</button>
|
|
848
|
-
}
|
|
849
|
-
</div>
|
|
850
|
-
}
|
|
851
|
-
@case ('month') {
|
|
852
|
-
<div brnMonthYearCalendarGrid class="grid grid-cols-4 gap-2">
|
|
853
|
-
@for (month of _picker.months(); track _dateAdapter.getMonth(month)) {
|
|
854
|
-
<button brnMonthYearCalendarMonthButton [date]="month" [class]="_btnClass">
|
|
855
|
-
{{ _i18n.config().months()[_dateAdapter.getMonth(month)] }}
|
|
856
|
-
</button>
|
|
857
|
-
}
|
|
858
|
-
</div>
|
|
859
|
-
}
|
|
860
|
-
}
|
|
861
|
-
</div>
|
|
862
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i1.BrnMonthYearCalendarGrid, selector: "[brnMonthYearCalendarGrid]" }, { kind: "directive", type: i1.BrnMonthYearCalendarHeader, selector: "button[brnMonthYearCalendarHeader]", inputs: ["id"] }, { kind: "directive", type: i1.BrnMonthYearCalendarMonthButton, selector: "button[brnMonthYearCalendarMonthButton]", inputs: ["date"] }, { kind: "directive", type: i1.BrnMonthYearCalendarNextButton, selector: "button[brnMonthYearCalendarNextButton]" }, { kind: "directive", type: i1.BrnMonthYearCalendarPreviousButton, selector: "button[brnMonthYearCalendarPreviousButton]" }, { kind: "directive", type: i1.BrnMonthYearCalendarYearButton, selector: "button[brnMonthYearCalendarYearButton]", inputs: ["date"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: i3.HlmBtn, selector: "button[hlmBtn], a[hlmBtn]", inputs: ["variant", "size", "class", "type"], exportAs: ["hlmBtn"] }], viewProviders: [provideIcons({ lucideChevronLeft, lucideChevronRight })], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
201
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmMonthYearCalendar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
202
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.3", type: HlmMonthYearCalendar, isStandalone: true, selector: "hlm-month-year-calendar", host: { attributes: { "data-slot": "month-year-calendar" } }, hostDirectives: [{ directive: i1.BrnMonthYearCalendar, inputs: ["min", "min", "max", "max", "disabled", "disabled", "date", "date", "defaultFocusedDate", "defaultFocusedDate", "view", "view"], outputs: ["dateChange", "dateChange"] }], ngImport: i0, template: "\n <div class=\"flex flex-col gap-4\">\n <!-- Header -->\n <div class=\"flex w-full items-center justify-between gap-1.5\">\n <button\n brnMonthYearCalendarPreviousButton\n hlmBtn\n variant=\"ghost\"\n class=\"order-first size-(--cell-size) p-0 select-none aria-disabled:opacity-50\"\n >\n <ng-icon name=\"lucideChevronLeft\" class=\"rtl:rotate-180\" />\n </button>\n\n <button\n hlmBtn\n variant=\"ghost\"\n class=\"h-(--cell-size) py-0 select-none aria-disabled:opacity-50\"\n brnMonthYearCalendarHeader\n >\n {{ _heading() }}\n </button>\n\n <button\n brnMonthYearCalendarNextButton\n hlmBtn\n variant=\"ghost\"\n class=\"order-last size-(--cell-size) p-0 select-none aria-disabled:opacity-50\"\n >\n <ng-icon name=\"lucideChevronRight\" class=\"rtl:rotate-180\" />\n </button>\n </div>\n\n <!-- Grid -->\n @switch (_picker.view()) {\n @case ('year') {\n <div brnMonthYearCalendarGrid class=\"grid grid-cols-4 gap-2\">\n @for (year of _picker.years(); track _dateAdapter.getYear(year)) {\n <button brnMonthYearCalendarYearButton [date]=\"year\" [class]=\"_btnClass\">\n {{ _i18n.config().formatYear(_dateAdapter.getYear(year)) }}\n </button>\n }\n </div>\n }\n @case ('month') {\n <div brnMonthYearCalendarGrid class=\"grid grid-cols-4 gap-2\">\n @for (month of _picker.months(); track _dateAdapter.getMonth(month)) {\n <button brnMonthYearCalendarMonthButton [date]=\"month\" [class]=\"_btnClass\">\n {{ _i18n.config().months()[_dateAdapter.getMonth(month)] }}\n </button>\n }\n </div>\n }\n }\n </div>\n ", isInline: true, dependencies: [{ kind: "directive", type: i1.BrnMonthYearCalendarGrid, selector: "[brnMonthYearCalendarGrid]" }, { kind: "directive", type: i1.BrnMonthYearCalendarHeader, selector: "button[brnMonthYearCalendarHeader]", inputs: ["id"] }, { kind: "directive", type: i1.BrnMonthYearCalendarMonthButton, selector: "button[brnMonthYearCalendarMonthButton]", inputs: ["date"] }, { kind: "directive", type: i1.BrnMonthYearCalendarNextButton, selector: "button[brnMonthYearCalendarNextButton]" }, { kind: "directive", type: i1.BrnMonthYearCalendarPreviousButton, selector: "button[brnMonthYearCalendarPreviousButton]" }, { kind: "directive", type: i1.BrnMonthYearCalendarYearButton, selector: "button[brnMonthYearCalendarYearButton]", inputs: ["date"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: i3.HlmBtn, selector: "button[hlmBtn], a[hlmBtn]", inputs: ["variant", "size", "class", "type"], exportAs: ["hlmBtn"] }], viewProviders: [provideIcons({ lucideChevronLeft, lucideChevronRight })], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
863
203
|
}
|
|
864
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
204
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmMonthYearCalendar, decorators: [{
|
|
865
205
|
type: Component,
|
|
866
206
|
args: [{
|
|
867
207
|
selector: 'hlm-month-year-calendar',
|
|
@@ -876,61 +216,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
|
|
|
876
216
|
},
|
|
877
217
|
],
|
|
878
218
|
host: { 'data-slot': 'month-year-calendar' },
|
|
879
|
-
template:
|
|
880
|
-
<div class="flex flex-col gap-4">
|
|
881
|
-
<!-- Header -->
|
|
882
|
-
<div class="flex w-full items-center justify-between gap-1.5">
|
|
883
|
-
<button
|
|
884
|
-
brnMonthYearCalendarPreviousButton
|
|
885
|
-
hlmBtn
|
|
886
|
-
variant="ghost"
|
|
887
|
-
class="order-first size-(--cell-size) p-0 select-none aria-disabled:opacity-50"
|
|
888
|
-
>
|
|
889
|
-
<ng-icon name="lucideChevronLeft" class="rtl:rotate-180" />
|
|
890
|
-
</button>
|
|
891
|
-
|
|
892
|
-
<button
|
|
893
|
-
hlmBtn
|
|
894
|
-
variant="ghost"
|
|
895
|
-
class="h-(--cell-size) py-0 select-none aria-disabled:opacity-50"
|
|
896
|
-
brnMonthYearCalendarHeader
|
|
897
|
-
>
|
|
898
|
-
{{ _heading() }}
|
|
899
|
-
</button>
|
|
900
|
-
|
|
901
|
-
<button
|
|
902
|
-
brnMonthYearCalendarNextButton
|
|
903
|
-
hlmBtn
|
|
904
|
-
variant="ghost"
|
|
905
|
-
class="order-last size-(--cell-size) p-0 select-none aria-disabled:opacity-50"
|
|
906
|
-
>
|
|
907
|
-
<ng-icon name="lucideChevronRight" class="rtl:rotate-180" />
|
|
908
|
-
</button>
|
|
909
|
-
</div>
|
|
910
|
-
|
|
911
|
-
<!-- Grid -->
|
|
912
|
-
@switch (_picker.view()) {
|
|
913
|
-
@case ('year') {
|
|
914
|
-
<div brnMonthYearCalendarGrid class="grid grid-cols-4 gap-2">
|
|
915
|
-
@for (year of _picker.years(); track _dateAdapter.getYear(year)) {
|
|
916
|
-
<button brnMonthYearCalendarYearButton [date]="year" [class]="_btnClass">
|
|
917
|
-
{{ _i18n.config().formatYear(_dateAdapter.getYear(year)) }}
|
|
918
|
-
</button>
|
|
919
|
-
}
|
|
920
|
-
</div>
|
|
921
|
-
}
|
|
922
|
-
@case ('month') {
|
|
923
|
-
<div brnMonthYearCalendarGrid class="grid grid-cols-4 gap-2">
|
|
924
|
-
@for (month of _picker.months(); track _dateAdapter.getMonth(month)) {
|
|
925
|
-
<button brnMonthYearCalendarMonthButton [date]="month" [class]="_btnClass">
|
|
926
|
-
{{ _i18n.config().months()[_dateAdapter.getMonth(month)] }}
|
|
927
|
-
</button>
|
|
928
|
-
}
|
|
929
|
-
</div>
|
|
930
|
-
}
|
|
931
|
-
}
|
|
932
|
-
</div>
|
|
933
|
-
`,
|
|
219
|
+
template: "\n <div class=\"flex flex-col gap-4\">\n <!-- Header -->\n <div class=\"flex w-full items-center justify-between gap-1.5\">\n <button\n brnMonthYearCalendarPreviousButton\n hlmBtn\n variant=\"ghost\"\n class=\"order-first size-(--cell-size) p-0 select-none aria-disabled:opacity-50\"\n >\n <ng-icon name=\"lucideChevronLeft\" class=\"rtl:rotate-180\" />\n </button>\n\n <button\n hlmBtn\n variant=\"ghost\"\n class=\"h-(--cell-size) py-0 select-none aria-disabled:opacity-50\"\n brnMonthYearCalendarHeader\n >\n {{ _heading() }}\n </button>\n\n <button\n brnMonthYearCalendarNextButton\n hlmBtn\n variant=\"ghost\"\n class=\"order-last size-(--cell-size) p-0 select-none aria-disabled:opacity-50\"\n >\n <ng-icon name=\"lucideChevronRight\" class=\"rtl:rotate-180\" />\n </button>\n </div>\n\n <!-- Grid -->\n @switch (_picker.view()) {\n @case ('year') {\n <div brnMonthYearCalendarGrid class=\"grid grid-cols-4 gap-2\">\n @for (year of _picker.years(); track _dateAdapter.getYear(year)) {\n <button brnMonthYearCalendarYearButton [date]=\"year\" [class]=\"_btnClass\">\n {{ _i18n.config().formatYear(_dateAdapter.getYear(year)) }}\n </button>\n }\n </div>\n }\n @case ('month') {\n <div brnMonthYearCalendarGrid class=\"grid grid-cols-4 gap-2\">\n @for (month of _picker.months(); track _dateAdapter.getMonth(month)) {\n <button brnMonthYearCalendarMonthButton [date]=\"month\" [class]=\"_btnClass\">\n {{ _i18n.config().months()[_dateAdapter.getMonth(month)] }}\n </button>\n }\n </div>\n }\n }\n </div>\n ",
|
|
934
220
|
}]
|
|
935
221
|
}], ctorParameters: () => [] });
|
|
936
222
|
|
|
@@ -939,11 +225,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
|
|
|
939
225
|
*/
|
|
940
226
|
const HlmCalendarImports = [HlmCalendar, HlmCalendarMulti, HlmCalendarRange, HlmMonthYearCalendar];
|
|
941
227
|
class HlmCalendarModule {
|
|
942
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
943
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.
|
|
944
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.
|
|
228
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmCalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
229
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.3", ngImport: i0, type: HlmCalendarModule, imports: [HlmCalendar, HlmCalendarMulti, HlmCalendarRange, HlmMonthYearCalendar], exports: [HlmCalendar, HlmCalendarMulti, HlmCalendarRange, HlmMonthYearCalendar] });
|
|
230
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmCalendarModule, imports: [HlmCalendarImports] });
|
|
945
231
|
}
|
|
946
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
232
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmCalendarModule, decorators: [{
|
|
947
233
|
type: NgModule,
|
|
948
234
|
args: [{
|
|
949
235
|
imports: [...HlmCalendarImports],
|
|
@@ -956,4 +242,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
|
|
|
956
242
|
*/
|
|
957
243
|
|
|
958
244
|
export { HlmCalendar, HlmCalendarImports, HlmCalendarModule, HlmCalendarMulti, HlmCalendarRange, HlmMonthYearCalendar };
|
|
959
|
-
|
|
245
|
+
|