igniteui-webcomponents 4.0.0-alpha.3 → 4.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 +14 -0
- package/components/avatar/themes/avatar.base.css.js +6 -6
- package/components/avatar/themes/avatar.base.css.js.map +1 -1
- package/components/badge/themes/light/badge.base.css.js +6 -6
- package/components/badge/themes/light/badge.base.css.js.map +1 -1
- package/components/button/themes/button/light/button.base.css.js +6 -6
- package/components/button/themes/button/light/button.base.css.js.map +1 -1
- package/components/button/themes/button/light/button.material.css.js +6 -6
- 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 +6 -6
- package/components/button/themes/icon-button/light/icon-button.base.css.js.map +1 -1
- package/components/calendar/themes/calendar.base.css.js +6 -6
- package/components/calendar/themes/calendar.base.css.js.map +1 -1
- package/components/calendar/themes/fluent/calendar.fluent.css.js +6 -6
- package/components/calendar/themes/fluent/calendar.fluent.css.js.map +1 -1
- package/components/card/themes/light/card.actions.bootstrap.css.js +6 -6
- package/components/card/themes/light/card.actions.bootstrap.css.js.map +1 -1
- package/components/card/themes/light/card.actions.material.css.js +6 -6
- package/components/card/themes/light/card.actions.material.css.js.map +1 -1
- package/components/card/themes/light/card.content.bootstrap.css.js +6 -6
- package/components/card/themes/light/card.content.bootstrap.css.js.map +1 -1
- package/components/card/themes/light/card.content.indigo.css.js +6 -6
- package/components/card/themes/light/card.content.indigo.css.js.map +1 -1
- package/components/card/themes/light/card.content.material.css.js +6 -6
- package/components/card/themes/light/card.content.material.css.js.map +1 -1
- package/components/card/themes/light/card.header.bootstrap.css.js +6 -6
- package/components/card/themes/light/card.header.bootstrap.css.js.map +1 -1
- package/components/card/themes/light/card.header.fluent.css.js +6 -6
- package/components/card/themes/light/card.header.fluent.css.js.map +1 -1
- package/components/card/themes/light/card.header.indigo.css.js +6 -6
- package/components/card/themes/light/card.header.indigo.css.js.map +1 -1
- package/components/card/themes/light/card.header.material.css.js +6 -6
- package/components/card/themes/light/card.header.material.css.js.map +1 -1
- package/components/card/themes/light/card.material.css.js +6 -6
- package/components/card/themes/light/card.material.css.js.map +1 -1
- package/components/card/themes/light/card.media.material.css.js +6 -6
- package/components/card/themes/light/card.media.material.css.js.map +1 -1
- package/components/checkbox/checkbox-base.d.ts +2 -0
- package/components/checkbox/checkbox-base.js +3 -0
- package/components/checkbox/checkbox-base.js.map +1 -1
- package/components/checkbox/themes/light/checkbox.base.css.js +6 -6
- package/components/checkbox/themes/light/checkbox.base.css.js.map +1 -1
- package/components/checkbox/themes/light/switch.base.css.js +6 -6
- package/components/checkbox/themes/light/switch.base.css.js.map +1 -1
- package/components/chip/themes/chip.base.css.js +6 -6
- package/components/chip/themes/chip.base.css.js.map +1 -1
- package/components/chip/themes/chip.bootstrap.css.js +6 -6
- package/components/chip/themes/chip.bootstrap.css.js.map +1 -1
- package/components/chip/themes/chip.fluent.css.js +6 -6
- package/components/chip/themes/chip.fluent.css.js.map +1 -1
- package/components/chip/themes/chip.indigo.css.js +6 -6
- package/components/chip/themes/chip.indigo.css.js.map +1 -1
- package/components/chip/themes/chip.material.css.js +6 -6
- package/components/chip/themes/chip.material.css.js.map +1 -1
- package/components/dialog/themes/light/dialog.base.css.js +6 -6
- package/components/dialog/themes/light/dialog.base.css.js.map +1 -1
- package/components/dropdown/themes/light/dropdown-group.base.css.js +6 -6
- package/components/dropdown/themes/light/dropdown-group.base.css.js.map +1 -1
- package/components/dropdown/themes/light/dropdown-header.base.css.js +6 -6
- package/components/dropdown/themes/light/dropdown-header.base.css.js.map +1 -1
- package/components/dropdown/themes/light/dropdown-item.base.css.js +6 -6
- package/components/dropdown/themes/light/dropdown-item.base.css.js.map +1 -1
- package/components/dropdown/themes/light/dropdown.base.css.js +6 -6
- package/components/dropdown/themes/light/dropdown.base.css.js.map +1 -1
- package/components/icon/icon.material.css.js +6 -6
- package/components/icon/icon.material.css.js.map +1 -1
- package/components/input/input.d.ts +2 -0
- package/components/input/input.js +3 -0
- package/components/input/input.js.map +1 -1
- package/components/input/themes/light/input.base.css.js +6 -6
- package/components/input/themes/light/input.base.css.js.map +1 -1
- package/components/list/themes/light/list-header.base.css.js +6 -6
- package/components/list/themes/light/list-header.base.css.js.map +1 -1
- package/components/list/themes/light/list-item.base.css.js +6 -6
- package/components/list/themes/light/list-item.base.css.js.map +1 -1
- package/components/list/themes/light/list.base.css.js +6 -6
- package/components/list/themes/light/list.base.css.js.map +1 -1
- package/components/nav-drawer/themes/light/nav-drawer-header-item.base.css.js +6 -6
- package/components/nav-drawer/themes/light/nav-drawer-header-item.base.css.js.map +1 -1
- package/components/nav-drawer/themes/light/nav-drawer-item.base.css.js +6 -6
- package/components/nav-drawer/themes/light/nav-drawer-item.base.css.js.map +1 -1
- package/components/nav-drawer/themes/light/nav-drawer.base.css.js +6 -6
- package/components/nav-drawer/themes/light/nav-drawer.base.css.js.map +1 -1
- package/components/navbar/themes/light/navbar.base.css.js +6 -6
- package/components/navbar/themes/light/navbar.base.css.js.map +1 -1
- package/components/progress/themes/circular/circular.progress.base.css.js +32 -30
- package/components/progress/themes/circular/circular.progress.base.css.js.map +1 -1
- package/components/progress/themes/circular/circular.progress.bootstrap.css.js +2 -2
- package/components/progress/themes/circular/circular.progress.bootstrap.css.js.map +1 -1
- package/components/progress/themes/circular/circular.progress.fluent.css.js +1 -1
- package/components/progress/themes/circular/circular.progress.fluent.css.js.map +1 -1
- package/components/progress/themes/linear/linear.progress.base.css.js +22 -22
- package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
- package/components/progress/themes/linear/linear.progress.bootstrap.css.js +22 -22
- package/components/progress/themes/linear/linear.progress.bootstrap.css.js.map +1 -1
- package/components/progress/themes/linear/linear.progress.indigo.css.js +6 -6
- package/components/progress/themes/linear/linear.progress.indigo.css.js.map +1 -1
- package/components/radio/radio.d.ts +3 -1
- package/components/radio/radio.js +4 -1
- package/components/radio/radio.js.map +1 -1
- package/components/radio/themes/light/radio.base.css.js +6 -6
- package/components/radio/themes/light/radio.base.css.js.map +1 -1
- package/components/radio-group/radio-group.base.css.js +6 -6
- package/components/radio-group/radio-group.base.css.js.map +1 -1
- package/components/rating/rating-symbol.base.css.js +6 -6
- package/components/rating/rating-symbol.base.css.js.map +1 -1
- package/components/rating/rating.base.css.js +6 -6
- package/components/rating/rating.base.css.js.map +1 -1
- package/components/ripple/ripple.material.css.js +6 -6
- package/components/ripple/ripple.material.css.js.map +1 -1
- package/components/select/select.d.ts +2 -0
- package/components/select/select.js +12 -6
- package/components/select/select.js.map +1 -1
- package/components/select/themes/light/select.base.css.js +13 -6
- package/components/select/themes/light/select.base.css.js.map +1 -1
- package/components/slider/themes/light/slider.base.css.js +6 -6
- package/components/slider/themes/light/slider.base.css.js.map +1 -1
- package/components/snackbar/themes/light/snackbar.base.css.js +6 -6
- package/components/snackbar/themes/light/snackbar.base.css.js.map +1 -1
- package/components/tabs/tab-panel.js +1 -0
- package/components/tabs/tab-panel.js.map +1 -1
- package/components/tabs/tabs.js +1 -3
- package/components/tabs/tabs.js.map +1 -1
- package/components/tabs/themes/light/tab-panel.base.css.js +6 -7
- package/components/tabs/themes/light/tab-panel.base.css.js.map +1 -1
- package/components/tabs/themes/light/tab.base.css.js +6 -6
- package/components/tabs/themes/light/tab.base.css.js.map +1 -1
- package/components/tabs/themes/light/tabs.base.css.js +6 -6
- package/components/tabs/themes/light/tabs.base.css.js.map +1 -1
- package/components/toggle/toggle.controller.d.ts +1 -1
- package/components/toggle/toggle.controller.js.map +1 -1
- package/components/toggle/toggle.directive.d.ts +2 -2
- package/components/toggle/toggle.directive.js.map +1 -1
- package/components/tree/themes/light/tree-item.base.css.js +6 -6
- package/components/tree/themes/light/tree-item.base.css.js.map +1 -1
- package/components/tree/themes/light/tree.base.css.js +6 -6
- package/components/tree/themes/light/tree.base.css.js.map +1 -1
- package/index.d.ts +2 -1
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/themes/dark/bootstrap.css +152 -87
- package/themes/dark/fluent.css +152 -87
- package/themes/dark/indigo.css +72 -7
- package/themes/dark/material.css +152 -87
- package/themes/light/bootstrap.css +152 -87
- package/themes/light/fluent.css +152 -87
- package/themes/light/indigo.css +72 -7
- package/themes/light/material.css +152 -87
- package/theming/config.d.ts +1 -1
- package/theming/config.js +1 -2
- package/theming/config.js.map +1 -1
- package/theming/index.d.ts +1 -1
- package/theming/index.js +1 -1
- package/theming/index.js.map +1 -1
- package/theming/theming-controller.d.ts +1 -1
- package/theming/theming-controller.js.map +1 -1
- package/theming/theming-decorator.d.ts +1 -1
- package/theming/theming-decorator.js.map +1 -1
- package/theming/theming-event.d.ts +1 -1
- package/theming/theming-event.js.map +1 -1
|
@@ -81,6 +81,8 @@ export default class IgcSelectComponent extends IgcSelectComponent_base {
|
|
|
81
81
|
blur(): void;
|
|
82
82
|
/** Checks the validity of the control. */
|
|
83
83
|
reportValidity(): boolean;
|
|
84
|
+
/** A wrapper around the custom reportValidity method to comply with the native select API. */
|
|
85
|
+
checkValidity(): boolean;
|
|
84
86
|
firstUpdated(): Promise<void>;
|
|
85
87
|
protected updateValue(): void;
|
|
86
88
|
protected updateSelected(): void;
|
|
@@ -19,11 +19,11 @@ import IgcInputComponent from '../input/input.js';
|
|
|
19
19
|
import IgcSelectGroupComponent from './select-group.js';
|
|
20
20
|
import IgcSelectHeaderComponent from './select-header.js';
|
|
21
21
|
import IgcSelectItemComponent from './select-item.js';
|
|
22
|
-
import { styles } from './themes/light/select.base.css';
|
|
23
|
-
import { styles as bootstrap } from './themes/light/select.bootstrap.css';
|
|
24
|
-
import { styles as fluent } from './themes/light/select.fluent.css';
|
|
25
|
-
import { styles as indigo } from './themes/light/select.indigo.css';
|
|
26
|
-
import { styles as material } from './themes/light/select.material.css';
|
|
22
|
+
import { styles } from './themes/light/select.base.css.js';
|
|
23
|
+
import { styles as bootstrap } from './themes/light/select.bootstrap.css.js';
|
|
24
|
+
import { styles as fluent } from './themes/light/select.fluent.css.js';
|
|
25
|
+
import { styles as indigo } from './themes/light/select.indigo.css.js';
|
|
26
|
+
import { styles as material } from './themes/light/select.material.css.js';
|
|
27
27
|
defineComponents(IgcIconComponent, IgcInputComponent, IgcSelectGroupComponent, IgcSelectHeaderComponent, IgcSelectItemComponent);
|
|
28
28
|
let IgcSelectComponent = class IgcSelectComponent extends EventEmitterMixin(IgcDropdownComponent) {
|
|
29
29
|
constructor() {
|
|
@@ -49,7 +49,10 @@ let IgcSelectComponent = class IgcSelectComponent extends EventEmitterMixin(IgcD
|
|
|
49
49
|
this.sameWidth = true;
|
|
50
50
|
this.dir = 'auto';
|
|
51
51
|
this.size = 'medium';
|
|
52
|
-
this.addEventListener('
|
|
52
|
+
this.addEventListener('igcChange', () => {
|
|
53
|
+
if (this.open)
|
|
54
|
+
this.target.focus();
|
|
55
|
+
});
|
|
53
56
|
}
|
|
54
57
|
handleFocusout() { }
|
|
55
58
|
focus(options) {
|
|
@@ -64,6 +67,9 @@ let IgcSelectComponent = class IgcSelectComponent extends EventEmitterMixin(IgcD
|
|
|
64
67
|
this.target.focus();
|
|
65
68
|
return !this.invalid;
|
|
66
69
|
}
|
|
70
|
+
checkValidity() {
|
|
71
|
+
return this.reportValidity();
|
|
72
|
+
}
|
|
67
73
|
async firstUpdated() {
|
|
68
74
|
super.firstUpdated();
|
|
69
75
|
await this.updateComplete;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/components/select/select.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit';\nimport {\n property,\n query,\n queryAssignedElements,\n state,\n} from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { themes } from '../../theming/index.js';\nimport { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { defineComponents } from '../common/definitions/defineComponents.js';\nimport { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport IgcDropdownItemComponent from '../dropdown/dropdown-item.js';\nimport IgcDropdownComponent, {\n IgcDropdownEventMap,\n} from '../dropdown/dropdown.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport IgcInputComponent from '../input/input.js';\nimport IgcSelectGroupComponent from './select-group.js';\nimport IgcSelectHeaderComponent from './select-header.js';\nimport IgcSelectItemComponent from './select-item.js';\nimport { styles } from './themes/light/select.base.css';\nimport { styles as bootstrap } from './themes/light/select.bootstrap.css';\nimport { styles as fluent } from './themes/light/select.fluent.css';\nimport { styles as indigo } from './themes/light/select.indigo.css';\nimport { styles as material } from './themes/light/select.material.css';\n\ndefineComponents(\n IgcIconComponent,\n IgcInputComponent,\n IgcSelectGroupComponent,\n IgcSelectHeaderComponent,\n IgcSelectItemComponent\n);\n\nexport interface IgcSelectEventMap extends IgcDropdownEventMap {\n igcFocus: CustomEvent<void>;\n igcBlur: CustomEvent<void>;\n}\n\n@themes({ bootstrap, material, fluent, indigo })\n@blazorAdditionalDependencies(\n 'IgcIconComponent, IgcInputComponent, IgcSelectGroupComponent, IgcSelectHeaderComponent, IgcSelectItemComponent'\n)\n/**\n * @element igc-select\n *\n * @slot - Renders the list of select items.\n * @slot prefix - Renders content before the input.\n * @slot suffix - Renders content after input.\n * @slot header - Renders a container before the list of options.\n * @slot footer - Renders a container after the list of options.\n * @slot helper-text - Renders content below the input.\n * @slot toggle-icon - Renders content inside the suffix container.\n *\n * @fires igcFocus - Emitted when the select gains focus.\n * @fires igcBlur - Emitted when the select loses focus.\n * @fires igcChange - Emitted when the control's checked state changes.\n * @fires igcOpening - Emitted just before the list of options is opened.\n * @fires igcOpened - Emitted after the list of options is opened.\n * @fires igcClosing - Emitter just before the list of options is closed.\n * @fires igcClosed - Emitted after the list of options is closed.\n *\n * @csspart list - The list of options wrapper.\n * @csspart input - The encapsulated igc-input.\n * @csspart label - The encapsulated text label.\n * @csspart prefix - The prefix wrapper.\n * @csspart suffix - The suffix wrapper.\n * @csspart toggle-icon - The toggle icon wrapper.\n * @csspart helper-text - The helper text wrapper.\n */\nexport default class IgcSelectComponent extends EventEmitterMixin<\n IgcSelectEventMap,\n Constructor<IgcDropdownComponent>\n>(IgcDropdownComponent) {\n /** @private */\n public static readonly tagName = 'igc-select';\n public static styles = styles;\n private searchTerm = '';\n private lastKeyTime = Date.now();\n\n private readonly targetKeyHandlers: Map<string, Function> = new Map(\n Object.entries({\n ' ': this.onTargetEnterKey,\n Tab: this.onTargetTabKey,\n Escape: this.onEscapeKey,\n Enter: this.onTargetEnterKey,\n ArrowLeft: this.onTargetArrowLeftKeyDown,\n ArrowRight: this.onTargetArrowRightKeyDown,\n ArrowUp: this.onTargetArrowUpKeyDown,\n ArrowDown: this.onTargetArrowDownKeyDown,\n Home: this.onTargetHomeKey,\n End: this.onTargetEndKey,\n })\n );\n\n @queryAssignedElements({ flatten: true, selector: 'igc-select-item' })\n protected override items!: Array<IgcSelectItemComponent>;\n\n @queryAssignedElements({ flatten: true, selector: 'igc-select-group' })\n protected override groups!: Array<IgcSelectGroupComponent>;\n\n @queryAssignedElements({ slot: 'helper-text' })\n protected helperText!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'suffix' })\n protected inputSuffix!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'prefix' })\n protected inputPrefix!: Array<HTMLElement>;\n\n @state()\n protected override selectedItem!: IgcSelectItemComponent | null;\n\n @query('div[role=\"combobox\"]')\n protected override target!: IgcInputComponent;\n\n /** The value attribute of the control. */\n @property({ reflect: false, type: String })\n public value?: string | undefined;\n\n /** The name attribute of the control. */\n @property()\n public name!: string;\n\n /** The disabled attribute of the control. */\n @property({ reflect: true, type: Boolean })\n public disabled = false;\n\n /** The required attribute of the control. */\n @property({ reflect: true, type: Boolean })\n public required = false;\n\n /** The invalid attribute of the control. */\n @property({ reflect: true, type: Boolean })\n public invalid = false;\n\n /** The outlined attribute of the control. */\n @property({ reflect: true, type: Boolean })\n public outlined = false;\n\n /** The autofocus attribute of the control. */\n @property({ type: Boolean })\n public override autofocus!: boolean;\n\n /** The label attribute of the control. */\n @property({ type: String })\n public label!: string;\n\n /** The placeholder attribute of the control. */\n @property({ type: String })\n public placeholder!: string;\n\n /** Whether the dropdown's width should be the same as the target's one. */\n @property({ type: Boolean, attribute: 'same-width' })\n public override sameWidth = true;\n\n /** The direction attribute of the control. */\n @property({ reflect: true })\n public override dir: 'ltr' | 'rtl' | 'auto' = 'auto';\n\n constructor() {\n super();\n this.size = 'medium';\n\n /** Return the focus to the target element when closing the list of options. */\n this.addEventListener('igcClosing', () => this.target.focus());\n }\n\n /** Override the dropdown target focusout behavior to prevent the focus from\n * being returned to the target element when the select loses focus. */\n protected override handleFocusout() {}\n\n /** Sets focus on the component. */\n public override focus(options?: FocusOptions) {\n this.target.focus(options);\n }\n\n /** Removes focus from the component. */\n public override blur() {\n this.target.blur();\n }\n\n /** Checks the validity of the control. */\n public reportValidity() {\n this.invalid = this.required && !this.value;\n if (this.invalid) this.target.focus();\n return !this.invalid;\n }\n\n public override async firstUpdated() {\n super.firstUpdated();\n await this.updateComplete;\n\n if (!this.selectedItem && this.value) {\n this.updateSelected();\n }\n\n if (this.autofocus) {\n this.target.focus();\n }\n }\n\n @watch('selectedItem')\n protected updateValue() {\n this.value = this.selectedItem?.value;\n }\n\n @watch('value')\n protected updateSelected() {\n if (this.allItems.length === 0) return;\n\n if (this.selectedItem?.value !== this.value) {\n const matches = this.allItems.filter((i) => i.value === this.value);\n const index = this.allItems.indexOf(\n matches.at(-1) as IgcSelectItemComponent\n );\n\n if (index === -1) {\n this.value = undefined;\n this.clearSelection();\n return;\n }\n\n this.select(index);\n }\n }\n\n @watch('value')\n protected validate() {\n this.updateComplete.then(() => this.reportValidity());\n }\n\n protected selectNext() {\n const activeItemIndex = [...this.allItems].indexOf(\n this.selectedItem ?? this.activeItem\n );\n\n const next = this.getNearestSiblingFocusableItemIndex(\n activeItemIndex ?? -1,\n 1\n );\n this.selectItem(this.allItems[next], true);\n }\n\n protected selectPrev() {\n const activeItemIndex = [...this.allItems].indexOf(\n this.selectedItem ?? this.activeItem\n );\n const prev = this.getNearestSiblingFocusableItemIndex(\n activeItemIndex ?? -1,\n -1\n );\n this.selectItem(this.allItems[prev], true);\n }\n\n protected selectInteractiveItem(index: number) {\n const item = this.allItems\n .filter((i) => !i.disabled)\n .at(index) as IgcDropdownItemComponent;\n\n if (item.value !== this.value) {\n this.selectItem(item, true);\n }\n }\n\n protected searchItem(event: KeyboardEvent): void {\n // ignore longer keys ('Alt', 'ArrowDown', etc)\n if (!/^.$/u.test(event.key)) {\n return;\n }\n\n const currentTime = Date.now();\n\n if (currentTime - this.lastKeyTime > 500) {\n this.searchTerm = '';\n }\n\n this.searchTerm += event.key;\n this.lastKeyTime = currentTime;\n\n const item = this.allItems\n .filter((i) => !i.disabled)\n .find((i) =>\n i.textContent\n ?.trim()\n .toLowerCase()\n .startsWith(this.searchTerm.toLowerCase())\n );\n\n if (item && this.value !== item.value) {\n this.open ? this.activateItem(item) : this.selectItem(item);\n }\n }\n\n protected handleFocus() {\n if (this.open) return;\n this.emitEvent('igcFocus');\n }\n\n protected handleBlur() {\n if (this.open) return;\n this.emitEvent('igcBlur');\n }\n\n protected onTargetTabKey() {\n this.target.blur();\n if (this.open) this.hide();\n }\n\n protected onTargetEnterKey() {\n !this.open ? this.target.click() : this.onEnterKey();\n }\n\n protected onTargetArrowLeftKeyDown() {\n !this.open ? this.selectPrev() : this.onArrowUpKeyDown();\n }\n\n protected onTargetArrowRightKeyDown() {\n !this.open ? this.selectNext() : this.onArrowDownKeyDown();\n }\n\n protected onTargetArrowUpKeyDown(event: KeyboardEvent) {\n if (event.altKey) {\n this.toggle();\n } else {\n !this.open ? this.selectPrev() : this.onArrowUpKeyDown();\n }\n }\n\n protected onTargetArrowDownKeyDown(event: KeyboardEvent) {\n if (event.altKey) {\n this.toggle();\n } else {\n !this.open ? this.selectNext() : this.onArrowDownKeyDown();\n }\n }\n\n protected onTargetHomeKey() {\n !this.open ? this.selectInteractiveItem(0) : this.onHomeKey();\n }\n\n protected onTargetEndKey() {\n !this.open ? this.selectInteractiveItem(-1) : this.onEndKey();\n }\n\n protected handleTargetKeyDown(event: KeyboardEvent) {\n event.stopPropagation();\n\n if (this.targetKeyHandlers.has(event.key)) {\n event.preventDefault();\n this.targetKeyHandlers.get(event.key)?.call(this, event);\n } else {\n this.searchItem(event);\n }\n }\n\n protected get hasPrefixes() {\n return this.inputPrefix.length > 0;\n }\n\n protected get hasSuffixes() {\n return this.inputSuffix.length > 0;\n }\n\n protected override render() {\n return html`\n <div\n role=\"combobox\"\n tabindex=${this.disabled ? -1 : 0}\n aria-owns=\"dropdown\"\n aria-describedby=\"helper-text\"\n aria-disabled=${this.disabled}\n @focusin=${this.handleFocus}\n @focusout=${this.handleBlur}\n @keydown=${this.handleTargetKeyDown}\n @click=${this.handleTargetClick}\n >\n <igc-input\n id=\"input\"\n readonly\n exportparts=\"container: input, input: native-input, label, prefix, suffix\"\n value=${ifDefined(this.selectedItem?.textContent?.trim())}\n placeholder=${ifDefined(this.placeholder)}\n label=${ifDefined(this.label)}\n size=${this.size}\n dir=${this.dir}\n tabindex=\"-1\"\n .disabled=\"${this.disabled}\"\n .required=${this.required}\n .invalid=${this.invalid}\n .outlined=${this.outlined}\n @igcBlur=${(e: Event) => e.stopPropagation()}\n @igcFocus=${(e: Event) => e.stopPropagation()}\n >\n <span slot=${this.hasPrefixes ? 'prefix' : ''}>\n <slot name=\"prefix\"></slot>\n </span>\n <span slot=${this.hasSuffixes ? 'suffix' : ''}>\n <slot name=\"suffix\"></slot>\n </span>\n <span slot=\"suffix\" part=\"toggle-icon\" style=\"display: flex\">\n <slot name=\"toggle-icon\">\n <igc-icon\n size=${this.size}\n name=${this.open ? 'keyboard_arrow_up' : 'keyboard_arrow_down'}\n collection=\"internal\"\n aria-hidden=\"true\"\n ></igc-icon>\n </slot>\n </span>\n </igc-input>\n </div>\n <div\n id=\"helper-text\"\n part=\"helper-text\"\n ?hidden=\"${this.helperText.length === 0}\"\n >\n <slot name=\"helper-text\"></slot>\n </div>\n <div\n part=\"base\"\n style=${styleMap({ position: this.positionStrategy })}\n @click=${this.handleClick}\n ${this.toggleController.toggleDirective}\n >\n <div id=\"dropdown\" role=\"listbox\" part=\"list\" aria-labelledby=\"input\">\n <slot name=\"header\"></slot>\n <slot></slot>\n <slot name=\"footer\"></slot>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-select': IgcSelectComponent;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/components/select/select.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit';\nimport {\n property,\n query,\n queryAssignedElements,\n state,\n} from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { themes } from '../../theming/index.js';\nimport { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { defineComponents } from '../common/definitions/defineComponents.js';\nimport { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport IgcDropdownItemComponent from '../dropdown/dropdown-item.js';\nimport IgcDropdownComponent, {\n IgcDropdownEventMap,\n} from '../dropdown/dropdown.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport IgcInputComponent from '../input/input.js';\nimport IgcSelectGroupComponent from './select-group.js';\nimport IgcSelectHeaderComponent from './select-header.js';\nimport IgcSelectItemComponent from './select-item.js';\nimport { styles } from './themes/light/select.base.css.js';\nimport { styles as bootstrap } from './themes/light/select.bootstrap.css.js';\nimport { styles as fluent } from './themes/light/select.fluent.css.js';\nimport { styles as indigo } from './themes/light/select.indigo.css.js';\nimport { styles as material } from './themes/light/select.material.css.js';\n\ndefineComponents(\n IgcIconComponent,\n IgcInputComponent,\n IgcSelectGroupComponent,\n IgcSelectHeaderComponent,\n IgcSelectItemComponent\n);\n\nexport interface IgcSelectEventMap extends IgcDropdownEventMap {\n igcFocus: CustomEvent<void>;\n igcBlur: CustomEvent<void>;\n}\n\n@themes({ bootstrap, material, fluent, indigo })\n@blazorAdditionalDependencies(\n 'IgcIconComponent, IgcInputComponent, IgcSelectGroupComponent, IgcSelectHeaderComponent, IgcSelectItemComponent'\n)\n/**\n * @element igc-select\n *\n * @slot - Renders the list of select items.\n * @slot prefix - Renders content before the input.\n * @slot suffix - Renders content after input.\n * @slot header - Renders a container before the list of options.\n * @slot footer - Renders a container after the list of options.\n * @slot helper-text - Renders content below the input.\n * @slot toggle-icon - Renders content inside the suffix container.\n *\n * @fires igcFocus - Emitted when the select gains focus.\n * @fires igcBlur - Emitted when the select loses focus.\n * @fires igcChange - Emitted when the control's checked state changes.\n * @fires igcOpening - Emitted just before the list of options is opened.\n * @fires igcOpened - Emitted after the list of options is opened.\n * @fires igcClosing - Emitter just before the list of options is closed.\n * @fires igcClosed - Emitted after the list of options is closed.\n *\n * @csspart list - The list of options wrapper.\n * @csspart input - The encapsulated igc-input.\n * @csspart label - The encapsulated text label.\n * @csspart prefix - The prefix wrapper.\n * @csspart suffix - The suffix wrapper.\n * @csspart toggle-icon - The toggle icon wrapper.\n * @csspart helper-text - The helper text wrapper.\n */\nexport default class IgcSelectComponent extends EventEmitterMixin<\n IgcSelectEventMap,\n Constructor<IgcDropdownComponent>\n>(IgcDropdownComponent) {\n /** @private */\n public static readonly tagName = 'igc-select';\n public static styles = styles;\n private searchTerm = '';\n private lastKeyTime = Date.now();\n\n private readonly targetKeyHandlers: Map<string, Function> = new Map(\n Object.entries({\n ' ': this.onTargetEnterKey,\n Tab: this.onTargetTabKey,\n Escape: this.onEscapeKey,\n Enter: this.onTargetEnterKey,\n ArrowLeft: this.onTargetArrowLeftKeyDown,\n ArrowRight: this.onTargetArrowRightKeyDown,\n ArrowUp: this.onTargetArrowUpKeyDown,\n ArrowDown: this.onTargetArrowDownKeyDown,\n Home: this.onTargetHomeKey,\n End: this.onTargetEndKey,\n })\n );\n\n @queryAssignedElements({ flatten: true, selector: 'igc-select-item' })\n protected override items!: Array<IgcSelectItemComponent>;\n\n @queryAssignedElements({ flatten: true, selector: 'igc-select-group' })\n protected override groups!: Array<IgcSelectGroupComponent>;\n\n @queryAssignedElements({ slot: 'helper-text' })\n protected helperText!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'suffix' })\n protected inputSuffix!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'prefix' })\n protected inputPrefix!: Array<HTMLElement>;\n\n @state()\n protected override selectedItem!: IgcSelectItemComponent | null;\n\n @query('div[role=\"combobox\"]')\n protected override target!: IgcInputComponent;\n\n /** The value attribute of the control. */\n @property({ reflect: false, type: String })\n public value?: string | undefined;\n\n /** The name attribute of the control. */\n @property()\n public name!: string;\n\n /** The disabled attribute of the control. */\n @property({ reflect: true, type: Boolean })\n public disabled = false;\n\n /** The required attribute of the control. */\n @property({ reflect: true, type: Boolean })\n public required = false;\n\n /** The invalid attribute of the control. */\n @property({ reflect: true, type: Boolean })\n public invalid = false;\n\n /** The outlined attribute of the control. */\n @property({ reflect: true, type: Boolean })\n public outlined = false;\n\n /** The autofocus attribute of the control. */\n @property({ type: Boolean })\n public override autofocus!: boolean;\n\n /** The label attribute of the control. */\n @property({ type: String })\n public label!: string;\n\n /** The placeholder attribute of the control. */\n @property({ type: String })\n public placeholder!: string;\n\n /** Whether the dropdown's width should be the same as the target's one. */\n @property({ type: Boolean, attribute: 'same-width' })\n public override sameWidth = true;\n\n /** The direction attribute of the control. */\n @property({ reflect: true })\n public override dir: 'ltr' | 'rtl' | 'auto' = 'auto';\n\n constructor() {\n super();\n this.size = 'medium';\n\n /** Return the focus to the target element when closing the list of options. */\n this.addEventListener('igcChange', () => {\n if (this.open) this.target.focus();\n });\n }\n\n /** Override the dropdown target focusout behavior to prevent the focus from\n * being returned to the target element when the select loses focus. */\n protected override handleFocusout() {}\n\n /** Sets focus on the component. */\n public override focus(options?: FocusOptions) {\n this.target.focus(options);\n }\n\n /** Removes focus from the component. */\n public override blur() {\n this.target.blur();\n }\n\n /** Checks the validity of the control. */\n public reportValidity() {\n this.invalid = this.required && !this.value;\n if (this.invalid) this.target.focus();\n return !this.invalid;\n }\n\n /** A wrapper around the custom reportValidity method to comply with the native select API. */\n public checkValidity() {\n return this.reportValidity();\n }\n\n public override async firstUpdated() {\n super.firstUpdated();\n await this.updateComplete;\n\n if (!this.selectedItem && this.value) {\n this.updateSelected();\n }\n\n if (this.autofocus) {\n this.target.focus();\n }\n }\n\n @watch('selectedItem')\n protected updateValue() {\n this.value = this.selectedItem?.value;\n }\n\n @watch('value')\n protected updateSelected() {\n if (this.allItems.length === 0) return;\n\n if (this.selectedItem?.value !== this.value) {\n const matches = this.allItems.filter((i) => i.value === this.value);\n const index = this.allItems.indexOf(\n matches.at(-1) as IgcSelectItemComponent\n );\n\n if (index === -1) {\n this.value = undefined;\n this.clearSelection();\n return;\n }\n\n this.select(index);\n }\n }\n\n @watch('value')\n protected validate() {\n this.updateComplete.then(() => this.reportValidity());\n }\n\n protected selectNext() {\n const activeItemIndex = [...this.allItems].indexOf(\n this.selectedItem ?? this.activeItem\n );\n\n const next = this.getNearestSiblingFocusableItemIndex(\n activeItemIndex ?? -1,\n 1\n );\n this.selectItem(this.allItems[next], true);\n }\n\n protected selectPrev() {\n const activeItemIndex = [...this.allItems].indexOf(\n this.selectedItem ?? this.activeItem\n );\n const prev = this.getNearestSiblingFocusableItemIndex(\n activeItemIndex ?? -1,\n -1\n );\n this.selectItem(this.allItems[prev], true);\n }\n\n protected selectInteractiveItem(index: number) {\n const item = this.allItems\n .filter((i) => !i.disabled)\n .at(index) as IgcDropdownItemComponent;\n\n if (item.value !== this.value) {\n this.selectItem(item, true);\n }\n }\n\n protected searchItem(event: KeyboardEvent): void {\n // ignore longer keys ('Alt', 'ArrowDown', etc)\n if (!/^.$/u.test(event.key)) {\n return;\n }\n\n const currentTime = Date.now();\n\n if (currentTime - this.lastKeyTime > 500) {\n this.searchTerm = '';\n }\n\n this.searchTerm += event.key;\n this.lastKeyTime = currentTime;\n\n const item = this.allItems\n .filter((i) => !i.disabled)\n .find((i) =>\n i.textContent\n ?.trim()\n .toLowerCase()\n .startsWith(this.searchTerm.toLowerCase())\n );\n\n if (item && this.value !== item.value) {\n this.open ? this.activateItem(item) : this.selectItem(item);\n }\n }\n\n protected handleFocus() {\n if (this.open) return;\n this.emitEvent('igcFocus');\n }\n\n protected handleBlur() {\n if (this.open) return;\n this.emitEvent('igcBlur');\n }\n\n protected onTargetTabKey() {\n this.target.blur();\n if (this.open) this.hide();\n }\n\n protected onTargetEnterKey() {\n !this.open ? this.target.click() : this.onEnterKey();\n }\n\n protected onTargetArrowLeftKeyDown() {\n !this.open ? this.selectPrev() : this.onArrowUpKeyDown();\n }\n\n protected onTargetArrowRightKeyDown() {\n !this.open ? this.selectNext() : this.onArrowDownKeyDown();\n }\n\n protected onTargetArrowUpKeyDown(event: KeyboardEvent) {\n if (event.altKey) {\n this.toggle();\n } else {\n !this.open ? this.selectPrev() : this.onArrowUpKeyDown();\n }\n }\n\n protected onTargetArrowDownKeyDown(event: KeyboardEvent) {\n if (event.altKey) {\n this.toggle();\n } else {\n !this.open ? this.selectNext() : this.onArrowDownKeyDown();\n }\n }\n\n protected onTargetHomeKey() {\n !this.open ? this.selectInteractiveItem(0) : this.onHomeKey();\n }\n\n protected onTargetEndKey() {\n !this.open ? this.selectInteractiveItem(-1) : this.onEndKey();\n }\n\n protected handleTargetKeyDown(event: KeyboardEvent) {\n event.stopPropagation();\n\n if (this.targetKeyHandlers.has(event.key)) {\n event.preventDefault();\n this.targetKeyHandlers.get(event.key)?.call(this, event);\n } else {\n this.searchItem(event);\n }\n }\n\n protected get hasPrefixes() {\n return this.inputPrefix.length > 0;\n }\n\n protected get hasSuffixes() {\n return this.inputSuffix.length > 0;\n }\n\n protected override render() {\n return html`\n <div\n role=\"combobox\"\n tabindex=${this.disabled ? -1 : 0}\n aria-owns=\"dropdown\"\n aria-describedby=\"helper-text\"\n aria-disabled=${this.disabled}\n @focusin=${this.handleFocus}\n @focusout=${this.handleBlur}\n @keydown=${this.handleTargetKeyDown}\n @click=${this.handleTargetClick}\n >\n <igc-input\n id=\"input\"\n readonly\n exportparts=\"container: input, input: native-input, label, prefix, suffix\"\n value=${ifDefined(this.selectedItem?.textContent?.trim())}\n placeholder=${ifDefined(this.placeholder)}\n label=${ifDefined(this.label)}\n size=${this.size}\n dir=${this.dir}\n tabindex=\"-1\"\n .disabled=\"${this.disabled}\"\n .required=${this.required}\n .invalid=${this.invalid}\n .outlined=${this.outlined}\n @igcBlur=${(e: Event) => e.stopPropagation()}\n @igcFocus=${(e: Event) => e.stopPropagation()}\n >\n <span slot=${this.hasPrefixes ? 'prefix' : ''}>\n <slot name=\"prefix\"></slot>\n </span>\n <span slot=${this.hasSuffixes ? 'suffix' : ''}>\n <slot name=\"suffix\"></slot>\n </span>\n <span slot=\"suffix\" part=\"toggle-icon\" style=\"display: flex\">\n <slot name=\"toggle-icon\">\n <igc-icon\n size=${this.size}\n name=${this.open ? 'keyboard_arrow_up' : 'keyboard_arrow_down'}\n collection=\"internal\"\n aria-hidden=\"true\"\n ></igc-icon>\n </slot>\n </span>\n </igc-input>\n </div>\n <div\n id=\"helper-text\"\n part=\"helper-text\"\n ?hidden=\"${this.helperText.length === 0}\"\n >\n <slot name=\"helper-text\"></slot>\n </div>\n <div\n part=\"base\"\n style=${styleMap({ position: this.positionStrategy })}\n @click=${this.handleClick}\n ${this.toggleController.toggleDirective}\n >\n <div id=\"dropdown\" role=\"listbox\" part=\"list\" aria-labelledby=\"input\">\n <slot name=\"header\"></slot>\n <slot></slot>\n <slot name=\"footer\"></slot>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-select': IgcSelectComponent;\n }\n}\n"]}
|
|
@@ -10,8 +10,8 @@ export const styles = css `:host {
|
|
|
10
10
|
position: relative;
|
|
11
11
|
-webkit-box-sizing: border-box;
|
|
12
12
|
box-sizing: border-box;
|
|
13
|
-
scrollbar-width: var(--
|
|
14
|
-
scrollbar-color: var(--
|
|
13
|
+
scrollbar-width: var(--ig-scrollbar-size);
|
|
14
|
+
scrollbar-color: var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background);
|
|
15
15
|
}
|
|
16
16
|
:host *,
|
|
17
17
|
:host *::before,
|
|
@@ -20,12 +20,12 @@ export const styles = css `:host {
|
|
|
20
20
|
box-sizing: border-box;
|
|
21
21
|
}
|
|
22
22
|
:host ::-webkit-scrollbar {
|
|
23
|
-
width: var(--
|
|
24
|
-
height: var(--
|
|
25
|
-
background: var(--
|
|
23
|
+
width: var(--ig-scrollbar-size);
|
|
24
|
+
height: var(--ig-scrollbar-size);
|
|
25
|
+
background: var(--ig-scrollbar-track-background);
|
|
26
26
|
}
|
|
27
27
|
:host ::-webkit-scrollbar-thumb {
|
|
28
|
-
background: var(--
|
|
28
|
+
background: var(--ig-scrollbar-thumb-background);
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
[hidden] {
|
|
@@ -103,5 +103,12 @@ igc-input::part(input)::-moz-selection {
|
|
|
103
103
|
}
|
|
104
104
|
igc-input::part(input)::selection {
|
|
105
105
|
background: transparent;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
[name=prefix]::slotted(*),
|
|
109
|
+
[name=suffix]::slotted(*) {
|
|
110
|
+
display: -webkit-box;
|
|
111
|
+
display: -ms-flexbox;
|
|
112
|
+
display: flex;
|
|
106
113
|
}`;
|
|
107
114
|
//# sourceMappingURL=select.base.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.base.css.js","sourceRoot":"","sources":["../../../../../src/components/select/themes/light/select.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"select.base.css.js","sourceRoot":"","sources":["../../../../../src/components/select/themes/light/select.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+GvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host {\n --is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);\n --is-medium:\n min(\n clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),\n clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)\n );\n --is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);\n position: relative;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n scrollbar-width: var(--ig-scrollbar-size);\n scrollbar-color: var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background);\n}\n:host *,\n:host *::before,\n:host *::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n:host ::-webkit-scrollbar {\n width: var(--ig-scrollbar-size);\n height: var(--ig-scrollbar-size);\n background: var(--ig-scrollbar-track-background);\n}\n:host ::-webkit-scrollbar-thumb {\n background: var(--ig-scrollbar-thumb-background);\n}\n\n[hidden] {\n display: none !important;\n}\n\n/* stylelint-disable max-line-length */\n:host {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n font-family: var(--ig-font-family);\n}\n\n[part=base] {\n border-radius: clamp(0rem, calc(var(--ig-radius-factor) * 0.25rem), 0.25rem);\n overflow-y: auto;\n overflow-x: hidden;\n background: hsla(var(--ig-surface-500), var(--ig-surface-a));\n -webkit-box-shadow: var(--ig-elevation-8);\n box-shadow: var(--ig-elevation-8);\n min-width: 7rem;\n padding: 0.5rem 0;\n z-index: 10005;\n}\n\n:host([size=small]) {\n --component-size: var(--ig-size, var(--ig-size-small));\n}\n\n:host([size=medium]) {\n --component-size: var(--ig-size, var(--ig-size-medium));\n}\n\n:host([size=large]) {\n --component-size: var(--ig-size, var(--ig-size-large));\n}\n\n:host {\n display: block;\n}\n:host ::slotted([slot=helper-text]) {\n font-family: var(--ig-caption-font-family);\n font-size: var(--ig-caption-font-size);\n font-weight: var(--ig-caption-font-weight);\n font-style: var(--ig-caption-font-style);\n line-height: var(--ig-caption-line-height);\n letter-spacing: var(--ig-caption-letter-spacing);\n text-transform: var(--ig-caption-text-transform);\n margin-top: var(--ig-caption-margin-top);\n margin-bottom: var(--ig-caption-margin-bottom);\n color: hsla(var(--ig-gray-600), var(--ig-gray-a));\n}\n\n[role=combobox] {\n outline-style: none;\n}\n\n:host([disabled]) ::slotted([slot=helper-text]) {\n color: hsla(var(--ig-gray-400), var(--ig-gray-a));\n}\n:host([disabled]) [role=combobox] {\n pointer-events: none;\n}\n\nigc-input {\n cursor: pointer;\n}\n\nigc-input::part(input) {\n cursor: pointer;\n}\nigc-input::part(input)::-moz-selection {\n background: transparent;\n}\nigc-input::part(input)::selection {\n background: transparent;\n}\n\n[name=prefix]::slotted(*),\n[name=suffix]::slotted(*) {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}`;\n"]}
|
|
@@ -10,8 +10,8 @@ export const styles = css `:host {
|
|
|
10
10
|
position: relative;
|
|
11
11
|
-webkit-box-sizing: border-box;
|
|
12
12
|
box-sizing: border-box;
|
|
13
|
-
scrollbar-width: var(--
|
|
14
|
-
scrollbar-color: var(--
|
|
13
|
+
scrollbar-width: var(--ig-scrollbar-size);
|
|
14
|
+
scrollbar-color: var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background);
|
|
15
15
|
}
|
|
16
16
|
:host *,
|
|
17
17
|
:host *::before,
|
|
@@ -20,12 +20,12 @@ export const styles = css `:host {
|
|
|
20
20
|
box-sizing: border-box;
|
|
21
21
|
}
|
|
22
22
|
:host ::-webkit-scrollbar {
|
|
23
|
-
width: var(--
|
|
24
|
-
height: var(--
|
|
25
|
-
background: var(--
|
|
23
|
+
width: var(--ig-scrollbar-size);
|
|
24
|
+
height: var(--ig-scrollbar-size);
|
|
25
|
+
background: var(--ig-scrollbar-track-background);
|
|
26
26
|
}
|
|
27
27
|
:host ::-webkit-scrollbar-thumb {
|
|
28
|
-
background: var(--
|
|
28
|
+
background: var(--ig-scrollbar-thumb-background);
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
[hidden] {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider.base.css.js","sourceRoot":"","sources":["../../../../../src/components/slider/themes/light/slider.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgTvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host {\n --is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);\n --is-medium:\n min(\n clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),\n clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)\n );\n --is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);\n position: relative;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n scrollbar-width: var(--
|
|
1
|
+
{"version":3,"file":"slider.base.css.js","sourceRoot":"","sources":["../../../../../src/components/slider/themes/light/slider.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgTvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host {\n --is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);\n --is-medium:\n min(\n clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),\n clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)\n );\n --is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);\n position: relative;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n scrollbar-width: var(--ig-scrollbar-size);\n scrollbar-color: var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background);\n}\n:host *,\n:host *::before,\n:host *::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n:host ::-webkit-scrollbar {\n width: var(--ig-scrollbar-size);\n height: var(--ig-scrollbar-size);\n background: var(--ig-scrollbar-track-background);\n}\n:host ::-webkit-scrollbar-thumb {\n background: var(--ig-scrollbar-thumb-background);\n}\n\n[hidden] {\n display: none !important;\n}\n\n/* stylelint-disable max-line-length */\n:host {\n display: block;\n}\n\nslot {\n display: none;\n}\n\n[part~=base] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n position: relative;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n height: 3rem;\n -webkit-transition: all 0.2s ease-out;\n -o-transition: all 0.2s ease-out;\n transition: all 0.2s ease-out;\n font-family: var(--ig-font-family);\n}\n\n[part=track] {\n border-radius: clamp(0rem, calc(var(--ig-radius-factor) * 2rem), 2rem);\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n[part=fill] {\n position: absolute;\n background: hsla(var(--ig-secondary-500), var(--ig-secondary-a));\n border-radius: inherit;\n}\n\n[part=inactive] {\n position: absolute;\n width: 100%;\n top: 0.0625rem;\n background: hsla(var(--ig-secondary-500), 0.24);\n -webkit-transition: background 0.2s ease-out;\n -o-transition: background 0.2s ease-out;\n transition: background 0.2s ease-out;\n border-radius: inherit;\n}\n\n[part=steps] {\n position: absolute;\n width: 100%;\n height: 0.25rem;\n opacity: 0.85;\n -webkit-transition: opacity 0.2s ease-out;\n -o-transition: opacity 0.2s ease-out;\n transition: opacity 0.2s ease-out;\n top: 50%;\n -webkit-transform: translateY(-50%);\n -ms-transform: translateY(-50%);\n transform: translateY(-50%);\n color: white;\n}\n[part=steps] svg {\n -webkit-clip-path: inset(0 0.1875rem 0 0.1875rem);\n clip-path: inset(0 0.1875rem 0 0.1875rem);\n}\n[part=steps] line {\n -webkit-transform: translateY(25%);\n -ms-transform: translateY(25%);\n transform: translateY(25%);\n stroke: currentcolor;\n stroke-width: 0.1875rem;\n stroke-linecap: round;\n}\n\n[part=ticks] {\n width: 100%;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n position: absolute;\n bottom: 0;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n[part=ticks]:first-child {\n bottom: auto;\n top: 0;\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: flex-end;\n}\n[part=ticks]:first-child [part=tick-label] {\n top: auto;\n bottom: 1.5rem;\n}\n\n[part=tick-group]:first-of-type {\n -webkit-margin-start: -0.0625rem;\n margin-inline-start: -0.0625rem;\n}\n[part=tick-group]:last-of-type {\n -webkit-margin-start: -0.0625rem;\n margin-inline-start: -0.0625rem;\n}\n\n[part=tick] {\n background: hsla(var(--ig-gray-500), var(--ig-gray-a));\n height: 0.5rem;\n width: 0.125rem;\n}\n\n[part=tick][data-primary=true] {\n height: 1rem;\n}\n\n[part=tick-label] {\n color: hsla(var(--ig-gray-500), var(--ig-gray-a));\n position: absolute;\n top: 1.5rem;\n line-height: 0.7;\n opacity: 1;\n -webkit-transition: opacity 0.2s ease-in-out;\n -o-transition: opacity 0.2s ease-in-out;\n transition: opacity 0.2s ease-in-out;\n font-family: var(--ig-caption-font-family);\n font-size: var(--ig-caption-font-size);\n font-weight: var(--ig-caption-font-weight);\n font-style: var(--ig-caption-font-style);\n line-height: var(--ig-caption-line-height);\n letter-spacing: var(--ig-caption-letter-spacing);\n text-transform: var(--ig-caption-text-transform);\n margin-top: var(--ig-caption-margin-top);\n margin-bottom: var(--ig-caption-margin-bottom);\n}\n\n[part=tick-label-inner] {\n -webkit-margin-start: -50%;\n margin-inline-start: -50%;\n}\n\n[part=thumbs] {\n position: absolute;\n width: 100%;\n height: 0;\n cursor: default;\n inset-inline-start: 0;\n}\n\n[part~=thumb] {\n border-radius: clamp(0rem, calc(var(--ig-radius-factor) * 0.625rem), 0.625rem);\n position: absolute;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n outline-style: none;\n -webkit-transition: border-radius 0.1s ease-out, -webkit-transform 0.1s ease-out;\n transition: border-radius 0.1s ease-out, -webkit-transform 0.1s ease-out;\n -o-transition: transform 0.1s ease-out, border-radius 0.1s ease-out;\n transition: transform 0.1s ease-out, border-radius 0.1s ease-out;\n transition: transform 0.1s ease-out, border-radius 0.1s ease-out, -webkit-transform 0.1s ease-out;\n background: hsla(var(--ig-secondary-500), var(--ig-secondary-a));\n}\n\n[part=thumb-label] {\n position: absolute;\n top: calc((1.875rem + 1.25rem) * -1);\n pointer-events: none;\n height: 1.875rem;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n\n[part=thumb-label-inner] {\n font-family: var(--ig-caption-font-family);\n font-size: var(--ig-caption-font-size);\n font-weight: var(--ig-caption-font-weight);\n font-style: var(--ig-caption-font-style);\n line-height: var(--ig-caption-line-height);\n letter-spacing: var(--ig-caption-letter-spacing);\n text-transform: var(--ig-caption-text-transform);\n margin-top: var(--ig-caption-margin-top);\n margin-bottom: var(--ig-caption-margin-bottom);\n border-radius: clamp(0rem, calc(var(--ig-radius-factor) * 0.125rem), 0.125rem);\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n min-width: 2.5rem;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n white-space: nowrap;\n -webkit-margin-start: -50%;\n margin-inline-start: -50%;\n padding: 0 0.125rem;\n color: var(--ig-gray-700-contrast);\n background: hsla(var(--ig-gray-700), var(--ig-gray-a));\n}\n[part=thumb-label-inner]::after {\n content: \"\";\n position: absolute;\n top: 85%;\n border-left: 0.625rem solid transparent;\n border-right: 0.625rem solid transparent;\n border-top: 0.625rem solid hsla(var(--ig-gray-700), var(--ig-gray-a));\n}\n\n:host(:not([tick-label-rotation=\"0\"])) [part=tick-label-inner] {\n -webkit-writing-mode: vertical-rl;\n -ms-writing-mode: tb-rl;\n writing-mode: vertical-rl;\n -webkit-margin-start: 0;\n margin-inline-start: 0;\n margin-block: -50%;\n}\n\n:host([tick-label-rotation=\"-90\"]) [part=tick-label-inner] {\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n:host([disabled]) {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n pointer-events: none;\n cursor: initial;\n}\n:host([disabled]) [part=inactive] {\n background: hsla(var(--ig-gray-200), var(--ig-gray-a));\n}\n:host([disabled]) [part=fill],\n:host([disabled]) [part=tick] {\n background: hsla(var(--ig-gray-400), var(--ig-gray-a));\n}\n:host([disabled]) [part=tick-label] {\n color: hsla(var(--ig-gray-400), var(--ig-gray-a));\n}\n:host([disabled]) [part~=thumb] {\n background: hsla(var(--ig-gray-400), var(--ig-gray-a));\n}\n:host([disabled]) [part~=thumb]:focus::after {\n -webkit-transform: scale(0);\n -ms-transform: scale(0);\n transform: scale(0);\n}\n:host([disabled]):hover [part=inactive] {\n background: hsla(var(--ig-gray-400), var(--ig-gray-a));\n}\n:host([disabled]):hover [part~=thumb] {\n border-color: hsla(var(--ig-gray-400), var(--ig-gray-a));\n}`;\n"]}
|
|
@@ -10,8 +10,8 @@ export const styles = css `:host {
|
|
|
10
10
|
position: relative;
|
|
11
11
|
-webkit-box-sizing: border-box;
|
|
12
12
|
box-sizing: border-box;
|
|
13
|
-
scrollbar-width: var(--
|
|
14
|
-
scrollbar-color: var(--
|
|
13
|
+
scrollbar-width: var(--ig-scrollbar-size);
|
|
14
|
+
scrollbar-color: var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background);
|
|
15
15
|
}
|
|
16
16
|
:host *,
|
|
17
17
|
:host *::before,
|
|
@@ -20,12 +20,12 @@ export const styles = css `:host {
|
|
|
20
20
|
box-sizing: border-box;
|
|
21
21
|
}
|
|
22
22
|
:host ::-webkit-scrollbar {
|
|
23
|
-
width: var(--
|
|
24
|
-
height: var(--
|
|
25
|
-
background: var(--
|
|
23
|
+
width: var(--ig-scrollbar-size);
|
|
24
|
+
height: var(--ig-scrollbar-size);
|
|
25
|
+
background: var(--ig-scrollbar-track-background);
|
|
26
26
|
}
|
|
27
27
|
:host ::-webkit-scrollbar-thumb {
|
|
28
|
-
background: var(--
|
|
28
|
+
background: var(--ig-scrollbar-thumb-background);
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
[hidden] {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snackbar.base.css.js","sourceRoot":"","sources":["../../../../../src/components/snackbar/themes/light/snackbar.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6GvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host {\n --is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);\n --is-medium:\n min(\n clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),\n clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)\n );\n --is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);\n position: relative;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n scrollbar-width: var(--
|
|
1
|
+
{"version":3,"file":"snackbar.base.css.js","sourceRoot":"","sources":["../../../../../src/components/snackbar/themes/light/snackbar.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6GvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host {\n --is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);\n --is-medium:\n min(\n clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),\n clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)\n );\n --is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);\n position: relative;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n scrollbar-width: var(--ig-scrollbar-size);\n scrollbar-color: var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background);\n}\n:host *,\n:host *::before,\n:host *::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n:host ::-webkit-scrollbar {\n width: var(--ig-scrollbar-size);\n height: var(--ig-scrollbar-size);\n background: var(--ig-scrollbar-track-background);\n}\n:host ::-webkit-scrollbar-thumb {\n background: var(--ig-scrollbar-thumb-background);\n}\n\n[hidden] {\n display: none !important;\n}\n\n/* stylelint-disable max-line-length */\n:host {\n font-family: var(--ig-font-family);\n position: fixed;\n bottom: 0;\n left: 50%;\n -webkit-transform: translate(-50%, -50%);\n -ms-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n}\n\n[part~=base] {\n border-radius: clamp(0rem, calc(var(--ig-radius-factor) * 0.25rem), 0.25rem);\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: row nowrap;\n flex-wrap: row nowrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n min-height: 3rem;\n padding: 0.4375rem 1.5rem;\n margin: 0.5rem;\n gap: 1.5rem;\n color: var(--ig-gray-900-contrast);\n background: hsla(var(--ig-gray-900), 0.9);\n -webkit-box-shadow: var(--ig-elevation-4);\n box-shadow: var(--ig-elevation-4);\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-backdrop-filter: blur(8px);\n backdrop-filter: blur(8px);\n}\n\n[part~=message] {\n font-family: var(--ig-body-2-font-family);\n font-size: var(--ig-body-2-font-size);\n font-weight: var(--ig-body-2-font-weight);\n font-style: var(--ig-body-2-font-style);\n line-height: var(--ig-body-2-line-height);\n letter-spacing: var(--ig-body-2-letter-spacing);\n text-transform: var(--ig-body-2-text-transform);\n margin-top: var(--ig-body-2-margin-top);\n margin-bottom: var(--ig-body-2-margin-bottom);\n display: -webkit-inline-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n -webkit-box-flex: 1;\n -ms-flex: 1 1 50%;\n flex: 1 1 50%;\n}\n\n:host([action-text]) igc-button::part(base) {\n text-transform: uppercase;\n font-weight: 600;\n}\n:host([action-text]) igc-button::part(base):hover::before {\n background: transparent;\n}\n:host([action-text]) igc-button::part(base):focus {\n background: transparent;\n outline: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n:host([action-text]) igc-button::part(base):focus::before {\n background: transparent;\n}\n\n:host(:not([open])) [part=base] {\n display: none;\n}`;\n"]}
|
|
@@ -3,6 +3,7 @@ import { createCounter } from '../common/util.js';
|
|
|
3
3
|
import { styles } from './themes/light/tab-panel.base.css.js';
|
|
4
4
|
export default class IgcTabPanelComponent extends LitElement {
|
|
5
5
|
connectedCallback() {
|
|
6
|
+
super.connectedCallback();
|
|
6
7
|
this.setAttribute('role', 'tabpanel');
|
|
7
8
|
this.tabIndex = this.hasAttribute('tabindex') ? this.tabIndex : 0;
|
|
8
9
|
this.slot = this.slot.length > 0 ? this.slot : 'panel';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab-panel.js","sourceRoot":"","sources":["../../../src/components/tabs/tab-panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAS9D,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,UAAU;IAO1C,iBAAiB;QAC/B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;QACvD,IAAI,CAAC,EAAE;YACL,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBACvB,iBAAiB,oBAAoB,CAAC,SAAS,EAAE,EAAE,CAAC;IACxD,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;;
|
|
1
|
+
{"version":3,"file":"tab-panel.js","sourceRoot":"","sources":["../../../src/components/tabs/tab-panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAS9D,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,UAAU;IAO1C,iBAAiB;QAC/B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;QACvD,IAAI,CAAC,EAAE;YACL,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBACvB,iBAAiB,oBAAoB,CAAC,SAAS,EAAE,EAAE,CAAC;IACxD,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;;AAlBsB,4BAAO,GAAG,eAAe,CAAC;AAE1B,2BAAM,GAAG,MAAM,CAAC;AAEf,8BAAS,GAAG,aAAa,EAAE,CAAC","sourcesContent":["import { html, LitElement } from 'lit';\nimport { createCounter } from '../common/util.js';\nimport { styles } from './themes/light/tab-panel.base.css.js';\n\n/**\n * Represents the content of a tab\n *\n * @element igc-tab-panel\n *\n * @slot - Renders the content.\n */\nexport default class IgcTabPanelComponent extends LitElement {\n public static readonly tagName = 'igc-tab-panel';\n\n public static override styles = styles;\n\n private static readonly increment = createCounter();\n\n public override connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', 'tabpanel');\n this.tabIndex = this.hasAttribute('tabindex') ? this.tabIndex : 0;\n this.slot = this.slot.length > 0 ? this.slot : 'panel';\n this.id =\n this.getAttribute('id') ||\n `igc-tab-panel-${IgcTabPanelComponent.increment()}`;\n }\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-tab-panel': IgcTabPanelComponent;\n }\n}\n"]}
|
package/components/tabs/tabs.js
CHANGED
|
@@ -163,9 +163,7 @@ let IgcTabsComponent = IgcTabsComponent_1 = class IgcTabsComponent extends Event
|
|
|
163
163
|
this.tabs.forEach((tab) => (tab.selected = tab === this.activeTab));
|
|
164
164
|
this.panels.forEach((panel) => {
|
|
165
165
|
var _a;
|
|
166
|
-
|
|
167
|
-
display: panel.id === ((_a = this.activeTab) === null || _a === void 0 ? void 0 : _a.panel) ? 'block' : 'none',
|
|
168
|
-
});
|
|
166
|
+
panel.hidden = panel.id !== ((_a = this.activeTab) === null || _a === void 0 ? void 0 : _a.panel);
|
|
169
167
|
});
|
|
170
168
|
}
|
|
171
169
|
syncAttributes() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../../src/components/tabs/tabs.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing } from 'lit';\nimport {\n eventOptions,\n property,\n query,\n queryAssignedElements,\n state,\n} from 'lit/decorators.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { styles } from './themes/light/tabs.base.css.js';\nimport { styles as bootstrap } from './themes/light/tabs.bootstrap.css.js';\nimport { styles as fluent } from './themes/light/tabs.fluent.css.js';\nimport { styles as indigo } from './themes/light/tabs.indigo.css.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { Constructor } from '../common/mixins/constructor.js';\nimport { createCounter, getOffset, isLTR } from '../common/util.js';\nimport {\n getAttributesForTags,\n getNodesForTags,\n observerConfig,\n} from './utils.js';\n\nimport { defineComponents } from '../common/definitions/defineComponents.js';\nimport IgcTabComponent from './tab.js';\nimport IgcTabPanelComponent from './tab-panel.js';\nimport IgcIconButtonComponent from '../button/icon-button.js';\n\ndefineComponents(IgcTabComponent, IgcTabPanelComponent, IgcIconButtonComponent);\n\nexport interface IgcTabsEventMap {\n igcChange: CustomEvent<IgcTabComponent>;\n}\n\n/**\n * Represents tabs component\n *\n * @element igc-tabs\n *\n * @fires igcChange - Emitted when the selected tab changes.\n *\n * @slot - Renders the tab header.\n * @slot panel - Renders the tab content.\n *\n * @csspart headers - The wrapper of the tabs including the headers content and the scroll buttons.\n * @csspart headers-content - The container for the tab headers.\n * @csspart headers-wrapper - The wrapper for the tab headers and the selected indicator.\n * @csspart headers-scroll - The container for the headers.\n * @csspart selected-indicator - The selected indicator.\n * @csspart start-scroll-button - The start scroll button displayed when the tabs overflow.\n * @csspart end-scroll-button - The end scroll button displayed when the tabs overflow.\n * @csspart content - The container for the tabs content.\n */\n@themes({ bootstrap, fluent, indigo })\n@blazorAdditionalDependencies('IgcTabComponent, IgcTabPanelComponent')\nexport default class IgcTabsComponent extends EventEmitterMixin<\n IgcTabsEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-tabs';\n\n public static styles = styles;\n private static readonly increment = createCounter();\n\n @queryAssignedElements({ selector: 'igc-tab' })\n protected tabs!: Array<IgcTabComponent>;\n\n @queryAssignedElements({ slot: 'panel' })\n protected panels!: Array<IgcTabPanelComponent>;\n\n @query('[part=\"headers-wrapper\"]', true)\n protected wrapper!: HTMLElement;\n\n @query('[part=\"headers-content\"]', true)\n protected container!: HTMLElement;\n\n @query('[part=\"selected-indicator\"]', true)\n protected selectedIndicator!: HTMLElement;\n\n @state()\n protected showScrollButtons = false;\n\n @state()\n protected disableStartScrollButton = true;\n\n @state()\n protected disableEndScrollButton = false;\n\n @state()\n protected activeTab?: IgcTabComponent;\n\n protected resizeObserver!: ResizeObserver;\n protected mutationObserver!: MutationObserver;\n\n protected get enabledTabs() {\n return this.tabs.filter((tab) => !tab.disabled);\n }\n\n /** Returns the currently selected tab. */\n public get selected(): string {\n return this.activeTab?.panel ?? '';\n }\n\n /** Sets the alignment for the tab headers */\n @property({ reflect: true })\n public alignment: 'start' | 'end' | 'center' | 'justify' = 'start';\n\n /**\n * Determines the tab activation. When set to auto,\n * the tab is instantly selected while navigating with the Left/Right Arrows, Home or End keys\n * and the corresponding panel is displayed.\n * When set to manual, the tab is only focused. The selection happens after pressing Space or Enter.\n */\n @property()\n public activation: 'auto' | 'manual' = 'auto';\n\n @watch('alignment', { waitUntilFirstUpdate: true })\n protected alignIndicator() {\n const styles: Partial<CSSStyleDeclaration> = {\n visibility: this.activeTab ? 'visible' : 'hidden',\n transitionDuration: '0.3s',\n };\n\n if (this.activeTab) {\n Object.assign(styles, {\n width: `${this.activeTab!.offsetWidth}px`,\n transform: `translate(${\n isLTR(this)\n ? getOffset(this.activeTab!, this.wrapper).left\n : getOffset(this.activeTab!, this.wrapper).right\n }px)`,\n });\n }\n\n Object.assign(this.selectedIndicator.style, styles);\n }\n\n protected override async firstUpdated() {\n this.showScrollButtons =\n this.container.scrollWidth > this.container.clientWidth;\n\n await this.updateComplete;\n\n this.syncAttributes();\n this.setupObserver();\n this.setSelectedTab(\n this.tabs.filter((tab) => tab.selected).at(-1) ?? this.enabledTabs.at(0)\n );\n this.updateSelectedTab();\n }\n\n public override disconnectedCallback() {\n this.resizeObserver?.disconnect();\n this.mutationObserver?.disconnect();\n super.disconnectedCallback();\n }\n\n protected updateButtonsOnResize() {\n // Hide the buttons in the resize observer callback and synchronously update the DOM\n // in order to get the actual size\n this.showScrollButtons = false;\n this.performUpdate();\n\n this.showScrollButtons =\n this.container.scrollWidth > this.container.clientWidth;\n\n this.updateScrollButtons();\n }\n\n protected updateScrollButtons() {\n const { scrollLeft, offsetWidth } = this.container,\n { scrollWidth } = this.wrapper;\n\n this.disableEndScrollButton =\n scrollWidth <= Math.abs(scrollLeft) + offsetWidth;\n this.disableStartScrollButton = scrollLeft === 0;\n }\n\n protected setupObserver() {\n this.resizeObserver = new ResizeObserver(() => {\n this.updateButtonsOnResize();\n this.alignIndicator();\n });\n\n [this.container, this.wrapper, ...this.tabs].forEach((element) =>\n this.resizeObserver.observe(element)\n );\n\n this.mutationObserver = new MutationObserver(async (records, observer) => {\n // Stop observing while handling changes\n observer.disconnect();\n\n const attributes = getAttributesForTags<IgcTabComponent>(\n records,\n 'igc-tab'\n );\n const changed = getNodesForTags<IgcTabComponent>(\n records,\n this,\n 'igc-tab'\n );\n\n if (attributes.length > 0) {\n this.activeTab = attributes.find((tab) => tab.selected);\n }\n\n if (changed) {\n changed.addedNodes.forEach((tab) => {\n this.resizeObserver.observe(tab);\n if (tab.selected) {\n this.activeTab = tab;\n }\n });\n changed.removedNodes.forEach((tab) => {\n this.resizeObserver.unobserve(tab);\n if (tab.selected || this.activeTab === tab) {\n this.activeTab = undefined;\n }\n });\n\n this.syncAttributes();\n }\n\n this.updateSelectedTab();\n this.activeTab?.scrollIntoView({ block: 'nearest' });\n this.alignIndicator();\n\n // Watch for changes again\n await this.updateComplete;\n observer.observe(this, observerConfig);\n });\n\n this.mutationObserver.observe(this, observerConfig);\n }\n\n protected updateSelectedTab() {\n this.tabs.forEach((tab) => (tab.selected = tab === this.activeTab));\n this.panels.forEach((panel) =>\n Object.assign(panel.style, {\n display: panel.id === this.activeTab?.panel ? 'block' : 'none',\n })\n );\n }\n\n protected syncAttributes() {\n const prefix = this.id ? `${this.id}-` : '';\n this.tabs.forEach((tab, index) => {\n if (!tab.panel) {\n tab.panel =\n this.panels.at(index)?.id ??\n `${prefix}tab-${IgcTabsComponent.increment()}`;\n }\n this.panels\n .find((panel) => panel.id === tab.panel)\n ?.setAttribute('aria-labelledby', tab.id);\n });\n }\n\n private setSelectedTab(tab?: IgcTabComponent) {\n if (!tab || tab === this.activeTab) {\n return;\n }\n\n if (this.activeTab) {\n this.activeTab.selected = false;\n }\n\n this.activeTab = tab;\n this.activeTab.selected = true;\n }\n\n protected scrollByTabOffset(direction: 'start' | 'end') {\n const { scrollLeft, offsetWidth } = this.container;\n const LTR = isLTR(this),\n next = direction === 'end';\n\n const pivot = Math.abs(next ? offsetWidth + scrollLeft : scrollLeft);\n\n let amount = this.tabs\n .map((tab) => ({\n start: LTR\n ? getOffset(tab, this.wrapper).left\n : Math.abs(getOffset(tab, this.wrapper).right),\n width: tab.offsetWidth,\n }))\n .filter((offset) =>\n next ? offset.start + offset.width > pivot : offset.start < pivot\n )\n .at(next ? 0 : -1)!.width;\n\n amount *= next ? 1 : -1;\n this.container.scrollBy({ left: LTR ? amount : -amount });\n }\n\n protected handleClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest('igc-tab');\n\n if (!(tab && this.contains(tab)) || tab.disabled) {\n return;\n }\n\n tab.focus();\n this.setSelectedTab(tab);\n this.emitEvent('igcChange', { detail: this.activeTab });\n }\n\n protected handleKeyDown = (event: KeyboardEvent) => {\n const { key } = event;\n const enabledTabs = this.enabledTabs;\n const ltr = isLTR(this);\n\n let index = enabledTabs.indexOf(\n document.activeElement?.closest('igc-tab') as IgcTabComponent\n );\n\n switch (key) {\n case 'ArrowLeft':\n index = ltr\n ? (enabledTabs.length + index - 1) % enabledTabs.length\n : (index + 1) % enabledTabs.length;\n break;\n case 'ArrowRight':\n index = ltr\n ? (index + 1) % enabledTabs.length\n : (enabledTabs.length + index - 1) % enabledTabs.length;\n break;\n case 'Home':\n index = 0;\n break;\n case 'End':\n index = enabledTabs.length - 1;\n break;\n case 'Enter':\n case ' ':\n this.setSelectedTab(enabledTabs[index]);\n break;\n default:\n return;\n }\n\n enabledTabs[index].focus({ preventScroll: true });\n\n if (this.activation === 'auto') {\n this.setSelectedTab(enabledTabs[index]);\n this.emitEvent('igcChange', { detail: this.activeTab });\n } else {\n enabledTabs[index].scrollIntoView({ block: 'nearest' });\n }\n\n event.preventDefault();\n };\n\n @eventOptions({ passive: true })\n protected handleScroll() {\n this.updateScrollButtons();\n }\n\n /** Selects the specified tab and displays the corresponding panel. */\n public select(name: string) {\n this.setSelectedTab(this.tabs.find((el) => el.panel === name));\n }\n\n protected renderScrollButton(direction: 'start' | 'end') {\n const start = direction === 'start';\n\n return this.showScrollButtons\n ? html`<igc-icon-button\n tabindex=\"-1\"\n aria-hidden=\"true\"\n size=\"large\"\n variant=\"flat\"\n collection=\"internal\"\n part=\"${direction}-scroll-button\"\n name=\"navigate_${start ? 'before' : 'next'}\"\n .disabled=${start\n ? this.disableStartScrollButton\n : this.disableEndScrollButton}\n @click=${() => this.scrollByTabOffset(direction)}\n ></igc-icon-button>`\n : nothing;\n }\n\n protected override render() {\n return html`\n <div part=\"headers\">\n ${this.renderScrollButton('start')}\n <div part=\"headers-content\" @scroll=${this.handleScroll}>\n <div part=\"headers-wrapper\">\n <div\n part=\"headers-scroll\"\n role=\"tablist\"\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n >\n <slot></slot>\n </div>\n <div part=\"selected-indicator\"></div>\n </div>\n </div>\n ${this.renderScrollButton('end')}\n </div>\n <div part=\"content\">\n <slot name=\"panel\"></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-tabs': IgcTabsComponent;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../../src/components/tabs/tabs.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing } from 'lit';\nimport {\n eventOptions,\n property,\n query,\n queryAssignedElements,\n state,\n} from 'lit/decorators.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { styles } from './themes/light/tabs.base.css.js';\nimport { styles as bootstrap } from './themes/light/tabs.bootstrap.css.js';\nimport { styles as fluent } from './themes/light/tabs.fluent.css.js';\nimport { styles as indigo } from './themes/light/tabs.indigo.css.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { Constructor } from '../common/mixins/constructor.js';\nimport { createCounter, getOffset, isLTR } from '../common/util.js';\nimport {\n getAttributesForTags,\n getNodesForTags,\n observerConfig,\n} from './utils.js';\n\nimport { defineComponents } from '../common/definitions/defineComponents.js';\nimport IgcTabComponent from './tab.js';\nimport IgcTabPanelComponent from './tab-panel.js';\nimport IgcIconButtonComponent from '../button/icon-button.js';\n\ndefineComponents(IgcTabComponent, IgcTabPanelComponent, IgcIconButtonComponent);\n\nexport interface IgcTabsEventMap {\n igcChange: CustomEvent<IgcTabComponent>;\n}\n\n/**\n * Represents tabs component\n *\n * @element igc-tabs\n *\n * @fires igcChange - Emitted when the selected tab changes.\n *\n * @slot - Renders the tab header.\n * @slot panel - Renders the tab content.\n *\n * @csspart headers - The wrapper of the tabs including the headers content and the scroll buttons.\n * @csspart headers-content - The container for the tab headers.\n * @csspart headers-wrapper - The wrapper for the tab headers and the selected indicator.\n * @csspart headers-scroll - The container for the headers.\n * @csspart selected-indicator - The selected indicator.\n * @csspart start-scroll-button - The start scroll button displayed when the tabs overflow.\n * @csspart end-scroll-button - The end scroll button displayed when the tabs overflow.\n * @csspart content - The container for the tabs content.\n */\n@themes({ bootstrap, fluent, indigo })\n@blazorAdditionalDependencies('IgcTabComponent, IgcTabPanelComponent')\nexport default class IgcTabsComponent extends EventEmitterMixin<\n IgcTabsEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-tabs';\n\n public static styles = styles;\n private static readonly increment = createCounter();\n\n @queryAssignedElements({ selector: 'igc-tab' })\n protected tabs!: Array<IgcTabComponent>;\n\n @queryAssignedElements({ slot: 'panel' })\n protected panels!: Array<IgcTabPanelComponent>;\n\n @query('[part=\"headers-wrapper\"]', true)\n protected wrapper!: HTMLElement;\n\n @query('[part=\"headers-content\"]', true)\n protected container!: HTMLElement;\n\n @query('[part=\"selected-indicator\"]', true)\n protected selectedIndicator!: HTMLElement;\n\n @state()\n protected showScrollButtons = false;\n\n @state()\n protected disableStartScrollButton = true;\n\n @state()\n protected disableEndScrollButton = false;\n\n @state()\n protected activeTab?: IgcTabComponent;\n\n protected resizeObserver!: ResizeObserver;\n protected mutationObserver!: MutationObserver;\n\n protected get enabledTabs() {\n return this.tabs.filter((tab) => !tab.disabled);\n }\n\n /** Returns the currently selected tab. */\n public get selected(): string {\n return this.activeTab?.panel ?? '';\n }\n\n /** Sets the alignment for the tab headers */\n @property({ reflect: true })\n public alignment: 'start' | 'end' | 'center' | 'justify' = 'start';\n\n /**\n * Determines the tab activation. When set to auto,\n * the tab is instantly selected while navigating with the Left/Right Arrows, Home or End keys\n * and the corresponding panel is displayed.\n * When set to manual, the tab is only focused. The selection happens after pressing Space or Enter.\n */\n @property()\n public activation: 'auto' | 'manual' = 'auto';\n\n @watch('alignment', { waitUntilFirstUpdate: true })\n protected alignIndicator() {\n const styles: Partial<CSSStyleDeclaration> = {\n visibility: this.activeTab ? 'visible' : 'hidden',\n transitionDuration: '0.3s',\n };\n\n if (this.activeTab) {\n Object.assign(styles, {\n width: `${this.activeTab!.offsetWidth}px`,\n transform: `translate(${\n isLTR(this)\n ? getOffset(this.activeTab!, this.wrapper).left\n : getOffset(this.activeTab!, this.wrapper).right\n }px)`,\n });\n }\n\n Object.assign(this.selectedIndicator.style, styles);\n }\n\n protected override async firstUpdated() {\n this.showScrollButtons =\n this.container.scrollWidth > this.container.clientWidth;\n\n await this.updateComplete;\n\n this.syncAttributes();\n this.setupObserver();\n this.setSelectedTab(\n this.tabs.filter((tab) => tab.selected).at(-1) ?? this.enabledTabs.at(0)\n );\n this.updateSelectedTab();\n }\n\n public override disconnectedCallback() {\n this.resizeObserver?.disconnect();\n this.mutationObserver?.disconnect();\n super.disconnectedCallback();\n }\n\n protected updateButtonsOnResize() {\n // Hide the buttons in the resize observer callback and synchronously update the DOM\n // in order to get the actual size\n this.showScrollButtons = false;\n this.performUpdate();\n\n this.showScrollButtons =\n this.container.scrollWidth > this.container.clientWidth;\n\n this.updateScrollButtons();\n }\n\n protected updateScrollButtons() {\n const { scrollLeft, offsetWidth } = this.container,\n { scrollWidth } = this.wrapper;\n\n this.disableEndScrollButton =\n scrollWidth <= Math.abs(scrollLeft) + offsetWidth;\n this.disableStartScrollButton = scrollLeft === 0;\n }\n\n protected setupObserver() {\n this.resizeObserver = new ResizeObserver(() => {\n this.updateButtonsOnResize();\n this.alignIndicator();\n });\n\n [this.container, this.wrapper, ...this.tabs].forEach((element) =>\n this.resizeObserver.observe(element)\n );\n\n this.mutationObserver = new MutationObserver(async (records, observer) => {\n // Stop observing while handling changes\n observer.disconnect();\n\n const attributes = getAttributesForTags<IgcTabComponent>(\n records,\n 'igc-tab'\n );\n const changed = getNodesForTags<IgcTabComponent>(\n records,\n this,\n 'igc-tab'\n );\n\n if (attributes.length > 0) {\n this.activeTab = attributes.find((tab) => tab.selected);\n }\n\n if (changed) {\n changed.addedNodes.forEach((tab) => {\n this.resizeObserver.observe(tab);\n if (tab.selected) {\n this.activeTab = tab;\n }\n });\n changed.removedNodes.forEach((tab) => {\n this.resizeObserver.unobserve(tab);\n if (tab.selected || this.activeTab === tab) {\n this.activeTab = undefined;\n }\n });\n\n this.syncAttributes();\n }\n\n this.updateSelectedTab();\n this.activeTab?.scrollIntoView({ block: 'nearest' });\n this.alignIndicator();\n\n // Watch for changes again\n await this.updateComplete;\n observer.observe(this, observerConfig);\n });\n\n this.mutationObserver.observe(this, observerConfig);\n }\n\n protected updateSelectedTab() {\n this.tabs.forEach((tab) => (tab.selected = tab === this.activeTab));\n this.panels.forEach((panel) => {\n panel.hidden = panel.id !== this.activeTab?.panel;\n });\n }\n\n protected syncAttributes() {\n const prefix = this.id ? `${this.id}-` : '';\n this.tabs.forEach((tab, index) => {\n if (!tab.panel) {\n tab.panel =\n this.panels.at(index)?.id ??\n `${prefix}tab-${IgcTabsComponent.increment()}`;\n }\n this.panels\n .find((panel) => panel.id === tab.panel)\n ?.setAttribute('aria-labelledby', tab.id);\n });\n }\n\n private setSelectedTab(tab?: IgcTabComponent) {\n if (!tab || tab === this.activeTab) {\n return;\n }\n\n if (this.activeTab) {\n this.activeTab.selected = false;\n }\n\n this.activeTab = tab;\n this.activeTab.selected = true;\n }\n\n protected scrollByTabOffset(direction: 'start' | 'end') {\n const { scrollLeft, offsetWidth } = this.container;\n const LTR = isLTR(this),\n next = direction === 'end';\n\n const pivot = Math.abs(next ? offsetWidth + scrollLeft : scrollLeft);\n\n let amount = this.tabs\n .map((tab) => ({\n start: LTR\n ? getOffset(tab, this.wrapper).left\n : Math.abs(getOffset(tab, this.wrapper).right),\n width: tab.offsetWidth,\n }))\n .filter((offset) =>\n next ? offset.start + offset.width > pivot : offset.start < pivot\n )\n .at(next ? 0 : -1)!.width;\n\n amount *= next ? 1 : -1;\n this.container.scrollBy({ left: LTR ? amount : -amount });\n }\n\n protected handleClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest('igc-tab');\n\n if (!(tab && this.contains(tab)) || tab.disabled) {\n return;\n }\n\n tab.focus();\n this.setSelectedTab(tab);\n this.emitEvent('igcChange', { detail: this.activeTab });\n }\n\n protected handleKeyDown = (event: KeyboardEvent) => {\n const { key } = event;\n const enabledTabs = this.enabledTabs;\n const ltr = isLTR(this);\n\n let index = enabledTabs.indexOf(\n document.activeElement?.closest('igc-tab') as IgcTabComponent\n );\n\n switch (key) {\n case 'ArrowLeft':\n index = ltr\n ? (enabledTabs.length + index - 1) % enabledTabs.length\n : (index + 1) % enabledTabs.length;\n break;\n case 'ArrowRight':\n index = ltr\n ? (index + 1) % enabledTabs.length\n : (enabledTabs.length + index - 1) % enabledTabs.length;\n break;\n case 'Home':\n index = 0;\n break;\n case 'End':\n index = enabledTabs.length - 1;\n break;\n case 'Enter':\n case ' ':\n this.setSelectedTab(enabledTabs[index]);\n break;\n default:\n return;\n }\n\n enabledTabs[index].focus({ preventScroll: true });\n\n if (this.activation === 'auto') {\n this.setSelectedTab(enabledTabs[index]);\n this.emitEvent('igcChange', { detail: this.activeTab });\n } else {\n enabledTabs[index].scrollIntoView({ block: 'nearest' });\n }\n\n event.preventDefault();\n };\n\n @eventOptions({ passive: true })\n protected handleScroll() {\n this.updateScrollButtons();\n }\n\n /** Selects the specified tab and displays the corresponding panel. */\n public select(name: string) {\n this.setSelectedTab(this.tabs.find((el) => el.panel === name));\n }\n\n protected renderScrollButton(direction: 'start' | 'end') {\n const start = direction === 'start';\n\n return this.showScrollButtons\n ? html`<igc-icon-button\n tabindex=\"-1\"\n aria-hidden=\"true\"\n size=\"large\"\n variant=\"flat\"\n collection=\"internal\"\n part=\"${direction}-scroll-button\"\n name=\"navigate_${start ? 'before' : 'next'}\"\n .disabled=${start\n ? this.disableStartScrollButton\n : this.disableEndScrollButton}\n @click=${() => this.scrollByTabOffset(direction)}\n ></igc-icon-button>`\n : nothing;\n }\n\n protected override render() {\n return html`\n <div part=\"headers\">\n ${this.renderScrollButton('start')}\n <div part=\"headers-content\" @scroll=${this.handleScroll}>\n <div part=\"headers-wrapper\">\n <div\n part=\"headers-scroll\"\n role=\"tablist\"\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n >\n <slot></slot>\n </div>\n <div part=\"selected-indicator\"></div>\n </div>\n </div>\n ${this.renderScrollButton('end')}\n </div>\n <div part=\"content\">\n <slot name=\"panel\"></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-tabs': IgcTabsComponent;\n }\n}\n"]}
|
|
@@ -10,8 +10,8 @@ export const styles = css `:host {
|
|
|
10
10
|
position: relative;
|
|
11
11
|
-webkit-box-sizing: border-box;
|
|
12
12
|
box-sizing: border-box;
|
|
13
|
-
scrollbar-width: var(--
|
|
14
|
-
scrollbar-color: var(--
|
|
13
|
+
scrollbar-width: var(--ig-scrollbar-size);
|
|
14
|
+
scrollbar-color: var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background);
|
|
15
15
|
}
|
|
16
16
|
:host *,
|
|
17
17
|
:host *::before,
|
|
@@ -20,12 +20,12 @@ export const styles = css `:host {
|
|
|
20
20
|
box-sizing: border-box;
|
|
21
21
|
}
|
|
22
22
|
:host ::-webkit-scrollbar {
|
|
23
|
-
width: var(--
|
|
24
|
-
height: var(--
|
|
25
|
-
background: var(--
|
|
23
|
+
width: var(--ig-scrollbar-size);
|
|
24
|
+
height: var(--ig-scrollbar-size);
|
|
25
|
+
background: var(--ig-scrollbar-track-background);
|
|
26
26
|
}
|
|
27
27
|
:host ::-webkit-scrollbar-thumb {
|
|
28
|
-
background: var(--
|
|
28
|
+
background: var(--ig-scrollbar-thumb-background);
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
[hidden] {
|
|
@@ -34,7 +34,6 @@ export const styles = css `:host {
|
|
|
34
34
|
|
|
35
35
|
/* stylelint-disable max-line-length */
|
|
36
36
|
:host {
|
|
37
|
-
position: relative;
|
|
38
37
|
overflow: hidden;
|
|
39
38
|
-webkit-box-flex: 1;
|
|
40
39
|
-ms-flex-positive: 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab-panel.base.css.js","sourceRoot":"","sources":["../../../../../src/components/tabs/themes/light/tab-panel.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"tab-panel.base.css.js","sourceRoot":"","sources":["../../../../../src/components/tabs/themes/light/tab-panel.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuCvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host {\n --is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);\n --is-medium:\n min(\n clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),\n clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)\n );\n --is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);\n position: relative;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n scrollbar-width: var(--ig-scrollbar-size);\n scrollbar-color: var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background);\n}\n:host *,\n:host *::before,\n:host *::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n:host ::-webkit-scrollbar {\n width: var(--ig-scrollbar-size);\n height: var(--ig-scrollbar-size);\n background: var(--ig-scrollbar-track-background);\n}\n:host ::-webkit-scrollbar-thumb {\n background: var(--ig-scrollbar-thumb-background);\n}\n\n[hidden] {\n display: none !important;\n}\n\n/* stylelint-disable max-line-length */\n:host {\n overflow: hidden;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}`;\n"]}
|
|
@@ -10,8 +10,8 @@ export const styles = css `:host {
|
|
|
10
10
|
position: relative;
|
|
11
11
|
-webkit-box-sizing: border-box;
|
|
12
12
|
box-sizing: border-box;
|
|
13
|
-
scrollbar-width: var(--
|
|
14
|
-
scrollbar-color: var(--
|
|
13
|
+
scrollbar-width: var(--ig-scrollbar-size);
|
|
14
|
+
scrollbar-color: var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background);
|
|
15
15
|
}
|
|
16
16
|
:host *,
|
|
17
17
|
:host *::before,
|
|
@@ -20,12 +20,12 @@ export const styles = css `:host {
|
|
|
20
20
|
box-sizing: border-box;
|
|
21
21
|
}
|
|
22
22
|
:host ::-webkit-scrollbar {
|
|
23
|
-
width: var(--
|
|
24
|
-
height: var(--
|
|
25
|
-
background: var(--
|
|
23
|
+
width: var(--ig-scrollbar-size);
|
|
24
|
+
height: var(--ig-scrollbar-size);
|
|
25
|
+
background: var(--ig-scrollbar-track-background);
|
|
26
26
|
}
|
|
27
27
|
:host ::-webkit-scrollbar-thumb {
|
|
28
|
-
background: var(--
|
|
28
|
+
background: var(--ig-scrollbar-thumb-background);
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
[hidden] {
|