igniteui-webcomponents 1.0.0 → 2.0.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 +45 -1
- package/README.md +17 -1
- package/components/avatar/avatar.d.ts +19 -3
- package/components/avatar/avatar.js.map +1 -1
- package/components/avatar/avatar.material.css.d.ts +0 -1
- package/components/avatar/avatar.material.css.js +1 -1
- package/components/avatar/avatar.material.css.js.map +1 -1
- package/components/badge/badge.d.ts +17 -5
- package/components/badge/badge.js.map +1 -1
- package/components/badge/badge.material.css.d.ts +0 -1
- package/components/badge/badge.material.css.js +1 -1
- package/components/badge/badge.material.css.js.map +1 -1
- package/components/button/button-base.d.ts +18 -1
- package/components/button/button-base.js +16 -0
- package/components/button/button-base.js.map +1 -1
- package/components/button/button.d.ts +20 -3
- package/components/button/button.js.map +1 -1
- package/components/button/button.material.css.d.ts +0 -1
- package/components/button/button.material.css.js +1 -1
- package/components/button/button.material.css.js.map +1 -1
- package/components/button/icon-button.d.ts +14 -3
- package/components/button/icon-button.js +15 -1
- package/components/button/icon-button.js.map +1 -1
- package/components/button/icon-button.material.css.d.ts +0 -1
- package/components/button/icon-button.material.css.js +1 -1
- package/components/button/icon-button.material.css.js.map +1 -1
- package/components/calendar/calendar.d.ts +39 -4
- package/components/calendar/calendar.js +34 -12
- package/components/calendar/calendar.js.map +1 -1
- package/components/calendar/calendar.material.css.d.ts +0 -1
- package/components/calendar/calendar.material.css.js +1 -1
- package/components/calendar/calendar.material.css.js.map +1 -1
- package/components/calendar/common/calendar-base.d.ts +17 -2
- package/components/calendar/common/calendar-base.js +28 -4
- package/components/calendar/common/calendar-base.js.map +1 -1
- package/components/calendar/common/calendar.model.d.ts +57 -1
- package/components/calendar/common/utils.d.ts +0 -1
- package/components/calendar/days-view/days-view.d.ts +23 -3
- package/components/calendar/days-view/days-view.js +38 -35
- package/components/calendar/days-view/days-view.js.map +1 -1
- package/components/calendar/days-view/days-view.material.css.d.ts +0 -1
- package/components/calendar/days-view/days-view.material.css.js +1 -1
- package/components/calendar/days-view/days-view.material.css.js.map +1 -1
- package/components/calendar/months-view/months-view.d.ts +15 -3
- package/components/calendar/months-view/months-view.js +4 -2
- package/components/calendar/months-view/months-view.js.map +1 -1
- package/components/calendar/months-view/months-view.material.css.d.ts +0 -1
- package/components/calendar/years-view/years-view.d.ts +13 -2
- package/components/calendar/years-view/years-view.js +4 -2
- package/components/calendar/years-view/years-view.js.map +1 -1
- package/components/calendar/years-view/years-view.material.css.d.ts +0 -1
- package/components/card/card.actions.d.ts +9 -3
- package/components/card/card.actions.js.map +1 -1
- package/components/card/card.actions.material.css.d.ts +0 -1
- package/components/card/card.actions.material.css.js +1 -1
- package/components/card/card.actions.material.css.js.map +1 -1
- package/components/card/card.content.d.ts +7 -3
- package/components/card/card.content.js.map +1 -1
- package/components/card/card.content.material.css.d.ts +0 -1
- package/components/card/card.content.material.css.js +1 -1
- package/components/card/card.content.material.css.js.map +1 -1
- package/components/card/card.d.ts +9 -4
- package/components/card/card.header.d.ts +12 -3
- package/components/card/card.header.js.map +1 -1
- package/components/card/card.header.material.css.d.ts +0 -1
- package/components/card/card.header.material.css.js +1 -1
- package/components/card/card.header.material.css.js.map +1 -1
- package/components/card/card.js +2 -2
- package/components/card/card.js.map +1 -1
- package/components/card/card.material.css.d.ts +0 -1
- package/components/card/card.material.css.js +1 -1
- package/components/card/card.material.css.js.map +1 -1
- package/components/card/card.media.d.ts +7 -3
- package/components/card/card.media.js.map +1 -1
- package/components/card/card.media.material.css.d.ts +0 -1
- package/components/card/card.media.material.css.js +1 -1
- package/components/card/card.media.material.css.js.map +1 -1
- package/components/checkbox/checkbox-base.d.ts +16 -1
- package/components/checkbox/checkbox-base.js.map +1 -1
- package/components/checkbox/checkbox.d.ts +20 -4
- package/components/checkbox/checkbox.js +25 -27
- package/components/checkbox/checkbox.js.map +1 -1
- package/components/checkbox/checkbox.material.css.d.ts +0 -1
- package/components/checkbox/checkbox.material.css.js +1 -1
- package/components/checkbox/checkbox.material.css.js.map +1 -1
- package/components/checkbox/switch.d.ts +18 -3
- package/components/checkbox/switch.js +17 -18
- package/components/checkbox/switch.js.map +1 -1
- package/components/checkbox/switch.material.css.d.ts +0 -1
- package/components/checkbox/switch.material.css.js +1 -1
- package/components/checkbox/switch.material.css.js.map +1 -1
- package/components/common/decorators/alternateName.d.ts +6 -1
- package/components/common/decorators/blazorInclude.d.ts +4 -1
- package/components/common/decorators/blazorIndirectRender.d.ts +4 -0
- package/components/common/decorators/blazorIndirectRender.js +2 -0
- package/components/common/decorators/blazorIndirectRender.js.map +1 -0
- package/components/common/decorators/blazorSuppress.d.ts +4 -1
- package/components/common/decorators/blazorSuppressComponent.d.ts +4 -0
- package/components/common/decorators/blazorSuppressComponent.js +2 -0
- package/components/common/decorators/blazorSuppressComponent.js.map +1 -0
- package/components/common/decorators/blazorTwoWayBind.d.ts +6 -1
- package/components/common/decorators/index.d.ts +2 -1
- package/components/common/decorators/index.js +2 -0
- package/components/common/decorators/index.js.map +1 -1
- package/components/common/decorators/watch.d.ts +0 -1
- package/components/common/definitions/defineAllComponents.d.ts +0 -1
- package/components/common/definitions/defineAllComponents.js +6 -0
- package/components/common/definitions/defineAllComponents.js.map +1 -1
- package/components/common/definitions/defineComponents.d.ts +0 -1
- package/components/common/i18n/calendar.resources.d.ts +0 -1
- package/components/common/mixins/constructor.d.ts +0 -1
- package/components/common/mixins/event-emitter.d.ts +0 -1
- package/components/common/mixins/event-emitter.js.map +1 -1
- package/components/common/mixins/sizable.d.ts +4 -1
- package/components/common/util.d.ts +0 -1
- package/components/form/form.d.ts +18 -3
- package/components/form/form.js +4 -1
- package/components/form/form.js.map +1 -1
- package/components/icon/icon.d.ts +23 -3
- package/components/icon/icon.js.map +1 -1
- package/components/icon/icon.material.css.d.ts +0 -1
- package/components/icon/icon.material.css.js +1 -1
- package/components/icon/icon.material.css.js.map +1 -1
- package/components/icon/icon.registry.d.ts +0 -1
- package/components/input/input.d.ts +54 -3
- package/components/input/input.dark.material.css.d.ts +1 -0
- package/components/input/input.dark.material.css.js +3 -0
- package/components/input/input.dark.material.css.js.map +1 -0
- package/components/input/input.js +3 -3
- package/components/input/input.js.map +1 -1
- package/components/input/input.material.css.d.ts +0 -1
- package/components/input/input.material.css.js +1 -1
- package/components/input/input.material.css.js.map +1 -1
- package/components/list/list-header.d.ts +9 -3
- package/components/list/list-header.js.map +1 -1
- package/components/list/list-header.material.css.d.ts +0 -1
- package/components/list/list-header.material.css.js +1 -1
- package/components/list/list-header.material.css.js.map +1 -1
- package/components/list/list-item.d.ts +21 -3
- package/components/list/list-item.js.map +1 -1
- package/components/list/list-item.material.css.d.ts +0 -1
- package/components/list/list-item.material.css.js +1 -1
- package/components/list/list-item.material.css.js.map +1 -1
- package/components/list/list.d.ts +9 -3
- package/components/list/list.js.map +1 -1
- package/components/list/list.material.css.d.ts +0 -1
- package/components/list/list.material.css.js +1 -1
- package/components/list/list.material.css.js.map +1 -1
- package/components/nav-drawer/nav-drawer-header-item.d.ts +8 -3
- package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
- package/components/nav-drawer/nav-drawer-header-item.material.css.d.ts +0 -1
- package/components/nav-drawer/nav-drawer-header-item.material.css.js +1 -1
- package/components/nav-drawer/nav-drawer-header-item.material.css.js.map +1 -1
- package/components/nav-drawer/nav-drawer-item.d.ts +16 -3
- package/components/nav-drawer/nav-drawer-item.js +2 -2
- package/components/nav-drawer/nav-drawer-item.js.map +1 -1
- package/components/nav-drawer/nav-drawer-item.material.css.d.ts +0 -1
- package/components/nav-drawer/nav-drawer-item.material.css.js +1 -1
- package/components/nav-drawer/nav-drawer-item.material.css.js.map +1 -1
- package/components/nav-drawer/nav-drawer.d.ts +21 -15
- package/components/nav-drawer/nav-drawer.js +1 -34
- package/components/nav-drawer/nav-drawer.js.map +1 -1
- package/components/nav-drawer/nav-drawer.material.css.d.ts +0 -1
- package/components/nav-drawer/nav-drawer.material.css.js +1 -1
- package/components/nav-drawer/nav-drawer.material.css.js.map +1 -1
- package/components/navbar/navbar.d.ts +17 -3
- package/components/navbar/navbar.js.map +1 -1
- package/components/navbar/navbar.material.css.d.ts +0 -1
- package/components/navbar/navbar.material.css.js +1 -1
- package/components/navbar/navbar.material.css.js.map +1 -1
- package/components/radio/radio.d.ts +33 -3
- package/components/radio/radio.js +15 -1
- package/components/radio/radio.js.map +1 -1
- package/components/radio/radio.material.css.d.ts +0 -1
- package/components/radio/radio.material.css.js +1 -1
- package/components/radio/radio.material.css.js.map +1 -1
- package/components/radio-group/radio-group.d.ts +4 -5
- package/components/radio-group/radio-group.js +21 -7
- package/components/radio-group/radio-group.js.map +1 -1
- package/components/radio-group/radio-group.material.css.d.ts +0 -1
- package/components/radio-group/radio-group.material.css.js +1 -1
- package/components/radio-group/radio-group.material.css.js.map +1 -1
- package/components/ripple/ripple.d.ts +8 -3
- package/components/ripple/ripple.js.map +1 -1
- package/components/ripple/ripple.material.css.d.ts +0 -1
- package/components/ripple/ripple.material.css.js +1 -1
- package/components/ripple/ripple.material.css.js.map +1 -1
- package/components/slider/range-slider.d.ts +85 -0
- package/components/slider/range-slider.js +141 -0
- package/components/slider/range-slider.js.map +1 -0
- package/components/slider/slider-base.d.ts +131 -0
- package/components/slider/slider-base.js +503 -0
- package/components/slider/slider-base.js.map +1 -0
- package/components/slider/slider-label.d.ts +6 -0
- package/components/slider/slider-label.js +13 -0
- package/components/slider/slider-label.js.map +1 -0
- package/components/slider/slider.d.ts +76 -0
- package/components/slider/slider.js +80 -0
- package/components/slider/slider.js.map +1 -0
- package/components/slider/slider.material.css.d.ts +1 -0
- package/components/slider/slider.material.css.js +3 -0
- package/components/slider/slider.material.css.js.map +1 -0
- package/custom-elements.json +1017 -45
- package/index.d.ts +5 -1
- package/index.js +4 -0
- package/index.js.map +1 -1
- package/package.json +5 -4
- package/themes/dark/bootstrap.css +1 -0
- package/themes/dark/fluent.css +1 -0
- package/themes/dark/indigo.css +1 -0
- package/themes/dark/material.css +1 -0
- package/themes/light/bootstrap.css +1 -0
- package/themes/light/fluent.css +1 -0
- package/themes/light/indigo.css +1 -0
- package/themes/light/material.css +1 -0
- package/vscode-html-custom-data.json +313 -56
- package/components/avatar/avatar.d.ts.map +0 -1
- package/components/avatar/avatar.material.css.d.ts.map +0 -1
- package/components/badge/badge.d.ts.map +0 -1
- package/components/badge/badge.material.css.d.ts.map +0 -1
- package/components/button/button-base.d.ts.map +0 -1
- package/components/button/button.d.ts.map +0 -1
- package/components/button/button.material.css.d.ts.map +0 -1
- package/components/button/icon-button.d.ts.map +0 -1
- package/components/button/icon-button.material.css.d.ts.map +0 -1
- package/components/calendar/calendar.d.ts.map +0 -1
- package/components/calendar/calendar.material.css.d.ts.map +0 -1
- package/components/calendar/common/calendar-base.d.ts.map +0 -1
- package/components/calendar/common/calendar.model.d.ts.map +0 -1
- package/components/calendar/common/utils.d.ts.map +0 -1
- package/components/calendar/days-view/days-view.d.ts.map +0 -1
- package/components/calendar/days-view/days-view.material.css.d.ts.map +0 -1
- package/components/calendar/months-view/months-view.d.ts.map +0 -1
- package/components/calendar/months-view/months-view.material.css.d.ts.map +0 -1
- package/components/calendar/years-view/years-view.d.ts.map +0 -1
- package/components/calendar/years-view/years-view.material.css.d.ts.map +0 -1
- package/components/card/card.actions.d.ts.map +0 -1
- package/components/card/card.actions.material.css.d.ts.map +0 -1
- package/components/card/card.content.d.ts.map +0 -1
- package/components/card/card.content.material.css.d.ts.map +0 -1
- package/components/card/card.d.ts.map +0 -1
- package/components/card/card.header.d.ts.map +0 -1
- package/components/card/card.header.material.css.d.ts.map +0 -1
- package/components/card/card.material.css.d.ts.map +0 -1
- package/components/card/card.media.d.ts.map +0 -1
- package/components/card/card.media.material.css.d.ts.map +0 -1
- package/components/checkbox/checkbox-base.d.ts.map +0 -1
- package/components/checkbox/checkbox.d.ts.map +0 -1
- package/components/checkbox/checkbox.material.css.d.ts.map +0 -1
- package/components/checkbox/switch.d.ts.map +0 -1
- package/components/checkbox/switch.material.css.d.ts.map +0 -1
- package/components/common/decorators/alternateName.d.ts.map +0 -1
- package/components/common/decorators/blazorInclude.d.ts.map +0 -1
- package/components/common/decorators/blazorSuppress.d.ts.map +0 -1
- package/components/common/decorators/blazorTwoWayBind.d.ts.map +0 -1
- package/components/common/decorators/index.d.ts.map +0 -1
- package/components/common/decorators/watch.d.ts.map +0 -1
- package/components/common/definitions/defineAllComponents.d.ts.map +0 -1
- package/components/common/definitions/defineComponents.d.ts.map +0 -1
- package/components/common/i18n/calendar.resources.d.ts.map +0 -1
- package/components/common/mixins/constructor.d.ts.map +0 -1
- package/components/common/mixins/event-emitter.d.ts.map +0 -1
- package/components/common/mixins/sizable.d.ts.map +0 -1
- package/components/common/util.d.ts.map +0 -1
- package/components/form/form.d.ts.map +0 -1
- package/components/icon/icon.d.ts.map +0 -1
- package/components/icon/icon.material.css.d.ts.map +0 -1
- package/components/icon/icon.registry.d.ts.map +0 -1
- package/components/input/input.d.ts.map +0 -1
- package/components/input/input.material.css.d.ts.map +0 -1
- package/components/list/list-header.d.ts.map +0 -1
- package/components/list/list-header.material.css.d.ts.map +0 -1
- package/components/list/list-item.d.ts.map +0 -1
- package/components/list/list-item.material.css.d.ts.map +0 -1
- package/components/list/list.d.ts.map +0 -1
- package/components/list/list.material.css.d.ts.map +0 -1
- package/components/nav-drawer/nav-drawer-header-item.d.ts.map +0 -1
- package/components/nav-drawer/nav-drawer-header-item.material.css.d.ts.map +0 -1
- package/components/nav-drawer/nav-drawer-item.d.ts.map +0 -1
- package/components/nav-drawer/nav-drawer-item.material.css.d.ts.map +0 -1
- package/components/nav-drawer/nav-drawer.d.ts.map +0 -1
- package/components/nav-drawer/nav-drawer.material.css.d.ts.map +0 -1
- package/components/navbar/navbar.d.ts.map +0 -1
- package/components/navbar/navbar.material.css.d.ts.map +0 -1
- package/components/radio/radio.d.ts.map +0 -1
- package/components/radio/radio.material.css.d.ts.map +0 -1
- package/components/radio-group/radio-group.d.ts.map +0 -1
- package/components/radio-group/radio-group.material.css.d.ts.map +0 -1
- package/components/ripple/ripple.d.ts.map +0 -1
- package/components/ripple/ripple.material.css.d.ts.map +0 -1
- package/index.d.ts.map +0 -1
- package/themes/bootstrap.css +0 -1
- package/themes/fluent.css +0 -1
- package/themes/indigo.css +0 -1
- package/themes/material.css +0 -1
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { html } from 'lit';
|
|
8
|
+
import { property, query } from 'lit/decorators.js';
|
|
9
|
+
import { EventEmitterMixin } from '../common/mixins/event-emitter';
|
|
10
|
+
import { IgcSliderBaseComponent } from './slider-base';
|
|
11
|
+
export default class IgcRangeSliderComponent extends EventEmitterMixin(IgcSliderBaseComponent) {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this._lower = 0;
|
|
15
|
+
this._upper = 0;
|
|
16
|
+
}
|
|
17
|
+
set lower(val) {
|
|
18
|
+
const oldVal = this._lower;
|
|
19
|
+
this._lower = this.validateValue(val);
|
|
20
|
+
this.requestUpdate('lower', oldVal);
|
|
21
|
+
}
|
|
22
|
+
get lower() {
|
|
23
|
+
return this._lower;
|
|
24
|
+
}
|
|
25
|
+
set upper(val) {
|
|
26
|
+
const oldVal = this._upper;
|
|
27
|
+
this._upper = this.validateValue(val);
|
|
28
|
+
this.requestUpdate('upper', oldVal);
|
|
29
|
+
}
|
|
30
|
+
get upper() {
|
|
31
|
+
return this._upper;
|
|
32
|
+
}
|
|
33
|
+
get activeValue() {
|
|
34
|
+
return this.activeThumb === this.thumbFrom ? this.lower : this.upper;
|
|
35
|
+
}
|
|
36
|
+
normalizeValue() {
|
|
37
|
+
this._lower = this.validateValue(this._lower);
|
|
38
|
+
this._upper = this.validateValue(this._upper);
|
|
39
|
+
}
|
|
40
|
+
getTrackStyle() {
|
|
41
|
+
const toPosition = this.valueToFraction(this.upper);
|
|
42
|
+
const fromPosition = this.valueToFraction(this.lower);
|
|
43
|
+
const positionGap = toPosition - fromPosition;
|
|
44
|
+
const filledTrackStyle = {
|
|
45
|
+
width: `${positionGap * 100}%`,
|
|
46
|
+
insetInlineStart: `${fromPosition * 100}%`,
|
|
47
|
+
};
|
|
48
|
+
return filledTrackStyle;
|
|
49
|
+
}
|
|
50
|
+
closestTo(goal, positions) {
|
|
51
|
+
return positions.reduce((previous, current) => Math.abs(goal - current) < Math.abs(goal - previous) ? current : previous);
|
|
52
|
+
}
|
|
53
|
+
closestHandle(event) {
|
|
54
|
+
const fromOffset = this.thumbFrom.offsetLeft + this.thumbFrom.offsetWidth / 2;
|
|
55
|
+
const toOffset = this.thumbTo.offsetLeft + this.thumbTo.offsetWidth / 2;
|
|
56
|
+
const xPointer = event.clientX - this.getBoundingClientRect().left;
|
|
57
|
+
const match = this.closestTo(xPointer, [fromOffset, toOffset]);
|
|
58
|
+
if (fromOffset === toOffset && toOffset < xPointer) {
|
|
59
|
+
return this.thumbTo;
|
|
60
|
+
}
|
|
61
|
+
else if (fromOffset === toOffset && toOffset > xPointer) {
|
|
62
|
+
return this.thumbFrom;
|
|
63
|
+
}
|
|
64
|
+
else if (match === fromOffset) {
|
|
65
|
+
return this.thumbFrom;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
return this.thumbTo;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
updateValue(increment) {
|
|
72
|
+
const oldValue = this.activeValue;
|
|
73
|
+
let lower = this.lower;
|
|
74
|
+
let upper = this.upper;
|
|
75
|
+
if (this.activeThumb === this.thumbFrom) {
|
|
76
|
+
lower += increment;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
upper += increment;
|
|
80
|
+
}
|
|
81
|
+
if (lower >= upper) {
|
|
82
|
+
this.swapValues(lower, upper);
|
|
83
|
+
this.toggleActiveThumb();
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
if (this.activeThumb === this.thumbFrom) {
|
|
87
|
+
this.lower = lower;
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
this.upper = upper;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (oldValue === this.activeValue) {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
this.emitInputEvent();
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
emitInputEvent() {
|
|
100
|
+
this.emitEvent('igcInput', {
|
|
101
|
+
detail: { lower: this.lower, upper: this.upper },
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
emitChangeEvent() {
|
|
105
|
+
this.emitEvent('igcChange', {
|
|
106
|
+
detail: { lower: this.lower, upper: this.upper },
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
swapValues(lower, upper) {
|
|
110
|
+
this.lower = upper;
|
|
111
|
+
this.upper = lower;
|
|
112
|
+
}
|
|
113
|
+
toggleActiveThumb() {
|
|
114
|
+
const thumb = this.activeThumb === this.thumbFrom ? this.thumbTo : this.thumbFrom;
|
|
115
|
+
thumb.focus();
|
|
116
|
+
}
|
|
117
|
+
renderThumbs() {
|
|
118
|
+
return html `${this.renderThumb(this.lower, this.ariaLabelLower, 'thumbFrom')}
|
|
119
|
+
${this.renderThumb(this.upper, this.ariaLabelUpper, 'thumbTo')}`;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
IgcRangeSliderComponent.tagName = 'igc-range-slider';
|
|
123
|
+
__decorate([
|
|
124
|
+
query(`#thumbFrom`)
|
|
125
|
+
], IgcRangeSliderComponent.prototype, "thumbFrom", void 0);
|
|
126
|
+
__decorate([
|
|
127
|
+
query(`#thumbTo`)
|
|
128
|
+
], IgcRangeSliderComponent.prototype, "thumbTo", void 0);
|
|
129
|
+
__decorate([
|
|
130
|
+
property({ type: Number })
|
|
131
|
+
], IgcRangeSliderComponent.prototype, "lower", null);
|
|
132
|
+
__decorate([
|
|
133
|
+
property({ type: Number })
|
|
134
|
+
], IgcRangeSliderComponent.prototype, "upper", null);
|
|
135
|
+
__decorate([
|
|
136
|
+
property({ attribute: 'aria-label-lower' })
|
|
137
|
+
], IgcRangeSliderComponent.prototype, "ariaLabelLower", void 0);
|
|
138
|
+
__decorate([
|
|
139
|
+
property({ attribute: 'aria-label-upper' })
|
|
140
|
+
], IgcRangeSliderComponent.prototype, "ariaLabelUpper", void 0);
|
|
141
|
+
//# sourceMappingURL=range-slider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range-slider.js","sourceRoot":"","sources":["../../../src/components/slider/range-slider.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { Constructor } from '../common/mixins/constructor';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter';\nimport { IgcSliderBaseComponent } from './slider-base';\n\nexport interface IgcRangeSliderValue {\n lower: number;\n upper: number;\n}\n\nexport interface IgcRangeSliderEventMap {\n /**\n * Emitted when a value is changed via thumb drag or keyboard interaction.\n */\n igcInput: CustomEvent<IgcRangeSliderValue>;\n /**\n * Emitted when a value change is committed on a thumb drag end or keyboard interaction.\n */\n igcChange: CustomEvent<IgcRangeSliderValue>;\n}\n\n/**\n * A range slider component used to select two numeric values within a range.\n *\n * @element igc-range-slider\n *\n * @fires igcInput - Emitted when a value is changed via thumb drag or keyboard interaction.\n * @fires igcChange - Emitted when a value change is committed on a thumb drag end or keyboard interaction.\n *\n * @csspart base - The base wrapper of the slider.\n * @csspart ticks - The ticks container.\n * @csspart tick-group - The tick group container.\n * @csspart tick - The tick element.\n * @csspart tick-label - The tick label element.\n * @csspart tick-label-inner - The inner element of the tick label.\n * @csspart thumbs - The thumbs container.\n * @csspart thumb - The thumb element.\n * @csspart thumb-label - The thumb tooltip label container.\n * @csspart thumb-label-inner - The thumb tooltip label inner element.\n * @csspart track - The track container.\n * @csspart steps - The track steps element.\n * @csspart inactive - The inactive element of the track.\n * @csspart fill - The filled part of the track.\n */\nexport default class IgcRangeSliderComponent extends EventEmitterMixin<\n IgcRangeSliderEventMap,\n Constructor<IgcSliderBaseComponent>\n>(IgcSliderBaseComponent) {\n public static readonly tagName = 'igc-range-slider';\n\n @query(`#thumbFrom`)\n private thumbFrom!: HTMLElement;\n\n @query(`#thumbTo`)\n private thumbTo!: HTMLElement;\n\n private _lower = 0;\n private _upper = 0;\n\n public set lower(val: number) {\n const oldVal = this._lower;\n this._lower = this.validateValue(val);\n this.requestUpdate('lower', oldVal);\n }\n\n /**\n * The current value of the lower thumb.\n */\n @property({ type: Number })\n public get lower() {\n return this._lower;\n }\n\n public set upper(val: number) {\n const oldVal = this._upper;\n this._upper = this.validateValue(val);\n this.requestUpdate('upper', oldVal);\n }\n\n /**\n * The current value of the upper thumb.\n */\n @property({ type: Number })\n public get upper() {\n return this._upper;\n }\n\n /**\n * The aria label of the lower thumb.\n */\n @property({ attribute: 'aria-label-lower' })\n public ariaLabelLower!: string;\n\n /**\n * The aria label of the upper thumb.\n */\n @property({ attribute: 'aria-label-upper' })\n public ariaLabelUpper!: string;\n\n protected override get activeValue(): number {\n return this.activeThumb === this.thumbFrom ? this.lower : this.upper;\n }\n\n protected override normalizeValue(): void {\n this._lower = this.validateValue(this._lower);\n this._upper = this.validateValue(this._upper);\n }\n\n protected override getTrackStyle() {\n const toPosition = this.valueToFraction(this.upper);\n const fromPosition = this.valueToFraction(this.lower);\n const positionGap = toPosition - fromPosition;\n\n const filledTrackStyle = {\n width: `${positionGap * 100}%`,\n insetInlineStart: `${fromPosition * 100}%`,\n };\n\n return filledTrackStyle;\n }\n\n private closestTo(goal: number, positions: number[]): number {\n return positions.reduce((previous, current) =>\n Math.abs(goal - current) < Math.abs(goal - previous) ? current : previous\n );\n }\n\n protected override closestHandle(event: PointerEvent): HTMLElement {\n const fromOffset =\n this.thumbFrom.offsetLeft + this.thumbFrom.offsetWidth / 2;\n const toOffset = this.thumbTo.offsetLeft + this.thumbTo.offsetWidth / 2;\n const xPointer = event.clientX - this.getBoundingClientRect().left;\n const match = this.closestTo(xPointer, [fromOffset, toOffset]);\n\n if (fromOffset === toOffset && toOffset < xPointer) {\n return this.thumbTo;\n } else if (fromOffset === toOffset && toOffset > xPointer) {\n return this.thumbFrom;\n } else if (match === fromOffset) {\n return this.thumbFrom;\n } else {\n return this.thumbTo;\n }\n }\n\n protected override updateValue(increment: number) {\n const oldValue = this.activeValue;\n\n let lower = this.lower;\n let upper = this.upper;\n\n if (this.activeThumb === this.thumbFrom) {\n lower += increment;\n } else {\n upper += increment;\n }\n\n if (lower >= upper) {\n this.swapValues(lower, upper);\n this.toggleActiveThumb();\n } else {\n if (this.activeThumb === this.thumbFrom) {\n this.lower = lower;\n } else {\n this.upper = upper;\n }\n }\n\n if (oldValue === this.activeValue) {\n return false;\n }\n\n this.emitInputEvent();\n return true;\n }\n\n protected override emitInputEvent() {\n this.emitEvent('igcInput', {\n detail: { lower: this.lower, upper: this.upper },\n });\n }\n\n protected override emitChangeEvent() {\n this.emitEvent('igcChange', {\n detail: { lower: this.lower, upper: this.upper },\n });\n }\n\n private swapValues(lower: number, upper: number) {\n this.lower = upper;\n this.upper = lower;\n }\n\n private toggleActiveThumb() {\n const thumb =\n this.activeThumb === this.thumbFrom ? this.thumbTo : this.thumbFrom;\n thumb.focus();\n }\n\n protected override renderThumbs() {\n return html`${this.renderThumb(\n this.lower,\n this.ariaLabelLower,\n 'thumbFrom'\n )}\n ${this.renderThumb(this.upper, this.ariaLabelUpper, 'thumbTo')}`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-range-slider': IgcRangeSliderComponent;\n }\n}\n"]}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { LitElement, TemplateResult } from 'lit';
|
|
2
|
+
import { StyleInfo } from 'lit/directives/style-map.js';
|
|
3
|
+
export declare class IgcSliderBaseComponent extends LitElement {
|
|
4
|
+
static styles: import("lit").CSSResult[];
|
|
5
|
+
protected thumb: HTMLElement;
|
|
6
|
+
private labelElements;
|
|
7
|
+
private _lowerBound?;
|
|
8
|
+
private _upperBound?;
|
|
9
|
+
private _min;
|
|
10
|
+
private _max;
|
|
11
|
+
private _step;
|
|
12
|
+
private startValue?;
|
|
13
|
+
private pointerCaptured;
|
|
14
|
+
private thumbHoverTimer;
|
|
15
|
+
protected activeThumb?: HTMLElement;
|
|
16
|
+
private thumbLabelsVisible;
|
|
17
|
+
private labels?;
|
|
18
|
+
set min(value: number);
|
|
19
|
+
/**
|
|
20
|
+
* The minimum value of the slider scale. Defaults to 0.
|
|
21
|
+
*/
|
|
22
|
+
get min(): number;
|
|
23
|
+
set max(value: number);
|
|
24
|
+
/**
|
|
25
|
+
* The maximum value of the slider scale. Defaults to 100.
|
|
26
|
+
*/
|
|
27
|
+
get max(): number;
|
|
28
|
+
set lowerBound(value: number | undefined);
|
|
29
|
+
/**
|
|
30
|
+
* The lower bound of the slider value. If not set, the `min` value is applied.
|
|
31
|
+
*/
|
|
32
|
+
get lowerBound(): number | undefined;
|
|
33
|
+
set upperBound(value: number | undefined);
|
|
34
|
+
/**
|
|
35
|
+
* The upper bound of the slider value. If not set, the `max` value is applied.
|
|
36
|
+
*/
|
|
37
|
+
get upperBound(): number | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* Disables the UI interactions of the slider.
|
|
40
|
+
*/
|
|
41
|
+
disabled: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Marks the slider track as discrete so it displays the steps.
|
|
44
|
+
* If the `step` is 0, the slider will remain continuos even if `discreteTrack` is `true`.
|
|
45
|
+
*/
|
|
46
|
+
discreteTrack: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Hides the thumb tooltip.
|
|
49
|
+
*/
|
|
50
|
+
hideTooltip: boolean;
|
|
51
|
+
set step(value: number);
|
|
52
|
+
/**
|
|
53
|
+
* Specifies the granularity that the value must adhere to.
|
|
54
|
+
* If set to 0 no stepping is implied and any value in the range is allowed.
|
|
55
|
+
*/
|
|
56
|
+
get step(): number;
|
|
57
|
+
/**
|
|
58
|
+
* The number of primary ticks. It defaults to 0 which means no primary ticks are displayed.
|
|
59
|
+
*/
|
|
60
|
+
primaryTicks: number;
|
|
61
|
+
/**
|
|
62
|
+
* The number of secondary ticks. It defaults to 0 which means no secondary ticks are displayed.
|
|
63
|
+
*/
|
|
64
|
+
secondaryTicks: number;
|
|
65
|
+
/**
|
|
66
|
+
* Changes the orientation of the ticks.
|
|
67
|
+
*/
|
|
68
|
+
tickOrientation: 'mirror' | 'start' | 'end';
|
|
69
|
+
/**
|
|
70
|
+
* Hides the primary tick labels.
|
|
71
|
+
*/
|
|
72
|
+
hidePrimaryLabels: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Hides the secondary tick labels.
|
|
75
|
+
*/
|
|
76
|
+
hideSecondaryLabels: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* The locale used to format the thumb and tick label values in the slider.
|
|
79
|
+
*/
|
|
80
|
+
locale: string;
|
|
81
|
+
/**
|
|
82
|
+
* String format used for the thumb and tick label values in the slider.
|
|
83
|
+
*/
|
|
84
|
+
valueFormat?: string;
|
|
85
|
+
/**
|
|
86
|
+
* Number format options used for the thumb and tick label values in the slider.
|
|
87
|
+
*/
|
|
88
|
+
valueFormatOptions?: Intl.NumberFormatOptions;
|
|
89
|
+
/**
|
|
90
|
+
* The degrees for the rotation of the tick labels. Defaults to 0.
|
|
91
|
+
*/
|
|
92
|
+
tickLabelRotation: 0 | 90 | -90;
|
|
93
|
+
protected constraintsChange(): void;
|
|
94
|
+
protected labelsChange(): void;
|
|
95
|
+
constructor();
|
|
96
|
+
connectedCallback(): void;
|
|
97
|
+
protected handleSlotChange(): void;
|
|
98
|
+
protected get activeValue(): number;
|
|
99
|
+
protected normalizeValue(): void;
|
|
100
|
+
protected getTrackStyle(): StyleInfo;
|
|
101
|
+
protected updateValue(_increment: number): boolean;
|
|
102
|
+
protected renderThumbs(): TemplateResult<1>;
|
|
103
|
+
protected emitInputEvent(): void;
|
|
104
|
+
protected emitChangeEvent(): void;
|
|
105
|
+
private get actualMin();
|
|
106
|
+
private get actualMax();
|
|
107
|
+
private get isLTR();
|
|
108
|
+
protected validateValue(value: number): number;
|
|
109
|
+
private formatValue;
|
|
110
|
+
private normalizeByStep;
|
|
111
|
+
protected closestHandle(_event: PointerEvent): HTMLElement;
|
|
112
|
+
private totalTickCount;
|
|
113
|
+
private tickValue;
|
|
114
|
+
private isPrimary;
|
|
115
|
+
private showThumbLabels;
|
|
116
|
+
private hideThumbLabels;
|
|
117
|
+
private valueInRange;
|
|
118
|
+
protected valueToFraction(value: number): number;
|
|
119
|
+
private calculateTrackUpdate;
|
|
120
|
+
private updateSlider;
|
|
121
|
+
private pointerDown;
|
|
122
|
+
private pointerMove;
|
|
123
|
+
private lostPointerCapture;
|
|
124
|
+
private handleKeydown;
|
|
125
|
+
private handleThumbPointerEnter;
|
|
126
|
+
private handleThumbPointerLeave;
|
|
127
|
+
protected renderTicks(): TemplateResult<1>[];
|
|
128
|
+
protected renderThumb(value: number, ariaLabel?: string, thumbId?: string): TemplateResult<1>;
|
|
129
|
+
private renderSteps;
|
|
130
|
+
protected render(): TemplateResult<1>;
|
|
131
|
+
}
|