igniteui-webcomponents 6.0.1 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/components/button/button-base.d.ts +5 -6
- package/components/button/button-base.js +15 -29
- package/components/button/button-base.js.map +1 -1
- package/components/button/themes/button/light/button.shared.css.js +1 -1
- package/components/button/themes/button/light/button.shared.css.js.map +1 -1
- package/components/button-group/toggle-button.d.ts +2 -2
- package/components/button-group/toggle-button.js +4 -6
- package/components/button-group/toggle-button.js.map +1 -1
- package/components/calendar/calendar.d.ts +1 -1
- package/components/calendar/calendar.js +12 -9
- package/components/calendar/calendar.js.map +1 -1
- package/components/calendar/days-view/days-view.d.ts +1 -1
- package/components/calendar/days-view/days-view.js +8 -9
- package/components/calendar/days-view/days-view.js.map +1 -1
- package/components/calendar/helpers.d.ts +12 -1
- package/components/calendar/helpers.js +35 -10
- package/components/calendar/helpers.js.map +1 -1
- package/components/calendar/model.d.ts +15 -1
- package/components/calendar/model.js +26 -5
- package/components/calendar/model.js.map +1 -1
- package/components/calendar/months-view/months-view.d.ts +1 -1
- package/components/calendar/months-view/months-view.js +6 -6
- package/components/calendar/months-view/months-view.js.map +1 -1
- package/components/calendar/years-view/years-view.d.ts +1 -1
- package/components/calendar/years-view/years-view.js +6 -6
- package/components/calendar/years-view/years-view.js.map +1 -1
- package/components/carousel/carousel-indicator-container.d.ts +2 -2
- package/components/carousel/carousel-indicator-container.js +8 -9
- package/components/carousel/carousel-indicator-container.js.map +1 -1
- package/components/carousel/carousel.d.ts +7 -8
- package/components/carousel/carousel.js +24 -20
- package/components/carousel/carousel.js.map +1 -1
- package/components/checkbox/checkbox-base.d.ts +8 -10
- package/components/checkbox/checkbox-base.js +20 -23
- package/components/checkbox/checkbox-base.js.map +1 -1
- package/components/checkbox/checkbox.d.ts +3 -3
- package/components/checkbox/checkbox.js +18 -19
- package/components/checkbox/checkbox.js.map +1 -1
- package/components/checkbox/switch.d.ts +2 -2
- package/components/checkbox/switch.js +15 -19
- package/components/checkbox/switch.js.map +1 -1
- package/components/chip/chip.js +3 -3
- package/components/chip/chip.js.map +1 -1
- package/components/combo/combo.d.ts +2 -2
- package/components/combo/combo.js +12 -11
- package/components/combo/combo.js.map +1 -1
- package/components/combo/themes/combo.base.css.js +1 -1
- package/components/combo/themes/combo.base.css.js.map +1 -1
- package/components/combo/themes/shared/combo.fluent.css.js +1 -1
- package/components/combo/themes/shared/combo.fluent.css.js.map +1 -1
- package/components/common/controllers/focus-ring.d.ts +21 -11
- package/components/common/controllers/focus-ring.js +16 -14
- package/components/common/controllers/focus-ring.js.map +1 -1
- package/components/common/controllers/key-bindings.d.ts +40 -33
- package/components/common/controllers/key-bindings.js +83 -71
- package/components/common/controllers/key-bindings.js.map +1 -1
- package/components/common/definitions/defineAllComponents.js +2 -0
- package/components/common/definitions/defineAllComponents.js.map +1 -1
- package/components/common/i18n/date-range-picker.resources.d.ts +11 -0
- package/components/common/i18n/date-range-picker.resources.js +12 -0
- package/components/common/i18n/date-range-picker.resources.js.map +1 -0
- package/components/common/mixins/combo-box.js +8 -2
- package/components/common/mixins/combo-box.js.map +1 -1
- package/components/common/mixins/forms/form-value.d.ts +15 -1
- package/components/common/mixins/forms/form-value.js +25 -4
- package/components/common/mixins/forms/form-value.js.map +1 -1
- package/components/common/mixins/option.d.ts +3 -2
- package/components/common/mixins/option.js.map +1 -1
- package/components/common/part-map.d.ts +17 -0
- package/components/common/part-map.js +46 -0
- package/components/common/part-map.js.map +1 -0
- package/components/common/util.d.ts +5 -6
- package/components/common/util.js +17 -22
- package/components/common/util.js.map +1 -1
- package/components/common/validators.js +3 -7
- package/components/common/validators.js.map +1 -1
- package/components/date-picker/date-picker.d.ts +3 -3
- package/components/date-picker/date-picker.js +13 -14
- package/components/date-picker/date-picker.js.map +1 -1
- package/components/date-picker/themes/dark/date-picker.bootstrap.css.js +1 -1
- package/components/date-picker/themes/dark/date-picker.bootstrap.css.js.map +1 -1
- package/components/date-picker/themes/dark/date-picker.fluent.css.js +1 -1
- package/components/date-picker/themes/dark/date-picker.fluent.css.js.map +1 -1
- package/components/date-picker/themes/dark/date-picker.indigo.css.js +1 -1
- package/components/date-picker/themes/dark/date-picker.indigo.css.js.map +1 -1
- package/components/date-picker/themes/dark/date-picker.material.css.js +1 -1
- package/components/date-picker/themes/dark/date-picker.material.css.js.map +1 -1
- package/components/date-picker/themes/light/date-picker.bootstrap.css.js +1 -1
- package/components/date-picker/themes/light/date-picker.bootstrap.css.js.map +1 -1
- package/components/date-picker/themes/light/date-picker.fluent.css.js +1 -1
- package/components/date-picker/themes/light/date-picker.fluent.css.js.map +1 -1
- package/components/date-picker/themes/light/date-picker.indigo.css.js +1 -1
- package/components/date-picker/themes/light/date-picker.indigo.css.js.map +1 -1
- package/components/date-picker/themes/light/date-picker.material.css.js +1 -1
- package/components/date-picker/themes/light/date-picker.material.css.js.map +1 -1
- package/components/date-picker/themes/shared/date-picker.bootstrap.css.js +1 -1
- package/components/date-picker/themes/shared/date-picker.bootstrap.css.js.map +1 -1
- package/components/date-picker/themes/shared/date-picker.common.css.js +1 -1
- package/components/date-picker/themes/shared/date-picker.common.css.js.map +1 -1
- package/components/date-picker/themes/shared/date-picker.fluent.css.js +1 -1
- package/components/date-picker/themes/shared/date-picker.fluent.css.js.map +1 -1
- package/components/date-picker/themes/shared/date-picker.indigo.css.js +1 -1
- package/components/date-picker/themes/shared/date-picker.indigo.css.js.map +1 -1
- package/components/date-picker/themes/shared/date-picker.material.css.d.ts +1 -0
- package/components/date-picker/themes/shared/date-picker.material.css.js +3 -0
- package/components/date-picker/themes/shared/date-picker.material.css.js.map +1 -0
- package/components/date-picker/themes/themes.js +3 -2
- package/components/date-picker/themes/themes.js.map +1 -1
- package/components/date-range-picker/date-range-picker.base.css.d.ts +1 -0
- package/components/date-range-picker/date-range-picker.base.css.js +3 -0
- package/components/date-range-picker/date-range-picker.base.css.js.map +1 -0
- package/components/date-range-picker/date-range-picker.d.ts +365 -0
- package/components/date-range-picker/date-range-picker.js +810 -0
- package/components/date-range-picker/date-range-picker.js.map +1 -0
- package/components/date-range-picker/predefined-ranges-area.base.css.d.ts +1 -0
- package/components/date-range-picker/predefined-ranges-area.base.css.js +3 -0
- package/components/date-range-picker/predefined-ranges-area.base.css.js.map +1 -0
- package/components/date-range-picker/predefined-ranges-area.d.ts +36 -0
- package/components/date-range-picker/predefined-ranges-area.js +115 -0
- package/components/date-range-picker/predefined-ranges-area.js.map +1 -0
- package/components/date-range-picker/themes/dark/date-range-picker.bootstrap.css.d.ts +1 -0
- package/components/date-range-picker/themes/dark/date-range-picker.bootstrap.css.js +3 -0
- package/components/date-range-picker/themes/dark/date-range-picker.bootstrap.css.js.map +1 -0
- package/components/date-range-picker/themes/dark/date-range-picker.fluent.css.d.ts +1 -0
- package/components/date-range-picker/themes/dark/date-range-picker.fluent.css.js +3 -0
- package/components/date-range-picker/themes/dark/date-range-picker.fluent.css.js.map +1 -0
- package/components/date-range-picker/themes/dark/date-range-picker.indigo.css.d.ts +1 -0
- package/components/date-range-picker/themes/dark/date-range-picker.indigo.css.js +3 -0
- package/components/date-range-picker/themes/dark/date-range-picker.indigo.css.js.map +1 -0
- package/components/date-range-picker/themes/dark/date-range-picker.material.css.d.ts +1 -0
- package/components/date-range-picker/themes/dark/date-range-picker.material.css.js +3 -0
- package/components/date-range-picker/themes/dark/date-range-picker.material.css.js.map +1 -0
- package/components/date-range-picker/themes/light/date-range-picker.bootstrap.css.d.ts +1 -0
- package/components/date-range-picker/themes/light/date-range-picker.bootstrap.css.js +3 -0
- package/components/date-range-picker/themes/light/date-range-picker.bootstrap.css.js.map +1 -0
- package/components/date-range-picker/themes/light/date-range-picker.fluent.css.d.ts +1 -0
- package/components/date-range-picker/themes/light/date-range-picker.fluent.css.js +3 -0
- package/components/date-range-picker/themes/light/date-range-picker.fluent.css.js.map +1 -0
- package/components/date-range-picker/themes/light/date-range-picker.indigo.css.d.ts +1 -0
- package/components/date-range-picker/themes/light/date-range-picker.indigo.css.js +3 -0
- package/components/date-range-picker/themes/light/date-range-picker.indigo.css.js.map +1 -0
- package/components/date-range-picker/themes/light/date-range-picker.material.css.d.ts +1 -0
- package/components/date-range-picker/themes/light/date-range-picker.material.css.js +3 -0
- package/components/date-range-picker/themes/light/date-range-picker.material.css.js.map +1 -0
- package/components/date-range-picker/themes/light/date-range-picker.shared.css.d.ts +1 -0
- package/components/date-range-picker/themes/light/date-range-picker.shared.css.js +3 -0
- package/components/date-range-picker/themes/light/date-range-picker.shared.css.js.map +1 -0
- package/components/date-range-picker/themes/ranges-themes.d.ts +2 -0
- package/components/date-range-picker/themes/ranges-themes.js +14 -0
- package/components/date-range-picker/themes/ranges-themes.js.map +1 -0
- package/components/date-range-picker/themes/shared/date-range-picker.bootstrap.css.d.ts +1 -0
- package/components/date-range-picker/themes/shared/date-range-picker.bootstrap.css.js +3 -0
- package/components/date-range-picker/themes/shared/date-range-picker.bootstrap.css.js.map +1 -0
- package/components/date-range-picker/themes/shared/date-range-picker.common.css.d.ts +1 -0
- package/components/date-range-picker/themes/shared/date-range-picker.common.css.js +3 -0
- package/components/date-range-picker/themes/shared/date-range-picker.common.css.js.map +1 -0
- package/components/date-range-picker/themes/shared/date-range-picker.fluent.css.d.ts +1 -0
- package/components/date-range-picker/themes/shared/date-range-picker.fluent.css.js +3 -0
- package/components/date-range-picker/themes/shared/date-range-picker.fluent.css.js.map +1 -0
- package/components/date-range-picker/themes/shared/date-range-picker.indigo.css.d.ts +1 -0
- package/components/date-range-picker/themes/shared/date-range-picker.indigo.css.js +3 -0
- package/components/date-range-picker/themes/shared/date-range-picker.indigo.css.js.map +1 -0
- package/components/date-range-picker/themes/shared/date-range-picker.material.css.d.ts +1 -0
- package/components/date-range-picker/themes/shared/date-range-picker.material.css.js +3 -0
- package/components/date-range-picker/themes/shared/date-range-picker.material.css.js.map +1 -0
- package/components/date-range-picker/themes/shared/predefined-ranges-area.common.css.d.ts +1 -0
- package/components/date-range-picker/themes/shared/predefined-ranges-area.common.css.js +3 -0
- package/components/date-range-picker/themes/shared/predefined-ranges-area.common.css.js.map +1 -0
- package/components/date-range-picker/themes/shared/predefined-ranges-area.indigo.css.d.ts +1 -0
- package/components/date-range-picker/themes/shared/predefined-ranges-area.indigo.css.js +3 -0
- package/components/date-range-picker/themes/shared/predefined-ranges-area.indigo.css.js.map +1 -0
- package/components/date-range-picker/themes/themes.d.ts +2 -0
- package/components/date-range-picker/themes/themes.js +50 -0
- package/components/date-range-picker/themes/themes.js.map +1 -0
- package/components/date-range-picker/validators.d.ts +26 -0
- package/components/date-range-picker/validators.js +57 -0
- package/components/date-range-picker/validators.js.map +1 -0
- package/components/date-time-input/date-time-input.d.ts +2 -2
- package/components/date-time-input/date-time-input.js +7 -9
- package/components/date-time-input/date-time-input.js.map +1 -1
- package/components/date-time-input/date-util.d.ts +7 -0
- package/components/date-time-input/date-util.js +11 -0
- package/components/date-time-input/date-util.js.map +1 -1
- package/components/dialog/dialog.js +11 -10
- package/components/dialog/dialog.js.map +1 -1
- package/components/dialog/themes/dialog.base.css.js +1 -1
- package/components/dialog/themes/dialog.base.css.js.map +1 -1
- package/components/dialog/themes/shared/dialog.indigo.css.js +1 -1
- package/components/dialog/themes/shared/dialog.indigo.css.js.map +1 -1
- package/components/dropdown/dropdown.js.map +1 -1
- package/components/file-input/file-input.d.ts +11 -5
- package/components/file-input/file-input.js +23 -19
- package/components/file-input/file-input.js.map +1 -1
- package/components/file-input/themes/file-input.base.css.js +1 -1
- package/components/file-input/themes/file-input.base.css.js.map +1 -1
- package/components/input/input-base.d.ts +0 -1
- package/components/input/input-base.js +5 -4
- package/components/input/input-base.js.map +1 -1
- package/components/input/input.d.ts +2 -3
- package/components/input/input.js +10 -9
- package/components/input/input.js.map +1 -1
- package/components/input/themes/dark/input.bootstrap.css.js +1 -1
- package/components/input/themes/dark/input.bootstrap.css.js.map +1 -1
- package/components/input/themes/dark/input.indigo.css.js +1 -1
- package/components/input/themes/dark/input.indigo.css.js.map +1 -1
- package/components/input/themes/light/input.bootstrap.css.js +1 -1
- package/components/input/themes/light/input.bootstrap.css.js.map +1 -1
- package/components/input/themes/light/input.indigo.css.js +1 -1
- package/components/input/themes/light/input.indigo.css.js.map +1 -1
- package/components/input/themes/light/input.shared.css.js +1 -1
- package/components/input/themes/light/input.shared.css.js.map +1 -1
- package/components/input/themes/shared/input.bootstrap.css.js +1 -1
- package/components/input/themes/shared/input.bootstrap.css.js.map +1 -1
- package/components/input/themes/shared/input.common.css.js +1 -1
- package/components/input/themes/shared/input.common.css.js.map +1 -1
- package/components/input/themes/shared/input.fluent.css.js +1 -1
- package/components/input/themes/shared/input.fluent.css.js.map +1 -1
- package/components/input/themes/shared/input.indigo.css.js +1 -1
- package/components/input/themes/shared/input.indigo.css.js.map +1 -1
- package/components/input/themes/shared/input.material.css.js +1 -1
- package/components/input/themes/shared/input.material.css.js.map +1 -1
- package/components/mask-input/mask-input.d.ts +2 -3
- package/components/mask-input/mask-input.js +13 -12
- package/components/mask-input/mask-input.js.map +1 -1
- package/components/mask-input/mask-parser.d.ts +100 -14
- package/components/mask-input/mask-parser.js +134 -117
- package/components/mask-input/mask-parser.js.map +1 -1
- package/components/nav-drawer/nav-drawer-item.js +2 -6
- package/components/nav-drawer/nav-drawer-item.js.map +1 -1
- package/components/nav-drawer/nav-drawer.js +5 -6
- package/components/nav-drawer/nav-drawer.js.map +1 -1
- package/components/progress/base.js +6 -5
- package/components/progress/base.js.map +1 -1
- package/components/progress/circular-progress.js +7 -15
- package/components/progress/circular-progress.js.map +1 -1
- package/components/progress/linear-progress.js +5 -5
- package/components/progress/linear-progress.js.map +1 -1
- package/components/radio/radio.d.ts +11 -12
- package/components/radio/radio.js +39 -44
- package/components/radio/radio.js.map +1 -1
- package/components/radio/utils.js +6 -3
- package/components/radio/utils.js.map +1 -1
- package/components/rating/rating.d.ts +2 -2
- package/components/rating/rating.js +4 -4
- package/components/rating/rating.js.map +1 -1
- package/components/resize-container/resize-container.js +4 -4
- package/components/resize-container/resize-container.js.map +1 -1
- package/components/select/select.d.ts +2 -2
- package/components/select/select.js +11 -10
- package/components/select/select.js.map +1 -1
- package/components/select/themes/shared/select.fluent.css.js +1 -1
- package/components/select/themes/shared/select.fluent.css.js.map +1 -1
- package/components/slider/range-slider.js +1 -1
- package/components/slider/range-slider.js.map +1 -1
- package/components/slider/slider-base.js +1 -1
- package/components/slider/slider-base.js.map +1 -1
- package/components/slider/slider.d.ts +2 -3
- package/components/slider/slider.js +7 -7
- package/components/slider/slider.js.map +1 -1
- package/components/stepper/step.js +3 -3
- package/components/stepper/step.js.map +1 -1
- package/components/tabs/tabs.js +8 -6
- package/components/tabs/tabs.js.map +1 -1
- package/components/textarea/textarea.d.ts +2 -2
- package/components/textarea/textarea.js +7 -6
- package/components/textarea/textarea.js.map +1 -1
- package/components/textarea/themes/dark/textarea.bootstrap.css.js +1 -1
- package/components/textarea/themes/dark/textarea.bootstrap.css.js.map +1 -1
- package/components/textarea/themes/dark/textarea.indigo.css.js +1 -1
- package/components/textarea/themes/dark/textarea.indigo.css.js.map +1 -1
- package/components/textarea/themes/light/textarea.bootstrap.css.js +1 -1
- package/components/textarea/themes/light/textarea.bootstrap.css.js.map +1 -1
- package/components/textarea/themes/light/textarea.indigo.css.js +1 -1
- package/components/textarea/themes/light/textarea.indigo.css.js.map +1 -1
- package/components/textarea/themes/light/textarea.shared.css.js +1 -1
- package/components/textarea/themes/light/textarea.shared.css.js.map +1 -1
- package/components/textarea/themes/shared/textarea.bootstrap.css.js +1 -1
- package/components/textarea/themes/shared/textarea.bootstrap.css.js.map +1 -1
- package/components/textarea/themes/shared/textarea.fluent.css.js +1 -1
- package/components/textarea/themes/shared/textarea.fluent.css.js.map +1 -1
- package/components/textarea/themes/shared/textarea.indigo.css.js +1 -1
- package/components/textarea/themes/shared/textarea.indigo.css.js.map +1 -1
- package/components/textarea/themes/shared/textarea.material.css.js +1 -1
- package/components/textarea/themes/shared/textarea.material.css.js.map +1 -1
- package/components/textarea/themes/textarea.base.css.js +1 -1
- package/components/textarea/themes/textarea.base.css.js.map +1 -1
- package/components/tile-manager/tile-manager.js +5 -4
- package/components/tile-manager/tile-manager.js.map +1 -1
- package/components/tile-manager/tile.js +6 -5
- package/components/tile-manager/tile.js.map +1 -1
- package/components/tooltip/tooltip.d.ts +24 -9
- package/components/tooltip/tooltip.js +22 -19
- package/components/tooltip/tooltip.js.map +1 -1
- package/components/tree/tree-item.js +5 -3
- package/components/tree/tree-item.js.map +1 -1
- package/components/validation-container/validation-container.js +4 -11
- package/components/validation-container/validation-container.js.map +1 -1
- package/custom-elements.json +21432 -17768
- package/igniteui-webcomponents.css-data.json +1 -1
- package/igniteui-webcomponents.html-data.json +1 -1
- package/index.d.ts +4 -1
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/package.json +3 -2
- package/web-types.json +2 -2
|
@@ -17,6 +17,14 @@ export class CalendarDay {
|
|
|
17
17
|
date: date.getDate(),
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
|
+
static compare(first, second) {
|
|
21
|
+
const a = toCalendarDay(first);
|
|
22
|
+
const b = toCalendarDay(second);
|
|
23
|
+
if (a.equalTo(b)) {
|
|
24
|
+
return 0;
|
|
25
|
+
}
|
|
26
|
+
return a.greaterThan(b) ? 1 : -1;
|
|
27
|
+
}
|
|
20
28
|
constructor(args) {
|
|
21
29
|
this._date = new Date(args.year, args.month, args.date ?? 1);
|
|
22
30
|
}
|
|
@@ -24,11 +32,18 @@ export class CalendarDay {
|
|
|
24
32
|
return CalendarDay.from(this._date);
|
|
25
33
|
}
|
|
26
34
|
set(args) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
35
|
+
const year = args.year ?? this.year;
|
|
36
|
+
const month = args.month ?? this.month;
|
|
37
|
+
const date = args.date ?? this.date;
|
|
38
|
+
const temp = new Date(year, month, date);
|
|
39
|
+
if (date > 0 && temp.getMonth() !== month) {
|
|
40
|
+
return new CalendarDay({
|
|
41
|
+
year,
|
|
42
|
+
month,
|
|
43
|
+
date: new Date(year, month + 1, 0).getDate(),
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
return new CalendarDay({ year, month, date });
|
|
32
47
|
}
|
|
33
48
|
add(unit, value) {
|
|
34
49
|
const result = this.clone();
|
|
@@ -84,9 +99,15 @@ export class CalendarDay {
|
|
|
84
99
|
greaterThan(value) {
|
|
85
100
|
return this.timestamp > toCalendarDay(value).timestamp;
|
|
86
101
|
}
|
|
102
|
+
greaterThanOrEqual(value) {
|
|
103
|
+
return this.timestamp >= toCalendarDay(value).timestamp;
|
|
104
|
+
}
|
|
87
105
|
lessThan(value) {
|
|
88
106
|
return this.timestamp < toCalendarDay(value).timestamp;
|
|
89
107
|
}
|
|
108
|
+
lessThanOrEqual(value) {
|
|
109
|
+
return this.timestamp <= toCalendarDay(value).timestamp;
|
|
110
|
+
}
|
|
90
111
|
toString() {
|
|
91
112
|
return `${this.native}`;
|
|
92
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/components/calendar/model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/components/calendar/model.ts"],"names":[],"mappings":"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","sourcesContent":["export type DayParameter = CalendarDay | Date;\n\nexport type CalendarRangeParams = {\n start: DayParameter;\n end: DayParameter | number;\n unit?: DayInterval;\n inclusive?: boolean;\n};\n\ntype DayInterval = 'year' | 'quarter' | 'month' | 'week' | 'day';\n\ntype CalendarDayParams = {\n year: number;\n month: number;\n date?: number;\n};\n\nexport const daysInWeek = 7;\nconst millisecondsInDay = 86400000;\n\nexport function toCalendarDay(date: DayParameter) {\n return date instanceof Date ? CalendarDay.from(date) : date;\n}\n\nfunction checkRollover(original: CalendarDay, modified: CalendarDay) {\n return original.date !== modified.date ? modified.set({ date: 0 }) : modified;\n}\n\n/* blazorSuppress */\nexport class CalendarDay {\n private readonly _date: Date;\n\n /** Constructs and returns the current day. */\n public static get today() {\n return CalendarDay.from(new Date());\n }\n\n /** Constructs a new CalendarDay instance from a Date object. */\n public static from(date: Date) {\n return new CalendarDay({\n year: date.getFullYear(),\n month: date.getMonth(),\n date: date.getDate(),\n });\n }\n\n /**\n * Compares the date portion of two date objects.\n *\n * @returns\n * ```\n * first === second // 0\n * first > second // 1\n * first < second // -1\n * ```\n */\n public static compare(first: DayParameter, second: DayParameter) {\n const a = toCalendarDay(first);\n const b = toCalendarDay(second);\n\n if (a.equalTo(b)) {\n return 0;\n }\n return a.greaterThan(b) ? 1 : -1;\n }\n\n constructor(args: CalendarDayParams) {\n this._date = new Date(args.year, args.month, args.date ?? 1);\n }\n\n /** Returns a copy of this instance. */\n public clone() {\n return CalendarDay.from(this._date);\n }\n\n /**\n * Returns a new instance with values replaced.\n */\n public set(args: Partial<CalendarDayParams>) {\n const year = args.year ?? this.year;\n const month = args.month ?? this.month;\n const date = args.date ?? this.date;\n\n const temp = new Date(year, month, date);\n\n if (date > 0 && temp.getMonth() !== month) {\n return new CalendarDay({\n year,\n month,\n date: new Date(year, month + 1, 0).getDate(),\n });\n }\n\n return new CalendarDay({ year, month, date });\n }\n\n public add(unit: DayInterval, value: number) {\n const result = this.clone();\n switch (unit) {\n case 'year':\n result._date.setFullYear(result.year + value);\n return checkRollover(this, result);\n case 'quarter':\n result._date.setMonth(result.month + 3 * value);\n return checkRollover(this, result);\n case 'month':\n result._date.setMonth(result.month + value);\n return checkRollover(this, result);\n case 'week':\n result._date.setDate(result.date + 7 * value);\n return result;\n case 'day':\n result._date.setDate(result.date + value);\n return result;\n default:\n throw new Error('Invalid interval');\n }\n }\n\n /** Returns the day of the week (Sunday = 0). */\n public get day() {\n return this._date.getDay();\n }\n\n /** Returns the full year. */\n public get year() {\n return this._date.getFullYear();\n }\n\n /** Returns the month. */\n public get month() {\n return this._date.getMonth();\n }\n\n /** Returns the date */\n public get date() {\n return this._date.getDate();\n }\n\n /** Returns the timestamp since epoch in milliseconds. */\n public get timestamp() {\n return this._date.getTime();\n }\n\n /** Returns the current week number. */\n public get week() {\n const firstDay = new CalendarDay({ year: this.year, month: 0 }).timestamp;\n const currentDay =\n (this.timestamp - firstDay + millisecondsInDay) / millisecondsInDay;\n return Math.ceil(currentDay / daysInWeek);\n }\n\n /** Returns the underlying native date instance. */\n public get native() {\n return new Date(this._date);\n }\n\n /**\n * Whether the current date is a weekend day.\n *\n * @remarks\n * This is naive, since it does not account for locale specifics.\n */\n public get weekend() {\n return this.day < 1 || this.day > 5;\n }\n\n public equalTo(value: DayParameter) {\n return this.timestamp === toCalendarDay(value).timestamp;\n }\n\n public greaterThan(value: DayParameter) {\n return this.timestamp > toCalendarDay(value).timestamp;\n }\n\n public greaterThanOrEqual(value: DayParameter) {\n return this.timestamp >= toCalendarDay(value).timestamp;\n }\n\n public lessThan(value: DayParameter) {\n return this.timestamp < toCalendarDay(value).timestamp;\n }\n\n public lessThanOrEqual(value: DayParameter) {\n return this.timestamp <= toCalendarDay(value).timestamp;\n }\n\n public toString() {\n return `${this.native}`;\n }\n}\n"]}
|
|
@@ -31,7 +31,7 @@ export default class IgcMonthsViewComponent extends IgcMonthsViewComponent_base
|
|
|
31
31
|
constructor();
|
|
32
32
|
connectedCallback(): void;
|
|
33
33
|
/** Focuses the active date. */
|
|
34
|
-
focusActiveDate(): void;
|
|
34
|
+
focusActiveDate(options?: FocusOptions): void;
|
|
35
35
|
protected handleInteraction(event: Event): void;
|
|
36
36
|
protected renderMonth(entry: CalendarDay, now: CalendarDay): import("lit-html").TemplateResult<1>;
|
|
37
37
|
protected render(): Generator<import("lit-html").TemplateResult<1>, void, unknown>;
|
|
@@ -16,7 +16,8 @@ import { watch } from '../../common/decorators/watch.js';
|
|
|
16
16
|
import { registerComponent } from '../../common/definitions/register.js';
|
|
17
17
|
import { createDateTimeFormatters } from '../../common/localization/intl-formatters.js';
|
|
18
18
|
import { EventEmitterMixin } from '../../common/mixins/event-emitter.js';
|
|
19
|
-
import {
|
|
19
|
+
import { partMap } from '../../common/part-map.js';
|
|
20
|
+
import { chunk } from '../../common/util.js';
|
|
20
21
|
import { MONTHS_PER_ROW, areSameMonth, getViewElement } from '../helpers.js';
|
|
21
22
|
import { CalendarDay } from '../model.js';
|
|
22
23
|
import { styles } from '../themes/year-month-view.base.css.js';
|
|
@@ -55,8 +56,8 @@ let IgcMonthsViewComponent = IgcMonthsViewComponent_1 = class IgcMonthsViewCompo
|
|
|
55
56
|
super.connectedCallback();
|
|
56
57
|
this.role = 'grid';
|
|
57
58
|
}
|
|
58
|
-
focusActiveDate() {
|
|
59
|
-
this.activeMonth.focus();
|
|
59
|
+
focusActiveDate(options) {
|
|
60
|
+
this.activeMonth.focus(options);
|
|
60
61
|
}
|
|
61
62
|
handleInteraction(event) {
|
|
62
63
|
const value = getViewElement(event);
|
|
@@ -71,13 +72,12 @@ let IgcMonthsViewComponent = IgcMonthsViewComponent_1 = class IgcMonthsViewCompo
|
|
|
71
72
|
const active = areSameMonth(this._value, entry);
|
|
72
73
|
const current = areSameMonth(now, entry);
|
|
73
74
|
const selected = this._value.month === entry.month;
|
|
74
|
-
const parts = { selected, current };
|
|
75
75
|
return html `
|
|
76
|
-
<span part=${
|
|
76
|
+
<span part=${partMap({ month: true, selected, current })}>
|
|
77
77
|
<span
|
|
78
78
|
role="gridcell"
|
|
79
79
|
data-value=${entry.month}
|
|
80
|
-
part=${
|
|
80
|
+
part=${partMap({ 'month-inner': true, selected, current })}
|
|
81
81
|
aria-selected=${selected}
|
|
82
82
|
aria-label=${ariaLabel}
|
|
83
83
|
tabindex=${active ? 0 : -1}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"months-view.js","sourceRoot":"","sources":["../../../../src/components/calendar/months-view/months-view.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oDAAoD,CAAC;AAC7F,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AAExF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"months-view.js","sourceRoot":"","sources":["../../../../src/components/calendar/months-view/months-view.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { range } from 'lit/directives/range.js';\n\nimport { themes } from '../../../theming/theming-decorator.js';\nimport { addKeybindings } from '../../common/controllers/key-bindings.js';\nimport { blazorIndirectRender } from '../../common/decorators/blazorIndirectRender.js';\nimport { blazorSuppressComponent } from '../../common/decorators/blazorSuppressComponent.js';\nimport { watch } from '../../common/decorators/watch.js';\nimport { registerComponent } from '../../common/definitions/register.js';\nimport { createDateTimeFormatters } from '../../common/localization/intl-formatters.js';\nimport type { Constructor } from '../../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../../common/mixins/event-emitter.js';\nimport { partMap } from '../../common/part-map.js';\nimport { chunk } from '../../common/util.js';\nimport { MONTHS_PER_ROW, areSameMonth, getViewElement } from '../helpers.js';\nimport { CalendarDay } from '../model.js';\nimport { styles } from '../themes/year-month-view.base.css.js';\nimport { all } from '../themes/year-month.js';\nimport type { IgcCalendarComponentEventMap } from '../types.js';\n\n/**\n * Instantiate a months view as a separate component in the calendar.\n *\n * @element igc-months-view\n *\n * @csspart months-row - The months row container.\n * @csspart month - The month container.\n * @csspart month-inner - The inner month container.\n */\n@blazorIndirectRender\n@blazorSuppressComponent\n@themes(all)\nexport default class IgcMonthsViewComponent extends EventEmitterMixin<\n IgcCalendarComponentEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-months-view';\n public static styles = styles;\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcMonthsViewComponent);\n }\n\n @state()\n private _value = CalendarDay.today;\n\n @query('[tabindex=\"0\"]')\n private activeMonth!: HTMLElement;\n\n /** Тhe current value of the calendar. */\n @property({ attribute: false })\n public set value(value: Date) {\n this._value = CalendarDay.from(value);\n }\n\n public get value() {\n return this._value.native;\n }\n\n /** Sets the locale used for formatting and displaying the dates. */\n @property()\n public locale = 'en';\n\n /** The format of the month. Defaults to long. */\n @property({ attribute: 'month-format' })\n public monthFormat: 'numeric' | '2-digit' | 'long' | 'short' | 'narrow' =\n 'long';\n\n private _intl = createDateTimeFormatters(this.locale, {\n month: { month: this.monthFormat },\n ariaMonth: { month: 'long', year: 'numeric' },\n });\n\n @watch('locale')\n protected localeChange() {\n this._intl.locale = this.locale;\n }\n\n @watch('monthFormat')\n protected formatChange() {\n this._intl.update({ month: { month: this.monthFormat } });\n }\n\n constructor() {\n super();\n\n addKeybindings(this, {\n bindingDefaults: { preventDefault: true },\n }).setActivateHandler(this.handleInteraction);\n\n this.addEventListener('click', this.handleInteraction);\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n this.role = 'grid';\n }\n\n /** Focuses the active date. */\n public focusActiveDate(options?: FocusOptions) {\n this.activeMonth.focus(options);\n }\n\n protected handleInteraction(event: Event) {\n const value = getViewElement(event);\n\n if (value !== -1) {\n this._value = this._value.set({ month: value });\n this.emitEvent('igcChange', { detail: this.value });\n }\n }\n\n protected renderMonth(entry: CalendarDay, now: CalendarDay) {\n const ariaLabel = this._intl.get('ariaMonth').format(entry.native);\n const value = this._intl.get('month').format(entry.native);\n\n const active = areSameMonth(this._value, entry);\n const current = areSameMonth(now, entry);\n const selected = this._value.month === entry.month;\n\n return html`\n <span part=${partMap({ month: true, selected, current })}>\n <span\n role=\"gridcell\"\n data-value=${entry.month}\n part=${partMap({ 'month-inner': true, selected, current })}\n aria-selected=${selected}\n aria-label=${ariaLabel}\n tabindex=${active ? 0 : -1}\n >\n ${value}\n </span>\n </span>\n `;\n }\n\n protected override *render() {\n const now = CalendarDay.today;\n const months = Array.from(range(12));\n\n for (const row of chunk(months, MONTHS_PER_ROW)) {\n yield html`\n <div part=\"months-row\" role=\"row\">\n ${row.map((month) =>\n this.renderMonth(this._value.set({ month }), now)\n )}\n </div>\n `;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-months-view': IgcMonthsViewComponent;\n }\n}\n"]}
|
|
@@ -28,7 +28,7 @@ export default class IgcYearsViewComponent extends IgcYearsViewComponent_base {
|
|
|
28
28
|
yearsPerPage: number;
|
|
29
29
|
constructor();
|
|
30
30
|
connectedCallback(): void;
|
|
31
|
-
focusActiveDate(): void;
|
|
31
|
+
focusActiveDate(options?: FocusOptions): void;
|
|
32
32
|
protected handleInteraction(event: Event): void;
|
|
33
33
|
protected renderYear(year: number, now: CalendarDay): import("lit-html").TemplateResult<1>;
|
|
34
34
|
protected render(): Generator<import("lit-html").TemplateResult<1>, void, unknown>;
|
|
@@ -14,7 +14,8 @@ import { blazorIndirectRender } from '../../common/decorators/blazorIndirectRend
|
|
|
14
14
|
import { blazorSuppressComponent } from '../../common/decorators/blazorSuppressComponent.js';
|
|
15
15
|
import { registerComponent } from '../../common/definitions/register.js';
|
|
16
16
|
import { EventEmitterMixin } from '../../common/mixins/event-emitter.js';
|
|
17
|
-
import {
|
|
17
|
+
import { partMap } from '../../common/part-map.js';
|
|
18
|
+
import { chunk } from '../../common/util.js';
|
|
18
19
|
import { YEARS_PER_ROW, getViewElement, getYearRange } from '../helpers.js';
|
|
19
20
|
import { CalendarDay } from '../model.js';
|
|
20
21
|
import { styles } from '../themes/year-month-view.base.css.js';
|
|
@@ -42,8 +43,8 @@ let IgcYearsViewComponent = IgcYearsViewComponent_1 = class IgcYearsViewComponen
|
|
|
42
43
|
super.connectedCallback();
|
|
43
44
|
this.role = 'grid';
|
|
44
45
|
}
|
|
45
|
-
focusActiveDate() {
|
|
46
|
-
this.activeYear.focus();
|
|
46
|
+
focusActiveDate(options) {
|
|
47
|
+
this.activeYear.focus(options);
|
|
47
48
|
}
|
|
48
49
|
handleInteraction(event) {
|
|
49
50
|
const value = getViewElement(event);
|
|
@@ -57,13 +58,12 @@ let IgcYearsViewComponent = IgcYearsViewComponent_1 = class IgcYearsViewComponen
|
|
|
57
58
|
renderYear(year, now) {
|
|
58
59
|
const selected = this._value.year === year;
|
|
59
60
|
const current = year === now.year;
|
|
60
|
-
const parts = { selected, current };
|
|
61
61
|
return html `
|
|
62
|
-
<span part=${
|
|
62
|
+
<span part=${partMap({ year: true, selected, current })}>
|
|
63
63
|
<span
|
|
64
64
|
role="gridcell"
|
|
65
65
|
data-value=${year}
|
|
66
|
-
part=${
|
|
66
|
+
part=${partMap({ 'year-inner': true, selected, current })}
|
|
67
67
|
aria-selected=${selected}
|
|
68
68
|
tabindex=${selected ? 0 : -1}
|
|
69
69
|
>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"years-view.js","sourceRoot":"","sources":["../../../../src/components/calendar/years-view/years-view.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oDAAoD,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAEzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"years-view.js","sourceRoot":"","sources":["../../../../src/components/calendar/years-view/years-view.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { range } from 'lit/directives/range.js';\n\nimport { themes } from '../../../theming/theming-decorator.js';\nimport { addKeybindings } from '../../common/controllers/key-bindings.js';\nimport { blazorIndirectRender } from '../../common/decorators/blazorIndirectRender.js';\nimport { blazorSuppressComponent } from '../../common/decorators/blazorSuppressComponent.js';\nimport { registerComponent } from '../../common/definitions/register.js';\nimport type { Constructor } from '../../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../../common/mixins/event-emitter.js';\nimport { partMap } from '../../common/part-map.js';\nimport { chunk } from '../../common/util.js';\nimport { YEARS_PER_ROW, getViewElement, getYearRange } from '../helpers.js';\nimport { CalendarDay } from '../model.js';\nimport { styles } from '../themes/year-month-view.base.css.js';\nimport { all } from '../themes/year-month.js';\nimport type { IgcCalendarComponentEventMap } from '../types.js';\n\n/**\n * Instantiate a years view as a separate component in the calendar.\n *\n * @element igc-years-view\n *\n * @csspart years-row - The years row container.\n * @csspart year - The year container.\n * @csspart year-inner - The inner year container.\n */\n@blazorIndirectRender\n@blazorSuppressComponent\n@themes(all)\nexport default class IgcYearsViewComponent extends EventEmitterMixin<\n IgcCalendarComponentEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-years-view';\n public static styles = styles;\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcYearsViewComponent);\n }\n\n @state()\n private _value = CalendarDay.today;\n\n @query('[tabindex=\"0\"]')\n private activeYear!: HTMLElement;\n\n /** Тhe current value of the calendar. */\n @property({ attribute: false })\n public set value(value: Date) {\n this._value = CalendarDay.from(value);\n }\n\n public get value() {\n return this._value.native;\n }\n\n /**\n * Sets how many years are displayed on a single page.\n * @attr years-per-page\n */\n @property({ type: Number, attribute: 'years-per-page' })\n public yearsPerPage = 15;\n\n constructor() {\n super();\n\n addKeybindings(this, {\n bindingDefaults: { preventDefault: true },\n }).setActivateHandler(this.handleInteraction);\n\n this.addEventListener('click', this.handleInteraction);\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n this.role = 'grid';\n }\n\n public focusActiveDate(options?: FocusOptions) {\n this.activeYear.focus(options);\n }\n\n protected handleInteraction(event: Event) {\n const value = getViewElement(event);\n\n if (value !== -1) {\n this._value = this._value.set({\n year: value,\n });\n this.emitEvent('igcChange', { detail: this.value });\n }\n }\n\n protected renderYear(year: number, now: CalendarDay) {\n const selected = this._value.year === year;\n const current = year === now.year;\n\n return html`\n <span part=${partMap({ year: true, selected, current })}>\n <span\n role=\"gridcell\"\n data-value=${year}\n part=${partMap({ 'year-inner': true, selected, current })}\n aria-selected=${selected}\n tabindex=${selected ? 0 : -1}\n >\n ${year}\n </span>\n </span>\n `;\n }\n\n protected override *render() {\n const now = CalendarDay.today;\n const { start } = getYearRange(this._value, this.yearsPerPage);\n const years = Array.from(range(start, start + this.yearsPerPage));\n\n for (const row of chunk(years, YEARS_PER_ROW)) {\n yield html`\n <div part=\"years-row\" role=\"row\">\n ${row.map((year) => this.renderYear(year, now))}\n </div>\n `;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-years-view': IgcYearsViewComponent;\n }\n}\n"]}
|
|
@@ -10,8 +10,8 @@ export default class IgcCarouselIndicatorContainerComponent extends LitElement {
|
|
|
10
10
|
static readonly tagName = "igc-carousel-indicator-container";
|
|
11
11
|
static styles: import("lit").CSSResult[];
|
|
12
12
|
static register(): void;
|
|
13
|
-
private
|
|
14
|
-
private
|
|
13
|
+
private readonly _focusRingManager;
|
|
14
|
+
private _handleFocusOut;
|
|
15
15
|
protected render(): import("lit-html").TemplateResult<1>;
|
|
16
16
|
}
|
|
17
17
|
declare global {
|
|
@@ -9,7 +9,7 @@ import { LitElement, html } from 'lit';
|
|
|
9
9
|
import { themes } from '../../theming/theming-decorator.js';
|
|
10
10
|
import { addKeyboardFocusRing } from '../common/controllers/focus-ring.js';
|
|
11
11
|
import { registerComponent } from '../common/definitions/register.js';
|
|
12
|
-
import {
|
|
12
|
+
import { partMap } from '../common/part-map.js';
|
|
13
13
|
import IgcCarouselIndicatorComponent from './carousel-indicator.js';
|
|
14
14
|
import { styles } from './themes/carousel-indicator-container.base.css.js';
|
|
15
15
|
import { all } from './themes/indicator-container.js';
|
|
@@ -17,26 +17,25 @@ import { styles as shared } from './themes/shared/indicator-container/indicator-
|
|
|
17
17
|
let IgcCarouselIndicatorContainerComponent = IgcCarouselIndicatorContainerComponent_1 = class IgcCarouselIndicatorContainerComponent extends LitElement {
|
|
18
18
|
constructor() {
|
|
19
19
|
super(...arguments);
|
|
20
|
-
this.
|
|
20
|
+
this._focusRingManager = addKeyboardFocusRing(this);
|
|
21
21
|
}
|
|
22
22
|
static register() {
|
|
23
23
|
registerComponent(IgcCarouselIndicatorContainerComponent_1);
|
|
24
24
|
}
|
|
25
|
-
|
|
25
|
+
_handleFocusOut(event) {
|
|
26
26
|
const target = event.relatedTarget;
|
|
27
|
-
if (
|
|
28
|
-
|
|
27
|
+
if (target?.matches(IgcCarouselIndicatorComponent.tagName)) {
|
|
28
|
+
event.stopPropagation();
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
render() {
|
|
32
32
|
return html `
|
|
33
33
|
<div
|
|
34
|
-
part=${
|
|
34
|
+
part=${partMap({
|
|
35
35
|
base: true,
|
|
36
|
-
focused: this.
|
|
36
|
+
focused: this._focusRingManager.focused,
|
|
37
37
|
})}
|
|
38
|
-
@
|
|
39
|
-
@focusout=${this.handleFocusOut}
|
|
38
|
+
@focusout=${this._handleFocusOut}
|
|
40
39
|
>
|
|
41
40
|
<slot></slot>
|
|
42
41
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"carousel-indicator-container.js","sourceRoot":"","sources":["../../../src/components/carousel/carousel-indicator-container.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"carousel-indicator-container.js","sourceRoot":"","sources":["../../../src/components/carousel/carousel-indicator-container.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,6BAA6B,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,mDAAmD,CAAC;AAC3E,OAAO,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AACtD,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,uEAAuE,CAAC;AAW1F,IAAM,sCAAsC,8CAA5C,MAAM,sCAAuC,SAAQ,UAAU;IAA/D;;QASI,sBAAiB,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAyBlE,CAAC;IA7BQ,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,wCAAsC,CAAC,CAAC;IAC5D,CAAC;IAIO,eAAe,CAAC,KAAiB;QACvC,MAAM,MAAM,GAAG,KAAK,CAAC,aAAwB,CAAC;QAE9C,IAAI,MAAM,EAAE,OAAO,CAAC,6BAA6B,CAAC,OAAO,CAAC,EAAE,CAAC;YAG3D,KAAK,CAAC,eAAe,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;eAEA,OAAO,CAAC;YACb,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO;SACxC,CAAC;oBACU,IAAI,CAAC,eAAe;;;;KAInC,CAAC;IACJ,CAAC;;AAhCsB,8CAAO,GAAG,kCAAkC,AAArC,CAAsC;AAC7C,6CAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;AAF9B,sCAAsC;IAD1D,MAAM,CAAC,GAAG,CAAC;GACS,sCAAsC,CAkC1D;eAlCoB,sCAAsC","sourcesContent":["import { LitElement, html } from 'lit';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { addKeyboardFocusRing } from '../common/controllers/focus-ring.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { partMap } from '../common/part-map.js';\nimport IgcCarouselIndicatorComponent from './carousel-indicator.js';\nimport { styles } from './themes/carousel-indicator-container.base.css.js';\nimport { all } from './themes/indicator-container.js';\nimport { styles as shared } from './themes/shared/indicator-container/indicator-container.common.css.js';\n\n/* blazorSuppress */\n/**\n * @element igc-carousel-indicator-container\n *\n * @slot - Default slot for the carousel indicator container.\n *\n * @csspart base - The wrapping container of all carousel indicators.\n */\n@themes(all)\nexport default class IgcCarouselIndicatorContainerComponent extends LitElement {\n public static readonly tagName = 'igc-carousel-indicator-container';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcCarouselIndicatorContainerComponent);\n }\n\n private readonly _focusRingManager = addKeyboardFocusRing(this);\n\n private _handleFocusOut(event: FocusEvent): void {\n const target = event.relatedTarget as Element;\n\n if (target?.matches(IgcCarouselIndicatorComponent.tagName)) {\n // Stop the event from hitting the _focusRingManager handler redrawing\n // the keyboard focus styles\n event.stopPropagation();\n }\n }\n\n protected override render() {\n return html`\n <div\n part=${partMap({\n base: true,\n focused: this._focusRingManager.focused,\n })}\n @focusout=${this._handleFocusOut}\n >\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-carousel-indicator-container': IgcCarouselIndicatorContainerComponent;\n }\n}\n"]}
|
|
@@ -34,17 +34,17 @@ export default class IgcCarouselComponent extends IgcCarouselComponent_base {
|
|
|
34
34
|
static readonly tagName = "igc-carousel";
|
|
35
35
|
static register(): void;
|
|
36
36
|
private static readonly increment;
|
|
37
|
-
private _carouselId;
|
|
38
|
-
private
|
|
39
|
-
private _internals;
|
|
37
|
+
private readonly _carouselId;
|
|
38
|
+
private readonly _internals;
|
|
40
39
|
private _lastInterval;
|
|
41
40
|
private _hasKeyboardInteractionOnIndicators;
|
|
42
41
|
private _hasMouseStop;
|
|
42
|
+
private _hasInnerFocus;
|
|
43
43
|
private _context;
|
|
44
|
-
private _carouselSlidesContainerRef;
|
|
45
|
-
private _indicatorsContainerRef;
|
|
46
|
-
private _prevButtonRef;
|
|
47
|
-
private _nextButtonRef;
|
|
44
|
+
private readonly _carouselSlidesContainerRef;
|
|
45
|
+
private readonly _indicatorsContainerRef;
|
|
46
|
+
private readonly _prevButtonRef;
|
|
47
|
+
private readonly _nextButtonRef;
|
|
48
48
|
private get hasProjectedIndicators();
|
|
49
49
|
private get showIndicatorsLabel();
|
|
50
50
|
private get nextIndex();
|
|
@@ -141,7 +141,6 @@ export default class IgcCarouselComponent extends IgcCarouselComponent_base {
|
|
|
141
141
|
constructor();
|
|
142
142
|
private handleSlotChange;
|
|
143
143
|
private handleIndicatorSlotChange;
|
|
144
|
-
private handlePointerDown;
|
|
145
144
|
private handlePointerEnter;
|
|
146
145
|
private handlePointerLeave;
|
|
147
146
|
private handleFocusIn;
|
|
@@ -13,14 +13,14 @@ import { styleMap } from 'lit/directives/style-map.js';
|
|
|
13
13
|
import { themes } from '../../theming/theming-decorator.js';
|
|
14
14
|
import IgcButtonComponent from '../button/button.js';
|
|
15
15
|
import { carouselContext } from '../common/context.js';
|
|
16
|
-
import { addKeyboardFocusRing } from '../common/controllers/focus-ring.js';
|
|
17
16
|
import { addGesturesController, } from '../common/controllers/gestures.js';
|
|
18
17
|
import { addKeybindings, arrowLeft, arrowRight, endKey, homeKey, } from '../common/controllers/key-bindings.js';
|
|
19
18
|
import { createMutationController, } from '../common/controllers/mutation-observer.js';
|
|
20
19
|
import { watch } from '../common/decorators/watch.js';
|
|
21
20
|
import { registerComponent } from '../common/definitions/register.js';
|
|
22
21
|
import { EventEmitterMixin } from '../common/mixins/event-emitter.js';
|
|
23
|
-
import {
|
|
22
|
+
import { partMap } from '../common/part-map.js';
|
|
23
|
+
import { asNumber, createCounter, findElementFromEventPath, first, formatString, isLTR, last, wrap, } from '../common/util.js';
|
|
24
24
|
import IgcIconComponent from '../icon/icon.js';
|
|
25
25
|
import IgcCarouselIndicatorContainerComponent from './carousel-indicator-container.js';
|
|
26
26
|
import IgcCarouselIndicatorComponent from './carousel-indicator.js';
|
|
@@ -81,9 +81,9 @@ let IgcCarouselComponent = IgcCarouselComponent_1 = class IgcCarouselComponent e
|
|
|
81
81
|
constructor() {
|
|
82
82
|
super();
|
|
83
83
|
this._carouselId = `igc-carousel-${IgcCarouselComponent_1.increment()}`;
|
|
84
|
-
this._carouselKeyboardInteractionFocus = addKeyboardFocusRing(this);
|
|
85
84
|
this._hasKeyboardInteractionOnIndicators = false;
|
|
86
85
|
this._hasMouseStop = false;
|
|
86
|
+
this._hasInnerFocus = false;
|
|
87
87
|
this._context = new ContextProvider(this, {
|
|
88
88
|
context: carouselContext,
|
|
89
89
|
initialValue: this,
|
|
@@ -107,9 +107,14 @@ let IgcCarouselComponent = IgcCarouselComponent_1 = class IgcCarouselComponent e
|
|
|
107
107
|
this._internals = this.attachInternals();
|
|
108
108
|
this._internals.role = 'region';
|
|
109
109
|
this._internals.ariaRoleDescription = 'carousel';
|
|
110
|
-
this.addEventListener('pointerdown', this.handlePointerDown);
|
|
111
110
|
this.addEventListener('pointerenter', this.handlePointerEnter);
|
|
112
111
|
this.addEventListener('pointerleave', this.handlePointerLeave);
|
|
112
|
+
this.addEventListener('pointerdown', () => {
|
|
113
|
+
this._hasInnerFocus = false;
|
|
114
|
+
});
|
|
115
|
+
this.addEventListener('keyup', () => {
|
|
116
|
+
this._hasInnerFocus = true;
|
|
117
|
+
});
|
|
113
118
|
addGesturesController(this, {
|
|
114
119
|
ref: this._carouselSlidesContainerRef,
|
|
115
120
|
touchOnly: true,
|
|
@@ -152,27 +157,22 @@ let IgcCarouselComponent = IgcCarouselComponent_1 = class IgcCarouselComponent e
|
|
|
152
157
|
handleIndicatorSlotChange() {
|
|
153
158
|
this.requestUpdate();
|
|
154
159
|
}
|
|
155
|
-
handlePointerDown() {
|
|
156
|
-
if (this._carouselKeyboardInteractionFocus.focused) {
|
|
157
|
-
this._carouselKeyboardInteractionFocus.reset();
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
160
|
handlePointerEnter() {
|
|
161
161
|
this._hasMouseStop = true;
|
|
162
|
-
if (this.
|
|
162
|
+
if (this._hasInnerFocus) {
|
|
163
163
|
return;
|
|
164
164
|
}
|
|
165
165
|
this.handlePauseOnInteraction();
|
|
166
166
|
}
|
|
167
167
|
handlePointerLeave() {
|
|
168
168
|
this._hasMouseStop = false;
|
|
169
|
-
if (this.
|
|
169
|
+
if (this._hasInnerFocus) {
|
|
170
170
|
return;
|
|
171
171
|
}
|
|
172
172
|
this.handlePauseOnInteraction();
|
|
173
173
|
}
|
|
174
174
|
handleFocusIn() {
|
|
175
|
-
if (this.
|
|
175
|
+
if (this._hasInnerFocus || this._hasMouseStop) {
|
|
176
176
|
return;
|
|
177
177
|
}
|
|
178
178
|
this.handlePauseOnInteraction();
|
|
@@ -182,8 +182,8 @@ let IgcCarouselComponent = IgcCarouselComponent_1 = class IgcCarouselComponent e
|
|
|
182
182
|
if (this.contains(node) || this.renderRoot.contains(node)) {
|
|
183
183
|
return;
|
|
184
184
|
}
|
|
185
|
-
if (this.
|
|
186
|
-
this.
|
|
185
|
+
if (this._hasInnerFocus) {
|
|
186
|
+
this._hasInnerFocus = false;
|
|
187
187
|
if (!this._hasMouseStop) {
|
|
188
188
|
this.handlePauseOnInteraction();
|
|
189
189
|
}
|
|
@@ -422,13 +422,17 @@ let IgcCarouselComponent = IgcCarouselComponent_1 = class IgcCarouselComponent e
|
|
|
422
422
|
}
|
|
423
423
|
}
|
|
424
424
|
indicatorTemplate() {
|
|
425
|
-
const parts =
|
|
425
|
+
const parts = {
|
|
426
426
|
indicators: true,
|
|
427
427
|
start: this.indicatorsOrientation === 'start',
|
|
428
|
-
}
|
|
428
|
+
};
|
|
429
429
|
return html `
|
|
430
430
|
<igc-carousel-indicator-container>
|
|
431
|
-
<div
|
|
431
|
+
<div
|
|
432
|
+
${ref(this._indicatorsContainerRef)}
|
|
433
|
+
role="tablist"
|
|
434
|
+
part=${partMap(parts)}
|
|
435
|
+
>
|
|
432
436
|
<slot
|
|
433
437
|
name="indicator"
|
|
434
438
|
@slotchange=${this.handleIndicatorSlotChange}
|
|
@@ -443,14 +447,14 @@ let IgcCarouselComponent = IgcCarouselComponent_1 = class IgcCarouselComponent e
|
|
|
443
447
|
`;
|
|
444
448
|
}
|
|
445
449
|
labelTemplate() {
|
|
446
|
-
const parts =
|
|
450
|
+
const parts = {
|
|
447
451
|
label: true,
|
|
448
452
|
indicators: true,
|
|
449
453
|
start: this.indicatorsOrientation === 'start',
|
|
450
|
-
}
|
|
454
|
+
};
|
|
451
455
|
const value = formatString(this.slidesLabelFormat, this.current + 1, this.total);
|
|
452
456
|
return html `
|
|
453
|
-
<div part=${parts}>
|
|
457
|
+
<div part=${partMap(parts)}>
|
|
454
458
|
<span>${value}</span>
|
|
455
459
|
</div>
|
|
456
460
|
`;
|