@carbon/web-components 2.42.0 → 2.43.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/custom-elements.json +1225 -97
- package/dist/accordion.min.js +1 -1
- package/dist/code-snippet.min.js +7 -7
- package/dist/{collection-helpers-_CvqQaiX.js → collection-helpers-C5emLOnk.js} +1 -1
- package/dist/combo-box.min.js +5 -5
- package/dist/{content-switcher-item-VHI7iTTP.js → content-switcher-item-3fTDI2Aq.js} +1 -1
- package/dist/content-switcher.min.js +1 -1
- package/dist/data-table.min.js +1 -1
- package/dist/date-picker.min.js +1 -1
- package/dist/{dropdown-item-Pt_eWt66.js → dropdown-item-BO7AhHPd.js} +25 -25
- package/dist/dropdown.min.js +1 -1
- package/dist/file-uploader.min.js +1 -1
- package/dist/fluid-search.min.js +33 -0
- package/dist/fluid-select.min.js +30 -0
- package/dist/fluid-textarea.min.js +36 -0
- package/dist/icon-indicator.min.js +1 -1
- package/dist/inline-loading.min.js +1 -1
- package/dist/list.min.js +1 -1
- package/dist/loading.min.js +1 -1
- package/dist/menu.min.js +1 -1
- package/dist/modal.min.js +5 -5
- package/dist/multi-select.min.js +1 -1
- package/dist/overflow-menu.min.js +1 -1
- package/dist/pagination.min.js +1 -1
- package/dist/progress-indicator.min.js +1 -1
- package/dist/radio-button.min.js +10 -8
- package/dist/{search-BrKCrPl3.js → search-DhwzN9sI.js} +2 -1
- package/dist/search.min.js +4 -4
- package/dist/select-BIi12O8B.js +108 -0
- package/dist/select-item-Be7OL9mD.js +28 -0
- package/dist/select-skeleton-8uIIQzNt.js +31 -0
- package/dist/select.min.js +1 -4
- package/dist/structured-list.min.js +1 -1
- package/dist/tabs.min.js +1 -1
- package/dist/textarea.min.js +23 -15
- package/dist/time-picker.min.js +20 -20
- package/dist/ui-shell.min.js +2 -2
- package/es/components/combo-box/combo-box.d.ts +9 -2
- package/es/components/combo-box/combo-box.js +63 -6
- package/es/components/combo-box/combo-box.js.map +1 -1
- package/es/components/combo-box/combo-box.scss.js +1 -1
- package/es/components/data-table/data-table.scss.js +1 -1
- package/es/components/dropdown/dropdown.d.ts +8 -0
- package/es/components/dropdown/dropdown.js +29 -11
- package/es/components/dropdown/dropdown.js.map +1 -1
- package/es/components/dropdown/dropdown.scss.js +1 -1
- package/es/components/file-uploader/file-uploader.scss.js +1 -1
- package/es/components/fluid-search/fluid-search-skeleton.d.ts +17 -0
- package/es/components/fluid-search/fluid-search-skeleton.js +38 -0
- package/es/components/fluid-search/fluid-search-skeleton.js.map +1 -0
- package/es/components/fluid-search/fluid-search.d.ts +17 -0
- package/es/components/fluid-search/fluid-search.js +44 -0
- package/es/components/fluid-search/fluid-search.js.map +1 -0
- package/es/components/fluid-search/fluid-search.scss.js +13 -0
- package/es/components/fluid-search/fluid-search.scss.js.map +1 -0
- package/es/components/fluid-search/index.d.ts +8 -0
- package/es/components/fluid-search/index.js +10 -0
- package/es/components/fluid-search/index.js.map +1 -0
- package/es/components/fluid-select/fluid-select-skeleton.d.ts +17 -0
- package/es/components/fluid-select/fluid-select-skeleton.js +40 -0
- package/es/components/fluid-select/fluid-select-skeleton.js.map +1 -0
- package/es/components/fluid-select/fluid-select.d.ts +19 -0
- package/es/components/fluid-select/fluid-select.js +59 -0
- package/es/components/fluid-select/fluid-select.js.map +1 -0
- package/es/components/fluid-select/fluid-select.scss.js +13 -0
- package/es/components/fluid-select/fluid-select.scss.js.map +1 -0
- package/es/components/fluid-select/index.d.ts +8 -0
- package/es/components/fluid-select/index.js +10 -0
- package/es/components/fluid-select/index.js.map +1 -0
- package/es/components/fluid-textarea/fluid-textarea-skeleton.d.ts +17 -0
- package/es/components/fluid-textarea/fluid-textarea-skeleton.js +42 -0
- package/es/components/fluid-textarea/fluid-textarea-skeleton.js.map +1 -0
- package/es/components/fluid-textarea/fluid-textarea.d.ts +18 -0
- package/es/components/fluid-textarea/fluid-textarea.js +46 -0
- package/es/components/fluid-textarea/fluid-textarea.js.map +1 -0
- package/es/components/fluid-textarea/fluid-textarea.scss.js +13 -0
- package/es/components/fluid-textarea/fluid-textarea.scss.js.map +1 -0
- package/es/components/fluid-textarea/index.d.ts +8 -0
- package/es/components/fluid-textarea/index.js +10 -0
- package/es/components/fluid-textarea/index.js.map +1 -0
- package/es/components/inline-loading/inline-loading.scss.js +1 -1
- package/es/components/list/list.scss.js +1 -1
- package/es/components/loading/loading.scss.js +1 -1
- package/es/components/menu/menu.js +3 -1
- package/es/components/menu/menu.js.map +1 -1
- package/es/components/modal/modal.scss.js +1 -1
- package/es/components/multi-select/multi-select.scss.js +1 -1
- package/es/components/overflow-menu/overflow-menu-body.js +22 -10
- package/es/components/overflow-menu/overflow-menu-body.js.map +1 -1
- package/es/components/radio-button/radio-button-group.js +4 -2
- package/es/components/radio-button/radio-button-group.js.map +1 -1
- package/es/components/radio-button/radio-button.d.ts +8 -0
- package/es/components/radio-button/radio-button.js +53 -3
- package/es/components/radio-button/radio-button.js.map +1 -1
- package/es/components/radio-button/radio-button.scss.js +1 -1
- package/es/components/search/search-skeleton.js +2 -2
- package/es/components/search/search-skeleton.js.map +1 -1
- package/es/components/search/search.js +1 -0
- package/es/components/search/search.js.map +1 -1
- package/es/components/search/search.scss.js +1 -1
- package/es/components/select/select.d.ts +4 -0
- package/es/components/select/select.js +14 -1
- package/es/components/select/select.js.map +1 -1
- package/es/components/select/select.scss.js +1 -1
- package/es/components/textarea/textarea.d.ts +4 -0
- package/es/components/textarea/textarea.js +37 -11
- package/es/components/textarea/textarea.js.map +1 -1
- package/es/components/time-picker/time-picker.js +13 -8
- package/es/components/time-picker/time-picker.js.map +1 -1
- package/es/components/ui-shell/side-nav.scss.js +1 -1
- package/es-custom/components/combo-box/combo-box.d.ts +9 -2
- package/es-custom/components/combo-box/combo-box.js +63 -6
- package/es-custom/components/combo-box/combo-box.js.map +1 -1
- package/es-custom/components/combo-box/combo-box.scss.js +1 -1
- package/es-custom/components/data-table/data-table.scss.js +1 -1
- package/es-custom/components/dropdown/dropdown.d.ts +8 -0
- package/es-custom/components/dropdown/dropdown.js +29 -11
- package/es-custom/components/dropdown/dropdown.js.map +1 -1
- package/es-custom/components/dropdown/dropdown.scss.js +1 -1
- package/es-custom/components/file-uploader/file-uploader.scss.js +1 -1
- package/es-custom/components/fluid-search/fluid-search-skeleton.d.ts +17 -0
- package/es-custom/components/fluid-search/fluid-search-skeleton.js +38 -0
- package/es-custom/components/fluid-search/fluid-search-skeleton.js.map +1 -0
- package/es-custom/components/fluid-search/fluid-search.d.ts +17 -0
- package/es-custom/components/fluid-search/fluid-search.js +44 -0
- package/es-custom/components/fluid-search/fluid-search.js.map +1 -0
- package/es-custom/components/fluid-search/fluid-search.scss.js +13 -0
- package/es-custom/components/fluid-search/fluid-search.scss.js.map +1 -0
- package/es-custom/components/fluid-search/index.d.ts +8 -0
- package/es-custom/components/fluid-search/index.js +10 -0
- package/es-custom/components/fluid-search/index.js.map +1 -0
- package/es-custom/components/fluid-select/fluid-select-skeleton.d.ts +17 -0
- package/es-custom/components/fluid-select/fluid-select-skeleton.js +40 -0
- package/es-custom/components/fluid-select/fluid-select-skeleton.js.map +1 -0
- package/es-custom/components/fluid-select/fluid-select.d.ts +19 -0
- package/es-custom/components/fluid-select/fluid-select.js +59 -0
- package/es-custom/components/fluid-select/fluid-select.js.map +1 -0
- package/es-custom/components/fluid-select/fluid-select.scss.js +13 -0
- package/es-custom/components/fluid-select/fluid-select.scss.js.map +1 -0
- package/es-custom/components/fluid-select/index.d.ts +8 -0
- package/es-custom/components/fluid-select/index.js +10 -0
- package/es-custom/components/fluid-select/index.js.map +1 -0
- package/es-custom/components/fluid-textarea/fluid-textarea-skeleton.d.ts +17 -0
- package/es-custom/components/fluid-textarea/fluid-textarea-skeleton.js +42 -0
- package/es-custom/components/fluid-textarea/fluid-textarea-skeleton.js.map +1 -0
- package/es-custom/components/fluid-textarea/fluid-textarea.d.ts +18 -0
- package/es-custom/components/fluid-textarea/fluid-textarea.js +46 -0
- package/es-custom/components/fluid-textarea/fluid-textarea.js.map +1 -0
- package/es-custom/components/fluid-textarea/fluid-textarea.scss.js +13 -0
- package/es-custom/components/fluid-textarea/fluid-textarea.scss.js.map +1 -0
- package/es-custom/components/fluid-textarea/index.d.ts +8 -0
- package/es-custom/components/fluid-textarea/index.js +10 -0
- package/es-custom/components/fluid-textarea/index.js.map +1 -0
- package/es-custom/components/inline-loading/inline-loading.scss.js +1 -1
- package/es-custom/components/list/list.scss.js +1 -1
- package/es-custom/components/loading/loading.scss.js +1 -1
- package/es-custom/components/menu/menu.js +3 -1
- package/es-custom/components/menu/menu.js.map +1 -1
- package/es-custom/components/modal/modal.scss.js +1 -1
- package/es-custom/components/multi-select/multi-select.scss.js +1 -1
- package/es-custom/components/overflow-menu/overflow-menu-body.js +22 -10
- package/es-custom/components/overflow-menu/overflow-menu-body.js.map +1 -1
- package/es-custom/components/radio-button/radio-button-group.js +4 -2
- package/es-custom/components/radio-button/radio-button-group.js.map +1 -1
- package/es-custom/components/radio-button/radio-button.d.ts +8 -0
- package/es-custom/components/radio-button/radio-button.js +53 -3
- package/es-custom/components/radio-button/radio-button.js.map +1 -1
- package/es-custom/components/radio-button/radio-button.scss.js +1 -1
- package/es-custom/components/search/search-skeleton.js +2 -2
- package/es-custom/components/search/search-skeleton.js.map +1 -1
- package/es-custom/components/search/search.js +1 -0
- package/es-custom/components/search/search.js.map +1 -1
- package/es-custom/components/search/search.scss.js +1 -1
- package/es-custom/components/select/select.d.ts +4 -0
- package/es-custom/components/select/select.js +14 -1
- package/es-custom/components/select/select.js.map +1 -1
- package/es-custom/components/select/select.scss.js +1 -1
- package/es-custom/components/textarea/textarea.d.ts +4 -0
- package/es-custom/components/textarea/textarea.js +37 -11
- package/es-custom/components/textarea/textarea.js.map +1 -1
- package/es-custom/components/time-picker/time-picker.js +13 -8
- package/es-custom/components/time-picker/time-picker.js.map +1 -1
- package/es-custom/components/ui-shell/side-nav.scss.js +1 -1
- package/lib/components/combo-box/combo-box.d.ts +9 -2
- package/lib/components/dropdown/dropdown.d.ts +8 -0
- package/lib/components/fluid-search/fluid-search-skeleton.d.ts +17 -0
- package/lib/components/fluid-search/fluid-search.d.ts +17 -0
- package/lib/components/fluid-search/index.d.ts +8 -0
- package/lib/components/fluid-select/fluid-select-skeleton.d.ts +17 -0
- package/lib/components/fluid-select/fluid-select.d.ts +19 -0
- package/lib/components/fluid-select/index.d.ts +8 -0
- package/lib/components/fluid-textarea/fluid-textarea-skeleton.d.ts +17 -0
- package/lib/components/fluid-textarea/fluid-textarea.d.ts +18 -0
- package/lib/components/fluid-textarea/index.d.ts +8 -0
- package/lib/components/radio-button/radio-button.d.ts +8 -0
- package/lib/components/select/select.d.ts +4 -0
- package/lib/components/textarea/textarea.d.ts +4 -0
- package/package.json +6 -6
- package/scss/components/combo-box/combo-box.scss +82 -18
- package/scss/components/data-table/_table-core.scss +9 -9
- package/scss/components/data-table/_table-expandable.scss +7 -7
- package/scss/components/data-table/_table-selection.scss +3 -3
- package/scss/components/dropdown/dropdown.scss +2 -0
- package/scss/components/fluid-search/fluid-search.scss +55 -0
- package/scss/components/fluid-select/fluid-select.scss +58 -0
- package/scss/components/fluid-textarea/fluid-textarea.scss +16 -0
- package/scss/components/list/list.scss +1 -1
- package/scss/components/radio-button/radio-button.scss +9 -4
- package/scss/components/select/select.scss +1 -0
- package/telemetry.yml +9 -10
- package/dist/select-Dwsf_c0t.js +0 -104
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-picker.js","sources":["../../../src/components/time-picker/time-picker.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport WarningFilled16 from '@carbon/icons/es/warning--filled/16.js';\nimport WarningAltFilled16 from '@carbon/icons/es/warning--alt--filled/16.js';\nimport ValidityMixin from '../../globals/mixins/validity';\nimport FormMixin from '../../globals/mixins/form';\nimport { prefix } from '../../globals/settings';\nimport styles from './time-picker.scss?lit';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport { TIME_PICKER_SIZE } from './defs';\n\n/**\n * Time Picker component.\n * @element cds-time-picker\n * @slot label-text - The label text.\n * @slot time-picker-select - Slot for time picker select components.\n * @slot validity-message - The validity message. If present and non-empty, this input shows the UI of its invalid state.\n */\n@customElement(`${prefix}-time-picker`)\nclass CDSTimePicker extends ValidityMixin(FormMixin(LitElement)) {\n /**\n * The underlying input element\n */\n @query('input')\n protected _input!: HTMLInputElement;\n\n /**\n * The internal value.\n */\n protected _value = '';\n\n protected _handleInput({ target }: Event) {\n this.value = (target as HTMLInputElement).value;\n this.dispatchEvent(\n new CustomEvent('change', {\n bubbles: true,\n composed: true,\n detail: { value: this.value },\n })\n );\n }\n\n /**\n * Handle slotchange event for time-picker-select slot\n * to propagate properties to child elements\n */\n protected _handleSlotChange() {\n this.requestUpdate();\n }\n\n _handleFormdata(event: Event) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n const { formData } = event as any;\n const { disabled, name, value } = this;\n if (!disabled) {\n formData.append(name, value);\n }\n }\n\n /**\n * Specify whether the control is disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Specify whether the control is currently invalid\n */\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /**\n * Provide the text that is displayed when the control is in an invalid state\n */\n @property({ attribute: 'invalid-text' })\n invalidText = 'Invalid time format.';\n\n /**\n * Specify whether the control is in warning state\n */\n @property({ type: Boolean, reflect: true })\n warning = false;\n\n /**\n * Provide the text that is displayed when the control is in a warning state\n */\n @property({ attribute: 'warning-text' })\n warningText = 'Warning message.';\n\n /**\n * Specify whether the label should be hidden\n */\n @property({ attribute: 'hide-label', type: Boolean, reflect: true })\n hideLabel = false;\n\n /**\n * Name for the input in FormData\n */\n @property()\n name = '';\n\n /**\n * Provide label text to be read by screen readers\n */\n @property({ attribute: 'label-text' })\n labelText = 'Select a time';\n\n /**\n * Placeholder text for the input\n */\n @property({ reflect: true })\n placeholder = 'hh:mm';\n\n /**\n * Specify whether the control should be read-only\n */\n @property({ type: Boolean, reflect: true })\n readOnly = false;\n\n /**\n * Specify the maximum length of the input value\n */\n @property({ type: Number, attribute: 'max-length', reflect: true })\n maxLength = 5;\n\n /**\n * Pattern for input validation\n */\n @property()\n pattern = '(1[012]|[1-9]):[0-5][0-9](\\\\s)?';\n\n /**\n * Size of the time picker\n */\n @property({ reflect: true })\n size = TIME_PICKER_SIZE.MEDIUM;\n\n /**\n * Input type\n */\n @property({ reflect: true })\n type = 'text';\n\n /**\n * Validity message\n */\n @property({ attribute: 'validity-message' })\n validityMessage = '';\n\n /**\n * Whether the input is required\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * Custom message for required validation\n */\n @property({ attribute: 'required-validity-message' })\n requiredValidityMessage = 'Please fill out this field.';\n\n /**\n * Value of the input\n */\n @property({ reflect: true })\n get value() {\n return this._input ? this._input.value : this._value;\n }\n\n set value(value) {\n const oldValue = this._value;\n this._value = value;\n this.requestUpdate('value', oldValue);\n if (this._input) {\n this._input.value = value;\n }\n }\n\n render() {\n const {\n className,\n disabled,\n hideLabel,\n invalid,\n invalidText,\n warning,\n warningText,\n labelText,\n placeholder,\n readOnly,\n maxLength,\n pattern,\n size,\n type,\n value,\n _handleInput: handleInput,\n _handleSlotChange: handleSlotChange,\n } = this;\n\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--visually-hidden`]: hideLabel,\n [`${prefix}--label--disabled`]: disabled,\n });\n\n const timePickerClasses = classMap({\n [`${prefix}--time-picker`]: true,\n [`${prefix}--time-picker--invalid`]: invalid,\n [`${prefix}--time-picker--warning`]: warning,\n [`${prefix}--time-picker--readonly`]: readOnly,\n [`${prefix}--time-picker--${size}`]: size,\n ...(className && { [className]: true }),\n });\n\n const inputClasses = classMap({\n [`${prefix}--time-picker__input-field`]: true,\n [`${prefix}--text-input`]: true,\n [`${prefix}--time-picker__input-field-error`]: invalid || warning,\n ...(className && { [className]: true }),\n });\n const label = labelText\n ? html`<label class=\"${labelClasses}\">${labelText}</label>`\n : null;\n\n return html`\n <div class=\"${prefix}--form-item \">\n ${label}\n <div class=\"${timePickerClasses}\">\n <div class=\"${prefix}--time-picker__input\">\n <input\n class=\"${inputClasses}\"\n ?data-invalid=\"${invalid}\"\n ?disabled=\"${disabled}\"\n maxlength=\"${ifNonEmpty(maxLength)}\"\n name=\"${ifNonEmpty(this.name)}\"\n pattern=\"${ifNonEmpty(pattern)}\"\n placeholder=\"${ifNonEmpty(placeholder)}\"\n ?readonly=\"${readOnly}\"\n type=\"${ifNonEmpty(type)}\"\n .value=\"${value}\"\n @input=\"${handleInput}\" />\n ${invalid || warning\n ? html`\n <div class=\"${prefix}--time-picker__error__icon\">\n ${invalid\n ? iconLoader(WarningFilled16, {\n class: `${prefix}--checkbox__invalid-icon`,\n })\n : iconLoader(WarningAltFilled16, {\n class: `${prefix}--text-input__invalid-icon--warning`,\n })}\n </div>\n `\n : null}\n </div>\n <slot @slotchange=\"${handleSlotChange}\"></slot>\n </div>\n ${invalid || warning\n ? html`\n <div class=\"${prefix}--form-requirement\">\n ${invalid ? invalidText : warningText}\n </div>\n `\n : null}\n </div>\n `;\n }\n updated(changedProperties) {\n super.updated(changedProperties);\n\n const { selectorTimePickerSelect } = this\n .constructor as typeof CDSTimePicker;\n const timePickerSelects = this.querySelectorAll(selectorTimePickerSelect);\n\n ['disabled', 'readOnly', 'size'].forEach((name) => {\n if (changedProperties.has(name)) {\n const { [name as keyof CDSTimePicker]: value } = this;\n // Propagate the property to descendants\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n timePickerSelects.forEach((elem: any) => {\n elem[name] = value;\n });\n }\n });\n }\n static get selectorTimePickerSelect() {\n return `${prefix}-time-picker-select`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n static styles = styles;\n}\n\nexport default CDSTimePicker;\n"],"names":["customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"time-picker.js","sources":["../../../src/components/time-picker/time-picker.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport WarningFilled16 from '@carbon/icons/es/warning--filled/16.js';\nimport WarningAltFilled16 from '@carbon/icons/es/warning--alt--filled/16.js';\nimport ValidityMixin from '../../globals/mixins/validity';\nimport FormMixin from '../../globals/mixins/form';\nimport { prefix } from '../../globals/settings';\nimport styles from './time-picker.scss?lit';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport { TIME_PICKER_SIZE } from './defs';\n\n/**\n * Time Picker component.\n * @element cds-time-picker\n * @slot label-text - The label text.\n * @slot time-picker-select - Slot for time picker select components.\n * @slot validity-message - The validity message. If present and non-empty, this input shows the UI of its invalid state.\n */\n@customElement(`${prefix}-time-picker`)\nclass CDSTimePicker extends ValidityMixin(FormMixin(LitElement)) {\n /**\n * The underlying input element\n */\n @query('input')\n protected _input!: HTMLInputElement;\n\n /**\n * The internal value.\n */\n protected _value = '';\n\n protected _handleInput({ target }: Event) {\n this.value = (target as HTMLInputElement).value;\n this.dispatchEvent(\n new CustomEvent('change', {\n bubbles: true,\n composed: true,\n detail: { value: this.value },\n })\n );\n }\n\n /**\n * Handle slotchange event for time-picker-select slot\n * to propagate properties to child elements\n */\n protected _handleSlotChange() {\n this.requestUpdate();\n }\n\n _handleFormdata(event: Event) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n const { formData } = event as any;\n const { disabled, name, value } = this;\n if (!disabled) {\n formData.append(name, value);\n }\n }\n\n /**\n * Specify whether the control is disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Specify whether the control is currently invalid\n */\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /**\n * Provide the text that is displayed when the control is in an invalid state\n */\n @property({ attribute: 'invalid-text' })\n invalidText = 'Invalid time format.';\n\n /**\n * Specify whether the control is in warning state\n */\n @property({ type: Boolean, reflect: true })\n warning = false;\n\n /**\n * Provide the text that is displayed when the control is in a warning state\n */\n @property({ attribute: 'warning-text' })\n warningText = 'Warning message.';\n\n /**\n * Specify whether the label should be hidden\n */\n @property({ attribute: 'hide-label', type: Boolean, reflect: true })\n hideLabel = false;\n\n /**\n * Name for the input in FormData\n */\n @property()\n name = '';\n\n /**\n * Provide label text to be read by screen readers\n */\n @property({ attribute: 'label-text' })\n labelText = 'Select a time';\n\n /**\n * Placeholder text for the input\n */\n @property({ reflect: true })\n placeholder = 'hh:mm';\n\n /**\n * Specify whether the control should be read-only\n */\n @property({ type: Boolean, reflect: true })\n readOnly = false;\n\n /**\n * Specify the maximum length of the input value\n */\n @property({ type: Number, attribute: 'max-length', reflect: true })\n maxLength = 5;\n\n /**\n * Pattern for input validation\n */\n @property()\n pattern = '(1[012]|[1-9]):[0-5][0-9](\\\\s)?';\n\n /**\n * Size of the time picker\n */\n @property({ reflect: true })\n size = TIME_PICKER_SIZE.MEDIUM;\n\n /**\n * Input type\n */\n @property({ reflect: true })\n type = 'text';\n\n /**\n * Validity message\n */\n @property({ attribute: 'validity-message' })\n validityMessage = '';\n\n /**\n * Whether the input is required\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * Custom message for required validation\n */\n @property({ attribute: 'required-validity-message' })\n requiredValidityMessage = 'Please fill out this field.';\n\n /**\n * Value of the input\n */\n @property({ reflect: true })\n get value() {\n return this._input ? this._input.value : this._value;\n }\n\n set value(value) {\n const oldValue = this._value;\n this._value = value;\n this.requestUpdate('value', oldValue);\n if (this._input) {\n this._input.value = value;\n }\n }\n\n render() {\n const {\n className,\n disabled,\n hideLabel,\n invalid,\n invalidText,\n warning,\n warningText,\n labelText,\n placeholder,\n readOnly,\n maxLength,\n pattern,\n size,\n type,\n value,\n _handleInput: handleInput,\n _handleSlotChange: handleSlotChange,\n } = this;\n\n const normalizedProps: {\n disabled: boolean;\n invalid: boolean;\n warn: boolean;\n } = {\n disabled: !readOnly && disabled,\n invalid: !readOnly && !disabled && invalid,\n warn: !readOnly && !invalid && !disabled && warning,\n };\n\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--visually-hidden`]: hideLabel,\n [`${prefix}--label--disabled`]: disabled,\n });\n\n const timePickerClasses = classMap({\n [`${prefix}--time-picker`]: true,\n [`${prefix}--time-picker--invalid`]: normalizedProps.invalid,\n [`${prefix}--time-picker--warning`]: normalizedProps.warn,\n [`${prefix}--time-picker--readonly`]: readOnly,\n [`${prefix}--time-picker--${size}`]: size,\n ...(className && { [className]: true }),\n });\n\n const inputClasses = classMap({\n [`${prefix}--time-picker__input-field`]: true,\n [`${prefix}--text-input`]: true,\n [`${prefix}--time-picker__input-field-error`]:\n normalizedProps.invalid || normalizedProps.warn,\n ...(className && { [className]: true }),\n });\n\n const label = labelText\n ? html`<label class=\"${labelClasses}\">${labelText}</label>`\n : null;\n\n return html`\n <div class=\"${prefix}--form-item \">\n ${label}\n <div class=\"${timePickerClasses}\">\n <div class=\"${prefix}--time-picker__input\">\n <input\n class=\"${inputClasses}\"\n ?data-invalid=\"${normalizedProps.invalid}\"\n ?disabled=\"${normalizedProps.disabled}\"\n maxlength=\"${ifNonEmpty(maxLength)}\"\n name=\"${ifNonEmpty(this.name)}\"\n pattern=\"${ifNonEmpty(pattern)}\"\n placeholder=\"${ifNonEmpty(placeholder)}\"\n ?readonly=\"${readOnly}\"\n type=\"${ifNonEmpty(type)}\"\n .value=\"${value}\"\n @input=\"${handleInput}\" />\n ${normalizedProps.invalid || normalizedProps.warn\n ? html`\n <div class=\"${prefix}--time-picker__error__icon\">\n ${normalizedProps.invalid\n ? iconLoader(WarningFilled16, {\n class: `${prefix}--checkbox__invalid-icon`,\n })\n : iconLoader(WarningAltFilled16, {\n class: `${prefix}--text-input__invalid-icon--warning`,\n })}\n </div>\n `\n : null}\n </div>\n <slot @slotchange=\"${handleSlotChange}\"></slot>\n </div>\n ${normalizedProps.invalid || normalizedProps.warn\n ? html`\n <div class=\"${prefix}--form-requirement\">\n ${normalizedProps.invalid ? invalidText : warningText}\n </div>\n `\n : null}\n </div>\n `;\n }\n updated(changedProperties) {\n super.updated(changedProperties);\n\n const { selectorTimePickerSelect } = this\n .constructor as typeof CDSTimePicker;\n const timePickerSelects = this.querySelectorAll(selectorTimePickerSelect);\n\n ['disabled', 'readOnly', 'size'].forEach((name) => {\n if (changedProperties.has(name)) {\n const { [name as keyof CDSTimePicker]: value } = this;\n // Propagate the property to descendants\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n timePickerSelects.forEach((elem: any) => {\n elem[name] = value;\n });\n }\n });\n }\n static get selectorTimePickerSelect() {\n return `${prefix}-time-picker-select`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n static styles = styles;\n}\n\nexport default CDSTimePicker;\n"],"names":["customElement"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import { css } from 'lit';
|
|
9
9
|
|
|
10
|
-
var styles = css([".cds--layer-one,:root{--cds-layer:var(--cds-layer-01,#f4f4f4);--cds-layer-active:var(--cds-layer-active-01,#c6c6c6);--cds-layer-background:var(--cds-layer-background-01,#fff);--cds-layer-hover:var(--cds-layer-hover-01,#e8e8e8);--cds-layer-selected:var(--cds-layer-selected-01,#e0e0e0);--cds-layer-selected-hover:var(--cds-layer-selected-hover-01,#d1d1d1);--cds-layer-accent:var(--cds-layer-accent-01,#e0e0e0);--cds-layer-accent-hover:var(--cds-layer-accent-hover-01,#d1d1d1);--cds-layer-accent-active:var(--cds-layer-accent-active-01,#a8a8a8);--cds-field:var(--cds-field-01,#f4f4f4);--cds-field-hover:var(--cds-field-hover-01,#e8e8e8);--cds-border-subtle:var(--cds-border-subtle-00,#e0e0e0);--cds-border-subtle-selected:var(--cds-border-subtle-selected-01,#c6c6c6);--cds-border-strong:var(--cds-border-strong-01,#8d8d8d);--cds-border-tile:var(--cds-border-tile-01,#c6c6c6)}.cds--layer-two{--cds-layer:var(--cds-layer-02,#fff);--cds-layer-active:var(--cds-layer-active-02,#c6c6c6);--cds-layer-background:var(--cds-layer-background-02,#f4f4f4);--cds-layer-hover:var(--cds-layer-hover-02,#e8e8e8);--cds-layer-selected:var(--cds-layer-selected-02,#e0e0e0);--cds-layer-selected-hover:var(--cds-layer-selected-hover-02,#d1d1d1);--cds-layer-accent:var(--cds-layer-accent-02,#e0e0e0);--cds-layer-accent-hover:var(--cds-layer-accent-hover-02,#d1d1d1);--cds-layer-accent-active:var(--cds-layer-accent-active-02,#a8a8a8);--cds-field:var(--cds-field-02,#fff);--cds-field-hover:var(--cds-field-hover-02,#e8e8e8);--cds-border-subtle:var(--cds-border-subtle-01,#c6c6c6);--cds-border-subtle-selected:var(--cds-border-subtle-selected-02,#c6c6c6);--cds-border-strong:var(--cds-border-strong-02,#8d8d8d);--cds-border-tile:var(--cds-border-tile-02,#a8a8a8)}.cds--layer-three{--cds-layer:var(--cds-layer-03,#f4f4f4);--cds-layer-active:var(--cds-layer-active-03,#c6c6c6);--cds-layer-background:var(--cds-layer-background-03,#fff);--cds-layer-hover:var(--cds-layer-hover-03,#e8e8e8);--cds-layer-selected:var(--cds-layer-selected-03,#e0e0e0);--cds-layer-selected-hover:var(--cds-layer-selected-hover-03,#d1d1d1);--cds-layer-accent:var(--cds-layer-accent-03,#e0e0e0);--cds-layer-accent-hover:var(--cds-layer-accent-hover-03,#d1d1d1);--cds-layer-accent-active:var(--cds-layer-accent-active-03,#a8a8a8);--cds-field:var(--cds-field-03,#f4f4f4);--cds-field-hover:var(--cds-field-hover-03,#e8e8e8);--cds-border-subtle:var(--cds-border-subtle-02,#e0e0e0);--cds-border-subtle-selected:var(--cds-border-subtle-selected-03,#c6c6c6);--cds-border-strong:var(--cds-border-strong-03,#8d8d8d);--cds-border-tile:var(--cds-border-tile-03,#c6c6c6)}.cds--layer-one.cds--layer__with-background,.cds--layer-three.cds--layer__with-background,.cds--layer-two.cds--layer__with-background{background-color:var(--cds-layer-background)}.cds--side-nav{background-color:var(--cds-background,#fff);color:var(--cds-text-secondary,#525252);inline-size:3rem;inset-block:0;inset-inline-start:0;max-inline-size:16rem;overflow:hidden;position:fixed;transition:inline-size .11s cubic-bezier(.2,0,1,.9),transform .11s cubic-bezier(.2,0,1,.9);will-change:inline-size;z-index:8000}.cds--side-nav--ux{inline-size:16rem;inset-block-start:3rem}@media (max-width:65.98rem){.cds--side-nav--ux{inline-size:0}}.cds--side-nav--rail{inline-size:3rem}.cds--side-nav--hidden{inline-size:0}.cds--side-nav--expanded{inline-size:16rem}.cds--side-nav__overlay{background-color:transparent;block-size:0;inline-size:0;inset-block-start:3rem;inset-inline-start:0;opacity:0;position:fixed;transition:opacity .3s cubic-bezier(.5,0,.1,1),background-color .3s cubic-bezier(.5,0,.1,1)}@media (max-width:65.98rem){.cds--side-nav__overlay-active{background-color:var(--cds-overlay,hsla(0,0%,9%,.5));block-size:100vh;inline-size:100vw;opacity:1;transition:opacity .3s cubic-bezier(.5,0,.1,1),background-color .3s cubic-bezier(.5,0,.1,1);z-index:6000}}.cds--header~.cds--side-nav{block-size:calc(100% - 48px);inset-block-start:3rem}.cds--side-nav--fixed{inline-size:16rem}.cds--side-nav--collapsed{inline-size:16rem;transform:translateX(-16rem)}.cds--side-nav__navigation{display:flex;flex-direction:column}.cds--side-nav__items,:host(cds-side-nav-items){border:0;box-sizing:border-box;font-family:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}.cds--side-nav__items *,.cds--side-nav__items :after,.cds--side-nav__items :before,:host(cds-side-nav-items) *,:host(cds-side-nav-items) :after,:host(cds-side-nav-items) :before{box-sizing:inherit}.cds--side-nav__items,:host(cds-side-nav-items){flex:1 1 0%;overflow:hidden;padding:1rem 0 0}.cds--side-nav--expanded .cds--side-nav__items,.cds--side-nav--expanded :host(cds-side-nav-items),.cds--side-nav--fixed .cds--side-nav__items,.cds--side-nav--fixed :host(cds-side-nav-items),.cds--side-nav:hover .cds--side-nav__items,.cds--side-nav:hover :host(cds-side-nav-items){overflow-y:auto}.cds--side-nav--ux .cds--side-nav__items,.cds--side-nav--ux :host(cds-side-nav-items){overflow-y:auto}.cds--side-nav__item,:host(cds-side-nav-link),:host(cds-side-nav-menu){block-size:auto;inline-size:auto;overflow:hidden}.cds--side-nav--ux .cds--side-nav__item,.cds--side-nav--ux :host(cds-side-nav-link),.cds--side-nav--ux :host(cds-side-nav-menu){block-size:auto;inline-size:auto}.cds--side-nav .cds--header__menu-title[aria-expanded=true]:hover,.cds--side-nav a.cds--header__menu-item:hover,.cds--side-nav__item:not(.cds--side-nav__item--active):hover .cds--side-nav__item:not(.cds--side-nav__item--active)>.cds--side-nav__submenu:hover,.cds--side-nav__item:not(.cds--side-nav__item--active):hover :not(.cds--side-nav__item--active):host(cds-side-nav-link)>.cds--side-nav__submenu:hover,.cds--side-nav__item:not(.cds--side-nav__item--active):hover :not(.cds--side-nav__item--active):host(cds-side-nav-menu)>.cds--side-nav__submenu:hover,.cds--side-nav__item:not(.cds--side-nav__item--active)>.cds--side-nav__link:hover,.cds--side-nav__menu a.cds--side-nav__link:not(.cds--side-nav__link--current):not([aria-current=page]):hover,:not(.cds--side-nav__item--active):host(cds-side-nav-link)>.cds--side-nav__link:hover,:not(.cds--side-nav__item--active):host(cds-side-nav-menu)>.cds--side-nav__link:hover{background-color:var(--cds-background-hover,hsla(0,0%,55%,.12));color:var(--cds-text-primary,#161616)}.cds--side-nav__item:not(.cds--side-nav__item--active) .cds--side-nav__menu-item>.cds--side-nav__link:hover>span,.cds--side-nav__item:not(.cds--side-nav__item--active) :host(cds-side-nav-menu-item)>.cds--side-nav__link:hover>span,.cds--side-nav__item:not(.cds--side-nav__item--active)>.cds--side-nav__link:hover>span,:not(.cds--side-nav__item--active):host(cds-side-nav-link) .cds--side-nav__menu-item>.cds--side-nav__link:hover>span,:not(.cds--side-nav__item--active):host(cds-side-nav-link) :host(cds-side-nav-menu-item)>.cds--side-nav__link:hover>span,:not(.cds--side-nav__item--active):host(cds-side-nav-link)>.cds--side-nav__link:hover>span,:not(.cds--side-nav__item--active):host(cds-side-nav-menu) .cds--side-nav__menu-item>.cds--side-nav__link:hover>span,:not(.cds--side-nav__item--active):host(cds-side-nav-menu) :host(cds-side-nav-menu-item)>.cds--side-nav__link:hover>span,:not(.cds--side-nav__item--active):host(cds-side-nav-menu)>.cds--side-nav__link:hover>span{color:var(--cds-text-primary,#161616)}.cds--side-nav__item--large,:host(cds-side-nav-link[large]),:host(cds-side-nav-menu[large]){block-size:auto}.cds--side-nav__divider,:host(cds-side-nav-divider){background-color:var(--cds-border-subtle);block-size:1px;list-style-type:none;margin:.5rem 1rem}.cds--side-nav__divider hr,:host(cds-side-nav-divider) hr{border:none}.cds--side-nav__submenu{box-sizing:border-box;font-family:inherit;font-size:100%;margin:0;vertical-align:baseline}.cds--side-nav__submenu *,.cds--side-nav__submenu :after,.cds--side-nav__submenu :before{box-sizing:inherit}.cds--side-nav__submenu{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;cursor:pointer;display:inline-block;inline-size:100%;padding:0;text-align:start}.cds--side-nav__submenu::-moz-focus-inner{border:0}.cds--side-nav__submenu{align-items:center;block-size:2rem;color:var(--cds-text-secondary,#525252);display:flex;font-size:var(--cds-heading-compact-01-font-size,.875rem);font-weight:var(--cds-heading-compact-01-font-weight,600);letter-spacing:var(--cds-heading-compact-01-letter-spacing,.16px);line-height:var(--cds-heading-compact-01-line-height,1.28572);outline:2px solid transparent;outline-offset:-2px;padding:0 1rem;transition:color .11s,background-color .11s,outline .11s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cds--side-nav__submenu:hover{background-color:var(--cds-background-hover,hsla(0,0%,55%,.12));color:var(--cds-text-primary,#161616)}.cds--side-nav__submenu:focus{outline:2px solid var(--cds-focus,#0f62fe);outline-offset:-2px}@media screen and (prefers-contrast){.cds--side-nav__submenu:focus{outline-style:dotted}}.cds--side-nav__submenu-title{overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap}.cds--side-nav__icon.cds--side-nav__submenu-chevron{display:flex;flex:1;justify-content:flex-end}.cds--side-nav__submenu-chevron>svg{block-size:1rem;inline-size:1rem;transition:transform .11s}.cds--side-nav__submenu[aria-expanded=true] .cds--side-nav__submenu-chevron>svg{transform:rotate(180deg)}.cds--side-nav__item--large .cds--side-nav__submenu,:host(cds-side-nav-link[large]) .cds--side-nav__submenu,:host(cds-side-nav-menu[large]) .cds--side-nav__submenu{block-size:3rem}.cds--side-nav__item--active .cds--side-nav__submenu:hover,:host(cds-side-nav-menu[active]) .cds--side-nav__submenu:hover{background-color:var(--cds-background-selected,hsla(0,0%,55%,.2));color:var(--cds-text-primary,#161616)}.cds--side-nav__item--active .cds--side-nav__submenu[aria-expanded=false],:host(cds-side-nav-menu[active]) .cds--side-nav__submenu[aria-expanded=false]{background-color:var(--cds-background-selected,hsla(0,0%,55%,.2));color:var(--cds-text-primary,#161616);position:relative}.cds--side-nav__item--active .cds--side-nav__submenu[aria-expanded=false]:before,:host(cds-side-nav-menu[active]) .cds--side-nav__submenu[aria-expanded=false]:before{background-color:var(--cds-border-interactive,#0f62fe);content:\"\";inline-size:3px;inset-block:0;inset-inline-start:0;position:absolute}.cds--side-nav__item--active .cds--side-nav__submenu-title,:host(cds-side-nav-menu[active]) .cds--side-nav__submenu-title{color:var(--cds-text-primary,#161616);font-weight:600}.cds--side-nav__item--active .cds--side-nav__icon>svg,:host(cds-side-nav-menu[active]) .cds--side-nav__icon>svg{fill:var(--cds-icon-primary,#161616)}.cds--side-nav__menu{border:0;box-sizing:border-box;font-family:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}.cds--side-nav__menu *,.cds--side-nav__menu :after,.cds--side-nav__menu :before{box-sizing:inherit}.cds--side-nav__menu{display:block;max-block-size:0;visibility:hidden}.cds--side-nav__submenu[aria-expanded=true]+.cds--side-nav__menu{max-block-size:93.75rem;visibility:inherit}.cds--side-nav__menu a.cds--side-nav__link{block-size:2rem;font-weight:400;min-block-size:2rem;padding-inline-start:2rem}.cds--side-nav__item.cds--side-nav__item--icon a.cds--side-nav__link,:host(cds-side-nav-menu):host(cds-side-nav-menu[has-icon]) a.cds--side-nav__link{padding-inline-start:4.5rem}.cds--side-nav__menu a.cds--side-nav__link--current,.cds--side-nav__menu a.cds--side-nav__link[aria-current=page],a.cds--side-nav__link--current{background-color:var(--cds-background-selected,hsla(0,0%,55%,.2))}.cds--side-nav__menu a.cds--side-nav__link--current>span,.cds--side-nav__menu a.cds--side-nav__link[aria-current=page]>span,a.cds--side-nav__link--current>span{color:var(--cds-text-primary,#161616);font-weight:600}.cds--side-nav .cds--header__menu-title[aria-expanded=true]+.cds--header__menu,.cds--side-nav a.cds--header__menu-item,a.cds--side-nav__link{align-items:center;display:flex;font-size:var(--cds-heading-compact-01-font-size,.875rem);font-weight:var(--cds-heading-compact-01-font-weight,600);letter-spacing:var(--cds-heading-compact-01-letter-spacing,.16px);line-height:var(--cds-heading-compact-01-line-height,1.28572);min-block-size:2rem;outline:2px solid transparent;outline-offset:-2px;padding:0 1rem;position:relative;text-decoration:none;transition:color .11s,background-color .11s,outline .11s}.cds--side-nav__item--large a.cds--side-nav__link,:host(cds-side-nav-link[large]) a.cds--side-nav__link,:host(cds-side-nav-menu[large]) a.cds--side-nav__link{block-size:3rem}.cds--side-nav a.cds--header__menu-item .cds--text-truncate-end,a.cds--side-nav__link>.cds--side-nav__link-text{color:var(--cds-text-secondary,#525252);font-size:.875rem;letter-spacing:.1px;line-height:1.25rem;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.cds--side-nav a.cds--header__menu-item:focus,a.cds--side-nav__link:focus{outline:2px solid var(--cds-focus,#0f62fe);outline-offset:-2px}@media screen and (prefers-contrast){.cds--side-nav a.cds--header__menu-item:focus,a.cds--side-nav__link:focus{outline-style:dotted}}a.cds--side-nav__link--current,a.cds--side-nav__link[aria-current=page]{background-color:var(--cds-background-selected,hsla(0,0%,55%,.2));font-weight:600}a.cds--side-nav__link--current .cds--side-nav__link-text,a.cds--side-nav__link[aria-current=page] .cds--side-nav__link-text{color:var(--cds-text-primary,#161616)}a.cds--side-nav__link--current:before,a.cds--side-nav__link[aria-current=page]:before{background-color:var(--cds-border-interactive,#0f62fe);content:\"\";inline-size:3px;inset-block:0;inset-inline-start:0;position:absolute}.cds--side-nav__icon{align-items:center;display:flex;flex:0 0 1rem;justify-content:center}.cds--side-nav__icon:not(.cds--side-nav__submenu-chevron){margin-inline-end:1.5rem}.cds--side-nav__icon>svg{block-size:1rem;fill:var(--cds-icon-secondary,#525252);inline-size:1rem}.cds--side-nav--expanded .cds--side-nav__icon>svg.cds--side-nav-expand-icon,.cds--side-nav__icon>svg.cds--side-nav-collapse-icon{display:none}.cds--side-nav--expanded .cds--side-nav__icon>svg.cds--side-nav-collapse-icon{display:block}.cds--side-nav--fixed .cds--side-nav__submenu,.cds--side-nav--fixed a.cds--side-nav__link{padding-inline-start:1rem}.cds--side-nav--fixed .cds--side-nav__item:not(.cds--side-nav__item--icon) .cds--side-nav__menu a.cds--side-nav__link,.cds--side-nav--fixed :not(.cds--side-nav__item--icon):host(cds-side-nav-link) .cds--side-nav__menu a.cds--side-nav__link,.cds--side-nav--fixed :not(.cds--side-nav__item--icon):host(cds-side-nav-menu) .cds--side-nav__menu a.cds--side-nav__link{padding-inline-start:2rem}@media (max-width:65.98rem){.cds--side-nav .cds--header__nav{display:block}}.cds--side-nav__header-navigation,:host(cds-header-side-nav-items){border:0;box-sizing:border-box;font-family:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}.cds--side-nav__header-navigation *,.cds--side-nav__header-navigation :after,.cds--side-nav__header-navigation :before,:host(cds-header-side-nav-items) *,:host(cds-header-side-nav-items) :after,:host(cds-header-side-nav-items) :before{box-sizing:inherit}.cds--side-nav__header-navigation,:host(cds-header-side-nav-items){display:none}@media (max-width:65.98rem){.cds--side-nav__header-navigation,:host(cds-header-side-nav-items){display:block;margin-block-end:2rem;position:relative}}.cds--side-nav__header-divider:after{background:var(--cds-border-subtle);block-size:.0625rem;content:\"\";inline-size:calc(100% - 32px);inset-block-end:-1rem;inset-inline-start:1rem;position:absolute}.cds--side-nav a.cds--header__menu-item{color:var(--cds-text-secondary,#525252);justify-content:space-between;white-space:nowrap}.cds--side-nav a.cds--header__menu-item[aria-expanded=true]{background-color:transparent}.cds--side-nav .cds--header__menu-title[aria-expanded=true]+.cds--header__menu{background-color:transparent;box-shadow:none;inline-size:100%;inset-block-end:inherit;padding:0;transform:none}.cds--side-nav .cds--header__menu-title[aria-expanded=true]+.cds--header__menu li{inline-size:100%}.cds--side-nav .cds--header__menu-title[aria-expanded=true]+.cds--header__menu a.cds--header__menu-item{font-weight:400;padding-inline-start:4.25rem}.cds--side-nav .cds--header__menu-title[aria-expanded=true]+.cds--header__menu a.cds--header__menu-item:hover{background-color:var(--cds-background-hover,hsla(0,0%,55%,.12));color:var(--cds-text-primary,#161616)}.cds--side-nav .cds--header__menu-title[aria-expanded=true]+.cds--header__menu a.cds--header__menu-item--current:hover{background-color:var(--cds-layer-selected-hover)}.cds--side-nav .cds--side-nav__header-navigation .cds--header__menu-item--current:after,.cds--side-nav .cds--side-nav__header-navigation a.cds--header__menu-item[aria-current=page]:after,.cds--side-nav :host(cds-header-side-nav-items) .cds--header__menu-item--current:after,.cds--side-nav :host(cds-header-side-nav-items) a.cds--header__menu-item[aria-current=page]:after{block-size:calc(100% + 4px);inline-size:3px}.cds--side-nav .cds--header__menu a.cds--header__menu-item{block-size:inherit}.cds--side-nav .cds--header__menu-arrow,.cds--side-nav a.cds--header__menu-item:focus .cds--header__menu-arrow,.cds--side-nav a.cds--header__menu-item:hover .cds--header__menu-arrow{fill:var(--cds-icon-secondary,#525252)}:host(cds-side-nav[expanded]) ::slotted(cds-side-nav-items){overflow-y:auto}:host(cds-side-nav-link){block-size:auto;display:block;inline-size:auto;outline:none}:host(cds-side-nav-link) .cds--side-nav__icon{color:var(--cds-text-primary,#161616)}:host(cds-side-nav-link) .cds--side-nav__icon[hidden]{display:none}:host(cds-side-nav-divider){display:block}:host(cds-side-nav-menu){display:block}:host(cds-side-nav-menu) .cds--side-nav__icon[hidden]{display:none}:host(cds-side-nav-menu) .cds--side-nav__menu{margin:0;padding:0}:host(cds-side-nav-menu) .cds--side-nav__submenu[aria-expanded=true]+.cds--side-nav__menu{max-block-size:none}:host(cds-side-nav-menu[active]){color:var(--cds-text-primary,#161616);position:relative}:host(cds-side-nav-menu[active]):before{background-color:var(--cds-border-interactive,#0f62fe);content:\"\";inline-size:.25rem;inset-block:0;inset-inline-start:0;position:absolute}:host(cds-side-nav-menu[active][expanded]){background-color:inherit;color:inherit;position:inherit}:host(cds-side-nav-menu[active][expanded]):before{content:none}:host(cds-side-nav-menu-item){block-size:auto;display:block;inline-size:auto;outline:none}:host(cds-side-nav-menu-item) a.cds--side-nav__link{block-size:2rem;font-weight:400;min-block-size:2rem;padding-inline-start:2rem}:host(cds-side-nav-menu-item[parent-has-icon]) a.cds--side-nav__link{padding-inline-start:4.5rem}:host(cds-side-nav-item) .cds--side-nav__link:hover,:host(cds-side-nav-menu) .cds--side-nav__submenu:hover,:host(cds-side-nav-menu-item) .cds--side-nav__link:hover{background-color:var(--cds-background-hover,hsla(0,0%,55%,.12));color:var(--cds-text-primary,#161616)}"]);
|
|
10
|
+
var styles = css([".cds--layer-one,:root{--cds-layer:var(--cds-layer-01,#f4f4f4);--cds-layer-active:var(--cds-layer-active-01,#c6c6c6);--cds-layer-background:var(--cds-layer-background-01,#fff);--cds-layer-hover:var(--cds-layer-hover-01,#e8e8e8);--cds-layer-selected:var(--cds-layer-selected-01,#e0e0e0);--cds-layer-selected-hover:var(--cds-layer-selected-hover-01,#d1d1d1);--cds-layer-accent:var(--cds-layer-accent-01,#e0e0e0);--cds-layer-accent-hover:var(--cds-layer-accent-hover-01,#d1d1d1);--cds-layer-accent-active:var(--cds-layer-accent-active-01,#a8a8a8);--cds-field:var(--cds-field-01,#f4f4f4);--cds-field-hover:var(--cds-field-hover-01,#e8e8e8);--cds-border-subtle:var(--cds-border-subtle-00,#e0e0e0);--cds-border-subtle-selected:var(--cds-border-subtle-selected-01,#c6c6c6);--cds-border-strong:var(--cds-border-strong-01,#8d8d8d);--cds-border-tile:var(--cds-border-tile-01,#c6c6c6)}.cds--layer-two{--cds-layer:var(--cds-layer-02,#fff);--cds-layer-active:var(--cds-layer-active-02,#c6c6c6);--cds-layer-background:var(--cds-layer-background-02,#f4f4f4);--cds-layer-hover:var(--cds-layer-hover-02,#e8e8e8);--cds-layer-selected:var(--cds-layer-selected-02,#e0e0e0);--cds-layer-selected-hover:var(--cds-layer-selected-hover-02,#d1d1d1);--cds-layer-accent:var(--cds-layer-accent-02,#e0e0e0);--cds-layer-accent-hover:var(--cds-layer-accent-hover-02,#d1d1d1);--cds-layer-accent-active:var(--cds-layer-accent-active-02,#a8a8a8);--cds-field:var(--cds-field-02,#fff);--cds-field-hover:var(--cds-field-hover-02,#e8e8e8);--cds-border-subtle:var(--cds-border-subtle-01,#c6c6c6);--cds-border-subtle-selected:var(--cds-border-subtle-selected-02,#c6c6c6);--cds-border-strong:var(--cds-border-strong-02,#8d8d8d);--cds-border-tile:var(--cds-border-tile-02,#a8a8a8)}.cds--layer-three{--cds-layer:var(--cds-layer-03,#f4f4f4);--cds-layer-active:var(--cds-layer-active-03,#c6c6c6);--cds-layer-background:var(--cds-layer-background-03,#fff);--cds-layer-hover:var(--cds-layer-hover-03,#e8e8e8);--cds-layer-selected:var(--cds-layer-selected-03,#e0e0e0);--cds-layer-selected-hover:var(--cds-layer-selected-hover-03,#d1d1d1);--cds-layer-accent:var(--cds-layer-accent-03,#e0e0e0);--cds-layer-accent-hover:var(--cds-layer-accent-hover-03,#d1d1d1);--cds-layer-accent-active:var(--cds-layer-accent-active-03,#a8a8a8);--cds-field:var(--cds-field-03,#f4f4f4);--cds-field-hover:var(--cds-field-hover-03,#e8e8e8);--cds-border-subtle:var(--cds-border-subtle-02,#e0e0e0);--cds-border-subtle-selected:var(--cds-border-subtle-selected-03,#c6c6c6);--cds-border-strong:var(--cds-border-strong-03,#8d8d8d);--cds-border-tile:var(--cds-border-tile-03,#c6c6c6)}.cds--layer-one.cds--layer__with-background,.cds--layer-three.cds--layer__with-background,.cds--layer-two.cds--layer__with-background{background-color:var(--cds-layer-background)}.cds--side-nav{background-color:var(--cds-background,#fff);color:var(--cds-text-secondary,#525252);inline-size:3rem;inset-block:0;inset-inline-start:0;max-inline-size:16rem;overflow:hidden;position:fixed;transition:inline-size .11s cubic-bezier(.2,0,1,.9),transform .11s cubic-bezier(.2,0,1,.9);will-change:inline-size;z-index:8000}.cds--side-nav--ux{inline-size:16rem;inset-block-start:3rem}@media (max-width:65.98rem){.cds--side-nav--ux{inline-size:0}}.cds--side-nav--rail{inline-size:3rem}.cds--side-nav--hidden{inline-size:0}.cds--side-nav--expanded{inline-size:16rem}.cds--side-nav__overlay{background-color:transparent;block-size:0;inline-size:0;inset-block-start:3rem;inset-inline-start:0;opacity:0;position:fixed;transition:opacity .3s cubic-bezier(.5,0,.1,1),background-color .3s cubic-bezier(.5,0,.1,1)}@media (max-width:65.98rem){.cds--side-nav__overlay-active{background-color:var(--cds-overlay,rgba(0,0,0,.6));block-size:100vh;inline-size:100vw;opacity:1;transition:opacity .3s cubic-bezier(.5,0,.1,1),background-color .3s cubic-bezier(.5,0,.1,1);z-index:6000}}.cds--header~.cds--side-nav{block-size:calc(100% - 48px);inset-block-start:3rem}.cds--side-nav--fixed{inline-size:16rem}.cds--side-nav--collapsed{inline-size:16rem;transform:translateX(-16rem)}.cds--side-nav__navigation{display:flex;flex-direction:column}.cds--side-nav__items,:host(cds-side-nav-items){border:0;box-sizing:border-box;font-family:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}.cds--side-nav__items *,.cds--side-nav__items :after,.cds--side-nav__items :before,:host(cds-side-nav-items) *,:host(cds-side-nav-items) :after,:host(cds-side-nav-items) :before{box-sizing:inherit}.cds--side-nav__items,:host(cds-side-nav-items){flex:1 1 0%;overflow:hidden;padding:1rem 0 0}.cds--side-nav--expanded .cds--side-nav__items,.cds--side-nav--expanded :host(cds-side-nav-items),.cds--side-nav--fixed .cds--side-nav__items,.cds--side-nav--fixed :host(cds-side-nav-items),.cds--side-nav:hover .cds--side-nav__items,.cds--side-nav:hover :host(cds-side-nav-items){overflow-y:auto}.cds--side-nav--ux .cds--side-nav__items,.cds--side-nav--ux :host(cds-side-nav-items){overflow-y:auto}.cds--side-nav__item,:host(cds-side-nav-link),:host(cds-side-nav-menu){block-size:auto;inline-size:auto;overflow:hidden}.cds--side-nav--ux .cds--side-nav__item,.cds--side-nav--ux :host(cds-side-nav-link),.cds--side-nav--ux :host(cds-side-nav-menu){block-size:auto;inline-size:auto}.cds--side-nav .cds--header__menu-title[aria-expanded=true]:hover,.cds--side-nav a.cds--header__menu-item:hover,.cds--side-nav__item:not(.cds--side-nav__item--active):hover .cds--side-nav__item:not(.cds--side-nav__item--active)>.cds--side-nav__submenu:hover,.cds--side-nav__item:not(.cds--side-nav__item--active):hover :not(.cds--side-nav__item--active):host(cds-side-nav-link)>.cds--side-nav__submenu:hover,.cds--side-nav__item:not(.cds--side-nav__item--active):hover :not(.cds--side-nav__item--active):host(cds-side-nav-menu)>.cds--side-nav__submenu:hover,.cds--side-nav__item:not(.cds--side-nav__item--active)>.cds--side-nav__link:hover,.cds--side-nav__menu a.cds--side-nav__link:not(.cds--side-nav__link--current):not([aria-current=page]):hover,:not(.cds--side-nav__item--active):host(cds-side-nav-link)>.cds--side-nav__link:hover,:not(.cds--side-nav__item--active):host(cds-side-nav-menu)>.cds--side-nav__link:hover{background-color:var(--cds-background-hover,hsla(0,0%,55%,.12));color:var(--cds-text-primary,#161616)}.cds--side-nav__item:not(.cds--side-nav__item--active) .cds--side-nav__menu-item>.cds--side-nav__link:hover>span,.cds--side-nav__item:not(.cds--side-nav__item--active) :host(cds-side-nav-menu-item)>.cds--side-nav__link:hover>span,.cds--side-nav__item:not(.cds--side-nav__item--active)>.cds--side-nav__link:hover>span,:not(.cds--side-nav__item--active):host(cds-side-nav-link) .cds--side-nav__menu-item>.cds--side-nav__link:hover>span,:not(.cds--side-nav__item--active):host(cds-side-nav-link) :host(cds-side-nav-menu-item)>.cds--side-nav__link:hover>span,:not(.cds--side-nav__item--active):host(cds-side-nav-link)>.cds--side-nav__link:hover>span,:not(.cds--side-nav__item--active):host(cds-side-nav-menu) .cds--side-nav__menu-item>.cds--side-nav__link:hover>span,:not(.cds--side-nav__item--active):host(cds-side-nav-menu) :host(cds-side-nav-menu-item)>.cds--side-nav__link:hover>span,:not(.cds--side-nav__item--active):host(cds-side-nav-menu)>.cds--side-nav__link:hover>span{color:var(--cds-text-primary,#161616)}.cds--side-nav__item--large,:host(cds-side-nav-link[large]),:host(cds-side-nav-menu[large]){block-size:auto}.cds--side-nav__divider,:host(cds-side-nav-divider){background-color:var(--cds-border-subtle);block-size:1px;list-style-type:none;margin:.5rem 1rem}.cds--side-nav__divider hr,:host(cds-side-nav-divider) hr{border:none}.cds--side-nav__submenu{box-sizing:border-box;font-family:inherit;font-size:100%;margin:0;vertical-align:baseline}.cds--side-nav__submenu *,.cds--side-nav__submenu :after,.cds--side-nav__submenu :before{box-sizing:inherit}.cds--side-nav__submenu{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;cursor:pointer;display:inline-block;inline-size:100%;padding:0;text-align:start}.cds--side-nav__submenu::-moz-focus-inner{border:0}.cds--side-nav__submenu{align-items:center;block-size:2rem;color:var(--cds-text-secondary,#525252);display:flex;font-size:var(--cds-heading-compact-01-font-size,.875rem);font-weight:var(--cds-heading-compact-01-font-weight,600);letter-spacing:var(--cds-heading-compact-01-letter-spacing,.16px);line-height:var(--cds-heading-compact-01-line-height,1.28572);outline:2px solid transparent;outline-offset:-2px;padding:0 1rem;transition:color .11s,background-color .11s,outline .11s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cds--side-nav__submenu:hover{background-color:var(--cds-background-hover,hsla(0,0%,55%,.12));color:var(--cds-text-primary,#161616)}.cds--side-nav__submenu:focus{outline:2px solid var(--cds-focus,#0f62fe);outline-offset:-2px}@media screen and (prefers-contrast){.cds--side-nav__submenu:focus{outline-style:dotted}}.cds--side-nav__submenu-title{overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap}.cds--side-nav__icon.cds--side-nav__submenu-chevron{display:flex;flex:1;justify-content:flex-end}.cds--side-nav__submenu-chevron>svg{block-size:1rem;inline-size:1rem;transition:transform .11s}.cds--side-nav__submenu[aria-expanded=true] .cds--side-nav__submenu-chevron>svg{transform:rotate(180deg)}.cds--side-nav__item--large .cds--side-nav__submenu,:host(cds-side-nav-link[large]) .cds--side-nav__submenu,:host(cds-side-nav-menu[large]) .cds--side-nav__submenu{block-size:3rem}.cds--side-nav__item--active .cds--side-nav__submenu:hover,:host(cds-side-nav-menu[active]) .cds--side-nav__submenu:hover{background-color:var(--cds-background-selected,hsla(0,0%,55%,.2));color:var(--cds-text-primary,#161616)}.cds--side-nav__item--active .cds--side-nav__submenu[aria-expanded=false],:host(cds-side-nav-menu[active]) .cds--side-nav__submenu[aria-expanded=false]{background-color:var(--cds-background-selected,hsla(0,0%,55%,.2));color:var(--cds-text-primary,#161616);position:relative}.cds--side-nav__item--active .cds--side-nav__submenu[aria-expanded=false]:before,:host(cds-side-nav-menu[active]) .cds--side-nav__submenu[aria-expanded=false]:before{background-color:var(--cds-border-interactive,#0f62fe);content:\"\";inline-size:3px;inset-block:0;inset-inline-start:0;position:absolute}.cds--side-nav__item--active .cds--side-nav__submenu-title,:host(cds-side-nav-menu[active]) .cds--side-nav__submenu-title{color:var(--cds-text-primary,#161616);font-weight:600}.cds--side-nav__item--active .cds--side-nav__icon>svg,:host(cds-side-nav-menu[active]) .cds--side-nav__icon>svg{fill:var(--cds-icon-primary,#161616)}.cds--side-nav__menu{border:0;box-sizing:border-box;font-family:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}.cds--side-nav__menu *,.cds--side-nav__menu :after,.cds--side-nav__menu :before{box-sizing:inherit}.cds--side-nav__menu{display:block;max-block-size:0;visibility:hidden}.cds--side-nav__submenu[aria-expanded=true]+.cds--side-nav__menu{max-block-size:93.75rem;visibility:inherit}.cds--side-nav__menu a.cds--side-nav__link{block-size:2rem;font-weight:400;min-block-size:2rem;padding-inline-start:2rem}.cds--side-nav__item.cds--side-nav__item--icon a.cds--side-nav__link,:host(cds-side-nav-menu):host(cds-side-nav-menu[has-icon]) a.cds--side-nav__link{padding-inline-start:4.5rem}.cds--side-nav__menu a.cds--side-nav__link--current,.cds--side-nav__menu a.cds--side-nav__link[aria-current=page],a.cds--side-nav__link--current{background-color:var(--cds-background-selected,hsla(0,0%,55%,.2))}.cds--side-nav__menu a.cds--side-nav__link--current>span,.cds--side-nav__menu a.cds--side-nav__link[aria-current=page]>span,a.cds--side-nav__link--current>span{color:var(--cds-text-primary,#161616);font-weight:600}.cds--side-nav .cds--header__menu-title[aria-expanded=true]+.cds--header__menu,.cds--side-nav a.cds--header__menu-item,a.cds--side-nav__link{align-items:center;display:flex;font-size:var(--cds-heading-compact-01-font-size,.875rem);font-weight:var(--cds-heading-compact-01-font-weight,600);letter-spacing:var(--cds-heading-compact-01-letter-spacing,.16px);line-height:var(--cds-heading-compact-01-line-height,1.28572);min-block-size:2rem;outline:2px solid transparent;outline-offset:-2px;padding:0 1rem;position:relative;text-decoration:none;transition:color .11s,background-color .11s,outline .11s}.cds--side-nav__item--large a.cds--side-nav__link,:host(cds-side-nav-link[large]) a.cds--side-nav__link,:host(cds-side-nav-menu[large]) a.cds--side-nav__link{block-size:3rem}.cds--side-nav a.cds--header__menu-item .cds--text-truncate-end,a.cds--side-nav__link>.cds--side-nav__link-text{color:var(--cds-text-secondary,#525252);font-size:.875rem;letter-spacing:.1px;line-height:1.25rem;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.cds--side-nav a.cds--header__menu-item:focus,a.cds--side-nav__link:focus{outline:2px solid var(--cds-focus,#0f62fe);outline-offset:-2px}@media screen and (prefers-contrast){.cds--side-nav a.cds--header__menu-item:focus,a.cds--side-nav__link:focus{outline-style:dotted}}a.cds--side-nav__link--current,a.cds--side-nav__link[aria-current=page]{background-color:var(--cds-background-selected,hsla(0,0%,55%,.2));font-weight:600}a.cds--side-nav__link--current .cds--side-nav__link-text,a.cds--side-nav__link[aria-current=page] .cds--side-nav__link-text{color:var(--cds-text-primary,#161616)}a.cds--side-nav__link--current:before,a.cds--side-nav__link[aria-current=page]:before{background-color:var(--cds-border-interactive,#0f62fe);content:\"\";inline-size:3px;inset-block:0;inset-inline-start:0;position:absolute}.cds--side-nav__icon{align-items:center;display:flex;flex:0 0 1rem;justify-content:center}.cds--side-nav__icon:not(.cds--side-nav__submenu-chevron){margin-inline-end:1.5rem}.cds--side-nav__icon>svg{block-size:1rem;fill:var(--cds-icon-secondary,#525252);inline-size:1rem}.cds--side-nav--expanded .cds--side-nav__icon>svg.cds--side-nav-expand-icon,.cds--side-nav__icon>svg.cds--side-nav-collapse-icon{display:none}.cds--side-nav--expanded .cds--side-nav__icon>svg.cds--side-nav-collapse-icon{display:block}.cds--side-nav--fixed .cds--side-nav__submenu,.cds--side-nav--fixed a.cds--side-nav__link{padding-inline-start:1rem}.cds--side-nav--fixed .cds--side-nav__item:not(.cds--side-nav__item--icon) .cds--side-nav__menu a.cds--side-nav__link,.cds--side-nav--fixed :not(.cds--side-nav__item--icon):host(cds-side-nav-link) .cds--side-nav__menu a.cds--side-nav__link,.cds--side-nav--fixed :not(.cds--side-nav__item--icon):host(cds-side-nav-menu) .cds--side-nav__menu a.cds--side-nav__link{padding-inline-start:2rem}@media (max-width:65.98rem){.cds--side-nav .cds--header__nav{display:block}}.cds--side-nav__header-navigation,:host(cds-header-side-nav-items){border:0;box-sizing:border-box;font-family:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}.cds--side-nav__header-navigation *,.cds--side-nav__header-navigation :after,.cds--side-nav__header-navigation :before,:host(cds-header-side-nav-items) *,:host(cds-header-side-nav-items) :after,:host(cds-header-side-nav-items) :before{box-sizing:inherit}.cds--side-nav__header-navigation,:host(cds-header-side-nav-items){display:none}@media (max-width:65.98rem){.cds--side-nav__header-navigation,:host(cds-header-side-nav-items){display:block;margin-block-end:2rem;position:relative}}.cds--side-nav__header-divider:after{background:var(--cds-border-subtle);block-size:.0625rem;content:\"\";inline-size:calc(100% - 32px);inset-block-end:-1rem;inset-inline-start:1rem;position:absolute}.cds--side-nav a.cds--header__menu-item{color:var(--cds-text-secondary,#525252);justify-content:space-between;white-space:nowrap}.cds--side-nav a.cds--header__menu-item[aria-expanded=true]{background-color:transparent}.cds--side-nav .cds--header__menu-title[aria-expanded=true]+.cds--header__menu{background-color:transparent;box-shadow:none;inline-size:100%;inset-block-end:inherit;padding:0;transform:none}.cds--side-nav .cds--header__menu-title[aria-expanded=true]+.cds--header__menu li{inline-size:100%}.cds--side-nav .cds--header__menu-title[aria-expanded=true]+.cds--header__menu a.cds--header__menu-item{font-weight:400;padding-inline-start:4.25rem}.cds--side-nav .cds--header__menu-title[aria-expanded=true]+.cds--header__menu a.cds--header__menu-item:hover{background-color:var(--cds-background-hover,hsla(0,0%,55%,.12));color:var(--cds-text-primary,#161616)}.cds--side-nav .cds--header__menu-title[aria-expanded=true]+.cds--header__menu a.cds--header__menu-item--current:hover{background-color:var(--cds-layer-selected-hover)}.cds--side-nav .cds--side-nav__header-navigation .cds--header__menu-item--current:after,.cds--side-nav .cds--side-nav__header-navigation a.cds--header__menu-item[aria-current=page]:after,.cds--side-nav :host(cds-header-side-nav-items) .cds--header__menu-item--current:after,.cds--side-nav :host(cds-header-side-nav-items) a.cds--header__menu-item[aria-current=page]:after{block-size:calc(100% + 4px);inline-size:3px}.cds--side-nav .cds--header__menu a.cds--header__menu-item{block-size:inherit}.cds--side-nav .cds--header__menu-arrow,.cds--side-nav a.cds--header__menu-item:focus .cds--header__menu-arrow,.cds--side-nav a.cds--header__menu-item:hover .cds--header__menu-arrow{fill:var(--cds-icon-secondary,#525252)}:host(cds-side-nav[expanded]) ::slotted(cds-side-nav-items){overflow-y:auto}:host(cds-side-nav-link){block-size:auto;display:block;inline-size:auto;outline:none}:host(cds-side-nav-link) .cds--side-nav__icon{color:var(--cds-text-primary,#161616)}:host(cds-side-nav-link) .cds--side-nav__icon[hidden]{display:none}:host(cds-side-nav-divider){display:block}:host(cds-side-nav-menu){display:block}:host(cds-side-nav-menu) .cds--side-nav__icon[hidden]{display:none}:host(cds-side-nav-menu) .cds--side-nav__menu{margin:0;padding:0}:host(cds-side-nav-menu) .cds--side-nav__submenu[aria-expanded=true]+.cds--side-nav__menu{max-block-size:none}:host(cds-side-nav-menu[active]){color:var(--cds-text-primary,#161616);position:relative}:host(cds-side-nav-menu[active]):before{background-color:var(--cds-border-interactive,#0f62fe);content:\"\";inline-size:.25rem;inset-block:0;inset-inline-start:0;position:absolute}:host(cds-side-nav-menu[active][expanded]){background-color:inherit;color:inherit;position:inherit}:host(cds-side-nav-menu[active][expanded]):before{content:none}:host(cds-side-nav-menu-item){block-size:auto;display:block;inline-size:auto;outline:none}:host(cds-side-nav-menu-item) a.cds--side-nav__link{block-size:2rem;font-weight:400;min-block-size:2rem;padding-inline-start:2rem}:host(cds-side-nav-menu-item[parent-has-icon]) a.cds--side-nav__link{padding-inline-start:4.5rem}:host(cds-side-nav-item) .cds--side-nav__link:hover,:host(cds-side-nav-menu) .cds--side-nav__submenu:hover,:host(cds-side-nav-menu-item) .cds--side-nav__link:hover{background-color:var(--cds-background-hover,hsla(0,0%,55%,.12));color:var(--cds-text-primary,#161616)}"]);
|
|
11
11
|
|
|
12
12
|
export { styles as default };
|
|
13
13
|
//# sourceMappingURL=side-nav.scss.js.map
|
|
@@ -57,10 +57,12 @@ declare class CDSComboBox extends CDSDropdown {
|
|
|
57
57
|
* @returns `true` if the given combo box item matches the given query text.
|
|
58
58
|
*/
|
|
59
59
|
protected _defaultItemMatches(item: CDSComboBoxItem, queryText: string): boolean;
|
|
60
|
+
connectedCallback(): void;
|
|
60
61
|
/**
|
|
61
62
|
* Handles `input` event on the `<input>` for filtering.
|
|
62
63
|
*/
|
|
63
|
-
protected _handleInput(): void;
|
|
64
|
+
protected _handleInput(event: InputEvent): void;
|
|
65
|
+
protected _removeAutoCompleteSuggestion(): void;
|
|
64
66
|
protected _filterItems(items: NodeListOf<Element>, queryText: string, rawQueryText: string): number;
|
|
65
67
|
protected _scrollItemIntoView(item: HTMLElement): void;
|
|
66
68
|
protected _handleInputKeydown(event: KeyboardEvent): void;
|
|
@@ -87,9 +89,14 @@ declare class CDSComboBox extends CDSDropdown {
|
|
|
87
89
|
*/
|
|
88
90
|
itemMatches: (item: CDSComboBoxItem, queryText: string) => boolean;
|
|
89
91
|
/**
|
|
90
|
-
* Provide custom filtering behavior.
|
|
92
|
+
* Provide custom filtering behavior. This attribute will be ignored if
|
|
93
|
+
* `typeahead` is enabled and will default to `true`
|
|
91
94
|
*/
|
|
92
95
|
shouldFilterItem: boolean | ShouldFilterItem;
|
|
96
|
+
/**
|
|
97
|
+
* **Experimental**: will enable autocomplete and typeahead for the input field
|
|
98
|
+
*/
|
|
99
|
+
typeahead: boolean;
|
|
93
100
|
shouldUpdate(changedProperties: any): boolean;
|
|
94
101
|
updated(changedProperties: any): void;
|
|
95
102
|
protected _resetFilteredItems(): void;
|
|
@@ -57,9 +57,14 @@ let CDSComboBox = class CDSComboBox extends CDSDropdown {
|
|
|
57
57
|
*/
|
|
58
58
|
this.inputLabel = '';
|
|
59
59
|
/**
|
|
60
|
-
* Provide custom filtering behavior.
|
|
60
|
+
* Provide custom filtering behavior. This attribute will be ignored if
|
|
61
|
+
* `typeahead` is enabled and will default to `true`
|
|
61
62
|
*/
|
|
62
63
|
this.shouldFilterItem = false;
|
|
64
|
+
/**
|
|
65
|
+
* **Experimental**: will enable autocomplete and typeahead for the input field
|
|
66
|
+
*/
|
|
67
|
+
this.typeahead = false;
|
|
63
68
|
}
|
|
64
69
|
/**
|
|
65
70
|
* @param item A combo box item.
|
|
@@ -80,10 +85,18 @@ let CDSComboBox = class CDSComboBox extends CDSDropdown {
|
|
|
80
85
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
81
86
|
item.textContent.toLowerCase().indexOf(queryText.toLowerCase()) >= 0);
|
|
82
87
|
}
|
|
88
|
+
connectedCallback() {
|
|
89
|
+
super.connectedCallback();
|
|
90
|
+
if (this.typeahead) {
|
|
91
|
+
this.shouldFilterItem = true;
|
|
92
|
+
this.setAttribute('should-filter-item', '');
|
|
93
|
+
}
|
|
94
|
+
}
|
|
83
95
|
/**
|
|
84
96
|
* Handles `input` event on the `<input>` for filtering.
|
|
85
97
|
*/
|
|
86
|
-
_handleInput() {
|
|
98
|
+
_handleInput(event) {
|
|
99
|
+
var _a, _b, _c;
|
|
87
100
|
const rawQueryText = this._filterInputNode.value;
|
|
88
101
|
const queryText = rawQueryText.trim().toLowerCase();
|
|
89
102
|
if (rawQueryText.length !== 0) {
|
|
@@ -99,11 +112,36 @@ let CDSComboBox = class CDSComboBox extends CDSDropdown {
|
|
|
99
112
|
if (highlightedItem) {
|
|
100
113
|
this._scrollItemIntoView(highlightedItem);
|
|
101
114
|
}
|
|
115
|
+
if (this.typeahead && ((_a = event === null || event === void 0 ? void 0 : event.inputType) === null || _a === void 0 ? void 0 : _a.startsWith('insert'))) {
|
|
116
|
+
const suggestedItem = (_c = (_b = highlightedItem.textContent) === null || _b === void 0 ? void 0 : _b.trim()) !== null && _c !== void 0 ? _c : '';
|
|
117
|
+
if (suggestedItem.toLowerCase().startsWith(rawQueryText.toLowerCase()) &&
|
|
118
|
+
suggestedItem.length > rawQueryText.length) {
|
|
119
|
+
const suggestionText = rawQueryText + suggestedItem.slice(rawQueryText.length);
|
|
120
|
+
this._filterInputNode.value = suggestionText;
|
|
121
|
+
this._filterInputNode.setSelectionRange(rawQueryText.length, suggestionText.length);
|
|
122
|
+
this._filterInputValue = suggestionText;
|
|
123
|
+
this.open = true;
|
|
124
|
+
this.requestUpdate();
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
102
128
|
}
|
|
103
129
|
this._filterInputValue = rawQueryText;
|
|
104
130
|
this.open = true;
|
|
105
131
|
this.requestUpdate();
|
|
106
132
|
}
|
|
133
|
+
// removes the autocomplete suggestion
|
|
134
|
+
_removeAutoCompleteSuggestion() {
|
|
135
|
+
if (!this._filterInputNode)
|
|
136
|
+
return;
|
|
137
|
+
const { selectionStart, selectionEnd, value } = this._filterInputNode;
|
|
138
|
+
if (selectionStart && selectionEnd && selectionEnd > selectionStart) {
|
|
139
|
+
const cleanInput = value.slice(0, selectionStart);
|
|
140
|
+
this._filterInputNode.value = cleanInput;
|
|
141
|
+
this._filterInputNode.setSelectionRange(cleanInput.length, cleanInput.length);
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
107
145
|
// Applies filtering/highlighting to all slotted items.
|
|
108
146
|
_filterItems(items, queryText, rawQueryText) {
|
|
109
147
|
let firstMatchIndex = -1;
|
|
@@ -116,9 +154,9 @@ let CDSComboBox = class CDSComboBox extends CDSDropdown {
|
|
|
116
154
|
comboItem.highlighted = false;
|
|
117
155
|
return;
|
|
118
156
|
}
|
|
119
|
-
const matches =
|
|
120
|
-
.toLowerCase()
|
|
121
|
-
.includes(queryText);
|
|
157
|
+
const matches = this.typeahead
|
|
158
|
+
? (comboItem.textContent || '').toLowerCase().startsWith(queryText)
|
|
159
|
+
: (comboItem.textContent || '').toLowerCase().includes(queryText);
|
|
122
160
|
const filterFunction = typeof this.shouldFilterItem === 'function'
|
|
123
161
|
? this.shouldFilterItem
|
|
124
162
|
: null;
|
|
@@ -169,6 +207,11 @@ let CDSComboBox = class CDSComboBox extends CDSDropdown {
|
|
|
169
207
|
}
|
|
170
208
|
// Clear the query and selection when Escape is pressed.
|
|
171
209
|
_handleInputKeydown(event) {
|
|
210
|
+
// remove the autocomplete suggestion when navigating away from the suggested item
|
|
211
|
+
if (this.typeahead &&
|
|
212
|
+
(event.key === 'ArrowDown' || event.key === 'ArrowUp')) {
|
|
213
|
+
this._removeAutoCompleteSuggestion();
|
|
214
|
+
}
|
|
172
215
|
if (event.key !== 'Escape') {
|
|
173
216
|
return;
|
|
174
217
|
}
|
|
@@ -234,6 +277,7 @@ let CDSComboBox = class CDSComboBox extends CDSDropdown {
|
|
|
234
277
|
super._handleUserInitiatedSelectItem(item);
|
|
235
278
|
}
|
|
236
279
|
_selectionDidChange(itemToSelect) {
|
|
280
|
+
var _a, _b;
|
|
237
281
|
this.value = !itemToSelect ? '' : itemToSelect.value;
|
|
238
282
|
forEach(this.querySelectorAll(this.constructor.selectorItemSelected), (item) => {
|
|
239
283
|
item.selected = false;
|
|
@@ -244,6 +288,11 @@ let CDSComboBox = class CDSComboBox extends CDSDropdown {
|
|
|
244
288
|
itemToSelect.setAttribute('aria-selected', 'true');
|
|
245
289
|
}
|
|
246
290
|
this._handleUserInitiatedToggle(false);
|
|
291
|
+
if (this.typeahead && this._filterInputNode) {
|
|
292
|
+
this._filterInputValue = (_b = (_a = itemToSelect === null || itemToSelect === void 0 ? void 0 : itemToSelect.textContent) === null || _a === void 0 ? void 0 : _a.trim()) !== null && _b !== void 0 ? _b : '';
|
|
293
|
+
const length = this._filterInputValue.length;
|
|
294
|
+
this._filterInputNode.setSelectionRange(length, length);
|
|
295
|
+
}
|
|
247
296
|
}
|
|
248
297
|
_renderLabel() {
|
|
249
298
|
var _a;
|
|
@@ -311,10 +360,15 @@ let CDSComboBox = class CDSComboBox extends CDSDropdown {
|
|
|
311
360
|
super.updated(changedProperties);
|
|
312
361
|
if (changedProperties.has('open')) {
|
|
313
362
|
if (this.open && this._filterInputNode) {
|
|
314
|
-
this._handleInput();
|
|
363
|
+
this._handleInput(changedProperties);
|
|
315
364
|
}
|
|
316
365
|
else if (!this.open) {
|
|
366
|
+
// remove the autocomplete suggestion when closing the combobox
|
|
367
|
+
this._removeAutoCompleteSuggestion();
|
|
317
368
|
this._resetFilteredItems();
|
|
369
|
+
if (this._filterInputNode.value == '') {
|
|
370
|
+
this.value = '';
|
|
371
|
+
}
|
|
318
372
|
}
|
|
319
373
|
}
|
|
320
374
|
const { _listBoxNode: listBoxNode } = this;
|
|
@@ -405,6 +459,9 @@ __decorate([
|
|
|
405
459
|
},
|
|
406
460
|
})
|
|
407
461
|
], CDSComboBox.prototype, "shouldFilterItem", void 0);
|
|
462
|
+
__decorate([
|
|
463
|
+
property({ type: Boolean })
|
|
464
|
+
], CDSComboBox.prototype, "typeahead", void 0);
|
|
408
465
|
CDSComboBox = __decorate([
|
|
409
466
|
carbonElement(`${prefix}-combo-box`)
|
|
410
467
|
], CDSComboBox);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combo-box.js","sources":["../../../src/components/combo-box/combo-box.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit/directives/class-map.js';\nimport { TemplateResult, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport Close16 from '@carbon/icons/es/close/16.js';\nimport { forEach } from '../../globals/internal/collection-helpers';\nimport CDSDropdown, { DROPDOWN_KEYBOARD_ACTION } from '../dropdown/dropdown';\nimport CDSComboBoxItem from './combo-box-item';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport styles from './combo-box.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\n\nexport { DROPDOWN_DIRECTION, DROPDOWN_SIZE } from '../dropdown/dropdown';\n\ntype ShouldFilterItem = (input: {\n item: CDSComboBoxItem;\n itemToString: (item: CDSComboBoxItem) => string;\n inputValue: string | null;\n}) => boolean;\n\n/**\n * Combo box.\n *\n * @element cds-custom-combo-box\n * @fires cds-custom-combo-box-beingselected\n * The custom event fired before a combo box item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires cds-custom-combo-box-beingtoggled\n * The custom event fired before the open state of this combo box is toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated toggling.\n * @fires cds-custom-combo-box-selected - The custom event fired after a combo box item is selected upon a user gesture.\n * @fires cds-custom-combo-box-toggled - The custom event fired after the open state of this combo box is toggled upon a user gesture.\n */\n@customElement(`${prefix}-combo-box`)\nclass CDSComboBox extends CDSDropdown {\n /**\n * The text content that should be set to the `<input>` for filtering.\n */\n protected _filterInputValue = '';\n\n protected _shouldTriggerBeFocusable = false;\n\n /**\n * The `<input>` for filtering.\n */\n @query('input')\n private _filterInputNode!: HTMLInputElement;\n\n /**\n * The menu containing all selectable items.\n */\n @query('#menu-body')\n private _itemMenu!: HTMLElement;\n\n /**\n * The selection button.\n */\n @query('#selection-button')\n private _selectionButtonNode!: HTMLElement;\n\n /**\n * @param item A combo box item.\n * @returns `true` if the given combo box item matches the query text user types.\n */\n protected _testItemWithQueryText(item) {\n return (this.itemMatches || this._defaultItemMatches)(\n item,\n this._filterInputNode.value\n );\n }\n\n /**\n * The default item matching callback.\n *\n * @param item The combo box item.\n * @param queryText The query text user types.\n * @returns `true` if the given combo box item matches the given query text.\n */\n protected _defaultItemMatches(\n item: CDSComboBoxItem,\n queryText: string\n ): boolean {\n return (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n item.textContent!.toLowerCase().indexOf(queryText.toLowerCase()) >= 0\n );\n }\n\n /**\n * Handles `input` event on the `<input>` for filtering.\n */\n protected _handleInput() {\n const rawQueryText = this._filterInputNode.value;\n const queryText = rawQueryText.trim().toLowerCase();\n\n if (rawQueryText.length !== 0) {\n this.setAttribute('isClosable', '');\n } else {\n this.removeAttribute('isClosable');\n }\n\n const items = this.querySelectorAll(\n (this.constructor as typeof CDSComboBox).selectorItem\n );\n\n const firstMatchIndex = this._filterItems(items, queryText, rawQueryText);\n if (firstMatchIndex !== -1) {\n const highlightedItem = items[firstMatchIndex];\n if (highlightedItem) {\n this._scrollItemIntoView(highlightedItem as HTMLElement);\n }\n }\n\n this._filterInputValue = rawQueryText;\n this.open = true;\n this.requestUpdate();\n }\n\n // Applies filtering/highlighting to all slotted items.\n protected _filterItems(\n items: NodeListOf<Element>,\n queryText: string,\n rawQueryText: string\n ): number {\n let firstMatchIndex = -1;\n const hasQuery = Boolean(queryText);\n forEach(items, (item, i) => {\n const comboItem = item as CDSComboBoxItem;\n const index = i ?? -1;\n if (!hasQuery) {\n (comboItem as HTMLElement).style.display = '';\n comboItem.highlighted = false;\n return;\n }\n const matches = (comboItem.textContent || '')\n .toLowerCase()\n .includes(queryText);\n const filterFunction =\n typeof this.shouldFilterItem === 'function'\n ? this.shouldFilterItem\n : null;\n const shouldApplyBuiltInFilter =\n filterFunction === null && hasQuery && this.shouldFilterItem === true;\n const itemToString = (value: CDSComboBoxItem) => value.textContent || '';\n const filterInputValue = rawQueryText.length === 0 ? null : rawQueryText;\n const passesFilter = filterFunction\n ? filterFunction({\n item: comboItem,\n itemToString,\n inputValue: filterInputValue,\n })\n : shouldApplyBuiltInFilter\n ? matches\n : true;\n const highlightMatch = filterFunction !== null ? passesFilter : matches;\n if (highlightMatch && firstMatchIndex === -1) {\n firstMatchIndex = index;\n }\n if (filterFunction || shouldApplyBuiltInFilter) {\n (comboItem as HTMLElement).style.display = passesFilter ? '' : 'none';\n } else {\n (comboItem as HTMLElement).style.display = '';\n }\n comboItem.highlighted = index === firstMatchIndex;\n });\n return firstMatchIndex;\n }\n\n protected _scrollItemIntoView(item: HTMLElement) {\n if (!this._itemMenu) {\n return;\n }\n const menuRect = this._itemMenu.getBoundingClientRect();\n const itemRect = item.getBoundingClientRect();\n if (!menuRect || !itemRect) {\n return;\n }\n const menuBottom = menuRect.top + this._itemMenu.clientHeight;\n const isWithinViewport =\n menuRect.top <= itemRect.top && itemRect.bottom <= menuBottom;\n if (isWithinViewport) {\n return;\n }\n const scrollTop = itemRect.top - menuRect.top;\n const scrollBottom = itemRect.bottom - menuRect.bottom;\n this._itemMenu.scrollTop +=\n Math.abs(scrollTop) < Math.abs(scrollBottom) ? scrollTop : scrollBottom;\n }\n\n // Clear the query and selection when Escape is pressed.\n protected _handleInputKeydown(event: KeyboardEvent) {\n if (event.key !== 'Escape') {\n return;\n }\n if (!this._filterInputNode) {\n return;\n }\n if (this._filterInputNode.value || this.value) {\n this._handleUserInitiatedClearInput();\n }\n }\n\n protected _handleClickInner(event: MouseEvent) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n const { target } = event as any;\n if (this._selectionButtonNode?.contains(target)) {\n this._handleUserInitiatedClearInput();\n } else {\n super._handleClickInner(event);\n }\n }\n\n protected _handleKeypressInner(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof CDSDropdown).getAction(key);\n const { TRIGGERING } = DROPDOWN_KEYBOARD_ACTION;\n if (\n this._selectionButtonNode?.contains(event.target as Node) &&\n // Space key should be handled by `<input>` unless \"clear selection\" button has focus\n (action === TRIGGERING || key === ' ')\n ) {\n this._handleUserInitiatedClearInput();\n } else {\n super._handleKeypressInner(event);\n }\n }\n\n /**\n * Handles user-initiated clearing the `<input>` for filtering.\n */\n protected _handleUserInitiatedClearInput() {\n this._resetFilteredItems();\n this._filterInputValue = '';\n if (this._filterInputNode) {\n this._filterInputNode.value = '';\n this._filterInputNode.focus();\n }\n\n this._handleUserInitiatedSelectItem();\n this.requestUpdate();\n }\n\n protected _handleUserInitiatedSelectItem(item?: CDSComboBoxItem) {\n if (item && !this._selectionShouldChange(item)) {\n // Escape hatch for `shouldUpdate()` logic that updates `._filterInputValue()` when selection changes,\n // given we want to update the `<input>` and close the dropdown even if selection doesn't update.\n // Use case:\n // 1. Select the 2nd item in combo box drop down\n // 2. Type some text in the `<input>`\n // 3. Re-select the 2nd item in combo box drop down,\n // the `<input>` has to updated with the 2nd item and the dropdown should be closed,\n // even if there is no change in the selected value\n this._filterInputValue = item.textContent || '';\n this.open = false;\n this.requestUpdate();\n }\n super._handleUserInitiatedSelectItem(item);\n }\n\n protected _selectionDidChange(itemToSelect?: CDSComboBoxItem) {\n this.value = !itemToSelect ? '' : itemToSelect.value;\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSDropdown).selectorItemSelected\n ),\n (item) => {\n (item as CDSComboBoxItem).selected = false;\n item.setAttribute('aria-selected', 'false');\n }\n );\n if (itemToSelect) {\n itemToSelect.selected = true;\n itemToSelect.setAttribute('aria-selected', 'true');\n }\n this._handleUserInitiatedToggle(false);\n }\n\n protected _renderLabel(): TemplateResult {\n const {\n disabled,\n inputLabel,\n label,\n open,\n readOnly,\n value,\n _activeDescendant: activeDescendant,\n _filterInputValue: filterInputValue,\n _handleInput: handleInput,\n _handleInputKeydown: handleInputKeydown,\n } = this;\n\n const inputClasses = classMap({\n [`${prefix}--text-input`]: true,\n [`${prefix}--text-input--empty`]: !value,\n });\n\n let activeDescendantFallback: string | undefined;\n if (open && !activeDescendant) {\n const constructor = this.constructor as typeof CDSDropdown;\n const items = this.querySelectorAll(constructor.selectorItem);\n activeDescendantFallback = items[0]?.id;\n }\n\n return html`\n <input\n id=\"trigger-button\"\n class=\"${inputClasses}\"\n ?disabled=${disabled}\n placeholder=\"${label}\"\n .value=${filterInputValue}\n role=\"combobox\"\n aria-label=\"${ifNonEmpty(inputLabel)}\"\n aria-controls=\"menu-body\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n aria-expanded=\"${String(open)}\"\n aria-activedescendant=\"${ifDefined(\n open ? (activeDescendant ?? activeDescendantFallback) : ''\n )}\"\n ?readonly=${readOnly}\n @input=${handleInput}\n @keydown=${handleInputKeydown} />\n `;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-invalid-void-type -- https://github.com/carbon-design-system/carbon/issues/20452\n protected _renderFollowingLabel(): TemplateResult | void {\n const { clearSelectionLabel, _filterInputValue: filterInputValue } = this;\n\n if (filterInputValue.length != 0) {\n this.setAttribute('isClosable', '');\n } else {\n this.removeAttribute('isClosable');\n }\n\n return filterInputValue.length === 0\n ? undefined\n : html`\n <div\n id=\"selection-button\"\n role=\"button\"\n class=\"${prefix}--list-box__selection\"\n tabindex=\"0\"\n title=\"${clearSelectionLabel}\">\n ${iconLoader(Close16, { 'aria-label': clearSelectionLabel })}\n </div>\n `;\n }\n\n /**\n * The `aria-label` attribute for the icon to clear selection.\n */\n @property({ attribute: 'clear-selection-label' })\n clearSelectionLabel = 'Clear selection';\n\n /**\n * The `aria-label` attribute for the `<input>` for filtering.\n */\n @property({ attribute: 'input-label' })\n inputLabel = '';\n\n /**\n * The custom item matching callback.\n */\n @property({ attribute: false })\n itemMatches!: (item: CDSComboBoxItem, queryText: string) => boolean;\n\n /**\n * Provide custom filtering behavior.\n */\n @property({\n attribute: 'should-filter-item',\n converter: {\n fromAttribute: (value) => value !== null,\n },\n })\n shouldFilterItem: boolean | ShouldFilterItem = false;\n\n shouldUpdate(changedProperties) {\n super.shouldUpdate(changedProperties);\n const { _selectedItemContent: selectedItemContent } = this;\n if (selectedItemContent && changedProperties.has('value')) {\n this._filterInputValue = selectedItemContent?.textContent || '';\n }\n return true;\n }\n\n updated(changedProperties) {\n super.updated(changedProperties);\n if (changedProperties.has('open')) {\n if (this.open && this._filterInputNode) {\n this._handleInput();\n } else if (!this.open) {\n this._resetFilteredItems();\n }\n }\n const { _listBoxNode: listBoxNode } = this;\n if (listBoxNode) {\n listBoxNode.classList.add(`${prefix}--combo-box`);\n }\n }\n\n // Restores the full list when the query is cleared or the menu closes.\n protected _resetFilteredItems() {\n const items = this.querySelectorAll(\n (this.constructor as typeof CDSComboBox).selectorItem\n );\n forEach(items, (item) => {\n const comboItem = item as CDSComboBoxItem;\n (comboItem as HTMLElement).style.display = '';\n comboItem.highlighted = false;\n });\n }\n\n // For combo box, open/selection with space key is disabled given the input box should take it over\n static TRIGGER_KEYS = new Set(['Enter']);\n\n /**\n * A selector that will return highlighted items.\n */\n static get selectorItemHighlighted() {\n return `${prefix}-combo-box-item[highlighted]`;\n }\n\n /**\n * A selector that will return combo box items.\n */\n static get selectorItem() {\n return `${prefix}-combo-box-item`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-combo-box-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before this combo box item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this combo box item.\n */\n static get eventBeforeToggle() {\n return `${prefix}-combo-box-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after this combo box item is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-combo-box-toggled`;\n }\n\n /**\n * The name of the custom event fired before a combo box item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n */\n static get eventBeforeSelect() {\n return `${prefix}-combo-box-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a combo box item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-combo-box-selected`;\n }\n\n static styles = styles;\n}\n\nexport default CDSComboBox;\n"],"names":["customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"combo-box.js","sources":["../../../src/components/combo-box/combo-box.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit/directives/class-map.js';\nimport { TemplateResult, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport Close16 from '@carbon/icons/es/close/16.js';\nimport { forEach } from '../../globals/internal/collection-helpers';\nimport CDSDropdown, { DROPDOWN_KEYBOARD_ACTION } from '../dropdown/dropdown';\nimport CDSComboBoxItem from './combo-box-item';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport styles from './combo-box.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\n\nexport { DROPDOWN_DIRECTION, DROPDOWN_SIZE } from '../dropdown/dropdown';\n\ntype ShouldFilterItem = (input: {\n item: CDSComboBoxItem;\n itemToString: (item: CDSComboBoxItem) => string;\n inputValue: string | null;\n}) => boolean;\n\n/**\n * Combo box.\n *\n * @element cds-custom-combo-box\n * @fires cds-custom-combo-box-beingselected\n * The custom event fired before a combo box item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires cds-custom-combo-box-beingtoggled\n * The custom event fired before the open state of this combo box is toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated toggling.\n * @fires cds-custom-combo-box-selected - The custom event fired after a combo box item is selected upon a user gesture.\n * @fires cds-custom-combo-box-toggled - The custom event fired after the open state of this combo box is toggled upon a user gesture.\n */\n@customElement(`${prefix}-combo-box`)\nclass CDSComboBox extends CDSDropdown {\n /**\n * The text content that should be set to the `<input>` for filtering.\n */\n protected _filterInputValue = '';\n\n protected _shouldTriggerBeFocusable = false;\n\n /**\n * The `<input>` for filtering.\n */\n @query('input')\n private _filterInputNode!: HTMLInputElement;\n\n /**\n * The menu containing all selectable items.\n */\n @query('#menu-body')\n private _itemMenu!: HTMLElement;\n\n /**\n * The selection button.\n */\n @query('#selection-button')\n private _selectionButtonNode!: HTMLElement;\n\n /**\n * @param item A combo box item.\n * @returns `true` if the given combo box item matches the query text user types.\n */\n protected _testItemWithQueryText(item) {\n return (this.itemMatches || this._defaultItemMatches)(\n item,\n this._filterInputNode.value\n );\n }\n\n /**\n * The default item matching callback.\n *\n * @param item The combo box item.\n * @param queryText The query text user types.\n * @returns `true` if the given combo box item matches the given query text.\n */\n protected _defaultItemMatches(\n item: CDSComboBoxItem,\n queryText: string\n ): boolean {\n return (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n item.textContent!.toLowerCase().indexOf(queryText.toLowerCase()) >= 0\n );\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (this.typeahead) {\n this.shouldFilterItem = true;\n this.setAttribute('should-filter-item', '');\n }\n }\n\n /**\n * Handles `input` event on the `<input>` for filtering.\n */\n protected _handleInput(event: InputEvent) {\n const rawQueryText = this._filterInputNode.value;\n const queryText = rawQueryText.trim().toLowerCase();\n\n if (rawQueryText.length !== 0) {\n this.setAttribute('isClosable', '');\n } else {\n this.removeAttribute('isClosable');\n }\n\n const items = this.querySelectorAll(\n (this.constructor as typeof CDSComboBox).selectorItem\n );\n\n const firstMatchIndex = this._filterItems(items, queryText, rawQueryText);\n if (firstMatchIndex !== -1) {\n const highlightedItem = items[firstMatchIndex];\n if (highlightedItem) {\n this._scrollItemIntoView(highlightedItem as HTMLElement);\n }\n\n if (this.typeahead && event?.inputType?.startsWith('insert')) {\n const suggestedItem = highlightedItem.textContent?.trim() ?? '';\n if (\n suggestedItem.toLowerCase().startsWith(rawQueryText.toLowerCase()) &&\n suggestedItem.length > rawQueryText.length\n ) {\n const suggestionText =\n rawQueryText + suggestedItem.slice(rawQueryText.length);\n\n this._filterInputNode.value = suggestionText;\n this._filterInputNode.setSelectionRange(\n rawQueryText.length,\n suggestionText.length\n );\n\n this._filterInputValue = suggestionText;\n this.open = true;\n this.requestUpdate();\n return;\n }\n }\n }\n this._filterInputValue = rawQueryText;\n this.open = true;\n this.requestUpdate();\n }\n\n // removes the autocomplete suggestion\n protected _removeAutoCompleteSuggestion() {\n if (!this._filterInputNode) return;\n const { selectionStart, selectionEnd, value } = this._filterInputNode;\n if (selectionStart && selectionEnd && selectionEnd > selectionStart) {\n const cleanInput = value.slice(0, selectionStart);\n this._filterInputNode.value = cleanInput;\n this._filterInputNode.setSelectionRange(\n cleanInput.length,\n cleanInput.length\n );\n return;\n }\n }\n\n // Applies filtering/highlighting to all slotted items.\n protected _filterItems(\n items: NodeListOf<Element>,\n queryText: string,\n rawQueryText: string\n ): number {\n let firstMatchIndex = -1;\n const hasQuery = Boolean(queryText);\n forEach(items, (item, i) => {\n const comboItem = item as CDSComboBoxItem;\n const index = i ?? -1;\n if (!hasQuery) {\n (comboItem as HTMLElement).style.display = '';\n comboItem.highlighted = false;\n return;\n }\n const matches = this.typeahead\n ? (comboItem.textContent || '').toLowerCase().startsWith(queryText)\n : (comboItem.textContent || '').toLowerCase().includes(queryText);\n const filterFunction =\n typeof this.shouldFilterItem === 'function'\n ? this.shouldFilterItem\n : null;\n const shouldApplyBuiltInFilter =\n filterFunction === null && hasQuery && this.shouldFilterItem === true;\n const itemToString = (value: CDSComboBoxItem) => value.textContent || '';\n const filterInputValue = rawQueryText.length === 0 ? null : rawQueryText;\n const passesFilter = filterFunction\n ? filterFunction({\n item: comboItem,\n itemToString,\n inputValue: filterInputValue,\n })\n : shouldApplyBuiltInFilter\n ? matches\n : true;\n const highlightMatch = filterFunction !== null ? passesFilter : matches;\n if (highlightMatch && firstMatchIndex === -1) {\n firstMatchIndex = index;\n }\n if (filterFunction || shouldApplyBuiltInFilter) {\n (comboItem as HTMLElement).style.display = passesFilter ? '' : 'none';\n } else {\n (comboItem as HTMLElement).style.display = '';\n }\n comboItem.highlighted = index === firstMatchIndex;\n });\n return firstMatchIndex;\n }\n\n protected _scrollItemIntoView(item: HTMLElement) {\n if (!this._itemMenu) {\n return;\n }\n const menuRect = this._itemMenu.getBoundingClientRect();\n const itemRect = item.getBoundingClientRect();\n if (!menuRect || !itemRect) {\n return;\n }\n const menuBottom = menuRect.top + this._itemMenu.clientHeight;\n const isWithinViewport =\n menuRect.top <= itemRect.top && itemRect.bottom <= menuBottom;\n if (isWithinViewport) {\n return;\n }\n const scrollTop = itemRect.top - menuRect.top;\n const scrollBottom = itemRect.bottom - menuRect.bottom;\n this._itemMenu.scrollTop +=\n Math.abs(scrollTop) < Math.abs(scrollBottom) ? scrollTop : scrollBottom;\n }\n\n // Clear the query and selection when Escape is pressed.\n protected _handleInputKeydown(event: KeyboardEvent) {\n // remove the autocomplete suggestion when navigating away from the suggested item\n if (\n this.typeahead &&\n (event.key === 'ArrowDown' || event.key === 'ArrowUp')\n ) {\n this._removeAutoCompleteSuggestion();\n }\n if (event.key !== 'Escape') {\n return;\n }\n if (!this._filterInputNode) {\n return;\n }\n if (this._filterInputNode.value || this.value) {\n this._handleUserInitiatedClearInput();\n }\n }\n\n protected _handleClickInner(event: MouseEvent) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n const { target } = event as any;\n if (this._selectionButtonNode?.contains(target)) {\n this._handleUserInitiatedClearInput();\n } else {\n super._handleClickInner(event);\n }\n }\n\n protected _handleKeypressInner(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof CDSDropdown).getAction(key);\n const { TRIGGERING } = DROPDOWN_KEYBOARD_ACTION;\n if (\n this._selectionButtonNode?.contains(event.target as Node) &&\n // Space key should be handled by `<input>` unless \"clear selection\" button has focus\n (action === TRIGGERING || key === ' ')\n ) {\n this._handleUserInitiatedClearInput();\n } else {\n super._handleKeypressInner(event);\n }\n }\n\n /**\n * Handles user-initiated clearing the `<input>` for filtering.\n */\n protected _handleUserInitiatedClearInput() {\n this._resetFilteredItems();\n this._filterInputValue = '';\n if (this._filterInputNode) {\n this._filterInputNode.value = '';\n this._filterInputNode.focus();\n }\n\n this._handleUserInitiatedSelectItem();\n this.requestUpdate();\n }\n\n protected _handleUserInitiatedSelectItem(item?: CDSComboBoxItem) {\n if (item && !this._selectionShouldChange(item)) {\n // Escape hatch for `shouldUpdate()` logic that updates `._filterInputValue()` when selection changes,\n // given we want to update the `<input>` and close the dropdown even if selection doesn't update.\n // Use case:\n // 1. Select the 2nd item in combo box drop down\n // 2. Type some text in the `<input>`\n // 3. Re-select the 2nd item in combo box drop down,\n // the `<input>` has to updated with the 2nd item and the dropdown should be closed,\n // even if there is no change in the selected value\n this._filterInputValue = item.textContent || '';\n this.open = false;\n this.requestUpdate();\n }\n super._handleUserInitiatedSelectItem(item);\n }\n\n protected _selectionDidChange(itemToSelect?: CDSComboBoxItem) {\n this.value = !itemToSelect ? '' : itemToSelect.value;\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSDropdown).selectorItemSelected\n ),\n (item) => {\n (item as CDSComboBoxItem).selected = false;\n item.setAttribute('aria-selected', 'false');\n }\n );\n if (itemToSelect) {\n itemToSelect.selected = true;\n itemToSelect.setAttribute('aria-selected', 'true');\n }\n this._handleUserInitiatedToggle(false);\n\n if (this.typeahead && this._filterInputNode) {\n this._filterInputValue = itemToSelect?.textContent?.trim() ?? '';\n\n const length = this._filterInputValue.length;\n this._filterInputNode.setSelectionRange(length, length);\n }\n }\n\n protected _renderLabel(): TemplateResult {\n const {\n disabled,\n inputLabel,\n label,\n open,\n readOnly,\n value,\n _activeDescendant: activeDescendant,\n _filterInputValue: filterInputValue,\n _handleInput: handleInput,\n _handleInputKeydown: handleInputKeydown,\n } = this;\n\n const inputClasses = classMap({\n [`${prefix}--text-input`]: true,\n [`${prefix}--text-input--empty`]: !value,\n });\n\n let activeDescendantFallback: string | undefined;\n if (open && !activeDescendant) {\n const constructor = this.constructor as typeof CDSDropdown;\n const items = this.querySelectorAll(constructor.selectorItem);\n activeDescendantFallback = items[0]?.id;\n }\n\n return html`\n <input\n id=\"trigger-button\"\n class=\"${inputClasses}\"\n ?disabled=${disabled}\n placeholder=\"${label}\"\n .value=${filterInputValue}\n role=\"combobox\"\n aria-label=\"${ifNonEmpty(inputLabel)}\"\n aria-controls=\"menu-body\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n aria-expanded=\"${String(open)}\"\n aria-activedescendant=\"${ifDefined(\n open ? (activeDescendant ?? activeDescendantFallback) : ''\n )}\"\n ?readonly=${readOnly}\n @input=${handleInput}\n @keydown=${handleInputKeydown} />\n `;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-invalid-void-type -- https://github.com/carbon-design-system/carbon/issues/20452\n protected _renderFollowingLabel(): TemplateResult | void {\n const { clearSelectionLabel, _filterInputValue: filterInputValue } = this;\n\n if (filterInputValue.length != 0) {\n this.setAttribute('isClosable', '');\n } else {\n this.removeAttribute('isClosable');\n }\n\n return filterInputValue.length === 0\n ? undefined\n : html`\n <div\n id=\"selection-button\"\n role=\"button\"\n class=\"${prefix}--list-box__selection\"\n tabindex=\"0\"\n title=\"${clearSelectionLabel}\">\n ${iconLoader(Close16, { 'aria-label': clearSelectionLabel })}\n </div>\n `;\n }\n\n /**\n * The `aria-label` attribute for the icon to clear selection.\n */\n @property({ attribute: 'clear-selection-label' })\n clearSelectionLabel = 'Clear selection';\n\n /**\n * The `aria-label` attribute for the `<input>` for filtering.\n */\n @property({ attribute: 'input-label' })\n inputLabel = '';\n\n /**\n * The custom item matching callback.\n */\n @property({ attribute: false })\n itemMatches!: (item: CDSComboBoxItem, queryText: string) => boolean;\n\n /**\n * Provide custom filtering behavior. This attribute will be ignored if\n * `typeahead` is enabled and will default to `true`\n */\n @property({\n attribute: 'should-filter-item',\n converter: {\n fromAttribute: (value) => value !== null,\n },\n })\n shouldFilterItem: boolean | ShouldFilterItem = false;\n\n /**\n * **Experimental**: will enable autocomplete and typeahead for the input field\n */\n @property({ type: Boolean })\n typeahead = false;\n\n shouldUpdate(changedProperties) {\n super.shouldUpdate(changedProperties);\n const { _selectedItemContent: selectedItemContent } = this;\n if (selectedItemContent && changedProperties.has('value')) {\n this._filterInputValue = selectedItemContent?.textContent || '';\n }\n return true;\n }\n\n updated(changedProperties) {\n super.updated(changedProperties);\n if (changedProperties.has('open')) {\n if (this.open && this._filterInputNode) {\n this._handleInput(changedProperties);\n } else if (!this.open) {\n // remove the autocomplete suggestion when closing the combobox\n this._removeAutoCompleteSuggestion();\n this._resetFilteredItems();\n if (this._filterInputNode.value == '') {\n this.value = '';\n }\n }\n }\n const { _listBoxNode: listBoxNode } = this;\n if (listBoxNode) {\n listBoxNode.classList.add(`${prefix}--combo-box`);\n }\n }\n\n // Restores the full list when the query is cleared or the menu closes.\n protected _resetFilteredItems() {\n const items = this.querySelectorAll(\n (this.constructor as typeof CDSComboBox).selectorItem\n );\n forEach(items, (item) => {\n const comboItem = item as CDSComboBoxItem;\n (comboItem as HTMLElement).style.display = '';\n comboItem.highlighted = false;\n });\n }\n\n // For combo box, open/selection with space key is disabled given the input box should take it over\n static TRIGGER_KEYS = new Set(['Enter']);\n\n /**\n * A selector that will return highlighted items.\n */\n static get selectorItemHighlighted() {\n return `${prefix}-combo-box-item[highlighted]`;\n }\n\n /**\n * A selector that will return combo box items.\n */\n static get selectorItem() {\n return `${prefix}-combo-box-item`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-combo-box-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before this combo box item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this combo box item.\n */\n static get eventBeforeToggle() {\n return `${prefix}-combo-box-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after this combo box item is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-combo-box-toggled`;\n }\n\n /**\n * The name of the custom event fired before a combo box item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n */\n static get eventBeforeSelect() {\n return `${prefix}-combo-box-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a combo box item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-combo-box-selected`;\n }\n\n static styles = styles;\n}\n\nexport default CDSComboBox;\n"],"names":["customElement"],"mappings":"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"}
|