@carbon/web-components 2.48.0 → 2.49.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 +38 -13
- package/es/components/ai-label/ai-label.scss.js +1 -1
- package/es/components/breadcrumb/breadcrumb.scss.js +1 -1
- package/es/components/button/button-set.js +1 -1
- package/es/components/button/button-set.js.map +1 -1
- package/es/components/button/button.scss.js +1 -1
- package/es/components/checkbox/checkbox.js +1 -1
- package/es/components/checkbox/checkbox.js.map +1 -1
- package/es/components/code-snippet/code-snippet.scss.js +1 -1
- package/es/components/combo-box/combo-box-item.d.ts +3 -4
- package/es/components/combo-box/combo-box-item.js +0 -14
- package/es/components/combo-box/combo-box-item.js.map +1 -1
- package/es/components/combo-box/combo-box.d.ts +7 -0
- package/es/components/combo-box/combo-box.js +30 -8
- 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/combo-button/combo-button.scss.js +1 -1
- package/es/components/contained-list/contained-list.scss.js +1 -1
- package/es/components/content-switcher/content-switcher-item.d.ts +1 -1
- package/es/components/content-switcher/content-switcher-item.js +2 -2
- package/es/components/content-switcher/content-switcher-item.js.map +1 -1
- package/es/components/content-switcher/content-switcher.scss.js +1 -1
- package/es/components/copy-button/copy-button.scss.js +1 -1
- package/es/components/data-table/data-table.scss.js +1 -1
- package/es/components/data-table/table-skeleton.d.ts +1 -5
- package/es/components/data-table/table-skeleton.js +2 -10
- package/es/components/data-table/table-skeleton.js.map +1 -1
- package/es/components/dropdown/dropdown-item.d.ts +15 -0
- package/es/components/dropdown/dropdown-item.js +52 -0
- package/es/components/dropdown/dropdown-item.js.map +1 -1
- package/es/components/dropdown/dropdown.js +0 -1
- 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/menu-button/menu-button.scss.js +1 -1
- package/es/components/modal/modal.scss.js +1 -1
- package/es/components/multi-select/multi-select.js +0 -3
- package/es/components/multi-select/multi-select.js.map +1 -1
- package/es/components/notification/actionable-notification.scss.js +1 -1
- package/es/components/notification/inline-notification.scss.js +1 -1
- package/es/components/notification/toast-notification.scss.js +1 -1
- package/es/components/overflow-menu/overflow-menu-item.d.ts +5 -1
- package/es/components/overflow-menu/overflow-menu-item.js +24 -1
- package/es/components/overflow-menu/overflow-menu-item.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu.d.ts +1 -1
- package/es/components/overflow-menu/overflow-menu.js +3 -3
- package/es/components/overflow-menu/overflow-menu.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu.scss.js +1 -1
- package/es/components/pagination/pagination.scss.js +1 -1
- package/es/components/pagination-nav/pagination-nav.scss.js +1 -1
- package/es/components/popover/popover.d.ts +12 -2
- package/es/components/popover/popover.js +56 -37
- package/es/components/popover/popover.js.map +1 -1
- package/es/components/popover/popover.scss.js +1 -1
- package/es/components/progress-indicator/progress-indicator.scss.js +1 -1
- package/es/components/progress-indicator/progress-step.d.ts +1 -1
- package/es/components/progress-indicator/progress-step.js +2 -2
- package/es/components/progress-indicator/progress-step.js.map +1 -1
- package/es/components/radio-button/radio-button.js +1 -1
- package/es/components/radio-button/radio-button.js.map +1 -1
- package/es/components/select/select.d.ts +1 -1
- package/es/components/select/select.js +3 -3
- package/es/components/select/select.js.map +1 -1
- package/es/components/skip-to-content/skip-to-content.scss.js +1 -1
- package/es/components/slug/slug.scss.js +1 -1
- package/es/components/tabs/tab.d.ts +1 -1
- package/es/components/tabs/tab.js +2 -2
- package/es/components/tabs/tab.js.map +1 -1
- package/es/components/tabs/tabs.scss.js +1 -1
- package/es/components/tag/tag.d.ts +1 -1
- package/es/components/tag/tag.js +2 -2
- package/es/components/tag/tag.js.map +1 -1
- package/es/components/tag/tag.scss.js +1 -1
- package/es/components/text-input/text-input.d.ts +2 -0
- package/es/components/text-input/text-input.js +26 -14
- package/es/components/text-input/text-input.js.map +1 -1
- package/es/components/tile/expandable-tile.d.ts +1 -1
- package/es/components/tile/expandable-tile.js +2 -2
- package/es/components/tile/expandable-tile.js.map +1 -1
- package/es/components/time-picker/time-picker-select.d.ts +1 -1
- package/es/components/time-picker/time-picker-select.js +2 -2
- package/es/components/time-picker/time-picker-select.js.map +1 -1
- package/es/components/toggle-tip/toggletip.d.ts +0 -1
- package/es/components/toggle-tip/toggletip.js +2 -13
- package/es/components/toggle-tip/toggletip.js.map +1 -1
- package/es/components/toggle-tip/toggletip.scss.js +1 -1
- package/es/components/tooltip/tooltip.scss.js +1 -1
- package/es/components/ui-shell/header-menu.d.ts +1 -1
- package/es/components/ui-shell/header-menu.js +2 -2
- package/es/components/ui-shell/header-menu.js.map +1 -1
- package/es/components/ui-shell/header.scss.js +1 -1
- package/es/components/ui-shell/side-nav-menu.d.ts +1 -1
- package/es/components/ui-shell/side-nav-menu.js +2 -2
- package/es/components/ui-shell/side-nav-menu.js.map +1 -1
- package/es/globals/controllers/floating-controller.js +6 -2
- package/es/globals/controllers/floating-controller.js.map +1 -1
- package/es/globals/internal/deep-shadow-contains.d.ts +15 -0
- package/es/globals/internal/deep-shadow-contains.js +36 -0
- package/es/globals/internal/deep-shadow-contains.js.map +1 -0
- package/es/polyfills/toggle-attribute.d.ts +1 -1
- package/es-custom/components/ai-label/ai-label.scss.js +1 -1
- package/es-custom/components/breadcrumb/breadcrumb.scss.js +1 -1
- package/es-custom/components/button/button-set.js +1 -1
- package/es-custom/components/button/button-set.js.map +1 -1
- package/es-custom/components/button/button.scss.js +1 -1
- package/es-custom/components/checkbox/checkbox.js +1 -1
- package/es-custom/components/checkbox/checkbox.js.map +1 -1
- package/es-custom/components/code-snippet/code-snippet.scss.js +1 -1
- package/es-custom/components/combo-box/combo-box-item.d.ts +3 -4
- package/es-custom/components/combo-box/combo-box-item.js +0 -14
- package/es-custom/components/combo-box/combo-box-item.js.map +1 -1
- package/es-custom/components/combo-box/combo-box.d.ts +7 -0
- package/es-custom/components/combo-box/combo-box.js +30 -8
- 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/combo-button/combo-button.scss.js +1 -1
- package/es-custom/components/contained-list/contained-list.scss.js +1 -1
- package/es-custom/components/content-switcher/content-switcher-item.d.ts +1 -1
- package/es-custom/components/content-switcher/content-switcher-item.js +2 -2
- package/es-custom/components/content-switcher/content-switcher-item.js.map +1 -1
- package/es-custom/components/content-switcher/content-switcher.scss.js +1 -1
- package/es-custom/components/copy-button/copy-button.scss.js +1 -1
- package/es-custom/components/data-table/data-table.scss.js +1 -1
- package/es-custom/components/data-table/table-skeleton.d.ts +1 -5
- package/es-custom/components/data-table/table-skeleton.js +2 -10
- package/es-custom/components/data-table/table-skeleton.js.map +1 -1
- package/es-custom/components/dropdown/dropdown-item.d.ts +15 -0
- package/es-custom/components/dropdown/dropdown-item.js +52 -0
- package/es-custom/components/dropdown/dropdown-item.js.map +1 -1
- package/es-custom/components/dropdown/dropdown.js +0 -1
- 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/menu-button/menu-button.scss.js +1 -1
- package/es-custom/components/modal/modal.scss.js +1 -1
- package/es-custom/components/multi-select/multi-select.js +0 -3
- package/es-custom/components/multi-select/multi-select.js.map +1 -1
- package/es-custom/components/notification/actionable-notification.scss.js +1 -1
- package/es-custom/components/notification/inline-notification.scss.js +1 -1
- package/es-custom/components/notification/toast-notification.scss.js +1 -1
- package/es-custom/components/overflow-menu/overflow-menu-item.d.ts +5 -1
- package/es-custom/components/overflow-menu/overflow-menu-item.js +24 -1
- package/es-custom/components/overflow-menu/overflow-menu-item.js.map +1 -1
- package/es-custom/components/overflow-menu/overflow-menu.d.ts +1 -1
- package/es-custom/components/overflow-menu/overflow-menu.js +3 -3
- package/es-custom/components/overflow-menu/overflow-menu.js.map +1 -1
- package/es-custom/components/overflow-menu/overflow-menu.scss.js +1 -1
- package/es-custom/components/pagination/pagination.scss.js +1 -1
- package/es-custom/components/pagination-nav/pagination-nav.scss.js +1 -1
- package/es-custom/components/popover/popover.d.ts +12 -2
- package/es-custom/components/popover/popover.js +56 -37
- package/es-custom/components/popover/popover.js.map +1 -1
- package/es-custom/components/popover/popover.scss.js +1 -1
- package/es-custom/components/progress-indicator/progress-indicator.scss.js +1 -1
- package/es-custom/components/progress-indicator/progress-step.d.ts +1 -1
- package/es-custom/components/progress-indicator/progress-step.js +2 -2
- package/es-custom/components/progress-indicator/progress-step.js.map +1 -1
- package/es-custom/components/radio-button/radio-button.js +1 -1
- package/es-custom/components/radio-button/radio-button.js.map +1 -1
- package/es-custom/components/select/select.d.ts +1 -1
- package/es-custom/components/select/select.js +3 -3
- package/es-custom/components/select/select.js.map +1 -1
- package/es-custom/components/skip-to-content/skip-to-content.scss.js +1 -1
- package/es-custom/components/slug/slug.scss.js +1 -1
- package/es-custom/components/tabs/tab.d.ts +1 -1
- package/es-custom/components/tabs/tab.js +2 -2
- package/es-custom/components/tabs/tab.js.map +1 -1
- package/es-custom/components/tabs/tabs.scss.js +1 -1
- package/es-custom/components/tag/tag.d.ts +1 -1
- package/es-custom/components/tag/tag.js +2 -2
- package/es-custom/components/tag/tag.js.map +1 -1
- package/es-custom/components/tag/tag.scss.js +1 -1
- package/es-custom/components/text-input/text-input.d.ts +2 -0
- package/es-custom/components/text-input/text-input.js +26 -14
- package/es-custom/components/text-input/text-input.js.map +1 -1
- package/es-custom/components/tile/expandable-tile.d.ts +1 -1
- package/es-custom/components/tile/expandable-tile.js +2 -2
- package/es-custom/components/tile/expandable-tile.js.map +1 -1
- package/es-custom/components/time-picker/time-picker-select.d.ts +1 -1
- package/es-custom/components/time-picker/time-picker-select.js +2 -2
- package/es-custom/components/time-picker/time-picker-select.js.map +1 -1
- package/es-custom/components/toggle-tip/toggletip.d.ts +0 -1
- package/es-custom/components/toggle-tip/toggletip.js +2 -13
- package/es-custom/components/toggle-tip/toggletip.js.map +1 -1
- package/es-custom/components/toggle-tip/toggletip.scss.js +1 -1
- package/es-custom/components/tooltip/tooltip.scss.js +1 -1
- package/es-custom/components/ui-shell/header-menu.d.ts +1 -1
- package/es-custom/components/ui-shell/header-menu.js +2 -2
- package/es-custom/components/ui-shell/header-menu.js.map +1 -1
- package/es-custom/components/ui-shell/header.scss.js +1 -1
- package/es-custom/components/ui-shell/side-nav-menu.d.ts +1 -1
- package/es-custom/components/ui-shell/side-nav-menu.js +2 -2
- package/es-custom/components/ui-shell/side-nav-menu.js.map +1 -1
- package/es-custom/globals/controllers/floating-controller.js +6 -2
- package/es-custom/globals/controllers/floating-controller.js.map +1 -1
- package/es-custom/globals/internal/deep-shadow-contains.d.ts +15 -0
- package/es-custom/globals/internal/deep-shadow-contains.js +36 -0
- package/es-custom/globals/internal/deep-shadow-contains.js.map +1 -0
- package/es-custom/polyfills/toggle-attribute.d.ts +1 -1
- package/lib/components/combo-box/combo-box-item.d.ts +3 -4
- package/lib/components/combo-box/combo-box.d.ts +7 -0
- package/lib/components/content-switcher/content-switcher-item.d.ts +1 -1
- package/lib/components/data-table/table-skeleton.d.ts +1 -5
- package/lib/components/dropdown/dropdown-item.d.ts +15 -0
- package/lib/components/overflow-menu/overflow-menu-item.d.ts +5 -1
- package/lib/components/overflow-menu/overflow-menu.d.ts +1 -1
- package/lib/components/popover/popover.d.ts +12 -2
- package/lib/components/progress-indicator/progress-step.d.ts +1 -1
- package/lib/components/select/select.d.ts +1 -1
- package/lib/components/tabs/tab.d.ts +1 -1
- package/lib/components/tag/tag.d.ts +1 -1
- package/lib/components/text-input/text-input.d.ts +2 -0
- package/lib/components/tile/expandable-tile.d.ts +1 -1
- package/lib/components/time-picker/time-picker-select.d.ts +1 -1
- package/lib/components/toggle-tip/toggletip.d.ts +0 -1
- package/lib/components/ui-shell/header-menu.d.ts +1 -1
- package/lib/components/ui-shell/side-nav-menu.d.ts +1 -1
- package/lib/globals/controllers/floating-controller.js +6 -2
- package/lib/globals/controllers/floating-controller.js.map +1 -1
- package/lib/globals/internal/deep-shadow-contains.d.ts +15 -0
- package/lib/polyfills/toggle-attribute.d.ts +1 -1
- package/package.json +6 -6
- package/scss/components/dropdown/dropdown.scss +5 -0
- package/scss/components/overflow-menu/overflow-menu.scss +4 -0
- package/scss/components/popover/popover.scss +160 -4
- package/telemetry.yml +2 -1
|
@@ -193,6 +193,9 @@ let CDSTextInput = class CDSTextInput extends ValidityMixin(FormMixin(LitElement
|
|
|
193
193
|
formData.append(name, value);
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
|
+
_handleHelperTextSlotChange() {
|
|
197
|
+
this.requestUpdate();
|
|
198
|
+
}
|
|
196
199
|
/**
|
|
197
200
|
* The value of the input.
|
|
198
201
|
*/
|
|
@@ -226,6 +229,7 @@ let CDSTextInput = class CDSTextInput extends ValidityMixin(FormMixin(LitElement
|
|
|
226
229
|
this.type === INPUT_TYPE.PASSWORD ? INPUT_TYPE.TEXT : INPUT_TYPE.PASSWORD;
|
|
227
230
|
}
|
|
228
231
|
render() {
|
|
232
|
+
var _a, _b;
|
|
229
233
|
const { disabled, enableCounter, helperText, hideLabel, inline, isFluid, invalid, invalidText, label, maxCount, readonly, required, size, type, warn, warnText, value, _handleInput: handleInput, _hasAILabel: hasAILabel, _handleSlotChange: handleSlotChange, } = this;
|
|
230
234
|
const invalidIcon = iconLoader(WarningFilled16, {
|
|
231
235
|
class: `${prefix}--text-input__invalid-icon`,
|
|
@@ -269,7 +273,7 @@ let CDSTextInput = class CDSTextInput extends ValidityMixin(FormMixin(LitElement
|
|
|
269
273
|
[`${prefix}--text-input--warning`]: normalizedProps.warn,
|
|
270
274
|
[`${prefix}--text-input--${size}`]: size,
|
|
271
275
|
[`${prefix}--layout--size-${size}`]: size,
|
|
272
|
-
[`${prefix}--password-input`]: type === INPUT_TYPE.PASSWORD, //TODO deprecated, remove in v12
|
|
276
|
+
[`${prefix}--password-input`]: type === INPUT_TYPE.PASSWORD, // TODO: deprecated, remove in v12
|
|
273
277
|
[`${prefix}--text-input__field-wrapper--decorator`]: hasAILabel,
|
|
274
278
|
});
|
|
275
279
|
const fieldOuterWrapperClasses = classMap({
|
|
@@ -289,12 +293,12 @@ let CDSTextInput = class CDSTextInput extends ValidityMixin(FormMixin(LitElement
|
|
|
289
293
|
[`${prefix}--form__helper-text`]: true,
|
|
290
294
|
[`${prefix}--form__helper-text--disabled`]: normalizedProps.disabled,
|
|
291
295
|
});
|
|
292
|
-
//TODO deprecated, remove in v12
|
|
296
|
+
// TODO: deprecated, remove in v12
|
|
293
297
|
const passwordIsVisible = type !== INPUT_TYPE.PASSWORD;
|
|
294
298
|
const passwordVisibilityIcon = passwordIsVisible
|
|
295
299
|
? iconLoader(ViewOff16, { class: `${prefix}--icon-visibility-off` })
|
|
296
300
|
: iconLoader(View16, { class: `${prefix}--icon-visibility-on` });
|
|
297
|
-
//TODO deprecated, remove in v12
|
|
301
|
+
// TODO: deprecated, remove in v12
|
|
298
302
|
const passwordVisibilityToggleClasses = classMap({
|
|
299
303
|
[`${prefix}--text-input--password__visibility__toggle`]: true,
|
|
300
304
|
[`${prefix}--btn`]: true,
|
|
@@ -305,13 +309,13 @@ let CDSTextInput = class CDSTextInput extends ValidityMixin(FormMixin(LitElement
|
|
|
305
309
|
[`${prefix}--tooltip--${this.tooltipDirection}`]: this.tooltipDirection,
|
|
306
310
|
[`${prefix}--tooltip--align-${this.tooltipAlignment}`]: this.tooltipAlignment,
|
|
307
311
|
});
|
|
308
|
-
//TODO deprecated, remove in v12
|
|
312
|
+
// TODO: deprecated, remove in v12
|
|
309
313
|
const passwordButtonLabel = html `
|
|
310
314
|
<span class="${prefix}--assistive-text">
|
|
311
315
|
${passwordIsVisible ? this.hidePasswordLabel : this.showPasswordLabel}
|
|
312
316
|
</span>
|
|
313
317
|
`;
|
|
314
|
-
//TODO deprecated, remove in v12
|
|
318
|
+
// TODO: deprecated, remove in v12
|
|
315
319
|
const passwordVisibilityButton = () => html `
|
|
316
320
|
<button
|
|
317
321
|
type="button"
|
|
@@ -334,14 +338,19 @@ let CDSTextInput = class CDSTextInput extends ValidityMixin(FormMixin(LitElement
|
|
|
334
338
|
</label>
|
|
335
339
|
${counter}
|
|
336
340
|
</div>`;
|
|
337
|
-
const
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
341
|
+
const hasHelperText = helperText || ((_b = (_a = this._slotHelperTextNode) === null || _a === void 0 ? void 0 : _a.assignedNodes().length) !== null && _b !== void 0 ? _b : 0) > 0;
|
|
342
|
+
const helper = html `<div
|
|
343
|
+
class="${helperTextClasses}"
|
|
344
|
+
id="helper-text"
|
|
345
|
+
?hidden="${normalizedProps.invalid ||
|
|
346
|
+
normalizedProps.warn ||
|
|
347
|
+
!hasHelperText}">
|
|
348
|
+
<slot
|
|
349
|
+
name="helper-text"
|
|
350
|
+
@slotchange="${this._handleHelperTextSlotChange}">
|
|
351
|
+
${helperText}
|
|
352
|
+
</slot>
|
|
353
|
+
</div>`;
|
|
345
354
|
const validationMessage = normalizedProps.invalid || normalizedProps.warn
|
|
346
355
|
? html `<div
|
|
347
356
|
class="${prefix}--form-requirement"
|
|
@@ -367,7 +376,7 @@ let CDSTextInput = class CDSTextInput extends ValidityMixin(FormMixin(LitElement
|
|
|
367
376
|
class="${inputClasses}"
|
|
368
377
|
?data-invalid="${invalid}"
|
|
369
378
|
?disabled="${disabled}"
|
|
370
|
-
aria-describedby="helper-text"
|
|
379
|
+
?aria-describedby="${hasHelperText ? 'helper-text' : undefined}"
|
|
371
380
|
id="input"
|
|
372
381
|
name="${ifNonEmpty(this.name)}"
|
|
373
382
|
pattern="${ifNonEmpty(this.pattern)}"
|
|
@@ -427,6 +436,9 @@ CDSTextInput.styles = styles;
|
|
|
427
436
|
__decorate([
|
|
428
437
|
query('input')
|
|
429
438
|
], CDSTextInput.prototype, "_input", void 0);
|
|
439
|
+
__decorate([
|
|
440
|
+
query('slot[name="helper-text"]')
|
|
441
|
+
], CDSTextInput.prototype, "_slotHelperTextNode", void 0);
|
|
430
442
|
__decorate([
|
|
431
443
|
property()
|
|
432
444
|
], CDSTextInput.prototype, "autocomplete", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-input.js","sources":["../../../src/components/text-input/text-input.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 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 { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport WarningFilled16 from '@carbon/icons/es/warning--filled/16.js';\nimport WarningAltFilled16 from '@carbon/icons/es/warning--alt--filled/16.js';\nimport View16 from '@carbon/icons/es/view/16.js';\nimport ViewOff16 from '@carbon/icons/es/view--off/16.js';\nimport FormMixin from '../../globals/mixins/form';\nimport ValidityMixin from '../../globals/mixins/validity';\nimport {\n INPUT_COLOR_SCHEME,\n INPUT_SIZE,\n INPUT_TOOLTIP_ALIGNMENT,\n INPUT_TOOLTIP_DIRECTION,\n INPUT_TYPE,\n} from './defs';\nimport styles from './text-input.scss?lit';\n\nexport {\n INPUT_COLOR_SCHEME,\n INPUT_SIZE,\n INPUT_TOOLTIP_ALIGNMENT,\n INPUT_TOOLTIP_DIRECTION,\n INPUT_TYPE,\n};\n\n/**\n * Text Input element. Supports all the usual attributes for textual input types\n *\n * @element cds-text-input\n * @slot helper-text - The helper text.\n * @slot label-text - The label text.\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}-text-input`)\nclass CDSTextInput extends ValidityMixin(FormMixin(LitElement)) {\n /**\n * `true` if there is an AI Label.\n */\n protected _hasAILabel = false;\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleSlotChange({ target }: Event) {\n const hasContent = (target as HTMLSlotElement)\n .assignedNodes()\n .filter((elem) =>\n (elem as HTMLElement).matches !== undefined\n ? (elem as HTMLElement).matches(\n (this.constructor as typeof CDSTextInput).aiLabelItem\n ) ||\n // remove reference to slug in v12\n (elem as HTMLElement).matches(\n (this.constructor as typeof CDSTextInput).slugItem\n )\n : false\n );\n\n this._hasAILabel = Boolean(hasContent);\n (hasContent[0] as HTMLElement).setAttribute('size', 'mini');\n this.requestUpdate();\n }\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 /**\n * Handles `oninput` event on the `input`.\n *\n * @param event The event.\n * @param event.target The event target.\n */\n protected _handleInput({ target }: Event) {\n this.value = (target as HTMLInputElement).value;\n }\n\n _handleFormdata(event: FormDataEvent) {\n const { formData } = event;\n const { disabled, name, value } = this;\n if (!disabled) {\n formData.append(name, value);\n }\n }\n\n /**\n * May be any of the standard HTML autocomplete options\n */\n @property()\n autocomplete = '';\n\n /**\n * Sets the input to be focussed automatically on page load. Defaults to false\n */\n @property({ type: Boolean })\n autofocus = false;\n\n /**\n * Controls the disabled state of the input\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Specify whether to display the character counter\n */\n @property({ type: Boolean, attribute: 'enable-counter', reflect: true })\n enableCounter = false;\n\n /**\n * The helper text.\n */\n @property({ attribute: 'helper-text' })\n helperText = '';\n\n /**\n * Specify if the currently value is invalid.\n */\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /**\n * Message which is displayed if the value is invalid.\n */\n @property({ attribute: 'invalid-text' })\n invalidText = '';\n\n /**\n * Max character count allowed for input. This is needed in order for enableCounter to display\n */\n @property({ type: Number, attribute: 'max-count', reflect: true })\n maxCount;\n\n /**\n * Specify whether the control is currently in warning state\n */\n @property({ type: Boolean, reflect: true })\n warn = false;\n\n /**\n * Provide the text that is displayed when the control is in warning state\n */\n @property({ attribute: 'warn-text' })\n warnText = '';\n\n /**\n * Specify whether you want the underlying label to be visually hidden\n */\n @property({ attribute: 'hide-label', type: Boolean, reflect: true })\n hideLabel = false;\n\n /**\n * Generic label that will be used as the textual representation of what this field is for\n */\n @property({ attribute: 'label' })\n label = '';\n\n /**\n * Name for the input in the `FormData`\n */\n @property()\n name = '';\n\n /**\n * Pattern to validate the input against for HTML validity checking\n */\n @property()\n pattern = '';\n\n /**\n * Value to display when the input has an empty `value`\n */\n @property({ reflect: true })\n placeholder = '';\n\n /**\n * Specify if the component should be read-only\n */\n @property({ type: Boolean, reflect: true })\n readonly = false;\n\n /**\n * Boolean property to set the required status\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * The special validity message for `required`.\n */\n @property({ attribute: 'required-validity-message' })\n requiredValidityMessage = 'Please fill out this field.';\n\n /**\n * \"Hide password\" tooltip text on password visibility toggle\n *\n * @deprecated will be removed in the next major version, use `cds-password-input` instead\n */\n @property()\n hidePasswordLabel = 'Hide password';\n\n /**\n * \"Show password\" tooltip text on password visibility toggle\n *\n * @deprecated will be removed in the next major version, use `cds-password-input` instead\n */\n @property()\n showPasswordLabel = 'Show password';\n\n /**\n * Boolean property to render password visibility toggle\n *\n * @deprecated will be removed in the next major version, use `cds-password-input` instead\n */\n @property({\n type: Boolean,\n attribute: 'show-password-visibility-toggle',\n reflect: true,\n })\n showPasswordVisibilityToggle = false;\n\n /**\n * The input box size.\n */\n @property({ reflect: true })\n size = INPUT_SIZE.MEDIUM;\n\n @property({ type: Boolean })\n isFluid = false;\n\n /**\n * true to use the inline version.\n */\n @property({ type: Boolean, reflect: true })\n inline = false;\n\n /**\n * Specify the alignment of the tooltip to the icon-only button.\n * Can be one of: start, center, or end.\n */\n @property()\n tooltipAlignment = INPUT_TOOLTIP_ALIGNMENT.CENTER;\n\n /**\n * Specify the direction of the tooltip for icon-only buttons.\n * Can be either top, right, bottom, or left.\n */\n @property()\n tooltipDirection = INPUT_TOOLTIP_DIRECTION.BOTTOM;\n\n /**\n * The type of the input. Can be one of the types listed in the INPUT_TYPE enum\n */\n @property({ reflect: true })\n type = INPUT_TYPE.TEXT;\n\n /**\n * The validity message. If present and non-empty, this input shows the UI of its invalid state.\n */\n @property({ attribute: 'validity-message' })\n validityMessage = '';\n\n /**\n * The value of the input.\n */\n @property({ reflect: true })\n get value() {\n // FIXME: Figure out how to deal with TS2611\n // once we have the input we can directly query for the value\n if (this._input) {\n return this._input.value;\n }\n // but before then _value will work fine\n return this._value;\n }\n\n set value(value) {\n const oldValue = this._value;\n this._value = value;\n // make sure that lit-element updates the right properties\n this.requestUpdate('value', oldValue);\n // we set the value directly on the input (when available)\n // so that programatic manipulation updates the UI correctly\n if (this._input) {\n this._input.value = value;\n }\n }\n\n /**\n * Handles password visibility toggle button click\n *\n * @deprecated will be removed in the next major version, use `cds-password-input` instead\n */\n private togglePasswordVisibility() {\n this.type =\n this.type === INPUT_TYPE.PASSWORD ? INPUT_TYPE.TEXT : INPUT_TYPE.PASSWORD;\n }\n\n render() {\n const {\n disabled,\n enableCounter,\n helperText,\n hideLabel,\n inline,\n isFluid,\n invalid,\n invalidText,\n label,\n maxCount,\n readonly,\n required,\n size,\n type,\n warn,\n warnText,\n value,\n _handleInput: handleInput,\n _hasAILabel: hasAILabel,\n _handleSlotChange: handleSlotChange,\n } = this;\n\n const invalidIcon = iconLoader(WarningFilled16, {\n class: `${prefix}--text-input__invalid-icon`,\n });\n\n const warnIcon = iconLoader(WarningAltFilled16, {\n class: `${prefix}--text-input__invalid-icon ${prefix}--text-input__invalid-icon--warning`,\n });\n\n const normalizedProps: {\n disabled: boolean;\n invalid: boolean;\n warn: boolean;\n 'slot-name': string;\n 'slot-text': string;\n icon: ReturnType<typeof iconLoader>;\n } = {\n disabled: !readonly && disabled,\n invalid: !readonly && invalid,\n warn: !readonly && !invalid && warn,\n 'slot-name': '',\n 'slot-text': '',\n icon: null,\n };\n\n if (normalizedProps.invalid) {\n normalizedProps.icon = invalidIcon;\n normalizedProps['slot-name'] = 'invalid-text';\n normalizedProps['slot-text'] = invalidText;\n } else if (normalizedProps.warn) {\n normalizedProps.icon = warnIcon;\n normalizedProps['slot-name'] = 'warn-text';\n normalizedProps['slot-text'] = warnText;\n }\n\n const counterClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--text-input__label-counter`]: true,\n [`${prefix}--label--disabled`]: disabled,\n });\n\n const inputWrapperClasses = classMap({\n [`${prefix}--form-item`]: true,\n [`${prefix}--text-input-wrapper`]: true,\n [`${prefix}--text-input-wrapper--inline`]: inline,\n [`${prefix}--text-input-wrapper--readonly`]: readonly,\n [`${prefix}--text-input-wrapper--inline--invalid`]:\n inline && normalizedProps.invalid,\n });\n\n const inputClasses = classMap({\n [`${prefix}--text-input`]: true,\n [`${prefix}--text-input--invalid`]: normalizedProps.invalid,\n [`${prefix}--text-input--warning`]: normalizedProps.warn,\n [`${prefix}--text-input--${size}`]: size,\n [`${prefix}--layout--size-${size}`]: size,\n [`${prefix}--password-input`]: type === INPUT_TYPE.PASSWORD, //TODO deprecated, remove in v12\n [`${prefix}--text-input__field-wrapper--decorator`]: hasAILabel,\n });\n\n const fieldOuterWrapperClasses = classMap({\n [`${prefix}--text-input__field-outer-wrapper`]: true,\n [`${prefix}--text-input__field-outer-wrapper--inline`]: inline,\n });\n\n const fieldWrapperClasses = classMap({\n [`${prefix}--text-input__field-wrapper`]: true,\n [`${prefix}--text-input__field-wrapper--warning`]: normalizedProps.warn,\n });\n\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--visually-hidden`]: hideLabel,\n [`${prefix}--label--disabled`]: normalizedProps.disabled,\n });\n\n const helperTextClasses = classMap({\n [`${prefix}--form__helper-text`]: true,\n [`${prefix}--form__helper-text--disabled`]: normalizedProps.disabled,\n });\n\n //TODO deprecated, remove in v12\n const passwordIsVisible = type !== INPUT_TYPE.PASSWORD;\n const passwordVisibilityIcon = passwordIsVisible\n ? iconLoader(ViewOff16, { class: `${prefix}--icon-visibility-off` })\n : iconLoader(View16, { class: `${prefix}--icon-visibility-on` });\n\n //TODO deprecated, remove in v12\n const passwordVisibilityToggleClasses = classMap({\n [`${prefix}--text-input--password__visibility__toggle`]: true,\n [`${prefix}--btn`]: true,\n [`${prefix}--btn--icon-only`]: true,\n [`${prefix}--tooltip__trigger`]: true,\n [`${prefix}--tooltip--a11y`]: true,\n [`${prefix}--btn--disabled`]: normalizedProps.disabled,\n [`${prefix}--tooltip--${this.tooltipDirection}`]: this.tooltipDirection,\n [`${prefix}--tooltip--align-${this.tooltipAlignment}`]:\n this.tooltipAlignment,\n });\n\n //TODO deprecated, remove in v12\n const passwordButtonLabel = html`\n <span class=\"${prefix}--assistive-text\">\n ${passwordIsVisible ? this.hidePasswordLabel : this.showPasswordLabel}\n </span>\n `;\n\n //TODO deprecated, remove in v12\n const passwordVisibilityButton = () => html`\n <button\n type=\"button\"\n class=\"${passwordVisibilityToggleClasses}\"\n ?disabled=\"${normalizedProps.disabled}\"\n @click=\"${this.togglePasswordVisibility}\">\n ${!normalizedProps.disabled ? passwordButtonLabel : null}\n ${passwordVisibilityIcon}\n </button>\n `;\n\n const textCount = value?.length;\n\n const counter =\n enableCounter && maxCount\n ? html` <label class=\"${counterClasses}\">\n <slot name=\"label-text\">${textCount}/${maxCount}</slot>\n </label>`\n : null;\n\n const labelWrapper = html`<div class=\"${prefix}--text-input__label-wrapper\">\n <label class=\"${labelClasses}\">\n <slot name=\"label-text\">${label}</slot>\n </label>\n ${counter}\n </div>`;\n\n const helper = helperText\n ? html`<div\n class=\"${helperTextClasses}\"\n id=\"helper-text\"\n ?hidden=\"${normalizedProps.invalid || normalizedProps.warn}\">\n <slot name=\"helper-text\"> ${helperText} </slot>\n </div>`\n : null;\n\n const validationMessage =\n normalizedProps.invalid || normalizedProps.warn\n ? html`<div\n class=\"${prefix}--form-requirement\"\n ?hidden=\"${!normalizedProps.invalid && !normalizedProps.warn}\">\n <slot name=\"${normalizedProps['slot-name']}\">\n ${normalizedProps['slot-text']}\n </slot>\n </div>`\n : null;\n\n return html`\n <div class=\"${inputWrapperClasses}\">\n ${!inline\n ? labelWrapper\n : html`<div class=\"${prefix}--text-input__label-helper-wrapper\">\n ${labelWrapper} ${!isFluid ? validationMessage || helper : null}\n </div>`}\n <div class=\"${fieldOuterWrapperClasses}\">\n <div class=\"${fieldWrapperClasses}\" ?data-invalid=\"${invalid}\">\n ${normalizedProps.icon}\n <input\n autocomplete=\"${this.autocomplete}\"\n ?autofocus=\"${this.autofocus}\"\n class=\"${inputClasses}\"\n ?data-invalid=\"${invalid}\"\n ?disabled=\"${disabled}\"\n aria-describedby=\"helper-text\"\n id=\"input\"\n name=\"${ifNonEmpty(this.name)}\"\n pattern=\"${ifNonEmpty(this.pattern)}\"\n placeholder=\"${ifNonEmpty(this.placeholder)}\"\n ?readonly=\"${readonly}\"\n ?required=\"${required}\"\n type=\"${ifNonEmpty(type)}\"\n .value=\"${this._value}\"\n maxlength=\"${ifNonEmpty(maxCount)}\"\n @input=\"${handleInput}\" />\n <slot name=\"ai-label\" @slotchange=\"${handleSlotChange}\"></slot>\n <slot name=\"slug\" @slotchange=\"${handleSlotChange}\"></slot>\n ${this.showPasswordVisibilityToggle &&\n (type === INPUT_TYPE.PASSWORD || type === INPUT_TYPE.TEXT)\n ? passwordVisibilityButton()\n : null}\n ${isFluid\n ? html`<hr class=\"${prefix}--text-input__divider\" />`\n : null}\n ${isFluid && !inline ? validationMessage : null}\n </div>\n\n ${/* Non-fluid: validation and helper outside field wrapper */ ''}\n ${!isFluid && !inline ? validationMessage || helper : null}\n </div>\n </div>\n `;\n }\n\n updated() {\n this.toggleAttribute('ai-label', this._hasAILabel);\n const label = this.shadowRoot?.querySelector(\"slot[name='ai-label']\");\n\n if (label) {\n label?.classList.toggle(\n `${prefix}--slug--revert`,\n this.querySelector(`${prefix}-ai-label`)?.hasAttribute('revert-active')\n );\n } else {\n this.shadowRoot\n ?.querySelector(\"slot[name='slug']\")\n ?.classList.toggle(\n `${prefix}--slug--revert`,\n this.querySelector(`${prefix}-slug`)?.hasAttribute('revert-active')\n );\n }\n }\n\n /**\n * A selector that will return the slug item.\n *\n * remove in v12\n */\n static get slugItem() {\n return `${prefix}-slug`;\n }\n\n /**\n * A selector that will return the AI Label item.\n */\n static get aiLabelItem() {\n return `${prefix}-ai-label`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n\nexport default CDSTextInput;\n"],"names":["customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"text-input.js","sources":["../../../src/components/text-input/text-input.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 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 { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport WarningFilled16 from '@carbon/icons/es/warning--filled/16.js';\nimport WarningAltFilled16 from '@carbon/icons/es/warning--alt--filled/16.js';\nimport View16 from '@carbon/icons/es/view/16.js';\nimport ViewOff16 from '@carbon/icons/es/view--off/16.js';\nimport FormMixin from '../../globals/mixins/form';\nimport ValidityMixin from '../../globals/mixins/validity';\nimport {\n INPUT_COLOR_SCHEME,\n INPUT_SIZE,\n INPUT_TOOLTIP_ALIGNMENT,\n INPUT_TOOLTIP_DIRECTION,\n INPUT_TYPE,\n} from './defs';\nimport styles from './text-input.scss?lit';\n\nexport {\n INPUT_COLOR_SCHEME,\n INPUT_SIZE,\n INPUT_TOOLTIP_ALIGNMENT,\n INPUT_TOOLTIP_DIRECTION,\n INPUT_TYPE,\n};\n\n/**\n * Text Input element. Supports all the usual attributes for textual input types\n *\n * @element cds-text-input\n * @slot helper-text - The helper text.\n * @slot label-text - The label text.\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}-text-input`)\nclass CDSTextInput extends ValidityMixin(FormMixin(LitElement)) {\n /**\n * `true` if there is an AI Label.\n */\n protected _hasAILabel = false;\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleSlotChange({ target }: Event) {\n const hasContent = (target as HTMLSlotElement)\n .assignedNodes()\n .filter((elem) =>\n (elem as HTMLElement).matches !== undefined\n ? (elem as HTMLElement).matches(\n (this.constructor as typeof CDSTextInput).aiLabelItem\n ) ||\n // remove reference to slug in v12\n (elem as HTMLElement).matches(\n (this.constructor as typeof CDSTextInput).slugItem\n )\n : false\n );\n\n this._hasAILabel = Boolean(hasContent);\n (hasContent[0] as HTMLElement).setAttribute('size', 'mini');\n this.requestUpdate();\n }\n /**\n * The underlying input element\n */\n @query('input')\n protected _input!: HTMLInputElement;\n\n @query('slot[name=\"helper-text\"]')\n protected _slotHelperTextNode!: HTMLSlotElement;\n\n /**\n * The internal value.\n */\n protected _value = '';\n\n /**\n * Handles `oninput` event on the `input`.\n *\n * @param event The event.\n * @param event.target The event target.\n */\n protected _handleInput({ target }: Event) {\n this.value = (target as HTMLInputElement).value;\n }\n\n _handleFormdata(event: FormDataEvent) {\n const { formData } = event;\n const { disabled, name, value } = this;\n if (!disabled) {\n formData.append(name, value);\n }\n }\n\n protected _handleHelperTextSlotChange() {\n this.requestUpdate();\n }\n\n /**\n * May be any of the standard HTML autocomplete options\n */\n @property()\n autocomplete = '';\n\n /**\n * Sets the input to be focussed automatically on page load. Defaults to false\n */\n @property({ type: Boolean })\n autofocus = false;\n\n /**\n * Controls the disabled state of the input\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Specify whether to display the character counter\n */\n @property({ type: Boolean, attribute: 'enable-counter', reflect: true })\n enableCounter = false;\n\n /**\n * The helper text.\n */\n @property({ attribute: 'helper-text' })\n helperText = '';\n\n /**\n * Specify if the currently value is invalid.\n */\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /**\n * Message which is displayed if the value is invalid.\n */\n @property({ attribute: 'invalid-text' })\n invalidText = '';\n\n /**\n * Max character count allowed for input. This is needed in order for enableCounter to display\n */\n @property({ type: Number, attribute: 'max-count', reflect: true })\n maxCount;\n\n /**\n * Specify whether the control is currently in warning state\n */\n @property({ type: Boolean, reflect: true })\n warn = false;\n\n /**\n * Provide the text that is displayed when the control is in warning state\n */\n @property({ attribute: 'warn-text' })\n warnText = '';\n\n /**\n * Specify whether you want the underlying label to be visually hidden\n */\n @property({ attribute: 'hide-label', type: Boolean, reflect: true })\n hideLabel = false;\n\n /**\n * Generic label that will be used as the textual representation of what this field is for\n */\n @property({ attribute: 'label' })\n label = '';\n\n /**\n * Name for the input in the `FormData`\n */\n @property()\n name = '';\n\n /**\n * Pattern to validate the input against for HTML validity checking\n */\n @property()\n pattern = '';\n\n /**\n * Value to display when the input has an empty `value`\n */\n @property({ reflect: true })\n placeholder = '';\n\n /**\n * Specify if the component should be read-only\n */\n @property({ type: Boolean, reflect: true })\n readonly = false;\n\n /**\n * Boolean property to set the required status\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * The special validity message for `required`.\n */\n @property({ attribute: 'required-validity-message' })\n requiredValidityMessage = 'Please fill out this field.';\n\n /**\n * \"Hide password\" tooltip text on password visibility toggle\n *\n * @deprecated will be removed in the next major version, use `cds-password-input` instead\n */\n @property()\n hidePasswordLabel = 'Hide password';\n\n /**\n * \"Show password\" tooltip text on password visibility toggle\n *\n * @deprecated will be removed in the next major version, use `cds-password-input` instead\n */\n @property()\n showPasswordLabel = 'Show password';\n\n /**\n * Boolean property to render password visibility toggle\n *\n * @deprecated will be removed in the next major version, use `cds-password-input` instead\n */\n @property({\n type: Boolean,\n attribute: 'show-password-visibility-toggle',\n reflect: true,\n })\n showPasswordVisibilityToggle = false;\n\n /**\n * The input box size.\n */\n @property({ reflect: true })\n size = INPUT_SIZE.MEDIUM;\n\n @property({ type: Boolean })\n isFluid = false;\n\n /**\n * true to use the inline version.\n */\n @property({ type: Boolean, reflect: true })\n inline = false;\n\n /**\n * Specify the alignment of the tooltip to the icon-only button.\n * Can be one of: start, center, or end.\n */\n @property()\n tooltipAlignment = INPUT_TOOLTIP_ALIGNMENT.CENTER;\n\n /**\n * Specify the direction of the tooltip for icon-only buttons.\n * Can be either top, right, bottom, or left.\n */\n @property()\n tooltipDirection = INPUT_TOOLTIP_DIRECTION.BOTTOM;\n\n /**\n * The type of the input. Can be one of the types listed in the INPUT_TYPE enum\n */\n @property({ reflect: true })\n type = INPUT_TYPE.TEXT;\n\n /**\n * The validity message. If present and non-empty, this input shows the UI of its invalid state.\n */\n @property({ attribute: 'validity-message' })\n validityMessage = '';\n\n /**\n * The value of the input.\n */\n @property({ reflect: true })\n get value() {\n // FIXME: Figure out how to deal with TS2611\n // once we have the input we can directly query for the value\n if (this._input) {\n return this._input.value;\n }\n // but before then _value will work fine\n return this._value;\n }\n\n set value(value) {\n const oldValue = this._value;\n this._value = value;\n // make sure that lit-element updates the right properties\n this.requestUpdate('value', oldValue);\n // we set the value directly on the input (when available)\n // so that programatic manipulation updates the UI correctly\n if (this._input) {\n this._input.value = value;\n }\n }\n\n /**\n * Handles password visibility toggle button click\n *\n * @deprecated will be removed in the next major version, use `cds-password-input` instead\n */\n private togglePasswordVisibility() {\n this.type =\n this.type === INPUT_TYPE.PASSWORD ? INPUT_TYPE.TEXT : INPUT_TYPE.PASSWORD;\n }\n\n render() {\n const {\n disabled,\n enableCounter,\n helperText,\n hideLabel,\n inline,\n isFluid,\n invalid,\n invalidText,\n label,\n maxCount,\n readonly,\n required,\n size,\n type,\n warn,\n warnText,\n value,\n _handleInput: handleInput,\n _hasAILabel: hasAILabel,\n _handleSlotChange: handleSlotChange,\n } = this;\n\n const invalidIcon = iconLoader(WarningFilled16, {\n class: `${prefix}--text-input__invalid-icon`,\n });\n\n const warnIcon = iconLoader(WarningAltFilled16, {\n class: `${prefix}--text-input__invalid-icon ${prefix}--text-input__invalid-icon--warning`,\n });\n\n const normalizedProps: {\n disabled: boolean;\n invalid: boolean;\n warn: boolean;\n 'slot-name': string;\n 'slot-text': string;\n icon: ReturnType<typeof iconLoader>;\n } = {\n disabled: !readonly && disabled,\n invalid: !readonly && invalid,\n warn: !readonly && !invalid && warn,\n 'slot-name': '',\n 'slot-text': '',\n icon: null,\n };\n\n if (normalizedProps.invalid) {\n normalizedProps.icon = invalidIcon;\n normalizedProps['slot-name'] = 'invalid-text';\n normalizedProps['slot-text'] = invalidText;\n } else if (normalizedProps.warn) {\n normalizedProps.icon = warnIcon;\n normalizedProps['slot-name'] = 'warn-text';\n normalizedProps['slot-text'] = warnText;\n }\n\n const counterClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--text-input__label-counter`]: true,\n [`${prefix}--label--disabled`]: disabled,\n });\n\n const inputWrapperClasses = classMap({\n [`${prefix}--form-item`]: true,\n [`${prefix}--text-input-wrapper`]: true,\n [`${prefix}--text-input-wrapper--inline`]: inline,\n [`${prefix}--text-input-wrapper--readonly`]: readonly,\n [`${prefix}--text-input-wrapper--inline--invalid`]:\n inline && normalizedProps.invalid,\n });\n\n const inputClasses = classMap({\n [`${prefix}--text-input`]: true,\n [`${prefix}--text-input--invalid`]: normalizedProps.invalid,\n [`${prefix}--text-input--warning`]: normalizedProps.warn,\n [`${prefix}--text-input--${size}`]: size,\n [`${prefix}--layout--size-${size}`]: size,\n [`${prefix}--password-input`]: type === INPUT_TYPE.PASSWORD, // TODO: deprecated, remove in v12\n [`${prefix}--text-input__field-wrapper--decorator`]: hasAILabel,\n });\n\n const fieldOuterWrapperClasses = classMap({\n [`${prefix}--text-input__field-outer-wrapper`]: true,\n [`${prefix}--text-input__field-outer-wrapper--inline`]: inline,\n });\n\n const fieldWrapperClasses = classMap({\n [`${prefix}--text-input__field-wrapper`]: true,\n [`${prefix}--text-input__field-wrapper--warning`]: normalizedProps.warn,\n });\n\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--visually-hidden`]: hideLabel,\n [`${prefix}--label--disabled`]: normalizedProps.disabled,\n });\n\n const helperTextClasses = classMap({\n [`${prefix}--form__helper-text`]: true,\n [`${prefix}--form__helper-text--disabled`]: normalizedProps.disabled,\n });\n\n // TODO: deprecated, remove in v12\n const passwordIsVisible = type !== INPUT_TYPE.PASSWORD;\n const passwordVisibilityIcon = passwordIsVisible\n ? iconLoader(ViewOff16, { class: `${prefix}--icon-visibility-off` })\n : iconLoader(View16, { class: `${prefix}--icon-visibility-on` });\n\n // TODO: deprecated, remove in v12\n const passwordVisibilityToggleClasses = classMap({\n [`${prefix}--text-input--password__visibility__toggle`]: true,\n [`${prefix}--btn`]: true,\n [`${prefix}--btn--icon-only`]: true,\n [`${prefix}--tooltip__trigger`]: true,\n [`${prefix}--tooltip--a11y`]: true,\n [`${prefix}--btn--disabled`]: normalizedProps.disabled,\n [`${prefix}--tooltip--${this.tooltipDirection}`]: this.tooltipDirection,\n [`${prefix}--tooltip--align-${this.tooltipAlignment}`]:\n this.tooltipAlignment,\n });\n\n // TODO: deprecated, remove in v12\n const passwordButtonLabel = html`\n <span class=\"${prefix}--assistive-text\">\n ${passwordIsVisible ? this.hidePasswordLabel : this.showPasswordLabel}\n </span>\n `;\n\n // TODO: deprecated, remove in v12\n const passwordVisibilityButton = () => html`\n <button\n type=\"button\"\n class=\"${passwordVisibilityToggleClasses}\"\n ?disabled=\"${normalizedProps.disabled}\"\n @click=\"${this.togglePasswordVisibility}\">\n ${!normalizedProps.disabled ? passwordButtonLabel : null}\n ${passwordVisibilityIcon}\n </button>\n `;\n\n const textCount = value?.length;\n\n const counter =\n enableCounter && maxCount\n ? html` <label class=\"${counterClasses}\">\n <slot name=\"label-text\">${textCount}/${maxCount}</slot>\n </label>`\n : null;\n\n const labelWrapper = html`<div class=\"${prefix}--text-input__label-wrapper\">\n <label class=\"${labelClasses}\">\n <slot name=\"label-text\">${label}</slot>\n </label>\n ${counter}\n </div>`;\n\n const hasHelperText =\n helperText || (this._slotHelperTextNode?.assignedNodes().length ?? 0) > 0;\n\n const helper = html`<div\n class=\"${helperTextClasses}\"\n id=\"helper-text\"\n ?hidden=\"${normalizedProps.invalid ||\n normalizedProps.warn ||\n !hasHelperText}\">\n <slot\n name=\"helper-text\"\n @slotchange=\"${this._handleHelperTextSlotChange}\">\n ${helperText}\n </slot>\n </div>`;\n\n const validationMessage =\n normalizedProps.invalid || normalizedProps.warn\n ? html`<div\n class=\"${prefix}--form-requirement\"\n ?hidden=\"${!normalizedProps.invalid && !normalizedProps.warn}\">\n <slot name=\"${normalizedProps['slot-name']}\">\n ${normalizedProps['slot-text']}\n </slot>\n </div>`\n : null;\n\n return html`\n <div class=\"${inputWrapperClasses}\">\n ${!inline\n ? labelWrapper\n : html`<div class=\"${prefix}--text-input__label-helper-wrapper\">\n ${labelWrapper} ${!isFluid ? validationMessage || helper : null}\n </div>`}\n <div class=\"${fieldOuterWrapperClasses}\">\n <div class=\"${fieldWrapperClasses}\" ?data-invalid=\"${invalid}\">\n ${normalizedProps.icon}\n <input\n autocomplete=\"${this.autocomplete}\"\n ?autofocus=\"${this.autofocus}\"\n class=\"${inputClasses}\"\n ?data-invalid=\"${invalid}\"\n ?disabled=\"${disabled}\"\n ?aria-describedby=\"${hasHelperText ? 'helper-text' : undefined}\"\n id=\"input\"\n name=\"${ifNonEmpty(this.name)}\"\n pattern=\"${ifNonEmpty(this.pattern)}\"\n placeholder=\"${ifNonEmpty(this.placeholder)}\"\n ?readonly=\"${readonly}\"\n ?required=\"${required}\"\n type=\"${ifNonEmpty(type)}\"\n .value=\"${this._value}\"\n maxlength=\"${ifNonEmpty(maxCount)}\"\n @input=\"${handleInput}\" />\n <slot name=\"ai-label\" @slotchange=\"${handleSlotChange}\"></slot>\n <slot name=\"slug\" @slotchange=\"${handleSlotChange}\"></slot>\n ${this.showPasswordVisibilityToggle &&\n (type === INPUT_TYPE.PASSWORD || type === INPUT_TYPE.TEXT)\n ? passwordVisibilityButton()\n : null}\n ${isFluid\n ? html`<hr class=\"${prefix}--text-input__divider\" />`\n : null}\n ${isFluid && !inline ? validationMessage : null}\n </div>\n\n ${/* Non-fluid: validation and helper outside field wrapper */ ''}\n ${!isFluid && !inline ? validationMessage || helper : null}\n </div>\n </div>\n `;\n }\n\n updated() {\n this.toggleAttribute('ai-label', this._hasAILabel);\n const label = this.shadowRoot?.querySelector(\"slot[name='ai-label']\");\n\n if (label) {\n label?.classList.toggle(\n `${prefix}--slug--revert`,\n this.querySelector(`${prefix}-ai-label`)?.hasAttribute('revert-active')\n );\n } else {\n this.shadowRoot\n ?.querySelector(\"slot[name='slug']\")\n ?.classList.toggle(\n `${prefix}--slug--revert`,\n this.querySelector(`${prefix}-slug`)?.hasAttribute('revert-active')\n );\n }\n }\n\n /**\n * A selector that will return the slug item.\n *\n * remove in v12\n */\n static get slugItem() {\n return `${prefix}-slug`;\n }\n\n /**\n * A selector that will return the AI Label item.\n */\n static get aiLabelItem() {\n return `${prefix}-ai-label`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n\nexport default CDSTextInput;\n"],"names":["customElement"],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ import { classMap } from 'lit/directives/class-map.js';
|
|
|
21
21
|
import { carbonElement } from '../../globals/decorators/carbon-element.js';
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
|
-
* Copyright IBM Corp. 2019,
|
|
24
|
+
* Copyright IBM Corp. 2019, 2026
|
|
25
25
|
*
|
|
26
26
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
27
27
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -145,7 +145,7 @@ let CDSExpandableTile = class CDSExpandableTile extends HostListenerMixin(FocusM
|
|
|
145
145
|
aria-controls="below-the-fold-content"
|
|
146
146
|
tabindex="0"
|
|
147
147
|
@click="${withInteractive ? this._handleExpand : ''}"
|
|
148
|
-
aria-expanded="${String(
|
|
148
|
+
aria-expanded="${String(expanded)}">
|
|
149
149
|
${iconLoader(ChevronDown16, { id: 'icon' })}
|
|
150
150
|
</button>
|
|
151
151
|
<slot name="ai-label" @slotchange="${this._handleSlotChange}"></slot>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expandable-tile.js","sources":["../../../src/components/tile/expandable-tile.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2023\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 } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport ChevronDown16 from '@carbon/icons/es/chevron--down/16.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport HostListener from '../../globals/decorators/host-listener';\nimport FocusMixin from '../../globals/mixins/focus';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { TILE_COLOR_SCHEME } from './defs';\nimport styles from './tile.scss?lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Expandable tile.\n *\n * @element cds-expandable-tile\n * @fires cds-expandable-tile-beingtoggled\n * The custom event fired before the expanded state is changed upon a user gesture.\n * Cancellation of this event stops changing the user-initiated change in expanded state.\n * @fires cds-expandable-tile-toggled - The custom event fired after a the expanded state is changed upon a user gesture.\n */\n@customElement(`${prefix}-expandable-tile`)\nclass CDSExpandableTile extends HostListenerMixin(FocusMixin(LitElement)) {\n /**\n * The computed height of the below-the-fold content.\n */\n private _belowTheContentHeight = 0;\n\n /**\n * `true` if there is an AI Label.\n */\n protected _hasAILabel = false;\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleSlotChange({ target }: Event) {\n const hasContent = (target as HTMLSlotElement)\n .assignedNodes()\n .filter((elem) =>\n (elem as HTMLElement).matches !== undefined\n ? (elem as HTMLElement).matches(\n (this.constructor as typeof CDSExpandableTile)?.aiLabelItem\n ) ||\n // remove reference of slug in v12\n (elem as HTMLElement).matches(\n (this.constructor as typeof CDSExpandableTile)?.slugItem\n )\n : false\n );\n\n if (hasContent.length > 0) {\n this._hasAILabel = Boolean(hasContent);\n (hasContent[0] as HTMLElement).setAttribute('size', 'xs');\n }\n this.requestUpdate();\n }\n\n /**\n * Handles `slotchange` event on the below-the-fold content.\n *\n * @param event The event.\n */\n private _handleSlotChangeBelowTheFoldContent(event: Event) {\n this._belowTheContentHeight = (event.target as HTMLSlotElement)\n .assignedNodes()\n .reduce(\n (acc, item) => acc + ((item as HTMLElement).offsetHeight ?? 0),\n 0\n );\n\n if (!this._belowTheContentHeight) {\n const element = getComputedStyle(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n this.querySelector('cds-tile-below-the-fold-content') as any\n );\n this._belowTheContentHeight = parseInt(element.height, 10);\n }\n this.requestUpdate();\n }\n\n private _handleExpand() {\n const expanded = !this.expanded;\n this.focus();\n const init = {\n bubbles: true,\n composed: true,\n detail: {\n expanded,\n },\n };\n const constructor = this.constructor as typeof CDSExpandableTile;\n const beforeChangeEvent = new CustomEvent(constructor.eventBeforeToggle, {\n ...init,\n cancelable: true,\n });\n if (this.dispatchEvent(beforeChangeEvent)) {\n this.expanded = expanded;\n const afterChangeEvent = new CustomEvent(constructor.eventToggle, init);\n this.dispatchEvent(afterChangeEvent);\n }\n }\n\n @HostListener('click')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleClick = () => {\n if (!this.withInteractive) {\n this._handleExpand();\n }\n };\n\n /**\n * The color scheme.\n */\n @property({ attribute: 'color-scheme', reflect: true })\n colorScheme = TILE_COLOR_SCHEME.REGULAR;\n\n /**\n * `true` to expand this expandable tile.\n */\n @property({ type: Boolean, reflect: true })\n expanded = false;\n\n /**\n * Specify if the `ExpandableTile` component should be rendered with rounded corners.\n * Only valid when `ai-label` prop is present\n */\n @property({ type: Boolean, attribute: 'has-rounded-corners' })\n hasRoundedCorners = false;\n\n /**\n * `true` to expand this expandable tile.\n */\n @property({ type: Boolean, reflect: true, attribute: 'with-interactive' })\n withInteractive = false;\n\n updated() {\n if (this._hasAILabel) {\n this.setAttribute('ai-label', '');\n } else {\n this.removeAttribute('ai-label');\n }\n }\n\n render() {\n const {\n expanded,\n withInteractive,\n _belowTheContentHeight: belowTheContentHeight,\n _handleSlotChangeBelowTheFoldContent: handleSlotChangeBelowTheFoldContent,\n } = this;\n\n const classes = classMap({\n [`${prefix}--tile__chevron`]: true,\n [`${prefix}--tile__chevron--interactive`]: withInteractive,\n });\n return html`\n <button\n class=\"${classes}\"\n aria-labelledby=\"above-the-fold-content\"\n aria-controls=\"below-the-fold-content\"\n tabindex=\"0\"\n @click=\"${withInteractive ? this._handleExpand : ''}\"\n aria-expanded=\"${String(Boolean(expanded))}\">\n ${iconLoader(ChevronDown16, { id: 'icon' })}\n </button>\n <slot name=\"ai-label\" @slotchange=\"${this._handleSlotChange}\"></slot>\n <slot name=\"slug\" @slotchange=\"${this._handleSlotChange}\"></slot>\n <slot name=\"decorator\"></slot>\n <div id=\"content\" class=\"${prefix}--tile-content\">\n <div><slot name=\"above-the-fold-content\"></slot></div>\n <div\n class=\"${prefix}-ce--expandable-tile--below-the-fold-content\"\n style=\"${ifDefined(\n !expanded ? undefined : `max-height: ${belowTheContentHeight}px`\n )}\">\n <slot @slotchange=\"${handleSlotChangeBelowTheFoldContent}\"></slot>\n </div>\n </div>\n `;\n }\n\n /**\n * A selector that will return the slug item.\n *\n * remove in v12\n */\n static get slugItem() {\n return `${prefix}-slug`;\n }\n\n /**\n * A selector that will return the AI Label item.\n */\n static get aiLabelItem() {\n return `${prefix}-ai-label`;\n }\n\n /**\n * The name of the custom event fired before the expanded state is changed upon a user gesture.\n * Cancellation of this event stops changing the user-initiated change in expanded state.\n */\n static get eventBeforeToggle() {\n return `${prefix}-expandable-tile-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after a the expanded state is changed upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-expandable-tile-toggled`;\n }\n\n static styles = styles;\n}\n\nexport default CDSExpandableTile;\n"],"names":["TILE_COLOR_SCHEME","customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"expandable-tile.js","sources":["../../../src/components/tile/expandable-tile.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2026\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 } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport ChevronDown16 from '@carbon/icons/es/chevron--down/16.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport HostListener from '../../globals/decorators/host-listener';\nimport FocusMixin from '../../globals/mixins/focus';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { TILE_COLOR_SCHEME } from './defs';\nimport styles from './tile.scss?lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Expandable tile.\n *\n * @element cds-expandable-tile\n * @fires cds-expandable-tile-beingtoggled\n * The custom event fired before the expanded state is changed upon a user gesture.\n * Cancellation of this event stops changing the user-initiated change in expanded state.\n * @fires cds-expandable-tile-toggled - The custom event fired after a the expanded state is changed upon a user gesture.\n */\n@customElement(`${prefix}-expandable-tile`)\nclass CDSExpandableTile extends HostListenerMixin(FocusMixin(LitElement)) {\n /**\n * The computed height of the below-the-fold content.\n */\n private _belowTheContentHeight = 0;\n\n /**\n * `true` if there is an AI Label.\n */\n protected _hasAILabel = false;\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleSlotChange({ target }: Event) {\n const hasContent = (target as HTMLSlotElement)\n .assignedNodes()\n .filter((elem) =>\n (elem as HTMLElement).matches !== undefined\n ? (elem as HTMLElement).matches(\n (this.constructor as typeof CDSExpandableTile)?.aiLabelItem\n ) ||\n // remove reference of slug in v12\n (elem as HTMLElement).matches(\n (this.constructor as typeof CDSExpandableTile)?.slugItem\n )\n : false\n );\n\n if (hasContent.length > 0) {\n this._hasAILabel = Boolean(hasContent);\n (hasContent[0] as HTMLElement).setAttribute('size', 'xs');\n }\n this.requestUpdate();\n }\n\n /**\n * Handles `slotchange` event on the below-the-fold content.\n *\n * @param event The event.\n */\n private _handleSlotChangeBelowTheFoldContent(event: Event) {\n this._belowTheContentHeight = (event.target as HTMLSlotElement)\n .assignedNodes()\n .reduce(\n (acc, item) => acc + ((item as HTMLElement).offsetHeight ?? 0),\n 0\n );\n\n if (!this._belowTheContentHeight) {\n const element = getComputedStyle(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n this.querySelector('cds-tile-below-the-fold-content') as any\n );\n this._belowTheContentHeight = parseInt(element.height, 10);\n }\n this.requestUpdate();\n }\n\n private _handleExpand() {\n const expanded = !this.expanded;\n this.focus();\n const init = {\n bubbles: true,\n composed: true,\n detail: {\n expanded,\n },\n };\n const constructor = this.constructor as typeof CDSExpandableTile;\n const beforeChangeEvent = new CustomEvent(constructor.eventBeforeToggle, {\n ...init,\n cancelable: true,\n });\n if (this.dispatchEvent(beforeChangeEvent)) {\n this.expanded = expanded;\n const afterChangeEvent = new CustomEvent(constructor.eventToggle, init);\n this.dispatchEvent(afterChangeEvent);\n }\n }\n\n @HostListener('click')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleClick = () => {\n if (!this.withInteractive) {\n this._handleExpand();\n }\n };\n\n /**\n * The color scheme.\n */\n @property({ attribute: 'color-scheme', reflect: true })\n colorScheme = TILE_COLOR_SCHEME.REGULAR;\n\n /**\n * `true` to expand this expandable tile.\n */\n @property({ type: Boolean, reflect: true })\n expanded = false;\n\n /**\n * Specify if the `ExpandableTile` component should be rendered with rounded corners.\n * Only valid when `ai-label` prop is present\n */\n @property({ type: Boolean, attribute: 'has-rounded-corners' })\n hasRoundedCorners = false;\n\n /**\n * `true` to expand this expandable tile.\n */\n @property({ type: Boolean, reflect: true, attribute: 'with-interactive' })\n withInteractive = false;\n\n updated() {\n if (this._hasAILabel) {\n this.setAttribute('ai-label', '');\n } else {\n this.removeAttribute('ai-label');\n }\n }\n\n render() {\n const {\n expanded,\n withInteractive,\n _belowTheContentHeight: belowTheContentHeight,\n _handleSlotChangeBelowTheFoldContent: handleSlotChangeBelowTheFoldContent,\n } = this;\n\n const classes = classMap({\n [`${prefix}--tile__chevron`]: true,\n [`${prefix}--tile__chevron--interactive`]: withInteractive,\n });\n return html`\n <button\n class=\"${classes}\"\n aria-labelledby=\"above-the-fold-content\"\n aria-controls=\"below-the-fold-content\"\n tabindex=\"0\"\n @click=\"${withInteractive ? this._handleExpand : ''}\"\n aria-expanded=\"${String(expanded)}\">\n ${iconLoader(ChevronDown16, { id: 'icon' })}\n </button>\n <slot name=\"ai-label\" @slotchange=\"${this._handleSlotChange}\"></slot>\n <slot name=\"slug\" @slotchange=\"${this._handleSlotChange}\"></slot>\n <slot name=\"decorator\"></slot>\n <div id=\"content\" class=\"${prefix}--tile-content\">\n <div><slot name=\"above-the-fold-content\"></slot></div>\n <div\n class=\"${prefix}-ce--expandable-tile--below-the-fold-content\"\n style=\"${ifDefined(\n !expanded ? undefined : `max-height: ${belowTheContentHeight}px`\n )}\">\n <slot @slotchange=\"${handleSlotChangeBelowTheFoldContent}\"></slot>\n </div>\n </div>\n `;\n }\n\n /**\n * A selector that will return the slug item.\n *\n * remove in v12\n */\n static get slugItem() {\n return `${prefix}-slug`;\n }\n\n /**\n * A selector that will return the AI Label item.\n */\n static get aiLabelItem() {\n return `${prefix}-ai-label`;\n }\n\n /**\n * The name of the custom event fired before the expanded state is changed upon a user gesture.\n * Cancellation of this event stops changing the user-initiated change in expanded state.\n */\n static get eventBeforeToggle() {\n return `${prefix}-expandable-tile-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after a the expanded state is changed upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-expandable-tile-toggled`;\n }\n\n static styles = styles;\n}\n\nexport default CDSExpandableTile;\n"],"names":["TILE_COLOR_SCHEME","customElement"],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ import { TIME_PICKER_SIZE } from './defs.js';
|
|
|
20
20
|
import FormMixin from '../../globals/mixins/form.js';
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
-
* Copyright IBM Corp. 2020,
|
|
23
|
+
* Copyright IBM Corp. 2020, 2026
|
|
24
24
|
*
|
|
25
25
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
26
26
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -163,7 +163,7 @@ let CDSTimePickerSelect = class CDSTimePickerSelect extends FormMixin(LitElement
|
|
|
163
163
|
<select
|
|
164
164
|
id="${ifDefined(id)}"
|
|
165
165
|
class="${inputClasses}"
|
|
166
|
-
aria-readonly="${String(
|
|
166
|
+
aria-readonly="${String(readOnly)}"
|
|
167
167
|
?disabled="${disabled}"
|
|
168
168
|
aria-label="${ifDefined(ariaLabel)}"
|
|
169
169
|
.value="${ifDefined(value)}"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-picker-select.js","sources":["../../../src/components/time-picker/time-picker-select.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2020, 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 { html, LitElement } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport ChevronDown16 from '@carbon/icons/es/chevron--down/16.js';\nimport { filter } from '../../globals/internal/collection-helpers';\nimport styles from './time-picker.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { TIME_PICKER_SIZE } from './defs';\nimport FormMixin from '../../globals/mixins/form';\n\n/**\n * Time picker select dropdown.\n *\n * @element cds-time-picker-select\n */\n@customElement(`${prefix}-time-picker-select`)\nclass CDSTimePickerSelect extends FormMixin(LitElement) {\n /**\n * The mutation observer for DOM mutation.\n */\n private _observerMutation: MutationObserver | null = null;\n\n /**\n * The select element.\n */\n @query('select')\n private _selectNode!: HTMLSelectElement;\n\n /**\n * The ARIA label for the UI control.\n */\n @property({ attribute: 'aria-label' })\n ariaLabel = 'open list of options';\n\n /**\n * Optionally provide the default value of the select\n */\n @property({ attribute: 'default-value' })\n defaultValue = '';\n\n /**\n * Controls the readOnly state of the select\n */\n @property({ type: Boolean, reflect: true })\n readOnly = false;\n\n /**\n * Specify whether the control is disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Specify a custom id for the select box\n */\n @property({ reflect: true })\n id = '';\n\n /**\n * Name for the select in the `FormData`\n */\n @property()\n name = '';\n\n /**\n * The value of the select.\n */\n @property({ reflect: true })\n value = '';\n\n /**\n * Size of the time picker select\n */\n @property({ reflect: true })\n size = TIME_PICKER_SIZE.MEDIUM;\n\n /**\n * Handles `oninput` event on the `<select>`.\n *\n * @param event The event.\n * @param event.target The event target.\n */\n private _handleInput(event: Event) {\n const { value } = event.target as HTMLSelectElement;\n this.value = value;\n const { eventSelect } = this.constructor as typeof CDSTimePickerSelect;\n this.dispatchEvent(\n new CustomEvent(eventSelect, {\n bubbles: true,\n composed: true,\n detail: {\n value,\n },\n })\n );\n }\n\n /**\n * Handles DOM mutation of select items\n */\n private _handleMutation = () => {\n this.requestUpdate();\n };\n\n /**\n * @returns The template containing child `<option>` elements from select items.\n */\n private _renderItems() {\n const selectorItem = `${prefix}-select-item`;\n\n return filter(\n this.childNodes,\n (item) =>\n item.nodeType === Node.ELEMENT_NODE &&\n (item as Element).matches(selectorItem)\n ).map((item) => {\n const disabled = item.hasAttribute('disabled');\n const label = item.getAttribute('label');\n const selected = item.hasAttribute('selected');\n const value = item.getAttribute('value');\n const { textContent } = item;\n\n return html`\n <option\n ?disabled=\"${disabled}\"\n label=\"${ifDefined(label)}\"\n ?selected=\"${selected}\"\n value=\"${ifDefined(value)}\">\n ${textContent}\n </option>\n `;\n });\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; // TODO: Wait for `FormDataEvent` being available in `lib.dom.d.ts`\n const { disabled, name, value } = this;\n if (!disabled) {\n formData.append(name, value);\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n this._observerMutation = new MutationObserver(this._handleMutation);\n this._observerMutation.observe(this, {\n attributes: true,\n childList: true,\n subtree: true,\n });\n }\n\n disconnectedCallback() {\n if (this._observerMutation) {\n this._observerMutation.disconnect();\n this._observerMutation = null;\n }\n super.disconnectedCallback();\n }\n\n updated(changedProperties) {\n if (\n changedProperties.has('defaultValue') &&\n this.defaultValue &&\n !this.value\n ) {\n this.value = this.defaultValue;\n }\n\n if (changedProperties.has('value')) {\n if (this._selectNode) {\n this._selectNode.value = this.value;\n }\n }\n }\n\n render() {\n const {\n ariaLabel,\n disabled,\n size,\n id,\n value,\n readOnly,\n _handleInput: handleInput,\n } = this;\n\n const inputClasses = classMap({\n [`${prefix}--select-input`]: true,\n [`${prefix}--select-input--${size}`]: size,\n });\n\n return html`\n <select\n id=\"${ifDefined(id)}\"\n class=\"${inputClasses}\"\n aria-readonly=\"${String(Boolean(readOnly))}\"\n ?disabled=\"${disabled}\"\n aria-label=\"${ifDefined(ariaLabel)}\"\n .value=\"${ifDefined(value)}\"\n @input=\"${handleInput}\">\n ${this._renderItems()}\n </select>\n ${iconLoader(ChevronDown16, {\n class: `${prefix}--select__arrow`,\n 'aria-hidden': 'true',\n })}\n `;\n }\n static get eventSelect() {\n return `${prefix}-select-selected`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n static styles = styles;\n}\n\nexport default CDSTimePickerSelect;\n"],"names":["customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"time-picker-select.js","sources":["../../../src/components/time-picker/time-picker-select.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2020, 2026\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 { html, LitElement } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport ChevronDown16 from '@carbon/icons/es/chevron--down/16.js';\nimport { filter } from '../../globals/internal/collection-helpers';\nimport styles from './time-picker.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { TIME_PICKER_SIZE } from './defs';\nimport FormMixin from '../../globals/mixins/form';\n\n/**\n * Time picker select dropdown.\n *\n * @element cds-time-picker-select\n */\n@customElement(`${prefix}-time-picker-select`)\nclass CDSTimePickerSelect extends FormMixin(LitElement) {\n /**\n * The mutation observer for DOM mutation.\n */\n private _observerMutation: MutationObserver | null = null;\n\n /**\n * The select element.\n */\n @query('select')\n private _selectNode!: HTMLSelectElement;\n\n /**\n * The ARIA label for the UI control.\n */\n @property({ attribute: 'aria-label' })\n ariaLabel = 'open list of options';\n\n /**\n * Optionally provide the default value of the select\n */\n @property({ attribute: 'default-value' })\n defaultValue = '';\n\n /**\n * Controls the readOnly state of the select\n */\n @property({ type: Boolean, reflect: true })\n readOnly = false;\n\n /**\n * Specify whether the control is disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Specify a custom id for the select box\n */\n @property({ reflect: true })\n id = '';\n\n /**\n * Name for the select in the `FormData`\n */\n @property()\n name = '';\n\n /**\n * The value of the select.\n */\n @property({ reflect: true })\n value = '';\n\n /**\n * Size of the time picker select\n */\n @property({ reflect: true })\n size = TIME_PICKER_SIZE.MEDIUM;\n\n /**\n * Handles `oninput` event on the `<select>`.\n *\n * @param event The event.\n * @param event.target The event target.\n */\n private _handleInput(event: Event) {\n const { value } = event.target as HTMLSelectElement;\n this.value = value;\n const { eventSelect } = this.constructor as typeof CDSTimePickerSelect;\n this.dispatchEvent(\n new CustomEvent(eventSelect, {\n bubbles: true,\n composed: true,\n detail: {\n value,\n },\n })\n );\n }\n\n /**\n * Handles DOM mutation of select items\n */\n private _handleMutation = () => {\n this.requestUpdate();\n };\n\n /**\n * @returns The template containing child `<option>` elements from select items.\n */\n private _renderItems() {\n const selectorItem = `${prefix}-select-item`;\n\n return filter(\n this.childNodes,\n (item) =>\n item.nodeType === Node.ELEMENT_NODE &&\n (item as Element).matches(selectorItem)\n ).map((item) => {\n const disabled = item.hasAttribute('disabled');\n const label = item.getAttribute('label');\n const selected = item.hasAttribute('selected');\n const value = item.getAttribute('value');\n const { textContent } = item;\n\n return html`\n <option\n ?disabled=\"${disabled}\"\n label=\"${ifDefined(label)}\"\n ?selected=\"${selected}\"\n value=\"${ifDefined(value)}\">\n ${textContent}\n </option>\n `;\n });\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; // TODO: Wait for `FormDataEvent` being available in `lib.dom.d.ts`\n const { disabled, name, value } = this;\n if (!disabled) {\n formData.append(name, value);\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n this._observerMutation = new MutationObserver(this._handleMutation);\n this._observerMutation.observe(this, {\n attributes: true,\n childList: true,\n subtree: true,\n });\n }\n\n disconnectedCallback() {\n if (this._observerMutation) {\n this._observerMutation.disconnect();\n this._observerMutation = null;\n }\n super.disconnectedCallback();\n }\n\n updated(changedProperties) {\n if (\n changedProperties.has('defaultValue') &&\n this.defaultValue &&\n !this.value\n ) {\n this.value = this.defaultValue;\n }\n\n if (changedProperties.has('value')) {\n if (this._selectNode) {\n this._selectNode.value = this.value;\n }\n }\n }\n\n render() {\n const {\n ariaLabel,\n disabled,\n size,\n id,\n value,\n readOnly,\n _handleInput: handleInput,\n } = this;\n\n const inputClasses = classMap({\n [`${prefix}--select-input`]: true,\n [`${prefix}--select-input--${size}`]: size,\n });\n\n return html`\n <select\n id=\"${ifDefined(id)}\"\n class=\"${inputClasses}\"\n aria-readonly=\"${String(readOnly)}\"\n ?disabled=\"${disabled}\"\n aria-label=\"${ifDefined(ariaLabel)}\"\n .value=\"${ifDefined(value)}\"\n @input=\"${handleInput}\">\n ${this._renderItems()}\n </select>\n ${iconLoader(ChevronDown16, {\n class: `${prefix}--select__arrow`,\n 'aria-hidden': 'true',\n })}\n `;\n }\n static get eventSelect() {\n return `${prefix}-select-selected`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n static styles = styles;\n}\n\nexport default CDSTimePickerSelect;\n"],"names":["customElement"],"mappings":"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"}
|
|
@@ -773,7 +773,6 @@ declare class CDSToggletip extends CDSToggletip_base {
|
|
|
773
773
|
* @param event The event.
|
|
774
774
|
*/
|
|
775
775
|
protected _handleFocusOut(event: FocusEvent): void;
|
|
776
|
-
private _deepShadowContains;
|
|
777
776
|
protected _renderToggleTipLabel: () => import("lit-html").TemplateResult<1>;
|
|
778
777
|
protected _renderTooltipButton: () => import("lit-html").TemplateResult<1>;
|
|
779
778
|
protected _renderTooltipContent: () => import("lit-html").TemplateResult<1>;
|
|
@@ -20,6 +20,7 @@ import FloatingController from '../../globals/controllers/floating-controller.js
|
|
|
20
20
|
import toggletipStyles from './toggletip.scss.js';
|
|
21
21
|
import popoverStyles from '../popover/popover.scss.js';
|
|
22
22
|
import { iconLoader } from '../../globals/internal/icon-loader.js';
|
|
23
|
+
import { deepShadowContains } from '../../globals/internal/deep-shadow-contains.js';
|
|
23
24
|
|
|
24
25
|
/**
|
|
25
26
|
* Copyright IBM Corp. 2019, 2026
|
|
@@ -160,23 +161,11 @@ let CDSToggletip = CDSToggletip_1 = class CDSToggletip extends HostListenerMixin
|
|
|
160
161
|
if (this.contains(event.relatedTarget)) {
|
|
161
162
|
return;
|
|
162
163
|
}
|
|
163
|
-
if (
|
|
164
|
+
if (deepShadowContains(this, event.relatedTarget)) {
|
|
164
165
|
return;
|
|
165
166
|
}
|
|
166
167
|
this.open = false;
|
|
167
168
|
}
|
|
168
|
-
_deepShadowContains(root, el) {
|
|
169
|
-
if (!(el instanceof Node)) {
|
|
170
|
-
return false;
|
|
171
|
-
}
|
|
172
|
-
if (el === root) {
|
|
173
|
-
return true;
|
|
174
|
-
}
|
|
175
|
-
return this._deepShadowContains(root, el.assignedSlot ||
|
|
176
|
-
el.parentNode ||
|
|
177
|
-
el.getRootNode().host ||
|
|
178
|
-
null);
|
|
179
|
-
}
|
|
180
169
|
updated() {
|
|
181
170
|
var _a, _b, _c, _d;
|
|
182
171
|
if (this.autoalign) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggletip.js","sources":["../../../src/components/toggle-tip/toggletip.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2026\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 { adoptStyles, html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { prefix } from '../../globals/settings';\nimport Information16 from '@carbon/icons/es/information/16.js';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport FocusMixin from '../../globals/mixins/focus';\nimport { POPOVER_ALIGNMENT } from '../popover/defs';\nimport FloatingUIController from '../../globals/controllers/floating-controller';\nimport styles from './toggletip.scss?lit';\nimport popoverStyles from '../popover/popover.scss?lit';\nimport { iconLoader } from '../../globals/internal/icon-loader';\n\n/**\n * Definition tooltip.\n *\n * @element cds-toggletip\n */\n@customElement(`${prefix}-toggletip`)\nclass CDSToggletip extends HostListenerMixin(FocusMixin(LitElement)) {\n /**\n * Create popover controller instance\n */\n private popoverController = new FloatingUIController(this);\n\n /**\n * How the tooltip is aligned to the trigger button.\n */\n @property({ reflect: true })\n alignment = POPOVER_ALIGNMENT.TOP;\n\n /**\n * **Experimental:** Provide an offset value for alignment axis. Only takes effect when `autoalign` is enabled.\n */\n @property({ type: Number, attribute: 'alignment-axis-offset' })\n alignmentAxisOffset = 0;\n\n /**\n * Specify whether a auto align functionality should be applied\n */\n @property({ type: Boolean, reflect: true })\n autoalign = false;\n\n /**\n * The label for the toggle button\n */\n @property({ attribute: 'button-label' })\n buttonLabel = 'Show information';\n\n /**\n * Set whether toggletip is open\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Set whether toggletip is open by default.\n */\n @property({ type: Boolean, attribute: 'default-open' })\n defaultOpen = false;\n\n connectedCallback() {\n super.connectedCallback();\n if (this.defaultOpen && !this.hasAttribute('open')) {\n this.open = true;\n }\n\n adoptStyles(this.renderRoot as ShadowRoot, [popoverStyles, styles]);\n }\n\n /**\n * Handles `slotchange` event.\n */\n private _handleActionsSlotChange({ target }: Event) {\n const hasContent = (target as HTMLSlotElement).assignedNodes();\n if (hasContent) {\n this.setAttribute('has-actions', '');\n } else {\n this.removeAttribute('has-actions');\n }\n }\n\n protected _handleClick() {\n this.open = !this.open;\n }\n\n /**\n * Handles `keydown` event on this element.\n */\n @HostListener('keydown')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n protected _handleKeydown = async (event) => {\n if (event.key === 'Escape') {\n this.open = false;\n }\n };\n\n /**\n * Handles `blur` event handler on the document this element is in.\n *\n * @param event The event.\n */\n @HostListener('focusout')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n protected _handleFocusOut(event: FocusEvent) {\n if (this.contains(event.relatedTarget as Node)) {\n return;\n }\n\n if (this._deepShadowContains(this, event.relatedTarget)) {\n return;\n }\n this.open = false;\n }\n\n private _deepShadowContains(root: Node, el: EventTarget | null): boolean {\n if (!(el instanceof Node)) {\n return false;\n }\n if (el === root) {\n return true;\n }\n\n return this._deepShadowContains(\n root,\n (el as HTMLElement).assignedSlot ||\n el.parentNode ||\n (el.getRootNode() as ShadowRoot).host ||\n null\n );\n }\n\n protected _renderToggleTipLabel = () => {\n return html`\n <span class=\"${prefix}--toggletip-label\">\n <slot></slot>\n </span>\n `;\n };\n\n protected _renderTooltipButton = () => {\n return html`\n <button\n aria-controls=\"${this.id}\"\n aria-label=\"${this.buttonLabel}\"\n class=\"${prefix}--toggletip-button\"\n @click=${this._handleClick}>\n <slot name=\"trigger\"\n >${iconLoader(Information16, { id: 'trigger' })}\n </slot>\n </button>\n `;\n };\n\n protected _renderTooltipContent = () => {\n return this.autoalign\n ? html`\n <span class=\"${prefix}--popover-content\">\n <div class=\"${prefix}--toggletip-content\">\n <slot name=\"body-text\"></slot>\n <div class=\"${prefix}--toggletip-actions\">\n <slot\n name=\"actions\"\n @slotchange=\"${this._handleActionsSlotChange}\"></slot>\n </div>\n </div>\n <span class=\"${prefix}--popover-caret\"></span>\n </span>\n `\n : html`\n <span class=\"${prefix}--popover\">\n <span class=\"${prefix}--popover-content\">\n <div class=\"${prefix}--toggletip-content\">\n <slot name=\"body-text\"></slot>\n <div class=\"${prefix}--toggletip-actions\">\n <slot\n name=\"actions\"\n @slotchange=\"${this._handleActionsSlotChange}\"></slot>\n </div>\n </div>\n </span>\n <span class=\"${prefix}--popover-caret\"></span>\n </span>\n `;\n };\n\n protected _renderInnerContent = () => {\n return html`\n ${this._renderTooltipButton()} ${this._renderTooltipContent()}\n `;\n };\n\n updated() {\n if (this.autoalign) {\n // auto align functionality with @floating-ui/dom library\n const button = this.shadowRoot?.querySelector(\n CDSToggletip.selectorToggletipButton\n );\n\n const tooltip = this.shadowRoot?.querySelector(\n CDSToggletip.selectorToggletipContent\n );\n const arrowElement = this.shadowRoot?.querySelector(\n CDSToggletip.selectorToggletipCaret\n );\n\n if (button && tooltip) {\n // Ensure toggletip is visible when rendered in a large scrollable container (storybook parity)\n button.scrollIntoView({ block: 'center', inline: 'center' });\n\n this.popoverController?.setPlacement({\n trigger: button as HTMLElement,\n target: tooltip as HTMLElement,\n arrowElement: arrowElement as HTMLElement,\n caret: true,\n flipArguments: { fallbackAxisSideDirection: 'start' },\n alignment: this.alignment,\n open: this.open,\n alignmentAxisOffset: this.alignmentAxisOffset,\n });\n }\n }\n }\n\n render() {\n const { alignment, open } = this;\n const classes = classMap({\n [`${prefix}--popover-container`]: true,\n [`${prefix}--popover--caret`]: true,\n [`${prefix}--popover--high-contrast`]: true,\n [`${prefix}--popover--open`]: open,\n [`${prefix}--popover--${alignment}`]: alignment,\n [`${prefix}--toggletip`]: true,\n [`${prefix}--toggletip--open`]: open,\n });\n return html`\n ${this._renderToggleTipLabel()}\n <span class=\"${classes}\"> ${this._renderInnerContent()} </span>\n `;\n }\n\n /**\n * A selector that will return the toggletip content.\n */\n static get selectorToggletipContent() {\n return `.${prefix}--popover-content`;\n }\n\n /**\n * A selector that will return the toggletip caret.\n */\n static get selectorToggletipCaret() {\n return `.${prefix}--popover-caret`;\n }\n\n /**\n * A selector that will return the trigger element.\n */\n static get selectorToggletipButton() {\n return `.${prefix}--toggletip-button`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n}\n\nexport default CDSToggletip;\n"],"names":["FloatingUIController","styles","customElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AAKG;;AAiBH;;;;AAIG;AAEH,IAAM,YAAY,GAAA,cAAA,GAAlB,MAAM,YAAa,SAAQ,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;AAApE,IAAA,WAAA,GAAA;;AACE;;AAEG;AACK,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAIA,kBAAoB,CAAC,IAAI,CAAC;AAE1D;;AAEG;AAEH,QAAA,IAAA,CAAA,SAAS,GAAG,iBAAiB,CAAC,GAAG;AAEjC;;AAEG;QAEH,IAAA,CAAA,mBAAmB,GAAG,CAAC;AAEvB;;AAEG;QAEH,IAAA,CAAA,SAAS,GAAG,KAAK;AAEjB;;AAEG;QAEH,IAAA,CAAA,WAAW,GAAG,kBAAkB;AAEhC;;AAEG;QAEH,IAAA,CAAA,IAAI,GAAG,KAAK;AAEZ;;AAEG;QAEH,IAAA,CAAA,WAAW,GAAG,KAAK;AA2BnB;;AAEG;AAIO,QAAA,IAAA,CAAA,cAAc,GAAG,OAAO,KAAK,KAAI;AACzC,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;AAC1B,gBAAA,IAAI,CAAC,IAAI,GAAG,KAAK;YACnB;AACF,QAAA,CAAC;QAsCS,IAAA,CAAA,qBAAqB,GAAG,MAAK;AACrC,YAAA,OAAO,IAAI,CAAA;qBACM,MAAM,CAAA;;;KAGtB;AACH,QAAA,CAAC;QAES,IAAA,CAAA,oBAAoB,GAAG,MAAK;AACpC,YAAA,OAAO,IAAI,CAAA;;AAEU,uBAAA,EAAA,IAAI,CAAC,EAAE,CAAA;AACV,oBAAA,EAAA,IAAI,CAAC,WAAW,CAAA;iBACrB,MAAM,CAAA;AACN,eAAA,EAAA,IAAI,CAAC,YAAY,CAAA;;aAErB,UAAU,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;;;KAGpD;AACH,QAAA,CAAC;QAES,IAAA,CAAA,qBAAqB,GAAG,MAAK;YACrC,OAAO,IAAI,CAAC;kBACR,IAAI,CAAA;yBACa,MAAM,CAAA;0BACL,MAAM,CAAA;;4BAEJ,MAAM,CAAA;;;AAGD,+BAAA,EAAA,IAAI,CAAC,wBAAwB,CAAA;;;2BAGnC,MAAM,CAAA;;AAExB,QAAA;kBACD,IAAI,CAAA;yBACa,MAAM,CAAA;2BACJ,MAAM,CAAA;4BACL,MAAM,CAAA;;8BAEJ,MAAM,CAAA;;;AAGD,iCAAA,EAAA,IAAI,CAAC,wBAAwB,CAAA;;;;2BAIrC,MAAM,CAAA;;SAExB;AACP,QAAA,CAAC;QAES,IAAA,CAAA,mBAAmB,GAAG,MAAK;AACnC,YAAA,OAAO,IAAI,CAAA;AACP,MAAA,EAAA,IAAI,CAAC,oBAAoB,EAAE,IAAI,IAAI,CAAC,qBAAqB,EAAE;KAC9D;AACH,QAAA,CAAC;IA4EH;IA/ME,iBAAiB,GAAA;QACf,KAAK,CAAC,iBAAiB,EAAE;AACzB,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;AAClD,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;QAClB;QAEA,WAAW,CAAC,IAAI,CAAC,UAAwB,EAAE,CAAC,aAAa,EAAEC,eAAM,CAAC,CAAC;IACrE;AAEA;;AAEG;IACK,wBAAwB,CAAC,EAAE,MAAM,EAAS,EAAA;AAChD,QAAA,MAAM,UAAU,GAAI,MAA0B,CAAC,aAAa,EAAE;QAC9D,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC;QACtC;aAAO;AACL,YAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;QACrC;IACF;IAEU,YAAY,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI;IACxB;AAcA;;;;AAIG;AAIO,IAAA,eAAe,CAAC,KAAiB,EAAA;QACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAqB,CAAC,EAAE;YAC9C;QACF;QAEA,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE;YACvD;QACF;AACA,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK;IACnB;IAEQ,mBAAmB,CAAC,IAAU,EAAE,EAAsB,EAAA;AAC5D,QAAA,IAAI,EAAE,EAAE,YAAY,IAAI,CAAC,EAAE;AACzB,YAAA,OAAO,KAAK;QACd;AACA,QAAA,IAAI,EAAE,KAAK,IAAI,EAAE;AACf,YAAA,OAAO,IAAI;QACb;QAEA,OAAO,IAAI,CAAC,mBAAmB,CAC7B,IAAI,EACH,EAAkB,CAAC,YAAY;AAC9B,YAAA,EAAE,CAAC,UAAU;AACZ,YAAA,EAAE,CAAC,WAAW,EAAiB,CAAC,IAAI;AACrC,YAAA,IAAI,CACP;IACH;IA8DA,OAAO,GAAA;;AACL,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;;AAElB,YAAA,MAAM,MAAM,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,aAAa,CAC3C,cAAY,CAAC,uBAAuB,CACrC;AAED,YAAA,MAAM,OAAO,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,aAAa,CAC5C,cAAY,CAAC,wBAAwB,CACtC;AACD,YAAA,MAAM,YAAY,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,aAAa,CACjD,cAAY,CAAC,sBAAsB,CACpC;AAED,YAAA,IAAI,MAAM,IAAI,OAAO,EAAE;;AAErB,gBAAA,MAAM,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAE5D,gBAAA,CAAA,EAAA,GAAA,IAAI,CAAC,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,YAAY,CAAC;AACnC,oBAAA,OAAO,EAAE,MAAqB;AAC9B,oBAAA,MAAM,EAAE,OAAsB;AAC9B,oBAAA,YAAY,EAAE,YAA2B;AACzC,oBAAA,KAAK,EAAE,IAAI;AACX,oBAAA,aAAa,EAAE,EAAE,yBAAyB,EAAE,OAAO,EAAE;oBACrD,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;AAC9C,iBAAA,CAAC;YACJ;QACF;IACF;IAEA,MAAM,GAAA;AACJ,QAAA,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI;QAChC,MAAM,OAAO,GAAG,QAAQ,CAAC;AACvB,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,mBAAA,CAAqB,GAAG,IAAI;AACtC,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,gBAAA,CAAkB,GAAG,IAAI;AACnC,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,wBAAA,CAA0B,GAAG,IAAI;AAC3C,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,eAAA,CAAiB,GAAG,IAAI;AAClC,YAAA,CAAC,GAAG,MAAM,CAAA,WAAA,EAAc,SAAS,CAAA,CAAE,GAAG,SAAS;AAC/C,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,WAAA,CAAa,GAAG,IAAI;AAC9B,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,iBAAA,CAAmB,GAAG,IAAI;AACrC,SAAA,CAAC;AACF,QAAA,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,qBAAqB,EAAE;AACf,mBAAA,EAAA,OAAO,CAAA,GAAA,EAAM,IAAI,CAAC,mBAAmB,EAAE,CAAA;KACvD;IACH;AAEA;;AAEG;AACH,IAAA,WAAW,wBAAwB,GAAA;QACjC,OAAO,CAAA,CAAA,EAAI,MAAM,CAAA,iBAAA,CAAmB;IACtC;AAEA;;AAEG;AACH,IAAA,WAAW,sBAAsB,GAAA;QAC/B,OAAO,CAAA,CAAA,EAAI,MAAM,CAAA,eAAA,CAAiB;IACpC;AAEA;;AAEG;AACH,IAAA,WAAW,uBAAuB,GAAA;QAChC,OAAO,CAAA,CAAA,EAAI,MAAM,CAAA,kBAAA,CAAoB;IACvC;;AAEO,YAAA,CAAA,iBAAiB,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACnB,UAAU,CAAC,iBAAiB,KAC/B,cAAc,EAAE,IAAI,EAAA,CAFE;AA3OxB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AACO,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AAMlC,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,uBAAuB,EAAE;AACtC,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,qBAAA,EAAA,MAAA,CAAA;AAMxB,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AACxB,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AAMlB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE;AACN,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;AAMjC,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AAC7B,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAMb,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE;AAClC,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;AAiCV,UAAA,CAAA;IAHT,YAAY,CAAC,SAAS;;;AAOrB,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,MAAA,CAAA;AAUQ,UAAA,CAAA;IAHT,YAAY,CAAC,UAAU;;;AAYvB,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,IAAA,CAAA;AAhGG,YAAY,GAAA,cAAA,GAAA,UAAA,CAAA;AADjB,IAAAC,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,UAAA,CAAY;AAC9B,CAAA,EAAA,YAAY,CAyPjB;AAED,mBAAe,YAAY;;;;"}
|
|
1
|
+
{"version":3,"file":"toggletip.js","sources":["../../../src/components/toggle-tip/toggletip.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2026\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 { adoptStyles, html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { prefix } from '../../globals/settings';\nimport Information16 from '@carbon/icons/es/information/16.js';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport FocusMixin from '../../globals/mixins/focus';\nimport { POPOVER_ALIGNMENT } from '../popover/defs';\nimport FloatingUIController from '../../globals/controllers/floating-controller';\nimport styles from './toggletip.scss?lit';\nimport popoverStyles from '../popover/popover.scss?lit';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport { deepShadowContains } from '../../globals/internal/deep-shadow-contains';\n\n/**\n * Definition tooltip.\n *\n * @element cds-toggletip\n */\n@customElement(`${prefix}-toggletip`)\nclass CDSToggletip extends HostListenerMixin(FocusMixin(LitElement)) {\n /**\n * Create popover controller instance\n */\n private popoverController = new FloatingUIController(this);\n\n /**\n * How the tooltip is aligned to the trigger button.\n */\n @property({ reflect: true })\n alignment = POPOVER_ALIGNMENT.TOP;\n\n /**\n * **Experimental:** Provide an offset value for alignment axis. Only takes effect when `autoalign` is enabled.\n */\n @property({ type: Number, attribute: 'alignment-axis-offset' })\n alignmentAxisOffset = 0;\n\n /**\n * Specify whether a auto align functionality should be applied\n */\n @property({ type: Boolean, reflect: true })\n autoalign = false;\n\n /**\n * The label for the toggle button\n */\n @property({ attribute: 'button-label' })\n buttonLabel = 'Show information';\n\n /**\n * Set whether toggletip is open\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Set whether toggletip is open by default.\n */\n @property({ type: Boolean, attribute: 'default-open' })\n defaultOpen = false;\n\n connectedCallback() {\n super.connectedCallback();\n if (this.defaultOpen && !this.hasAttribute('open')) {\n this.open = true;\n }\n\n adoptStyles(this.renderRoot as ShadowRoot, [popoverStyles, styles]);\n }\n\n /**\n * Handles `slotchange` event.\n */\n private _handleActionsSlotChange({ target }: Event) {\n const hasContent = (target as HTMLSlotElement).assignedNodes();\n if (hasContent) {\n this.setAttribute('has-actions', '');\n } else {\n this.removeAttribute('has-actions');\n }\n }\n\n protected _handleClick() {\n this.open = !this.open;\n }\n\n /**\n * Handles `keydown` event on this element.\n */\n @HostListener('keydown')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n protected _handleKeydown = async (event) => {\n if (event.key === 'Escape') {\n this.open = false;\n }\n };\n\n /**\n * Handles `blur` event handler on the document this element is in.\n *\n * @param event The event.\n */\n @HostListener('focusout')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n protected _handleFocusOut(event: FocusEvent) {\n if (this.contains(event.relatedTarget as Node)) {\n return;\n }\n\n if (deepShadowContains(this, event.relatedTarget)) {\n return;\n }\n this.open = false;\n }\n\n protected _renderToggleTipLabel = () => {\n return html`\n <span class=\"${prefix}--toggletip-label\">\n <slot></slot>\n </span>\n `;\n };\n\n protected _renderTooltipButton = () => {\n return html`\n <button\n aria-controls=\"${this.id}\"\n aria-label=\"${this.buttonLabel}\"\n class=\"${prefix}--toggletip-button\"\n @click=${this._handleClick}>\n <slot name=\"trigger\"\n >${iconLoader(Information16, { id: 'trigger' })}\n </slot>\n </button>\n `;\n };\n\n protected _renderTooltipContent = () => {\n return this.autoalign\n ? html`\n <span class=\"${prefix}--popover-content\">\n <div class=\"${prefix}--toggletip-content\">\n <slot name=\"body-text\"></slot>\n <div class=\"${prefix}--toggletip-actions\">\n <slot\n name=\"actions\"\n @slotchange=\"${this._handleActionsSlotChange}\"></slot>\n </div>\n </div>\n <span class=\"${prefix}--popover-caret\"></span>\n </span>\n `\n : html`\n <span class=\"${prefix}--popover\">\n <span class=\"${prefix}--popover-content\">\n <div class=\"${prefix}--toggletip-content\">\n <slot name=\"body-text\"></slot>\n <div class=\"${prefix}--toggletip-actions\">\n <slot\n name=\"actions\"\n @slotchange=\"${this._handleActionsSlotChange}\"></slot>\n </div>\n </div>\n </span>\n <span class=\"${prefix}--popover-caret\"></span>\n </span>\n `;\n };\n\n protected _renderInnerContent = () => {\n return html`\n ${this._renderTooltipButton()} ${this._renderTooltipContent()}\n `;\n };\n\n updated() {\n if (this.autoalign) {\n // auto align functionality with @floating-ui/dom library\n const button = this.shadowRoot?.querySelector(\n CDSToggletip.selectorToggletipButton\n );\n\n const tooltip = this.shadowRoot?.querySelector(\n CDSToggletip.selectorToggletipContent\n );\n const arrowElement = this.shadowRoot?.querySelector(\n CDSToggletip.selectorToggletipCaret\n );\n\n if (button && tooltip) {\n // Ensure toggletip is visible when rendered in a large scrollable container (storybook parity)\n button.scrollIntoView({ block: 'center', inline: 'center' });\n\n this.popoverController?.setPlacement({\n trigger: button as HTMLElement,\n target: tooltip as HTMLElement,\n arrowElement: arrowElement as HTMLElement,\n caret: true,\n flipArguments: { fallbackAxisSideDirection: 'start' },\n alignment: this.alignment,\n open: this.open,\n alignmentAxisOffset: this.alignmentAxisOffset,\n });\n }\n }\n }\n\n render() {\n const { alignment, open } = this;\n const classes = classMap({\n [`${prefix}--popover-container`]: true,\n [`${prefix}--popover--caret`]: true,\n [`${prefix}--popover--high-contrast`]: true,\n [`${prefix}--popover--open`]: open,\n [`${prefix}--popover--${alignment}`]: alignment,\n [`${prefix}--toggletip`]: true,\n [`${prefix}--toggletip--open`]: open,\n });\n return html`\n ${this._renderToggleTipLabel()}\n <span class=\"${classes}\"> ${this._renderInnerContent()} </span>\n `;\n }\n\n /**\n * A selector that will return the toggletip content.\n */\n static get selectorToggletipContent() {\n return `.${prefix}--popover-content`;\n }\n\n /**\n * A selector that will return the toggletip caret.\n */\n static get selectorToggletipCaret() {\n return `.${prefix}--popover-caret`;\n }\n\n /**\n * A selector that will return the trigger element.\n */\n static get selectorToggletipButton() {\n return `.${prefix}--toggletip-button`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n}\n\nexport default CDSToggletip;\n"],"names":["FloatingUIController","styles","customElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AAKG;;AAkBH;;;;AAIG;AAEH,IAAM,YAAY,GAAA,cAAA,GAAlB,MAAM,YAAa,SAAQ,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;AAApE,IAAA,WAAA,GAAA;;AACE;;AAEG;AACK,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAIA,kBAAoB,CAAC,IAAI,CAAC;AAE1D;;AAEG;AAEH,QAAA,IAAA,CAAA,SAAS,GAAG,iBAAiB,CAAC,GAAG;AAEjC;;AAEG;QAEH,IAAA,CAAA,mBAAmB,GAAG,CAAC;AAEvB;;AAEG;QAEH,IAAA,CAAA,SAAS,GAAG,KAAK;AAEjB;;AAEG;QAEH,IAAA,CAAA,WAAW,GAAG,kBAAkB;AAEhC;;AAEG;QAEH,IAAA,CAAA,IAAI,GAAG,KAAK;AAEZ;;AAEG;QAEH,IAAA,CAAA,WAAW,GAAG,KAAK;AA2BnB;;AAEG;AAIO,QAAA,IAAA,CAAA,cAAc,GAAG,OAAO,KAAK,KAAI;AACzC,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;AAC1B,gBAAA,IAAI,CAAC,IAAI,GAAG,KAAK;YACnB;AACF,QAAA,CAAC;QAqBS,IAAA,CAAA,qBAAqB,GAAG,MAAK;AACrC,YAAA,OAAO,IAAI,CAAA;qBACM,MAAM,CAAA;;;KAGtB;AACH,QAAA,CAAC;QAES,IAAA,CAAA,oBAAoB,GAAG,MAAK;AACpC,YAAA,OAAO,IAAI,CAAA;;AAEU,uBAAA,EAAA,IAAI,CAAC,EAAE,CAAA;AACV,oBAAA,EAAA,IAAI,CAAC,WAAW,CAAA;iBACrB,MAAM,CAAA;AACN,eAAA,EAAA,IAAI,CAAC,YAAY,CAAA;;aAErB,UAAU,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;;;KAGpD;AACH,QAAA,CAAC;QAES,IAAA,CAAA,qBAAqB,GAAG,MAAK;YACrC,OAAO,IAAI,CAAC;kBACR,IAAI,CAAA;yBACa,MAAM,CAAA;0BACL,MAAM,CAAA;;4BAEJ,MAAM,CAAA;;;AAGD,+BAAA,EAAA,IAAI,CAAC,wBAAwB,CAAA;;;2BAGnC,MAAM,CAAA;;AAExB,QAAA;kBACD,IAAI,CAAA;yBACa,MAAM,CAAA;2BACJ,MAAM,CAAA;4BACL,MAAM,CAAA;;8BAEJ,MAAM,CAAA;;;AAGD,iCAAA,EAAA,IAAI,CAAC,wBAAwB,CAAA;;;;2BAIrC,MAAM,CAAA;;SAExB;AACP,QAAA,CAAC;QAES,IAAA,CAAA,mBAAmB,GAAG,MAAK;AACnC,YAAA,OAAO,IAAI,CAAA;AACP,MAAA,EAAA,IAAI,CAAC,oBAAoB,EAAE,IAAI,IAAI,CAAC,qBAAqB,EAAE;KAC9D;AACH,QAAA,CAAC;IA4EH;IA9LE,iBAAiB,GAAA;QACf,KAAK,CAAC,iBAAiB,EAAE;AACzB,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;AAClD,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;QAClB;QAEA,WAAW,CAAC,IAAI,CAAC,UAAwB,EAAE,CAAC,aAAa,EAAEC,eAAM,CAAC,CAAC;IACrE;AAEA;;AAEG;IACK,wBAAwB,CAAC,EAAE,MAAM,EAAS,EAAA;AAChD,QAAA,MAAM,UAAU,GAAI,MAA0B,CAAC,aAAa,EAAE;QAC9D,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC;QACtC;aAAO;AACL,YAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;QACrC;IACF;IAEU,YAAY,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI;IACxB;AAcA;;;;AAIG;AAIO,IAAA,eAAe,CAAC,KAAiB,EAAA;QACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAqB,CAAC,EAAE;YAC9C;QACF;QAEA,IAAI,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE;YACjD;QACF;AACA,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK;IACnB;IA8DA,OAAO,GAAA;;AACL,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;;AAElB,YAAA,MAAM,MAAM,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,aAAa,CAC3C,cAAY,CAAC,uBAAuB,CACrC;AAED,YAAA,MAAM,OAAO,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,aAAa,CAC5C,cAAY,CAAC,wBAAwB,CACtC;AACD,YAAA,MAAM,YAAY,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,aAAa,CACjD,cAAY,CAAC,sBAAsB,CACpC;AAED,YAAA,IAAI,MAAM,IAAI,OAAO,EAAE;;AAErB,gBAAA,MAAM,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAE5D,gBAAA,CAAA,EAAA,GAAA,IAAI,CAAC,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,YAAY,CAAC;AACnC,oBAAA,OAAO,EAAE,MAAqB;AAC9B,oBAAA,MAAM,EAAE,OAAsB;AAC9B,oBAAA,YAAY,EAAE,YAA2B;AACzC,oBAAA,KAAK,EAAE,IAAI;AACX,oBAAA,aAAa,EAAE,EAAE,yBAAyB,EAAE,OAAO,EAAE;oBACrD,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;AAC9C,iBAAA,CAAC;YACJ;QACF;IACF;IAEA,MAAM,GAAA;AACJ,QAAA,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI;QAChC,MAAM,OAAO,GAAG,QAAQ,CAAC;AACvB,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,mBAAA,CAAqB,GAAG,IAAI;AACtC,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,gBAAA,CAAkB,GAAG,IAAI;AACnC,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,wBAAA,CAA0B,GAAG,IAAI;AAC3C,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,eAAA,CAAiB,GAAG,IAAI;AAClC,YAAA,CAAC,GAAG,MAAM,CAAA,WAAA,EAAc,SAAS,CAAA,CAAE,GAAG,SAAS;AAC/C,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,WAAA,CAAa,GAAG,IAAI;AAC9B,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,iBAAA,CAAmB,GAAG,IAAI;AACrC,SAAA,CAAC;AACF,QAAA,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,qBAAqB,EAAE;AACf,mBAAA,EAAA,OAAO,CAAA,GAAA,EAAM,IAAI,CAAC,mBAAmB,EAAE,CAAA;KACvD;IACH;AAEA;;AAEG;AACH,IAAA,WAAW,wBAAwB,GAAA;QACjC,OAAO,CAAA,CAAA,EAAI,MAAM,CAAA,iBAAA,CAAmB;IACtC;AAEA;;AAEG;AACH,IAAA,WAAW,sBAAsB,GAAA;QAC/B,OAAO,CAAA,CAAA,EAAI,MAAM,CAAA,eAAA,CAAiB;IACpC;AAEA;;AAEG;AACH,IAAA,WAAW,uBAAuB,GAAA;QAChC,OAAO,CAAA,CAAA,EAAI,MAAM,CAAA,kBAAA,CAAoB;IACvC;;AAEO,YAAA,CAAA,iBAAiB,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACnB,UAAU,CAAC,iBAAiB,KAC/B,cAAc,EAAE,IAAI,EAAA,CAFE;AA1NxB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AACO,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AAMlC,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,uBAAuB,EAAE;AACtC,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,qBAAA,EAAA,MAAA,CAAA;AAMxB,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AACxB,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AAMlB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE;AACN,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;AAMjC,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AAC7B,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAMb,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE;AAClC,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;AAiCV,UAAA,CAAA;IAHT,YAAY,CAAC,SAAS;;;AAOrB,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,MAAA,CAAA;AAUQ,UAAA,CAAA;IAHT,YAAY,CAAC,UAAU;;;AAYvB,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,IAAA,CAAA;AAhGG,YAAY,GAAA,cAAA,GAAA,UAAA,CAAA;AADjB,IAAAC,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,UAAA,CAAY;AAC9B,CAAA,EAAA,YAAY,CAwOjB;AAED,mBAAe,YAAY;;;;"}
|