@frame-ui-ng/components 0.1.0-beta.0 → 0.3.0-beta.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/accordion/src/styles/_vars.css +25 -25
- package/accordion/src/styles/accordion.css +105 -87
- package/alert/src/styles/_vars.css +28 -28
- package/badge/src/styles/_vars.css +19 -16
- package/badge/src/styles/badge.css +132 -125
- package/breadcrumb/src/styles/_vars.css +17 -16
- package/breadcrumb/src/styles/breadcrumb.css +110 -98
- package/button/src/styles/_vars.css +20 -20
- package/button/src/styles/button.css +66 -9
- package/button-group/src/styles/button-group.css +100 -69
- package/calendar/src/styles/_vars.css +29 -29
- package/calendar/src/styles/calendar.css +247 -226
- package/card/src/styles/_vars.css +17 -17
- package/checkbox/src/styles/_vars.css +22 -22
- package/collapsible/src/styles/collapsible.css +55 -42
- package/combobox/src/styles/_vars.css +61 -60
- package/combobox/src/styles/combobox.css +295 -285
- package/command/src/styles/_vars.css +47 -37
- package/command/src/styles/command.css +236 -171
- package/date-picker/src/styles/_vars.css +30 -29
- package/date-picker/src/styles/date-picker.css +203 -177
- package/dropdown-menu/src/styles/_vars.css +34 -34
- package/dropdown-menu/src/styles/dropdown-menu-item.css +87 -87
- package/fesm2022/frame-ui-ng-components-accordion.mjs +26 -11
- package/fesm2022/frame-ui-ng-components-accordion.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-badge.mjs +1 -0
- package/fesm2022/frame-ui-ng-components-badge.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-button.mjs +1 -1
- package/fesm2022/frame-ui-ng-components-button.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-calendar.mjs +369 -263
- package/fesm2022/frame-ui-ng-components-calendar.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-command.mjs +20 -2
- package/fesm2022/frame-ui-ng-components-command.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-date-picker.mjs +232 -226
- package/fesm2022/frame-ui-ng-components-date-picker.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs +45 -22
- package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-input.mjs +6 -3
- package/fesm2022/frame-ui-ng-components-input.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-select.mjs +6 -3
- package/fesm2022/frame-ui-ng-components-select.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-sidebar.mjs +47 -4
- package/fesm2022/frame-ui-ng-components-sidebar.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-toast.mjs +152 -142
- package/fesm2022/frame-ui-ng-components-toast.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-tooltip.mjs +263 -254
- package/fesm2022/frame-ui-ng-components-tooltip.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components.mjs +745 -531
- package/fesm2022/frame-ui-ng-components.mjs.map +1 -1
- package/input/src/styles/_vars.css +65 -65
- package/input/src/styles/input-group.css +164 -112
- package/input/src/styles/input.css +197 -163
- package/input-otp/src/styles/_vars.css +21 -21
- package/item/src/styles/_vars.css +34 -34
- package/menubar/src/styles/_vars.css +22 -22
- package/modal/src/styles/_vars.css +19 -18
- package/modal/src/styles/modal.css +202 -179
- package/navigation-menu/src/styles/_vars.css +45 -45
- package/package.json +12 -3
- package/pagination/src/styles/_vars.css +22 -22
- package/pagination/src/styles/pagination.css +158 -138
- package/progress/src/styles/_vars.css +15 -15
- package/radio-group/src/styles/_vars.css +29 -29
- package/radio-group/src/styles/radio-group.css +146 -137
- package/resizable/src/styles/_vars.css +20 -20
- package/select/src/styles/_vars.css +28 -28
- package/select/src/styles/select-trigger.css +109 -95
- package/separator/src/styles/_vars.css +9 -9
- package/sheet/src/styles/_vars.css +20 -18
- package/sheet/src/styles/sheet.css +220 -215
- package/sidebar/src/styles/sidebar.css +544 -531
- package/slider/src/styles/_vars.css +17 -17
- package/src/styles/blueprint.css +659 -0
- package/src/styles/components.css +47 -47
- package/styles/blueprint.css +659 -0
- package/styles/components.css +47 -47
- package/styles.css +49 -49
- package/switch/src/styles/_vars.css +34 -34
- package/switch/src/styles/switch.css +130 -131
- package/tabs/src/styles/_vars.css +23 -23
- package/textarea/src/styles/_vars.css +20 -20
- package/textarea/src/styles/textarea.css +62 -60
- package/toast/src/styles/_vars.css +48 -47
- package/toast/src/styles/toast.css +279 -314
- package/toggle/src/styles/_vars.css +24 -24
- package/tooltip/src/styles/_vars.css +21 -21
- package/tooltip/src/styles/tooltip.css +99 -103
- package/types/frame-ui-ng-components-accordion.d.ts +3 -1
- package/types/frame-ui-ng-components-badge.d.ts +2 -2
- package/types/frame-ui-ng-components-calendar.d.ts +14 -0
- package/types/frame-ui-ng-components-command.d.ts +7 -2
- package/types/frame-ui-ng-components-context-menu.d.ts +2 -2
- package/types/frame-ui-ng-components-date-picker.d.ts +3 -1
- package/types/frame-ui-ng-components-dropdown-menu.d.ts +3 -3
- package/types/frame-ui-ng-components-input.d.ts +6 -3
- package/types/frame-ui-ng-components-select.d.ts +6 -3
- package/types/frame-ui-ng-components-sidebar.d.ts +8 -1
- package/types/frame-ui-ng-components-tooltip.d.ts +43 -73
- package/types/frame-ui-ng-components.d.ts +91 -55
- package/virtual-scroll/src/styles/virtual-scroll.css +54 -54
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, inject, ElementRef, effect, Directive, input, booleanAttribute, computed, output, signal, Component, contentChild, forwardRef, ChangeDetectionStrategy, Renderer2, RendererStyleFlags2, DestroyRef, TemplateRef, model, afterNextRender, ViewChild, ViewContainerRef, Injectable, Injector, numberAttribute, HostListener } from '@angular/core';
|
|
2
|
+
import { InjectionToken, inject, ElementRef, effect, Directive, input, booleanAttribute, computed, output, signal, Component, contentChild, forwardRef, ChangeDetectionStrategy, Renderer2, RendererStyleFlags2, DestroyRef, TemplateRef, model, afterNextRender, ViewChild, ViewContainerRef, Injectable, viewChild, Injector, numberAttribute, HostListener } from '@angular/core';
|
|
3
3
|
import * as i1 from '@frame-ui-ng/components/spinner';
|
|
4
4
|
import { FrSpinner } from '@frame-ui-ng/components/spinner';
|
|
5
5
|
import { NgTemplateOutlet, NgClass, NgComponentOutlet, DOCUMENT } from '@angular/common';
|
|
@@ -25,7 +25,7 @@ class FrAccordionContent {
|
|
|
25
25
|
host = inject(ElementRef);
|
|
26
26
|
item = inject(ACCORDION_ITEM);
|
|
27
27
|
initialized = false;
|
|
28
|
-
|
|
28
|
+
rafIds = [];
|
|
29
29
|
constructor() {
|
|
30
30
|
effect((onCleanup) => {
|
|
31
31
|
const open = this.item.open();
|
|
@@ -51,19 +51,25 @@ class FrAccordionContent {
|
|
|
51
51
|
}
|
|
52
52
|
animate(open) {
|
|
53
53
|
const element = this.host.nativeElement;
|
|
54
|
+
const currentHeight = element.getBoundingClientRect().height;
|
|
55
|
+
const contentHeight = this.measureContentHeight();
|
|
54
56
|
if (open) {
|
|
55
57
|
element.style.visibility = 'visible';
|
|
56
|
-
element.style.height =
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
element.style.height = `${currentHeight}px`;
|
|
59
|
+
if (currentHeight === 0) {
|
|
60
|
+
element.style.opacity = '0';
|
|
61
|
+
}
|
|
62
|
+
void element.offsetHeight;
|
|
63
|
+
this.requestAnimationFrame(() => {
|
|
64
|
+
element.style.height = `${contentHeight}px`;
|
|
60
65
|
element.style.opacity = '1';
|
|
61
66
|
});
|
|
62
67
|
return;
|
|
63
68
|
}
|
|
64
|
-
element.style.height = `${
|
|
69
|
+
element.style.height = `${currentHeight || contentHeight}px`;
|
|
65
70
|
element.style.opacity = '1';
|
|
66
|
-
|
|
71
|
+
void element.offsetHeight;
|
|
72
|
+
this.requestAnimationFrame(() => {
|
|
67
73
|
element.style.height = '0px';
|
|
68
74
|
element.style.opacity = '0';
|
|
69
75
|
});
|
|
@@ -74,12 +80,21 @@ class FrAccordionContent {
|
|
|
74
80
|
element.style.opacity = open ? '1' : '0';
|
|
75
81
|
element.style.visibility = open ? 'visible' : 'hidden';
|
|
76
82
|
}
|
|
83
|
+
measureContentHeight() {
|
|
84
|
+
return this.host.nativeElement.scrollHeight;
|
|
85
|
+
}
|
|
77
86
|
cancelAnimationFrame() {
|
|
78
|
-
|
|
79
|
-
|
|
87
|
+
for (const rafId of this.rafIds) {
|
|
88
|
+
cancelAnimationFrame(rafId);
|
|
80
89
|
}
|
|
81
|
-
|
|
82
|
-
|
|
90
|
+
this.rafIds = [];
|
|
91
|
+
}
|
|
92
|
+
requestAnimationFrame(callback) {
|
|
93
|
+
const rafId = requestAnimationFrame((time) => {
|
|
94
|
+
this.rafIds = this.rafIds.filter((id) => id !== rafId);
|
|
95
|
+
callback(time);
|
|
96
|
+
});
|
|
97
|
+
this.rafIds.push(rafId);
|
|
83
98
|
}
|
|
84
99
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrAccordionContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
85
100
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrAccordionContent, isStandalone: true, selector: "[frAccordionContent]", host: { attributes: { "role": "region" }, listeners: { "transitionend": "onTransitionEnd($event)" }, properties: { "attr.aria-hidden": "item.open() ? \"false\" : \"true\"", "attr.aria-labelledby": "item.triggerId()", "attr.data-state": "item.open() ? \"open\" : \"closed\"", "attr.id": "item.contentId()" }, classAttribute: "frame-accordion__content" }, ngImport: i0 });
|
|
@@ -458,6 +473,7 @@ const FR_AVATAR_SIZES = ['xs', 'sm', 'md', 'lg'];
|
|
|
458
473
|
const FR_BADGE_VARIANTS = [
|
|
459
474
|
'default',
|
|
460
475
|
'secondary',
|
|
476
|
+
'success',
|
|
461
477
|
'destructive',
|
|
462
478
|
'outline',
|
|
463
479
|
'ghost',
|
|
@@ -654,7 +670,7 @@ class FrButton {
|
|
|
654
670
|
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
655
671
|
loading = input(false, { ...(ngDevMode ? { debugName: "loading" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
656
672
|
loadingDisplay = input('replace', ...(ngDevMode ? [{ debugName: "loadingDisplay" }] : /* istanbul ignore next */ []));
|
|
657
|
-
radius = input('
|
|
673
|
+
radius = input('none', ...(ngDevMode ? [{ debugName: "radius" }] : /* istanbul ignore next */ []));
|
|
658
674
|
size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
659
675
|
hasCustomLoadingIndicator = computed(() => !!this.loadingIndicator() || !!this.spinnerIndicator(), ...(ngDevMode ? [{ debugName: "hasCustomLoadingIndicator" }] : /* istanbul ignore next */ []));
|
|
660
676
|
isUnavailable = computed(() => this.disabled() || this.loading(), ...(ngDevMode ? [{ debugName: "isUnavailable" }] : /* istanbul ignore next */ []));
|
|
@@ -796,9 +812,11 @@ class FrCalendar {
|
|
|
796
812
|
selected = input(undefined, ...(ngDevMode ? [{ debugName: "selected" }] : /* istanbul ignore next */ []));
|
|
797
813
|
selectedChange = output();
|
|
798
814
|
monthChange = output();
|
|
815
|
+
focusedDate = signal(null, ...(ngDevMode ? [{ debugName: "focusedDate" }] : /* istanbul ignore next */ []));
|
|
799
816
|
navigatedMonth = signal(null, ...(ngDevMode ? [{ debugName: "navigatedMonth" }] : /* istanbul ignore next */ []));
|
|
800
817
|
internalValue = signal(null, ...(ngDevMode ? [{ debugName: "internalValue" }] : /* istanbul ignore next */ []));
|
|
801
818
|
cvaDisabled = signal(false, ...(ngDevMode ? [{ debugName: "cvaDisabled" }] : /* istanbul ignore next */ []));
|
|
819
|
+
host = inject((ElementRef));
|
|
802
820
|
currentMonth = computed(() => startOfMonth(this.navigatedMonth() ?? this.month() ?? new Date()), ...(ngDevMode ? [{ debugName: "currentMonth" }] : /* istanbul ignore next */ []));
|
|
803
821
|
isDisabled = computed(() => this.disabled() || this.cvaDisabled(), ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
|
|
804
822
|
value = computed(() => {
|
|
@@ -815,6 +833,7 @@ class FrCalendar {
|
|
|
815
833
|
})), ...(ngDevMode ? [{ debugName: "monthOptions" }] : /* istanbul ignore next */ []));
|
|
816
834
|
yearOptions = computed(() => Array.from({ length: Math.max(0, this.toYear() - this.fromYear() + 1) }, (_, index) => this.fromYear() + index), ...(ngDevMode ? [{ debugName: "yearOptions" }] : /* istanbul ignore next */ []));
|
|
817
835
|
months = computed(() => Array.from({ length: Math.max(1, this.numberOfMonths()) }, (_, index) => this.buildMonth(addMonths(this.currentMonth(), index))), ...(ngDevMode ? [{ debugName: "months" }] : /* istanbul ignore next */ []));
|
|
836
|
+
activeDate = computed(() => this.resolveActiveDate(), ...(ngDevMode ? [{ debugName: "activeDate" }] : /* istanbul ignore next */ []));
|
|
818
837
|
onTouched = () => undefined;
|
|
819
838
|
onChange = () => undefined;
|
|
820
839
|
writeValue(value) {
|
|
@@ -859,6 +878,25 @@ class FrCalendar {
|
|
|
859
878
|
this.onChange(nextValue);
|
|
860
879
|
this.selectedChange.emit(nextValue);
|
|
861
880
|
}
|
|
881
|
+
handleDayKeydown(event, day) {
|
|
882
|
+
const offset = this.navigationOffset(event.key);
|
|
883
|
+
if (offset === null || this.isDisabled()) {
|
|
884
|
+
return;
|
|
885
|
+
}
|
|
886
|
+
event.preventDefault();
|
|
887
|
+
const next = addDays(day.date, offset);
|
|
888
|
+
this.focusedDate.set(next);
|
|
889
|
+
if (!this.isDateVisible(next)) {
|
|
890
|
+
this.updateMonth(startOfMonth(next));
|
|
891
|
+
}
|
|
892
|
+
this.focusDay(next);
|
|
893
|
+
}
|
|
894
|
+
dayTabIndex(day) {
|
|
895
|
+
return sameDate(day.date, this.activeDate()) ? 0 : -1;
|
|
896
|
+
}
|
|
897
|
+
focusActiveDate() {
|
|
898
|
+
this.focusDay(this.activeDate());
|
|
899
|
+
}
|
|
862
900
|
monthLabel(date) {
|
|
863
901
|
return new Intl.DateTimeFormat(this.locale(), {
|
|
864
902
|
month: 'long',
|
|
@@ -875,6 +913,78 @@ class FrCalendar {
|
|
|
875
913
|
weekNumber(date) {
|
|
876
914
|
return isoWeekNumber(date).toString().padStart(2, '0');
|
|
877
915
|
}
|
|
916
|
+
navigationOffset(key) {
|
|
917
|
+
switch (key) {
|
|
918
|
+
case 'ArrowLeft':
|
|
919
|
+
return this.dir() === 'rtl' ? 1 : -1;
|
|
920
|
+
case 'ArrowRight':
|
|
921
|
+
return this.dir() === 'rtl' ? -1 : 1;
|
|
922
|
+
case 'ArrowUp':
|
|
923
|
+
return -7;
|
|
924
|
+
case 'ArrowDown':
|
|
925
|
+
return 7;
|
|
926
|
+
default:
|
|
927
|
+
return null;
|
|
928
|
+
}
|
|
929
|
+
}
|
|
930
|
+
resolveActiveDate() {
|
|
931
|
+
const focused = this.focusedDate();
|
|
932
|
+
if (focused && this.findDay(focused) && !this.isDayDisabled(focused)) {
|
|
933
|
+
return cloneDate(focused);
|
|
934
|
+
}
|
|
935
|
+
const selected = this.selectedDate();
|
|
936
|
+
if (selected && this.findDay(selected) && !this.isDayDisabled(selected)) {
|
|
937
|
+
return cloneDate(selected);
|
|
938
|
+
}
|
|
939
|
+
const today = new Date();
|
|
940
|
+
if (this.findDay(today) && !this.isDayDisabled(today)) {
|
|
941
|
+
return cloneDate(today);
|
|
942
|
+
}
|
|
943
|
+
const firstEnabled = this.months()
|
|
944
|
+
.flatMap((month) => month.weeks.flat())
|
|
945
|
+
.find((day) => !day.disabled);
|
|
946
|
+
return firstEnabled ? cloneDate(firstEnabled.date) : cloneDate(this.currentMonth());
|
|
947
|
+
}
|
|
948
|
+
selectedDate() {
|
|
949
|
+
const value = this.value();
|
|
950
|
+
if (value instanceof Date) {
|
|
951
|
+
return value;
|
|
952
|
+
}
|
|
953
|
+
if (isRange$1(value)) {
|
|
954
|
+
return value.from ?? value.to;
|
|
955
|
+
}
|
|
956
|
+
return null;
|
|
957
|
+
}
|
|
958
|
+
isDateVisible(date) {
|
|
959
|
+
return this.months().some((month) => month.weeks.some((week) => week.some((day) => sameDate(day.date, date))));
|
|
960
|
+
}
|
|
961
|
+
findDay(date) {
|
|
962
|
+
for (const month of this.months()) {
|
|
963
|
+
for (const week of month.weeks) {
|
|
964
|
+
const day = week.find((item) => sameDate(item.date, date));
|
|
965
|
+
if (day) {
|
|
966
|
+
return day;
|
|
967
|
+
}
|
|
968
|
+
}
|
|
969
|
+
}
|
|
970
|
+
return null;
|
|
971
|
+
}
|
|
972
|
+
isDayDisabled(date) {
|
|
973
|
+
return this.findDay(date)?.disabled ?? true;
|
|
974
|
+
}
|
|
975
|
+
focusDay(date) {
|
|
976
|
+
if (this.focusDayElement(date)) {
|
|
977
|
+
return;
|
|
978
|
+
}
|
|
979
|
+
setTimeout(() => {
|
|
980
|
+
this.focusDayElement(date);
|
|
981
|
+
});
|
|
982
|
+
}
|
|
983
|
+
focusDayElement(date) {
|
|
984
|
+
const button = this.host.nativeElement.querySelector(`.frame-calendar__day[data-date="${dateKey(date)}"]`);
|
|
985
|
+
button?.focus();
|
|
986
|
+
return !!button;
|
|
987
|
+
}
|
|
878
988
|
updateMonth(month) {
|
|
879
989
|
const next = startOfMonth(month);
|
|
880
990
|
this.navigatedMonth.set(next);
|
|
@@ -917,137 +1027,143 @@ class FrCalendar {
|
|
|
917
1027
|
};
|
|
918
1028
|
}
|
|
919
1029
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrCalendar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
920
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.16", type: FrCalendar, isStandalone: true, selector: "frame-calendar", inputs: { mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, captionLayout: { classPropertyName: "captionLayout", publicName: "captionLayout", isSignal: true, isRequired: false, transformFunction: null }, numberOfMonths: { classPropertyName: "numberOfMonths", publicName: "numberOfMonths", isSignal: true, isRequired: false, transformFunction: null }, firstDayOfWeek: { classPropertyName: "firstDayOfWeek", publicName: "firstDayOfWeek", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, timeZone: { classPropertyName: "timeZone", publicName: "timeZone", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: "dir", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, fromYear: { classPropertyName: "fromYear", publicName: "fromYear", isSignal: true, isRequired: false, transformFunction: null }, toYear: { classPropertyName: "toYear", publicName: "toYear", isSignal: true, isRequired: false, transformFunction: null }, showOutsideDays: { classPropertyName: "showOutsideDays", publicName: "showOutsideDays", isSignal: true, isRequired: false, transformFunction: null }, showWeekNumber: { classPropertyName: "showWeekNumber", publicName: "showWeekNumber", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, disabledDates: { classPropertyName: "disabledDates", publicName: "disabledDates", isSignal: true, isRequired: false, transformFunction: null }, dateLabels: { classPropertyName: "dateLabels", publicName: "dateLabels", isSignal: true, isRequired: false, transformFunction: null }, disabledMatcher: { classPropertyName: "disabledMatcher", publicName: "disabledMatcher", isSignal: true, isRequired: false, transformFunction: null }, cellTemplate: { classPropertyName: "cellTemplate", publicName: "cellTemplate", isSignal: true, isRequired: false, transformFunction: null }, previousMonthTemplate: { classPropertyName: "previousMonthTemplate", publicName: "previousMonthTemplate", isSignal: true, isRequired: false, transformFunction: null }, nextMonthTemplate: { classPropertyName: "nextMonthTemplate", publicName: "nextMonthTemplate", isSignal: true, isRequired: false, transformFunction: null }, previousMonthIcon: { classPropertyName: "previousMonthIcon", publicName: "previousMonthIcon", isSignal: true, isRequired: false, transformFunction: null }, nextMonthIcon: { classPropertyName: "nextMonthIcon", publicName: "nextMonthIcon", isSignal: true, isRequired: false, transformFunction: null }, previousMonthLabel: { classPropertyName: "previousMonthLabel", publicName: "previousMonthLabel", isSignal: true, isRequired: false, transformFunction: null }, nextMonthLabel: { classPropertyName: "nextMonthLabel", publicName: "nextMonthLabel", isSignal: true, isRequired: false, transformFunction: null }, month: { classPropertyName: "month", publicName: "month", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedChange: "selectedChange", monthChange: "monthChange" }, host: { properties: { "attr.data-mode": "mode()", "attr.data-caption-layout": "captionLayout()", "attr.data-disabled": "isDisabled() ? \"\" : null", "attr.dir": "dir()" }, classAttribute: "frame-calendar" }, providers: [VALUE_ACCESSOR], ngImport: i0, template: `
|
|
921
|
-
<div class="frame-calendar__header">
|
|
922
|
-
<button
|
|
923
|
-
class="frame-calendar__nav-button"
|
|
924
|
-
type="button"
|
|
925
|
-
[disabled]="isDisabled()"
|
|
926
|
-
(click)="previousMonth()"
|
|
927
|
-
[attr.aria-label]="previousMonthLabel()"
|
|
928
|
-
>
|
|
929
|
-
@if (previousMonthTemplate(); as template) {
|
|
930
|
-
<ng-container [ngTemplateOutlet]="template" />
|
|
931
|
-
} @else {
|
|
932
|
-
{{ previousMonthIcon() }}
|
|
933
|
-
}
|
|
934
|
-
</button>
|
|
935
|
-
|
|
936
|
-
@if (captionLayout() === 'dropdown') {
|
|
937
|
-
<div class="frame-calendar__caption-controls">
|
|
938
|
-
<select
|
|
939
|
-
class="frame-calendar__select"
|
|
940
|
-
[disabled]="isDisabled()"
|
|
941
|
-
[value]="currentMonth().getMonth()"
|
|
942
|
-
aria-label="Month"
|
|
943
|
-
(change)="setMonth($any($event.target).value)"
|
|
944
|
-
>
|
|
945
|
-
@for (month of monthOptions(); track month.value) {
|
|
946
|
-
<option [value]="month.value" [selected]="month.value === currentMonth().getMonth()">
|
|
947
|
-
{{ month.label }}
|
|
948
|
-
</option>
|
|
949
|
-
}
|
|
950
|
-
</select>
|
|
951
|
-
|
|
952
|
-
<select
|
|
953
|
-
class="frame-calendar__select"
|
|
954
|
-
[disabled]="isDisabled()"
|
|
955
|
-
[value]="currentMonth().getFullYear()"
|
|
956
|
-
aria-label="Year"
|
|
957
|
-
(change)="setYear($any($event.target).value)"
|
|
958
|
-
>
|
|
959
|
-
@for (year of yearOptions(); track year) {
|
|
960
|
-
<option [value]="year" [selected]="year === currentMonth().getFullYear()">
|
|
961
|
-
{{ year }}
|
|
962
|
-
</option>
|
|
963
|
-
}
|
|
964
|
-
</select>
|
|
965
|
-
</div>
|
|
966
|
-
} @else {
|
|
967
|
-
<div class="frame-calendar__caption" aria-live="polite">
|
|
968
|
-
{{ monthLabel(currentMonth()) }}
|
|
969
|
-
</div>
|
|
970
|
-
}
|
|
971
|
-
|
|
972
|
-
<button
|
|
973
|
-
class="frame-calendar__nav-button"
|
|
974
|
-
type="button"
|
|
975
|
-
[disabled]="isDisabled()"
|
|
976
|
-
(click)="nextMonth()"
|
|
977
|
-
[attr.aria-label]="nextMonthLabel()"
|
|
978
|
-
>
|
|
979
|
-
@if (nextMonthTemplate(); as template) {
|
|
980
|
-
<ng-container [ngTemplateOutlet]="template" />
|
|
981
|
-
} @else {
|
|
982
|
-
{{ nextMonthIcon() }}
|
|
983
|
-
}
|
|
984
|
-
</button>
|
|
985
|
-
</div>
|
|
986
|
-
|
|
987
|
-
<div class="frame-calendar__months">
|
|
988
|
-
@for (month of months(); track month.key) {
|
|
989
|
-
<section class="frame-calendar__month" [attr.aria-label]="month.label">
|
|
990
|
-
@if (numberOfMonths() > 1 || captionLayout() === 'dropdown') {
|
|
991
|
-
<h3 class="frame-calendar__month-caption">{{ month.label }}</h3>
|
|
992
|
-
}
|
|
993
|
-
|
|
994
|
-
<table class="frame-calendar__table">
|
|
995
|
-
<thead>
|
|
996
|
-
<tr>
|
|
997
|
-
@if (showWeekNumber()) {
|
|
998
|
-
<th class="frame-calendar__week-number-header" scope="col">Wk</th>
|
|
999
|
-
}
|
|
1000
|
-
@for (weekday of weekdayLabels(); track weekday) {
|
|
1001
|
-
<th class="frame-calendar__weekday" scope="col">{{ weekday }}</th>
|
|
1002
|
-
}
|
|
1003
|
-
</tr>
|
|
1004
|
-
</thead>
|
|
1005
|
-
<tbody>
|
|
1006
|
-
@for (week of month.weeks; track week[0].key) {
|
|
1007
|
-
<tr>
|
|
1008
|
-
@if (showWeekNumber()) {
|
|
1009
|
-
<td class="frame-calendar__week-number">{{ weekNumber(week[0].date) }}</td>
|
|
1010
|
-
}
|
|
1011
|
-
@for (day of week; track day.key) {
|
|
1012
|
-
<td
|
|
1013
|
-
class="frame-calendar__cell"
|
|
1014
|
-
[attr.data-outside]="day.outside ? '' : null"
|
|
1015
|
-
[attr.data-selected]="day.selected ? '' : null"
|
|
1016
|
-
[attr.data-range-start]="day.rangeStart ? '' : null"
|
|
1017
|
-
[attr.data-range-middle]="day.rangeMiddle ? '' : null"
|
|
1018
|
-
[attr.data-range-end]="day.rangeEnd ? '' : null"
|
|
1019
|
-
[attr.data-today]="day.today ? '' : null"
|
|
1020
|
-
[attr.data-disabled-date]="day.disabledDate ? '' : null"
|
|
1021
|
-
>
|
|
1022
|
-
<button
|
|
1023
|
-
class="frame-calendar__day"
|
|
1024
|
-
type="button"
|
|
1025
|
-
[disabled]="isDisabled() || day.disabled"
|
|
1026
|
-
[attr.
|
|
1027
|
-
[attr.
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1030
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.16", type: FrCalendar, isStandalone: true, selector: "frame-calendar", inputs: { mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, captionLayout: { classPropertyName: "captionLayout", publicName: "captionLayout", isSignal: true, isRequired: false, transformFunction: null }, numberOfMonths: { classPropertyName: "numberOfMonths", publicName: "numberOfMonths", isSignal: true, isRequired: false, transformFunction: null }, firstDayOfWeek: { classPropertyName: "firstDayOfWeek", publicName: "firstDayOfWeek", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, timeZone: { classPropertyName: "timeZone", publicName: "timeZone", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: "dir", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, fromYear: { classPropertyName: "fromYear", publicName: "fromYear", isSignal: true, isRequired: false, transformFunction: null }, toYear: { classPropertyName: "toYear", publicName: "toYear", isSignal: true, isRequired: false, transformFunction: null }, showOutsideDays: { classPropertyName: "showOutsideDays", publicName: "showOutsideDays", isSignal: true, isRequired: false, transformFunction: null }, showWeekNumber: { classPropertyName: "showWeekNumber", publicName: "showWeekNumber", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, disabledDates: { classPropertyName: "disabledDates", publicName: "disabledDates", isSignal: true, isRequired: false, transformFunction: null }, dateLabels: { classPropertyName: "dateLabels", publicName: "dateLabels", isSignal: true, isRequired: false, transformFunction: null }, disabledMatcher: { classPropertyName: "disabledMatcher", publicName: "disabledMatcher", isSignal: true, isRequired: false, transformFunction: null }, cellTemplate: { classPropertyName: "cellTemplate", publicName: "cellTemplate", isSignal: true, isRequired: false, transformFunction: null }, previousMonthTemplate: { classPropertyName: "previousMonthTemplate", publicName: "previousMonthTemplate", isSignal: true, isRequired: false, transformFunction: null }, nextMonthTemplate: { classPropertyName: "nextMonthTemplate", publicName: "nextMonthTemplate", isSignal: true, isRequired: false, transformFunction: null }, previousMonthIcon: { classPropertyName: "previousMonthIcon", publicName: "previousMonthIcon", isSignal: true, isRequired: false, transformFunction: null }, nextMonthIcon: { classPropertyName: "nextMonthIcon", publicName: "nextMonthIcon", isSignal: true, isRequired: false, transformFunction: null }, previousMonthLabel: { classPropertyName: "previousMonthLabel", publicName: "previousMonthLabel", isSignal: true, isRequired: false, transformFunction: null }, nextMonthLabel: { classPropertyName: "nextMonthLabel", publicName: "nextMonthLabel", isSignal: true, isRequired: false, transformFunction: null }, month: { classPropertyName: "month", publicName: "month", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedChange: "selectedChange", monthChange: "monthChange" }, host: { properties: { "attr.data-mode": "mode()", "attr.data-caption-layout": "captionLayout()", "attr.data-disabled": "isDisabled() ? \"\" : null", "attr.dir": "dir()" }, classAttribute: "frame-calendar" }, providers: [VALUE_ACCESSOR], ngImport: i0, template: `
|
|
1031
|
+
<div class="frame-calendar__header">
|
|
1032
|
+
<button
|
|
1033
|
+
class="frame-calendar__nav-button"
|
|
1034
|
+
type="button"
|
|
1035
|
+
[disabled]="isDisabled()"
|
|
1036
|
+
(click)="previousMonth()"
|
|
1037
|
+
[attr.aria-label]="previousMonthLabel()"
|
|
1038
|
+
>
|
|
1039
|
+
@if (previousMonthTemplate(); as template) {
|
|
1040
|
+
<ng-container [ngTemplateOutlet]="template" />
|
|
1041
|
+
} @else {
|
|
1042
|
+
{{ previousMonthIcon() }}
|
|
1043
|
+
}
|
|
1044
|
+
</button>
|
|
1045
|
+
|
|
1046
|
+
@if (captionLayout() === 'dropdown') {
|
|
1047
|
+
<div class="frame-calendar__caption-controls">
|
|
1048
|
+
<select
|
|
1049
|
+
class="frame-calendar__select"
|
|
1050
|
+
[disabled]="isDisabled()"
|
|
1051
|
+
[value]="currentMonth().getMonth()"
|
|
1052
|
+
aria-label="Month"
|
|
1053
|
+
(change)="setMonth($any($event.target).value)"
|
|
1054
|
+
>
|
|
1055
|
+
@for (month of monthOptions(); track month.value) {
|
|
1056
|
+
<option [value]="month.value" [selected]="month.value === currentMonth().getMonth()">
|
|
1057
|
+
{{ month.label }}
|
|
1058
|
+
</option>
|
|
1059
|
+
}
|
|
1060
|
+
</select>
|
|
1061
|
+
|
|
1062
|
+
<select
|
|
1063
|
+
class="frame-calendar__select"
|
|
1064
|
+
[disabled]="isDisabled()"
|
|
1065
|
+
[value]="currentMonth().getFullYear()"
|
|
1066
|
+
aria-label="Year"
|
|
1067
|
+
(change)="setYear($any($event.target).value)"
|
|
1068
|
+
>
|
|
1069
|
+
@for (year of yearOptions(); track year) {
|
|
1070
|
+
<option [value]="year" [selected]="year === currentMonth().getFullYear()">
|
|
1071
|
+
{{ year }}
|
|
1072
|
+
</option>
|
|
1073
|
+
}
|
|
1074
|
+
</select>
|
|
1075
|
+
</div>
|
|
1076
|
+
} @else {
|
|
1077
|
+
<div class="frame-calendar__caption" aria-live="polite">
|
|
1078
|
+
{{ monthLabel(currentMonth()) }}
|
|
1079
|
+
</div>
|
|
1080
|
+
}
|
|
1081
|
+
|
|
1082
|
+
<button
|
|
1083
|
+
class="frame-calendar__nav-button"
|
|
1084
|
+
type="button"
|
|
1085
|
+
[disabled]="isDisabled()"
|
|
1086
|
+
(click)="nextMonth()"
|
|
1087
|
+
[attr.aria-label]="nextMonthLabel()"
|
|
1088
|
+
>
|
|
1089
|
+
@if (nextMonthTemplate(); as template) {
|
|
1090
|
+
<ng-container [ngTemplateOutlet]="template" />
|
|
1091
|
+
} @else {
|
|
1092
|
+
{{ nextMonthIcon() }}
|
|
1093
|
+
}
|
|
1094
|
+
</button>
|
|
1095
|
+
</div>
|
|
1096
|
+
|
|
1097
|
+
<div class="frame-calendar__months">
|
|
1098
|
+
@for (month of months(); track month.key) {
|
|
1099
|
+
<section class="frame-calendar__month" [attr.aria-label]="month.label">
|
|
1100
|
+
@if (numberOfMonths() > 1 || captionLayout() === 'dropdown') {
|
|
1101
|
+
<h3 class="frame-calendar__month-caption">{{ month.label }}</h3>
|
|
1102
|
+
}
|
|
1103
|
+
|
|
1104
|
+
<table class="frame-calendar__table" role="grid" [attr.aria-readonly]="true">
|
|
1105
|
+
<thead>
|
|
1106
|
+
<tr>
|
|
1107
|
+
@if (showWeekNumber()) {
|
|
1108
|
+
<th class="frame-calendar__week-number-header" scope="col">Wk</th>
|
|
1109
|
+
}
|
|
1110
|
+
@for (weekday of weekdayLabels(); track weekday) {
|
|
1111
|
+
<th class="frame-calendar__weekday" scope="col">{{ weekday }}</th>
|
|
1112
|
+
}
|
|
1113
|
+
</tr>
|
|
1114
|
+
</thead>
|
|
1115
|
+
<tbody>
|
|
1116
|
+
@for (week of month.weeks; track week[0].key) {
|
|
1117
|
+
<tr>
|
|
1118
|
+
@if (showWeekNumber()) {
|
|
1119
|
+
<td class="frame-calendar__week-number">{{ weekNumber(week[0].date) }}</td>
|
|
1120
|
+
}
|
|
1121
|
+
@for (day of week; track day.key) {
|
|
1122
|
+
<td
|
|
1123
|
+
class="frame-calendar__cell"
|
|
1124
|
+
[attr.data-outside]="day.outside ? '' : null"
|
|
1125
|
+
[attr.data-selected]="day.selected ? '' : null"
|
|
1126
|
+
[attr.data-range-start]="day.rangeStart ? '' : null"
|
|
1127
|
+
[attr.data-range-middle]="day.rangeMiddle ? '' : null"
|
|
1128
|
+
[attr.data-range-end]="day.rangeEnd ? '' : null"
|
|
1129
|
+
[attr.data-today]="day.today ? '' : null"
|
|
1130
|
+
[attr.data-disabled-date]="day.disabledDate ? '' : null"
|
|
1131
|
+
>
|
|
1132
|
+
<button
|
|
1133
|
+
class="frame-calendar__day"
|
|
1134
|
+
type="button"
|
|
1135
|
+
[disabled]="isDisabled() || day.disabled"
|
|
1136
|
+
[attr.data-date]="day.key"
|
|
1137
|
+
[attr.tabindex]="dayTabIndex(day)"
|
|
1138
|
+
[attr.aria-label]="dayLabel(day.date)"
|
|
1139
|
+
[attr.aria-pressed]="day.selected ? 'true' : 'false'"
|
|
1140
|
+
[attr.aria-selected]="day.selected ? 'true' : 'false'"
|
|
1141
|
+
[attr.aria-current]="day.today ? 'date' : null"
|
|
1142
|
+
(click)="selectDay(day)"
|
|
1143
|
+
(focus)="focusedDate.set(day.date)"
|
|
1144
|
+
(keydown)="handleDayKeydown($event, day)"
|
|
1145
|
+
>
|
|
1146
|
+
@if (cellTemplate(); as template) {
|
|
1147
|
+
<ng-container
|
|
1148
|
+
[ngTemplateOutlet]="template"
|
|
1149
|
+
[ngTemplateOutletContext]="day"
|
|
1150
|
+
/>
|
|
1151
|
+
} @else {
|
|
1152
|
+
<span class="frame-calendar__day-number">{{ day.day }}</span>
|
|
1153
|
+
@if (day.dateLabel) {
|
|
1154
|
+
<span class="frame-calendar__day-meta">{{ day.dateLabel }}</span>
|
|
1155
|
+
}
|
|
1156
|
+
}
|
|
1157
|
+
</button>
|
|
1158
|
+
</td>
|
|
1159
|
+
}
|
|
1160
|
+
</tr>
|
|
1161
|
+
}
|
|
1162
|
+
</tbody>
|
|
1163
|
+
</table>
|
|
1164
|
+
</section>
|
|
1165
|
+
}
|
|
1166
|
+
</div>
|
|
1051
1167
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1052
1168
|
}
|
|
1053
1169
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrCalendar, decorators: [{
|
|
@@ -1064,137 +1180,143 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
1064
1180
|
'[attr.data-disabled]': 'isDisabled() ? "" : null',
|
|
1065
1181
|
'[attr.dir]': 'dir()',
|
|
1066
1182
|
},
|
|
1067
|
-
template: `
|
|
1068
|
-
<div class="frame-calendar__header">
|
|
1069
|
-
<button
|
|
1070
|
-
class="frame-calendar__nav-button"
|
|
1071
|
-
type="button"
|
|
1072
|
-
[disabled]="isDisabled()"
|
|
1073
|
-
(click)="previousMonth()"
|
|
1074
|
-
[attr.aria-label]="previousMonthLabel()"
|
|
1075
|
-
>
|
|
1076
|
-
@if (previousMonthTemplate(); as template) {
|
|
1077
|
-
<ng-container [ngTemplateOutlet]="template" />
|
|
1078
|
-
} @else {
|
|
1079
|
-
{{ previousMonthIcon() }}
|
|
1080
|
-
}
|
|
1081
|
-
</button>
|
|
1082
|
-
|
|
1083
|
-
@if (captionLayout() === 'dropdown') {
|
|
1084
|
-
<div class="frame-calendar__caption-controls">
|
|
1085
|
-
<select
|
|
1086
|
-
class="frame-calendar__select"
|
|
1087
|
-
[disabled]="isDisabled()"
|
|
1088
|
-
[value]="currentMonth().getMonth()"
|
|
1089
|
-
aria-label="Month"
|
|
1090
|
-
(change)="setMonth($any($event.target).value)"
|
|
1091
|
-
>
|
|
1092
|
-
@for (month of monthOptions(); track month.value) {
|
|
1093
|
-
<option [value]="month.value" [selected]="month.value === currentMonth().getMonth()">
|
|
1094
|
-
{{ month.label }}
|
|
1095
|
-
</option>
|
|
1096
|
-
}
|
|
1097
|
-
</select>
|
|
1098
|
-
|
|
1099
|
-
<select
|
|
1100
|
-
class="frame-calendar__select"
|
|
1101
|
-
[disabled]="isDisabled()"
|
|
1102
|
-
[value]="currentMonth().getFullYear()"
|
|
1103
|
-
aria-label="Year"
|
|
1104
|
-
(change)="setYear($any($event.target).value)"
|
|
1105
|
-
>
|
|
1106
|
-
@for (year of yearOptions(); track year) {
|
|
1107
|
-
<option [value]="year" [selected]="year === currentMonth().getFullYear()">
|
|
1108
|
-
{{ year }}
|
|
1109
|
-
</option>
|
|
1110
|
-
}
|
|
1111
|
-
</select>
|
|
1112
|
-
</div>
|
|
1113
|
-
} @else {
|
|
1114
|
-
<div class="frame-calendar__caption" aria-live="polite">
|
|
1115
|
-
{{ monthLabel(currentMonth()) }}
|
|
1116
|
-
</div>
|
|
1117
|
-
}
|
|
1118
|
-
|
|
1119
|
-
<button
|
|
1120
|
-
class="frame-calendar__nav-button"
|
|
1121
|
-
type="button"
|
|
1122
|
-
[disabled]="isDisabled()"
|
|
1123
|
-
(click)="nextMonth()"
|
|
1124
|
-
[attr.aria-label]="nextMonthLabel()"
|
|
1125
|
-
>
|
|
1126
|
-
@if (nextMonthTemplate(); as template) {
|
|
1127
|
-
<ng-container [ngTemplateOutlet]="template" />
|
|
1128
|
-
} @else {
|
|
1129
|
-
{{ nextMonthIcon() }}
|
|
1130
|
-
}
|
|
1131
|
-
</button>
|
|
1132
|
-
</div>
|
|
1133
|
-
|
|
1134
|
-
<div class="frame-calendar__months">
|
|
1135
|
-
@for (month of months(); track month.key) {
|
|
1136
|
-
<section class="frame-calendar__month" [attr.aria-label]="month.label">
|
|
1137
|
-
@if (numberOfMonths() > 1 || captionLayout() === 'dropdown') {
|
|
1138
|
-
<h3 class="frame-calendar__month-caption">{{ month.label }}</h3>
|
|
1139
|
-
}
|
|
1140
|
-
|
|
1141
|
-
<table class="frame-calendar__table">
|
|
1142
|
-
<thead>
|
|
1143
|
-
<tr>
|
|
1144
|
-
@if (showWeekNumber()) {
|
|
1145
|
-
<th class="frame-calendar__week-number-header" scope="col">Wk</th>
|
|
1146
|
-
}
|
|
1147
|
-
@for (weekday of weekdayLabels(); track weekday) {
|
|
1148
|
-
<th class="frame-calendar__weekday" scope="col">{{ weekday }}</th>
|
|
1149
|
-
}
|
|
1150
|
-
</tr>
|
|
1151
|
-
</thead>
|
|
1152
|
-
<tbody>
|
|
1153
|
-
@for (week of month.weeks; track week[0].key) {
|
|
1154
|
-
<tr>
|
|
1155
|
-
@if (showWeekNumber()) {
|
|
1156
|
-
<td class="frame-calendar__week-number">{{ weekNumber(week[0].date) }}</td>
|
|
1157
|
-
}
|
|
1158
|
-
@for (day of week; track day.key) {
|
|
1159
|
-
<td
|
|
1160
|
-
class="frame-calendar__cell"
|
|
1161
|
-
[attr.data-outside]="day.outside ? '' : null"
|
|
1162
|
-
[attr.data-selected]="day.selected ? '' : null"
|
|
1163
|
-
[attr.data-range-start]="day.rangeStart ? '' : null"
|
|
1164
|
-
[attr.data-range-middle]="day.rangeMiddle ? '' : null"
|
|
1165
|
-
[attr.data-range-end]="day.rangeEnd ? '' : null"
|
|
1166
|
-
[attr.data-today]="day.today ? '' : null"
|
|
1167
|
-
[attr.data-disabled-date]="day.disabledDate ? '' : null"
|
|
1168
|
-
>
|
|
1169
|
-
<button
|
|
1170
|
-
class="frame-calendar__day"
|
|
1171
|
-
type="button"
|
|
1172
|
-
[disabled]="isDisabled() || day.disabled"
|
|
1173
|
-
[attr.
|
|
1174
|
-
[attr.
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1183
|
+
template: `
|
|
1184
|
+
<div class="frame-calendar__header">
|
|
1185
|
+
<button
|
|
1186
|
+
class="frame-calendar__nav-button"
|
|
1187
|
+
type="button"
|
|
1188
|
+
[disabled]="isDisabled()"
|
|
1189
|
+
(click)="previousMonth()"
|
|
1190
|
+
[attr.aria-label]="previousMonthLabel()"
|
|
1191
|
+
>
|
|
1192
|
+
@if (previousMonthTemplate(); as template) {
|
|
1193
|
+
<ng-container [ngTemplateOutlet]="template" />
|
|
1194
|
+
} @else {
|
|
1195
|
+
{{ previousMonthIcon() }}
|
|
1196
|
+
}
|
|
1197
|
+
</button>
|
|
1198
|
+
|
|
1199
|
+
@if (captionLayout() === 'dropdown') {
|
|
1200
|
+
<div class="frame-calendar__caption-controls">
|
|
1201
|
+
<select
|
|
1202
|
+
class="frame-calendar__select"
|
|
1203
|
+
[disabled]="isDisabled()"
|
|
1204
|
+
[value]="currentMonth().getMonth()"
|
|
1205
|
+
aria-label="Month"
|
|
1206
|
+
(change)="setMonth($any($event.target).value)"
|
|
1207
|
+
>
|
|
1208
|
+
@for (month of monthOptions(); track month.value) {
|
|
1209
|
+
<option [value]="month.value" [selected]="month.value === currentMonth().getMonth()">
|
|
1210
|
+
{{ month.label }}
|
|
1211
|
+
</option>
|
|
1212
|
+
}
|
|
1213
|
+
</select>
|
|
1214
|
+
|
|
1215
|
+
<select
|
|
1216
|
+
class="frame-calendar__select"
|
|
1217
|
+
[disabled]="isDisabled()"
|
|
1218
|
+
[value]="currentMonth().getFullYear()"
|
|
1219
|
+
aria-label="Year"
|
|
1220
|
+
(change)="setYear($any($event.target).value)"
|
|
1221
|
+
>
|
|
1222
|
+
@for (year of yearOptions(); track year) {
|
|
1223
|
+
<option [value]="year" [selected]="year === currentMonth().getFullYear()">
|
|
1224
|
+
{{ year }}
|
|
1225
|
+
</option>
|
|
1226
|
+
}
|
|
1227
|
+
</select>
|
|
1228
|
+
</div>
|
|
1229
|
+
} @else {
|
|
1230
|
+
<div class="frame-calendar__caption" aria-live="polite">
|
|
1231
|
+
{{ monthLabel(currentMonth()) }}
|
|
1232
|
+
</div>
|
|
1233
|
+
}
|
|
1234
|
+
|
|
1235
|
+
<button
|
|
1236
|
+
class="frame-calendar__nav-button"
|
|
1237
|
+
type="button"
|
|
1238
|
+
[disabled]="isDisabled()"
|
|
1239
|
+
(click)="nextMonth()"
|
|
1240
|
+
[attr.aria-label]="nextMonthLabel()"
|
|
1241
|
+
>
|
|
1242
|
+
@if (nextMonthTemplate(); as template) {
|
|
1243
|
+
<ng-container [ngTemplateOutlet]="template" />
|
|
1244
|
+
} @else {
|
|
1245
|
+
{{ nextMonthIcon() }}
|
|
1246
|
+
}
|
|
1247
|
+
</button>
|
|
1248
|
+
</div>
|
|
1249
|
+
|
|
1250
|
+
<div class="frame-calendar__months">
|
|
1251
|
+
@for (month of months(); track month.key) {
|
|
1252
|
+
<section class="frame-calendar__month" [attr.aria-label]="month.label">
|
|
1253
|
+
@if (numberOfMonths() > 1 || captionLayout() === 'dropdown') {
|
|
1254
|
+
<h3 class="frame-calendar__month-caption">{{ month.label }}</h3>
|
|
1255
|
+
}
|
|
1256
|
+
|
|
1257
|
+
<table class="frame-calendar__table" role="grid" [attr.aria-readonly]="true">
|
|
1258
|
+
<thead>
|
|
1259
|
+
<tr>
|
|
1260
|
+
@if (showWeekNumber()) {
|
|
1261
|
+
<th class="frame-calendar__week-number-header" scope="col">Wk</th>
|
|
1262
|
+
}
|
|
1263
|
+
@for (weekday of weekdayLabels(); track weekday) {
|
|
1264
|
+
<th class="frame-calendar__weekday" scope="col">{{ weekday }}</th>
|
|
1265
|
+
}
|
|
1266
|
+
</tr>
|
|
1267
|
+
</thead>
|
|
1268
|
+
<tbody>
|
|
1269
|
+
@for (week of month.weeks; track week[0].key) {
|
|
1270
|
+
<tr>
|
|
1271
|
+
@if (showWeekNumber()) {
|
|
1272
|
+
<td class="frame-calendar__week-number">{{ weekNumber(week[0].date) }}</td>
|
|
1273
|
+
}
|
|
1274
|
+
@for (day of week; track day.key) {
|
|
1275
|
+
<td
|
|
1276
|
+
class="frame-calendar__cell"
|
|
1277
|
+
[attr.data-outside]="day.outside ? '' : null"
|
|
1278
|
+
[attr.data-selected]="day.selected ? '' : null"
|
|
1279
|
+
[attr.data-range-start]="day.rangeStart ? '' : null"
|
|
1280
|
+
[attr.data-range-middle]="day.rangeMiddle ? '' : null"
|
|
1281
|
+
[attr.data-range-end]="day.rangeEnd ? '' : null"
|
|
1282
|
+
[attr.data-today]="day.today ? '' : null"
|
|
1283
|
+
[attr.data-disabled-date]="day.disabledDate ? '' : null"
|
|
1284
|
+
>
|
|
1285
|
+
<button
|
|
1286
|
+
class="frame-calendar__day"
|
|
1287
|
+
type="button"
|
|
1288
|
+
[disabled]="isDisabled() || day.disabled"
|
|
1289
|
+
[attr.data-date]="day.key"
|
|
1290
|
+
[attr.tabindex]="dayTabIndex(day)"
|
|
1291
|
+
[attr.aria-label]="dayLabel(day.date)"
|
|
1292
|
+
[attr.aria-pressed]="day.selected ? 'true' : 'false'"
|
|
1293
|
+
[attr.aria-selected]="day.selected ? 'true' : 'false'"
|
|
1294
|
+
[attr.aria-current]="day.today ? 'date' : null"
|
|
1295
|
+
(click)="selectDay(day)"
|
|
1296
|
+
(focus)="focusedDate.set(day.date)"
|
|
1297
|
+
(keydown)="handleDayKeydown($event, day)"
|
|
1298
|
+
>
|
|
1299
|
+
@if (cellTemplate(); as template) {
|
|
1300
|
+
<ng-container
|
|
1301
|
+
[ngTemplateOutlet]="template"
|
|
1302
|
+
[ngTemplateOutletContext]="day"
|
|
1303
|
+
/>
|
|
1304
|
+
} @else {
|
|
1305
|
+
<span class="frame-calendar__day-number">{{ day.day }}</span>
|
|
1306
|
+
@if (day.dateLabel) {
|
|
1307
|
+
<span class="frame-calendar__day-meta">{{ day.dateLabel }}</span>
|
|
1308
|
+
}
|
|
1309
|
+
}
|
|
1310
|
+
</button>
|
|
1311
|
+
</td>
|
|
1312
|
+
}
|
|
1313
|
+
</tr>
|
|
1314
|
+
}
|
|
1315
|
+
</tbody>
|
|
1316
|
+
</table>
|
|
1317
|
+
</section>
|
|
1318
|
+
}
|
|
1319
|
+
</div>
|
|
1198
1320
|
`,
|
|
1199
1321
|
}]
|
|
1200
1322
|
}], propDecorators: { mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], captionLayout: [{ type: i0.Input, args: [{ isSignal: true, alias: "captionLayout", required: false }] }], numberOfMonths: [{ type: i0.Input, args: [{ isSignal: true, alias: "numberOfMonths", required: false }] }], firstDayOfWeek: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstDayOfWeek", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], timeZone: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeZone", required: false }] }], dir: [{ type: i0.Input, args: [{ isSignal: true, alias: "dir", required: false }] }], fromYear: [{ type: i0.Input, args: [{ isSignal: true, alias: "fromYear", required: false }] }], toYear: [{ type: i0.Input, args: [{ isSignal: true, alias: "toYear", required: false }] }], showOutsideDays: [{ type: i0.Input, args: [{ isSignal: true, alias: "showOutsideDays", required: false }] }], showWeekNumber: [{ type: i0.Input, args: [{ isSignal: true, alias: "showWeekNumber", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], disabledDates: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabledDates", required: false }] }], dateLabels: [{ type: i0.Input, args: [{ isSignal: true, alias: "dateLabels", required: false }] }], disabledMatcher: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabledMatcher", required: false }] }], cellTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "cellTemplate", required: false }] }], previousMonthTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "previousMonthTemplate", required: false }] }], nextMonthTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextMonthTemplate", required: false }] }], previousMonthIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "previousMonthIcon", required: false }] }], nextMonthIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextMonthIcon", required: false }] }], previousMonthLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "previousMonthLabel", required: false }] }], nextMonthLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextMonthLabel", required: false }] }], month: [{ type: i0.Input, args: [{ isSignal: true, alias: "month", required: false }] }], selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], selectedChange: [{ type: i0.Output, args: ["selectedChange"] }], monthChange: [{ type: i0.Output, args: ["monthChange"] }] } });
|
|
@@ -2902,7 +3024,7 @@ class FrCommandService {
|
|
|
2902
3024
|
withDefaultClasses(config) {
|
|
2903
3025
|
return {
|
|
2904
3026
|
ariaModal: true,
|
|
2905
|
-
autoFocus: '
|
|
3027
|
+
autoFocus: '[frCommandInput]',
|
|
2906
3028
|
restoreFocus: true,
|
|
2907
3029
|
width: 'min(calc(100vw - 2rem), 48rem)',
|
|
2908
3030
|
maxWidth: 'calc(100vw - 2rem)',
|
|
@@ -2930,6 +3052,20 @@ function mergeClassList$2(classList, defaultClass) {
|
|
|
2930
3052
|
return Array.from(new Set([defaultClass, ...classes].filter(Boolean)));
|
|
2931
3053
|
}
|
|
2932
3054
|
|
|
3055
|
+
class FrCommandFooter {
|
|
3056
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrCommandFooter, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
3057
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrCommandFooter, isStandalone: true, selector: "[frCommandFooter]", host: { classAttribute: "frame-command__footer" }, ngImport: i0 });
|
|
3058
|
+
}
|
|
3059
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrCommandFooter, decorators: [{
|
|
3060
|
+
type: Directive,
|
|
3061
|
+
args: [{
|
|
3062
|
+
selector: '[frCommandFooter]',
|
|
3063
|
+
host: {
|
|
3064
|
+
class: 'frame-command__footer',
|
|
3065
|
+
},
|
|
3066
|
+
}]
|
|
3067
|
+
}] });
|
|
3068
|
+
|
|
2933
3069
|
const FR_COMMAND = new InjectionToken('FrCommand');
|
|
2934
3070
|
const FR_COMMAND_GROUP = new InjectionToken('FrCommandGroup');
|
|
2935
3071
|
|
|
@@ -3923,6 +4059,7 @@ class FrDatePicker extends FrControlValueAccessor$1 {
|
|
|
3923
4059
|
valueChange = output();
|
|
3924
4060
|
openChange = output();
|
|
3925
4061
|
monthChange = output();
|
|
4062
|
+
calendar = viewChild(FrCalendar$1, ...(ngDevMode ? [{ debugName: "calendar" }] : /* istanbul ignore next */ []));
|
|
3926
4063
|
positions = POSITIONS;
|
|
3927
4064
|
isOpen = signal(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
|
|
3928
4065
|
overlaySide = signal('bottom', ...(ngDevMode ? [{ debugName: "overlaySide" }] : /* istanbul ignore next */ []));
|
|
@@ -4023,6 +4160,9 @@ class FrDatePicker extends FrControlValueAccessor$1 {
|
|
|
4023
4160
|
handlePositionChange(event) {
|
|
4024
4161
|
this.overlaySide.set(event.connectionPair.overlayY === 'bottom' ? 'top' : 'bottom');
|
|
4025
4162
|
}
|
|
4163
|
+
focusCalendar() {
|
|
4164
|
+
this.calendar()?.focusActiveDate();
|
|
4165
|
+
}
|
|
4026
4166
|
overlayPanelClasses() {
|
|
4027
4167
|
return ['frame-date-picker-overlay', `frame-date-picker-overlay--${this.overlaySide()}`];
|
|
4028
4168
|
}
|
|
@@ -4038,118 +4178,119 @@ class FrDatePicker extends FrControlValueAccessor$1 {
|
|
|
4038
4178
|
this.markAsTouched();
|
|
4039
4179
|
}
|
|
4040
4180
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrDatePicker, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4041
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.16", type: FrDatePicker, isStandalone: true, selector: "frame-date-picker", inputs: { mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, captionLayout: { classPropertyName: "captionLayout", publicName: "captionLayout", isSignal: true, isRequired: false, transformFunction: null }, numberOfMonths: { classPropertyName: "numberOfMonths", publicName: "numberOfMonths", isSignal: true, isRequired: false, transformFunction: null }, firstDayOfWeek: { classPropertyName: "firstDayOfWeek", publicName: "firstDayOfWeek", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, timeZone: { classPropertyName: "timeZone", publicName: "timeZone", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: "dir", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, fromYear: { classPropertyName: "fromYear", publicName: "fromYear", isSignal: true, isRequired: false, transformFunction: null }, toYear: { classPropertyName: "toYear", publicName: "toYear", isSignal: true, isRequired: false, transformFunction: null }, showOutsideDays: { classPropertyName: "showOutsideDays", publicName: "showOutsideDays", isSignal: true, isRequired: false, transformFunction: null }, showWeekNumber: { classPropertyName: "showWeekNumber", publicName: "showWeekNumber", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalidInput: { classPropertyName: "invalidInput", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, editable: { classPropertyName: "editable", publicName: "editable", isSignal: true, isRequired: false, transformFunction: null }, readonlyInput: { classPropertyName: "readonlyInput", publicName: "readonlyInput", isSignal: true, isRequired: false, transformFunction: null }, closeOnSelect: { classPropertyName: "closeOnSelect", publicName: "closeOnSelect", isSignal: true, isRequired: false, transformFunction: null }, debugVisible: { classPropertyName: "debugVisible", publicName: "debugVisible", isSignal: true, isRequired: false, transformFunction: null }, showTime: { classPropertyName: "showTime", publicName: "showTime", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, dialogLabel: { classPropertyName: "dialogLabel", publicName: "dialogLabel", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, disabledDates: { classPropertyName: "disabledDates", publicName: "disabledDates", isSignal: true, isRequired: false, transformFunction: null }, dateLabels: { classPropertyName: "dateLabels", publicName: "dateLabels", isSignal: true, isRequired: false, transformFunction: null }, disabledMatcher: { classPropertyName: "disabledMatcher", publicName: "disabledMatcher", isSignal: true, isRequired: false, transformFunction: null }, cellTemplate: { classPropertyName: "cellTemplate", publicName: "cellTemplate", isSignal: true, isRequired: false, transformFunction: null }, previousMonthTemplate: { classPropertyName: "previousMonthTemplate", publicName: "previousMonthTemplate", isSignal: true, isRequired: false, transformFunction: null }, nextMonthTemplate: { classPropertyName: "nextMonthTemplate", publicName: "nextMonthTemplate", isSignal: true, isRequired: false, transformFunction: null }, previousMonthIcon: { classPropertyName: "previousMonthIcon", publicName: "previousMonthIcon", isSignal: true, isRequired: false, transformFunction: null }, nextMonthIcon: { classPropertyName: "nextMonthIcon", publicName: "nextMonthIcon", isSignal: true, isRequired: false, transformFunction: null }, previousMonthLabel: { classPropertyName: "previousMonthLabel", publicName: "previousMonthLabel", isSignal: true, isRequired: false, transformFunction: null }, nextMonthLabel: { classPropertyName: "nextMonthLabel", publicName: "nextMonthLabel", isSignal: true, isRequired: false, transformFunction: null }, headerTemplate: { classPropertyName: "headerTemplate", publicName: "headerTemplate", isSignal: true, isRequired: false, transformFunction: null }, footerTemplate: { classPropertyName: "footerTemplate", publicName: "footerTemplate", isSignal: true, isRequired: false, transformFunction: null }, month: { classPropertyName: "month", publicName: "month", isSignal: true, isRequired: false, transformFunction: null }, presets: { classPropertyName: "presets", publicName: "presets", isSignal: true, isRequired: false, transformFunction: null }, formatter: { classPropertyName: "formatter", publicName: "formatter", isSignal: true, isRequired: false, transformFunction: null }, parser: { classPropertyName: "parser", publicName: "parser", isSignal: true, isRequired: false, transformFunction: null }, timeLabel: { classPropertyName: "timeLabel", publicName: "timeLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", openChange: "openChange", monthChange: "monthChange" }, host: { properties: { "attr.data-open": "isOpen() ? \"\" : null", "attr.data-disabled": "disabled() ? \"\" : null", "attr.data-invalid": "invalid() ? \"\" : null", "attr.data-mode": "mode()", "attr.dir": "dir()" }, classAttribute: "frame-date-picker" }, providers: [provideDsValueAccessor$1(FrDatePicker)], exportAs: ["frDatePicker"], usesInheritance: true, ngImport: i0, template: `
|
|
4042
|
-
<span cdkOverlayOrigin #origin="cdkOverlayOrigin" class="frame-date-picker__anchor">
|
|
4043
|
-
@if (editable()) {
|
|
4044
|
-
<span class="frame-date-picker__input-wrap">
|
|
4045
|
-
<span class="frame-date-picker__icon" aria-hidden="true">{{ icon() }}</span>
|
|
4046
|
-
<input
|
|
4047
|
-
class="frame-date-picker__input"
|
|
4048
|
-
type="text"
|
|
4049
|
-
[disabled]="disabled()"
|
|
4050
|
-
[readOnly]="readonlyInput()"
|
|
4051
|
-
[placeholder]="placeholder()"
|
|
4052
|
-
[value]="inputValue()"
|
|
4053
|
-
[attr.aria-expanded]="isOpen()"
|
|
4054
|
-
[attr.aria-invalid]="invalid() ? 'true' : null"
|
|
4055
|
-
aria-haspopup="dialog"
|
|
4056
|
-
(focus)="open()"
|
|
4057
|
-
(click)="open()"
|
|
4058
|
-
(input)="handleInput($any($event.target).value)"
|
|
4059
|
-
(change)="commitInput($any($event.target).value)"
|
|
4060
|
-
(keydown)="handleTriggerKeydown($event)"
|
|
4061
|
-
(blur)="markAsTouched()"
|
|
4062
|
-
/>
|
|
4063
|
-
</span>
|
|
4064
|
-
} @else {
|
|
4065
|
-
<button
|
|
4066
|
-
class="frame-date-picker__trigger"
|
|
4067
|
-
type="button"
|
|
4068
|
-
[disabled]="disabled()"
|
|
4069
|
-
[attr.aria-expanded]="isOpen()"
|
|
4070
|
-
[attr.aria-invalid]="invalid() ? 'true' : null"
|
|
4071
|
-
aria-haspopup="dialog"
|
|
4072
|
-
(click)="toggle()"
|
|
4073
|
-
(keydown)="handleTriggerKeydown($event)"
|
|
4074
|
-
>
|
|
4075
|
-
<span class="frame-date-picker__icon" aria-hidden="true">{{ icon() }}</span>
|
|
4076
|
-
<span class="frame-date-picker__trigger-label" [attr.data-placeholder]="hasValue() ? null : ''">
|
|
4077
|
-
{{ displayValue() || placeholder() }}
|
|
4078
|
-
</span>
|
|
4079
|
-
</button>
|
|
4080
|
-
}
|
|
4081
|
-
</span>
|
|
4082
|
-
|
|
4083
|
-
<ng-template
|
|
4084
|
-
cdkConnectedOverlay
|
|
4085
|
-
[cdkConnectedOverlayOrigin]="origin"
|
|
4086
|
-
[cdkConnectedOverlayOpen]="isOpen()"
|
|
4087
|
-
[cdkConnectedOverlayPositions]="positions"
|
|
4088
|
-
[cdkConnectedOverlayPanelClass]="overlayPanelClasses()"
|
|
4089
|
-
[cdkConnectedOverlayPush]="true"
|
|
4090
|
-
[cdkConnectedOverlayViewportMargin]="12"
|
|
4091
|
-
(overlayOutsideClick)="close()"
|
|
4092
|
-
(
|
|
4093
|
-
(
|
|
4094
|
-
|
|
4095
|
-
|
|
4096
|
-
|
|
4097
|
-
|
|
4098
|
-
|
|
4099
|
-
|
|
4100
|
-
|
|
4101
|
-
|
|
4102
|
-
|
|
4103
|
-
|
|
4104
|
-
|
|
4105
|
-
|
|
4106
|
-
|
|
4107
|
-
|
|
4108
|
-
|
|
4109
|
-
|
|
4110
|
-
[
|
|
4111
|
-
[
|
|
4112
|
-
[
|
|
4113
|
-
[
|
|
4114
|
-
[
|
|
4115
|
-
[
|
|
4116
|
-
[
|
|
4117
|
-
[
|
|
4118
|
-
[
|
|
4119
|
-
[
|
|
4120
|
-
[
|
|
4121
|
-
[
|
|
4122
|
-
[
|
|
4123
|
-
[
|
|
4124
|
-
[
|
|
4125
|
-
[
|
|
4126
|
-
[
|
|
4127
|
-
[
|
|
4128
|
-
[
|
|
4129
|
-
[
|
|
4130
|
-
[
|
|
4131
|
-
[
|
|
4132
|
-
[
|
|
4133
|
-
|
|
4134
|
-
(
|
|
4135
|
-
|
|
4136
|
-
|
|
4137
|
-
|
|
4138
|
-
|
|
4139
|
-
|
|
4140
|
-
<
|
|
4141
|
-
|
|
4142
|
-
|
|
4143
|
-
|
|
4144
|
-
[
|
|
4145
|
-
|
|
4146
|
-
|
|
4147
|
-
|
|
4148
|
-
|
|
4149
|
-
|
|
4150
|
-
|
|
4151
|
-
|
|
4152
|
-
|
|
4181
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.16", type: FrDatePicker, isStandalone: true, selector: "frame-date-picker", inputs: { mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, captionLayout: { classPropertyName: "captionLayout", publicName: "captionLayout", isSignal: true, isRequired: false, transformFunction: null }, numberOfMonths: { classPropertyName: "numberOfMonths", publicName: "numberOfMonths", isSignal: true, isRequired: false, transformFunction: null }, firstDayOfWeek: { classPropertyName: "firstDayOfWeek", publicName: "firstDayOfWeek", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, timeZone: { classPropertyName: "timeZone", publicName: "timeZone", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: "dir", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, fromYear: { classPropertyName: "fromYear", publicName: "fromYear", isSignal: true, isRequired: false, transformFunction: null }, toYear: { classPropertyName: "toYear", publicName: "toYear", isSignal: true, isRequired: false, transformFunction: null }, showOutsideDays: { classPropertyName: "showOutsideDays", publicName: "showOutsideDays", isSignal: true, isRequired: false, transformFunction: null }, showWeekNumber: { classPropertyName: "showWeekNumber", publicName: "showWeekNumber", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalidInput: { classPropertyName: "invalidInput", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, editable: { classPropertyName: "editable", publicName: "editable", isSignal: true, isRequired: false, transformFunction: null }, readonlyInput: { classPropertyName: "readonlyInput", publicName: "readonlyInput", isSignal: true, isRequired: false, transformFunction: null }, closeOnSelect: { classPropertyName: "closeOnSelect", publicName: "closeOnSelect", isSignal: true, isRequired: false, transformFunction: null }, debugVisible: { classPropertyName: "debugVisible", publicName: "debugVisible", isSignal: true, isRequired: false, transformFunction: null }, showTime: { classPropertyName: "showTime", publicName: "showTime", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, dialogLabel: { classPropertyName: "dialogLabel", publicName: "dialogLabel", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, disabledDates: { classPropertyName: "disabledDates", publicName: "disabledDates", isSignal: true, isRequired: false, transformFunction: null }, dateLabels: { classPropertyName: "dateLabels", publicName: "dateLabels", isSignal: true, isRequired: false, transformFunction: null }, disabledMatcher: { classPropertyName: "disabledMatcher", publicName: "disabledMatcher", isSignal: true, isRequired: false, transformFunction: null }, cellTemplate: { classPropertyName: "cellTemplate", publicName: "cellTemplate", isSignal: true, isRequired: false, transformFunction: null }, previousMonthTemplate: { classPropertyName: "previousMonthTemplate", publicName: "previousMonthTemplate", isSignal: true, isRequired: false, transformFunction: null }, nextMonthTemplate: { classPropertyName: "nextMonthTemplate", publicName: "nextMonthTemplate", isSignal: true, isRequired: false, transformFunction: null }, previousMonthIcon: { classPropertyName: "previousMonthIcon", publicName: "previousMonthIcon", isSignal: true, isRequired: false, transformFunction: null }, nextMonthIcon: { classPropertyName: "nextMonthIcon", publicName: "nextMonthIcon", isSignal: true, isRequired: false, transformFunction: null }, previousMonthLabel: { classPropertyName: "previousMonthLabel", publicName: "previousMonthLabel", isSignal: true, isRequired: false, transformFunction: null }, nextMonthLabel: { classPropertyName: "nextMonthLabel", publicName: "nextMonthLabel", isSignal: true, isRequired: false, transformFunction: null }, headerTemplate: { classPropertyName: "headerTemplate", publicName: "headerTemplate", isSignal: true, isRequired: false, transformFunction: null }, footerTemplate: { classPropertyName: "footerTemplate", publicName: "footerTemplate", isSignal: true, isRequired: false, transformFunction: null }, month: { classPropertyName: "month", publicName: "month", isSignal: true, isRequired: false, transformFunction: null }, presets: { classPropertyName: "presets", publicName: "presets", isSignal: true, isRequired: false, transformFunction: null }, formatter: { classPropertyName: "formatter", publicName: "formatter", isSignal: true, isRequired: false, transformFunction: null }, parser: { classPropertyName: "parser", publicName: "parser", isSignal: true, isRequired: false, transformFunction: null }, timeLabel: { classPropertyName: "timeLabel", publicName: "timeLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", openChange: "openChange", monthChange: "monthChange" }, host: { properties: { "attr.data-open": "isOpen() ? \"\" : null", "attr.data-disabled": "disabled() ? \"\" : null", "attr.data-invalid": "invalid() ? \"\" : null", "attr.data-mode": "mode()", "attr.dir": "dir()" }, classAttribute: "frame-date-picker" }, providers: [provideDsValueAccessor$1(FrDatePicker)], viewQueries: [{ propertyName: "calendar", first: true, predicate: FrCalendar$1, descendants: true, isSignal: true }], exportAs: ["frDatePicker"], usesInheritance: true, ngImport: i0, template: `
|
|
4182
|
+
<span cdkOverlayOrigin #origin="cdkOverlayOrigin" class="frame-date-picker__anchor">
|
|
4183
|
+
@if (editable()) {
|
|
4184
|
+
<span class="frame-date-picker__input-wrap">
|
|
4185
|
+
<span class="frame-date-picker__icon" aria-hidden="true">{{ icon() }}</span>
|
|
4186
|
+
<input
|
|
4187
|
+
class="frame-date-picker__input"
|
|
4188
|
+
type="text"
|
|
4189
|
+
[disabled]="disabled()"
|
|
4190
|
+
[readOnly]="readonlyInput()"
|
|
4191
|
+
[placeholder]="placeholder()"
|
|
4192
|
+
[value]="inputValue()"
|
|
4193
|
+
[attr.aria-expanded]="isOpen()"
|
|
4194
|
+
[attr.aria-invalid]="invalid() ? 'true' : null"
|
|
4195
|
+
aria-haspopup="dialog"
|
|
4196
|
+
(focus)="open()"
|
|
4197
|
+
(click)="open()"
|
|
4198
|
+
(input)="handleInput($any($event.target).value)"
|
|
4199
|
+
(change)="commitInput($any($event.target).value)"
|
|
4200
|
+
(keydown)="handleTriggerKeydown($event)"
|
|
4201
|
+
(blur)="markAsTouched()"
|
|
4202
|
+
/>
|
|
4203
|
+
</span>
|
|
4204
|
+
} @else {
|
|
4205
|
+
<button
|
|
4206
|
+
class="frame-date-picker__trigger"
|
|
4207
|
+
type="button"
|
|
4208
|
+
[disabled]="disabled()"
|
|
4209
|
+
[attr.aria-expanded]="isOpen()"
|
|
4210
|
+
[attr.aria-invalid]="invalid() ? 'true' : null"
|
|
4211
|
+
aria-haspopup="dialog"
|
|
4212
|
+
(click)="toggle()"
|
|
4213
|
+
(keydown)="handleTriggerKeydown($event)"
|
|
4214
|
+
>
|
|
4215
|
+
<span class="frame-date-picker__icon" aria-hidden="true">{{ icon() }}</span>
|
|
4216
|
+
<span class="frame-date-picker__trigger-label" [attr.data-placeholder]="hasValue() ? null : ''">
|
|
4217
|
+
{{ displayValue() || placeholder() }}
|
|
4218
|
+
</span>
|
|
4219
|
+
</button>
|
|
4220
|
+
}
|
|
4221
|
+
</span>
|
|
4222
|
+
|
|
4223
|
+
<ng-template
|
|
4224
|
+
cdkConnectedOverlay
|
|
4225
|
+
[cdkConnectedOverlayOrigin]="origin"
|
|
4226
|
+
[cdkConnectedOverlayOpen]="isOpen()"
|
|
4227
|
+
[cdkConnectedOverlayPositions]="positions"
|
|
4228
|
+
[cdkConnectedOverlayPanelClass]="overlayPanelClasses()"
|
|
4229
|
+
[cdkConnectedOverlayPush]="true"
|
|
4230
|
+
[cdkConnectedOverlayViewportMargin]="12"
|
|
4231
|
+
(overlayOutsideClick)="close()"
|
|
4232
|
+
(attach)="focusCalendar()"
|
|
4233
|
+
(detach)="close()"
|
|
4234
|
+
(positionChange)="handlePositionChange($event)"
|
|
4235
|
+
>
|
|
4236
|
+
<div class="frame-date-picker__content" role="dialog" [attr.aria-label]="dialogLabel()">
|
|
4237
|
+
@if (presets().length) {
|
|
4238
|
+
<div class="frame-date-picker__presets" aria-label="Date presets">
|
|
4239
|
+
@for (preset of presets(); track preset.label) {
|
|
4240
|
+
<button class="frame-date-picker__preset" type="button" (click)="selectPreset(preset)">
|
|
4241
|
+
{{ preset.label }}
|
|
4242
|
+
</button>
|
|
4243
|
+
}
|
|
4244
|
+
</div>
|
|
4245
|
+
}
|
|
4246
|
+
|
|
4247
|
+
<ng-container [ngTemplateOutlet]="headerTemplate() ?? null" />
|
|
4248
|
+
|
|
4249
|
+
<frame-calendar
|
|
4250
|
+
[mode]="mode()"
|
|
4251
|
+
[captionLayout]="captionLayout()"
|
|
4252
|
+
[numberOfMonths]="numberOfMonths()"
|
|
4253
|
+
[firstDayOfWeek]="firstDayOfWeek()"
|
|
4254
|
+
[locale]="locale()"
|
|
4255
|
+
[timeZone]="timeZone()"
|
|
4256
|
+
[dir]="dir()"
|
|
4257
|
+
[fromYear]="fromYear()"
|
|
4258
|
+
[toYear]="toYear()"
|
|
4259
|
+
[showOutsideDays]="showOutsideDays()"
|
|
4260
|
+
[showWeekNumber]="showWeekNumber()"
|
|
4261
|
+
[disabled]="disabled()"
|
|
4262
|
+
[disabledDates]="disabledDates()"
|
|
4263
|
+
[dateLabels]="dateLabels()"
|
|
4264
|
+
[disabledMatcher]="disabledMatcher()"
|
|
4265
|
+
[cellTemplate]="cellTemplate()"
|
|
4266
|
+
[previousMonthTemplate]="previousMonthTemplate()"
|
|
4267
|
+
[nextMonthTemplate]="nextMonthTemplate()"
|
|
4268
|
+
[previousMonthIcon]="previousMonthIcon()"
|
|
4269
|
+
[nextMonthIcon]="nextMonthIcon()"
|
|
4270
|
+
[previousMonthLabel]="previousMonthLabel()"
|
|
4271
|
+
[nextMonthLabel]="nextMonthLabel()"
|
|
4272
|
+
[month]="month()"
|
|
4273
|
+
[selected]="calendarValue()"
|
|
4274
|
+
(selectedChange)="selectCalendarValue($any($event))"
|
|
4275
|
+
(monthChange)="monthChange.emit($event)"
|
|
4276
|
+
/>
|
|
4277
|
+
|
|
4278
|
+
@if (showTime() && mode() === 'single') {
|
|
4279
|
+
<label class="frame-date-picker__time">
|
|
4280
|
+
<span class="frame-date-picker__time-label">{{ timeLabel() }}</span>
|
|
4281
|
+
<input
|
|
4282
|
+
class="frame-date-picker__time-input"
|
|
4283
|
+
type="time"
|
|
4284
|
+
[disabled]="disabled() || !singleDate()"
|
|
4285
|
+
[value]="timeValue()"
|
|
4286
|
+
(change)="setTime($any($event.target).value)"
|
|
4287
|
+
/>
|
|
4288
|
+
</label>
|
|
4289
|
+
}
|
|
4290
|
+
|
|
4291
|
+
<ng-container [ngTemplateOutlet]="footerTemplate() ?? null" />
|
|
4292
|
+
</div>
|
|
4293
|
+
</ng-template>
|
|
4153
4294
|
`, isInline: true, dependencies: [{ kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: FrCalendar$1, selector: "frame-calendar", inputs: ["mode", "captionLayout", "numberOfMonths", "firstDayOfWeek", "locale", "timeZone", "dir", "fromYear", "toYear", "showOutsideDays", "showWeekNumber", "disabled", "disabledDates", "dateLabels", "disabledMatcher", "cellTemplate", "previousMonthTemplate", "nextMonthTemplate", "previousMonthIcon", "nextMonthIcon", "previousMonthLabel", "nextMonthLabel", "month", "selected"], outputs: ["selectedChange", "monthChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4154
4295
|
}
|
|
4155
4296
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrDatePicker, decorators: [{
|
|
@@ -4168,121 +4309,122 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
4168
4309
|
'[attr.data-mode]': 'mode()',
|
|
4169
4310
|
'[attr.dir]': 'dir()',
|
|
4170
4311
|
},
|
|
4171
|
-
template: `
|
|
4172
|
-
<span cdkOverlayOrigin #origin="cdkOverlayOrigin" class="frame-date-picker__anchor">
|
|
4173
|
-
@if (editable()) {
|
|
4174
|
-
<span class="frame-date-picker__input-wrap">
|
|
4175
|
-
<span class="frame-date-picker__icon" aria-hidden="true">{{ icon() }}</span>
|
|
4176
|
-
<input
|
|
4177
|
-
class="frame-date-picker__input"
|
|
4178
|
-
type="text"
|
|
4179
|
-
[disabled]="disabled()"
|
|
4180
|
-
[readOnly]="readonlyInput()"
|
|
4181
|
-
[placeholder]="placeholder()"
|
|
4182
|
-
[value]="inputValue()"
|
|
4183
|
-
[attr.aria-expanded]="isOpen()"
|
|
4184
|
-
[attr.aria-invalid]="invalid() ? 'true' : null"
|
|
4185
|
-
aria-haspopup="dialog"
|
|
4186
|
-
(focus)="open()"
|
|
4187
|
-
(click)="open()"
|
|
4188
|
-
(input)="handleInput($any($event.target).value)"
|
|
4189
|
-
(change)="commitInput($any($event.target).value)"
|
|
4190
|
-
(keydown)="handleTriggerKeydown($event)"
|
|
4191
|
-
(blur)="markAsTouched()"
|
|
4192
|
-
/>
|
|
4193
|
-
</span>
|
|
4194
|
-
} @else {
|
|
4195
|
-
<button
|
|
4196
|
-
class="frame-date-picker__trigger"
|
|
4197
|
-
type="button"
|
|
4198
|
-
[disabled]="disabled()"
|
|
4199
|
-
[attr.aria-expanded]="isOpen()"
|
|
4200
|
-
[attr.aria-invalid]="invalid() ? 'true' : null"
|
|
4201
|
-
aria-haspopup="dialog"
|
|
4202
|
-
(click)="toggle()"
|
|
4203
|
-
(keydown)="handleTriggerKeydown($event)"
|
|
4204
|
-
>
|
|
4205
|
-
<span class="frame-date-picker__icon" aria-hidden="true">{{ icon() }}</span>
|
|
4206
|
-
<span class="frame-date-picker__trigger-label" [attr.data-placeholder]="hasValue() ? null : ''">
|
|
4207
|
-
{{ displayValue() || placeholder() }}
|
|
4208
|
-
</span>
|
|
4209
|
-
</button>
|
|
4210
|
-
}
|
|
4211
|
-
</span>
|
|
4212
|
-
|
|
4213
|
-
<ng-template
|
|
4214
|
-
cdkConnectedOverlay
|
|
4215
|
-
[cdkConnectedOverlayOrigin]="origin"
|
|
4216
|
-
[cdkConnectedOverlayOpen]="isOpen()"
|
|
4217
|
-
[cdkConnectedOverlayPositions]="positions"
|
|
4218
|
-
[cdkConnectedOverlayPanelClass]="overlayPanelClasses()"
|
|
4219
|
-
[cdkConnectedOverlayPush]="true"
|
|
4220
|
-
[cdkConnectedOverlayViewportMargin]="12"
|
|
4221
|
-
(overlayOutsideClick)="close()"
|
|
4222
|
-
(
|
|
4223
|
-
(
|
|
4224
|
-
|
|
4225
|
-
|
|
4226
|
-
|
|
4227
|
-
|
|
4228
|
-
|
|
4229
|
-
|
|
4230
|
-
|
|
4231
|
-
|
|
4232
|
-
|
|
4233
|
-
|
|
4234
|
-
|
|
4235
|
-
|
|
4236
|
-
|
|
4237
|
-
|
|
4238
|
-
|
|
4239
|
-
|
|
4240
|
-
[
|
|
4241
|
-
[
|
|
4242
|
-
[
|
|
4243
|
-
[
|
|
4244
|
-
[
|
|
4245
|
-
[
|
|
4246
|
-
[
|
|
4247
|
-
[
|
|
4248
|
-
[
|
|
4249
|
-
[
|
|
4250
|
-
[
|
|
4251
|
-
[
|
|
4252
|
-
[
|
|
4253
|
-
[
|
|
4254
|
-
[
|
|
4255
|
-
[
|
|
4256
|
-
[
|
|
4257
|
-
[
|
|
4258
|
-
[
|
|
4259
|
-
[
|
|
4260
|
-
[
|
|
4261
|
-
[
|
|
4262
|
-
[
|
|
4263
|
-
|
|
4264
|
-
(
|
|
4265
|
-
|
|
4266
|
-
|
|
4267
|
-
|
|
4268
|
-
|
|
4269
|
-
|
|
4270
|
-
<
|
|
4271
|
-
|
|
4272
|
-
|
|
4273
|
-
|
|
4274
|
-
[
|
|
4275
|
-
|
|
4276
|
-
|
|
4277
|
-
|
|
4278
|
-
|
|
4279
|
-
|
|
4280
|
-
|
|
4281
|
-
|
|
4282
|
-
|
|
4312
|
+
template: `
|
|
4313
|
+
<span cdkOverlayOrigin #origin="cdkOverlayOrigin" class="frame-date-picker__anchor">
|
|
4314
|
+
@if (editable()) {
|
|
4315
|
+
<span class="frame-date-picker__input-wrap">
|
|
4316
|
+
<span class="frame-date-picker__icon" aria-hidden="true">{{ icon() }}</span>
|
|
4317
|
+
<input
|
|
4318
|
+
class="frame-date-picker__input"
|
|
4319
|
+
type="text"
|
|
4320
|
+
[disabled]="disabled()"
|
|
4321
|
+
[readOnly]="readonlyInput()"
|
|
4322
|
+
[placeholder]="placeholder()"
|
|
4323
|
+
[value]="inputValue()"
|
|
4324
|
+
[attr.aria-expanded]="isOpen()"
|
|
4325
|
+
[attr.aria-invalid]="invalid() ? 'true' : null"
|
|
4326
|
+
aria-haspopup="dialog"
|
|
4327
|
+
(focus)="open()"
|
|
4328
|
+
(click)="open()"
|
|
4329
|
+
(input)="handleInput($any($event.target).value)"
|
|
4330
|
+
(change)="commitInput($any($event.target).value)"
|
|
4331
|
+
(keydown)="handleTriggerKeydown($event)"
|
|
4332
|
+
(blur)="markAsTouched()"
|
|
4333
|
+
/>
|
|
4334
|
+
</span>
|
|
4335
|
+
} @else {
|
|
4336
|
+
<button
|
|
4337
|
+
class="frame-date-picker__trigger"
|
|
4338
|
+
type="button"
|
|
4339
|
+
[disabled]="disabled()"
|
|
4340
|
+
[attr.aria-expanded]="isOpen()"
|
|
4341
|
+
[attr.aria-invalid]="invalid() ? 'true' : null"
|
|
4342
|
+
aria-haspopup="dialog"
|
|
4343
|
+
(click)="toggle()"
|
|
4344
|
+
(keydown)="handleTriggerKeydown($event)"
|
|
4345
|
+
>
|
|
4346
|
+
<span class="frame-date-picker__icon" aria-hidden="true">{{ icon() }}</span>
|
|
4347
|
+
<span class="frame-date-picker__trigger-label" [attr.data-placeholder]="hasValue() ? null : ''">
|
|
4348
|
+
{{ displayValue() || placeholder() }}
|
|
4349
|
+
</span>
|
|
4350
|
+
</button>
|
|
4351
|
+
}
|
|
4352
|
+
</span>
|
|
4353
|
+
|
|
4354
|
+
<ng-template
|
|
4355
|
+
cdkConnectedOverlay
|
|
4356
|
+
[cdkConnectedOverlayOrigin]="origin"
|
|
4357
|
+
[cdkConnectedOverlayOpen]="isOpen()"
|
|
4358
|
+
[cdkConnectedOverlayPositions]="positions"
|
|
4359
|
+
[cdkConnectedOverlayPanelClass]="overlayPanelClasses()"
|
|
4360
|
+
[cdkConnectedOverlayPush]="true"
|
|
4361
|
+
[cdkConnectedOverlayViewportMargin]="12"
|
|
4362
|
+
(overlayOutsideClick)="close()"
|
|
4363
|
+
(attach)="focusCalendar()"
|
|
4364
|
+
(detach)="close()"
|
|
4365
|
+
(positionChange)="handlePositionChange($event)"
|
|
4366
|
+
>
|
|
4367
|
+
<div class="frame-date-picker__content" role="dialog" [attr.aria-label]="dialogLabel()">
|
|
4368
|
+
@if (presets().length) {
|
|
4369
|
+
<div class="frame-date-picker__presets" aria-label="Date presets">
|
|
4370
|
+
@for (preset of presets(); track preset.label) {
|
|
4371
|
+
<button class="frame-date-picker__preset" type="button" (click)="selectPreset(preset)">
|
|
4372
|
+
{{ preset.label }}
|
|
4373
|
+
</button>
|
|
4374
|
+
}
|
|
4375
|
+
</div>
|
|
4376
|
+
}
|
|
4377
|
+
|
|
4378
|
+
<ng-container [ngTemplateOutlet]="headerTemplate() ?? null" />
|
|
4379
|
+
|
|
4380
|
+
<frame-calendar
|
|
4381
|
+
[mode]="mode()"
|
|
4382
|
+
[captionLayout]="captionLayout()"
|
|
4383
|
+
[numberOfMonths]="numberOfMonths()"
|
|
4384
|
+
[firstDayOfWeek]="firstDayOfWeek()"
|
|
4385
|
+
[locale]="locale()"
|
|
4386
|
+
[timeZone]="timeZone()"
|
|
4387
|
+
[dir]="dir()"
|
|
4388
|
+
[fromYear]="fromYear()"
|
|
4389
|
+
[toYear]="toYear()"
|
|
4390
|
+
[showOutsideDays]="showOutsideDays()"
|
|
4391
|
+
[showWeekNumber]="showWeekNumber()"
|
|
4392
|
+
[disabled]="disabled()"
|
|
4393
|
+
[disabledDates]="disabledDates()"
|
|
4394
|
+
[dateLabels]="dateLabels()"
|
|
4395
|
+
[disabledMatcher]="disabledMatcher()"
|
|
4396
|
+
[cellTemplate]="cellTemplate()"
|
|
4397
|
+
[previousMonthTemplate]="previousMonthTemplate()"
|
|
4398
|
+
[nextMonthTemplate]="nextMonthTemplate()"
|
|
4399
|
+
[previousMonthIcon]="previousMonthIcon()"
|
|
4400
|
+
[nextMonthIcon]="nextMonthIcon()"
|
|
4401
|
+
[previousMonthLabel]="previousMonthLabel()"
|
|
4402
|
+
[nextMonthLabel]="nextMonthLabel()"
|
|
4403
|
+
[month]="month()"
|
|
4404
|
+
[selected]="calendarValue()"
|
|
4405
|
+
(selectedChange)="selectCalendarValue($any($event))"
|
|
4406
|
+
(monthChange)="monthChange.emit($event)"
|
|
4407
|
+
/>
|
|
4408
|
+
|
|
4409
|
+
@if (showTime() && mode() === 'single') {
|
|
4410
|
+
<label class="frame-date-picker__time">
|
|
4411
|
+
<span class="frame-date-picker__time-label">{{ timeLabel() }}</span>
|
|
4412
|
+
<input
|
|
4413
|
+
class="frame-date-picker__time-input"
|
|
4414
|
+
type="time"
|
|
4415
|
+
[disabled]="disabled() || !singleDate()"
|
|
4416
|
+
[value]="timeValue()"
|
|
4417
|
+
(change)="setTime($any($event.target).value)"
|
|
4418
|
+
/>
|
|
4419
|
+
</label>
|
|
4420
|
+
}
|
|
4421
|
+
|
|
4422
|
+
<ng-container [ngTemplateOutlet]="footerTemplate() ?? null" />
|
|
4423
|
+
</div>
|
|
4424
|
+
</ng-template>
|
|
4283
4425
|
`,
|
|
4284
4426
|
}]
|
|
4285
|
-
}], ctorParameters: () => [], propDecorators: { mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], captionLayout: [{ type: i0.Input, args: [{ isSignal: true, alias: "captionLayout", required: false }] }], numberOfMonths: [{ type: i0.Input, args: [{ isSignal: true, alias: "numberOfMonths", required: false }] }], firstDayOfWeek: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstDayOfWeek", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], timeZone: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeZone", required: false }] }], dir: [{ type: i0.Input, args: [{ isSignal: true, alias: "dir", required: false }] }], fromYear: [{ type: i0.Input, args: [{ isSignal: true, alias: "fromYear", required: false }] }], toYear: [{ type: i0.Input, args: [{ isSignal: true, alias: "toYear", required: false }] }], showOutsideDays: [{ type: i0.Input, args: [{ isSignal: true, alias: "showOutsideDays", required: false }] }], showWeekNumber: [{ type: i0.Input, args: [{ isSignal: true, alias: "showWeekNumber", required: false }] }], disabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalidInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], editable: [{ type: i0.Input, args: [{ isSignal: true, alias: "editable", required: false }] }], readonlyInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonlyInput", required: false }] }], closeOnSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnSelect", required: false }] }], debugVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "debugVisible", required: false }] }], showTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "showTime", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], dialogLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "dialogLabel", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], disabledDates: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabledDates", required: false }] }], dateLabels: [{ type: i0.Input, args: [{ isSignal: true, alias: "dateLabels", required: false }] }], disabledMatcher: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabledMatcher", required: false }] }], cellTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "cellTemplate", required: false }] }], previousMonthTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "previousMonthTemplate", required: false }] }], nextMonthTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextMonthTemplate", required: false }] }], previousMonthIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "previousMonthIcon", required: false }] }], nextMonthIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextMonthIcon", required: false }] }], previousMonthLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "previousMonthLabel", required: false }] }], nextMonthLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextMonthLabel", required: false }] }], headerTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerTemplate", required: false }] }], footerTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "footerTemplate", required: false }] }], month: [{ type: i0.Input, args: [{ isSignal: true, alias: "month", required: false }] }], presets: [{ type: i0.Input, args: [{ isSignal: true, alias: "presets", required: false }] }], formatter: [{ type: i0.Input, args: [{ isSignal: true, alias: "formatter", required: false }] }], parser: [{ type: i0.Input, args: [{ isSignal: true, alias: "parser", required: false }] }], timeLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeLabel", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], openChange: [{ type: i0.Output, args: ["openChange"] }], monthChange: [{ type: i0.Output, args: ["monthChange"] }] } });
|
|
4427
|
+
}], ctorParameters: () => [], propDecorators: { mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], captionLayout: [{ type: i0.Input, args: [{ isSignal: true, alias: "captionLayout", required: false }] }], numberOfMonths: [{ type: i0.Input, args: [{ isSignal: true, alias: "numberOfMonths", required: false }] }], firstDayOfWeek: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstDayOfWeek", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], timeZone: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeZone", required: false }] }], dir: [{ type: i0.Input, args: [{ isSignal: true, alias: "dir", required: false }] }], fromYear: [{ type: i0.Input, args: [{ isSignal: true, alias: "fromYear", required: false }] }], toYear: [{ type: i0.Input, args: [{ isSignal: true, alias: "toYear", required: false }] }], showOutsideDays: [{ type: i0.Input, args: [{ isSignal: true, alias: "showOutsideDays", required: false }] }], showWeekNumber: [{ type: i0.Input, args: [{ isSignal: true, alias: "showWeekNumber", required: false }] }], disabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalidInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], editable: [{ type: i0.Input, args: [{ isSignal: true, alias: "editable", required: false }] }], readonlyInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonlyInput", required: false }] }], closeOnSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnSelect", required: false }] }], debugVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "debugVisible", required: false }] }], showTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "showTime", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], dialogLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "dialogLabel", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], disabledDates: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabledDates", required: false }] }], dateLabels: [{ type: i0.Input, args: [{ isSignal: true, alias: "dateLabels", required: false }] }], disabledMatcher: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabledMatcher", required: false }] }], cellTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "cellTemplate", required: false }] }], previousMonthTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "previousMonthTemplate", required: false }] }], nextMonthTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextMonthTemplate", required: false }] }], previousMonthIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "previousMonthIcon", required: false }] }], nextMonthIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextMonthIcon", required: false }] }], previousMonthLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "previousMonthLabel", required: false }] }], nextMonthLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextMonthLabel", required: false }] }], headerTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerTemplate", required: false }] }], footerTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "footerTemplate", required: false }] }], month: [{ type: i0.Input, args: [{ isSignal: true, alias: "month", required: false }] }], presets: [{ type: i0.Input, args: [{ isSignal: true, alias: "presets", required: false }] }], formatter: [{ type: i0.Input, args: [{ isSignal: true, alias: "formatter", required: false }] }], parser: [{ type: i0.Input, args: [{ isSignal: true, alias: "parser", required: false }] }], timeLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeLabel", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], openChange: [{ type: i0.Output, args: ["openChange"] }], monthChange: [{ type: i0.Output, args: ["monthChange"] }], calendar: [{ type: i0.ViewChild, args: [i0.forwardRef(() => FrCalendar$1), { isSignal: true }] }] } });
|
|
4286
4428
|
function normalizeValue(value, mode) {
|
|
4287
4429
|
if (!value) {
|
|
4288
4430
|
return mode === 'range' ? { from: null, to: null } : null;
|
|
@@ -4347,27 +4489,41 @@ function mergeTime(date, timeSource) {
|
|
|
4347
4489
|
return next;
|
|
4348
4490
|
}
|
|
4349
4491
|
|
|
4492
|
+
const DEFAULT_SIDE_OFFSET = 4;
|
|
4493
|
+
const MIN_SUBMENU_SIDE_OFFSET = 16;
|
|
4350
4494
|
function defaultPositions(isSubmenu) {
|
|
4351
4495
|
return buildConnectedPositions({
|
|
4352
4496
|
align: 'start',
|
|
4353
4497
|
alignOffset: 0,
|
|
4354
4498
|
isSubmenu,
|
|
4355
|
-
side:
|
|
4356
|
-
sideOffset:
|
|
4499
|
+
side: 'auto',
|
|
4500
|
+
sideOffset: DEFAULT_SIDE_OFFSET,
|
|
4357
4501
|
});
|
|
4358
4502
|
}
|
|
4359
4503
|
function buildConnectedPositions(options) {
|
|
4360
|
-
const
|
|
4361
|
-
|
|
4504
|
+
const side = normalizeSide(options.side, options.isSubmenu);
|
|
4505
|
+
if (side === 'auto') {
|
|
4506
|
+
return autoSides(options.isSubmenu).flatMap((side) => primaryPlacement({
|
|
4507
|
+
...options,
|
|
4508
|
+
side,
|
|
4509
|
+
}));
|
|
4510
|
+
}
|
|
4511
|
+
return primaryPlacement({
|
|
4512
|
+
...options,
|
|
4513
|
+
side,
|
|
4514
|
+
});
|
|
4362
4515
|
}
|
|
4363
4516
|
function primaryPlacement(options) {
|
|
4364
|
-
if (options.
|
|
4365
|
-
const isRight = options.side
|
|
4366
|
-
const
|
|
4367
|
-
|
|
4368
|
-
|
|
4369
|
-
|
|
4370
|
-
|
|
4517
|
+
if (options.side === 'left' || options.side === 'right') {
|
|
4518
|
+
const isRight = options.side === 'right';
|
|
4519
|
+
const sideOffset = options.isSubmenu
|
|
4520
|
+
? Math.max(options.sideOffset, MIN_SUBMENU_SIDE_OFFSET)
|
|
4521
|
+
: options.sideOffset;
|
|
4522
|
+
const horizontalOffset = isRight ? sideOffset : -sideOffset;
|
|
4523
|
+
const originY = horizontalOriginY(options.align);
|
|
4524
|
+
const overlayY = horizontalOverlayY(options.align);
|
|
4525
|
+
return [
|
|
4526
|
+
{
|
|
4371
4527
|
originX: isRight ? 'end' : 'start',
|
|
4372
4528
|
originY,
|
|
4373
4529
|
overlayX: isRight ? 'start' : 'end',
|
|
@@ -4375,7 +4531,7 @@ function primaryPlacement(options) {
|
|
|
4375
4531
|
offsetX: horizontalOffset,
|
|
4376
4532
|
offsetY: options.alignOffset,
|
|
4377
4533
|
},
|
|
4378
|
-
|
|
4534
|
+
{
|
|
4379
4535
|
originX: isRight ? 'start' : 'end',
|
|
4380
4536
|
originY,
|
|
4381
4537
|
overlayX: isRight ? 'end' : 'start',
|
|
@@ -4383,14 +4539,14 @@ function primaryPlacement(options) {
|
|
|
4383
4539
|
offsetX: -horizontalOffset,
|
|
4384
4540
|
offsetY: options.alignOffset,
|
|
4385
4541
|
},
|
|
4386
|
-
|
|
4542
|
+
];
|
|
4387
4543
|
}
|
|
4388
|
-
const isBottom = options.side
|
|
4544
|
+
const isBottom = options.side === 'bottom';
|
|
4389
4545
|
const verticalOffset = isBottom ? options.sideOffset : -options.sideOffset;
|
|
4390
4546
|
const originX = rootOriginX(options.align);
|
|
4391
4547
|
const overlayX = rootOverlayX(options.align);
|
|
4392
|
-
return
|
|
4393
|
-
|
|
4548
|
+
return [
|
|
4549
|
+
{
|
|
4394
4550
|
originX,
|
|
4395
4551
|
originY: isBottom ? 'bottom' : 'top',
|
|
4396
4552
|
overlayX,
|
|
@@ -4398,7 +4554,7 @@ function primaryPlacement(options) {
|
|
|
4398
4554
|
offsetX: options.alignOffset,
|
|
4399
4555
|
offsetY: verticalOffset,
|
|
4400
4556
|
},
|
|
4401
|
-
|
|
4557
|
+
{
|
|
4402
4558
|
originX,
|
|
4403
4559
|
originY: isBottom ? 'top' : 'bottom',
|
|
4404
4560
|
overlayX,
|
|
@@ -4406,7 +4562,16 @@ function primaryPlacement(options) {
|
|
|
4406
4562
|
offsetX: options.alignOffset,
|
|
4407
4563
|
offsetY: -verticalOffset,
|
|
4408
4564
|
},
|
|
4409
|
-
|
|
4565
|
+
];
|
|
4566
|
+
}
|
|
4567
|
+
function normalizeSide(side, isSubmenu) {
|
|
4568
|
+
if (!isSubmenu || side === 'left' || side === 'right') {
|
|
4569
|
+
return side;
|
|
4570
|
+
}
|
|
4571
|
+
return 'auto';
|
|
4572
|
+
}
|
|
4573
|
+
function autoSides(isSubmenu) {
|
|
4574
|
+
return isSubmenu ? ['right', 'left'] : ['bottom', 'top', 'right', 'left'];
|
|
4410
4575
|
}
|
|
4411
4576
|
function rootOriginX(align) {
|
|
4412
4577
|
if (align === 'center') {
|
|
@@ -4420,13 +4585,13 @@ function rootOverlayX(align) {
|
|
|
4420
4585
|
}
|
|
4421
4586
|
return align;
|
|
4422
4587
|
}
|
|
4423
|
-
function
|
|
4588
|
+
function horizontalOriginY(align) {
|
|
4424
4589
|
if (align === 'center') {
|
|
4425
4590
|
return 'center';
|
|
4426
4591
|
}
|
|
4427
4592
|
return align === 'end' ? 'bottom' : 'top';
|
|
4428
4593
|
}
|
|
4429
|
-
function
|
|
4594
|
+
function horizontalOverlayY(align) {
|
|
4430
4595
|
if (align === 'center') {
|
|
4431
4596
|
return 'center';
|
|
4432
4597
|
}
|
|
@@ -4548,7 +4713,7 @@ class FrDropdownMenuContent {
|
|
|
4548
4713
|
align = input('start', ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
|
|
4549
4714
|
alignOffset = input(0, ...(ngDevMode ? [{ debugName: "alignOffset" }] : /* istanbul ignore next */ []));
|
|
4550
4715
|
debugVisible = input(false, { ...(ngDevMode ? { debugName: "debugVisible" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
4551
|
-
side = input('
|
|
4716
|
+
side = input('auto', ...(ngDevMode ? [{ debugName: "side" }] : /* istanbul ignore next */ []));
|
|
4552
4717
|
sideOffset = input(4, ...(ngDevMode ? [{ debugName: "sideOffset" }] : /* istanbul ignore next */ []));
|
|
4553
4718
|
isDebugVisible() {
|
|
4554
4719
|
return this.debugVisible();
|
|
@@ -4909,7 +5074,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
4909
5074
|
}], propDecorators: { menuContent: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDropdownMenuSubTrigger", required: false }] }], inset: [{ type: i0.Input, args: [{ isSignal: true, alias: "inset", required: false }] }], triggerModeInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "triggerMode", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }] } });
|
|
4910
5075
|
|
|
4911
5076
|
const FR_DROPDOWN_MENU_ALIGNMENTS = ['center', 'end', 'start'];
|
|
4912
|
-
const FR_DROPDOWN_MENU_SIDES = ['bottom', 'left', 'right', 'top'];
|
|
5077
|
+
const FR_DROPDOWN_MENU_SIDES = ['auto', 'bottom', 'left', 'right', 'top'];
|
|
4913
5078
|
const FR_DROPDOWN_MENU_TRIGGER_MODES = ['both', 'click', 'hover'];
|
|
4914
5079
|
const FR_DROPDOWN_MENU_ITEM_VARIANTS = ['default', 'destructive'];
|
|
4915
5080
|
|
|
@@ -5710,6 +5875,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
5710
5875
|
}] });
|
|
5711
5876
|
|
|
5712
5877
|
const FR_INPUT_GROUP_ADDON_ALIGNS = ['inline-start', 'inline-end'];
|
|
5878
|
+
const FR_INPUT_GROUP_ADDON_VARIANTS = ['default', 'ghost'];
|
|
5713
5879
|
class FrInputGroup {
|
|
5714
5880
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrInputGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
5715
5881
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrInputGroup, isStandalone: true, selector: "[frInputGroup], frame-input-group", host: { classAttribute: "frame-input-group" }, ngImport: i0 });
|
|
@@ -5725,8 +5891,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
5725
5891
|
}] });
|
|
5726
5892
|
class FrInputGroupAddon {
|
|
5727
5893
|
align = input('inline-start', ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
|
|
5894
|
+
variant = input('default', ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
5728
5895
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrInputGroupAddon, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
5729
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: FrInputGroupAddon, isStandalone: true, selector: "[frInputGroupAddon], frame-input-group-addon", inputs: { align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-align": "align()" }, classAttribute: "frame-input-group__addon" }, ngImport: i0 });
|
|
5896
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: FrInputGroupAddon, isStandalone: true, selector: "[frInputGroupAddon], frame-input-group-addon", inputs: { align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-align": "align()", "attr.data-variant": "variant()" }, classAttribute: "frame-input-group__addon" }, ngImport: i0 });
|
|
5730
5897
|
}
|
|
5731
5898
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrInputGroupAddon, decorators: [{
|
|
5732
5899
|
type: Directive,
|
|
@@ -5735,9 +5902,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
5735
5902
|
host: {
|
|
5736
5903
|
class: 'frame-input-group__addon',
|
|
5737
5904
|
'[attr.data-align]': 'align()',
|
|
5905
|
+
'[attr.data-variant]': 'variant()',
|
|
5738
5906
|
},
|
|
5739
5907
|
}]
|
|
5740
|
-
}], propDecorators: { align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }] } });
|
|
5908
|
+
}], propDecorators: { align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }] } });
|
|
5741
5909
|
class FrInputGroupText {
|
|
5742
5910
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrInputGroupText, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
5743
5911
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrInputGroupText, isStandalone: true, selector: "[frInputGroupText], frame-input-group-text", host: { classAttribute: "frame-input-group__text" }, ngImport: i0 });
|
|
@@ -8500,6 +8668,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
8500
8668
|
}]
|
|
8501
8669
|
}], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], debugVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "debugVisible", required: false }] }], disabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], indicatorPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "indicatorPosition", required: false }] }], invalidInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }] } });
|
|
8502
8670
|
|
|
8671
|
+
const FR_SELECT_ICON_POSITIONS = ['leading', 'trailing'];
|
|
8503
8672
|
class FrSelectValue {
|
|
8504
8673
|
select = inject(FrSelect);
|
|
8505
8674
|
placeholder = input('Select an option', ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
@@ -8534,8 +8703,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
8534
8703
|
}]
|
|
8535
8704
|
}] });
|
|
8536
8705
|
class FrSelectIcon {
|
|
8706
|
+
position = input('trailing', ...(ngDevMode ? [{ debugName: "position" }] : /* istanbul ignore next */ []));
|
|
8537
8707
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSelectIcon, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
8538
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
8708
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: FrSelectIcon, isStandalone: true, selector: "[frSelectIcon], frame-select-icon", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "aria-hidden": "true" }, properties: { "attr.data-position": "position()" }, classAttribute: "frame-select__icon" }, ngImport: i0 });
|
|
8539
8709
|
}
|
|
8540
8710
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSelectIcon, decorators: [{
|
|
8541
8711
|
type: Directive,
|
|
@@ -8544,9 +8714,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
8544
8714
|
host: {
|
|
8545
8715
|
class: 'frame-select__icon',
|
|
8546
8716
|
'aria-hidden': 'true',
|
|
8717
|
+
'[attr.data-position]': 'position()',
|
|
8547
8718
|
},
|
|
8548
8719
|
}]
|
|
8549
|
-
}] });
|
|
8720
|
+
}], propDecorators: { position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }] } });
|
|
8550
8721
|
class FrSelectError {
|
|
8551
8722
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSelectError, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
8552
8723
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSelectError, isStandalone: true, selector: "[frSelectError], frame-select-error", host: { attributes: { "aria-live": "polite" }, classAttribute: "frame-select__error" }, ngImport: i0 });
|
|
@@ -9401,6 +9572,13 @@ function coerceMenuButtonSize(value) {
|
|
|
9401
9572
|
function coerceMenuButtonVariant(value) {
|
|
9402
9573
|
return value === 'outline' ? 'outline' : 'default';
|
|
9403
9574
|
}
|
|
9575
|
+
function coerceOptionalNumber(value) {
|
|
9576
|
+
if (value === null || value === undefined || value === '') {
|
|
9577
|
+
return null;
|
|
9578
|
+
}
|
|
9579
|
+
const coerced = numberAttribute(value, Number.NaN);
|
|
9580
|
+
return Number.isFinite(coerced) ? coerced : null;
|
|
9581
|
+
}
|
|
9404
9582
|
class FrSidebarProvider {
|
|
9405
9583
|
document = inject(DOCUMENT);
|
|
9406
9584
|
elementRef = inject(ElementRef);
|
|
@@ -9508,8 +9686,10 @@ class FrSidebar {
|
|
|
9508
9686
|
side = input('left', { ...(ngDevMode ? { debugName: "side" } : /* istanbul ignore next */ {}), transform: coerceSide });
|
|
9509
9687
|
variant = input('sidebar', { ...(ngDevMode ? { debugName: "variant" } : /* istanbul ignore next */ {}), transform: coerceVariant });
|
|
9510
9688
|
collapsible = input('offcanvas', { ...(ngDevMode ? { debugName: "collapsible" } : /* istanbul ignore next */ {}), transform: coerceCollapsible });
|
|
9689
|
+
minSize = input(null, { ...(ngDevMode ? { debugName: "minSize" } : /* istanbul ignore next */ {}), transform: coerceOptionalNumber });
|
|
9690
|
+
maxSize = input(384, { ...(ngDevMode ? { debugName: "maxSize" } : /* istanbul ignore next */ {}), transform: coerceOptionalNumber });
|
|
9511
9691
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebar, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
9512
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: FrSidebar, isStandalone: true, selector: "[frSidebar], frame-sidebar", inputs: { side: { classPropertyName: "side", publicName: "side", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, collapsible: { classPropertyName: "collapsible", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-side": "side()", "attr.data-variant": "variant()", "attr.data-collapsible": "collapsible()", "attr.data-state": "provider?.state() ?? \"expanded\"", "attr.data-mobile-open": "provider?.openMobile() ?? false" }, classAttribute: "frame-sidebar" }, ngImport: i0 });
|
|
9692
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: FrSidebar, isStandalone: true, selector: "[frSidebar], frame-sidebar", inputs: { side: { classPropertyName: "side", publicName: "side", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, collapsible: { classPropertyName: "collapsible", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null }, minSize: { classPropertyName: "minSize", publicName: "minSize", isSignal: true, isRequired: false, transformFunction: null }, maxSize: { classPropertyName: "maxSize", publicName: "maxSize", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-side": "side()", "attr.data-variant": "variant()", "attr.data-collapsible": "collapsible()", "attr.data-state": "provider?.state() ?? \"expanded\"", "attr.data-mobile-open": "provider?.openMobile() ?? false" }, classAttribute: "frame-sidebar" }, ngImport: i0 });
|
|
9513
9693
|
}
|
|
9514
9694
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebar, decorators: [{
|
|
9515
9695
|
type: Directive,
|
|
@@ -9524,7 +9704,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
9524
9704
|
'[attr.data-mobile-open]': 'provider?.openMobile() ?? false',
|
|
9525
9705
|
},
|
|
9526
9706
|
}]
|
|
9527
|
-
}], propDecorators: { side: [{ type: i0.Input, args: [{ isSignal: true, alias: "side", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], collapsible: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsible", required: false }] }] } });
|
|
9707
|
+
}], propDecorators: { side: [{ type: i0.Input, args: [{ isSignal: true, alias: "side", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], collapsible: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsible", required: false }] }], minSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "minSize", required: false }] }], maxSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxSize", required: false }] }] } });
|
|
9528
9708
|
class FrSidebarTrigger {
|
|
9529
9709
|
provider = inject(FR_SIDEBAR_PROVIDER, { optional: true });
|
|
9530
9710
|
ariaLabel = input('Toggle sidebar', { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
|
|
@@ -9556,6 +9736,8 @@ class FrSidebarRail {
|
|
|
9556
9736
|
suppressClick = false;
|
|
9557
9737
|
frameId = -1;
|
|
9558
9738
|
pendingWidth = 0;
|
|
9739
|
+
resizeMinSize = 192;
|
|
9740
|
+
resizeMaxSize = 384;
|
|
9559
9741
|
provider = inject(FR_SIDEBAR_PROVIDER, { optional: true });
|
|
9560
9742
|
toggle() {
|
|
9561
9743
|
if (this.suppressClick) {
|
|
@@ -9571,6 +9753,7 @@ class FrSidebarRail {
|
|
|
9571
9753
|
this.startWidth = this.sidebar.elementRef.nativeElement.getBoundingClientRect().width;
|
|
9572
9754
|
this.dragging = false;
|
|
9573
9755
|
this.pendingWidth = this.startWidth;
|
|
9756
|
+
this.captureResizeBounds();
|
|
9574
9757
|
this.provider.setResizing(true);
|
|
9575
9758
|
event.preventDefault();
|
|
9576
9759
|
const move = (moveEvent) => this.resize(moveEvent);
|
|
@@ -9582,6 +9765,8 @@ class FrSidebarRail {
|
|
|
9582
9765
|
this.suppressClick = this.dragging;
|
|
9583
9766
|
this.dragging = false;
|
|
9584
9767
|
this.pendingWidth = 0;
|
|
9768
|
+
this.resizeMinSize = 192;
|
|
9769
|
+
this.resizeMaxSize = 384;
|
|
9585
9770
|
setTimeout(() => {
|
|
9586
9771
|
this.suppressClick = false;
|
|
9587
9772
|
});
|
|
@@ -9595,7 +9780,7 @@ class FrSidebarRail {
|
|
|
9595
9780
|
}
|
|
9596
9781
|
const delta = event.clientX - this.startX;
|
|
9597
9782
|
const direction = this.sidebar.side() === 'right' ? -1 : 1;
|
|
9598
|
-
const nextWidth =
|
|
9783
|
+
const nextWidth = this.clampWidth(this.startWidth + delta * direction);
|
|
9599
9784
|
if (Math.abs(delta) > 3) {
|
|
9600
9785
|
this.dragging = true;
|
|
9601
9786
|
}
|
|
@@ -9617,6 +9802,35 @@ class FrSidebarRail {
|
|
|
9617
9802
|
this.provider?.setSidebarWidth(this.pendingWidth);
|
|
9618
9803
|
}
|
|
9619
9804
|
}
|
|
9805
|
+
clampWidth(width) {
|
|
9806
|
+
return Math.min(Math.max(width, this.resizeMinSize), this.resizeMaxSize);
|
|
9807
|
+
}
|
|
9808
|
+
captureResizeBounds() {
|
|
9809
|
+
if (!this.sidebar) {
|
|
9810
|
+
return;
|
|
9811
|
+
}
|
|
9812
|
+
const minSize = this.sidebar.minSize() ?? this.measureContentMinSize();
|
|
9813
|
+
const maxSize = this.sidebar.maxSize() ?? Number.POSITIVE_INFINITY;
|
|
9814
|
+
this.resizeMinSize = minSize;
|
|
9815
|
+
this.resizeMaxSize = Math.max(minSize, maxSize);
|
|
9816
|
+
}
|
|
9817
|
+
measureContentMinSize() {
|
|
9818
|
+
if (!this.sidebar) {
|
|
9819
|
+
return 192;
|
|
9820
|
+
}
|
|
9821
|
+
const sidebarElement = this.sidebar.elementRef.nativeElement;
|
|
9822
|
+
const sidebarRect = sidebarElement.getBoundingClientRect();
|
|
9823
|
+
let measuredWidth = 0;
|
|
9824
|
+
for (const element of Array.from(sidebarElement.querySelectorAll('*'))) {
|
|
9825
|
+
if (element.hasAttribute('frSidebarRail') || element.tagName.toLowerCase() === 'frame-sidebar-rail') {
|
|
9826
|
+
continue;
|
|
9827
|
+
}
|
|
9828
|
+
const rect = element.getBoundingClientRect();
|
|
9829
|
+
const inlineStart = Math.max(0, rect.left - sidebarRect.left);
|
|
9830
|
+
measuredWidth = Math.max(measuredWidth, inlineStart + element.scrollWidth);
|
|
9831
|
+
}
|
|
9832
|
+
return Math.max(Math.ceil(measuredWidth), 192);
|
|
9833
|
+
}
|
|
9620
9834
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarRail, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
9621
9835
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarRail, isStandalone: true, selector: "[frSidebarRail], frame-sidebar-rail", host: { attributes: { "role": "separator", "tabindex": "0", "aria-label": "Resize sidebar", "aria-orientation": "vertical" }, listeners: { "click": "toggle()", "pointerdown": "startResize($event)", "keydown.enter": "toggle()", "keydown.space": "toggle(); $event.preventDefault()" }, classAttribute: "frame-sidebar__rail" }, ngImport: i0 });
|
|
9622
9836
|
}
|
|
@@ -10274,5 +10488,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
10274
10488
|
* Generated bundle index. Do not edit.
|
|
10275
10489
|
*/
|
|
10276
10490
|
|
|
10277
|
-
export { FR_ACCORDION_TYPES, FR_ALERT_VARIANTS, FR_AVATAR_SIZES, FR_BADGE_ICON_POSITIONS, FR_BADGE_VARIANTS, FR_BUTTON_APPEARANCES, FR_BUTTON_GROUP_ORIENTATIONS, FR_BUTTON_LOADING_DISPLAYS, FR_BUTTON_RADII, FR_BUTTON_SIZES, FR_CARD_FOOTER_ALIGNS, FR_CARD_SIZES, FR_CARD_SPACINGS, FR_CAROUSEL_ALIGNS, FR_CAROUSEL_DIRECTIONS, FR_CAROUSEL_ORIENTATIONS, FR_CONTEXT_MENU_CONTENT, FR_DROPDOWN_MENU_ALIGNMENTS, FR_DROPDOWN_MENU_CONTENT, FR_DROPDOWN_MENU_ITEM_VARIANTS, FR_DROPDOWN_MENU_PARENT, FR_DROPDOWN_MENU_SIDES, FR_DROPDOWN_MENU_TRIGGER_MODES, FR_EMPTY_MEDIA_VARIANTS, FR_EMPTY_ORIENTATIONS, FR_EMPTY_VARIANTS, FR_FIELD_LEGEND_VARIANTS, FR_FIELD_ORIENTATIONS, FR_HOVER_CARD_ALIGNMENTS, FR_HOVER_CARD_SIDES, FR_INPUT_GROUP_ADDON_ALIGNS, FR_INPUT_OTP_PATTERN_DIGITS, FR_INPUT_OTP_PATTERN_DIGITS_AND_CHARS, FR_ITEM_MEDIA_VARIANTS, FR_ITEM_SIZES, FR_ITEM_VARIANTS, FR_MENUBAR_PARENT, FR_MODAL_DATA, FR_NAVIGATION_MENU_PARENT, FR_POPOVER_ALIGNMENTS, FR_POPOVER_SIDES, FR_RADIO_GROUP_ORIENTATIONS, FR_RADIO_GROUP_VARIANTS, FR_RESIZABLE_ORIENTATIONS, FR_SELECT_INDICATOR_POSITIONS, FR_SELECT_POSITIONS, FR_SEPARATOR_ORIENTATIONS, FR_SHEET_DATA, FR_SHEET_SIDES, FR_SIDEBAR_COLLAPSIBLES, FR_SIDEBAR_MENU_BUTTON_SIZES, FR_SIDEBAR_MENU_BUTTON_VARIANTS, FR_SIDEBAR_PROVIDER, FR_SIDEBAR_SIDES, FR_SIDEBAR_VARIANTS, FR_SLIDER_ORIENTATIONS, FR_SWITCH_SIZES, FrAccordion, FrAccordionContent, FrAccordionIcon, FrAccordionItem, FrAccordionTrigger, FrAlert, FrAlertDescription, FrAlertIcon, FrAlertTitle, FrAvatar, FrAvatarBadge, FrAvatarFallback, FrAvatarGroup, FrAvatarGroupCount, FrAvatarIcon, FrAvatarImage, FrBadge, FrBadgeIcon, FrBadgeLabel, FrBadgeSpinner, FrBreadcrumb, FrBreadcrumbEllipsis, FrBreadcrumbItem, FrBreadcrumbLink, FrBreadcrumbList, FrBreadcrumbPage, FrBreadcrumbSeparator, FrButton, FrButtonGroup, FrButtonIcon, FrButtonLabel, FrButtonLoading, FrCalendar, FrCard, FrCardAction, FrCardContent, FrCardDescription, FrCardFooter, FrCardHeader, FrCardTitle, FrCarousel, FrCarouselContent, FrCarouselItem, FrCarouselNext, FrCarouselPrevious, FrCheckbox, FrCheckboxField, FrCheckboxLabel, FrCollapsible, FrCollapsibleContent, FrCollapsibleTrigger, FrCombobox, FrComboboxChip, FrComboboxChipRemove, FrComboboxChips, FrComboboxChipsInput, FrComboboxClear, FrComboboxCollection, FrComboboxContent, FrComboboxEmpty, FrComboboxError, FrComboboxGroup, FrComboboxInput, FrComboboxItem, FrComboboxItemIndicator, FrComboboxLabel, FrComboboxList, FrComboboxPanel, FrComboboxRootLookup, FrComboboxSeparator, FrComboboxTrigger, FrComboboxValueList, FrCommand, FrCommandDialog, FrCommandDialogTrigger, FrCommandEmpty, FrCommandGroup, FrCommandGroupHeading, FrCommandInput, FrCommandItem, FrCommandItemIcon, FrCommandList, FrCommandSeparator, FrCommandService, FrCommandShortcut, FrContextMenu, FrContextMenuCheckboxItem, FrContextMenuContent, FrContextMenuItem, FrContextMenuItemIndicator, FrContextMenuLabel, FrContextMenuPanel, FrContextMenuRadioGroup, FrContextMenuRadioItem, FrContextMenuSeparator, FrContextMenuShortcut, FrContextMenuSub, FrContextMenuSubTrigger, FrContextMenuTrigger, FrControlValueAccessor, FrDatePicker, FrDropdownMenu, FrDropdownMenuCheckboxItem, FrDropdownMenuContent, FrDropdownMenuItem, FrDropdownMenuItemIndicator, FrDropdownMenuLabel, FrDropdownMenuPanel, FrDropdownMenuRadioGroup, FrDropdownMenuRadioItem, FrDropdownMenuSeparator, FrDropdownMenuShortcut, FrDropdownMenuSub, FrDropdownMenuSubTrigger, FrDropdownMenuTree, FrDropdownMenuTrigger, FrEmpty, FrEmptyContent, FrEmptyDescription, FrEmptyHeader, FrEmptyMedia, FrEmptyTitle, FrField, FrFieldContent, FrFieldDescription, FrFieldError, FrFieldGroup, FrFieldLabel, FrFieldLegend, FrFieldSeparator, FrFieldSet, FrHoverCardRoot as FrHoverCard, FrHoverCardContent, FrHoverCardPanel, FrHoverCardTrigger, FrIconButton, FrInput, FrInputBadge, FrInputControl, FrInputDescription, FrInputError, FrInputField, FrInputFieldGroup, FrInputGroup, FrInputGroupAddon, FrInputGroupInput, FrInputGroupText, FrInputHeader, FrInputLabel, FrInputOtp, FrInputOtpGroup, FrInputOtpSeparator, FrInputOtpSlot, FrItem, FrItemActions, FrItemContent, FrItemDescription, FrItemFooter, FrItemGroup, FrItemHeader, FrItemMedia, FrItemSeparator, FrItemTitle, FrMenuBar, FrMenuBarCheckboxItem, FrMenuBarContent, FrMenuBarItem, FrMenuBarItemIndicator, FrMenuBarLabel, FrMenuBarMenu, FrMenuBarPanel, FrMenuBarRadioGroup, FrMenuBarRadioItem, FrMenuBarSeparator, FrMenuBarShortcut, FrMenuBarSub, FrMenuBarSubTrigger, FrMenuBarTrigger, FrModalBody, FrModalClose, FrModalContent, FrModalDescription, FrModalFooter, FrModalHeader, FrModalPanel, FrModalService, FrModalShell, FrModalTitle, FrModalTrigger, FrNavigationLinkSeparator, FrNavigationMenu, FrNavigationMenuContent, FrNavigationMenuFeature, FrNavigationMenuGrid, FrNavigationMenuIndicator, FrNavigationMenuItem, FrNavigationMenuLink, FrNavigationMenuLinkDescription, FrNavigationMenuLinkTitle, FrNavigationMenuList, FrNavigationMenuPanel, FrNavigationMenuTrigger, FrNavigationMenuViewport, FrPagination, FrPaginationContent, FrPaginationEllipsis, FrPaginationIcon, FrPaginationItem, FrPaginationLink, FrPaginationNext, FrPaginationPrevious, FrPopoverRoot as FrPopover, FrPopoverBody, FrPopoverClose, FrPopoverContent, FrPopoverDescription, FrPopoverFooter, FrPopoverHeader, FrPopoverPanel, FrPopoverTitle, FrPopoverTrigger, FrProgress, FrProgressIndicator, FrRadioGroup, FrRadioGroupCard, FrRadioGroupCardMeta, FrRadioGroupField, FrRadioGroupItem, FrResizableHandle, FrResizablePanel, FrResizablePanelGroup, FrSelect, FrSelectContent, FrSelectError, FrSelectGroup, FrSelectIcon, FrSelectItem, FrSelectItemIndicator, FrSelectLabel, FrSelectPanel, FrSelectSeparator, FrSelectValue, FrSeparator, FrSheetBody, FrSheetClose, FrSheetContent, FrSheetDescription, FrSheetFooter, FrSheetHeader, FrSheetPanel, FrSheetService, FrSheetShell, FrSheetTitle, FrSheetTrigger, FrSidebar, FrSidebarContent, FrSidebarFooter, FrSidebarGroup, FrSidebarGroupAction, FrSidebarGroupContent, FrSidebarGroupLabel, FrSidebarHeader, FrSidebarInset, FrSidebarMenu, FrSidebarMenuAction, FrSidebarMenuBadge, FrSidebarMenuButton, FrSidebarMenuItem, FrSidebarMenuSkeleton, FrSidebarMenuSub, FrSidebarMenuSubButton, FrSidebarMenuSubItem, FrSidebarProvider, FrSidebarRail, FrSidebarTrigger, FrSlider, FrSwitch, FrSwitchContent, FrSwitchDescription, FrSwitchError, FrSwitchField, FrSwitchLabel, FrTextarea, FrVirtualContent, FrVirtualFor, FrVirtualItem, FrVirtualItemMeta, FrVirtualList, FrVirtualPanel, FrVirtualViewport, buildConnectedPositions, calculateScrollOffsetForIndex, calculateVirtualRange, defaultPositions, provideDsValueAccessor };
|
|
10491
|
+
export { FR_ACCORDION_TYPES, FR_ALERT_VARIANTS, FR_AVATAR_SIZES, FR_BADGE_ICON_POSITIONS, FR_BADGE_VARIANTS, FR_BUTTON_APPEARANCES, FR_BUTTON_GROUP_ORIENTATIONS, FR_BUTTON_LOADING_DISPLAYS, FR_BUTTON_RADII, FR_BUTTON_SIZES, FR_CARD_FOOTER_ALIGNS, FR_CARD_SIZES, FR_CARD_SPACINGS, FR_CAROUSEL_ALIGNS, FR_CAROUSEL_DIRECTIONS, FR_CAROUSEL_ORIENTATIONS, FR_CONTEXT_MENU_CONTENT, FR_DROPDOWN_MENU_ALIGNMENTS, FR_DROPDOWN_MENU_CONTENT, FR_DROPDOWN_MENU_ITEM_VARIANTS, FR_DROPDOWN_MENU_PARENT, FR_DROPDOWN_MENU_SIDES, FR_DROPDOWN_MENU_TRIGGER_MODES, FR_EMPTY_MEDIA_VARIANTS, FR_EMPTY_ORIENTATIONS, FR_EMPTY_VARIANTS, FR_FIELD_LEGEND_VARIANTS, FR_FIELD_ORIENTATIONS, FR_HOVER_CARD_ALIGNMENTS, FR_HOVER_CARD_SIDES, FR_INPUT_GROUP_ADDON_ALIGNS, FR_INPUT_GROUP_ADDON_VARIANTS, FR_INPUT_OTP_PATTERN_DIGITS, FR_INPUT_OTP_PATTERN_DIGITS_AND_CHARS, FR_ITEM_MEDIA_VARIANTS, FR_ITEM_SIZES, FR_ITEM_VARIANTS, FR_MENUBAR_PARENT, FR_MODAL_DATA, FR_NAVIGATION_MENU_PARENT, FR_POPOVER_ALIGNMENTS, FR_POPOVER_SIDES, FR_RADIO_GROUP_ORIENTATIONS, FR_RADIO_GROUP_VARIANTS, FR_RESIZABLE_ORIENTATIONS, FR_SELECT_ICON_POSITIONS, FR_SELECT_INDICATOR_POSITIONS, FR_SELECT_POSITIONS, FR_SEPARATOR_ORIENTATIONS, FR_SHEET_DATA, FR_SHEET_SIDES, FR_SIDEBAR_COLLAPSIBLES, FR_SIDEBAR_MENU_BUTTON_SIZES, FR_SIDEBAR_MENU_BUTTON_VARIANTS, FR_SIDEBAR_PROVIDER, FR_SIDEBAR_SIDES, FR_SIDEBAR_VARIANTS, FR_SLIDER_ORIENTATIONS, FR_SWITCH_SIZES, FrAccordion, FrAccordionContent, FrAccordionIcon, FrAccordionItem, FrAccordionTrigger, FrAlert, FrAlertDescription, FrAlertIcon, FrAlertTitle, FrAvatar, FrAvatarBadge, FrAvatarFallback, FrAvatarGroup, FrAvatarGroupCount, FrAvatarIcon, FrAvatarImage, FrBadge, FrBadgeIcon, FrBadgeLabel, FrBadgeSpinner, FrBreadcrumb, FrBreadcrumbEllipsis, FrBreadcrumbItem, FrBreadcrumbLink, FrBreadcrumbList, FrBreadcrumbPage, FrBreadcrumbSeparator, FrButton, FrButtonGroup, FrButtonIcon, FrButtonLabel, FrButtonLoading, FrCalendar, FrCard, FrCardAction, FrCardContent, FrCardDescription, FrCardFooter, FrCardHeader, FrCardTitle, FrCarousel, FrCarouselContent, FrCarouselItem, FrCarouselNext, FrCarouselPrevious, FrCheckbox, FrCheckboxField, FrCheckboxLabel, FrCollapsible, FrCollapsibleContent, FrCollapsibleTrigger, FrCombobox, FrComboboxChip, FrComboboxChipRemove, FrComboboxChips, FrComboboxChipsInput, FrComboboxClear, FrComboboxCollection, FrComboboxContent, FrComboboxEmpty, FrComboboxError, FrComboboxGroup, FrComboboxInput, FrComboboxItem, FrComboboxItemIndicator, FrComboboxLabel, FrComboboxList, FrComboboxPanel, FrComboboxRootLookup, FrComboboxSeparator, FrComboboxTrigger, FrComboboxValueList, FrCommand, FrCommandDialog, FrCommandDialogTrigger, FrCommandEmpty, FrCommandFooter, FrCommandGroup, FrCommandGroupHeading, FrCommandInput, FrCommandItem, FrCommandItemIcon, FrCommandList, FrCommandSeparator, FrCommandService, FrCommandShortcut, FrContextMenu, FrContextMenuCheckboxItem, FrContextMenuContent, FrContextMenuItem, FrContextMenuItemIndicator, FrContextMenuLabel, FrContextMenuPanel, FrContextMenuRadioGroup, FrContextMenuRadioItem, FrContextMenuSeparator, FrContextMenuShortcut, FrContextMenuSub, FrContextMenuSubTrigger, FrContextMenuTrigger, FrControlValueAccessor, FrDatePicker, FrDropdownMenu, FrDropdownMenuCheckboxItem, FrDropdownMenuContent, FrDropdownMenuItem, FrDropdownMenuItemIndicator, FrDropdownMenuLabel, FrDropdownMenuPanel, FrDropdownMenuRadioGroup, FrDropdownMenuRadioItem, FrDropdownMenuSeparator, FrDropdownMenuShortcut, FrDropdownMenuSub, FrDropdownMenuSubTrigger, FrDropdownMenuTree, FrDropdownMenuTrigger, FrEmpty, FrEmptyContent, FrEmptyDescription, FrEmptyHeader, FrEmptyMedia, FrEmptyTitle, FrField, FrFieldContent, FrFieldDescription, FrFieldError, FrFieldGroup, FrFieldLabel, FrFieldLegend, FrFieldSeparator, FrFieldSet, FrHoverCardRoot as FrHoverCard, FrHoverCardContent, FrHoverCardPanel, FrHoverCardTrigger, FrIconButton, FrInput, FrInputBadge, FrInputControl, FrInputDescription, FrInputError, FrInputField, FrInputFieldGroup, FrInputGroup, FrInputGroupAddon, FrInputGroupInput, FrInputGroupText, FrInputHeader, FrInputLabel, FrInputOtp, FrInputOtpGroup, FrInputOtpSeparator, FrInputOtpSlot, FrItem, FrItemActions, FrItemContent, FrItemDescription, FrItemFooter, FrItemGroup, FrItemHeader, FrItemMedia, FrItemSeparator, FrItemTitle, FrMenuBar, FrMenuBarCheckboxItem, FrMenuBarContent, FrMenuBarItem, FrMenuBarItemIndicator, FrMenuBarLabel, FrMenuBarMenu, FrMenuBarPanel, FrMenuBarRadioGroup, FrMenuBarRadioItem, FrMenuBarSeparator, FrMenuBarShortcut, FrMenuBarSub, FrMenuBarSubTrigger, FrMenuBarTrigger, FrModalBody, FrModalClose, FrModalContent, FrModalDescription, FrModalFooter, FrModalHeader, FrModalPanel, FrModalService, FrModalShell, FrModalTitle, FrModalTrigger, FrNavigationLinkSeparator, FrNavigationMenu, FrNavigationMenuContent, FrNavigationMenuFeature, FrNavigationMenuGrid, FrNavigationMenuIndicator, FrNavigationMenuItem, FrNavigationMenuLink, FrNavigationMenuLinkDescription, FrNavigationMenuLinkTitle, FrNavigationMenuList, FrNavigationMenuPanel, FrNavigationMenuTrigger, FrNavigationMenuViewport, FrPagination, FrPaginationContent, FrPaginationEllipsis, FrPaginationIcon, FrPaginationItem, FrPaginationLink, FrPaginationNext, FrPaginationPrevious, FrPopoverRoot as FrPopover, FrPopoverBody, FrPopoverClose, FrPopoverContent, FrPopoverDescription, FrPopoverFooter, FrPopoverHeader, FrPopoverPanel, FrPopoverTitle, FrPopoverTrigger, FrProgress, FrProgressIndicator, FrRadioGroup, FrRadioGroupCard, FrRadioGroupCardMeta, FrRadioGroupField, FrRadioGroupItem, FrResizableHandle, FrResizablePanel, FrResizablePanelGroup, FrSelect, FrSelectContent, FrSelectError, FrSelectGroup, FrSelectIcon, FrSelectItem, FrSelectItemIndicator, FrSelectLabel, FrSelectPanel, FrSelectSeparator, FrSelectValue, FrSeparator, FrSheetBody, FrSheetClose, FrSheetContent, FrSheetDescription, FrSheetFooter, FrSheetHeader, FrSheetPanel, FrSheetService, FrSheetShell, FrSheetTitle, FrSheetTrigger, FrSidebar, FrSidebarContent, FrSidebarFooter, FrSidebarGroup, FrSidebarGroupAction, FrSidebarGroupContent, FrSidebarGroupLabel, FrSidebarHeader, FrSidebarInset, FrSidebarMenu, FrSidebarMenuAction, FrSidebarMenuBadge, FrSidebarMenuButton, FrSidebarMenuItem, FrSidebarMenuSkeleton, FrSidebarMenuSub, FrSidebarMenuSubButton, FrSidebarMenuSubItem, FrSidebarProvider, FrSidebarRail, FrSidebarTrigger, FrSlider, FrSwitch, FrSwitchContent, FrSwitchDescription, FrSwitchError, FrSwitchField, FrSwitchLabel, FrTextarea, FrVirtualContent, FrVirtualFor, FrVirtualItem, FrVirtualItemMeta, FrVirtualList, FrVirtualPanel, FrVirtualViewport, buildConnectedPositions, calculateScrollOffsetForIndex, calculateVirtualRange, defaultPositions, provideDsValueAccessor };
|
|
10278
10492
|
//# sourceMappingURL=frame-ui-ng-components.mjs.map
|