igniteui-webcomponents 2.0.0-beta.0 → 2.0.0-beta.1

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.
Files changed (81) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/components/avatar/avatar.d.ts +1 -3
  3. package/components/avatar/avatar.js.map +1 -1
  4. package/components/badge/badge.d.ts +1 -3
  5. package/components/badge/badge.js.map +1 -1
  6. package/components/button/button-base.d.ts +0 -6
  7. package/components/button/button-base.js.map +1 -1
  8. package/components/button/button.d.ts +1 -5
  9. package/components/button/button.js.map +1 -1
  10. package/components/button/icon-button.d.ts +1 -3
  11. package/components/button/icon-button.js.map +1 -1
  12. package/components/calendar/calendar.d.ts +1 -5
  13. package/components/calendar/calendar.js.map +1 -1
  14. package/components/calendar/days-view/days-view.d.ts +1 -4
  15. package/components/calendar/days-view/days-view.js.map +1 -1
  16. package/components/calendar/months-view/months-view.d.ts +1 -4
  17. package/components/calendar/months-view/months-view.js.map +1 -1
  18. package/components/calendar/years-view/years-view.d.ts +0 -3
  19. package/components/calendar/years-view/years-view.js.map +1 -1
  20. package/components/card/card.actions.d.ts +1 -3
  21. package/components/card/card.actions.js.map +1 -1
  22. package/components/card/card.content.d.ts +1 -3
  23. package/components/card/card.content.js.map +1 -1
  24. package/components/card/card.d.ts +1 -3
  25. package/components/card/card.header.d.ts +1 -3
  26. package/components/card/card.header.js.map +1 -1
  27. package/components/card/card.js.map +1 -1
  28. package/components/card/card.media.d.ts +1 -3
  29. package/components/card/card.media.js.map +1 -1
  30. package/components/checkbox/checkbox-base.js.map +1 -1
  31. package/components/checkbox/checkbox.d.ts +1 -3
  32. package/components/checkbox/checkbox.js.map +1 -1
  33. package/components/checkbox/switch.d.ts +1 -3
  34. package/components/checkbox/switch.js.map +1 -1
  35. package/components/common/mixins/event-emitter.js.map +1 -1
  36. package/components/form/form.d.ts +1 -5
  37. package/components/form/form.js.map +1 -1
  38. package/components/icon/icon.d.ts +1 -5
  39. package/components/icon/icon.js.map +1 -1
  40. package/components/input/input.d.ts +1 -4
  41. package/components/input/input.js +3 -3
  42. package/components/input/input.js.map +1 -1
  43. package/components/list/list-header.d.ts +1 -3
  44. package/components/list/list-header.js.map +1 -1
  45. package/components/list/list-item.d.ts +1 -3
  46. package/components/list/list-item.js.map +1 -1
  47. package/components/list/list.d.ts +1 -3
  48. package/components/list/list.js.map +1 -1
  49. package/components/nav-drawer/nav-drawer-header-item.d.ts +1 -3
  50. package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
  51. package/components/nav-drawer/nav-drawer-item.d.ts +1 -3
  52. package/components/nav-drawer/nav-drawer-item.js +2 -2
  53. package/components/nav-drawer/nav-drawer-item.js.map +1 -1
  54. package/components/nav-drawer/nav-drawer.d.ts +2 -20
  55. package/components/nav-drawer/nav-drawer.js +1 -34
  56. package/components/nav-drawer/nav-drawer.js.map +1 -1
  57. package/components/navbar/navbar.d.ts +1 -3
  58. package/components/navbar/navbar.js.map +1 -1
  59. package/components/radio/radio.d.ts +4 -3
  60. package/components/radio/radio.js +15 -1
  61. package/components/radio/radio.js.map +1 -1
  62. package/components/radio-group/radio-group.d.ts +3 -5
  63. package/components/radio-group/radio-group.js +21 -7
  64. package/components/radio-group/radio-group.js.map +1 -1
  65. package/components/ripple/ripple.d.ts +1 -3
  66. package/components/ripple/ripple.js.map +1 -1
  67. package/components/slider/range-slider.d.ts +1 -2
  68. package/components/slider/range-slider.js.map +1 -1
  69. package/components/slider/slider-base.d.ts +0 -1
  70. package/components/slider/slider-base.js +14 -14
  71. package/components/slider/slider-base.js.map +1 -1
  72. package/components/slider/slider.d.ts +1 -2
  73. package/components/slider/slider.js.map +1 -1
  74. package/components/slider/slider.material.css.js +1 -1
  75. package/components/slider/slider.material.css.js.map +1 -1
  76. package/custom-elements.json +321 -27
  77. package/index.d.ts +2 -0
  78. package/index.js +1 -0
  79. package/index.js.map +1 -1
  80. package/package.json +1 -1
  81. package/vscode-html-custom-data.json +43 -54
@@ -1 +1 @@
1
- {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../src/components/icon/icon.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { alternateName, blazorInclude } from '../common/decorators';\nimport { SizableMixin } from '../common/mixins/sizable.js';\nimport { styles } from './icon.material.css';\nimport {\n IconsRegistry,\n registerIcon as registerIcon_impl,\n registerIconFromText as registerIconFromText_impl,\n} from './icon.registry.js';\n\n/**\n * Icon component\n *\n * @element igc-icon\n *\n *\n */\n@customElement('igc-icon')\nexport default class IgcIconComponent extends SizableMixin(LitElement) {\n /** @private */\n public static tagName = 'igc-icon';\n\n /**\n * @private\n */\n public static styles = styles;\n\n @state() private svg = '';\n\n private _name = '';\n\n private _collection = 'default';\n\n @property()\n @alternateName('iconName')\n public set name(value: string) {\n if (this._name !== value) {\n this._name = value;\n this.getIcon();\n }\n }\n\n /**\n * The name of the icon glyph to draw.\n *\n * @attr [name=\"\"]\n */\n public get name(): string {\n return this._name;\n }\n\n public set collection(value: string) {\n if (this._collection !== value) {\n this._collection = value;\n this.getIcon();\n }\n }\n\n /**\n * The name of the registered collection for look up of icons.\n * Defaults to `default`.\n *\n * @attr [collection=default]\n */\n @property()\n public get collection(): string {\n return this._collection;\n }\n\n /**\n * Whether to flip the icon. Useful for RTL layouts.\n */\n @property({ type: Boolean, reflect: true })\n public mirrored = false;\n\n constructor() {\n super();\n this.size = 'medium';\n }\n\n public connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', 'img');\n IconsRegistry.instance().subscribe(this.iconLoaded);\n }\n\n public disconnectedCallback() {\n super.disconnectedCallback();\n IconsRegistry.instance().unsubscribe(this.iconLoaded);\n }\n\n private iconLoaded = (name: string, collection: string) => {\n if (this.name === name && this.collection === collection) {\n this.getIcon();\n }\n };\n\n private getIcon() {\n const svg =\n this._name && this._collection\n ? IconsRegistry.instance().getIcon(this._name, this._collection)\n : '';\n this.svg = svg ?? '';\n }\n\n protected render() {\n return html` ${unsafeSVG(this.svg)} `;\n }\n\n @blazorInclude()\n protected async registerIcon(\n name: string,\n url: string,\n collection = 'default'\n ) {\n await registerIcon_impl(name, url, collection);\n }\n\n @blazorInclude()\n protected registerIconFromText(\n name: string,\n iconText: string,\n collection = 'default'\n ) {\n registerIconFromText_impl(name, iconText, collection);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-icon': IgcIconComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../src/components/icon/icon.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { alternateName, blazorInclude } from '../common/decorators';\nimport { SizableMixin } from '../common/mixins/sizable.js';\nimport { styles } from './icon.material.css';\nimport {\n IconsRegistry,\n registerIcon as registerIcon_impl,\n registerIconFromText as registerIconFromText_impl,\n} from './icon.registry.js';\n\n/**\n * Icon component\n *\n * @element igc-icon\n *\n *\n */\n@customElement('igc-icon')\nexport default class IgcIconComponent extends SizableMixin(LitElement) {\n public static readonly tagName = 'igc-icon';\n\n public static override styles = styles;\n\n @state() private svg = '';\n\n private _name = '';\n\n private _collection = 'default';\n\n @property()\n @alternateName('iconName')\n public set name(value: string) {\n if (this._name !== value) {\n this._name = value;\n this.getIcon();\n }\n }\n\n /**\n * The name of the icon glyph to draw.\n *\n * @attr [name=\"\"]\n */\n public get name(): string {\n return this._name;\n }\n\n public set collection(value: string) {\n if (this._collection !== value) {\n this._collection = value;\n this.getIcon();\n }\n }\n\n /**\n * The name of the registered collection for look up of icons.\n * Defaults to `default`.\n *\n * @attr [collection=default]\n */\n @property()\n public get collection(): string {\n return this._collection;\n }\n\n /**\n * Whether to flip the icon. Useful for RTL layouts.\n */\n @property({ type: Boolean, reflect: true })\n public mirrored = false;\n\n constructor() {\n super();\n this.size = 'medium';\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', 'img');\n IconsRegistry.instance().subscribe(this.iconLoaded);\n }\n\n public override disconnectedCallback() {\n super.disconnectedCallback();\n IconsRegistry.instance().unsubscribe(this.iconLoaded);\n }\n\n private iconLoaded = (name: string, collection: string) => {\n if (this.name === name && this.collection === collection) {\n this.getIcon();\n }\n };\n\n private getIcon() {\n const svg =\n this._name && this._collection\n ? IconsRegistry.instance().getIcon(this._name, this._collection)\n : '';\n this.svg = svg ?? '';\n }\n\n protected override render() {\n return html` ${unsafeSVG(this.svg)} `;\n }\n\n @blazorInclude()\n protected async registerIcon(\n name: string,\n url: string,\n collection = 'default'\n ) {\n await registerIcon_impl(name, url, collection);\n }\n\n @blazorInclude()\n protected registerIconFromText(\n name: string,\n iconText: string,\n collection = 'default'\n ) {\n registerIconFromText_impl(name, iconText, collection);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-icon': IgcIconComponent;\n }\n}\n"]}
@@ -28,11 +28,8 @@ declare const IgcInputComponent_base: Constructor<import("../common/mixins/sizab
28
28
  * @csspart helper-text - The helper text wrapper.
29
29
  */
30
30
  export default class IgcInputComponent extends IgcInputComponent_base {
31
- /** @private */
32
- static tagName: string;
33
- /** @private */
31
+ static readonly tagName = "igc-input";
34
32
  static styles: import("lit").CSSResult;
35
- /** @private */
36
33
  protected static shadowRootOptions: {
37
34
  delegatesFocus: boolean;
38
35
  mode: ShadowRootMode;
@@ -5,7 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { html, LitElement } from 'lit';
8
- import { property, query, queryAssignedNodes, state } from 'lit/decorators.js';
8
+ import { property, query, queryAssignedElements, state, } from 'lit/decorators.js';
9
9
  import { ifDefined } from 'lit/directives/if-defined.js';
10
10
  import { live } from 'lit/directives/live.js';
11
11
  import { styles } from './input.material.css';
@@ -202,10 +202,10 @@ __decorate([
202
202
  query('input', true)
203
203
  ], IgcInputComponent.prototype, "input", void 0);
204
204
  __decorate([
205
- queryAssignedNodes('prefix', true)
205
+ queryAssignedElements({ slot: 'prefix' })
206
206
  ], IgcInputComponent.prototype, "_prefix", void 0);
207
207
  __decorate([
208
- queryAssignedNodes('suffix', true)
208
+ queryAssignedElements({ slot: 'suffix' })
209
209
  ], IgcInputComponent.prototype, "_suffix", void 0);
210
210
  __decorate([
211
211
  property({ reflect: true })
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/components/input/input.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property, query, queryAssignedNodes, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { styles } from './input.material.css';\nimport { Constructor } from '../common/mixins/constructor.js';\nimport { alternateName, watch, blazorTwoWayBind } from '../common/decorators';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { partNameMap } from '../common/util';\nimport { SizableMixin } from '../common/mixins/sizable';\n\nlet nextId = 0;\n\ntype Direction = 'ltr' | 'rtl' | 'auto';\n\nexport interface IgcInputEventMap {\n /* alternateName: inputOcurred */\n igcInput: CustomEvent<string>;\n igcChange: CustomEvent<string>;\n igcFocus: CustomEvent<void>;\n igcBlur: CustomEvent<void>;\n}\n\n/**\n * @element igc-input\n *\n * @slot prefix - Renders content before the input.\n * @slot suffix - Renders content after input.\n * @slot helper-text - Renders content below the input.\n *\n * @fires igcInput - Emitted when the control input receives user input.\n * @fires igcChange - Emitted when the control's checked state changes.\n * @fires igcFocus - Emitted when the control gains focus.\n * @fires igcBlur - Emitted when the control loses focus.\n *\n * @csspart container - The main wrapper that holds all main input elements.\n * @csspart input - The native input element.\n * @csspart label - The native label element.\n * @csspart prefix - The prefix wrapper.\n * @csspart suffix - The suffix wrapper.\n * @csspart helper-text - The helper text wrapper.\n */\nexport default class IgcInputComponent extends SizableMixin(\n EventEmitterMixin<IgcInputEventMap, Constructor<LitElement>>(LitElement)\n) {\n /** @private */\n public static tagName = 'igc-input';\n\n /** @private */\n public static styles = styles;\n\n /** @private */\n protected static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n private inputId = `input-${nextId++}`;\n private labelId = `input-label-${this.inputId}`;\n\n @state()\n private _prefixLength!: number;\n\n @state()\n private _suffixLength!: number;\n\n @state()\n private theme!: string | undefined;\n\n @query('input', true)\n private input!: HTMLInputElement;\n\n @queryAssignedNodes('prefix', true)\n private _prefix!: NodeListOf<HTMLElement>;\n\n @queryAssignedNodes('suffix', true)\n private _suffix!: NodeListOf<HTMLElement>;\n\n /** The direction attribute of the control. */\n @property({ reflect: true })\n public dir: Direction = 'auto';\n\n /** The type attribute of the control. */\n @alternateName('displayType')\n @property({ reflect: true })\n public type:\n | 'email'\n | 'number'\n | 'password'\n | 'search'\n | 'tel'\n | 'text'\n | 'url' = 'text';\n\n /** The input mode attribute of the control. */\n @property()\n public inputmode!:\n | 'none'\n | 'txt'\n | 'decimal'\n | 'numeric'\n | 'tel'\n | 'search'\n | 'email'\n | 'url';\n\n /** The name attribute of the control. */\n @property()\n public name!: string;\n\n /** The value attribute of the control. */\n @property()\n @blazorTwoWayBind('igcChange', 'detail')\n public value = '';\n\n /** The pattern attribute of the control. */\n @property({ type: String })\n public pattern!: string;\n\n /** The label of the control.\n * @attr [label=Label]\n */\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 /** Controls the validity of the control. */\n @property({ reflect: true, type: Boolean })\n public invalid = false;\n\n @property({ reflect: true, type: Boolean })\n public outlined = false;\n\n /** Makes the control a required field. */\n @property({ reflect: true, type: Boolean })\n public required = false;\n\n /** Makes the control a disabled field. */\n @property({ reflect: true, type: Boolean })\n public disabled = false;\n\n /** Makes the control a readonly field. */\n @property({ reflect: true, type: Boolean })\n public readonly = false;\n\n /** The minlength attribute of the control. */\n @property({ type: Number })\n public minlength!: number;\n\n /** The maxlength attribute of the control. */\n @property({ type: Number })\n public maxlength!: number;\n\n /** The min attribute of the control. */\n @property()\n public min!: number | string;\n\n /** The max attribute of the control. */\n @property()\n public max!: number | string;\n\n /** The step attribute of the control. */\n @property({ type: Number })\n public step!: number;\n\n /** The autofocus attribute of the control. */\n @property({ type: Boolean })\n public autofocus!: boolean;\n\n /** The autocomplete attribute of the control. */\n @property()\n public autocomplete!: string;\n\n constructor() {\n super();\n this.size = 'medium';\n }\n\n public connectedCallback() {\n super.connectedCallback();\n const theme = document.defaultView\n ?.getComputedStyle(this)\n .getPropertyValue('--theme')\n .trim();\n\n this.theme = theme;\n\n this.shadowRoot?.addEventListener('slotchange', (_) => {\n this._prefixLength = this._prefix.length;\n this._suffixLength = this._suffix.length;\n });\n }\n\n /** Checks for validity of the control and shows the browser message if it's invalid. */\n public reportValidity() {\n return this.input.reportValidity();\n }\n\n /**\n * Sets a custom validation message for the control.\n * As long as `message` is not empty, the control is considered invalid.\n */\n public setCustomValidity(message: string) {\n this.input.setCustomValidity(message);\n this.invalid = !this.input.checkValidity();\n }\n\n /** Selects all text within the input. */\n public select() {\n return this.input.select();\n }\n\n /** Sets the text selection range of the input. */\n public setSelectionRange(\n selectionStart: number,\n selectionEnd: number,\n selectionDirection: 'backward' | 'forward' | 'none' = 'none'\n ) {\n return this.input.setSelectionRange(\n selectionStart,\n selectionEnd,\n selectionDirection\n );\n }\n\n /** Replaces the selected text in the input. */\n public setRangeText(\n replacement: string,\n start: number,\n end: number,\n selectMode: 'select' | 'start' | 'end' | 'preserve' = 'preserve'\n ) {\n this.input.setRangeText(replacement, start, end, selectMode);\n\n if (this.value !== this.input.value) {\n this.value = this.input.value;\n this.emitEvent('igcInput', { detail: this.value });\n this.emitEvent('igcChange', { detail: this.value });\n }\n }\n\n /** Increments the numeric value of the input by one or more steps. */\n public stepUp(n?: number) {\n this.input.stepUp(n);\n this.handleChange();\n }\n\n /** Decrements the numeric value of the input by one or more steps. */\n public stepDown(n?: number) {\n this.input.stepDown(n);\n this.handleChange();\n }\n\n /** Sets focus on the control. */\n @alternateName('focusComponent')\n public focus(options?: FocusOptions) {\n this.input.focus(options);\n }\n\n /** Removes focus from the control. */\n @alternateName('blurComponent')\n public blur() {\n this.input.blur();\n }\n\n private resolvePartNames(base: string) {\n return {\n [base]: true,\n prefixed: this._prefixLength > 0,\n suffixed: this._suffixLength > 0,\n };\n }\n\n private handleInvalid() {\n this.invalid = true;\n }\n\n private handleInput() {\n this.value = this.input.value;\n this.emitEvent('igcInput', { detail: this.value });\n }\n\n private handleChange() {\n this.value = this.input.value;\n this.emitEvent('igcChange', { detail: this.value });\n }\n\n private handleFocus() {\n this.emitEvent('igcFocus');\n }\n\n private handleBlur() {\n this.emitEvent('igcBlur');\n }\n\n @watch('value', { waitUntilFirstUpdate: true })\n protected handleValueChange() {\n this.invalid = !this.input.checkValidity();\n }\n\n private renderInput() {\n return html`\n <input\n id=\"${this.inputId}\"\n part=\"${partNameMap(this.resolvePartNames('input'))}\"\n name=\"${ifDefined(this.name)}\"\n type=\"${ifDefined(this.type)}\"\n pattern=\"${ifDefined(this.pattern)}\"\n placeholder=\"${this.placeholder ?? ' '}\"\n .value=\"${live(this.value)}\"\n ?readonly=\"${this.readonly}\"\n ?disabled=\"${this.disabled}\"\n ?required=\"${this.required}\"\n ?autofocus=\"${this.autofocus}\"\n autocomplete=\"${ifDefined(this.autocomplete as any)}\"\n inputmode=\"${ifDefined(this.inputmode)}\"\n min=\"${ifDefined(this.min)}\"\n max=\"${ifDefined(this.max)}\"\n minlength=\"${ifDefined(this.minlength)}\"\n maxlength=\"${ifDefined(this.maxlength)}\"\n step=\"${ifDefined(this.step)}\"\n aria-invalid=\"${this.invalid ? 'true' : 'false'}\"\n @invalid=\"${this.handleInvalid}\"\n @change=\"${this.handleChange}\"\n @input=\"${this.handleInput}\"\n @focus=\"${this.handleFocus}\"\n @blur=\"${this.handleBlur}\"\n />\n `;\n }\n\n private renderLabel() {\n return this.label\n ? html`<label id=\"${this.labelId}\" part=\"label\" for=\"${this.inputId}\">\n ${this.label}\n </label>`\n : null;\n }\n\n private renderPrefix() {\n return html`<div part=\"prefix\">\n <slot name=\"prefix\"></slot>\n </div>`;\n }\n\n private renderSuffix() {\n return html`<div part=\"suffix\">\n <slot name=\"suffix\"></slot>\n </div>`;\n }\n\n private renderStandard() {\n return html`${this.renderLabel()}\n <div part=\"${partNameMap(this.resolvePartNames('container'))}\">\n ${this.renderPrefix()} ${this.renderInput()} ${this.renderSuffix()}\n </div>\n <div part=\"helper-text\">\n <slot name=\"helper-text\"></slot>\n </div>`;\n }\n\n private renderMaterial() {\n return html`\n <div\n part=\"${partNameMap({\n ...this.resolvePartNames('container'),\n labelled: this.label,\n })}\"\n >\n <div part=\"start\">${this.renderPrefix()}</div>\n ${this.renderInput()}\n <div part=\"notch\">${this.renderLabel()}</div>\n <div part=\"filler\"></div>\n <div part=\"end\">${this.renderSuffix()}</div>\n </div>\n <div part=\"helper-text\">\n <slot name=\"helper-text\"></slot>\n </div>\n `;\n }\n\n protected render() {\n return html`${this.theme === 'material'\n ? this.renderMaterial()\n : this.renderStandard()}`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-input': IgcInputComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/components/input/input.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } 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 { live } from 'lit/directives/live.js';\nimport { styles } from './input.material.css';\nimport { Constructor } from '../common/mixins/constructor.js';\nimport { alternateName, watch, blazorTwoWayBind } from '../common/decorators';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { partNameMap } from '../common/util';\nimport { SizableMixin } from '../common/mixins/sizable';\n\nlet nextId = 0;\n\ntype Direction = 'ltr' | 'rtl' | 'auto';\n\nexport interface IgcInputEventMap {\n /* alternateName: inputOcurred */\n igcInput: CustomEvent<string>;\n igcChange: CustomEvent<string>;\n igcFocus: CustomEvent<void>;\n igcBlur: CustomEvent<void>;\n}\n\n/**\n * @element igc-input\n *\n * @slot prefix - Renders content before the input.\n * @slot suffix - Renders content after input.\n * @slot helper-text - Renders content below the input.\n *\n * @fires igcInput - Emitted when the control input receives user input.\n * @fires igcChange - Emitted when the control's checked state changes.\n * @fires igcFocus - Emitted when the control gains focus.\n * @fires igcBlur - Emitted when the control loses focus.\n *\n * @csspart container - The main wrapper that holds all main input elements.\n * @csspart input - The native input element.\n * @csspart label - The native label element.\n * @csspart prefix - The prefix wrapper.\n * @csspart suffix - The suffix wrapper.\n * @csspart helper-text - The helper text wrapper.\n */\nexport default class IgcInputComponent extends SizableMixin(\n EventEmitterMixin<IgcInputEventMap, Constructor<LitElement>>(LitElement)\n) {\n public static readonly tagName = 'igc-input';\n\n public static styles = styles;\n\n protected static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n private inputId = `input-${nextId++}`;\n private labelId = `input-label-${this.inputId}`;\n\n @state()\n private _prefixLength!: number;\n\n @state()\n private _suffixLength!: number;\n\n @state()\n private theme!: string | undefined;\n\n @query('input', true)\n private input!: HTMLInputElement;\n\n @queryAssignedElements({ slot: 'prefix' })\n private _prefix!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'suffix' })\n private _suffix!: Array<HTMLElement>;\n\n /** The direction attribute of the control. */\n @property({ reflect: true })\n public override dir: Direction = 'auto';\n\n /** The type attribute of the control. */\n @alternateName('displayType')\n @property({ reflect: true })\n public type:\n | 'email'\n | 'number'\n | 'password'\n | 'search'\n | 'tel'\n | 'text'\n | 'url' = 'text';\n\n /** The input mode attribute of the control. */\n @property()\n public inputmode!:\n | 'none'\n | 'txt'\n | 'decimal'\n | 'numeric'\n | 'tel'\n | 'search'\n | 'email'\n | 'url';\n\n /** The name attribute of the control. */\n @property()\n public name!: string;\n\n /** The value attribute of the control. */\n @property()\n @blazorTwoWayBind('igcChange', 'detail')\n public value = '';\n\n /** The pattern attribute of the control. */\n @property({ type: String })\n public pattern!: string;\n\n /** The label of the control.\n * @attr [label=Label]\n */\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 /** Controls the validity of the control. */\n @property({ reflect: true, type: Boolean })\n public invalid = false;\n\n @property({ reflect: true, type: Boolean })\n public outlined = false;\n\n /** Makes the control a required field. */\n @property({ reflect: true, type: Boolean })\n public required = false;\n\n /** Makes the control a disabled field. */\n @property({ reflect: true, type: Boolean })\n public disabled = false;\n\n /** Makes the control a readonly field. */\n @property({ reflect: true, type: Boolean })\n public readonly = false;\n\n /** The minlength attribute of the control. */\n @property({ type: Number })\n public minlength!: number;\n\n /** The maxlength attribute of the control. */\n @property({ type: Number })\n public maxlength!: number;\n\n /** The min attribute of the control. */\n @property()\n public min!: number | string;\n\n /** The max attribute of the control. */\n @property()\n public max!: number | string;\n\n /** The step attribute of the control. */\n @property({ type: Number })\n public step!: number;\n\n /** The autofocus attribute of the control. */\n @property({ type: Boolean })\n public override autofocus!: boolean;\n\n /** The autocomplete attribute of the control. */\n @property()\n public autocomplete!: string;\n\n constructor() {\n super();\n this.size = 'medium';\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n const theme = document.defaultView\n ?.getComputedStyle(this)\n .getPropertyValue('--theme')\n .trim();\n\n this.theme = theme;\n\n this.shadowRoot?.addEventListener('slotchange', (_) => {\n this._prefixLength = this._prefix.length;\n this._suffixLength = this._suffix.length;\n });\n }\n\n /** Checks for validity of the control and shows the browser message if it's invalid. */\n public reportValidity() {\n return this.input.reportValidity();\n }\n\n /**\n * Sets a custom validation message for the control.\n * As long as `message` is not empty, the control is considered invalid.\n */\n public setCustomValidity(message: string) {\n this.input.setCustomValidity(message);\n this.invalid = !this.input.checkValidity();\n }\n\n /** Selects all text within the input. */\n public select() {\n return this.input.select();\n }\n\n /** Sets the text selection range of the input. */\n public setSelectionRange(\n selectionStart: number,\n selectionEnd: number,\n selectionDirection: 'backward' | 'forward' | 'none' = 'none'\n ) {\n return this.input.setSelectionRange(\n selectionStart,\n selectionEnd,\n selectionDirection\n );\n }\n\n /** Replaces the selected text in the input. */\n public setRangeText(\n replacement: string,\n start: number,\n end: number,\n selectMode: 'select' | 'start' | 'end' | 'preserve' = 'preserve'\n ) {\n this.input.setRangeText(replacement, start, end, selectMode);\n\n if (this.value !== this.input.value) {\n this.value = this.input.value;\n this.emitEvent('igcInput', { detail: this.value });\n this.emitEvent('igcChange', { detail: this.value });\n }\n }\n\n /** Increments the numeric value of the input by one or more steps. */\n public stepUp(n?: number) {\n this.input.stepUp(n);\n this.handleChange();\n }\n\n /** Decrements the numeric value of the input by one or more steps. */\n public stepDown(n?: number) {\n this.input.stepDown(n);\n this.handleChange();\n }\n\n /** Sets focus on the control. */\n @alternateName('focusComponent')\n public override focus(options?: FocusOptions) {\n this.input.focus(options);\n }\n\n /** Removes focus from the control. */\n @alternateName('blurComponent')\n public override blur() {\n this.input.blur();\n }\n\n private resolvePartNames(base: string) {\n return {\n [base]: true,\n prefixed: this._prefixLength > 0,\n suffixed: this._suffixLength > 0,\n };\n }\n\n private handleInvalid() {\n this.invalid = true;\n }\n\n private handleInput() {\n this.value = this.input.value;\n this.emitEvent('igcInput', { detail: this.value });\n }\n\n private handleChange() {\n this.value = this.input.value;\n this.emitEvent('igcChange', { detail: this.value });\n }\n\n private handleFocus() {\n this.emitEvent('igcFocus');\n }\n\n private handleBlur() {\n this.emitEvent('igcBlur');\n }\n\n @watch('value', { waitUntilFirstUpdate: true })\n protected handleValueChange() {\n this.invalid = !this.input.checkValidity();\n }\n\n private renderInput() {\n return html`\n <input\n id=\"${this.inputId}\"\n part=\"${partNameMap(this.resolvePartNames('input'))}\"\n name=\"${ifDefined(this.name)}\"\n type=\"${ifDefined(this.type)}\"\n pattern=\"${ifDefined(this.pattern)}\"\n placeholder=\"${this.placeholder ?? ' '}\"\n .value=\"${live(this.value)}\"\n ?readonly=\"${this.readonly}\"\n ?disabled=\"${this.disabled}\"\n ?required=\"${this.required}\"\n ?autofocus=\"${this.autofocus}\"\n autocomplete=\"${ifDefined(this.autocomplete as any)}\"\n inputmode=\"${ifDefined(this.inputmode)}\"\n min=\"${ifDefined(this.min)}\"\n max=\"${ifDefined(this.max)}\"\n minlength=\"${ifDefined(this.minlength)}\"\n maxlength=\"${ifDefined(this.maxlength)}\"\n step=\"${ifDefined(this.step)}\"\n aria-invalid=\"${this.invalid ? 'true' : 'false'}\"\n @invalid=\"${this.handleInvalid}\"\n @change=\"${this.handleChange}\"\n @input=\"${this.handleInput}\"\n @focus=\"${this.handleFocus}\"\n @blur=\"${this.handleBlur}\"\n />\n `;\n }\n\n private renderLabel() {\n return this.label\n ? html`<label id=\"${this.labelId}\" part=\"label\" for=\"${this.inputId}\">\n ${this.label}\n </label>`\n : null;\n }\n\n private renderPrefix() {\n return html`<div part=\"prefix\">\n <slot name=\"prefix\"></slot>\n </div>`;\n }\n\n private renderSuffix() {\n return html`<div part=\"suffix\">\n <slot name=\"suffix\"></slot>\n </div>`;\n }\n\n private renderStandard() {\n return html`${this.renderLabel()}\n <div part=\"${partNameMap(this.resolvePartNames('container'))}\">\n ${this.renderPrefix()} ${this.renderInput()} ${this.renderSuffix()}\n </div>\n <div part=\"helper-text\">\n <slot name=\"helper-text\"></slot>\n </div>`;\n }\n\n private renderMaterial() {\n return html`\n <div\n part=\"${partNameMap({\n ...this.resolvePartNames('container'),\n labelled: this.label,\n })}\"\n >\n <div part=\"start\">${this.renderPrefix()}</div>\n ${this.renderInput()}\n <div part=\"notch\">${this.renderLabel()}</div>\n <div part=\"filler\"></div>\n <div part=\"end\">${this.renderSuffix()}</div>\n </div>\n <div part=\"helper-text\">\n <slot name=\"helper-text\"></slot>\n </div>\n `;\n }\n\n protected override render() {\n return html`${this.theme === 'material'\n ? this.renderMaterial()\n : this.renderStandard()}`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-input': IgcInputComponent;\n }\n}\n"]}
@@ -7,9 +7,7 @@ import { LitElement } from 'lit';
7
7
  * @slot - Renders header list item's content.
8
8
  */
9
9
  export default class IgcListHeaderComponent extends LitElement {
10
- /** @private */
11
- static tagName: string;
12
- /** @private */
10
+ static readonly tagName = "igc-list-header";
13
11
  static styles: import("lit").CSSResult;
14
12
  constructor();
15
13
  connectedCallback(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"list-header.js","sourceRoot":"","sources":["../../../src/components/list/list-header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AASpD,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,UAAU;IAO5D;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAEM,iBAAiB;QACtB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC;IAES,MAAM;QACd,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;;AAhBa,8BAAO,GAAG,iBAAiB,CAAC;AAG5B,6BAAM,GAAG,MAAM,CAAC","sourcesContent":["import { html, LitElement } from 'lit';\nimport { styles } from './list-header.material.css';\n\n/**\n * Header list item.\n *\n * @element igc-list-header\n *\n * @slot - Renders header list item's content.\n */\nexport default class IgcListHeaderComponent extends LitElement {\n /** @private */\n public static tagName = 'igc-list-header';\n\n /** @private */\n public static styles = styles;\n\n constructor() {\n super();\n }\n\n public connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', 'separator');\n }\n\n protected render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-list-header': IgcListHeaderComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"list-header.js","sourceRoot":"","sources":["../../../src/components/list/list-header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AASpD,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,UAAU;IAK5D;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAEe,iBAAiB;QAC/B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;;AAfsB,8BAAO,GAAG,iBAAiB,CAAC;AAE5B,6BAAM,GAAG,MAAM,CAAC","sourcesContent":["import { html, LitElement } from 'lit';\nimport { styles } from './list-header.material.css';\n\n/**\n * Header list item.\n *\n * @element igc-list-header\n *\n * @slot - Renders header list item's content.\n */\nexport default class IgcListHeaderComponent extends LitElement {\n public static readonly tagName = 'igc-list-header';\n\n public static override styles = styles;\n\n constructor() {\n super();\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', 'separator');\n }\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-list-header': IgcListHeaderComponent;\n }\n}\n"]}
@@ -19,9 +19,7 @@ import { LitElement } from 'lit';
19
19
  * @csspart subtitle - The subtitle container.
20
20
  */
21
21
  export default class IgcListItemComponent extends LitElement {
22
- /** @private */
23
- static tagName: string;
24
- /** @private */
22
+ static readonly tagName = "igc-list-item";
25
23
  static styles: import("lit").CSSResult;
26
24
  constructor();
27
25
  connectedCallback(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"list-item.js","sourceRoot":"","sources":["../../../src/components/list/list-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAqBlD,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,UAAU;IAO1D;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAEM,iBAAiB;QACtB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC;IAES,MAAM;QACd,OAAO,IAAI,CAAA;;;;;;;;;;;;;;KAcV,CAAC;IACJ,CAAC;;AA9Ba,4BAAO,GAAG,eAAe,CAAC;AAG1B,2BAAM,GAAG,MAAM,CAAC","sourcesContent":["import { html, LitElement } from 'lit';\nimport { styles } from './list-item.material.css';\n\n/**\n * The list-item component is a container\n * intended for row items in the list component.\n *\n * @element igc-list-item\n *\n * @slot - Renders custom content.\n * @slot start - Renders content before all other content.\n * @slot end - Renders content after all other content.\n * @slot title - Renders the title.\n * @slot subtitle - Renders the subtitle.\n *\n * @csspart start - The start container.\n * @csspart end - The end container.\n * @csspart content - The header and custom content container.\n * @csspart header - The title and subtitle container.\n * @csspart title - The title container.\n * @csspart subtitle - The subtitle container.\n */\nexport default class IgcListItemComponent extends LitElement {\n /** @private */\n public static tagName = 'igc-list-item';\n\n /** @private */\n public static styles = styles;\n\n constructor() {\n super();\n }\n\n public connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', 'listitem');\n }\n\n protected render() {\n return html`\n <section part=\"start\">\n <slot name=\"start\"></slot>\n </section>\n <section part=\"content\">\n <header part=\"header\">\n <slot part=\"title\" name=\"title\"></slot>\n <slot part=\"subtitle\" name=\"subtitle\"></slot>\n </header>\n <slot></slot>\n </section>\n <section part=\"end\">\n <slot name=\"end\"></slot>\n </section>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-list-item': IgcListItemComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"list-item.js","sourceRoot":"","sources":["../../../src/components/list/list-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAqBlD,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,UAAU;IAK1D;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAEe,iBAAiB;QAC/B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;;;;;;;;;;;;;KAcV,CAAC;IACJ,CAAC;;AA7BsB,4BAAO,GAAG,eAAe,CAAC;AAE1B,2BAAM,GAAG,MAAM,CAAC","sourcesContent":["import { html, LitElement } from 'lit';\nimport { styles } from './list-item.material.css';\n\n/**\n * The list-item component is a container\n * intended for row items in the list component.\n *\n * @element igc-list-item\n *\n * @slot - Renders custom content.\n * @slot start - Renders content before all other content.\n * @slot end - Renders content after all other content.\n * @slot title - Renders the title.\n * @slot subtitle - Renders the subtitle.\n *\n * @csspart start - The start container.\n * @csspart end - The end container.\n * @csspart content - The header and custom content container.\n * @csspart header - The title and subtitle container.\n * @csspart title - The title container.\n * @csspart subtitle - The subtitle container.\n */\nexport default class IgcListItemComponent extends LitElement {\n public static readonly tagName = 'igc-list-item';\n\n public static override styles = styles;\n\n constructor() {\n super();\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', 'listitem');\n }\n\n protected override render() {\n return html`\n <section part=\"start\">\n <slot name=\"start\"></slot>\n </section>\n <section part=\"content\">\n <header part=\"header\">\n <slot part=\"title\" name=\"title\"></slot>\n <slot part=\"subtitle\" name=\"subtitle\"></slot>\n </header>\n <slot></slot>\n </section>\n <section part=\"end\">\n <slot name=\"end\"></slot>\n </section>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-list-item': IgcListItemComponent;\n }\n}\n"]}
@@ -8,9 +8,7 @@ declare const IgcListComponent_base: import("../common/mixins/constructor").Cons
8
8
  * @slot - Renders the list items and list headers inside default slot.
9
9
  */
10
10
  export default class IgcListComponent extends IgcListComponent_base {
11
- /** @private */
12
- static tagName: string;
13
- /** @private */
11
+ static readonly tagName = "igc-list";
14
12
  static styles: import("lit").CSSResult;
15
13
  constructor();
16
14
  connectedCallback(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/components/list/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAS7C,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,YAAY,CAAC,UAAU,CAAC;IAOpE;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAEM,iBAAiB;QACtB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAES,MAAM;QACd,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;;AAhBa,wBAAO,GAAG,UAAU,CAAC;AAGrB,uBAAM,GAAG,MAAM,CAAC","sourcesContent":["import { html, LitElement } from 'lit';\nimport { SizableMixin } from '../common/mixins/sizable';\nimport { styles } from './list.material.css';\n\n/**\n * Displays a collection of data items in a templatable list format.\n *\n * @element igc-list\n *\n * @slot - Renders the list items and list headers inside default slot.\n */\nexport default class IgcListComponent extends SizableMixin(LitElement) {\n /** @private */\n public static tagName = 'igc-list';\n\n /** @private */\n public static styles = styles;\n\n constructor() {\n super();\n }\n\n public connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', 'list');\n }\n\n protected render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-list': IgcListComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/components/list/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAS7C,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,YAAY,CAAC,UAAU,CAAC;IAKpE;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAEe,iBAAiB;QAC/B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;;AAfsB,wBAAO,GAAG,UAAU,CAAC;AAErB,uBAAM,GAAG,MAAM,CAAC","sourcesContent":["import { html, LitElement } from 'lit';\nimport { SizableMixin } from '../common/mixins/sizable';\nimport { styles } from './list.material.css';\n\n/**\n * Displays a collection of data items in a templatable list format.\n *\n * @element igc-list\n *\n * @slot - Renders the list items and list headers inside default slot.\n */\nexport default class IgcListComponent extends SizableMixin(LitElement) {\n public static readonly tagName = 'igc-list';\n\n public static override styles = styles;\n\n constructor() {\n super();\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', 'list');\n }\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-list': IgcListComponent;\n }\n}\n"]}
@@ -6,9 +6,7 @@ import { LitElement } from 'lit';
6
6
  * @slot - Renders the header content
7
7
  */
8
8
  export default class IgcNavDrawerHeaderItemComponent extends LitElement {
9
- /** @private */
10
- static tagName: string;
11
- /** @private */
9
+ static readonly tagName = "igc-nav-drawer-header-item";
12
10
  static styles: import("lit").CSSResult[];
13
11
  protected render(): import("lit-html").TemplateResult<1>;
14
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"nav-drawer-header-item.js","sourceRoot":"","sources":["../../../src/components/nav-drawer/nav-drawer-header-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAQ/D,MAAM,CAAC,OAAO,OAAO,+BAAgC,SAAQ,UAAU;IAO3D,MAAM;QACd,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;;AAPa,uCAAO,GAAG,4BAA4B,CAAC;AAGvC,sCAAM,GAAG,CAAC,MAAM,CAAC,CAAC","sourcesContent":["import { html, LitElement } from 'lit';\nimport { styles } from './nav-drawer-header-item.material.css';\n\n/**\n * A wrapper for navigation drawer's header.\n * @element igc-nav-drawer-header-item\n *\n * @slot - Renders the header content\n */\nexport default class IgcNavDrawerHeaderItemComponent extends LitElement {\n /** @private */\n public static tagName = 'igc-nav-drawer-header-item';\n\n /** @private */\n public static styles = [styles];\n\n protected render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-nav-drawer-header-item': IgcNavDrawerHeaderItemComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"nav-drawer-header-item.js","sourceRoot":"","sources":["../../../src/components/nav-drawer/nav-drawer-header-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAQ/D,MAAM,CAAC,OAAO,OAAO,+BAAgC,SAAQ,UAAU;IAKlD,MAAM;QACvB,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;;AANsB,uCAAO,GAAG,4BAA4B,CAAC;AAEvC,sCAAM,GAAG,CAAC,MAAM,CAAC,CAAC","sourcesContent":["import { html, LitElement } from 'lit';\nimport { styles } from './nav-drawer-header-item.material.css';\n\n/**\n * A wrapper for navigation drawer's header.\n * @element igc-nav-drawer-header-item\n *\n * @slot - Renders the header content\n */\nexport default class IgcNavDrawerHeaderItemComponent extends LitElement {\n public static readonly tagName = 'igc-nav-drawer-header-item';\n\n public static override styles = [styles];\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-nav-drawer-header-item': IgcNavDrawerHeaderItemComponent;\n }\n}\n"]}
@@ -12,9 +12,7 @@ import { LitElement } from 'lit';
12
12
  * @csspart content - The content container.
13
13
  */
14
14
  export default class IgcNavDrawerItemComponent extends LitElement {
15
- /** @private */
16
- static tagName: string;
17
- /** @private */
15
+ static readonly tagName = "igc-nav-drawer-item";
18
16
  static styles: import("lit").CSSResult[];
19
17
  /** Determines whether the drawer is disabled. */
20
18
  disabled: boolean;
@@ -5,7 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { html, LitElement } from 'lit';
8
- import { property, queryAssignedNodes, state } from 'lit/decorators.js';
8
+ import { property, queryAssignedElements, state } from 'lit/decorators.js';
9
9
  import { partNameMap } from '../common/util';
10
10
  import { styles } from './nav-drawer-item.material.css';
11
11
  export default class IgcNavDrawerItemComponent extends LitElement {
@@ -52,6 +52,6 @@ __decorate([
52
52
  state()
53
53
  ], IgcNavDrawerItemComponent.prototype, "_textLength", void 0);
54
54
  __decorate([
55
- queryAssignedNodes('content', true)
55
+ queryAssignedElements({ slot: 'content' })
56
56
  ], IgcNavDrawerItemComponent.prototype, "_text", void 0);
57
57
  //# sourceMappingURL=nav-drawer-item.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nav-drawer-item.js","sourceRoot":"","sources":["../../../src/components/nav-drawer/nav-drawer-item.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAcxD,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,UAAU;IAAjE;;QASS,aAAQ,GAAG,KAAK,CAAC;QAIjB,WAAM,GAAG,KAAK,CAAC;IAkCxB,CAAC;IA1BQ,iBAAiB;;QACtB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,MAAA,IAAI,CAAC,UAAU,0CAAE,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;YACpD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAES,gBAAgB,CAAC,IAAY;QACrC,OAAO;YACL,CAAC,IAAI,CAAC,EAAE,IAAI;YACZ,IAAI,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC;SAC3B,CAAC;IACJ,CAAC;IAES,MAAM;QACd,OAAO,IAAI,CAAA;mBACI,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;;;;;;;;KAQxD,CAAC;IACJ,CAAC;;AA5Ca,iCAAO,GAAG,qBAAqB,CAAC;AAGhC,gCAAM,GAAG,CAAC,MAAM,CAAC,CAAC;AAIhC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;2DACnB;AAIxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yDACrB;AAGtB;IADC,KAAK,EAAE;8DACqB;AAG7B;IADC,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC;wDACI","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property, queryAssignedNodes, state } from 'lit/decorators.js';\nimport { partNameMap } from '../common/util';\nimport { styles } from './nav-drawer-item.material.css';\n\n/**\n * Represents a navigation drawer item.\n *\n * @element igc-nav-drawer-item\n *\n * @slot content - The content slot for the drawer item.\n * @slot icon - The slot for the icon of the drawer item.\n *\n * @csspart base - The base wrapper of the drawer item.\n * @csspart icon - The icon container.\n * @csspart content - The content container.\n */\nexport default class IgcNavDrawerItemComponent extends LitElement {\n /** @private */\n public static tagName = 'igc-nav-drawer-item';\n\n /** @private */\n public static styles = [styles];\n\n /** Determines whether the drawer is disabled. */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n /** Determines whether the drawer is active. */\n @property({ type: Boolean, reflect: true })\n public active = false;\n\n @state()\n private _textLength!: number;\n\n @queryAssignedNodes('content', true)\n private _text!: NodeListOf<HTMLElement>;\n\n public connectedCallback() {\n super.connectedCallback();\n this.shadowRoot?.addEventListener('slotchange', (_) => {\n this._textLength = this._text.length;\n });\n }\n\n protected resolvePartNames(base: string) {\n return {\n [base]: true,\n mini: this._textLength < 1,\n };\n }\n\n protected render() {\n return html`\n <div part=\"${partNameMap(this.resolvePartNames('base'))}\">\n <span part=\"icon\">\n <slot name=\"icon\"></slot>\n </span>\n <span part=\"content\">\n <slot name=\"content\"></slot>\n </span>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-nav-drawer-item': IgcNavDrawerItemComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"nav-drawer-item.js","sourceRoot":"","sources":["../../../src/components/nav-drawer/nav-drawer-item.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAcxD,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,UAAU;IAAjE;;QAOS,aAAQ,GAAG,KAAK,CAAC;QAIjB,WAAM,GAAG,KAAK,CAAC;IAkCxB,CAAC;IA1BiB,iBAAiB;;QAC/B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,MAAA,IAAI,CAAC,UAAU,0CAAE,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;YACpD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAES,gBAAgB,CAAC,IAAY;QACrC,OAAO;YACL,CAAC,IAAI,CAAC,EAAE,IAAI;YACZ,IAAI,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC;SAC3B,CAAC;IACJ,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;mBACI,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;;;;;;;;KAQxD,CAAC;IACJ,CAAC;;AA3CsB,iCAAO,GAAG,qBAAqB,CAAC;AAEhC,gCAAM,GAAG,CAAC,MAAM,CAAC,CAAC;AAIzC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;2DACnB;AAIxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yDACrB;AAGtB;IADC,KAAK,EAAE;8DACqB;AAG7B;IADC,qBAAqB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;wDACR","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property, queryAssignedElements, state } from 'lit/decorators.js';\nimport { partNameMap } from '../common/util';\nimport { styles } from './nav-drawer-item.material.css';\n\n/**\n * Represents a navigation drawer item.\n *\n * @element igc-nav-drawer-item\n *\n * @slot content - The content slot for the drawer item.\n * @slot icon - The slot for the icon of the drawer item.\n *\n * @csspart base - The base wrapper of the drawer item.\n * @csspart icon - The icon container.\n * @csspart content - The content container.\n */\nexport default class IgcNavDrawerItemComponent extends LitElement {\n public static readonly tagName = 'igc-nav-drawer-item';\n\n public static override styles = [styles];\n\n /** Determines whether the drawer is disabled. */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n /** Determines whether the drawer is active. */\n @property({ type: Boolean, reflect: true })\n public active = false;\n\n @state()\n private _textLength!: number;\n\n @queryAssignedElements({ slot: 'content' })\n private _text!: Array<HTMLElement>;\n\n public override connectedCallback() {\n super.connectedCallback();\n this.shadowRoot?.addEventListener('slotchange', (_) => {\n this._textLength = this._text.length;\n });\n }\n\n protected resolvePartNames(base: string) {\n return {\n [base]: true,\n mini: this._textLength < 1,\n };\n }\n\n protected override render() {\n return html`\n <div part=\"${partNameMap(this.resolvePartNames('base'))}\">\n <span part=\"icon\">\n <slot name=\"icon\"></slot>\n </span>\n <span part=\"content\">\n <slot name=\"content\"></slot>\n </span>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-nav-drawer-item': IgcNavDrawerItemComponent;\n }\n}\n"]}
@@ -1,12 +1,4 @@
1
1
  import { LitElement } from 'lit';
2
- import { Constructor } from '../common/mixins/constructor';
3
- export interface IgcNavDrawerEventMap {
4
- igcOpening: CustomEvent<any>;
5
- igcOpened: CustomEvent<void>;
6
- igcClosing: CustomEvent<any>;
7
- igcClosed: CustomEvent<void>;
8
- }
9
- declare const IgcNavDrawerComponent_base: Constructor<import("../common/mixins/event-emitter").EventEmitterInterface<IgcNavDrawerEventMap>> & Constructor<LitElement>;
10
2
  /**
11
3
  * Represents a side navigation container that provides
12
4
  * quick access between views.
@@ -16,19 +8,12 @@ declare const IgcNavDrawerComponent_base: Constructor<import("../common/mixins/e
16
8
  * @slot - The default slot for the drawer.
17
9
  * @slot mini - The slot for the mini variant of the drawer.
18
10
  *
19
- * @fires igcOpening - Emitted when the navigation drawer is about to open.
20
- * @fires igcOpened - Emitted when the navigation drawer is opened.
21
- * @fires igcClosing - Emitted when the navigation drawer is about to close.
22
- * @fires igcClosed - Emitted when the navigation drawer is closed.
23
- *
24
11
  * @csspart base - The base wrapper of the navigation drawer.
25
12
  * @csspart main - The main container.
26
13
  * @csspart mini - The mini container.
27
14
  */
28
- export default class IgcNavDrawerComponent extends IgcNavDrawerComponent_base {
29
- /** @private */
30
- static tagName: string;
31
- /** @private */
15
+ export default class IgcNavDrawerComponent extends LitElement {
16
+ static readonly tagName = "igc-nav-drawer";
32
17
  static styles: import("lit").CSSResult[];
33
18
  /** The position of the drawer. */
34
19
  position: 'start' | 'end' | 'top' | 'bottom';
@@ -40,8 +25,6 @@ export default class IgcNavDrawerComponent extends IgcNavDrawerComponent_base {
40
25
  hide(): void;
41
26
  /** Toggles the open state of the drawer. */
42
27
  toggle(): void;
43
- private handleOpening;
44
- private handleClosing;
45
28
  private resolvePartNames;
46
29
  protected render(): import("lit-html").TemplateResult<1>;
47
30
  }
@@ -50,4 +33,3 @@ declare global {
50
33
  'igc-nav-drawer': IgcNavDrawerComponent;
51
34
  }
52
35
  }
53
- export {};
@@ -6,10 +6,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { html, LitElement } from 'lit';
8
8
  import { property } from 'lit/decorators.js';
9
- import { EventEmitterMixin } from '../common/mixins/event-emitter';
10
9
  import { partNameMap } from '../common/util';
11
10
  import { styles } from './nav-drawer.material.css';
12
- export default class IgcNavDrawerComponent extends EventEmitterMixin(LitElement) {
11
+ export default class IgcNavDrawerComponent extends LitElement {
13
12
  constructor() {
14
13
  super(...arguments);
15
14
  this.position = 'start';
@@ -19,21 +18,13 @@ export default class IgcNavDrawerComponent extends EventEmitterMixin(LitElement)
19
18
  if (this.open) {
20
19
  return;
21
20
  }
22
- if (!this.handleOpening()) {
23
- return;
24
- }
25
21
  this.open = true;
26
- this.emitEvent('igcOpened');
27
22
  }
28
23
  hide() {
29
24
  if (!this.open) {
30
25
  return;
31
26
  }
32
- if (!this.handleClosing()) {
33
- return;
34
- }
35
27
  this.open = false;
36
- this.emitEvent('igcClosed');
37
28
  }
38
29
  toggle() {
39
30
  if (this.open) {
@@ -43,30 +34,6 @@ export default class IgcNavDrawerComponent extends EventEmitterMixin(LitElement)
43
34
  this.show();
44
35
  }
45
36
  }
46
- handleOpening() {
47
- const args = {
48
- detail: { cancel: false },
49
- cancelable: true,
50
- };
51
- this.emitEvent('igcOpening', args);
52
- if (args.detail.cancel) {
53
- this.open = false;
54
- return false;
55
- }
56
- return true;
57
- }
58
- handleClosing() {
59
- const args = {
60
- detail: { cancel: false },
61
- cancelable: true,
62
- };
63
- this.emitEvent('igcClosing', args);
64
- if (args.detail.cancel) {
65
- this.open = true;
66
- return false;
67
- }
68
- return true;
69
- }
70
37
  resolvePartNames(base) {
71
38
  const mini = document.querySelector('div[slot="mini"]');
72
39
  const hasChildren = mini !== null && mini.children.length > 0;
@@ -1 +1 @@
1
- {"version":3,"file":"nav-drawer.js","sourceRoot":"","sources":["../../../src/components/nav-drawer/nav-drawer.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Constructor } from '../common/mixins/constructor';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter';\nimport { partNameMap } from '../common/util';\nimport { styles } from './nav-drawer.material.css';\n\nexport interface IgcNavDrawerEventMap {\n igcOpening: CustomEvent<any>;\n igcOpened: CustomEvent<void>;\n igcClosing: CustomEvent<any>;\n igcClosed: CustomEvent<void>;\n}\n\n/**\n * Represents a side navigation container that provides\n * quick access between views.\n *\n * @element igc-nav-drawer\n *\n * @slot - The default slot for the drawer.\n * @slot mini - The slot for the mini variant of the drawer.\n *\n * @fires igcOpening - Emitted when the navigation drawer is about to open.\n * @fires igcOpened - Emitted when the navigation drawer is opened.\n * @fires igcClosing - Emitted when the navigation drawer is about to close.\n * @fires igcClosed - Emitted when the navigation drawer is closed.\n *\n * @csspart base - The base wrapper of the navigation drawer.\n * @csspart main - The main container.\n * @csspart mini - The mini container.\n */\nexport default class IgcNavDrawerComponent extends EventEmitterMixin<\n IgcNavDrawerEventMap,\n Constructor<LitElement>\n>(LitElement) {\n /** @private */\n public static tagName = 'igc-nav-drawer';\n\n /** @private */\n public static styles = [styles];\n\n /** The position of the drawer. */\n @property({ reflect: true })\n public position: 'start' | 'end' | 'top' | 'bottom' = 'start';\n\n /** Determines whether the drawer is opened. */\n @property({ type: Boolean, reflect: true })\n public open = false;\n\n /** Opens the drawer. */\n public show() {\n if (this.open) {\n return;\n }\n\n if (!this.handleOpening()) {\n return;\n }\n\n this.open = true;\n this.emitEvent('igcOpened');\n }\n\n /** Closes the drawer. */\n public hide() {\n if (!this.open) {\n return;\n }\n\n if (!this.handleClosing()) {\n return;\n }\n\n this.open = false;\n this.emitEvent('igcClosed');\n }\n\n /** Toggles the open state of the drawer. */\n public toggle() {\n if (this.open) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n private handleOpening() {\n const args = {\n detail: { cancel: false },\n cancelable: true,\n };\n this.emitEvent('igcOpening', args);\n\n if (args.detail.cancel) {\n this.open = false;\n return false;\n }\n\n return true;\n }\n\n private handleClosing() {\n const args = {\n detail: { cancel: false },\n cancelable: true,\n };\n this.emitEvent('igcClosing', args);\n\n if (args.detail.cancel) {\n this.open = true;\n return false;\n }\n\n return true;\n }\n\n private resolvePartNames(base: string) {\n const mini = document.querySelector('div[slot=\"mini\"]');\n const hasChildren = mini !== null && mini.children.length > 0;\n\n return {\n [base]: true,\n hidden: !hasChildren,\n };\n }\n\n protected render() {\n return html` <div part=\"base\">\n <div part=\"main\">\n <slot></slot>\n </div>\n\n <div part=\"${partNameMap(this.resolvePartNames('mini'))}\">\n <slot name=\"mini\"></slot>\n </div>\n </div>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-nav-drawer': IgcNavDrawerComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"nav-drawer.js","sourceRoot":"","sources":["../../../src/components/nav-drawer/nav-drawer.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAenD,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,UAAU;IAA7D;;QAOS,aAAQ,GAAuC,OAAO,CAAC;QAIvD,SAAI,GAAG,KAAK,CAAC;IAkDtB,CAAC;IA/CQ,IAAI;QACT,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,OAAO;SACR;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAGM,IAAI;QACT,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,OAAO;SACR;QAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC;IAGM,MAAM;QACX,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;aAAM;YACL,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;IACH,CAAC;IAEO,gBAAgB,CAAC,IAAY;QACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAE9D,OAAO;YACL,CAAC,IAAI,CAAC,EAAE,IAAI;YACZ,MAAM,EAAE,CAAC,WAAW;SACrB,CAAC;IACJ,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;;;;mBAKI,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;;;WAGlD,CAAC;IACV,CAAC;;AA3DsB,6BAAO,GAAG,gBAAgB,CAAC;AAE3B,4BAAM,GAAG,CAAC,MAAM,CAAC,CAAC;AAIzC;IADC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uDACkC;AAI9D;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDACvB","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { partNameMap } from '../common/util';\nimport { styles } from './nav-drawer.material.css';\n\n/**\n * Represents a side navigation container that provides\n * quick access between views.\n *\n * @element igc-nav-drawer\n *\n * @slot - The default slot for the drawer.\n * @slot mini - The slot for the mini variant of the drawer.\n *\n * @csspart base - The base wrapper of the navigation drawer.\n * @csspart main - The main container.\n * @csspart mini - The mini container.\n */\nexport default class IgcNavDrawerComponent extends LitElement {\n public static readonly tagName = 'igc-nav-drawer';\n\n public static override styles = [styles];\n\n /** The position of the drawer. */\n @property({ reflect: true })\n public position: 'start' | 'end' | 'top' | 'bottom' = 'start';\n\n /** Determines whether the drawer is opened. */\n @property({ type: Boolean, reflect: true })\n public open = false;\n\n /** Opens the drawer. */\n public show() {\n if (this.open) {\n return;\n }\n\n this.open = true;\n }\n\n /** Closes the drawer. */\n public hide() {\n if (!this.open) {\n return;\n }\n\n this.open = false;\n }\n\n /** Toggles the open state of the drawer. */\n public toggle() {\n if (this.open) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n private resolvePartNames(base: string) {\n const mini = document.querySelector('div[slot=\"mini\"]');\n const hasChildren = mini !== null && mini.children.length > 0;\n\n return {\n [base]: true,\n hidden: !hasChildren,\n };\n }\n\n protected override render() {\n return html` <div part=\"base\">\n <div part=\"main\">\n <slot></slot>\n </div>\n\n <div part=\"${partNameMap(this.resolvePartNames('mini'))}\">\n <slot name=\"mini\"></slot>\n </div>\n </div>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-nav-drawer': IgcNavDrawerComponent;\n }\n}\n"]}
@@ -15,9 +15,7 @@ import { LitElement } from 'lit';
15
15
  * @csspart end - The right aligned action icons container.
16
16
  */
17
17
  export default class IgcNavbarComponent extends LitElement {
18
- /** @private */
19
- static tagName: string;
20
- /** @private */
18
+ static readonly tagName = "igc-navbar";
21
19
  static styles: import("lit").CSSResult[];
22
20
  protected render(): import("lit-html").TemplateResult<1>;
23
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"navbar.js","sourceRoot":"","sources":["../../../src/components/navbar/navbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAiB/C,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,UAAU;IAO9C,MAAM;QACd,OAAO,IAAI,CAAA;;;;;;;;;;;;KAYV,CAAC;IACJ,CAAC;;AAnBa,0BAAO,GAAG,YAAY,CAAC;AAGvB,yBAAM,GAAG,CAAC,MAAM,CAAC,CAAC","sourcesContent":["import { html, LitElement } from 'lit';\nimport { styles } from './navbar.material.css';\n\n/**\n * A navigation bar component is used to facilitate navigation through\n * a series of hierarchical screens within an app.\n *\n * @element igc-navbar\n *\n * @slot - Renders a title inside the default slot.\n * @slot start - Renders left aligned icons.\n * @slot end - Renders right aligned action icons.\n *\n * @csspart base - The base wrapper of the navigation bar.\n * @csspart start - The left aligned icon container.\n * @csspart middle - The navigation bar title container.\n * @csspart end - The right aligned action icons container.\n */\nexport default class IgcNavbarComponent extends LitElement {\n /** @private */\n public static tagName = 'igc-navbar';\n\n /** @private */\n public static styles = [styles];\n\n protected render() {\n return html`\n <div part=\"base\">\n <span part=\"start\">\n <slot name=\"start\"></slot>\n </span>\n <span part=\"middle\">\n <slot></slot>\n </span>\n <span part=\"end\">\n <slot name=\"end\"></slot>\n </span>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-navbar': IgcNavbarComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"navbar.js","sourceRoot":"","sources":["../../../src/components/navbar/navbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAiB/C,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,UAAU;IAKrC,MAAM;QACvB,OAAO,IAAI,CAAA;;;;;;;;;;;;KAYV,CAAC;IACJ,CAAC;;AAlBsB,0BAAO,GAAG,YAAY,CAAC;AAEvB,yBAAM,GAAG,CAAC,MAAM,CAAC,CAAC","sourcesContent":["import { html, LitElement } from 'lit';\nimport { styles } from './navbar.material.css';\n\n/**\n * A navigation bar component is used to facilitate navigation through\n * a series of hierarchical screens within an app.\n *\n * @element igc-navbar\n *\n * @slot - Renders a title inside the default slot.\n * @slot start - Renders left aligned icons.\n * @slot end - Renders right aligned action icons.\n *\n * @csspart base - The base wrapper of the navigation bar.\n * @csspart start - The left aligned icon container.\n * @csspart middle - The navigation bar title container.\n * @csspart end - The right aligned action icons container.\n */\nexport default class IgcNavbarComponent extends LitElement {\n public static readonly tagName = 'igc-navbar';\n\n public static override styles = [styles];\n\n protected override render() {\n return html`\n <div part=\"base\">\n <span part=\"start\">\n <slot name=\"start\"></slot>\n </span>\n <span part=\"middle\">\n <slot></slot>\n </span>\n <span part=\"end\">\n <slot name=\"end\"></slot>\n </span>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-navbar': IgcNavbarComponent;\n }\n}\n"]}
@@ -20,9 +20,7 @@ declare const IgcRadioComponent_base: Constructor<import("../common/mixins/event
20
20
  * @csspart label - The radio control label.
21
21
  */
22
22
  export default class IgcRadioComponent extends IgcRadioComponent_base {
23
- /** @private */
24
- static tagName: string;
25
- /** @private */
23
+ static readonly tagName = "igc-radio";
26
24
  static styles: import("lit").CSSResult;
27
25
  private inputId;
28
26
  private labelId;
@@ -32,6 +30,8 @@ export default class IgcRadioComponent extends IgcRadioComponent_base {
32
30
  name: string;
33
31
  /** The value attribute of the control. */
34
32
  value: string;
33
+ /** Makes the control a required field. */
34
+ required: boolean;
35
35
  /** The checked state of the control. */
36
36
  checked: boolean;
37
37
  /** Disables the radio control. */
@@ -61,6 +61,7 @@ export default class IgcRadioComponent extends IgcRadioComponent_base {
61
61
  protected handleFocus(): void;
62
62
  protected handleChange(): void;
63
63
  protected getSiblings(): IgcRadioComponent[];
64
+ protected getAllInGroup(): IgcRadioComponent[];
64
65
  protected render(): import("lit-html").TemplateResult<1>;
65
66
  }
66
67
  declare global {
@@ -19,6 +19,7 @@ export default class IgcRadioComponent extends EventEmitterMixin(LitElement) {
19
19
  this.inputId = `radio-${nextId++}`;
20
20
  this.labelId = `radio-label-${this.inputId}`;
21
21
  this._tabIndex = 0;
22
+ this.required = false;
22
23
  this.checked = false;
23
24
  this.disabled = false;
24
25
  this.invalid = false;
@@ -63,12 +64,21 @@ export default class IgcRadioComponent extends EventEmitterMixin(LitElement) {
63
64
  this._tabIndex = 0;
64
65
  this.emitEvent('igcChange', { detail: this.checked });
65
66
  }
67
+ else {
68
+ if (this.required) {
69
+ this.required = false;
70
+ this.getAllInGroup()[0].required = true;
71
+ }
72
+ }
66
73
  }
67
74
  getSiblings() {
75
+ return this.getAllInGroup().filter((radio) => radio.name === this.name && radio !== this);
76
+ }
77
+ getAllInGroup() {
68
78
  const group = this.closest('igc-radio-group');
69
79
  if (!group)
70
80
  return [];
71
- return Array.from(group.querySelectorAll('igc-radio')).filter((radio) => radio.name === this.name && radio !== this);
81
+ return Array.from(group.querySelectorAll('igc-radio'));
72
82
  }
73
83
  render() {
74
84
  return html `
@@ -82,6 +92,7 @@ export default class IgcRadioComponent extends EventEmitterMixin(LitElement) {
82
92
  type="radio"
83
93
  name="${ifDefined(this.name)}"
84
94
  value="${ifDefined(this.value)}"
95
+ .required="${this.required}"
85
96
  .disabled="${this.disabled}"
86
97
  .checked="${live(this.checked)}"
87
98
  tabindex=${this._tabIndex}
@@ -121,6 +132,9 @@ __decorate([
121
132
  __decorate([
122
133
  property()
123
134
  ], IgcRadioComponent.prototype, "value", void 0);
135
+ __decorate([
136
+ property({ type: Boolean, reflect: true })
137
+ ], IgcRadioComponent.prototype, "required", void 0);
124
138
  __decorate([
125
139
  property({ type: Boolean }),
126
140
  blazorTwoWayBind('igcChange', 'detail')
@@ -1 +1 @@
1
- {"version":3,"file":"radio.js","sourceRoot":"","sources":["../../../src/components/radio/radio.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { styles } from './radio.material.css';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { Constructor } from '../common/mixins/constructor.js';\nimport { alternateName, watch, blazorTwoWayBind } from '../common/decorators';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { partNameMap } from '../common/util.js';\n\nlet nextId = 0;\n\nexport interface IgcRadioEventMap {\n igcChange: CustomEvent<boolean>;\n igcFocus: CustomEvent<void>;\n igcBlur: CustomEvent<void>;\n}\n\n/**\n * @element igc-radio\n *\n * @slot - The radio label.\n *\n * @fires igcChange - Emitted when the control's checked state changes.\n * @fires igcFocus - Emitted when the control gains focus.\n * @fires igcBlur - Emitted when the control loses focus.\n *\n * @csspart base - The radio control base wrapper.\n * @csspart control - The radio control.\n * @csspart label - The radio control label.\n */\nexport default class IgcRadioComponent extends EventEmitterMixin<\n IgcRadioEventMap,\n Constructor<LitElement>\n>(LitElement) {\n /** @private */\n public static tagName = 'igc-radio';\n\n /** @private */\n public static styles = styles;\n\n private inputId = `radio-${nextId++}`;\n private labelId = `radio-label-${this.inputId}`;\n\n @query('input[type=\"radio\"]', true)\n protected input!: HTMLInputElement;\n\n @state()\n private _tabIndex = 0;\n\n /** The name attribute of the control. */\n @property()\n public name!: string;\n\n /** The value attribute of the control. */\n @property()\n public value!: string;\n\n /** The checked state of the control. */\n @property({ type: Boolean })\n @blazorTwoWayBind('igcChange', 'detail')\n public checked = false;\n\n /** Disables the radio control. */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n /** Controls the validity of the control. */\n @property({ type: Boolean, reflect: true })\n public invalid = false;\n\n /** The label position of the radio control. */\n @property({ reflect: true, attribute: 'label-position' })\n public labelPosition: 'before' | 'after' = 'after';\n\n /** Sets the aria-labelledby attribute for the radio control. */\n @property({ reflect: true, attribute: 'aria-labelledby' })\n public ariaLabelledby!: string;\n\n /** Simulates a click on the radio control. */\n public click() {\n this.input.click();\n }\n\n /** Sets focus on the radio control. */\n @alternateName('focusComponent')\n public focus(options?: FocusOptions) {\n this.input.focus(options);\n }\n\n /** Removes focus from the radio control. */\n @alternateName('blurComponent')\n public blur() {\n this.input.blur();\n }\n\n /** Checks for validity of the control and shows the browser message if it invalid. */\n public reportValidity() {\n this.input.reportValidity();\n }\n\n /**\n * Sets a custom validation message for the control.\n * As long as `message` is not empty, the control is considered invalid.\n */\n public setCustomValidity(message: string) {\n this.input.setCustomValidity(message);\n this.invalid = !this.input.checkValidity();\n }\n\n protected handleMouseDown(event: MouseEvent) {\n event.preventDefault();\n this.input.focus();\n }\n\n protected handleClick() {\n this.checked = true;\n }\n\n protected handleBlur() {\n this.emitEvent('igcBlur');\n }\n\n protected handleFocus() {\n this.emitEvent('igcFocus');\n }\n\n @watch('checked', { waitUntilFirstUpdate: true })\n protected handleChange() {\n if (this.checked) {\n this.getSiblings().forEach((radio) => {\n radio.checked = false;\n radio._tabIndex = -1;\n });\n this.input.focus();\n this._tabIndex = 0;\n this.emitEvent('igcChange', { detail: this.checked });\n }\n }\n\n protected getSiblings() {\n const group = this.closest('igc-radio-group');\n if (!group) return [];\n\n return Array.from<IgcRadioComponent>(\n group.querySelectorAll('igc-radio')\n ).filter((radio) => radio.name === this.name && radio !== this);\n }\n\n protected render() {\n return html`\n <label\n part=\"${partNameMap({ base: true, checked: this.checked })}\"\n for=\"${this.inputId}\"\n @mousedown=\"${this.handleMouseDown}\"\n >\n <input\n id=\"${this.inputId}\"\n type=\"radio\"\n name=\"${ifDefined(this.name)}\"\n value=\"${ifDefined(this.value)}\"\n .disabled=\"${this.disabled}\"\n .checked=\"${live(this.checked)}\"\n tabindex=${this._tabIndex}\n aria-checked=\"${this.checked ? 'true' : 'false'}\"\n aria-disabled=\"${this.disabled ? 'true' : 'false'}\"\n aria-labelledby=\"${this.ariaLabelledby\n ? this.ariaLabelledby\n : this.labelId}\"\n @click=\"${this.handleClick}\"\n @blur=\"${this.handleBlur}\"\n @focus=\"${this.handleFocus}\"\n />\n <span\n part=\"${partNameMap({ control: true, checked: this.checked })}\"\n ></span>\n <span\n part=\"${partNameMap({ label: true, checked: this.checked })}\"\n id=\"${this.labelId}\"\n >\n <slot></slot>\n </span>\n </label>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-radio': IgcRadioComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"radio.js","sourceRoot":"","sources":["../../../src/components/radio/radio.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { styles } from './radio.material.css';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { Constructor } from '../common/mixins/constructor.js';\nimport { alternateName, watch, blazorTwoWayBind } from '../common/decorators';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { partNameMap } from '../common/util.js';\n\nlet nextId = 0;\n\nexport interface IgcRadioEventMap {\n igcChange: CustomEvent<boolean>;\n igcFocus: CustomEvent<void>;\n igcBlur: CustomEvent<void>;\n}\n\n/**\n * @element igc-radio\n *\n * @slot - The radio label.\n *\n * @fires igcChange - Emitted when the control's checked state changes.\n * @fires igcFocus - Emitted when the control gains focus.\n * @fires igcBlur - Emitted when the control loses focus.\n *\n * @csspart base - The radio control base wrapper.\n * @csspart control - The radio control.\n * @csspart label - The radio control label.\n */\nexport default class IgcRadioComponent extends EventEmitterMixin<\n IgcRadioEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-radio';\n\n public static styles = styles;\n\n private inputId = `radio-${nextId++}`;\n private labelId = `radio-label-${this.inputId}`;\n\n @query('input[type=\"radio\"]', true)\n protected input!: HTMLInputElement;\n\n @state()\n private _tabIndex = 0;\n\n /** The name attribute of the control. */\n @property()\n public name!: string;\n\n /** The value attribute of the control. */\n @property()\n public value!: string;\n\n /** Makes the control a required field. */\n @property({ type: Boolean, reflect: true })\n public required = false;\n\n /** The checked state of the control. */\n @property({ type: Boolean })\n @blazorTwoWayBind('igcChange', 'detail')\n public checked = false;\n\n /** Disables the radio control. */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n /** Controls the validity of the control. */\n @property({ type: Boolean, reflect: true })\n public invalid = false;\n\n /** The label position of the radio control. */\n @property({ reflect: true, attribute: 'label-position' })\n public labelPosition: 'before' | 'after' = 'after';\n\n /** Sets the aria-labelledby attribute for the radio control. */\n @property({ reflect: true, attribute: 'aria-labelledby' })\n public ariaLabelledby!: string;\n\n /** Simulates a click on the radio control. */\n public override click() {\n this.input.click();\n }\n\n /** Sets focus on the radio control. */\n @alternateName('focusComponent')\n public override focus(options?: FocusOptions) {\n this.input.focus(options);\n }\n\n /** Removes focus from the radio control. */\n @alternateName('blurComponent')\n public override blur() {\n this.input.blur();\n }\n\n /** Checks for validity of the control and shows the browser message if it invalid. */\n public reportValidity() {\n this.input.reportValidity();\n }\n\n /**\n * Sets a custom validation message for the control.\n * As long as `message` is not empty, the control is considered invalid.\n */\n public setCustomValidity(message: string) {\n this.input.setCustomValidity(message);\n this.invalid = !this.input.checkValidity();\n }\n\n protected handleMouseDown(event: MouseEvent) {\n event.preventDefault();\n this.input.focus();\n }\n\n protected handleClick() {\n this.checked = true;\n }\n\n protected handleBlur() {\n this.emitEvent('igcBlur');\n }\n\n protected handleFocus() {\n this.emitEvent('igcFocus');\n }\n\n @watch('checked', { waitUntilFirstUpdate: true })\n protected handleChange() {\n if (this.checked) {\n this.getSiblings().forEach((radio) => {\n radio.checked = false;\n radio._tabIndex = -1;\n });\n this.input.focus();\n this._tabIndex = 0;\n this.emitEvent('igcChange', { detail: this.checked });\n } else {\n if (this.required) {\n this.required = false;\n this.getAllInGroup()[0].required = true;\n }\n }\n }\n\n protected getSiblings() {\n return this.getAllInGroup().filter(\n (radio) => radio.name === this.name && radio !== this\n );\n }\n\n protected getAllInGroup() {\n const group = this.closest('igc-radio-group');\n if (!group) return [];\n\n return Array.from<IgcRadioComponent>(group.querySelectorAll('igc-radio'));\n }\n\n protected override render() {\n return html`\n <label\n part=\"${partNameMap({ base: true, checked: this.checked })}\"\n for=\"${this.inputId}\"\n @mousedown=\"${this.handleMouseDown}\"\n >\n <input\n id=\"${this.inputId}\"\n type=\"radio\"\n name=\"${ifDefined(this.name)}\"\n value=\"${ifDefined(this.value)}\"\n .required=\"${this.required}\"\n .disabled=\"${this.disabled}\"\n .checked=\"${live(this.checked)}\"\n tabindex=${this._tabIndex}\n aria-checked=\"${this.checked ? 'true' : 'false'}\"\n aria-disabled=\"${this.disabled ? 'true' : 'false'}\"\n aria-labelledby=\"${this.ariaLabelledby\n ? this.ariaLabelledby\n : this.labelId}\"\n @click=\"${this.handleClick}\"\n @blur=\"${this.handleBlur}\"\n @focus=\"${this.handleFocus}\"\n />\n <span\n part=\"${partNameMap({ control: true, checked: this.checked })}\"\n ></span>\n <span\n part=\"${partNameMap({ label: true, checked: this.checked })}\"\n id=\"${this.labelId}\"\n >\n <slot></slot>\n </span>\n </label>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-radio': IgcRadioComponent;\n }\n}\n"]}