igniteui-webcomponents 2.1.1 → 2.2.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 +11 -13
- package/components/avatar/themes/avatar.base.css.js +1 -1
- package/components/avatar/themes/avatar.base.css.js.map +1 -1
- package/components/badge/themes/light/badge.base.css.js +1 -1
- package/components/badge/themes/light/badge.base.css.js.map +1 -1
- package/components/button/button-base.js +2 -2
- package/components/button/button-base.js.map +1 -1
- package/components/button/themes/button/light/button.base.css.js +1 -1
- package/components/button/themes/button/light/button.base.css.js.map +1 -1
- package/components/button/themes/button/light/button.bootstrap.css.js +1 -1
- package/components/button/themes/button/light/button.bootstrap.css.js.map +1 -1
- package/components/button/themes/button/light/button.fluent.css.js +1 -1
- package/components/button/themes/button/light/button.fluent.css.js.map +1 -1
- package/components/button/themes/button/light/button.indigo.css.js +1 -1
- package/components/button/themes/button/light/button.indigo.css.js.map +1 -1
- package/components/button/themes/button/light/button.material.css.js +1 -1
- package/components/button/themes/button/light/button.material.css.js.map +1 -1
- package/components/button/themes/icon-button/light/icon-button.base.css.js +1 -1
- package/components/button/themes/icon-button/light/icon-button.base.css.js.map +1 -1
- package/components/button/themes/icon-button/light/icon-button.bootstrap.css.js +1 -1
- package/components/button/themes/icon-button/light/icon-button.bootstrap.css.js.map +1 -1
- package/components/button/themes/icon-button/light/icon-button.fluent.css.js +1 -1
- package/components/button/themes/icon-button/light/icon-button.fluent.css.js.map +1 -1
- package/components/button/themes/icon-button/light/icon-button.indigo.css.js +1 -1
- package/components/button/themes/icon-button/light/icon-button.indigo.css.js.map +1 -1
- package/components/calendar/calendar.js +1 -2
- package/components/calendar/calendar.js.map +1 -1
- package/components/calendar/common/calendar-base.js +5 -1
- package/components/calendar/common/calendar-base.js.map +1 -1
- package/components/calendar/themes/bootstrap/days-view.bootstrap.css.js +1 -1
- package/components/calendar/themes/bootstrap/days-view.bootstrap.css.js.map +1 -1
- package/components/calendar/themes/calendar.base.css.js +1 -1
- package/components/calendar/themes/calendar.base.css.js.map +1 -1
- package/components/calendar/themes/days-view.base.css.js +1 -1
- package/components/calendar/themes/days-view.base.css.js.map +1 -1
- package/components/calendar/themes/fluent/calendar.fluent.css.js +1 -1
- package/components/calendar/themes/fluent/calendar.fluent.css.js.map +1 -1
- package/components/calendar/themes/fluent/days-view.fluent.css.js +1 -1
- package/components/calendar/themes/fluent/days-view.fluent.css.js.map +1 -1
- package/components/card/card.actions.d.ts +2 -0
- package/components/card/card.actions.js +8 -0
- package/components/card/card.actions.js.map +1 -1
- package/components/card/themes/light/card.actions.bootstrap.css.js +1 -1
- package/components/card/themes/light/card.actions.bootstrap.css.js.map +1 -1
- package/components/card/themes/light/card.actions.material.css.js +1 -1
- package/components/card/themes/light/card.actions.material.css.js.map +1 -1
- package/components/card/themes/light/card.content.bootstrap.css.js +1 -1
- package/components/card/themes/light/card.content.bootstrap.css.js.map +1 -1
- package/components/card/themes/light/card.content.indigo.css.js +1 -1
- package/components/card/themes/light/card.content.indigo.css.js.map +1 -1
- package/components/card/themes/light/card.content.material.css.js +1 -1
- package/components/card/themes/light/card.content.material.css.js.map +1 -1
- package/components/card/themes/light/card.header.bootstrap.css.js +1 -1
- package/components/card/themes/light/card.header.bootstrap.css.js.map +1 -1
- package/components/card/themes/light/card.header.indigo.css.js +1 -1
- package/components/card/themes/light/card.header.indigo.css.js.map +1 -1
- package/components/card/themes/light/card.header.material.css.js +1 -1
- package/components/card/themes/light/card.header.material.css.js.map +1 -1
- package/components/card/themes/light/card.material.css.js +1 -1
- package/components/card/themes/light/card.material.css.js.map +1 -1
- package/components/card/themes/light/card.media.material.css.js +1 -1
- package/components/card/themes/light/card.media.material.css.js.map +1 -1
- package/components/checkbox/checkbox-base.d.ts +5 -1
- package/components/checkbox/checkbox-base.js +20 -2
- package/components/checkbox/checkbox-base.js.map +1 -1
- package/components/checkbox/checkbox.js +8 -2
- package/components/checkbox/checkbox.js.map +1 -1
- package/components/checkbox/switch.js +9 -2
- package/components/checkbox/switch.js.map +1 -1
- package/components/checkbox/themes/light/checkbox.base.css.js +1 -1
- package/components/checkbox/themes/light/checkbox.base.css.js.map +1 -1
- package/components/checkbox/themes/light/checkbox.fluent.css.js +1 -1
- package/components/checkbox/themes/light/checkbox.fluent.css.js.map +1 -1
- package/components/checkbox/themes/light/checkbox.material.css.js +1 -1
- package/components/checkbox/themes/light/checkbox.material.css.js.map +1 -1
- package/components/checkbox/themes/light/switch.base.css.js +1 -1
- package/components/checkbox/themes/light/switch.base.css.js.map +1 -1
- package/components/checkbox/themes/light/switch.bootstrap.css.js +1 -1
- package/components/checkbox/themes/light/switch.bootstrap.css.js.map +1 -1
- package/components/checkbox/themes/light/switch.fluent.css.js +1 -1
- package/components/checkbox/themes/light/switch.fluent.css.js.map +1 -1
- package/components/checkbox/themes/light/switch.indigo.css.js +1 -1
- package/components/checkbox/themes/light/switch.indigo.css.js.map +1 -1
- package/components/chip/chip.js +1 -1
- package/components/chip/chip.js.map +1 -1
- package/components/chip/themes/chip.base.css.js +1 -1
- package/components/chip/themes/chip.base.css.js.map +1 -1
- package/components/chip/themes/chip.bootstrap.css.js +1 -1
- package/components/chip/themes/chip.bootstrap.css.js.map +1 -1
- package/components/chip/themes/chip.fluent.css.js +1 -1
- package/components/chip/themes/chip.fluent.css.js.map +1 -1
- package/components/chip/themes/chip.indigo.css.js +1 -1
- package/components/chip/themes/chip.indigo.css.js.map +1 -1
- package/components/chip/themes/chip.material.css.js +1 -1
- package/components/chip/themes/chip.material.css.js.map +1 -1
- package/components/common/decorators/blazorTypeOverride.d.ts +7 -0
- package/components/common/decorators/blazorTypeOverride.js +4 -0
- package/components/common/decorators/blazorTypeOverride.js.map +1 -0
- package/components/common/decorators/index.d.ts +1 -0
- package/components/common/decorators/index.js +1 -0
- package/components/common/decorators/index.js.map +1 -1
- package/components/common/definitions/defineAllComponents.js +8 -0
- package/components/common/definitions/defineAllComponents.js.map +1 -1
- package/components/dropdown/dropdown-group.d.ts +25 -0
- package/components/dropdown/dropdown-group.js +42 -0
- package/components/dropdown/dropdown-group.js.map +1 -0
- package/components/dropdown/dropdown-header.d.ts +16 -0
- package/components/dropdown/dropdown-header.js +22 -0
- package/components/dropdown/dropdown-header.js.map +1 -0
- package/components/dropdown/dropdown-item.d.ts +46 -0
- package/components/dropdown/dropdown-item.js +78 -0
- package/components/dropdown/dropdown-item.js.map +1 -0
- package/components/dropdown/dropdown.d.ts +117 -0
- package/components/dropdown/dropdown.js +412 -0
- package/components/dropdown/dropdown.js.map +1 -0
- package/components/dropdown/themes/dark/dropdown.bootstrap.css.d.ts +1 -0
- package/components/dropdown/themes/dark/dropdown.bootstrap.css.js +3 -0
- package/components/dropdown/themes/dark/dropdown.bootstrap.css.js.map +1 -0
- package/components/dropdown/themes/dark/dropdown.fluent.css.d.ts +1 -0
- package/components/dropdown/themes/dark/dropdown.fluent.css.js +3 -0
- package/components/dropdown/themes/dark/dropdown.fluent.css.js.map +1 -0
- package/components/dropdown/themes/dark/dropdown.indigo.css.d.ts +1 -0
- package/components/dropdown/themes/dark/dropdown.indigo.css.js +3 -0
- package/components/dropdown/themes/dark/dropdown.indigo.css.js.map +1 -0
- package/components/dropdown/themes/light/dropdown-group.base.css.d.ts +1 -0
- package/components/dropdown/themes/light/dropdown-group.base.css.js +3 -0
- package/components/dropdown/themes/light/dropdown-group.base.css.js.map +1 -0
- package/components/dropdown/themes/light/dropdown-group.fluent.css.d.ts +1 -0
- package/components/dropdown/themes/light/dropdown-group.fluent.css.js +3 -0
- package/components/dropdown/themes/light/dropdown-group.fluent.css.js.map +1 -0
- package/components/dropdown/themes/light/dropdown-header.base.css.d.ts +1 -0
- package/components/dropdown/themes/light/dropdown-header.base.css.js +3 -0
- package/components/dropdown/themes/light/dropdown-header.base.css.js.map +1 -0
- package/components/dropdown/themes/light/dropdown-header.bootstrap.css.d.ts +1 -0
- package/components/dropdown/themes/light/dropdown-header.bootstrap.css.js +3 -0
- package/components/dropdown/themes/light/dropdown-header.bootstrap.css.js.map +1 -0
- package/components/dropdown/themes/light/dropdown-item.base.css.d.ts +1 -0
- package/components/dropdown/themes/light/dropdown-item.base.css.js +3 -0
- package/components/dropdown/themes/light/dropdown-item.base.css.js.map +1 -0
- package/components/dropdown/themes/light/dropdown-item.bootstrap.css.d.ts +1 -0
- package/components/dropdown/themes/light/dropdown-item.bootstrap.css.js +3 -0
- package/components/dropdown/themes/light/dropdown-item.bootstrap.css.js.map +1 -0
- package/components/dropdown/themes/light/dropdown-item.fluent.css.d.ts +1 -0
- package/components/dropdown/themes/light/dropdown-item.fluent.css.js +3 -0
- package/components/dropdown/themes/light/dropdown-item.fluent.css.js.map +1 -0
- package/components/dropdown/themes/light/dropdown-item.indigo.css.d.ts +1 -0
- package/components/dropdown/themes/light/dropdown-item.indigo.css.js +3 -0
- package/components/dropdown/themes/light/dropdown-item.indigo.css.js.map +1 -0
- package/components/dropdown/themes/light/dropdown.base.css.d.ts +1 -0
- package/components/dropdown/themes/light/dropdown.base.css.js +3 -0
- package/components/dropdown/themes/light/dropdown.base.css.js.map +1 -0
- package/components/dropdown/themes/light/dropdown.bootstrap.css.d.ts +1 -0
- package/components/dropdown/themes/light/dropdown.bootstrap.css.js +3 -0
- package/components/dropdown/themes/light/dropdown.bootstrap.css.js.map +1 -0
- package/components/dropdown/themes/light/dropdown.fluent.css.d.ts +1 -0
- package/components/dropdown/themes/light/dropdown.fluent.css.js +3 -0
- package/components/dropdown/themes/light/dropdown.fluent.css.js.map +1 -0
- package/components/dropdown/themes/light/dropdown.indigo.css.d.ts +1 -0
- package/components/dropdown/themes/light/dropdown.indigo.css.js +3 -0
- package/components/dropdown/themes/light/dropdown.indigo.css.js.map +1 -0
- package/components/icon/icon.material.css.js +1 -1
- package/components/icon/icon.material.css.js.map +1 -1
- package/components/input/input-base.js.map +1 -1
- package/components/input/themes/light/input.base.css.js +1 -1
- package/components/input/themes/light/input.base.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.fluent.css.js +1 -1
- package/components/input/themes/light/input.fluent.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.material.css.js +1 -1
- package/components/input/themes/light/input.material.css.js.map +1 -1
- package/components/list/themes/light/list-header.base.css.js +1 -1
- package/components/list/themes/light/list-header.base.css.js.map +1 -1
- package/components/list/themes/light/list-item.base.css.js +1 -1
- package/components/list/themes/light/list-item.base.css.js.map +1 -1
- package/components/list/themes/light/list.base.css.js +1 -1
- package/components/list/themes/light/list.base.css.js.map +1 -1
- package/components/nav-drawer/styles/indigo/nav-drawer-item.indigo.css.js +1 -1
- package/components/nav-drawer/styles/indigo/nav-drawer-item.indigo.css.js.map +1 -1
- package/components/nav-drawer/styles/nav-drawer-header-item.base.css.js +1 -1
- package/components/nav-drawer/styles/nav-drawer-header-item.base.css.js.map +1 -1
- package/components/nav-drawer/styles/nav-drawer-item.base.css.js +1 -1
- package/components/nav-drawer/styles/nav-drawer-item.base.css.js.map +1 -1
- package/components/nav-drawer/styles/nav-drawer.base.css.js +1 -1
- package/components/nav-drawer/styles/nav-drawer.base.css.js.map +1 -1
- package/components/navbar/themes/light/navbar.base.css.js +1 -1
- package/components/navbar/themes/light/navbar.base.css.js.map +1 -1
- package/components/progress/themes/circular/circular.progress.base.css.js +1 -1
- package/components/progress/themes/circular/circular.progress.base.css.js.map +1 -1
- package/components/progress/themes/circular/circular.progress.bootstrap.css.js +1 -1
- package/components/progress/themes/circular/circular.progress.bootstrap.css.js.map +1 -1
- package/components/progress/themes/linear/linear.progress.base.css.js +1 -1
- package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
- package/components/progress/themes/linear/linear.progress.bootstrap.css.js +1 -1
- package/components/progress/themes/linear/linear.progress.bootstrap.css.js.map +1 -1
- package/components/progress/themes/linear/linear.progress.indigo.css.js +1 -1
- package/components/progress/themes/linear/linear.progress.indigo.css.js.map +1 -1
- package/components/radio/radio.d.ts +5 -1
- package/components/radio/radio.js +25 -2
- package/components/radio/radio.js.map +1 -1
- package/components/radio/themes/light/radio.base.css.js +1 -1
- package/components/radio/themes/light/radio.base.css.js.map +1 -1
- package/components/radio/themes/light/radio.bootstrap.css.js +1 -1
- package/components/radio/themes/light/radio.bootstrap.css.js.map +1 -1
- package/components/radio/themes/light/radio.fluent.css.js +1 -1
- package/components/radio/themes/light/radio.fluent.css.js.map +1 -1
- package/components/radio/themes/light/radio.indigo.css.js +1 -1
- package/components/radio/themes/light/radio.indigo.css.js.map +1 -1
- package/components/radio-group/radio-group.base.css.js +1 -1
- package/components/radio-group/radio-group.base.css.js.map +1 -1
- package/components/rating/rating.base.css.js +1 -1
- package/components/rating/rating.base.css.js.map +1 -1
- package/components/ripple/ripple.material.css.js +1 -1
- package/components/ripple/ripple.material.css.js.map +1 -1
- package/components/slider/slider-base.js +3 -2
- package/components/slider/slider-base.js.map +1 -1
- package/components/slider/themes/light/slider.base.css.js +1 -1
- package/components/slider/themes/light/slider.base.css.js.map +1 -1
- package/components/snackbar/themes/snackbar.base.css.js +1 -1
- package/components/snackbar/themes/snackbar.base.css.js.map +1 -1
- package/components/toggle/toggle.controller.d.ts +32 -0
- package/components/toggle/toggle.controller.js +85 -0
- package/components/toggle/toggle.controller.js.map +1 -0
- package/components/toggle/toggle.directive.d.ts +14 -0
- package/components/toggle/toggle.directive.js +76 -0
- package/components/toggle/toggle.directive.js.map +1 -0
- package/components/toggle/utilities.d.ts +50 -0
- package/components/toggle/utilities.js +2 -0
- package/components/toggle/utilities.js.map +1 -0
- package/custom-elements.json +380 -0
- package/index.d.ts +4 -0
- package/index.js +4 -0
- package/index.js.map +1 -1
- package/package.json +11 -2
- package/themes/dark/bootstrap.css +1 -1
- package/themes/dark/fluent.css +1 -1
- package/themes/dark/indigo.css +1 -1
- package/themes/light/fluent.css +1 -1
- package/vscode-html-custom-data.json +234 -18
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { igcToggle } from './toggle.directive';
|
|
2
|
+
export class IgcToggleController {
|
|
3
|
+
constructor(host, target) {
|
|
4
|
+
this.initialScrollTop = 0;
|
|
5
|
+
this.initialScrollLeft = 0;
|
|
6
|
+
this.blockScroll = (event) => {
|
|
7
|
+
var _a, _b, _c, _d;
|
|
8
|
+
event.preventDefault();
|
|
9
|
+
if (!this.sourceElement || this.sourceElement !== event.target) {
|
|
10
|
+
this.sourceElement = event.target;
|
|
11
|
+
this.initialScrollTop =
|
|
12
|
+
(_a = this.sourceElement.scrollTop) !== null && _a !== void 0 ? _a : (_b = this.sourceElement.firstElementChild) === null || _b === void 0 ? void 0 : _b.scrollTop;
|
|
13
|
+
this.initialScrollLeft =
|
|
14
|
+
(_c = this.sourceElement.scrollLeft) !== null && _c !== void 0 ? _c : (_d = this.sourceElement.firstElementChild) === null || _d === void 0 ? void 0 : _d.scrollLeft;
|
|
15
|
+
}
|
|
16
|
+
this.sourceElement.scrollTop = this.initialScrollTop;
|
|
17
|
+
this.sourceElement.scrollLeft = this.initialScrollLeft;
|
|
18
|
+
if (this.sourceElement.firstElementChild) {
|
|
19
|
+
this.sourceElement.firstElementChild.scrollTop = this.initialScrollTop;
|
|
20
|
+
this.sourceElement.firstElementChild.scrollLeft = this.initialScrollLeft;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
this.documentClicked = (event) => {
|
|
24
|
+
if (!this.host.keepOpenOnOutsideClick) {
|
|
25
|
+
const target = event.composed ? event.composedPath() : [event.target];
|
|
26
|
+
const isInsideClick = target.includes(this.host) ||
|
|
27
|
+
(this.target !== undefined && target.includes(this.target));
|
|
28
|
+
if (isInsideClick) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
this.host.hide();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
this.handleScroll = (event) => {
|
|
37
|
+
switch (this.host.scrollStrategy) {
|
|
38
|
+
case 'scroll':
|
|
39
|
+
break;
|
|
40
|
+
case 'block':
|
|
41
|
+
this.blockScroll(event);
|
|
42
|
+
break;
|
|
43
|
+
case 'close':
|
|
44
|
+
this.host.hide();
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
host.addController(this);
|
|
49
|
+
this.host = host;
|
|
50
|
+
if (target) {
|
|
51
|
+
this._target = target;
|
|
52
|
+
}
|
|
53
|
+
this.updateToggleDir();
|
|
54
|
+
}
|
|
55
|
+
set target(value) {
|
|
56
|
+
this._target = value;
|
|
57
|
+
this.updateToggleDir();
|
|
58
|
+
}
|
|
59
|
+
get target() {
|
|
60
|
+
return this._target;
|
|
61
|
+
}
|
|
62
|
+
hostConnected() {
|
|
63
|
+
this.addEventListeners();
|
|
64
|
+
}
|
|
65
|
+
hostDisconnected() {
|
|
66
|
+
this.removeEventListeners();
|
|
67
|
+
}
|
|
68
|
+
updateToggleDir() {
|
|
69
|
+
this.toggleDirective = igcToggle(this._target, this.host, this);
|
|
70
|
+
this.addEventListeners();
|
|
71
|
+
}
|
|
72
|
+
addEventListeners() {
|
|
73
|
+
if (this.host.open) {
|
|
74
|
+
document.addEventListener('scroll', this.handleScroll, true);
|
|
75
|
+
if (!this.host.keepOpenOnOutsideClick) {
|
|
76
|
+
document.addEventListener('click', this.documentClicked, true);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
removeEventListeners() {
|
|
81
|
+
document.removeEventListener('click', this.documentClicked, true);
|
|
82
|
+
document.removeEventListener('scroll', this.handleScroll, true);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=toggle.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toggle.controller.js","sourceRoot":"","sources":["../../../src/components/toggle/toggle.controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { ReactiveController, ReactiveControllerHost } from 'lit';\nimport { igcToggle, IgcToggleDirective } from './toggle.directive';\nimport { DirectiveResult } from 'lit/directive';\nimport { IgcToggleComponent } from './utilities';\n\n/**\n * Controller, bundling the creation of a toggle directive and handling global events,\n * related to the configuration of togglable components.\n */\nexport class IgcToggleController implements ReactiveController {\n private host: IgcToggleComponent & HTMLElement;\n private sourceElement?: Element;\n private initialScrollTop = 0;\n private initialScrollLeft = 0;\n private _target!: HTMLElement;\n\n /** The directive that marks the toggle. */\n public toggleDirective!: DirectiveResult<typeof IgcToggleDirective>;\n public rendered!: Promise<void>;\n\n public set target(value: HTMLElement) {\n this._target = value;\n this.updateToggleDir();\n }\n\n /** The element, relative to which, the toggle will be positioned. */\n public get target() {\n return this._target;\n }\n\n constructor(\n host: ReactiveControllerHost & IgcToggleComponent & HTMLElement,\n target?: HTMLElement\n ) {\n host.addController(this);\n\n this.host = host;\n\n if (target) {\n this._target = target;\n }\n\n this.updateToggleDir();\n }\n\n public hostConnected() {\n this.addEventListeners();\n }\n\n public hostDisconnected() {\n this.removeEventListeners();\n }\n\n public updateToggleDir() {\n this.toggleDirective = igcToggle(this._target, this.host, this);\n this.addEventListeners();\n }\n\n private addEventListeners() {\n if (this.host.open) {\n document.addEventListener('scroll', this.handleScroll, true);\n if (!this.host.keepOpenOnOutsideClick) {\n document.addEventListener('click', this.documentClicked, true);\n }\n }\n }\n\n private removeEventListeners() {\n document.removeEventListener('click', this.documentClicked, true);\n document.removeEventListener('scroll', this.handleScroll, true);\n }\n\n private blockScroll = (event: Event) => {\n event.preventDefault();\n if (!this.sourceElement || this.sourceElement !== event.target) {\n this.sourceElement = event.target as Element;\n this.initialScrollTop =\n this.sourceElement.scrollTop ??\n this.sourceElement.firstElementChild?.scrollTop;\n this.initialScrollLeft =\n this.sourceElement.scrollLeft ??\n this.sourceElement.firstElementChild?.scrollLeft;\n }\n\n this.sourceElement.scrollTop = this.initialScrollTop;\n this.sourceElement.scrollLeft = this.initialScrollLeft;\n if (this.sourceElement.firstElementChild) {\n this.sourceElement.firstElementChild.scrollTop = this.initialScrollTop;\n this.sourceElement.firstElementChild.scrollLeft = this.initialScrollLeft;\n }\n };\n\n /** The document's click event handler to override in the host component if necessary. */\n private documentClicked = (event: MouseEvent) => {\n if (!this.host.keepOpenOnOutsideClick) {\n const target = event.composed ? event.composedPath() : [event.target];\n const isInsideClick: boolean =\n target.includes(this.host) ||\n (this.target !== undefined && target.includes(this.target));\n if (isInsideClick) {\n return;\n } else {\n this.host.hide();\n }\n }\n };\n\n /** The document's scroll event handler to override in the host component if necessary. */\n private handleScroll = (event: Event) => {\n switch (this.host.scrollStrategy) {\n case 'scroll':\n break;\n case 'block':\n this.blockScroll(event);\n break;\n case 'close':\n this.host.hide();\n break;\n }\n };\n}\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Directive, PartInfo } from 'lit/directive.js';
|
|
2
|
+
import { IgcToggleOptions } from './utilities.js';
|
|
3
|
+
import { IgcToggleController } from './toggle.controller.js';
|
|
4
|
+
export declare class IgcToggleDirective extends Directive {
|
|
5
|
+
private part;
|
|
6
|
+
private shiftOptions?;
|
|
7
|
+
private floatingElement;
|
|
8
|
+
private updatePosition;
|
|
9
|
+
private createFloatingElement;
|
|
10
|
+
private createMiddleware;
|
|
11
|
+
constructor(partInfo: PartInfo);
|
|
12
|
+
render(target: HTMLElement, options: IgcToggleOptions, controller?: IgcToggleController): symbol;
|
|
13
|
+
}
|
|
14
|
+
export declare const igcToggle: (target: HTMLElement, options: IgcToggleOptions, controller?: IgcToggleController | undefined) => import("lit-html/directive").DirectiveResult<typeof IgcToggleDirective>;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { computePosition, flip, offset, shift, size, } from '@floating-ui/dom';
|
|
2
|
+
import { directive, Directive, PartType, } from 'lit/directive.js';
|
|
3
|
+
import { noChange } from 'lit';
|
|
4
|
+
export class IgcToggleDirective extends Directive {
|
|
5
|
+
constructor(partInfo) {
|
|
6
|
+
super(partInfo);
|
|
7
|
+
this.shiftOptions = {
|
|
8
|
+
mainAxis: true,
|
|
9
|
+
};
|
|
10
|
+
this.part = partInfo;
|
|
11
|
+
if (partInfo.type !== PartType.ELEMENT) {
|
|
12
|
+
throw new Error('The `igcToggle` directive must be attached to an element tag.');
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
updatePosition(target, options, controller) {
|
|
16
|
+
var _a, _b;
|
|
17
|
+
this.floatingElement = this.createFloatingElement(options.open);
|
|
18
|
+
if (!target) {
|
|
19
|
+
if (controller) {
|
|
20
|
+
controller.rendered = Promise.resolve();
|
|
21
|
+
}
|
|
22
|
+
return noChange;
|
|
23
|
+
}
|
|
24
|
+
const promise = computePosition(target, this.floatingElement, {
|
|
25
|
+
placement: (_a = options.placement) !== null && _a !== void 0 ? _a : 'bottom-start',
|
|
26
|
+
strategy: (_b = options.positionStrategy) !== null && _b !== void 0 ? _b : 'absolute',
|
|
27
|
+
middleware: this.createMiddleware(options),
|
|
28
|
+
}).then(({ x, y }) => {
|
|
29
|
+
Object.assign(this.floatingElement.style, {
|
|
30
|
+
left: `${x}px`,
|
|
31
|
+
top: `${y}px`,
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
if (controller) {
|
|
35
|
+
controller.rendered = promise;
|
|
36
|
+
}
|
|
37
|
+
return noChange;
|
|
38
|
+
}
|
|
39
|
+
createFloatingElement(open = false) {
|
|
40
|
+
if (!this.floatingElement) {
|
|
41
|
+
this.floatingElement = this.part.element;
|
|
42
|
+
}
|
|
43
|
+
this.floatingElement.style.display = open ? '' : 'none';
|
|
44
|
+
return this.floatingElement;
|
|
45
|
+
}
|
|
46
|
+
createMiddleware(options) {
|
|
47
|
+
const middleware = [];
|
|
48
|
+
if (options.distance) {
|
|
49
|
+
middleware.push(offset({
|
|
50
|
+
mainAxis: options.distance,
|
|
51
|
+
}));
|
|
52
|
+
}
|
|
53
|
+
if (options.flip) {
|
|
54
|
+
middleware.push(flip());
|
|
55
|
+
}
|
|
56
|
+
if (this.shiftOptions) {
|
|
57
|
+
middleware.push(shift(this.shiftOptions));
|
|
58
|
+
}
|
|
59
|
+
if (options.sameWidth) {
|
|
60
|
+
const floatingElement = this.floatingElement;
|
|
61
|
+
middleware.push(size({
|
|
62
|
+
apply({ reference }) {
|
|
63
|
+
Object.assign(floatingElement.style, {
|
|
64
|
+
width: `${reference.width}px`,
|
|
65
|
+
});
|
|
66
|
+
},
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
return middleware;
|
|
70
|
+
}
|
|
71
|
+
render(target, options, controller) {
|
|
72
|
+
return this.updatePosition(target, options, controller);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
export const igcToggle = directive(IgcToggleDirective);
|
|
76
|
+
//# sourceMappingURL=toggle.directive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toggle.directive.js","sourceRoot":"","sources":["../../../src/components/toggle/toggle.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n computePosition,\n flip,\n offset,\n shift,\n size,\n Middleware,\n} from '@floating-ui/dom';\nimport {\n directive,\n Directive,\n PartInfo,\n ElementPart,\n PartType,\n} from 'lit/directive.js';\nimport { IgcToggleOptions } from './utilities.js';\nimport { noChange } from 'lit';\nimport { IgcToggleController } from './toggle.controller.js';\n\nexport class IgcToggleDirective extends Directive {\n private part: PartInfo;\n private shiftOptions? = {\n mainAxis: true,\n };\n\n private floatingElement!: HTMLElement;\n\n private updatePosition(\n target: HTMLElement,\n options: IgcToggleOptions,\n controller?: IgcToggleController\n ) {\n this.floatingElement = this.createFloatingElement(options.open);\n\n if (!target) {\n if (controller) {\n controller.rendered = Promise.resolve();\n }\n return noChange;\n }\n\n const promise = computePosition(target, this.floatingElement, {\n placement: options.placement ?? 'bottom-start',\n strategy: options.positionStrategy ?? 'absolute',\n middleware: this.createMiddleware(options),\n }).then(({ x, y }) => {\n Object.assign(this.floatingElement.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n });\n\n if (controller) {\n controller.rendered = promise;\n }\n\n return noChange;\n }\n\n private createFloatingElement(open = false) {\n if (!this.floatingElement) {\n this.floatingElement = (this.part as ElementPart).element as HTMLElement;\n }\n\n this.floatingElement.style.display = open ? '' : 'none';\n\n return this.floatingElement;\n }\n\n private createMiddleware(options: IgcToggleOptions) {\n const middleware: Middleware[] = [];\n\n if (options.distance) {\n middleware.push(\n offset({\n mainAxis: options.distance,\n })\n );\n }\n\n if (options.flip) {\n middleware.push(flip());\n }\n\n if (this.shiftOptions) {\n middleware.push(shift(this.shiftOptions));\n }\n\n if (options.sameWidth) {\n const floatingElement = this.floatingElement;\n middleware.push(\n size({\n apply({ reference }) {\n Object.assign(floatingElement.style, {\n width: `${reference.width}px`,\n });\n },\n })\n );\n }\n\n return middleware;\n }\n\n constructor(partInfo: PartInfo) {\n super(partInfo);\n this.part = partInfo;\n if (partInfo.type !== PartType.ELEMENT) {\n throw new Error(\n 'The `igcToggle` directive must be attached to an element tag.'\n );\n }\n }\n\n public render(\n target: HTMLElement,\n options: IgcToggleOptions,\n controller?: IgcToggleController\n ) {\n return this.updatePosition(target, options, controller);\n }\n}\n\nexport const igcToggle = directive(IgcToggleDirective);\n"]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Common events interface for toggle components
|
|
3
|
+
*/
|
|
4
|
+
export interface IgcToggleEventMap {
|
|
5
|
+
igcOpening: CustomEvent<void>;
|
|
6
|
+
igcOpened: CustomEvent<void>;
|
|
7
|
+
igcClosing: CustomEvent<void>;
|
|
8
|
+
igcClosed: CustomEvent<void>;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Interface describing the options for toggle components' configuration.
|
|
12
|
+
*/
|
|
13
|
+
export interface IgcToggleOptions {
|
|
14
|
+
/**
|
|
15
|
+
* Whether the toggle is open.
|
|
16
|
+
*/
|
|
17
|
+
open: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* The preferred placement of the toggle element around the target element. */
|
|
20
|
+
placement?: IgcPlacement;
|
|
21
|
+
/**
|
|
22
|
+
* The positioning strategy to use.
|
|
23
|
+
* Use the `fixed` strategy when the target element is in a fixed container, otherwise - use `absolute`.
|
|
24
|
+
*/
|
|
25
|
+
positionStrategy?: 'absolute' | 'fixed';
|
|
26
|
+
/**
|
|
27
|
+
* Whether the element should be flipped to the opposite side once it's about to overflow the visible area.
|
|
28
|
+
* Once enough space is detected on its preferred side, it will flip back.
|
|
29
|
+
*/
|
|
30
|
+
flip?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Whether to prevent the element from being cut off by moving it so it stays visible within its boundary area.
|
|
33
|
+
*/
|
|
34
|
+
distance?: number;
|
|
35
|
+
/**
|
|
36
|
+
* Whether to make the toggle the same width as the target.
|
|
37
|
+
*/
|
|
38
|
+
sameWidth?: boolean;
|
|
39
|
+
}
|
|
40
|
+
export interface IgcToggleComponent extends IgcToggleOptions {
|
|
41
|
+
scrollStrategy?: 'scroll' | 'block' | 'close';
|
|
42
|
+
keepOpenOnOutsideClick?: boolean;
|
|
43
|
+
hide(): void;
|
|
44
|
+
show(): void;
|
|
45
|
+
toggle(): void;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Describes the preferred placement of a toggle component.
|
|
49
|
+
*/
|
|
50
|
+
export declare type IgcPlacement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'right' | 'right-start' | 'right-end' | 'left' | 'left-start' | 'left-end';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utilities.js","sourceRoot":"","sources":["../../../src/components/toggle/utilities.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Common events interface for toggle components\n */\nexport interface IgcToggleEventMap {\n igcOpening: CustomEvent<void>;\n igcOpened: CustomEvent<void>;\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n}\n/**\n * Interface describing the options for toggle components' configuration.\n */\nexport interface IgcToggleOptions {\n /**\n * Whether the toggle is open.\n */\n open: boolean;\n /**\n * The preferred placement of the toggle element around the target element. */\n placement?: IgcPlacement;\n /**\n * The positioning strategy to use.\n * Use the `fixed` strategy when the target element is in a fixed container, otherwise - use `absolute`.\n */\n positionStrategy?: 'absolute' | 'fixed';\n /**\n * Whether the element should be flipped to the opposite side once it's about to overflow the visible area.\n * Once enough space is detected on its preferred side, it will flip back.\n */\n flip?: boolean;\n /**\n * Whether to prevent the element from being cut off by moving it so it stays visible within its boundary area.\n */\n distance?: number;\n /**\n * Whether to make the toggle the same width as the target.\n */\n sameWidth?: boolean;\n}\n\nexport interface IgcToggleComponent extends IgcToggleOptions {\n scrollStrategy?: 'scroll' | 'block' | 'close';\n keepOpenOnOutsideClick?: boolean;\n\n hide(): void;\n show(): void;\n toggle(): void;\n}\n\n/**\n * Describes the preferred placement of a toggle component.\n */\nexport type IgcPlacement =\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'left'\n | 'left-start'\n | 'left-end';\n"]}
|