@kyndryl-design-system/shidoka-applications 2.2.0 → 2.4.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.
Files changed (33) hide show
  1. package/components/reusable/avatar/avatar.d.ts +17 -0
  2. package/components/reusable/avatar/avatar.d.ts.map +1 -0
  3. package/components/reusable/avatar/avatar.js +78 -0
  4. package/components/reusable/avatar/avatar.js.map +1 -0
  5. package/components/reusable/avatar/index.d.ts +2 -0
  6. package/components/reusable/avatar/index.d.ts.map +1 -0
  7. package/components/reusable/avatar/index.js +2 -0
  8. package/components/reusable/avatar/index.js.map +1 -0
  9. package/components/reusable/dropdown/dropdown.js +6 -3
  10. package/components/reusable/dropdown/dropdown.js.map +1 -1
  11. package/components/reusable/table/index.js +1 -1
  12. package/components/reusable/table/table-body.js +1 -1
  13. package/components/reusable/table/table-cell.js +1 -1
  14. package/components/reusable/table/table-context.js +1 -1
  15. package/components/reusable/table/table-head.js +1 -1
  16. package/components/reusable/table/table-header-row.js +1 -1
  17. package/components/reusable/table/table-header.js +1 -1
  18. package/components/reusable/table/table-row.js +1 -1
  19. package/components/reusable/table/table.js +1 -1
  20. package/components/reusable/table/table.skeleton.js +1 -1
  21. package/components/reusable/textArea/textArea.d.ts +13 -1
  22. package/components/reusable/textArea/textArea.d.ts.map +1 -1
  23. package/components/reusable/textArea/textArea.js +24 -11
  24. package/components/reusable/textArea/textArea.js.map +1 -1
  25. package/index.d.ts +1 -0
  26. package/index.d.ts.map +1 -1
  27. package/index.js +1 -1
  28. package/package.json +20 -20
  29. package/{table-f6b54ef0.js → table-7b5747f8.js} +2 -2
  30. package/{table-f6b54ef0.js.map → table-7b5747f8.js.map} +1 -1
  31. package/vendor/@lit/{context-81eb2692.js → context-6f74d22e.js} +4 -4
  32. package/vendor/@lit/context-6f74d22e.js.map +1 -0
  33. package/vendor/@lit/context-81eb2692.js.map +0 -1
@@ -0,0 +1,17 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * User avatar.
4
+ * @slot unnamed - Slot for the profile picture img.
5
+ */
6
+ export declare class Avatar extends LitElement {
7
+ static styles: any;
8
+ /** 1-2 letters to represent the user with the initials in the avatar circle. It also provides a slot that allows an image/photo to replace the initials */
9
+ initials: string;
10
+ render(): import("lit").TemplateResult<1>;
11
+ }
12
+ declare global {
13
+ interface HTMLElementTagNameMap {
14
+ 'kyn-avatar': Avatar;
15
+ }
16
+ }
17
+ //# sourceMappingURL=avatar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/avatar/avatar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAIvC;;;GAGG;AACH,qBACa,MAAO,SAAQ,UAAU;IACpC,OAAgB,MAAM,MAAc;IAEpC,2JAA2J;IAE3J,QAAQ,SAAM;IAEL,MAAM;CAKhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,MAAM,CAAC;KACtB;CACF"}
@@ -0,0 +1,78 @@
1
+ import{_ as t}from"../../../vendor/tslib-53a81efe.js";import{n as i,e}from"../../../vendor/lit-6e2a7867.js";import{i as r,s as a,x as o}from"../../../vendor/lit-element-3185f710.js";var n=r`*,
2
+ *::before,
3
+ *::after {
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ :root {
8
+ --kd-current-breakpoint: sm;
9
+ }
10
+ @media (min-width: 42rem) {
11
+ :root {
12
+ --kd-current-breakpoint: md;
13
+ }
14
+ }
15
+ @media (min-width: 74rem) {
16
+ :root {
17
+ --kd-current-breakpoint: lg;
18
+ }
19
+ }
20
+ @media (min-width: 82rem) {
21
+ :root {
22
+ --kd-current-breakpoint: xl;
23
+ }
24
+ }
25
+ @media (min-width: 99rem) {
26
+ :root {
27
+ --kd-current-breakpoint: max;
28
+ }
29
+ }
30
+
31
+ .avatar-wrapper {
32
+ font-family: var(--kd-font-family-secondary);
33
+ font-size: var(--kd-font-size-utility-2-sm);
34
+ line-height: var(--kd-line-height-utility-2-sm);
35
+ font-weight: var(--kd-font-weight-regular);
36
+ letter-spacing: var(--kd-letter-spacing-5);
37
+ font-size: 20px !important;
38
+ display: flex;
39
+ align-items: center;
40
+ justify-content: center;
41
+ width: 40px;
42
+ height: 40px;
43
+ min-width: 40px;
44
+ min-height: 40px;
45
+ border-radius: 50%;
46
+ color: var(--kd-color-text-level-secondary);
47
+ background: var(--kd-color-background-accent-light);
48
+ transition: color 150ms ease-out, background-color 150ms ease-out, border-color 150ms ease-out;
49
+ white-space: nowrap;
50
+ overflow: hidden;
51
+ }
52
+ @media (min-width: 42rem) {
53
+ .avatar-wrapper {
54
+ font-size: var(--kd-font-size-utility-2-md);
55
+ line-height: var(--kd-line-height-utility-2-md);
56
+ }
57
+ }
58
+ @media (min-width: 74rem) {
59
+ .avatar-wrapper {
60
+ font-size: var(--kd-font-size-utility-2-lg);
61
+ line-height: var(--kd-line-height-utility-2-lg);
62
+ }
63
+ }
64
+ @media (min-width: 82rem) {
65
+ .avatar-wrapper {
66
+ font-size: var(--kd-font-size-utility-2-xlg);
67
+ line-height: var(--kd-line-height-utility-2-xlg);
68
+ }
69
+ }
70
+ @media (min-width: 99rem) {
71
+ .avatar-wrapper {
72
+ font-size: var(--kd-font-size-utility-2-max);
73
+ line-height: var(--kd-line-height-utility-2-max);
74
+ }
75
+ }`;let d=class extends a{constructor(){super(...arguments),this.initials=""}render(){return o` <div class="avatar-wrapper">
76
+ <slot>${this.initials}</slot>
77
+ </div>`}};d.styles=n,t([i({type:String})],d.prototype,"initials",void 0),d=t([e("kyn-avatar")],d);export{d as Avatar};
78
+ //# sourceMappingURL=avatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar.js","sources":["../../../../src/components/reusable/avatar/avatar.ts"],"sourcesContent":["import { LitElement, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport AvatarScss from './avatar.scss';\n\n/**\n * User avatar.\n * @slot unnamed - Slot for the profile picture img.\n */\n@customElement('kyn-avatar')\nexport class Avatar extends LitElement {\n static override styles = AvatarScss;\n\n /** 1-2 letters to represent the user with the initials in the avatar circle. It also provides a slot that allows an image/photo to replace the initials */\n @property({ type: String })\n initials = '';\n\n override render() {\n return html` <div class=\"avatar-wrapper\">\n <slot>${this.initials}</slot>\n </div>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-avatar': Avatar;\n }\n}\n"],"names":["Avatar","LitElement","constructor","this","initials","render","html","styles","AvatarScss","__decorate","property","type","String","prototype","customElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GASO,IAAMA,EAAN,cAAqBC,EAArB,WAAAC,uBAKLC,KAAQC,SAAG,EAOZ,CALU,MAAAC,GACP,OAAOC,CAAI;cACDH,KAAKC;WAEhB,GAVeJ,EAAMO,OAAGC,EAIzBC,EAAA,CADCC,EAAS,CAAEC,KAAMC,UACJZ,EAAAa,UAAA,gBAAA,GALHb,EAAMS,EAAA,CADlBK,EAAc,eACFd"}
@@ -0,0 +1,2 @@
1
+ export { Avatar } from './avatar';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/avatar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export{Avatar}from"./avatar.js";import"../../../vendor/tslib-53a81efe.js";import"../../../vendor/lit-6e2a7867.js";import"../../../vendor/lit-element-3185f710.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import{_ as e}from"../../../vendor/tslib-53a81efe.js";import{o as t}from"../../../vendor/lit-html-29220869.js";import{o as i,n as l,t as o,l as s,i as a,e as r}from"../../../vendor/lit-6e2a7867.js";import{i as n,x as d,s as h}from"../../../vendor/lit-element-3185f710.js";import{FormMixin as p}from"../../../common/mixins/form-input.js";import{d as c}from"../../../vendor/deepmerge-ts-e62363e6.js";import"./dropdownOption.js";import"../tag/tag.js";import"../tag/tagGroup.js";import"../tag/tag.skeleton.js";import"../button/button.js";import{j as u,f as m,i as v}from"../../../vendor/@kyndryl-design-system/shidoka-icons-a1631225.js";import"../checkbox/checkbox.js";import"../checkbox/checkboxGroup.js";import"../textInput/textInput.js";import"../../../common/helpers/helpers.js";import"../button/defs.js";import"../checkbox/checkboxSubgroup.js";import"../../../tag-22009eb5.js";import"../link/link.js";import"../link/defs.js";import"../loaders/skeleton.js";var g=n`*,
1
+ import{_ as e}from"../../../vendor/tslib-53a81efe.js";import{o as t}from"../../../vendor/lit-html-29220869.js";import{o as i,n as l,t as o,l as s,i as a,e as r}from"../../../vendor/lit-6e2a7867.js";import{i as n,x as d,s as h}from"../../../vendor/lit-element-3185f710.js";import{FormMixin as p}from"../../../common/mixins/form-input.js";import{d as c}from"../../../vendor/deepmerge-ts-e62363e6.js";import"./dropdownOption.js";import"../tag/tag.js";import"../tag/tagGroup.js";import"../tag/tag.skeleton.js";import"../button/button.js";import{j as u,f as v,i as m}from"../../../vendor/@kyndryl-design-system/shidoka-icons-a1631225.js";import"../checkbox/checkbox.js";import"../checkbox/checkboxGroup.js";import"../textInput/textInput.js";import"../../../common/helpers/helpers.js";import"../button/defs.js";import"../checkbox/checkboxSubgroup.js";import"../../../tag-22009eb5.js";import"../link/link.js";import"../link/defs.js";import"../loaders/skeleton.js";var g=n`*,
2
2
  *::before,
3
3
  *::after {
4
4
  box-sizing: border-box;
@@ -481,6 +481,9 @@ slot[name=icon]::slotted(*) {
481
481
  border-color: transparent;
482
482
  background-color: transparent;
483
483
  }
484
+ .select.inline:hover {
485
+ border-color: var(--kd-color-border-ui-hover);
486
+ }
484
487
  [disabled] .select.inline:hover {
485
488
  border-color: transparent;
486
489
  }
@@ -723,7 +726,7 @@ kyn-tag-group {
723
726
  </span>
724
727
  `}
725
728
 
726
- <span class="arrow-icon">${t(m)}</span>
729
+ <span class="arrow-icon">${t(v)}</span>
727
730
  </div>
728
731
 
729
732
  <ul
@@ -805,7 +808,7 @@ kyn-tag-group {
805
808
  role="img"
806
809
  title=${this._textStrings.errorText}
807
810
  aria-label=${this._textStrings.errorText}
808
- >${t(v)}</span
811
+ >${t(m)}</span
809
812
  >
810
813
  ${this.invalidText||this._internalValidationMsg}
811
814
  </div>
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.js","sources":["../../../../src/components/reusable/dropdown/dropdown.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, html } from 'lit';\nimport {\n customElement,\n property,\n state,\n query,\n queryAssignedElements,\n} from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport DropdownScss from './dropdown.scss';\nimport { FormMixin } from '../../../common/mixins/form-input';\nimport { deepmerge } from 'deepmerge-ts';\n\nimport './dropdownOption';\nimport '../tag';\nimport '../button';\n\nimport downIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-down.svg';\nimport errorIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/error-filled.svg';\nimport clearIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/20/close-simple.svg';\n\nconst _defaultTextStrings = {\n title: 'Dropdown',\n selectedOptions: 'List of selected options',\n requiredText: 'Required',\n errorText: 'Error',\n clearAll: 'Clear all',\n};\n\n/**\n * Dropdown, single select.\n * @fires on-change - Captures the input event and emits the selected value and original event details.\n * @fires on-search - Capture the search input event and emits the search text.\n * @fires on-clear-all - Captures the the multi-select clear all button click event and emits the value.\n * @slot unnamed - Slot for dropdown options.\n * @slot tooltip - Slot for tooltip.\n */\n@customElement('kyn-dropdown')\nexport class Dropdown extends FormMixin(LitElement) {\n static override styles = DropdownScss;\n\n /** Label text. */\n @property({ type: String })\n label = '';\n\n /** Dropdown size/height. \"sm\", \"md\", or \"lg\". */\n @property({ type: String })\n size = 'md';\n\n /** Dropdown inline style type. */\n @property({ type: Boolean })\n inline = false;\n\n /** Optional text beneath the input. */\n @property({ type: String })\n caption = '';\n\n /** Dropdown placeholder. */\n @property({ type: String })\n placeholder = '';\n\n /** Listbox/drawer open state. */\n @property({ type: Boolean })\n open = false;\n\n /** Makes the dropdown searchable. */\n @property({ type: Boolean })\n searchable = false;\n\n /** Searchable variant filters results. */\n @property({ type: Boolean })\n filterSearch = false;\n\n /** Enabled multi-select functionality. */\n @property({ type: Boolean })\n multiple = false;\n\n /** Makes the dropdown required. */\n @property({ type: Boolean })\n required = false;\n\n /** Visually hide the label. */\n @property({ type: Boolean })\n hideLabel = false;\n\n /** Dropdown disabled state. */\n @property({ type: Boolean })\n disabled = false;\n\n /** Hide the tags below multi-select. */\n @property({ type: Boolean })\n hideTags = false;\n\n /** Adds a \"Select all\" option to the top of a multi-select dropdown. */\n @property({ type: Boolean })\n selectAll = false;\n\n /** \"Select all\" text customization. */\n @property({ type: String })\n selectAllText = 'Select all';\n\n /** Menu CSS min-width value. */\n @property({ type: String })\n menuMinWidth = 'initial';\n\n /** Is \"Select All\" box checked.\n * @internal\n */\n @property({ type: Boolean })\n selectAllChecked = false;\n\n /** Is \"Select All\" indeterminate.\n * @internal\n */\n @property({ type: Boolean })\n selectAllIndeterminate = false;\n\n /** Text string customization. */\n @property({ type: Object })\n textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n _textStrings = _defaultTextStrings;\n\n /**\n * Selected option text, automatically derived.\n * @ignore\n */\n @state()\n text = '';\n\n /**\n * Search input value.\n */\n @property({ type: String })\n searchText = '';\n\n /**\n * Assistive text for screen readers.\n * @ignore\n */\n @state()\n assistiveText = 'Dropdown menu options.';\n\n /**\n * Queries any slotted options.\n * @ignore\n */\n @queryAssignedElements({ selector: 'kyn-dropdown-option' })\n options!: Array<any>;\n\n /**\n * Queries any slotted selected options.\n * @ignore\n */\n @queryAssignedElements({ selector: 'kyn-dropdown-option[selected]' })\n selectedOptions!: Array<any>;\n\n /**\n * Queries the .search DOM element.\n * @ignore\n */\n @query('.search')\n searchEl!: HTMLInputElement;\n\n /**\n * Queries the .select DOM element.\n * @ignore\n */\n @query('.select')\n buttonEl!: HTMLElement;\n\n /**\n * Queries the .options DOM element.\n * @ignore\n */\n @query('.options')\n listboxEl!: HTMLElement;\n\n /**\n * Queries the .clear-multiple DOM element.\n * @ignore\n */\n @query('.clear-multiple')\n clearMultipleEl!: HTMLElement;\n\n /**\n * Open drawer upwards.\n * @ignore\n */\n @state()\n _openUpwards = false;\n\n /**\n * Tags value/text reference.\n * @ignore\n */\n @state()\n _tags: Array<object> = [];\n\n /** Toggles on clicking enter key in the search input.\n * @internal\n */\n searchTextEntered: any = false;\n\n /** Toggles on clicking enter key in the search input.\n * @internal\n */\n prevSearchKeydownIndex = -1;\n\n override render() {\n return html`\n <div\n class=\"dropdown\"\n ?disabled=${this.disabled}\n ?open=${this.open}\n ?inline=${this.inline}\n ?searchable=${this.searchable}\n >\n <label\n id=\"label-${this.name}\"\n class=\"label-text ${this.hideLabel || this.inline ? 'sr-only' : ''}\"\n for=${this.name}\n aria-disabled=${this.disabled}\n @click=${() => this._handleLabelClick()}\n >\n ${this.required\n ? html`<abbr\n class=\"required\"\n title=${this._textStrings.requiredText}\n role=\"img\"\n aria-label=${this._textStrings?.requiredText || 'Required'}\n >*</abbr\n >`\n : null}\n ${this.label}\n <slot name=\"tooltip\"></slot>\n </label>\n\n <div\n class=${classMap({\n wrapper: true,\n open: this.open,\n })}\n >\n <div class=\"custom\">\n <div\n class=\"${classMap({\n select: true,\n 'input-custom': true,\n 'size--sm': this.size === 'sm',\n 'size--lg': this.size === 'lg',\n inline: this.inline,\n })}\"\n aria-labelledby=\"label-${this.name}\"\n aria-expanded=${this.open}\n aria-controls=\"options\"\n role=\"combobox\"\n id=${this.name}\n name=${this.name}\n title=${this._textStrings.title}\n ?required=${this.required}\n ?disabled=${this.disabled}\n ?invalid=${this._isInvalid}\n tabindex=${this.disabled ? '' : '0'}\n @click=${() => this.handleClick()}\n @keydown=${(e: any) => this.handleButtonKeydown(e)}\n @mousedown=${(e: any) => {\n if (!this.searchable) {\n e.preventDefault();\n }\n }}\n @blur=${(e: any) => this.handleButtonBlur(e)}\n >\n ${this.multiple && this.value.length\n ? html`\n <button\n class=\"clear-multiple\"\n aria-label=\"${this.value\n .length} items selected. Clear selections\"\n ?disabled=${this.disabled}\n @click=${(e: Event) => this.handleClearMultiple(e)}\n >\n ${this.value.length}\n <span style=\"display:flex;\" slot=\"icon\"\n >${unsafeSVG(clearIcon)}</span\n >\n </button>\n `\n : null}\n ${this.searchable\n ? html`\n <input\n class=\"search\"\n type=\"text\"\n placeholder=${this.placeholder}\n value=${this.searchText}\n ?disabled=${this.disabled}\n aria-disabled=${this.disabled}\n @keydown=${(e: any) => this.handleSearchKeydown(e)}\n @input=${(e: any) => this.handleSearchInput(e)}\n @blur=${(e: any) => this.handleSearchBlur(e)}\n @click=${(e: any) => this.handleSearchClick(e)}\n />\n `\n : html`\n <span aria-disabled=${this.disabled}>\n ${this.multiple\n ? this.placeholder\n : this.value === ''\n ? this.placeholder\n : this.text}\n </span>\n `}\n\n <span class=\"arrow-icon\">${unsafeSVG(downIcon)}</span>\n </div>\n\n <ul\n id=\"options\"\n class=${classMap({\n options: true,\n open: this.open,\n upwards: this._openUpwards,\n })}\n style=\"min-width: ${this.menuMinWidth};\"\n aria-labelledby=\"label-${this.name}\"\n name=${this.name}\n role=\"listbox\"\n tabindex=\"0\"\n aria-expanded=${this.open}\n aria-hidden=${!this.open}\n @keydown=${(e: any) => this.handleListKeydown(e)}\n @blur=${(e: any) => this.handleListBlur(e)}\n >\n ${this.multiple && this.selectAll\n ? html`\n <kyn-dropdown-option\n class=\"select-all\"\n value=\"selectAll\"\n multiple\n ?selected=${this.selectAllChecked}\n ?indeterminate=${this.selectAllIndeterminate}\n ?disabled=${this.disabled}\n >\n ${this.selectAllText}\n </kyn-dropdown-option>\n `\n : null}\n\n <slot\n id=\"children\"\n @slotchange=${() => this.handleSlotChange()}\n ></slot>\n </ul>\n </div>\n ${this.searchText !== ''\n ? html`\n <kyn-button\n ?disabled=${this.disabled}\n class=\"clear-button dropdown-clear\"\n kind=\"ghost\"\n size=\"small\"\n description=${this._textStrings.clearAll}\n @click=${(e: Event) => this.handleClear(e)}\n >\n <span style=\"display:flex;\" slot=\"icon\"\n >${unsafeSVG(clearIcon)}</span\n >\n </kyn-button>\n `\n : null}\n </div>\n ${this.renderHelperContent()}\n </div>\n `;\n }\n\n private renderHelperContent() {\n return html`\n ${\n this.multiple && !this.hideTags && this._tags.length\n ? html`\n <kyn-tag-group\n filter\n role=\"list\"\n aria-label=${this._textStrings.selectedOptions}\n >\n ${this._tags.map((tag: any) => {\n return html`\n <kyn-tag\n role=\"listitem\"\n label=${tag.text}\n ?disabled=${this.disabled}\n clearTagText=\"Clear Tag ${tag.text}\"\n @on-close=${() => this.handleTagClear(tag.value)}\n ></kyn-tag>\n `;\n })}\n </kyn-tag-group>\n `\n : null\n }\n ${\n this.caption !== ''\n ? html`\n <div class=\"caption\" aria-disabled=${this.disabled}>\n ${this.caption}\n </div>\n `\n : null\n }\n ${\n this._isInvalid\n ? html`\n <div class=\"error\">\n <span\n class=\"error-icon\"\n role=\"img\"\n title=${this._textStrings.errorText}\n aria-label=${this._textStrings.errorText}\n >${unsafeSVG(errorIcon)}</span\n >\n ${this.invalidText || this._internalValidationMsg}\n </div>\n `\n : null\n }\n\n <div\n class=\"assistive-text\"\n role=\"status\"\n aria-live=\"assertive\"\n aria-relevant=\"additions text\"\n >\n ${this.assistiveText}\n </div>\n </div>\n `;\n }\n\n override firstUpdated() {\n // set a default placeholder if none provided\n if (this.placeholder === '') {\n if (this.searchable) {\n this.placeholder = 'Search';\n } else {\n if (this.multiple) {\n this.placeholder = 'Select items';\n } else {\n this.placeholder = 'Select an option';\n }\n }\n }\n }\n\n private handleSlotChange() {\n this._updateOptions();\n }\n\n private handleClick() {\n if (!this.disabled) {\n this.open = !this.open;\n\n // focus search input if searchable\n if (this.searchable) {\n this.searchEl.focus();\n } else {\n this.buttonEl.focus();\n }\n }\n }\n\n private _handleLabelClick() {\n if (!this.disabled) {\n this.open = !this.open;\n\n if (this.searchable) {\n this.searchEl.focus();\n } else {\n this.buttonEl.focus();\n }\n }\n }\n\n private handleButtonKeydown(e: any) {\n this.handleKeyboard(e, e.keyCode, 'button');\n }\n\n private handleListKeydown(e: any) {\n const TAB_KEY_CODE = 9;\n\n if (e.keyCode !== TAB_KEY_CODE) {\n e.preventDefault();\n }\n\n this.handleKeyboard(e, e.keyCode, 'list');\n }\n\n private handleListBlur(e: any) {\n this.options.forEach((option) => (option.highlighted = false));\n\n // don't blur if clicking an option inside\n if (\n e.relatedTarget &&\n e.relatedTarget.localName !== 'kyn-dropdown-option'\n ) {\n this.open = false;\n }\n this.assistiveText = 'Dropdown menu options.';\n }\n\n private handleKeyboard(e: any, keyCode: number, target: string) {\n const SPACEBAR_KEY_CODE = [0, 32];\n const ENTER_KEY_CODE = 13;\n const DOWN_ARROW_KEY_CODE = 40;\n const UP_ARROW_KEY_CODE = 38;\n const ESCAPE_KEY_CODE = 27;\n\n // get highlighted element + index and selected element\n const visibleOptions = this.options.filter(\n (option: any) => option.style.display !== 'none'\n );\n const highlightedEl = visibleOptions.find(\n (option: any) => option.highlighted\n );\n const selectedEl = visibleOptions.find((option: any) => option.selected);\n let highlightedIndex = highlightedEl\n ? visibleOptions.indexOf(highlightedEl)\n : visibleOptions.find((option: any) => option.selected)\n ? visibleOptions.indexOf(selectedEl)\n : 0;\n\n // prevent page scroll on spacebar press\n if (SPACEBAR_KEY_CODE.includes(keyCode)) {\n e.preventDefault();\n }\n\n const isListboxElOpened = this.open;\n // open the listbox\n if (target === 'button') {\n let openDropdown =\n SPACEBAR_KEY_CODE.includes(keyCode) ||\n keyCode === ENTER_KEY_CODE ||\n keyCode == DOWN_ARROW_KEY_CODE ||\n keyCode == UP_ARROW_KEY_CODE;\n\n if (e.target === this.clearMultipleEl) {\n openDropdown = false;\n visibleOptions[highlightedIndex].highlighted = false;\n visibleOptions[highlightedIndex].selected =\n !visibleOptions[highlightedIndex].selected;\n highlightedIndex = 0;\n if (keyCode !== ENTER_KEY_CODE) return;\n }\n\n if (openDropdown) {\n this.open = true;\n\n // scroll to highlighted option\n if (!this.multiple && this.value !== '') {\n visibleOptions[highlightedIndex].scrollIntoView({ block: 'nearest' });\n }\n }\n }\n switch (keyCode) {\n case 0:\n case 32:\n case ENTER_KEY_CODE: {\n // select highlighted option\n visibleOptions[highlightedIndex].highlighted = true;\n if (isListboxElOpened) {\n if (this.multiple) {\n visibleOptions[highlightedIndex].selected =\n !visibleOptions[highlightedIndex].selected;\n if (visibleOptions[highlightedIndex].selected) {\n this.assistiveText = `Selected ${visibleOptions[highlightedIndex].innerHTML}`;\n } else {\n this.assistiveText = `Deselected ${visibleOptions[highlightedIndex].innerHTML}`;\n }\n } else {\n visibleOptions.forEach((e) => (e.selected = false));\n visibleOptions[highlightedIndex].selected = true;\n this.open = false;\n this.assistiveText = `Selected ${visibleOptions[highlightedIndex].innerHTML}`;\n }\n }\n if (highlightedEl && isListboxElOpened)\n this.updateValue(\n visibleOptions[highlightedIndex].value,\n visibleOptions[highlightedIndex].selected\n );\n\n this.emitValue();\n return;\n }\n case DOWN_ARROW_KEY_CODE: {\n // go to next option\n let nextIndex =\n !highlightedEl && !selectedEl\n ? 0\n : highlightedIndex === visibleOptions.length - 1\n ? 0\n : highlightedIndex + 1;\n\n // skip disabled options\n if (visibleOptions[nextIndex].disabled) {\n nextIndex =\n nextIndex === visibleOptions.length - 1 ? 0 : nextIndex + 1;\n }\n\n visibleOptions[highlightedIndex].highlighted = false;\n visibleOptions[nextIndex].highlighted = true;\n\n // scroll to option\n visibleOptions[nextIndex].scrollIntoView({ block: 'nearest' });\n\n this.assistiveText = visibleOptions[nextIndex].text;\n return;\n }\n case UP_ARROW_KEY_CODE: {\n // go to previous option\n let nextIndex =\n highlightedIndex === 0\n ? visibleOptions.length - 1\n : highlightedIndex - 1;\n\n // skip disabled options\n if (visibleOptions[nextIndex].disabled) {\n nextIndex =\n nextIndex === 0 ? visibleOptions.length - 1 : nextIndex - 1;\n }\n\n visibleOptions[highlightedIndex].highlighted = false;\n visibleOptions[nextIndex].highlighted = true;\n\n // scroll to option\n visibleOptions[nextIndex].scrollIntoView({ block: 'nearest' });\n\n this.assistiveText = visibleOptions[nextIndex].text;\n return;\n }\n case ESCAPE_KEY_CODE: {\n // close listbox\n this.open = false;\n\n // restore focus\n if (this.searchable) {\n this.searchEl.focus();\n } else {\n this.buttonEl.focus();\n }\n\n this.assistiveText = 'Dropdown menu options.';\n return;\n }\n default: {\n return;\n }\n }\n }\n\n private handleClearMultiple(e: any) {\n e.stopPropagation();\n\n // clear values\n if (this.multiple) {\n this.value = [];\n } else {\n this.value = '';\n }\n\n this._validate(true, false);\n this._updateSelectedOptions();\n this.emitValue();\n\n const event = new CustomEvent('on-clear-all', {\n detail: {\n value: this.value,\n },\n });\n this.dispatchEvent(event);\n }\n\n private handleTagClear(value: string) {\n // remove value\n this.updateValue(value, false);\n this._updateSelectedOptions();\n this.emitValue();\n }\n\n private handleClear(e: any) {\n e.stopPropagation();\n\n // reset search input text\n this.text = '';\n this.searchText = '';\n this.searchEl.value = '';\n\n this._emitSearch();\n\n if (this.filterSearch) {\n // reveal all options\n this.options.map((option: any) => {\n option.style.display = 'block';\n });\n }\n\n // clear selection for single select\n if (!this.multiple) {\n this.value = '';\n this._validate(true, false);\n this._updateSelectedOptions();\n this.emitValue();\n }\n }\n\n private handleSearchClick(e: any) {\n e.stopPropagation();\n this.open = true;\n }\n\n private handleButtonBlur(e: any) {\n // don't blur if entering listbox or search input\n if (\n !e.relatedTarget?.classList.contains('options') &&\n !e.relatedTarget?.classList.contains('search')\n ) {\n this.open = false;\n }\n this._validate(true, false);\n }\n\n private handleSearchBlur(e: any) {\n // don't blur if entering listbox of button\n if (\n !e.relatedTarget ||\n (e.relatedTarget.localName !== 'kyn-dropdown-option' &&\n !e.relatedTarget?.classList.contains('options') &&\n !e.relatedTarget?.classList.contains('select'))\n ) {\n this.open = false;\n }\n this._validate(true, false);\n }\n\n private handleSearchKeydown(e: any) {\n e.stopPropagation();\n\n const ENTER_KEY_CODE = 13;\n const ESCAPE_KEY_CODE = 27;\n const option = this.options.find((option) => option.highlighted);\n const highlightedIndex = this.options.findIndex(\n (option) => option.highlighted\n );\n this.searchTextEntered = false;\n // select option\n if (e.keyCode === ENTER_KEY_CODE) {\n this.searchTextEntered = true;\n if (option) {\n if (this.prevSearchKeydownIndex !== highlightedIndex) {\n if (this.multiple) {\n option.selected = !option.selected;\n } else {\n this.options.forEach((e) => (e.selected = false));\n option.selected = true;\n this.open = false;\n }\n this.updateValue(option.value, option.selected);\n }\n\n if (option.selected) {\n this.assistiveText = `Selected ${option.innerHTML}`;\n this.prevSearchKeydownIndex = highlightedIndex;\n } else {\n this.assistiveText = `Deselected ${option.innerHTML}`;\n }\n } else {\n this.assistiveText = 'No item matched.';\n }\n }\n\n // close listbox\n if (e.keyCode === ESCAPE_KEY_CODE) {\n this.open = false;\n this.buttonEl.focus();\n }\n }\n\n private handleSearchInput(e: any) {\n const value = e.target.value;\n this.searchText = value;\n this.open = true;\n\n this._emitSearch();\n\n if (this.filterSearch) {\n // hide items that don't match\n this.options.map((option: any) => {\n const text = option.text;\n if (text.toLowerCase().includes(value.toLowerCase())) {\n option.style.display = 'block';\n } else {\n option.style.display = 'none';\n }\n });\n } else {\n // find matches\n const options = this.options.filter((option: any) => {\n const text = option.text;\n return text.toLowerCase().startsWith(value.toLowerCase());\n });\n\n // reset options highlighted state\n this.options.forEach((option) => (option.highlighted = false));\n\n // option highlight and scroll\n if (value !== '' && options.length) {\n options[0].highlighted = true;\n options[0].scrollIntoView({ block: 'nearest' });\n if (this.searchTextEntered) this.assistiveText = 'Option Matched';\n }\n }\n }\n\n private _updateSelectedOptions() {\n // set selected state for each option\n this.options.forEach((option: any) => {\n if (this.multiple) {\n option.selected = this.value.includes(option.value);\n } else {\n option.selected = this.value === option.value;\n }\n });\n }\n\n private _handleClick(e: any) {\n if (e.detail.value === 'selectAll') {\n if (e.detail.selected) {\n this.value = this.options\n .filter((option) => !option.disabled)\n .map((option) => {\n return option.value;\n });\n this.assistiveText = 'Selected all items.';\n } else {\n this.value = [];\n this.assistiveText = 'Deselected all items.';\n }\n\n this._validate(true, false);\n } else {\n this.updateValue(e.detail.value, e.detail.selected);\n this.assistiveText = 'Selected an item.';\n }\n\n this._updateSelectedOptions();\n\n // close listbox\n if (!this.multiple) {\n this.open = false;\n }\n\n // emit selected value\n this.emitValue();\n }\n\n private _handleBlur(e: any) {\n const relatedTarget = e.detail.origEvent.relatedTarget;\n\n if (\n !relatedTarget ||\n (relatedTarget.localName !== 'kyn-dropdown-option' &&\n relatedTarget.localName !== 'kyn-dropdown')\n ) {\n this.open = false;\n }\n }\n\n private _handleClickOut(e: Event) {\n if (!e.composedPath().includes(this)) {\n this.open = false;\n }\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n // preserve FormMixin connectedCallback function\n this._onConnected();\n\n document.addEventListener('click', (e) => this._handleClickOut(e));\n\n // capture child options click event\n this.addEventListener('on-click', (e: any) => this._handleClick(e));\n\n // capture child options blur event\n this.addEventListener('on-blur', (e: any) => this._handleBlur(e));\n }\n\n override disconnectedCallback() {\n // preserve FormMixin disconnectedCallback function\n this._onDisconnected();\n\n document.removeEventListener('click', (e) => this._handleClickOut(e));\n this.removeEventListener('on-click', (e: any) => this._handleClick(e));\n this.removeEventListener('on-blur', (e: any) => this._handleBlur(e));\n\n super.disconnectedCallback();\n }\n\n private updateValue(value: string, selected = false) {\n // set value\n if (this.multiple) {\n const values =\n this.value === '' ? [] : JSON.parse(JSON.stringify(this.value));\n\n // update array\n if (selected) {\n values.push(value);\n } else {\n const index = values.indexOf(value);\n values.splice(index, 1);\n }\n\n this.value = values;\n } else {\n this.value = value;\n }\n\n this._validate(true, false);\n\n // reset focus\n if (!this.multiple) {\n if (this.searchable) {\n this.searchEl.focus();\n } else {\n this.buttonEl.focus();\n }\n }\n }\n\n private _validate(interacted: Boolean, report: Boolean) {\n // set validity flags\n const Validity = {\n customError: this.invalidText !== '',\n valueMissing:\n this.required &&\n (!this.value ||\n (this.multiple && !this.value.length) ||\n (!this.multiple && this.value === '')),\n };\n\n // set validationMessage\n const InternalMsg =\n this.required && !this.value.length ? 'Please fill out this field.' : '';\n const ValidationMessage =\n this.invalidText !== '' ? this.invalidText : InternalMsg;\n\n // set validity on custom element, anchor to buttonEl\n this._internals.setValidity(Validity, ValidationMessage, this.buttonEl);\n\n // set internal validation message if value was changed by user input\n if (interacted) {\n this._internalValidationMsg = InternalMsg;\n }\n\n // focus the buttonEl to show validity\n if (report) {\n this._internals.reportValidity();\n }\n }\n\n private emitValue() {\n const event = new CustomEvent('on-change', {\n detail: {\n value: this.value,\n },\n });\n this.dispatchEvent(event);\n }\n\n private _emitSearch() {\n const event = new CustomEvent('on-search', {\n detail: {\n searchText: this.searchText,\n },\n });\n this.dispatchEvent(event);\n }\n\n override willUpdate(changedProps: any) {\n if (changedProps.has('textStrings')) {\n this._textStrings = deepmerge(_defaultTextStrings, this.textStrings);\n }\n }\n\n override updated(changedProps: any) {\n // preserve FormMixin updated function\n this._onUpdated(changedProps);\n\n if (changedProps.has('value')) {\n const Slot: any = this.shadowRoot?.querySelector('slot#children');\n const Options: Array<any> = Slot.assignedElements().filter(\n (option: any) => !option.disabled\n );\n const SelectedOptions: Array<any> = Options.filter(\n (option: any) => option.selected\n );\n\n // sync \"Select All\" checkbox state\n this.selectAllChecked = SelectedOptions.length === Options.length;\n\n // sync \"Select All\" indeterminate state\n this.selectAllIndeterminate =\n SelectedOptions.length < Options.length && SelectedOptions.length > 0;\n\n this._updateOptions();\n this._updateTags();\n\n // update selected option text\n const AllOptions: any = Array.from(\n this.querySelectorAll('kyn-dropdown-option')\n );\n\n if (!this.multiple) {\n if (AllOptions.length && this.value !== '') {\n const option = AllOptions.find(\n (option: any) => option.value === this.value\n );\n\n this.text = option.textContent;\n }\n\n // set search input value\n if (this.searchable && this.text) {\n this.searchText = this.text === this.placeholder ? '' : this.text;\n this.searchEl.value = this.searchText;\n }\n }\n }\n\n if (changedProps.has('open')) {\n if (this.open && !this.searchable) {\n // focus listbox if not searchable\n this.listboxEl.focus({ preventScroll: true });\n this.assistiveText =\n 'Selecting items. Use up and down arrow keys to navigate.';\n }\n\n if (this.open) {\n if (!this.multiple) {\n // scroll to selected option\n this.options\n .find((option) => option.selected)\n ?.scrollIntoView({ block: 'nearest' });\n }\n\n // open dropdown upwards if closer to bottom of viewport\n const Threshold = 0.6;\n\n if (\n this.buttonEl.getBoundingClientRect().top >\n window.innerHeight * Threshold\n ) {\n this._openUpwards = true;\n } else {\n this._openUpwards = false;\n }\n }\n }\n\n if (changedProps.has('multiple')) {\n // set multiple for each option\n this.options.forEach((option: any) => {\n option.multiple = this.multiple;\n });\n }\n\n if (changedProps.has('searchText') && this.searchEl) {\n this.searchEl.value = this.searchText;\n }\n }\n\n // add selected options to Tags array\n private _updateTags() {\n if (this.multiple) {\n const Options: any = Array.from(\n this.querySelectorAll('kyn-dropdown-option')\n );\n const Tags: Array<object> = [];\n\n if (Options) {\n Options.forEach((option: any) => {\n if (option.selected) {\n Tags.push({\n value: option.value,\n text: option.textContent,\n });\n }\n });\n\n this._tags = Tags;\n }\n }\n }\n\n private _updateOptions() {\n const Options: any = Array.from(\n this.querySelectorAll('kyn-dropdown-option')\n );\n\n Options.forEach((option: any) => {\n // set option multiple state\n option.multiple = this.multiple;\n\n if (this.multiple) {\n const Selected = this.value.includes(option.value);\n // set option selected state\n option.selected = Selected;\n } else {\n option.selected = this.value === option.value;\n }\n });\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-dropdown': Dropdown;\n }\n}\n"],"names":["_defaultTextStrings","title","selectedOptions","requiredText","errorText","clearAll","Dropdown","FormMixin","LitElement","constructor","this","label","size","inline","caption","placeholder","open","searchable","filterSearch","multiple","required","hideLabel","disabled","hideTags","selectAll","selectAllText","menuMinWidth","selectAllChecked","selectAllIndeterminate","textStrings","_textStrings","text","searchText","assistiveText","_openUpwards","_tags","searchTextEntered","prevSearchKeydownIndex","render","html","name","_handleLabelClick","_a","classMap","wrapper","select","_isInvalid","handleClick","e","handleButtonKeydown","preventDefault","handleButtonBlur","value","length","handleClearMultiple","unsafeSVG","clearIcon","handleSearchKeydown","handleSearchInput","handleSearchBlur","handleSearchClick","downIcon","options","upwards","handleListKeydown","handleListBlur","handleSlotChange","handleClear","renderHelperContent","map","tag","handleTagClear","errorIcon","invalidText","_internalValidationMsg","firstUpdated","_updateOptions","searchEl","focus","buttonEl","handleKeyboard","keyCode","forEach","option","highlighted","relatedTarget","localName","target","SPACEBAR_KEY_CODE","visibleOptions","filter","style","display","highlightedEl","find","selectedEl","selected","highlightedIndex","indexOf","includes","isListboxElOpened","openDropdown","clearMultipleEl","scrollIntoView","block","innerHTML","updateValue","emitValue","nextIndex","stopPropagation","_validate","_updateSelectedOptions","event","CustomEvent","detail","dispatchEvent","_emitSearch","classList","contains","_b","findIndex","toLowerCase","startsWith","_handleClick","_handleBlur","origEvent","_handleClickOut","composedPath","connectedCallback","super","_onConnected","document","addEventListener","disconnectedCallback","_onDisconnected","removeEventListener","values","JSON","parse","stringify","push","index","splice","interacted","report","Validity","customError","valueMissing","InternalMsg","ValidationMessage","_internals","setValidity","reportValidity","willUpdate","changedProps","has","deepmerge","updated","_onUpdated","Options","shadowRoot","querySelector","assignedElements","SelectedOptions","_updateTags","AllOptions","Array","from","querySelectorAll","textContent","listboxEl","preventScroll","Threshold","getBoundingClientRect","top","window","innerHeight","Tags","Selected","styles","DropdownScss","__decorate","property","type","String","prototype","Boolean","Object","state","queryAssignedElements","selector","query","customElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsBA,MAAMA,EAAsB,CAC1BC,MAAO,WACPC,gBAAiB,2BACjBC,aAAc,WACdC,UAAW,QACXC,SAAU,aAYC,IAAAC,EAAN,cAAuBC,EAAUC,IAAjC,WAAAC,uBAKLC,KAAKC,MAAG,GAIRD,KAAIE,KAAG,KAIPF,KAAMG,QAAG,EAITH,KAAOI,QAAG,GAIVJ,KAAWK,YAAG,GAIdL,KAAIM,MAAG,EAIPN,KAAUO,YAAG,EAIbP,KAAYQ,cAAG,EAIfR,KAAQS,UAAG,EAIXT,KAAQU,UAAG,EAIXV,KAASW,WAAG,EAIZX,KAAQY,UAAG,EAIXZ,KAAQa,UAAG,EAIXb,KAASc,WAAG,EAIZd,KAAae,cAAG,aAIhBf,KAAYgB,aAAG,UAMfhB,KAAgBiB,kBAAG,EAMnBjB,KAAsBkB,wBAAG,EAIzBlB,KAAWmB,YAAG7B,EAMdU,KAAYoB,aAAG9B,EAOfU,KAAIqB,KAAG,GAMPrB,KAAUsB,WAAG,GAObtB,KAAauB,cAAG,yBAiDhBvB,KAAYwB,cAAG,EAOfxB,KAAKyB,MAAkB,GAKvBzB,KAAiB0B,mBAAQ,EAKzB1B,KAAsB2B,wBAAI,CAq5B3B,CAn5BU,MAAAC,SACP,OAAOC,CAAI;;;oBAGK7B,KAAKY;gBACTZ,KAAKM;kBACHN,KAAKG;sBACDH,KAAKO;;;sBAGLP,KAAK8B;8BACG9B,KAAKW,WAAaX,KAAKG,OAAS,UAAY;gBAC1DH,KAAK8B;0BACK9B,KAAKY;mBACZ,IAAMZ,KAAK+B;;YAElB/B,KAAKU,SACHmB,CAAI;;wBAEM7B,KAAKoB,aAAa3B;;8BAEM,UAAnBO,KAAKoB,oBAAc,IAAAY,OAAA,EAAAA,EAAAvC,eAAgB;;iBAGlD;YACFO,KAAKC;;;;;kBAKCgC,EAAS,CACfC,SAAS,EACT5B,KAAMN,KAAKM;;;;uBAKA2B,EAAS,CAChBE,QAAQ,EACR,gBAAgB,EAChB,WAA0B,OAAdnC,KAAKE,KACjB,WAA0B,OAAdF,KAAKE,KACjBC,OAAQH,KAAKG;uCAEUH,KAAK8B;8BACd9B,KAAKM;;;mBAGhBN,KAAK8B;qBACH9B,KAAK8B;sBACJ9B,KAAKoB,aAAa7B;0BACdS,KAAKU;0BACLV,KAAKY;yBACNZ,KAAKoC;yBACLpC,KAAKY,SAAW,GAAK;uBACvB,IAAMZ,KAAKqC;yBACRC,GAAWtC,KAAKuC,oBAAoBD;2BAClCA,IACPtC,KAAKO,YACR+B,EAAEE,gBACH;sBAEMF,GAAWtC,KAAKyC,iBAAiBH;;gBAExCtC,KAAKS,UAAYT,KAAK0C,MAAMC,OAC1Bd,CAAI;;;oCAGc7B,KAAK0C,MAChBC;kCACS3C,KAAKY;+BACP0B,GAAatC,KAAK4C,oBAAoBN;;wBAE9CtC,KAAK0C,MAAMC;;2BAERE,EAAUC;;;oBAInB;gBACF9C,KAAKO,WACHsB,CAAI;;;;oCAIc7B,KAAKK;8BACXL,KAAKsB;kCACDtB,KAAKY;sCACDZ,KAAKY;iCACT0B,GAAWtC,KAAK+C,oBAAoBT;+BACtCA,GAAWtC,KAAKgD,kBAAkBV;8BACnCA,GAAWtC,KAAKiD,iBAAiBX;+BAChCA,GAAWtC,KAAKkD,kBAAkBZ;;oBAGhDT,CAAI;0CACoB7B,KAAKY;wBACvBZ,KAAKS,UAEY,KAAfT,KAAK0C,MADL1C,KAAKK,YAGLL,KAAKqB;;;;yCAIUwB,EAAUM;;;;;sBAK7BlB,EAAS,CACfmB,SAAS,EACT9C,KAAMN,KAAKM,KACX+C,QAASrD,KAAKwB;kCAEIxB,KAAKgB;uCACAhB,KAAK8B;qBACvB9B,KAAK8B;;;8BAGI9B,KAAKM;6BACNN,KAAKM;yBACRgC,GAAWtC,KAAKsD,kBAAkBhB;sBACrCA,GAAWtC,KAAKuD,eAAejB;;gBAEtCtC,KAAKS,UAAYT,KAAKc,UACpBe,CAAI;;;;;kCAKY7B,KAAKiB;uCACAjB,KAAKkB;kCACVlB,KAAKY;;wBAEfZ,KAAKe;;oBAGX;;;;8BAIY,IAAMf,KAAKwD;;;;YAIT,KAApBxD,KAAKsB,WACHO,CAAI;;8BAEY7B,KAAKY;;;;gCAIHZ,KAAKoB,aAAazB;2BACtB2C,GAAatC,KAAKyD,YAAYnB;;;uBAGnCO,EAAUC;;;gBAInB;;UAEJ9C,KAAK0D;;KAGZ,CAEO,mBAAAA,GACN,OAAO7B,CAAI;UAEL7B,KAAKS,WAAaT,KAAKa,UAAYb,KAAKyB,MAAMkB,OAC1Cd,CAAI;;;;+BAIa7B,KAAKoB,aAAa5B;;oBAE7BQ,KAAKyB,MAAMkC,KAAKC,GACT/B,CAAI;;;gCAGC+B,EAAIvC;oCACArB,KAAKY;kDACSgD,EAAIvC;oCAClB,IAAMrB,KAAK6D,eAAeD,EAAIlB;;;;gBAMpD;UAGa,KAAjB1C,KAAKI,QACDyB,CAAI;qDACmC7B,KAAKY;oBACtCZ,KAAKI;;gBAGX;UAGJJ,KAAKoC,WACDP,CAAI;;;;;4BAKU7B,KAAKoB,aAAa1B;iCACbM,KAAKoB,aAAa1B;uBAC5BmD,EAAUiB;;oBAEb9D,KAAK+D,aAAe/D,KAAKgE;;gBAG/B;;;;;;;;YASFhE,KAAKuB;;;KAId,CAEQ,YAAA0C,GAEkB,KAArBjE,KAAKK,cACHL,KAAKO,WACPP,KAAKK,YAAc,SAEfL,KAAKS,SACPT,KAAKK,YAAc,eAEnBL,KAAKK,YAAc,mBAI1B,CAEO,gBAAAmD,GACNxD,KAAKkE,gBACN,CAEO,WAAA7B,GACDrC,KAAKY,WACRZ,KAAKM,MAAQN,KAAKM,KAGdN,KAAKO,WACPP,KAAKmE,SAASC,QAEdpE,KAAKqE,SAASD,QAGnB,CAEO,iBAAArC,GACD/B,KAAKY,WACRZ,KAAKM,MAAQN,KAAKM,KAEdN,KAAKO,WACPP,KAAKmE,SAASC,QAEdpE,KAAKqE,SAASD,QAGnB,CAEO,mBAAA7B,CAAoBD,GAC1BtC,KAAKsE,eAAehC,EAAGA,EAAEiC,QAAS,SACnC,CAEO,iBAAAjB,CAAkBhB,GACH,IAEjBA,EAAEiC,SACJjC,EAAEE,iBAGJxC,KAAKsE,eAAehC,EAAGA,EAAEiC,QAAS,OACnC,CAEO,cAAAhB,CAAejB,GACrBtC,KAAKoD,QAAQoB,SAASC,GAAYA,EAAOC,aAAc,IAIrDpC,EAAEqC,eAC4B,wBAA9BrC,EAAEqC,cAAcC,YAEhB5E,KAAKM,MAAO,GAEdN,KAAKuB,cAAgB,wBACtB,CAEO,cAAA+C,CAAehC,EAAQiC,EAAiBM,GAC9C,MAAMC,EAAoB,CAAC,EAAG,IAOxBC,EAAiB/E,KAAKoD,QAAQ4B,QACjCP,GAAyC,SAAzBA,EAAOQ,MAAMC,UAE1BC,EAAgBJ,EAAeK,MAClCX,GAAgBA,EAAOC,cAEpBW,EAAaN,EAAeK,MAAMX,GAAgBA,EAAOa,WAC/D,IAAIC,EAAmBJ,EACnBJ,EAAeS,QAAQL,GACvBJ,EAAeK,MAAMX,GAAgBA,EAAOa,WAC5CP,EAAeS,QAAQH,GACvB,EAGAP,EAAkBW,SAASlB,IAC7BjC,EAAEE,iBAGJ,MAAMkD,EAAoB1F,KAAKM,KAE/B,GAAe,WAAXuE,EAAqB,CACvB,IAAIc,EACFb,EAAkBW,SAASlB,IA5BR,KA6BnBA,GA5BwB,IA6BxBA,GA5BsB,IA6BtBA,EAEF,GAAIjC,EAAEuC,SAAW7E,KAAK4F,kBACpBD,GAAe,EACfZ,EAAeQ,GAAkBb,aAAc,EAC/CK,EAAeQ,GAAkBD,UAC9BP,EAAeQ,GAAkBD,SACpCC,EAAmB,EAtCA,KAuCfhB,GAA4B,OAG9BoB,IACF3F,KAAKM,MAAO,EAGPN,KAAKS,UAA2B,KAAfT,KAAK0C,OACzBqC,EAAeQ,GAAkBM,eAAe,CAAEC,MAAO,YAG9D,CACD,OAAQvB,GACN,KAAK,EACL,KAAK,GACL,KAtDqB,GAgFnB,OAxBAQ,EAAeQ,GAAkBb,aAAc,EAC3CgB,IACE1F,KAAKS,UACPsE,EAAeQ,GAAkBD,UAC9BP,EAAeQ,GAAkBD,SAChCP,EAAeQ,GAAkBD,SACnCtF,KAAKuB,cAAgB,YAAYwD,EAAeQ,GAAkBQ,YAElE/F,KAAKuB,cAAgB,cAAcwD,EAAeQ,GAAkBQ,cAGtEhB,EAAeP,SAASlC,GAAOA,EAAEgD,UAAW,IAC5CP,EAAeQ,GAAkBD,UAAW,EAC5CtF,KAAKM,MAAO,EACZN,KAAKuB,cAAgB,YAAYwD,EAAeQ,GAAkBQ,cAGlEZ,GAAiBO,GACnB1F,KAAKgG,YACHjB,EAAeQ,GAAkB7C,MACjCqC,EAAeQ,GAAkBD,eAGrCtF,KAAKiG,YAGP,KAjF0B,GAiFA,CAExB,IAAIC,EACDf,GAAkBE,EAEfE,IAAqBR,EAAepC,OAAS,EAC7C,EACA4C,EAAmB,EAHnB,EAkBN,OAZIR,EAAemB,GAAWtF,WAC5BsF,EACEA,IAAcnB,EAAepC,OAAS,EAAI,EAAIuD,EAAY,GAG9DnB,EAAeQ,GAAkBb,aAAc,EAC/CK,EAAemB,GAAWxB,aAAc,EAGxCK,EAAemB,GAAWL,eAAe,CAAEC,MAAO,iBAElD9F,KAAKuB,cAAgBwD,EAAemB,GAAW7E,KAEhD,CACD,KAxGwB,GAwGA,CAEtB,IAAI6E,EACmB,IAArBX,EACIR,EAAepC,OAAS,EACxB4C,EAAmB,EAezB,OAZIR,EAAemB,GAAWtF,WAC5BsF,EACgB,IAAdA,EAAkBnB,EAAepC,OAAS,EAAIuD,EAAY,GAG9DnB,EAAeQ,GAAkBb,aAAc,EAC/CK,EAAemB,GAAWxB,aAAc,EAGxCK,EAAemB,GAAWL,eAAe,CAAEC,MAAO,iBAElD9F,KAAKuB,cAAgBwD,EAAemB,GAAW7E,KAEhD,CACD,KA7HsB,GAyIpB,OAVArB,KAAKM,MAAO,EAGRN,KAAKO,WACPP,KAAKmE,SAASC,QAEdpE,KAAKqE,SAASD,aAGhBpE,KAAKuB,cAAgB,0BAGvB,QACE,OAGL,CAEO,mBAAAqB,CAAoBN,GAC1BA,EAAE6D,kBAGEnG,KAAKS,SACPT,KAAK0C,MAAQ,GAEb1C,KAAK0C,MAAQ,GAGf1C,KAAKoG,WAAU,GAAM,GACrBpG,KAAKqG,yBACLrG,KAAKiG,YAEL,MAAMK,EAAQ,IAAIC,YAAY,eAAgB,CAC5CC,OAAQ,CACN9D,MAAO1C,KAAK0C,SAGhB1C,KAAKyG,cAAcH,EACpB,CAEO,cAAAzC,CAAenB,GAErB1C,KAAKgG,YAAYtD,GAAO,GACxB1C,KAAKqG,yBACLrG,KAAKiG,WACN,CAEO,WAAAxC,CAAYnB,GAClBA,EAAE6D,kBAGFnG,KAAKqB,KAAO,GACZrB,KAAKsB,WAAa,GAClBtB,KAAKmE,SAASzB,MAAQ,GAEtB1C,KAAK0G,cAED1G,KAAKQ,cAEPR,KAAKoD,QAAQO,KAAKc,IAChBA,EAAOQ,MAAMC,QAAU,OAAO,IAK7BlF,KAAKS,WACRT,KAAK0C,MAAQ,GACb1C,KAAKoG,WAAU,GAAM,GACrBpG,KAAKqG,yBACLrG,KAAKiG,YAER,CAEO,iBAAA/C,CAAkBZ,GACxBA,EAAE6D,kBACFnG,KAAKM,MAAO,CACb,CAEO,gBAAAmC,CAAiBH,YAGH,QAAjBN,EAAAM,EAAEqC,qBAAe,IAAA3C,OAAA,EAAAA,EAAA2E,UAAUC,SAAS,cACrB,QAAfC,EAAAvE,EAAEqC,qBAAa,IAAAkC,OAAA,EAAAA,EAAEF,UAAUC,SAAS,aAErC5G,KAAKM,MAAO,GAEdN,KAAKoG,WAAU,GAAM,EACtB,CAEO,gBAAAnD,CAAiBX,WAGpBA,EAAEqC,gBAC4B,wBAA9BrC,EAAEqC,cAAcC,YACC,QAAf5C,EAAAM,EAAEqC,qBAAa,IAAA3C,OAAA,EAAAA,EAAE2E,UAAUC,SAAS,cACnB,QAAjBC,EAAAvE,EAAEqC,qBAAe,IAAAkC,OAAA,EAAAA,EAAAF,UAAUC,SAAS,cAEvC5G,KAAKM,MAAO,GAEdN,KAAKoG,WAAU,GAAM,EACtB,CAEO,mBAAArD,CAAoBT,GAC1BA,EAAE6D,kBAEF,MAEM1B,EAASzE,KAAKoD,QAAQgC,MAAMX,GAAWA,EAAOC,cAC9Ca,EAAmBvF,KAAKoD,QAAQ0D,WACnCrC,GAAWA,EAAOC,cAErB1E,KAAK0B,mBAAoB,EANF,KAQnBY,EAAEiC,UACJvE,KAAK0B,mBAAoB,EACrB+C,GACEzE,KAAK2B,yBAA2B4D,IAC9BvF,KAAKS,SACPgE,EAAOa,UAAYb,EAAOa,UAE1BtF,KAAKoD,QAAQoB,SAASlC,GAAOA,EAAEgD,UAAW,IAC1Cb,EAAOa,UAAW,EAClBtF,KAAKM,MAAO,GAEdN,KAAKgG,YAAYvB,EAAO/B,MAAO+B,EAAOa,WAGpCb,EAAOa,UACTtF,KAAKuB,cAAgB,YAAYkD,EAAOsB,YACxC/F,KAAK2B,uBAAyB4D,GAE9BvF,KAAKuB,cAAgB,cAAckD,EAAOsB,aAG5C/F,KAAKuB,cAAgB,oBA5BD,KAiCpBe,EAAEiC,UACJvE,KAAKM,MAAO,EACZN,KAAKqE,SAASD,QAEjB,CAEO,iBAAApB,CAAkBV,GACxB,MAAMI,EAAQJ,EAAEuC,OAAOnC,MAMvB,GALA1C,KAAKsB,WAAaoB,EAClB1C,KAAKM,MAAO,EAEZN,KAAK0G,cAED1G,KAAKQ,aAEPR,KAAKoD,QAAQO,KAAKc,IACHA,EAAOpD,KACX0F,cAActB,SAAS/C,EAAMqE,eACpCtC,EAAOQ,MAAMC,QAAU,QAEvBT,EAAOQ,MAAMC,QAAU,MACxB,QAEE,CAEL,MAAM9B,EAAUpD,KAAKoD,QAAQ4B,QAAQP,GACtBA,EAAOpD,KACR0F,cAAcC,WAAWtE,EAAMqE,iBAI7C/G,KAAKoD,QAAQoB,SAASC,GAAYA,EAAOC,aAAc,IAGzC,KAAVhC,GAAgBU,EAAQT,SAC1BS,EAAQ,GAAGsB,aAAc,EACzBtB,EAAQ,GAAGyC,eAAe,CAAEC,MAAO,YAC/B9F,KAAK0B,oBAAmB1B,KAAKuB,cAAgB,kBAEpD,CACF,CAEO,sBAAA8E,GAENrG,KAAKoD,QAAQoB,SAASC,IAChBzE,KAAKS,SACPgE,EAAOa,SAAWtF,KAAK0C,MAAM+C,SAAShB,EAAO/B,OAE7C+B,EAAOa,SAAWtF,KAAK0C,QAAU+B,EAAO/B,KACzC,GAEJ,CAEO,YAAAuE,CAAa3E,GACI,cAAnBA,EAAEkE,OAAO9D,OACPJ,EAAEkE,OAAOlB,UACXtF,KAAK0C,MAAQ1C,KAAKoD,QACf4B,QAAQP,IAAYA,EAAO7D,WAC3B+C,KAAKc,GACGA,EAAO/B,QAElB1C,KAAKuB,cAAgB,wBAErBvB,KAAK0C,MAAQ,GACb1C,KAAKuB,cAAgB,yBAGvBvB,KAAKoG,WAAU,GAAM,KAErBpG,KAAKgG,YAAY1D,EAAEkE,OAAO9D,MAAOJ,EAAEkE,OAAOlB,UAC1CtF,KAAKuB,cAAgB,qBAGvBvB,KAAKqG,yBAGArG,KAAKS,WACRT,KAAKM,MAAO,GAIdN,KAAKiG,WACN,CAEO,WAAAiB,CAAY5E,GAClB,MAAMqC,EAAgBrC,EAAEkE,OAAOW,UAAUxC,gBAGtCA,GAC4B,wBAA5BA,EAAcC,WACe,iBAA5BD,EAAcC,aAEhB5E,KAAKM,MAAO,EAEf,CAEO,eAAA8G,CAAgB9E,GACjBA,EAAE+E,eAAe5B,SAASzF,QAC7BA,KAAKM,MAAO,EAEf,CAEQ,iBAAAgH,GACPC,MAAMD,oBAGNtH,KAAKwH,eAELC,SAASC,iBAAiB,SAAUpF,GAAMtC,KAAKoH,gBAAgB9E,KAG/DtC,KAAK0H,iBAAiB,YAAapF,GAAWtC,KAAKiH,aAAa3E,KAGhEtC,KAAK0H,iBAAiB,WAAYpF,GAAWtC,KAAKkH,YAAY5E,IAC/D,CAEQ,oBAAAqF,GAEP3H,KAAK4H,kBAELH,SAASI,oBAAoB,SAAUvF,GAAMtC,KAAKoH,gBAAgB9E,KAClEtC,KAAK6H,oBAAoB,YAAavF,GAAWtC,KAAKiH,aAAa3E,KACnEtC,KAAK6H,oBAAoB,WAAYvF,GAAWtC,KAAKkH,YAAY5E,KAEjEiF,MAAMI,sBACP,CAEO,WAAA3B,CAAYtD,EAAe4C,GAAW,GAE5C,GAAItF,KAAKS,SAAU,CACjB,MAAMqH,EACW,KAAf9H,KAAK0C,MAAe,GAAKqF,KAAKC,MAAMD,KAAKE,UAAUjI,KAAK0C,QAG1D,GAAI4C,EACFwC,EAAOI,KAAKxF,OACP,CACL,MAAMyF,EAAQL,EAAOtC,QAAQ9C,GAC7BoF,EAAOM,OAAOD,EAAO,EACtB,CAEDnI,KAAK0C,MAAQoF,CACd,MACC9H,KAAK0C,MAAQA,EAGf1C,KAAKoG,WAAU,GAAM,GAGhBpG,KAAKS,WACJT,KAAKO,WACPP,KAAKmE,SAASC,QAEdpE,KAAKqE,SAASD,QAGnB,CAEO,SAAAgC,CAAUiC,EAAqBC,GAErC,MAAMC,EAAW,CACfC,YAAkC,KAArBxI,KAAK+D,YAClB0E,aACEzI,KAAKU,YACHV,KAAK0C,OACJ1C,KAAKS,WAAaT,KAAK0C,MAAMC,SAC5B3C,KAAKS,UAA2B,KAAfT,KAAK0C,QAIxBgG,EACJ1I,KAAKU,WAAaV,KAAK0C,MAAMC,OAAS,8BAAgC,GAClEgG,EACiB,KAArB3I,KAAK+D,YAAqB/D,KAAK+D,YAAc2E,EAG/C1I,KAAK4I,WAAWC,YAAYN,EAAUI,EAAmB3I,KAAKqE,UAG1DgE,IACFrI,KAAKgE,uBAAyB0E,GAI5BJ,GACFtI,KAAK4I,WAAWE,gBAEnB,CAEO,SAAA7C,GACN,MAAMK,EAAQ,IAAIC,YAAY,YAAa,CACzCC,OAAQ,CACN9D,MAAO1C,KAAK0C,SAGhB1C,KAAKyG,cAAcH,EACpB,CAEO,WAAAI,GACN,MAAMJ,EAAQ,IAAIC,YAAY,YAAa,CACzCC,OAAQ,CACNlF,WAAYtB,KAAKsB,cAGrBtB,KAAKyG,cAAcH,EACpB,CAEQ,UAAAyC,CAAWC,GACdA,EAAaC,IAAI,iBACnBjJ,KAAKoB,aAAe8H,EAAU5J,EAAqBU,KAAKmB,aAE3D,CAEQ,OAAAgI,CAAQH,WAIf,GAFAhJ,KAAKoJ,WAAWJ,GAEZA,EAAaC,IAAI,SAAU,CAC7B,MACMI,GAD2B,QAAfrH,EAAAhC,KAAKsJ,kBAAU,IAAAtH,OAAA,EAAAA,EAAEuH,cAAc,kBAChBC,mBAAmBxE,QACjDP,IAAiBA,EAAO7D,WAErB6I,EAA8BJ,EAAQrE,QACzCP,GAAgBA,EAAOa,WAI1BtF,KAAKiB,iBAAmBwI,EAAgB9G,SAAW0G,EAAQ1G,OAG3D3C,KAAKkB,uBACHuI,EAAgB9G,OAAS0G,EAAQ1G,QAAU8G,EAAgB9G,OAAS,EAEtE3C,KAAKkE,iBACLlE,KAAK0J,cAGL,MAAMC,EAAkBC,MAAMC,KAC5B7J,KAAK8J,iBAAiB,wBAGxB,IAAK9J,KAAKS,SAAU,CAClB,GAAIkJ,EAAWhH,QAAyB,KAAf3C,KAAK0C,MAAc,CAC1C,MAAM+B,EAASkF,EAAWvE,MACvBX,GAAgBA,EAAO/B,QAAU1C,KAAK0C,QAGzC1C,KAAKqB,KAAOoD,EAAOsF,WACpB,CAGG/J,KAAKO,YAAcP,KAAKqB,OAC1BrB,KAAKsB,WAAatB,KAAKqB,OAASrB,KAAKK,YAAc,GAAKL,KAAKqB,KAC7DrB,KAAKmE,SAASzB,MAAQ1C,KAAKsB,WAE9B,CACF,CAED,GAAI0H,EAAaC,IAAI,UACfjJ,KAAKM,OAASN,KAAKO,aAErBP,KAAKgK,UAAU5F,MAAM,CAAE6F,eAAe,IACtCjK,KAAKuB,cACH,4DAGAvB,KAAKM,MAAM,CACRN,KAAKS,UAIJ,QAFJoG,EAAA7G,KAAKoD,QACFgC,MAAMX,GAAWA,EAAOa,kBACvB,IAAAuB,GAAAA,EAAAhB,eAAe,CAAEC,MAAO,YAI9B,MAAMoE,EAAY,GAGhBlK,KAAKqE,SAAS8F,wBAAwBC,IACtCC,OAAOC,YAAcJ,EAErBlK,KAAKwB,cAAe,EAEpBxB,KAAKwB,cAAe,CAEvB,CAGCwH,EAAaC,IAAI,aAEnBjJ,KAAKoD,QAAQoB,SAASC,IACpBA,EAAOhE,SAAWT,KAAKS,QAAQ,IAI/BuI,EAAaC,IAAI,eAAiBjJ,KAAKmE,WACzCnE,KAAKmE,SAASzB,MAAQ1C,KAAKsB,WAE9B,CAGO,WAAAoI,GACN,GAAI1J,KAAKS,SAAU,CACjB,MAAM4I,EAAeO,MAAMC,KACzB7J,KAAK8J,iBAAiB,wBAElBS,EAAsB,GAExBlB,IACFA,EAAQ7E,SAASC,IACXA,EAAOa,UACTiF,EAAKrC,KAAK,CACRxF,MAAO+B,EAAO/B,MACdrB,KAAMoD,EAAOsF,aAEhB,IAGH/J,KAAKyB,MAAQ8I,EAEhB,CACF,CAEO,cAAArG,GACe0F,MAAMC,KACzB7J,KAAK8J,iBAAiB,wBAGhBtF,SAASC,IAIf,GAFAA,EAAOhE,SAAWT,KAAKS,SAEnBT,KAAKS,SAAU,CACjB,MAAM+J,EAAWxK,KAAK0C,MAAM+C,SAAShB,EAAO/B,OAE5C+B,EAAOa,SAAWkF,CACnB,MACC/F,EAAOa,SAAWtF,KAAK0C,QAAU+B,EAAO/B,KACzC,GAEJ,GAhkCe9C,EAAM6K,OAAGC,EAIzBC,EAAA,CADCC,EAAS,CAAEC,KAAMC,UACPlL,EAAAmL,UAAA,aAAA,GAIXJ,EAAA,CADCC,EAAS,CAAEC,KAAMC,UACNlL,EAAAmL,UAAA,YAAA,GAIZJ,EAAA,CADCC,EAAS,CAAEC,KAAMG,WACHpL,EAAAmL,UAAA,cAAA,GAIfJ,EAAA,CADCC,EAAS,CAAEC,KAAMC,UACLlL,EAAAmL,UAAA,eAAA,GAIbJ,EAAA,CADCC,EAAS,CAAEC,KAAMC,UACDlL,EAAAmL,UAAA,mBAAA,GAIjBJ,EAAA,CADCC,EAAS,CAAEC,KAAMG,WACLpL,EAAAmL,UAAA,YAAA,GAIbJ,EAAA,CADCC,EAAS,CAAEC,KAAMG,WACCpL,EAAAmL,UAAA,kBAAA,GAInBJ,EAAA,CADCC,EAAS,CAAEC,KAAMG,WACGpL,EAAAmL,UAAA,oBAAA,GAIrBJ,EAAA,CADCC,EAAS,CAAEC,KAAMG,WACDpL,EAAAmL,UAAA,gBAAA,GAIjBJ,EAAA,CADCC,EAAS,CAAEC,KAAMG,WACDpL,EAAAmL,UAAA,gBAAA,GAIjBJ,EAAA,CADCC,EAAS,CAAEC,KAAMG,WACApL,EAAAmL,UAAA,iBAAA,GAIlBJ,EAAA,CADCC,EAAS,CAAEC,KAAMG,WACDpL,EAAAmL,UAAA,gBAAA,GAIjBJ,EAAA,CADCC,EAAS,CAAEC,KAAMG,WACDpL,EAAAmL,UAAA,gBAAA,GAIjBJ,EAAA,CADCC,EAAS,CAAEC,KAAMG,WACApL,EAAAmL,UAAA,iBAAA,GAIlBJ,EAAA,CADCC,EAAS,CAAEC,KAAMC,UACWlL,EAAAmL,UAAA,qBAAA,GAI7BJ,EAAA,CADCC,EAAS,CAAEC,KAAMC,UACOlL,EAAAmL,UAAA,oBAAA,GAMzBJ,EAAA,CADCC,EAAS,CAAEC,KAAMG,WACOpL,EAAAmL,UAAA,wBAAA,GAMzBJ,EAAA,CADCC,EAAS,CAAEC,KAAMG,WACapL,EAAAmL,UAAA,8BAAA,GAI/BJ,EAAA,CADCC,EAAS,CAAEC,KAAMI,UACgBrL,EAAAmL,UAAA,mBAAA,GAMlCJ,EAAA,CADCO,KACkCtL,EAAAmL,UAAA,oBAAA,GAOnCJ,EAAA,CADCO,KACStL,EAAAmL,UAAA,YAAA,GAMVJ,EAAA,CADCC,EAAS,CAAEC,KAAMC,UACFlL,EAAAmL,UAAA,kBAAA,GAOhBJ,EAAA,CADCO,KACwCtL,EAAAmL,UAAA,qBAAA,GAOzCJ,EAAA,CADCQ,EAAsB,CAAEC,SAAU,yBACdxL,EAAAmL,UAAA,eAAA,GAOrBJ,EAAA,CADCQ,EAAsB,CAAEC,SAAU,mCACNxL,EAAAmL,UAAA,uBAAA,GAO7BJ,EAAA,CADCU,EAAM,YACqBzL,EAAAmL,UAAA,gBAAA,GAO5BJ,EAAA,CADCU,EAAM,YACgBzL,EAAAmL,UAAA,gBAAA,GAOvBJ,EAAA,CADCU,EAAM,aACiBzL,EAAAmL,UAAA,iBAAA,GAOxBJ,EAAA,CADCU,EAAM,oBACuBzL,EAAAmL,UAAA,uBAAA,GAO9BJ,EAAA,CADCO,KACoBtL,EAAAmL,UAAA,oBAAA,GAOrBJ,EAAA,CADCO,KACyBtL,EAAAmL,UAAA,aAAA,GAnKfnL,EAAQ+K,EAAA,CADpBW,EAAc,iBACF1L"}
1
+ {"version":3,"file":"dropdown.js","sources":["../../../../src/components/reusable/dropdown/dropdown.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, html } from 'lit';\nimport {\n customElement,\n property,\n state,\n query,\n queryAssignedElements,\n} from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport DropdownScss from './dropdown.scss';\nimport { FormMixin } from '../../../common/mixins/form-input';\nimport { deepmerge } from 'deepmerge-ts';\n\nimport './dropdownOption';\nimport '../tag';\nimport '../button';\n\nimport downIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-down.svg';\nimport errorIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/error-filled.svg';\nimport clearIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/20/close-simple.svg';\n\nconst _defaultTextStrings = {\n title: 'Dropdown',\n selectedOptions: 'List of selected options',\n requiredText: 'Required',\n errorText: 'Error',\n clearAll: 'Clear all',\n};\n\n/**\n * Dropdown, single select.\n * @fires on-change - Captures the input event and emits the selected value and original event details.\n * @fires on-search - Capture the search input event and emits the search text.\n * @fires on-clear-all - Captures the the multi-select clear all button click event and emits the value.\n * @slot unnamed - Slot for dropdown options.\n * @slot tooltip - Slot for tooltip.\n */\n@customElement('kyn-dropdown')\nexport class Dropdown extends FormMixin(LitElement) {\n static override styles = DropdownScss;\n\n /** Label text. */\n @property({ type: String })\n label = '';\n\n /** Dropdown size/height. \"sm\", \"md\", or \"lg\". */\n @property({ type: String })\n size = 'md';\n\n /** Dropdown inline style type. */\n @property({ type: Boolean })\n inline = false;\n\n /** Optional text beneath the input. */\n @property({ type: String })\n caption = '';\n\n /** Dropdown placeholder. */\n @property({ type: String })\n placeholder = '';\n\n /** Listbox/drawer open state. */\n @property({ type: Boolean })\n open = false;\n\n /** Makes the dropdown searchable. */\n @property({ type: Boolean })\n searchable = false;\n\n /** Searchable variant filters results. */\n @property({ type: Boolean })\n filterSearch = false;\n\n /** Enabled multi-select functionality. */\n @property({ type: Boolean })\n multiple = false;\n\n /** Makes the dropdown required. */\n @property({ type: Boolean })\n required = false;\n\n /** Visually hide the label. */\n @property({ type: Boolean })\n hideLabel = false;\n\n /** Dropdown disabled state. */\n @property({ type: Boolean })\n disabled = false;\n\n /** Hide the tags below multi-select. */\n @property({ type: Boolean })\n hideTags = false;\n\n /** Adds a \"Select all\" option to the top of a multi-select dropdown. */\n @property({ type: Boolean })\n selectAll = false;\n\n /** \"Select all\" text customization. */\n @property({ type: String })\n selectAllText = 'Select all';\n\n /** Menu CSS min-width value. */\n @property({ type: String })\n menuMinWidth = 'initial';\n\n /** Is \"Select All\" box checked.\n * @internal\n */\n @property({ type: Boolean })\n selectAllChecked = false;\n\n /** Is \"Select All\" indeterminate.\n * @internal\n */\n @property({ type: Boolean })\n selectAllIndeterminate = false;\n\n /** Text string customization. */\n @property({ type: Object })\n textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n _textStrings = _defaultTextStrings;\n\n /**\n * Selected option text, automatically derived.\n * @ignore\n */\n @state()\n text = '';\n\n /**\n * Search input value.\n */\n @property({ type: String })\n searchText = '';\n\n /**\n * Assistive text for screen readers.\n * @ignore\n */\n @state()\n assistiveText = 'Dropdown menu options.';\n\n /**\n * Queries any slotted options.\n * @ignore\n */\n @queryAssignedElements({ selector: 'kyn-dropdown-option' })\n options!: Array<any>;\n\n /**\n * Queries any slotted selected options.\n * @ignore\n */\n @queryAssignedElements({ selector: 'kyn-dropdown-option[selected]' })\n selectedOptions!: Array<any>;\n\n /**\n * Queries the .search DOM element.\n * @ignore\n */\n @query('.search')\n searchEl!: HTMLInputElement;\n\n /**\n * Queries the .select DOM element.\n * @ignore\n */\n @query('.select')\n buttonEl!: HTMLElement;\n\n /**\n * Queries the .options DOM element.\n * @ignore\n */\n @query('.options')\n listboxEl!: HTMLElement;\n\n /**\n * Queries the .clear-multiple DOM element.\n * @ignore\n */\n @query('.clear-multiple')\n clearMultipleEl!: HTMLElement;\n\n /**\n * Open drawer upwards.\n * @ignore\n */\n @state()\n _openUpwards = false;\n\n /**\n * Tags value/text reference.\n * @ignore\n */\n @state()\n _tags: Array<object> = [];\n\n /** Toggles on clicking enter key in the search input.\n * @internal\n */\n searchTextEntered: any = false;\n\n /** Toggles on clicking enter key in the search input.\n * @internal\n */\n prevSearchKeydownIndex = -1;\n\n override render() {\n return html`\n <div\n class=\"dropdown\"\n ?disabled=${this.disabled}\n ?open=${this.open}\n ?inline=${this.inline}\n ?searchable=${this.searchable}\n >\n <label\n id=\"label-${this.name}\"\n class=\"label-text ${this.hideLabel || this.inline ? 'sr-only' : ''}\"\n for=${this.name}\n aria-disabled=${this.disabled}\n @click=${() => this._handleLabelClick()}\n >\n ${this.required\n ? html`<abbr\n class=\"required\"\n title=${this._textStrings.requiredText}\n role=\"img\"\n aria-label=${this._textStrings?.requiredText || 'Required'}\n >*</abbr\n >`\n : null}\n ${this.label}\n <slot name=\"tooltip\"></slot>\n </label>\n\n <div\n class=${classMap({\n wrapper: true,\n open: this.open,\n })}\n >\n <div class=\"custom\">\n <div\n class=\"${classMap({\n select: true,\n 'input-custom': true,\n 'size--sm': this.size === 'sm',\n 'size--lg': this.size === 'lg',\n inline: this.inline,\n })}\"\n aria-labelledby=\"label-${this.name}\"\n aria-expanded=${this.open}\n aria-controls=\"options\"\n role=\"combobox\"\n id=${this.name}\n name=${this.name}\n title=${this._textStrings.title}\n ?required=${this.required}\n ?disabled=${this.disabled}\n ?invalid=${this._isInvalid}\n tabindex=${this.disabled ? '' : '0'}\n @click=${() => this.handleClick()}\n @keydown=${(e: any) => this.handleButtonKeydown(e)}\n @mousedown=${(e: any) => {\n if (!this.searchable) {\n e.preventDefault();\n }\n }}\n @blur=${(e: any) => this.handleButtonBlur(e)}\n >\n ${this.multiple && this.value.length\n ? html`\n <button\n class=\"clear-multiple\"\n aria-label=\"${this.value\n .length} items selected. Clear selections\"\n ?disabled=${this.disabled}\n @click=${(e: Event) => this.handleClearMultiple(e)}\n >\n ${this.value.length}\n <span style=\"display:flex;\" slot=\"icon\"\n >${unsafeSVG(clearIcon)}</span\n >\n </button>\n `\n : null}\n ${this.searchable\n ? html`\n <input\n class=\"search\"\n type=\"text\"\n placeholder=${this.placeholder}\n value=${this.searchText}\n ?disabled=${this.disabled}\n aria-disabled=${this.disabled}\n @keydown=${(e: any) => this.handleSearchKeydown(e)}\n @input=${(e: any) => this.handleSearchInput(e)}\n @blur=${(e: any) => this.handleSearchBlur(e)}\n @click=${(e: any) => this.handleSearchClick(e)}\n />\n `\n : html`\n <span aria-disabled=${this.disabled}>\n ${this.multiple\n ? this.placeholder\n : this.value === ''\n ? this.placeholder\n : this.text}\n </span>\n `}\n\n <span class=\"arrow-icon\">${unsafeSVG(downIcon)}</span>\n </div>\n\n <ul\n id=\"options\"\n class=${classMap({\n options: true,\n open: this.open,\n upwards: this._openUpwards,\n })}\n style=\"min-width: ${this.menuMinWidth};\"\n aria-labelledby=\"label-${this.name}\"\n name=${this.name}\n role=\"listbox\"\n tabindex=\"0\"\n aria-expanded=${this.open}\n aria-hidden=${!this.open}\n @keydown=${(e: any) => this.handleListKeydown(e)}\n @blur=${(e: any) => this.handleListBlur(e)}\n >\n ${this.multiple && this.selectAll\n ? html`\n <kyn-dropdown-option\n class=\"select-all\"\n value=\"selectAll\"\n multiple\n ?selected=${this.selectAllChecked}\n ?indeterminate=${this.selectAllIndeterminate}\n ?disabled=${this.disabled}\n >\n ${this.selectAllText}\n </kyn-dropdown-option>\n `\n : null}\n\n <slot\n id=\"children\"\n @slotchange=${() => this.handleSlotChange()}\n ></slot>\n </ul>\n </div>\n ${this.searchText !== ''\n ? html`\n <kyn-button\n ?disabled=${this.disabled}\n class=\"clear-button dropdown-clear\"\n kind=\"ghost\"\n size=\"small\"\n description=${this._textStrings.clearAll}\n @click=${(e: Event) => this.handleClear(e)}\n >\n <span style=\"display:flex;\" slot=\"icon\"\n >${unsafeSVG(clearIcon)}</span\n >\n </kyn-button>\n `\n : null}\n </div>\n ${this.renderHelperContent()}\n </div>\n `;\n }\n\n private renderHelperContent() {\n return html`\n ${\n this.multiple && !this.hideTags && this._tags.length\n ? html`\n <kyn-tag-group\n filter\n role=\"list\"\n aria-label=${this._textStrings.selectedOptions}\n >\n ${this._tags.map((tag: any) => {\n return html`\n <kyn-tag\n role=\"listitem\"\n label=${tag.text}\n ?disabled=${this.disabled}\n clearTagText=\"Clear Tag ${tag.text}\"\n @on-close=${() => this.handleTagClear(tag.value)}\n ></kyn-tag>\n `;\n })}\n </kyn-tag-group>\n `\n : null\n }\n ${\n this.caption !== ''\n ? html`\n <div class=\"caption\" aria-disabled=${this.disabled}>\n ${this.caption}\n </div>\n `\n : null\n }\n ${\n this._isInvalid\n ? html`\n <div class=\"error\">\n <span\n class=\"error-icon\"\n role=\"img\"\n title=${this._textStrings.errorText}\n aria-label=${this._textStrings.errorText}\n >${unsafeSVG(errorIcon)}</span\n >\n ${this.invalidText || this._internalValidationMsg}\n </div>\n `\n : null\n }\n\n <div\n class=\"assistive-text\"\n role=\"status\"\n aria-live=\"assertive\"\n aria-relevant=\"additions text\"\n >\n ${this.assistiveText}\n </div>\n </div>\n `;\n }\n\n override firstUpdated() {\n // set a default placeholder if none provided\n if (this.placeholder === '') {\n if (this.searchable) {\n this.placeholder = 'Search';\n } else {\n if (this.multiple) {\n this.placeholder = 'Select items';\n } else {\n this.placeholder = 'Select an option';\n }\n }\n }\n }\n\n private handleSlotChange() {\n this._updateOptions();\n }\n\n private handleClick() {\n if (!this.disabled) {\n this.open = !this.open;\n\n // focus search input if searchable\n if (this.searchable) {\n this.searchEl.focus();\n } else {\n this.buttonEl.focus();\n }\n }\n }\n\n private _handleLabelClick() {\n if (!this.disabled) {\n this.open = !this.open;\n\n if (this.searchable) {\n this.searchEl.focus();\n } else {\n this.buttonEl.focus();\n }\n }\n }\n\n private handleButtonKeydown(e: any) {\n this.handleKeyboard(e, e.keyCode, 'button');\n }\n\n private handleListKeydown(e: any) {\n const TAB_KEY_CODE = 9;\n\n if (e.keyCode !== TAB_KEY_CODE) {\n e.preventDefault();\n }\n\n this.handleKeyboard(e, e.keyCode, 'list');\n }\n\n private handleListBlur(e: any) {\n this.options.forEach((option) => (option.highlighted = false));\n\n // don't blur if clicking an option inside\n if (\n e.relatedTarget &&\n e.relatedTarget.localName !== 'kyn-dropdown-option'\n ) {\n this.open = false;\n }\n this.assistiveText = 'Dropdown menu options.';\n }\n\n private handleKeyboard(e: any, keyCode: number, target: string) {\n const SPACEBAR_KEY_CODE = [0, 32];\n const ENTER_KEY_CODE = 13;\n const DOWN_ARROW_KEY_CODE = 40;\n const UP_ARROW_KEY_CODE = 38;\n const ESCAPE_KEY_CODE = 27;\n\n // get highlighted element + index and selected element\n const visibleOptions = this.options.filter(\n (option: any) => option.style.display !== 'none'\n );\n const highlightedEl = visibleOptions.find(\n (option: any) => option.highlighted\n );\n const selectedEl = visibleOptions.find((option: any) => option.selected);\n let highlightedIndex = highlightedEl\n ? visibleOptions.indexOf(highlightedEl)\n : visibleOptions.find((option: any) => option.selected)\n ? visibleOptions.indexOf(selectedEl)\n : 0;\n\n // prevent page scroll on spacebar press\n if (SPACEBAR_KEY_CODE.includes(keyCode)) {\n e.preventDefault();\n }\n\n const isListboxElOpened = this.open;\n // open the listbox\n if (target === 'button') {\n let openDropdown =\n SPACEBAR_KEY_CODE.includes(keyCode) ||\n keyCode === ENTER_KEY_CODE ||\n keyCode == DOWN_ARROW_KEY_CODE ||\n keyCode == UP_ARROW_KEY_CODE;\n\n if (e.target === this.clearMultipleEl) {\n openDropdown = false;\n visibleOptions[highlightedIndex].highlighted = false;\n visibleOptions[highlightedIndex].selected =\n !visibleOptions[highlightedIndex].selected;\n highlightedIndex = 0;\n if (keyCode !== ENTER_KEY_CODE) return;\n }\n\n if (openDropdown) {\n this.open = true;\n\n // scroll to highlighted option\n if (!this.multiple && this.value !== '') {\n visibleOptions[highlightedIndex].scrollIntoView({ block: 'nearest' });\n }\n }\n }\n switch (keyCode) {\n case 0:\n case 32:\n case ENTER_KEY_CODE: {\n // select highlighted option\n visibleOptions[highlightedIndex].highlighted = true;\n if (isListboxElOpened) {\n if (this.multiple) {\n visibleOptions[highlightedIndex].selected =\n !visibleOptions[highlightedIndex].selected;\n if (visibleOptions[highlightedIndex].selected) {\n this.assistiveText = `Selected ${visibleOptions[highlightedIndex].innerHTML}`;\n } else {\n this.assistiveText = `Deselected ${visibleOptions[highlightedIndex].innerHTML}`;\n }\n } else {\n visibleOptions.forEach((e) => (e.selected = false));\n visibleOptions[highlightedIndex].selected = true;\n this.open = false;\n this.assistiveText = `Selected ${visibleOptions[highlightedIndex].innerHTML}`;\n }\n }\n if (highlightedEl && isListboxElOpened)\n this.updateValue(\n visibleOptions[highlightedIndex].value,\n visibleOptions[highlightedIndex].selected\n );\n\n this.emitValue();\n return;\n }\n case DOWN_ARROW_KEY_CODE: {\n // go to next option\n let nextIndex =\n !highlightedEl && !selectedEl\n ? 0\n : highlightedIndex === visibleOptions.length - 1\n ? 0\n : highlightedIndex + 1;\n\n // skip disabled options\n if (visibleOptions[nextIndex].disabled) {\n nextIndex =\n nextIndex === visibleOptions.length - 1 ? 0 : nextIndex + 1;\n }\n\n visibleOptions[highlightedIndex].highlighted = false;\n visibleOptions[nextIndex].highlighted = true;\n\n // scroll to option\n visibleOptions[nextIndex].scrollIntoView({ block: 'nearest' });\n\n this.assistiveText = visibleOptions[nextIndex].text;\n return;\n }\n case UP_ARROW_KEY_CODE: {\n // go to previous option\n let nextIndex =\n highlightedIndex === 0\n ? visibleOptions.length - 1\n : highlightedIndex - 1;\n\n // skip disabled options\n if (visibleOptions[nextIndex].disabled) {\n nextIndex =\n nextIndex === 0 ? visibleOptions.length - 1 : nextIndex - 1;\n }\n\n visibleOptions[highlightedIndex].highlighted = false;\n visibleOptions[nextIndex].highlighted = true;\n\n // scroll to option\n visibleOptions[nextIndex].scrollIntoView({ block: 'nearest' });\n\n this.assistiveText = visibleOptions[nextIndex].text;\n return;\n }\n case ESCAPE_KEY_CODE: {\n // close listbox\n this.open = false;\n\n // restore focus\n if (this.searchable) {\n this.searchEl.focus();\n } else {\n this.buttonEl.focus();\n }\n\n this.assistiveText = 'Dropdown menu options.';\n return;\n }\n default: {\n return;\n }\n }\n }\n\n private handleClearMultiple(e: any) {\n e.stopPropagation();\n\n // clear values\n if (this.multiple) {\n this.value = [];\n } else {\n this.value = '';\n }\n\n this._validate(true, false);\n this._updateSelectedOptions();\n this.emitValue();\n\n const event = new CustomEvent('on-clear-all', {\n detail: {\n value: this.value,\n },\n });\n this.dispatchEvent(event);\n }\n\n private handleTagClear(value: string) {\n // remove value\n this.updateValue(value, false);\n this._updateSelectedOptions();\n this.emitValue();\n }\n\n private handleClear(e: any) {\n e.stopPropagation();\n\n // reset search input text\n this.text = '';\n this.searchText = '';\n this.searchEl.value = '';\n\n this._emitSearch();\n\n if (this.filterSearch) {\n // reveal all options\n this.options.map((option: any) => {\n option.style.display = 'block';\n });\n }\n\n // clear selection for single select\n if (!this.multiple) {\n this.value = '';\n this._validate(true, false);\n this._updateSelectedOptions();\n this.emitValue();\n }\n }\n\n private handleSearchClick(e: any) {\n e.stopPropagation();\n this.open = true;\n }\n\n private handleButtonBlur(e: any) {\n // don't blur if entering listbox or search input\n if (\n !e.relatedTarget?.classList.contains('options') &&\n !e.relatedTarget?.classList.contains('search')\n ) {\n this.open = false;\n }\n this._validate(true, false);\n }\n\n private handleSearchBlur(e: any) {\n // don't blur if entering listbox of button\n if (\n !e.relatedTarget ||\n (e.relatedTarget.localName !== 'kyn-dropdown-option' &&\n !e.relatedTarget?.classList.contains('options') &&\n !e.relatedTarget?.classList.contains('select'))\n ) {\n this.open = false;\n }\n this._validate(true, false);\n }\n\n private handleSearchKeydown(e: any) {\n e.stopPropagation();\n\n const ENTER_KEY_CODE = 13;\n const ESCAPE_KEY_CODE = 27;\n const option = this.options.find((option) => option.highlighted);\n const highlightedIndex = this.options.findIndex(\n (option) => option.highlighted\n );\n this.searchTextEntered = false;\n // select option\n if (e.keyCode === ENTER_KEY_CODE) {\n this.searchTextEntered = true;\n if (option) {\n if (this.prevSearchKeydownIndex !== highlightedIndex) {\n if (this.multiple) {\n option.selected = !option.selected;\n } else {\n this.options.forEach((e) => (e.selected = false));\n option.selected = true;\n this.open = false;\n }\n this.updateValue(option.value, option.selected);\n }\n\n if (option.selected) {\n this.assistiveText = `Selected ${option.innerHTML}`;\n this.prevSearchKeydownIndex = highlightedIndex;\n } else {\n this.assistiveText = `Deselected ${option.innerHTML}`;\n }\n } else {\n this.assistiveText = 'No item matched.';\n }\n }\n\n // close listbox\n if (e.keyCode === ESCAPE_KEY_CODE) {\n this.open = false;\n this.buttonEl.focus();\n }\n }\n\n private handleSearchInput(e: any) {\n const value = e.target.value;\n this.searchText = value;\n this.open = true;\n\n this._emitSearch();\n\n if (this.filterSearch) {\n // hide items that don't match\n this.options.map((option: any) => {\n const text = option.text;\n if (text.toLowerCase().includes(value.toLowerCase())) {\n option.style.display = 'block';\n } else {\n option.style.display = 'none';\n }\n });\n } else {\n // find matches\n const options = this.options.filter((option: any) => {\n const text = option.text;\n return text.toLowerCase().startsWith(value.toLowerCase());\n });\n\n // reset options highlighted state\n this.options.forEach((option) => (option.highlighted = false));\n\n // option highlight and scroll\n if (value !== '' && options.length) {\n options[0].highlighted = true;\n options[0].scrollIntoView({ block: 'nearest' });\n if (this.searchTextEntered) this.assistiveText = 'Option Matched';\n }\n }\n }\n\n private _updateSelectedOptions() {\n // set selected state for each option\n this.options.forEach((option: any) => {\n if (this.multiple) {\n option.selected = this.value.includes(option.value);\n } else {\n option.selected = this.value === option.value;\n }\n });\n }\n\n private _handleClick(e: any) {\n if (e.detail.value === 'selectAll') {\n if (e.detail.selected) {\n this.value = this.options\n .filter((option) => !option.disabled)\n .map((option) => {\n return option.value;\n });\n this.assistiveText = 'Selected all items.';\n } else {\n this.value = [];\n this.assistiveText = 'Deselected all items.';\n }\n\n this._validate(true, false);\n } else {\n this.updateValue(e.detail.value, e.detail.selected);\n this.assistiveText = 'Selected an item.';\n }\n\n this._updateSelectedOptions();\n\n // close listbox\n if (!this.multiple) {\n this.open = false;\n }\n\n // emit selected value\n this.emitValue();\n }\n\n private _handleBlur(e: any) {\n const relatedTarget = e.detail.origEvent.relatedTarget;\n\n if (\n !relatedTarget ||\n (relatedTarget.localName !== 'kyn-dropdown-option' &&\n relatedTarget.localName !== 'kyn-dropdown')\n ) {\n this.open = false;\n }\n }\n\n private _handleClickOut(e: Event) {\n if (!e.composedPath().includes(this)) {\n this.open = false;\n }\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n // preserve FormMixin connectedCallback function\n this._onConnected();\n\n document.addEventListener('click', (e) => this._handleClickOut(e));\n\n // capture child options click event\n this.addEventListener('on-click', (e: any) => this._handleClick(e));\n\n // capture child options blur event\n this.addEventListener('on-blur', (e: any) => this._handleBlur(e));\n }\n\n override disconnectedCallback() {\n // preserve FormMixin disconnectedCallback function\n this._onDisconnected();\n\n document.removeEventListener('click', (e) => this._handleClickOut(e));\n this.removeEventListener('on-click', (e: any) => this._handleClick(e));\n this.removeEventListener('on-blur', (e: any) => this._handleBlur(e));\n\n super.disconnectedCallback();\n }\n\n private updateValue(value: string, selected = false) {\n // set value\n if (this.multiple) {\n const values =\n this.value === '' ? [] : JSON.parse(JSON.stringify(this.value));\n\n // update array\n if (selected) {\n values.push(value);\n } else {\n const index = values.indexOf(value);\n values.splice(index, 1);\n }\n\n this.value = values;\n } else {\n this.value = value;\n }\n\n this._validate(true, false);\n\n // reset focus\n if (!this.multiple) {\n if (this.searchable) {\n this.searchEl.focus();\n } else {\n this.buttonEl.focus();\n }\n }\n }\n\n private _validate(interacted: Boolean, report: Boolean) {\n // set validity flags\n const Validity = {\n customError: this.invalidText !== '',\n valueMissing:\n this.required &&\n (!this.value ||\n (this.multiple && !this.value.length) ||\n (!this.multiple && this.value === '')),\n };\n\n // set validationMessage\n const InternalMsg =\n this.required && !this.value.length ? 'Please fill out this field.' : '';\n const ValidationMessage =\n this.invalidText !== '' ? this.invalidText : InternalMsg;\n\n // set validity on custom element, anchor to buttonEl\n this._internals.setValidity(Validity, ValidationMessage, this.buttonEl);\n\n // set internal validation message if value was changed by user input\n if (interacted) {\n this._internalValidationMsg = InternalMsg;\n }\n\n // focus the buttonEl to show validity\n if (report) {\n this._internals.reportValidity();\n }\n }\n\n private emitValue() {\n const event = new CustomEvent('on-change', {\n detail: {\n value: this.value,\n },\n });\n this.dispatchEvent(event);\n }\n\n private _emitSearch() {\n const event = new CustomEvent('on-search', {\n detail: {\n searchText: this.searchText,\n },\n });\n this.dispatchEvent(event);\n }\n\n override willUpdate(changedProps: any) {\n if (changedProps.has('textStrings')) {\n this._textStrings = deepmerge(_defaultTextStrings, this.textStrings);\n }\n }\n\n override updated(changedProps: any) {\n // preserve FormMixin updated function\n this._onUpdated(changedProps);\n\n if (changedProps.has('value')) {\n const Slot: any = this.shadowRoot?.querySelector('slot#children');\n const Options: Array<any> = Slot.assignedElements().filter(\n (option: any) => !option.disabled\n );\n const SelectedOptions: Array<any> = Options.filter(\n (option: any) => option.selected\n );\n\n // sync \"Select All\" checkbox state\n this.selectAllChecked = SelectedOptions.length === Options.length;\n\n // sync \"Select All\" indeterminate state\n this.selectAllIndeterminate =\n SelectedOptions.length < Options.length && SelectedOptions.length > 0;\n\n this._updateOptions();\n this._updateTags();\n\n // update selected option text\n const AllOptions: any = Array.from(\n this.querySelectorAll('kyn-dropdown-option')\n );\n\n if (!this.multiple) {\n if (AllOptions.length && this.value !== '') {\n const option = AllOptions.find(\n (option: any) => option.value === this.value\n );\n\n this.text = option.textContent;\n }\n\n // set search input value\n if (this.searchable && this.text) {\n this.searchText = this.text === this.placeholder ? '' : this.text;\n this.searchEl.value = this.searchText;\n }\n }\n }\n\n if (changedProps.has('open')) {\n if (this.open && !this.searchable) {\n // focus listbox if not searchable\n this.listboxEl.focus({ preventScroll: true });\n this.assistiveText =\n 'Selecting items. Use up and down arrow keys to navigate.';\n }\n\n if (this.open) {\n if (!this.multiple) {\n // scroll to selected option\n this.options\n .find((option) => option.selected)\n ?.scrollIntoView({ block: 'nearest' });\n }\n\n // open dropdown upwards if closer to bottom of viewport\n const Threshold = 0.6;\n\n if (\n this.buttonEl.getBoundingClientRect().top >\n window.innerHeight * Threshold\n ) {\n this._openUpwards = true;\n } else {\n this._openUpwards = false;\n }\n }\n }\n\n if (changedProps.has('multiple')) {\n // set multiple for each option\n this.options.forEach((option: any) => {\n option.multiple = this.multiple;\n });\n }\n\n if (changedProps.has('searchText') && this.searchEl) {\n this.searchEl.value = this.searchText;\n }\n }\n\n // add selected options to Tags array\n private _updateTags() {\n if (this.multiple) {\n const Options: any = Array.from(\n this.querySelectorAll('kyn-dropdown-option')\n );\n const Tags: Array<object> = [];\n\n if (Options) {\n Options.forEach((option: any) => {\n if (option.selected) {\n Tags.push({\n value: option.value,\n text: option.textContent,\n });\n }\n });\n\n this._tags = Tags;\n }\n }\n }\n\n private _updateOptions() {\n const Options: any = Array.from(\n this.querySelectorAll('kyn-dropdown-option')\n );\n\n Options.forEach((option: any) => {\n // set option multiple state\n option.multiple = this.multiple;\n\n if (this.multiple) {\n const Selected = this.value.includes(option.value);\n // set option selected state\n option.selected = Selected;\n } else {\n option.selected = this.value === option.value;\n }\n });\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-dropdown': Dropdown;\n }\n}\n"],"names":["_defaultTextStrings","title","selectedOptions","requiredText","errorText","clearAll","Dropdown","FormMixin","LitElement","constructor","this","label","size","inline","caption","placeholder","open","searchable","filterSearch","multiple","required","hideLabel","disabled","hideTags","selectAll","selectAllText","menuMinWidth","selectAllChecked","selectAllIndeterminate","textStrings","_textStrings","text","searchText","assistiveText","_openUpwards","_tags","searchTextEntered","prevSearchKeydownIndex","render","html","name","_handleLabelClick","_a","classMap","wrapper","select","_isInvalid","handleClick","e","handleButtonKeydown","preventDefault","handleButtonBlur","value","length","handleClearMultiple","unsafeSVG","clearIcon","handleSearchKeydown","handleSearchInput","handleSearchBlur","handleSearchClick","downIcon","options","upwards","handleListKeydown","handleListBlur","handleSlotChange","handleClear","renderHelperContent","map","tag","handleTagClear","errorIcon","invalidText","_internalValidationMsg","firstUpdated","_updateOptions","searchEl","focus","buttonEl","handleKeyboard","keyCode","forEach","option","highlighted","relatedTarget","localName","target","SPACEBAR_KEY_CODE","visibleOptions","filter","style","display","highlightedEl","find","selectedEl","selected","highlightedIndex","indexOf","includes","isListboxElOpened","openDropdown","clearMultipleEl","scrollIntoView","block","innerHTML","updateValue","emitValue","nextIndex","stopPropagation","_validate","_updateSelectedOptions","event","CustomEvent","detail","dispatchEvent","_emitSearch","classList","contains","_b","findIndex","toLowerCase","startsWith","_handleClick","_handleBlur","origEvent","_handleClickOut","composedPath","connectedCallback","super","_onConnected","document","addEventListener","disconnectedCallback","_onDisconnected","removeEventListener","values","JSON","parse","stringify","push","index","splice","interacted","report","Validity","customError","valueMissing","InternalMsg","ValidationMessage","_internals","setValidity","reportValidity","willUpdate","changedProps","has","deepmerge","updated","_onUpdated","Options","shadowRoot","querySelector","assignedElements","SelectedOptions","_updateTags","AllOptions","Array","from","querySelectorAll","textContent","listboxEl","preventScroll","Threshold","getBoundingClientRect","top","window","innerHeight","Tags","Selected","styles","DropdownScss","__decorate","property","type","String","prototype","Boolean","Object","state","queryAssignedElements","selector","query","customElement"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export{T as Table}from"../../../table-f6b54ef0.js";export{TableCell}from"./table-cell.js";export{TableRow}from"./table-row.js";export{TableBody}from"./table-body.js";export{TableHead}from"./table-head.js";export{TableHeader}from"./table-header.js";export{TableFoot}from"./table-foot.js";export{TableFooter}from"./table-footer.js";export{TableLegend}from"./table-legend.js";export{TableLegendItem}from"./table-legend-item.js";export{TableToolbar}from"./table-toolbar.js";export{TableContainer}from"./table-container.js";export{TableHeaderRow}from"./table-header-row.js";export{TableExpandedRow}from"./table-expanded-row.js";export{TableSkeleton}from"./table.skeleton.js";import"../../../vendor/tslib-53a81efe.js";import"../../../vendor/lit-6e2a7867.js";import"../../../vendor/lit-element-3185f710.js";import"../../../vendor/@lit/context-81eb2692.js";import"./table-context.js";import"./defs.js";import"../../../vendor/lit-html-29220869.js";import"../../../vendor/@kyndryl-design-system/shidoka-icons-a1631225.js";import"../checkbox/checkbox.js";import"../../../vendor/deepmerge-ts-e62363e6.js";import"../loaders/skeleton.js";import"../pagination/pagination.skeleton.js";import"../../../pagination-0ed1cd84.js";import"../globalFilter/globalFilter.js";
1
+ export{T as Table}from"../../../table-7b5747f8.js";export{TableCell}from"./table-cell.js";export{TableRow}from"./table-row.js";export{TableBody}from"./table-body.js";export{TableHead}from"./table-head.js";export{TableHeader}from"./table-header.js";export{TableFoot}from"./table-foot.js";export{TableFooter}from"./table-footer.js";export{TableLegend}from"./table-legend.js";export{TableLegendItem}from"./table-legend-item.js";export{TableToolbar}from"./table-toolbar.js";export{TableContainer}from"./table-container.js";export{TableHeaderRow}from"./table-header-row.js";export{TableExpandedRow}from"./table-expanded-row.js";export{TableSkeleton}from"./table.skeleton.js";import"../../../vendor/tslib-53a81efe.js";import"../../../vendor/lit-6e2a7867.js";import"../../../vendor/lit-element-3185f710.js";import"../../../vendor/@lit/context-6f74d22e.js";import"./table-context.js";import"./defs.js";import"../../../vendor/lit-html-29220869.js";import"../../../vendor/@kyndryl-design-system/shidoka-icons-a1631225.js";import"../checkbox/checkbox.js";import"../../../vendor/deepmerge-ts-e62363e6.js";import"../loaders/skeleton.js";import"../pagination/pagination.skeleton.js";import"../../../pagination-0ed1cd84.js";import"../globalFilter/globalFilter.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import{_ as t}from"../../../vendor/tslib-53a81efe.js";import{n as e,t as o,e as r}from"../../../vendor/lit-6e2a7867.js";import{i as s,s as n,x as i}from"../../../vendor/lit-element-3185f710.js";import{s as d}from"../../../vendor/@lit/context-81eb2692.js";import{tableContext as l}from"./table-context.js";import{TableRow as p}from"./table-row.js";import"../../../vendor/lit-html-29220869.js";import"../../../vendor/@kyndryl-design-system/shidoka-icons-a1631225.js";import"../checkbox/checkbox.js";import"../../../vendor/deepmerge-ts-e62363e6.js";var a=s`*,
1
+ import{_ as t}from"../../../vendor/tslib-53a81efe.js";import{n as e,t as o,e as r}from"../../../vendor/lit-6e2a7867.js";import{i as s,s as n,x as i}from"../../../vendor/lit-element-3185f710.js";import{s as d}from"../../../vendor/@lit/context-6f74d22e.js";import{tableContext as l}from"./table-context.js";import{TableRow as p}from"./table-row.js";import"../../../vendor/lit-html-29220869.js";import"../../../vendor/@kyndryl-design-system/shidoka-icons-a1631225.js";import"../checkbox/checkbox.js";import"../../../vendor/deepmerge-ts-e62363e6.js";var a=s`*,
2
2
  *::before,
3
3
  *::after {
4
4
  box-sizing: border-box;
@@ -1,4 +1,4 @@
1
- import{_ as t}from"../../../vendor/tslib-53a81efe.js";import{n as e,t as i,e as o}from"../../../vendor/lit-6e2a7867.js";import{i as r,s as d,x as n}from"../../../vendor/lit-element-3185f710.js";import{s}from"../../../vendor/@lit/context-81eb2692.js";import{tableContext as l}from"./table-context.js";import{TABLE_CELL_ALIGN as a}from"./defs.js";var h=r`*,
1
+ import{_ as t}from"../../../vendor/tslib-53a81efe.js";import{n as e,t as i,e as o}from"../../../vendor/lit-6e2a7867.js";import{i as r,s as d,x as n}from"../../../vendor/lit-element-3185f710.js";import{s}from"../../../vendor/@lit/context-6f74d22e.js";import{tableContext as l}from"./table-context.js";import{TABLE_CELL_ALIGN as a}from"./defs.js";var h=r`*,
2
2
  *::before,
3
3
  *::after {
4
4
  box-sizing: border-box;
@@ -1,2 +1,2 @@
1
- import{n as e}from"../../../vendor/@lit/context-81eb2692.js";const t=e({dense:!1,striped:!1,checkboxSelection:!1,stickyHeader:!1});export{t as tableContext};
1
+ import{n as e}from"../../../vendor/@lit/context-6f74d22e.js";const t=e({dense:!1,striped:!1,checkboxSelection:!1,stickyHeader:!1});export{t as tableContext};
2
2
  //# sourceMappingURL=table-context.js.map
@@ -1,4 +1,4 @@
1
- import{_ as e}from"../../../vendor/tslib-53a81efe.js";import{n as t,t as o,l as r,e as s}from"../../../vendor/lit-6e2a7867.js";import{i as n,s as i,x as l}from"../../../vendor/lit-element-3185f710.js";import{s as d}from"../../../vendor/@lit/context-81eb2692.js";import{tableContext as a}from"./table-context.js";var c=n`*,
1
+ import{_ as e}from"../../../vendor/tslib-53a81efe.js";import{n as t,t as o,l as r,e as s}from"../../../vendor/lit-6e2a7867.js";import{i as n,s as i,x as l}from"../../../vendor/lit-element-3185f710.js";import{s as d}from"../../../vendor/@lit/context-6f74d22e.js";import{tableContext as a}from"./table-context.js";var c=n`*,
2
2
  *::before,
3
3
  *::after {
4
4
  box-sizing: border-box;
@@ -1,4 +1,4 @@
1
- import{_ as e}from"../../../vendor/tslib-53a81efe.js";import{n as t,t as o,e as i}from"../../../vendor/lit-6e2a7867.js";import{TableRow as d}from"./table-row.js";import{i as r,x as n}from"../../../vendor/lit-element-3185f710.js";import"../../../vendor/lit-html-29220869.js";import"../../../vendor/@lit/context-81eb2692.js";import"./table-context.js";import"../../../vendor/@kyndryl-design-system/shidoka-icons-a1631225.js";import"../checkbox/checkbox.js";import"../../../vendor/deepmerge-ts-e62363e6.js";var l=r`*,
1
+ import{_ as e}from"../../../vendor/tslib-53a81efe.js";import{n as t,t as o,e as i}from"../../../vendor/lit-6e2a7867.js";import{TableRow as d}from"./table-row.js";import{i as r,x as n}from"../../../vendor/lit-element-3185f710.js";import"../../../vendor/lit-html-29220869.js";import"../../../vendor/@lit/context-6f74d22e.js";import"./table-context.js";import"../../../vendor/@kyndryl-design-system/shidoka-icons-a1631225.js";import"../checkbox/checkbox.js";import"../../../vendor/deepmerge-ts-e62363e6.js";var l=r`*,
2
2
  *::before,
3
3
  *::after {
4
4
  box-sizing: border-box;
@@ -1,4 +1,4 @@
1
- import{_ as t}from"../../../vendor/tslib-53a81efe.js";import{e as i,o as e}from"../../../vendor/lit-html-29220869.js";import{n as o,t as r,b as s,c as n,e as a}from"../../../vendor/lit-6e2a7867.js";import{i as d,s as l,x as h}from"../../../vendor/lit-element-3185f710.js";import{s as c}from"../../../vendor/@lit/context-81eb2692.js";import{tableContext as p}from"./table-context.js";import{l as v}from"../../../vendor/@kyndryl-design-system/shidoka-icons-a1631225.js";import{TABLE_CELL_ALIGN as m,SORT_DIRECTION as g}from"./defs.js";var y=d`*,
1
+ import{_ as t}from"../../../vendor/tslib-53a81efe.js";import{e as i,o as e}from"../../../vendor/lit-html-29220869.js";import{n as o,t as r,b as s,c as n,e as a}from"../../../vendor/lit-6e2a7867.js";import{i as d,s as l,x as h}from"../../../vendor/lit-element-3185f710.js";import{s as c}from"../../../vendor/@lit/context-6f74d22e.js";import{tableContext as p}from"./table-context.js";import{l as v}from"../../../vendor/@kyndryl-design-system/shidoka-icons-a1631225.js";import{TABLE_CELL_ALIGN as m,SORT_DIRECTION as g}from"./defs.js";var y=d`*,
2
2
  *::before,
3
3
  *::after {
4
4
  box-sizing: border-box;
@@ -1,4 +1,4 @@
1
- import{_ as e}from"../../../vendor/tslib-53a81efe.js";import{o as t}from"../../../vendor/lit-html-29220869.js";import{n as o,t as i,l as s,e as n}from"../../../vendor/lit-6e2a7867.js";import{i as d,s as a,x as r}from"../../../vendor/lit-element-3185f710.js";import{s as l}from"../../../vendor/@lit/context-81eb2692.js";import{tableContext as p}from"./table-context.js";import{f as h}from"../../../vendor/@kyndryl-design-system/shidoka-icons-a1631225.js";import"../checkbox/checkbox.js";import{d as c}from"../../../vendor/deepmerge-ts-e62363e6.js";var b=d`*,
1
+ import{_ as e}from"../../../vendor/tslib-53a81efe.js";import{o as t}from"../../../vendor/lit-html-29220869.js";import{n as o,t as i,l as s,e as n}from"../../../vendor/lit-6e2a7867.js";import{i as d,s as a,x as r}from"../../../vendor/lit-element-3185f710.js";import{s as l}from"../../../vendor/@lit/context-6f74d22e.js";import{tableContext as p}from"./table-context.js";import{f as h}from"../../../vendor/@kyndryl-design-system/shidoka-icons-a1631225.js";import"../checkbox/checkbox.js";import{d as c}from"../../../vendor/deepmerge-ts-e62363e6.js";var b=d`*,
2
2
  *::before,
3
3
  *::after {
4
4
  box-sizing: border-box;
@@ -1,2 +1,2 @@
1
- import"../../../vendor/tslib-53a81efe.js";import"../../../vendor/lit-6e2a7867.js";import"../../../vendor/lit-element-3185f710.js";import"../../../vendor/@lit/context-81eb2692.js";import"./table-context.js";export{T as Table}from"../../../table-f6b54ef0.js";
1
+ import"../../../vendor/tslib-53a81efe.js";import"../../../vendor/lit-6e2a7867.js";import"../../../vendor/lit-element-3185f710.js";import"../../../vendor/@lit/context-6f74d22e.js";import"./table-context.js";export{T as Table}from"../../../table-7b5747f8.js";
2
2
  //# sourceMappingURL=table.js.map
@@ -1,4 +1,4 @@
1
- import{c as t}from"../../../table-f6b54ef0.js";import"./table-cell.js";import"./table-row.js";import"./table-body.js";import"./table-head.js";import"./table-header.js";import"./table-foot.js";import"./table-footer.js";import"./table-legend.js";import"./table-legend-item.js";import"./table-toolbar.js";import"./table-container.js";import"./table-header-row.js";import"./table-expanded-row.js";import{_ as e}from"../../../vendor/tslib-53a81efe.js";import{e as o,n as l}from"../../../vendor/lit-6e2a7867.js";import{i,s as n,x as r}from"../../../vendor/lit-element-3185f710.js";import"../loaders/skeleton.js";import"../pagination/pagination.skeleton.js";import"../globalFilter/globalFilter.js";import"../../../vendor/@lit/context-81eb2692.js";import"./table-context.js";import"./defs.js";import"../../../vendor/lit-html-29220869.js";import"../../../vendor/@kyndryl-design-system/shidoka-icons-a1631225.js";import"../checkbox/checkbox.js";import"../../../vendor/deepmerge-ts-e62363e6.js";import"../../../pagination-0ed1cd84.js";let s=class extends n{render(){return r`
1
+ import{c as t}from"../../../table-7b5747f8.js";import"./table-cell.js";import"./table-row.js";import"./table-body.js";import"./table-head.js";import"./table-header.js";import"./table-foot.js";import"./table-footer.js";import"./table-legend.js";import"./table-legend-item.js";import"./table-toolbar.js";import"./table-container.js";import"./table-header-row.js";import"./table-expanded-row.js";import{_ as e}from"../../../vendor/tslib-53a81efe.js";import{e as o,n as l}from"../../../vendor/lit-6e2a7867.js";import{i,s as n,x as r}from"../../../vendor/lit-element-3185f710.js";import"../loaders/skeleton.js";import"../pagination/pagination.skeleton.js";import"../globalFilter/globalFilter.js";import"../../../vendor/@lit/context-6f74d22e.js";import"./table-context.js";import"./defs.js";import"../../../vendor/lit-html-29220869.js";import"../../../vendor/@kyndryl-design-system/shidoka-icons-a1631225.js";import"../checkbox/checkbox.js";import"../../../vendor/deepmerge-ts-e62363e6.js";import"../../../pagination-0ed1cd84.js";let s=class extends n{render(){return r`
2
2
  <kyn-global-filter>
3
3
  <div class="left-wrapper">
4
4
  <kyn-skeleton
@@ -23,8 +23,19 @@ export declare class TextArea extends TextArea_base {
23
23
  maxLength: number;
24
24
  /** Minimum number of characters. */
25
25
  minLength: number;
26
- /** textarea rows attribute. The number of visible text lines. */
26
+ /** Set it to `true`, if text area is not resizeable. */
27
+ notResizeable: boolean;
28
+ /** textarea rows attribute. The number of visible text lines.
29
+ * **Required** when `aiConnected` is set to `true`.
30
+ */
27
31
  rows: number;
32
+ /** Set this to `true` for AI theme. */
33
+ aiConnected: boolean;
34
+ /** Maximum number of visible text lines allowed. Default `5` rows. <br />
35
+ * **NOTE**: Applies only when `aiConnected` is set to `true`. <br />
36
+ * `rows` is always less than or equal to `maxRowsVisible` and `rows` is used as minimum number of visible text lines.
37
+ */
38
+ maxRowsVisible: number;
28
39
  /** Customizable text strings. */
29
40
  textStrings: {
30
41
  requiredText: string;
@@ -45,6 +56,7 @@ export declare class TextArea extends TextArea_base {
45
56
  render(): import("lit").TemplateResult<1>;
46
57
  willUpdate(changedProps: any): void;
47
58
  private handleInput;
59
+ private _updateVisibleRows;
48
60
  updated(changedProps: any): void;
49
61
  private _validate;
50
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"textArea.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/textArea/textArea.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;;AAevC;;;;;;GAMG;AACH,qBACa,QAAS,SAAQ,aAAqB;IACjD,OAAgB,MAAM,MAAgB;IAEtC,kBAAkB;IAElB,KAAK,SAAM;IAEX,uCAAuC;IAEvC,OAAO,SAAM;IAEb,yBAAyB;IAEzB,WAAW,SAAM;IAEjB,gCAAgC;IAEhC,QAAQ,UAAS;IAEjB,4BAA4B;IAE5B,QAAQ,UAAS;IAEjB,oCAAoC;IAEpC,SAAS,EAAG,MAAM,CAAC;IAEnB,oCAAoC;IAEpC,SAAS,EAAG,MAAM,CAAC;IAEnB,iEAAiE;IAEjE,IAAI,EAAG,MAAM,CAAC;IAEd,iCAAiC;IAEjC,WAAW;;;MAAuB;IAElC;;OAEG;IAEH,YAAY;;;MAAuB;IAEnC;;;OAGG;IAEH,UAAU,EAAG,mBAAmB,CAAC;IAExB,MAAM;IAsEN,UAAU,CAAC,YAAY,EAAE,GAAG;IAMrC,OAAO,CAAC,WAAW;IAeV,OAAO,CAAC,YAAY,EAAE,GAAG;IASlC,OAAO,CAAC,SAAS;CAyBlB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,eAAe,EAAE,QAAQ,CAAC;KAC3B;CACF"}
1
+ {"version":3,"file":"textArea.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/textArea/textArea.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;;AAiBvC;;;;;;GAMG;AACH,qBACa,QAAS,SAAQ,aAAqB;IACjD,OAAgB,MAAM,MAAgB;IAEtC,kBAAkB;IAElB,KAAK,SAAM;IAEX,uCAAuC;IAEvC,OAAO,SAAM;IAEb,yBAAyB;IAEzB,WAAW,SAAM;IAEjB,gCAAgC;IAEhC,QAAQ,UAAS;IAEjB,4BAA4B;IAE5B,QAAQ,UAAS;IAEjB,oCAAoC;IAEpC,SAAS,EAAG,MAAM,CAAC;IAEnB,oCAAoC;IAEpC,SAAS,EAAG,MAAM,CAAC;IAEnB,wDAAwD;IAExD,aAAa,UAAS;IAEtB;;OAEG;IAEH,IAAI,EAAG,MAAM,CAAC;IAEd,uCAAuC;IAEvC,WAAW,UAAS;IAEpB;;;OAGG;IAEH,cAAc,SAAK;IAEnB,iCAAiC;IAEjC,WAAW;;;MAAuB;IAElC;;OAEG;IAEH,YAAY;;;MAAuB;IAEnC;;;OAGG;IAEH,UAAU,EAAG,mBAAmB,CAAC;IAExB,MAAM;IA4EN,UAAU,CAAC,YAAY,EAAE,GAAG;IAMrC,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,kBAAkB;IAUjB,OAAO,CAAC,YAAY,EAAE,GAAG;IASlC,OAAO,CAAC,SAAS;CAyBlB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,eAAe,EAAE,QAAQ,CAAC;KAC3B;CACF"}
@@ -1,4 +1,4 @@
1
- import{_ as t}from"../../../vendor/tslib-53a81efe.js";import{o as e}from"../../../vendor/lit-html-29220869.js";import{c as i,n as r,t as o,i as a,e as l}from"../../../vendor/lit-6e2a7867.js";import{i as n,x as d,s}from"../../../vendor/lit-element-3185f710.js";import{FormMixin as p}from"../../../common/mixins/form-input.js";import{d as c}from"../../../vendor/deepmerge-ts-e62363e6.js";import{i as h}from"../../../vendor/@kyndryl-design-system/shidoka-icons-a1631225.js";var u=n`*,
1
+ import{_ as t}from"../../../vendor/tslib-53a81efe.js";import{o as e}from"../../../vendor/lit-html-29220869.js";import{o as i,c as r,n as o,t as a,i as l,e as n}from"../../../vendor/lit-6e2a7867.js";import{i as d,x as s,s as p}from"../../../vendor/lit-element-3185f710.js";import{FormMixin as c}from"../../../common/mixins/form-input.js";import{d as h}from"../../../vendor/deepmerge-ts-e62363e6.js";import{i as u}from"../../../vendor/@kyndryl-design-system/shidoka-icons-a1631225.js";var m=d`*,
2
2
  *::before,
3
3
  *::after {
4
4
  box-sizing: border-box;
@@ -429,10 +429,21 @@ textarea {
429
429
  border-radius: 4px;
430
430
  margin: 0;
431
431
  padding: 16px;
432
- }`;const m={requiredText:"Required",errorText:"Error"};let v=class extends(p(s)){constructor(){super(...arguments),this.label="",this.caption="",this.placeholder="",this.required=!1,this.disabled=!1,this.textStrings=m,this._textStrings=m}render(){var t;return d`
432
+ }
433
+
434
+ .ai-connected textarea {
435
+ border-color: var(--kd-color-border-variants-ai);
436
+ }
437
+ .ai-connected textarea:disabled {
438
+ border-color: var(--kd-color-border-ui-disabled);
439
+ }
440
+
441
+ .no-resize textarea {
442
+ resize: none;
443
+ }`;const v={requiredText:"Required",errorText:"Error"};let g=class extends(c(p)){constructor(){super(...arguments),this.label="",this.caption="",this.placeholder="",this.required=!1,this.disabled=!1,this.notResizeable=!1,this.aiConnected=!1,this.maxRowsVisible=5,this.textStrings=v,this._textStrings=v}render(){var t;return s`
433
444
  <div class="text-area" ?disabled=${this.disabled}>
434
445
  <label class="label-text" for=${this.name}>
435
- ${this.required?d`<abbr
446
+ ${this.required?s`<abbr
436
447
  class="required"
437
448
  title=${this._textStrings.requiredText}
438
449
  role="img"
@@ -443,7 +454,9 @@ textarea {
443
454
  <slot name="tooltip"></slot>
444
455
  </label>
445
456
 
446
- <div class="input-wrapper">
457
+ <div
458
+ class=${i({"input-wrapper":!0,"ai-connected":this.aiConnected,"no-resize":this.notResizeable})}
459
+ >
447
460
  <textarea
448
461
  id=${this.name}
449
462
  name=${this.name}
@@ -453,8 +466,8 @@ textarea {
453
466
  ?invalid=${this._isInvalid}
454
467
  aria-invalid=${this._isInvalid}
455
468
  aria-describedby=${this._isInvalid?"error":""}
456
- minlength=${i(this.minLength)}
457
- maxlength=${i(this.maxLength)}
469
+ minlength=${r(this.minLength)}
470
+ maxlength=${r(this.maxLength)}
458
471
  rows=${this.rows}
459
472
  @input=${t=>this.handleInput(t)}
460
473
  >
@@ -464,28 +477,28 @@ ${this.value}</textarea
464
477
 
465
478
  <div class="caption-error-count">
466
479
  <div>
467
- ${""!==this.caption?d`
480
+ ${""!==this.caption?s`
468
481
  <div class="caption" aria-disabled=${this.disabled}>
469
482
  ${this.caption}
470
483
  </div>
471
484
  `:null}
472
- ${this._isInvalid?d`
485
+ ${this._isInvalid?s`
473
486
  <div id="error" class="error">
474
487
  <span
475
488
  role="img"
476
489
  class="error-icon"
477
490
  aria-label=${this._textStrings.errorText}
478
- >${e(h)}</span
491
+ >${e(u)}</span
479
492
  >
480
493
 
481
494
  ${this.invalidText||this._internalValidationMsg}
482
495
  </div>
483
496
  `:null}
484
497
  </div>
485
- ${this.maxLength?d`
498
+ ${this.maxLength?s`
486
499
  <div class="count">${this.value.length}/${this.maxLength}</div>
487
500
  `:null}
488
501
  </div>
489
502
  </div>
490
- `}willUpdate(t){t.has("textStrings")&&(this._textStrings=c(m,this.textStrings))}handleInput(t){this.value=t.target.value,this._validate(!0,!1);const e=new CustomEvent("on-input",{detail:{value:t.target.value,origEvent:t}});this.dispatchEvent(e)}updated(t){this._onUpdated(t),t.has("value")&&(this.textareaEl.value=this.value)}_validate(t,e){const i=""!==this.invalidText?{...this.textareaEl.validity,customError:!0}:this.textareaEl.validity,r=""!==this.invalidText?this.invalidText:this.textareaEl.validationMessage;this._internals.setValidity(i,r,this.textareaEl),t&&(this._internalValidationMsg=this.textareaEl.validationMessage),e&&this._internals.reportValidity()}};v.styles=u,t([r({type:String})],v.prototype,"label",void 0),t([r({type:String})],v.prototype,"caption",void 0),t([r({type:String})],v.prototype,"placeholder",void 0),t([r({type:Boolean})],v.prototype,"required",void 0),t([r({type:Boolean})],v.prototype,"disabled",void 0),t([r({type:Number})],v.prototype,"maxLength",void 0),t([r({type:Number})],v.prototype,"minLength",void 0),t([r({type:Number})],v.prototype,"rows",void 0),t([r({type:Object})],v.prototype,"textStrings",void 0),t([o()],v.prototype,"_textStrings",void 0),t([a("textarea")],v.prototype,"textareaEl",void 0),v=t([l("kyn-text-area")],v);export{v as TextArea};
503
+ `}willUpdate(t){t.has("textStrings")&&(this._textStrings=h(v,this.textStrings))}handleInput(t){this.value=t.target.value,this.aiConnected&&this._updateVisibleRows(),this._validate(!0,!1);const e=new CustomEvent("on-input",{detail:{value:t.target.value,origEvent:t}});this.dispatchEvent(e)}_updateVisibleRows(){var t;const e=null===(t=this.shadowRoot)||void 0===t?void 0:t.querySelector("textarea");e&&(e.style.height="auto",e.style.minHeight=24*this.rows+32+"px",e.style.height=`${e.scrollHeight+2}px`,e.style.maxHeight=24*this.maxRowsVisible+32+"px")}updated(t){this._onUpdated(t),t.has("value")&&(this.textareaEl.value=this.value)}_validate(t,e){const i=""!==this.invalidText?{...this.textareaEl.validity,customError:!0}:this.textareaEl.validity,r=""!==this.invalidText?this.invalidText:this.textareaEl.validationMessage;this._internals.setValidity(i,r,this.textareaEl),t&&(this._internalValidationMsg=this.textareaEl.validationMessage),e&&this._internals.reportValidity()}};g.styles=m,t([o({type:String})],g.prototype,"label",void 0),t([o({type:String})],g.prototype,"caption",void 0),t([o({type:String})],g.prototype,"placeholder",void 0),t([o({type:Boolean})],g.prototype,"required",void 0),t([o({type:Boolean})],g.prototype,"disabled",void 0),t([o({type:Number})],g.prototype,"maxLength",void 0),t([o({type:Number})],g.prototype,"minLength",void 0),t([o({type:Boolean})],g.prototype,"notResizeable",void 0),t([o({type:Number})],g.prototype,"rows",void 0),t([o({type:Boolean})],g.prototype,"aiConnected",void 0),t([o({type:Number})],g.prototype,"maxRowsVisible",void 0),t([o({type:Object})],g.prototype,"textStrings",void 0),t([a()],g.prototype,"_textStrings",void 0),t([l("textarea")],g.prototype,"textareaEl",void 0),g=t([n("kyn-text-area")],g);export{g as TextArea};
491
504
  //# sourceMappingURL=textArea.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"textArea.js","sources":["../../../../src/components/reusable/textArea/textArea.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, html } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { FormMixin } from '../../../common/mixins/form-input';\nimport { deepmerge } from 'deepmerge-ts';\n\nimport errorIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/error-filled.svg';\n\nimport TextAreaScss from './textArea.scss';\n\nconst _defaultTextStrings = {\n requiredText: 'Required',\n errorText: 'Error',\n};\n\n/**\n * Text area.\n * @fires on-input - Captures the input event and emits the selected value and original event details.\n * @prop {number} minLength - Minimum number of characters.\n * @prop {number} maxLength - Maximum number of characters.\n * @slot tooltip - Slot for tooltip.\n */\n@customElement('kyn-text-area')\nexport class TextArea extends FormMixin(LitElement) {\n static override styles = TextAreaScss;\n\n /** Label text. */\n @property({ type: String })\n label = '';\n\n /** Optional text beneath the input. */\n @property({ type: String })\n caption = '';\n\n /** Input placeholder. */\n @property({ type: String })\n placeholder = '';\n\n /** Makes the input required. */\n @property({ type: Boolean })\n required = false;\n\n /** Input disabled state. */\n @property({ type: Boolean })\n disabled = false;\n\n /** Maximum number of characters. */\n @property({ type: Number })\n maxLength!: number;\n\n /** Minimum number of characters. */\n @property({ type: Number })\n minLength!: number;\n\n /** textarea rows attribute. The number of visible text lines. */\n @property({ type: Number })\n rows!: number;\n\n /** Customizable text strings. */\n @property({ type: Object })\n textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n _textStrings = _defaultTextStrings;\n\n /**\n * Queries the <textarea> DOM element.\n * @ignore\n */\n @query('textarea')\n textareaEl!: HTMLTextAreaElement;\n\n override render() {\n return html`\n <div class=\"text-area\" ?disabled=${this.disabled}>\n <label class=\"label-text\" for=${this.name}>\n ${this.required\n ? html`<abbr\n class=\"required\"\n title=${this._textStrings.requiredText}\n role=\"img\"\n aria-label=${this._textStrings?.requiredText}\n >*</abbr\n >`\n : null}\n ${this.label}\n <slot name=\"tooltip\"></slot>\n </label>\n\n <div class=\"input-wrapper\">\n <textarea\n id=${this.name}\n name=${this.name}\n placeholder=${this.placeholder}\n ?required=${this.required}\n ?disabled=${this.disabled}\n ?invalid=${this._isInvalid}\n aria-invalid=${this._isInvalid}\n aria-describedby=${this._isInvalid ? 'error' : ''}\n minlength=${ifDefined(this.minLength)}\n maxlength=${ifDefined(this.maxLength)}\n rows=${this.rows}\n @input=${(e: any) => this.handleInput(e)}\n >\n${this.value}</textarea\n >\n </div>\n\n <div class=\"caption-error-count\">\n <div>\n ${this.caption !== ''\n ? html`\n <div class=\"caption\" aria-disabled=${this.disabled}>\n ${this.caption}\n </div>\n `\n : null}\n ${this._isInvalid\n ? html`\n <div id=\"error\" class=\"error\">\n <span\n role=\"img\"\n class=\"error-icon\"\n aria-label=${this._textStrings.errorText}\n >${unsafeSVG(errorIcon)}</span\n >\n\n ${this.invalidText || this._internalValidationMsg}\n </div>\n `\n : null}\n </div>\n ${this.maxLength\n ? html`\n <div class=\"count\">${this.value.length}/${this.maxLength}</div>\n `\n : null}\n </div>\n </div>\n `;\n }\n\n override willUpdate(changedProps: any) {\n if (changedProps.has('textStrings')) {\n this._textStrings = deepmerge(_defaultTextStrings, this.textStrings);\n }\n }\n\n private handleInput(e: any) {\n this.value = e.target.value;\n\n this._validate(true, false);\n\n // emit selected value\n const event = new CustomEvent('on-input', {\n detail: {\n value: e.target.value,\n origEvent: e,\n },\n });\n this.dispatchEvent(event);\n }\n\n override updated(changedProps: any) {\n // preserve FormMixin updated function\n this._onUpdated(changedProps);\n\n if (changedProps.has('value')) {\n this.textareaEl.value = this.value;\n }\n }\n\n private _validate(interacted: Boolean, report: Boolean) {\n // get validity state from textareaEl, combine customError flag if invalidText is provided\n const Validity =\n this.invalidText !== ''\n ? { ...this.textareaEl.validity, customError: true }\n : this.textareaEl.validity;\n // set validationMessage to invalidText if present, otherwise use textareaEl validationMessage\n const ValidationMessage =\n this.invalidText !== ''\n ? this.invalidText\n : this.textareaEl.validationMessage;\n\n // set validity on custom element, anchor to textareaEl\n this._internals.setValidity(Validity, ValidationMessage, this.textareaEl);\n\n // set internal validation message if value was changed by user input\n if (interacted) {\n this._internalValidationMsg = this.textareaEl.validationMessage;\n }\n\n // focus the form field to show validity\n if (report) {\n this._internals.reportValidity();\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-text-area': TextArea;\n }\n}\n"],"names":["_defaultTextStrings","requiredText","errorText","TextArea","FormMixin","LitElement","constructor","this","label","caption","placeholder","required","disabled","textStrings","_textStrings","render","html","name","_a","_isInvalid","ifDefined","minLength","maxLength","rows","e","handleInput","value","unsafeSVG","errorIcon","invalidText","_internalValidationMsg","length","willUpdate","changedProps","has","deepmerge","target","_validate","event","CustomEvent","detail","origEvent","dispatchEvent","updated","_onUpdated","textareaEl","interacted","report","Validity","validity","customError","ValidationMessage","validationMessage","_internals","setValidity","reportValidity","styles","TextAreaScss","__decorate","property","type","String","prototype","Boolean","Number","Object","state","query","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"textArea.js","sources":["../../../../src/components/reusable/textArea/textArea.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, html } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { FormMixin } from '../../../common/mixins/form-input';\nimport { deepmerge } from 'deepmerge-ts';\n\nimport errorIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/error-filled.svg';\n\nimport TextAreaScss from './textArea.scss';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { text } from 'stream/consumers';\n\nconst _defaultTextStrings = {\n requiredText: 'Required',\n errorText: 'Error',\n};\n\n/**\n * Text area.\n * @fires on-input - Captures the input event and emits the selected value and original event details.\n * @prop {number} minLength - Minimum number of characters.\n * @prop {number} maxLength - Maximum number of characters.\n * @slot tooltip - Slot for tooltip.\n */\n@customElement('kyn-text-area')\nexport class TextArea extends FormMixin(LitElement) {\n static override styles = TextAreaScss;\n\n /** Label text. */\n @property({ type: String })\n label = '';\n\n /** Optional text beneath the input. */\n @property({ type: String })\n caption = '';\n\n /** Input placeholder. */\n @property({ type: String })\n placeholder = '';\n\n /** Makes the input required. */\n @property({ type: Boolean })\n required = false;\n\n /** Input disabled state. */\n @property({ type: Boolean })\n disabled = false;\n\n /** Maximum number of characters. */\n @property({ type: Number })\n maxLength!: number;\n\n /** Minimum number of characters. */\n @property({ type: Number })\n minLength!: number;\n\n /** Set it to `true`, if text area is not resizeable. */\n @property({ type: Boolean })\n notResizeable = false;\n\n /** textarea rows attribute. The number of visible text lines.\n * **Required** when `aiConnected` is set to `true`.\n */\n @property({ type: Number })\n rows!: number;\n\n /** Set this to `true` for AI theme. */\n @property({ type: Boolean })\n aiConnected = false;\n\n /** Maximum number of visible text lines allowed. Default `5` rows. <br />\n * **NOTE**: Applies only when `aiConnected` is set to `true`. <br />\n * `rows` is always less than or equal to `maxRowsVisible` and `rows` is used as minimum number of visible text lines.\n */\n @property({ type: Number })\n maxRowsVisible = 5;\n\n /** Customizable text strings. */\n @property({ type: Object })\n textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n _textStrings = _defaultTextStrings;\n\n /**\n * Queries the <textarea> DOM element.\n * @ignore\n */\n @query('textarea')\n textareaEl!: HTMLTextAreaElement;\n\n override render() {\n return html`\n <div class=\"text-area\" ?disabled=${this.disabled}>\n <label class=\"label-text\" for=${this.name}>\n ${this.required\n ? html`<abbr\n class=\"required\"\n title=${this._textStrings.requiredText}\n role=\"img\"\n aria-label=${this._textStrings?.requiredText}\n >*</abbr\n >`\n : null}\n ${this.label}\n <slot name=\"tooltip\"></slot>\n </label>\n\n <div\n class=${classMap({\n 'input-wrapper': true,\n 'ai-connected': this.aiConnected,\n 'no-resize': this.notResizeable,\n })}\n >\n <textarea\n id=${this.name}\n name=${this.name}\n placeholder=${this.placeholder}\n ?required=${this.required}\n ?disabled=${this.disabled}\n ?invalid=${this._isInvalid}\n aria-invalid=${this._isInvalid}\n aria-describedby=${this._isInvalid ? 'error' : ''}\n minlength=${ifDefined(this.minLength)}\n maxlength=${ifDefined(this.maxLength)}\n rows=${this.rows}\n @input=${(e: any) => this.handleInput(e)}\n >\n${this.value}</textarea\n >\n </div>\n\n <div class=\"caption-error-count\">\n <div>\n ${this.caption !== ''\n ? html`\n <div class=\"caption\" aria-disabled=${this.disabled}>\n ${this.caption}\n </div>\n `\n : null}\n ${this._isInvalid\n ? html`\n <div id=\"error\" class=\"error\">\n <span\n role=\"img\"\n class=\"error-icon\"\n aria-label=${this._textStrings.errorText}\n >${unsafeSVG(errorIcon)}</span\n >\n\n ${this.invalidText || this._internalValidationMsg}\n </div>\n `\n : null}\n </div>\n ${this.maxLength\n ? html`\n <div class=\"count\">${this.value.length}/${this.maxLength}</div>\n `\n : null}\n </div>\n </div>\n `;\n }\n\n override willUpdate(changedProps: any) {\n if (changedProps.has('textStrings')) {\n this._textStrings = deepmerge(_defaultTextStrings, this.textStrings);\n }\n }\n\n private handleInput(e: any) {\n this.value = e.target.value;\n\n if (this.aiConnected) this._updateVisibleRows();\n\n this._validate(true, false);\n\n // emit selected value\n const event = new CustomEvent('on-input', {\n detail: {\n value: e.target.value,\n origEvent: e,\n },\n });\n this.dispatchEvent(event);\n }\n\n private _updateVisibleRows() {\n const textarea = this.shadowRoot?.querySelector('textarea');\n if (textarea) {\n textarea.style.height = 'auto';\n textarea.style.minHeight = `${this.rows * 24 + 32}px`; // 24 -> line height, 32px -> text area padding\n textarea.style.height = `${textarea.scrollHeight + 2}px`; // 2px -> minor adjustment\n textarea.style.maxHeight = `${this.maxRowsVisible * 24 + 32}px`; // 24 -> line height, 32px -> text area padding\n }\n }\n\n override updated(changedProps: any) {\n // preserve FormMixin updated function\n this._onUpdated(changedProps);\n\n if (changedProps.has('value')) {\n this.textareaEl.value = this.value;\n }\n }\n\n private _validate(interacted: Boolean, report: Boolean) {\n // get validity state from textareaEl, combine customError flag if invalidText is provided\n const Validity =\n this.invalidText !== ''\n ? { ...this.textareaEl.validity, customError: true }\n : this.textareaEl.validity;\n // set validationMessage to invalidText if present, otherwise use textareaEl validationMessage\n const ValidationMessage =\n this.invalidText !== ''\n ? this.invalidText\n : this.textareaEl.validationMessage;\n\n // set validity on custom element, anchor to textareaEl\n this._internals.setValidity(Validity, ValidationMessage, this.textareaEl);\n\n // set internal validation message if value was changed by user input\n if (interacted) {\n this._internalValidationMsg = this.textareaEl.validationMessage;\n }\n\n // focus the form field to show validity\n if (report) {\n this._internals.reportValidity();\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-text-area': TextArea;\n }\n}\n"],"names":["_defaultTextStrings","requiredText","errorText","TextArea","FormMixin","LitElement","constructor","this","label","caption","placeholder","required","disabled","notResizeable","aiConnected","maxRowsVisible","textStrings","_textStrings","render","html","name","_a","classMap","_isInvalid","ifDefined","minLength","maxLength","rows","e","handleInput","value","unsafeSVG","errorIcon","invalidText","_internalValidationMsg","length","willUpdate","changedProps","has","deepmerge","target","_updateVisibleRows","_validate","event","CustomEvent","detail","origEvent","dispatchEvent","textarea","shadowRoot","querySelector","style","height","minHeight","scrollHeight","maxHeight","updated","_onUpdated","textareaEl","interacted","report","Validity","validity","customError","ValidationMessage","validationMessage","_internals","setValidity","reportValidity","styles","TextAreaScss","__decorate","property","type","String","prototype","Boolean","Number","Object","state","query","customElement"],"mappings":"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"}
package/index.d.ts CHANGED
@@ -6,6 +6,7 @@ export { RadioButton, RadioButtonGroup, } from './components/reusable/radioButto
6
6
  export { Checkbox, CheckboxGroup, CheckboxSubgroup, } from './components/reusable/checkbox';
7
7
  export { TextInput } from './components/reusable/textInput';
8
8
  export { TextArea } from './components/reusable/textArea';
9
+ export { Avatar } from './components/reusable/avatar';
9
10
  export { ToggleButton } from './components/reusable/toggleButton';
10
11
  export { Dropdown, DropdownOption, DropdownCategory, } from './components/reusable/dropdown';
11
12
  export { DatePicker } from './components/reusable/datePicker';
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export{Header}from"./components/global/header/header.js";export{HeaderNav}from"./components/global/header/headerNav.js";export{HeaderLink}from"./components/global/header/headerLink.js";export{HeaderCategory}from"./components/global/header/headerCategory.js";export{HeaderDivider}from"./components/global/header/headerDivider.js";export{HeaderFlyouts}from"./components/global/header/headerFlyouts.js";export{HeaderFlyout}from"./components/global/header/headerFlyout.js";export{HeaderUserProfile}from"./components/global/header/headerUserProfile.js";export{HeaderPanelLink}from"./components/global/header/headerPanelLink.js";export{HeaderNotificationPanel}from"./components/global/header/headerNotificationPanel.js";export{LocalNav}from"./components/global/localNav/localNav.js";export{LocalNavLink}from"./components/global/localNav/localNavLink.js";export{LocalNavDivider}from"./components/global/localNav/localNavDivider.js";export{Footer}from"./components/global/footer/footer.js";export{UiShell}from"./components/global/uiShell/uiShell.js";export{RadioButton}from"./components/reusable/radioButton/radioButton.js";export{RadioButtonGroup}from"./components/reusable/radioButton/radioButtonGroup.js";export{Checkbox}from"./components/reusable/checkbox/checkbox.js";export{CheckboxGroup}from"./components/reusable/checkbox/checkboxGroup.js";export{CheckboxSubgroup}from"./components/reusable/checkbox/checkboxSubgroup.js";export{TextInput}from"./components/reusable/textInput/textInput.js";export{TextArea}from"./components/reusable/textArea/textArea.js";export{ToggleButton}from"./components/reusable/toggleButton/toggleButton.js";export{Dropdown}from"./components/reusable/dropdown/dropdown.js";export{DropdownOption}from"./components/reusable/dropdown/dropdownOption.js";export{DropdownCategory}from"./components/reusable/dropdown/dropdownCategory.js";export{DatePicker}from"./components/reusable/datePicker/datepicker.js";export{DateRangePicker}from"./components/reusable/daterangepicker/daterangepicker.js";export{TimePicker}from"./components/reusable/timepicker/timepicker.js";export{ProgressBar}from"./components/reusable/progressBar/progressBar.js";export{BlockCodeView}from"./components/reusable/blockCodeView/blockCodeView.js";export{InlineCodeView}from"./components/reusable/inlineCodeView/inlineCodeView.js";export{Breadcrumbs}from"./components/reusable/breadcrumbs/breadcrumbs.js";export{T as Table}from"./table-f6b54ef0.js";export{TableCell}from"./components/reusable/table/table-cell.js";export{TableRow}from"./components/reusable/table/table-row.js";export{TableBody}from"./components/reusable/table/table-body.js";export{TableHead}from"./components/reusable/table/table-head.js";export{TableHeader}from"./components/reusable/table/table-header.js";export{TableFoot}from"./components/reusable/table/table-foot.js";export{TableFooter}from"./components/reusable/table/table-footer.js";export{TableLegend}from"./components/reusable/table/table-legend.js";export{TableLegendItem}from"./components/reusable/table/table-legend-item.js";export{TableToolbar}from"./components/reusable/table/table-toolbar.js";export{TableContainer}from"./components/reusable/table/table-container.js";export{TableHeaderRow}from"./components/reusable/table/table-header-row.js";export{TableExpandedRow}from"./components/reusable/table/table-expanded-row.js";import"./components/reusable/table/table.skeleton.js";export{Pagination}from"./components/reusable/pagination/Pagination.js";import"./components/reusable/pagination/pagination-items-range.js";import"./components/reusable/pagination/pagination-page-size-dropdown.js";import"./components/reusable/pagination/pagination-navigation-buttons.js";import"./components/reusable/pagination/pagination.skeleton.js";export{OverflowMenu}from"./components/reusable/overflowMenu/overflowMenu.js";export{OverflowMenuItem}from"./components/reusable/overflowMenu/overflowMenuItem.js";export{Tabs}from"./components/reusable/tabs/tabs.js";export{Tab}from"./components/reusable/tabs/tab.js";export{TabPanel}from"./components/reusable/tabs/tabPanel.js";export{Modal}from"./components/reusable/modal/modal.js";export{Tooltip}from"./components/reusable/tooltip/tooltip.js";export{Tag}from"./components/reusable/tag/tag.js";export{TagGroup}from"./components/reusable/tag/tagGroup.js";import"./components/reusable/tag/tag.skeleton.js";export{GlobalFilter}from"./components/reusable/globalFilter/globalFilter.js";export{SideDrawer}from"./components/reusable/sideDrawer/sideDrawer.js";export{PageTitle}from"./components/reusable/pagetitle/pageTitle.js";export{Notification}from"./components/reusable/notification/notification.js";export{NotificationContainer}from"./components/reusable/notification/notificationContainer.js";export{Widget}from"./components/reusable/widget/widget.js";export{WidgetDragHandle}from"./components/reusable/widget/widgetDragHandle.js";export{WidgetGridstack}from"./components/reusable/widget/widgetGridstack.js";export{Search}from"./components/reusable/search/search.js";export{Loader}from"./components/reusable/loaders/loader.js";export{LoaderInline}from"./components/reusable/loaders/inline.js";export{Skeleton}from"./components/reusable/loaders/skeleton.js";export{NumberInput}from"./components/reusable/numberInput/numberInput.js";export{createOptionsArray,debounce,stringToReactHtml}from"./common/helpers/helpers.js";export{Config,WidgetConstraints,WidgetSizes}from"./common/helpers/gridstack.js";export{SwiperConfig}from"./common/helpers/swiper.js";export{Stepper}from"./components/reusable/stepper/stepper.js";export{StepperItem}from"./components/reusable/stepper/stepperItem.js";export{StepperItemChild}from"./components/reusable/stepper/stepperItemChild.js";export{Button}from"./components/reusable/button/button.js";export{Link}from"./components/reusable/link/link.js";export{Accordion}from"./components/reusable/accordion/accordion.js";export{AccordionItem}from"./components/reusable/accordion/accordionItem.js";export{Card}from"./components/reusable/card/card.js";import"./components/reusable/card/vitalCard.skeleton.js";import"./components/reusable/card/informationalCard.skeleton.js";export{SplitButton}from"./components/reusable/splitButton/splitButton.js";export{SplitButtonOption}from"./components/reusable/splitButton/splitButtonOption.js";export{FloatingContainer}from"./components/reusable/floatingContainer/floatingContainer.js";import"./vendor/tslib-53a81efe.js";import"./vendor/lit-6e2a7867.js";import"./vendor/lit-element-3185f710.js";import"./vendor/lit-html-29220869.js";import"./vendor/@kyndryl-design-system/shidoka-foundation-2d7bab68.js";import"./vendor/@kyndryl-design-system/shidoka-icons-a1631225.js";import"./vendor/deepmerge-ts-e62363e6.js";import"./common/mixins/form-input.js";import"./common/helpers/flatpickr.js";import"./vendor/flatpickr-bbd13d61.js";import"./shidoka-flatpickr-theme-42d7c67e.js";import"./vendor/prismjs-61b50099.js";import"./vendor/@lit/context-81eb2692.js";import"./components/reusable/table/table-context.js";import"./components/reusable/table/defs.js";import"./pagination-0ed1cd84.js";import"./tag-22009eb5.js";import"./vendor/query-selector-shadow-dom-013e9d24.js";import"./vendor/gridstack-79fea57d.js";import"./vendor/lottie-web-9ccae634.js";import"./components/reusable/button/defs.js";import"./components/reusable/link/defs.js";import"./cardSample-f60b40aa.js";import"./components/reusable/splitButton/defs.js";
1
+ export{Header}from"./components/global/header/header.js";export{HeaderNav}from"./components/global/header/headerNav.js";export{HeaderLink}from"./components/global/header/headerLink.js";export{HeaderCategory}from"./components/global/header/headerCategory.js";export{HeaderDivider}from"./components/global/header/headerDivider.js";export{HeaderFlyouts}from"./components/global/header/headerFlyouts.js";export{HeaderFlyout}from"./components/global/header/headerFlyout.js";export{HeaderUserProfile}from"./components/global/header/headerUserProfile.js";export{HeaderPanelLink}from"./components/global/header/headerPanelLink.js";export{HeaderNotificationPanel}from"./components/global/header/headerNotificationPanel.js";export{LocalNav}from"./components/global/localNav/localNav.js";export{LocalNavLink}from"./components/global/localNav/localNavLink.js";export{LocalNavDivider}from"./components/global/localNav/localNavDivider.js";export{Footer}from"./components/global/footer/footer.js";export{UiShell}from"./components/global/uiShell/uiShell.js";export{RadioButton}from"./components/reusable/radioButton/radioButton.js";export{RadioButtonGroup}from"./components/reusable/radioButton/radioButtonGroup.js";export{Checkbox}from"./components/reusable/checkbox/checkbox.js";export{CheckboxGroup}from"./components/reusable/checkbox/checkboxGroup.js";export{CheckboxSubgroup}from"./components/reusable/checkbox/checkboxSubgroup.js";export{TextInput}from"./components/reusable/textInput/textInput.js";export{TextArea}from"./components/reusable/textArea/textArea.js";export{Avatar}from"./components/reusable/avatar/avatar.js";export{ToggleButton}from"./components/reusable/toggleButton/toggleButton.js";export{Dropdown}from"./components/reusable/dropdown/dropdown.js";export{DropdownOption}from"./components/reusable/dropdown/dropdownOption.js";export{DropdownCategory}from"./components/reusable/dropdown/dropdownCategory.js";export{DatePicker}from"./components/reusable/datePicker/datepicker.js";export{DateRangePicker}from"./components/reusable/daterangepicker/daterangepicker.js";export{TimePicker}from"./components/reusable/timepicker/timepicker.js";export{ProgressBar}from"./components/reusable/progressBar/progressBar.js";export{BlockCodeView}from"./components/reusable/blockCodeView/blockCodeView.js";export{InlineCodeView}from"./components/reusable/inlineCodeView/inlineCodeView.js";export{Breadcrumbs}from"./components/reusable/breadcrumbs/breadcrumbs.js";export{T as Table}from"./table-7b5747f8.js";export{TableCell}from"./components/reusable/table/table-cell.js";export{TableRow}from"./components/reusable/table/table-row.js";export{TableBody}from"./components/reusable/table/table-body.js";export{TableHead}from"./components/reusable/table/table-head.js";export{TableHeader}from"./components/reusable/table/table-header.js";export{TableFoot}from"./components/reusable/table/table-foot.js";export{TableFooter}from"./components/reusable/table/table-footer.js";export{TableLegend}from"./components/reusable/table/table-legend.js";export{TableLegendItem}from"./components/reusable/table/table-legend-item.js";export{TableToolbar}from"./components/reusable/table/table-toolbar.js";export{TableContainer}from"./components/reusable/table/table-container.js";export{TableHeaderRow}from"./components/reusable/table/table-header-row.js";export{TableExpandedRow}from"./components/reusable/table/table-expanded-row.js";import"./components/reusable/table/table.skeleton.js";export{Pagination}from"./components/reusable/pagination/Pagination.js";import"./components/reusable/pagination/pagination-items-range.js";import"./components/reusable/pagination/pagination-page-size-dropdown.js";import"./components/reusable/pagination/pagination-navigation-buttons.js";import"./components/reusable/pagination/pagination.skeleton.js";export{OverflowMenu}from"./components/reusable/overflowMenu/overflowMenu.js";export{OverflowMenuItem}from"./components/reusable/overflowMenu/overflowMenuItem.js";export{Tabs}from"./components/reusable/tabs/tabs.js";export{Tab}from"./components/reusable/tabs/tab.js";export{TabPanel}from"./components/reusable/tabs/tabPanel.js";export{Modal}from"./components/reusable/modal/modal.js";export{Tooltip}from"./components/reusable/tooltip/tooltip.js";export{Tag}from"./components/reusable/tag/tag.js";export{TagGroup}from"./components/reusable/tag/tagGroup.js";import"./components/reusable/tag/tag.skeleton.js";export{GlobalFilter}from"./components/reusable/globalFilter/globalFilter.js";export{SideDrawer}from"./components/reusable/sideDrawer/sideDrawer.js";export{PageTitle}from"./components/reusable/pagetitle/pageTitle.js";export{Notification}from"./components/reusable/notification/notification.js";export{NotificationContainer}from"./components/reusable/notification/notificationContainer.js";export{Widget}from"./components/reusable/widget/widget.js";export{WidgetDragHandle}from"./components/reusable/widget/widgetDragHandle.js";export{WidgetGridstack}from"./components/reusable/widget/widgetGridstack.js";export{Search}from"./components/reusable/search/search.js";export{Loader}from"./components/reusable/loaders/loader.js";export{LoaderInline}from"./components/reusable/loaders/inline.js";export{Skeleton}from"./components/reusable/loaders/skeleton.js";export{NumberInput}from"./components/reusable/numberInput/numberInput.js";export{createOptionsArray,debounce,stringToReactHtml}from"./common/helpers/helpers.js";export{Config,WidgetConstraints,WidgetSizes}from"./common/helpers/gridstack.js";export{SwiperConfig}from"./common/helpers/swiper.js";export{Stepper}from"./components/reusable/stepper/stepper.js";export{StepperItem}from"./components/reusable/stepper/stepperItem.js";export{StepperItemChild}from"./components/reusable/stepper/stepperItemChild.js";export{Button}from"./components/reusable/button/button.js";export{Link}from"./components/reusable/link/link.js";export{Accordion}from"./components/reusable/accordion/accordion.js";export{AccordionItem}from"./components/reusable/accordion/accordionItem.js";export{Card}from"./components/reusable/card/card.js";import"./components/reusable/card/vitalCard.skeleton.js";import"./components/reusable/card/informationalCard.skeleton.js";export{SplitButton}from"./components/reusable/splitButton/splitButton.js";export{SplitButtonOption}from"./components/reusable/splitButton/splitButtonOption.js";export{FloatingContainer}from"./components/reusable/floatingContainer/floatingContainer.js";import"./vendor/tslib-53a81efe.js";import"./vendor/lit-6e2a7867.js";import"./vendor/lit-element-3185f710.js";import"./vendor/lit-html-29220869.js";import"./vendor/@kyndryl-design-system/shidoka-foundation-2d7bab68.js";import"./vendor/@kyndryl-design-system/shidoka-icons-a1631225.js";import"./vendor/deepmerge-ts-e62363e6.js";import"./common/mixins/form-input.js";import"./common/helpers/flatpickr.js";import"./vendor/flatpickr-bbd13d61.js";import"./shidoka-flatpickr-theme-42d7c67e.js";import"./vendor/prismjs-61b50099.js";import"./vendor/@lit/context-6f74d22e.js";import"./components/reusable/table/table-context.js";import"./components/reusable/table/defs.js";import"./pagination-0ed1cd84.js";import"./tag-22009eb5.js";import"./vendor/query-selector-shadow-dom-013e9d24.js";import"./vendor/gridstack-79fea57d.js";import"./vendor/lottie-web-9ccae634.js";import"./components/reusable/button/defs.js";import"./components/reusable/link/defs.js";import"./cardSample-f60b40aa.js";import"./components/reusable/splitButton/defs.js";
2
2
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kyndryl-design-system/shidoka-applications",
3
- "version": "2.2.0",
3
+ "version": "2.4.0",
4
4
  "description": "Shidoka Web Components for Applications",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -27,7 +27,7 @@
27
27
  "prepare": "npx husky install"
28
28
  },
29
29
  "dependencies": {
30
- "@kyndryl-design-system/shidoka-foundation": "^2.1.2",
30
+ "@kyndryl-design-system/shidoka-foundation": "^2.2.0",
31
31
  "@kyndryl-design-system/shidoka-icons": "^2.0.0",
32
32
  "@lit/context": "^1.1.0",
33
33
  "deepmerge-ts": "^7.1.0",
@@ -56,24 +56,24 @@
56
56
  "@rollup/plugin-node-resolve": "^15.0.1",
57
57
  "@rollup/plugin-typescript": "^11.1.6",
58
58
  "@semantic-release/git": "^10.0.1",
59
- "@storybook/addon-a11y": "^8.4.7",
60
- "@storybook/addon-actions": "^8.4.7",
61
- "@storybook/addon-designs": "^8.0.3",
62
- "@storybook/addon-docs": "^8.4.7",
63
- "@storybook/addon-essentials": "^8.4.7",
64
- "@storybook/addon-interactions": "^8.4.7",
65
- "@storybook/addon-links": "^8.4.7",
66
- "@storybook/addon-storysource": "^8.4.7",
59
+ "@storybook/addon-a11y": "^8.5.6",
60
+ "@storybook/addon-actions": "^8.5.6",
61
+ "@storybook/addon-designs": "^8.2.0",
62
+ "@storybook/addon-docs": "^8.5.6",
63
+ "@storybook/addon-essentials": "^8.5.6",
64
+ "@storybook/addon-interactions": "^8.5.6",
65
+ "@storybook/addon-links": "^8.5.6",
66
+ "@storybook/addon-storysource": "^8.5.6",
67
67
  "@storybook/addon-styling": "^1.3.7",
68
- "@storybook/addon-themes": "^8.4.7",
68
+ "@storybook/addon-themes": "^8.5.6",
69
69
  "@storybook/addon-webpack5-compiler-babel": "^3.0.3",
70
- "@storybook/addons": "^7.6.17",
71
- "@storybook/preview-api": "^8.4.7",
72
- "@storybook/test": "^8.4.7",
73
- "@storybook/test-runner": "^0.21.0",
74
- "@storybook/theming": "^8.4.7",
75
- "@storybook/web-components": "^8.4.7",
76
- "@storybook/web-components-webpack5": "^8.4.7",
70
+ "@storybook/manager-api": "^8.5.6",
71
+ "@storybook/preview-api": "^8.5.6",
72
+ "@storybook/test": "^8.5.6",
73
+ "@storybook/test-runner": "^0.21.1",
74
+ "@storybook/theming": "^8.5.6",
75
+ "@storybook/web-components": "^8.5.6",
76
+ "@storybook/web-components-webpack5": "^8.5.6",
77
77
  "@types/prismjs": "^1.26.4",
78
78
  "@types/query-selector-shadow-dom": "^1.0.1",
79
79
  "@types/sass": "^1.43.1",
@@ -86,7 +86,7 @@
86
86
  "css-loader": "^6.7.3",
87
87
  "eslint": "^8.57.0",
88
88
  "eslint-plugin-lit-a11y": "^1.1.0-next.1",
89
- "eslint-plugin-storybook": "^0.11.1",
89
+ "eslint-plugin-storybook": "^0.11.3",
90
90
  "husky": "^8.0.3",
91
91
  "lint-staged": "^13.1.2",
92
92
  "lit-analyzer": "^2.0.3",
@@ -110,7 +110,7 @@
110
110
  "sass": "^1.81.0",
111
111
  "sass-loader": "^13.2.0",
112
112
  "shadow-dom-testing-library": "^1.11.2",
113
- "storybook": "^8.4.7",
113
+ "storybook": "^8.5.6",
114
114
  "storybook-addon-themes": "^6.1.0",
115
115
  "storybook-preset-inline-svg": "^1.0.1",
116
116
  "svg-inline-loader": "^0.8.2",
@@ -1,4 +1,4 @@
1
- import{_ as e}from"./vendor/tslib-53a81efe.js";import{n as t,t as o,e as s}from"./vendor/lit-6e2a7867.js";import{i as d,s as i,x as l}from"./vendor/lit-element-3185f710.js";import{i as a}from"./vendor/@lit/context-81eb2692.js";import{tableContext as r}from"./components/reusable/table/table-context.js";var h=d`*,
1
+ import{_ as e}from"./vendor/tslib-53a81efe.js";import{n as t,t as o,e as s}from"./vendor/lit-6e2a7867.js";import{i as d,s as i,x as l}from"./vendor/lit-element-3185f710.js";import{i as a}from"./vendor/@lit/context-6f74d22e.js";import{tableContext as r}from"./components/reusable/table/table-context.js";var h=d`*,
2
2
  *::before,
3
3
  *::after {
4
4
  box-sizing: border-box;
@@ -18,4 +18,4 @@ import{_ as e}from"./vendor/tslib-53a81efe.js";import{n as t,t as o,e as s}from"
18
18
  kyn-tr.selected {
19
19
  background-color: var(--kd-color-background-table-row-active);
20
20
  }`;let c=class extends i{constructor(){super(...arguments),this.role="table",this._provider=new a(this,r),this._tableHeaderRow=null,this._allRows=[],this._selectedRows=[],this._selectedRowIds=new Set,this._headerCheckboxIndeterminate=!1,this._headerCheckboxChecked=!1}updated(e){super.updated(e);const t={};e.has("dense")&&(t.dense=this.dense),e.has("striped")&&(t.striped=this.striped),e.has("checkboxSelection")&&(t.checkboxSelection=this.checkboxSelection),e.has("stickyHeader")&&(t.stickyHeader=this.stickyHeader),this._provider.setValue(t)}_updateHeaderCheckbox(){var e;0===this._selectedRows.length||0===this._allRows.length?(this._headerCheckboxIndeterminate=!1,this._headerCheckboxChecked=!1):this._selectedRows.length===this._allRows.length?(this._headerCheckboxIndeterminate=!1,this._headerCheckboxChecked=!0):(this._headerCheckboxIndeterminate=!0,this._headerCheckboxChecked=!1),null===(e=this._tableHeaderRow)||void 0===e||e.updateHeaderCheckboxState(this._headerCheckboxIndeterminate,this._headerCheckboxChecked)}_handleRowSelectionChange(e){e.stopPropagation();const{target:t}=e,{_selectedRows:o}=this;if(!this.contains(t))return;o.includes(t)?(this._selectedRows=o.filter((e=>e!==t)),this._selectedRowIds.delete(t.rowId)):(this._selectedRows.push(t),this._selectedRowIds.add(t.rowId)),this._updateHeaderCheckbox();const s={bubbles:!1,cancelable:!0,composed:!0,detail:{selectedRow:t,selectedRows:this._selectedRows}};this.dispatchEvent(new CustomEvent("on-row-selection-change",s))}_toggleSelectionAll(e){e.stopPropagation();const{detail:{checked:t},target:o}=e,{_allRows:s}=this;if(!this.contains(o))return;s.forEach((e=>{e.disabled||(e.selected=t)})),this._selectedRows=[...s.filter((e=>e.selected))],this._selectedRowIds=new Set(this._selectedRows.map((e=>e.rowId))),this._updateHeaderCheckbox();const d={bubbles:!1,cancelable:!0,composed:!0,detail:{selectedRows:this._selectedRows}};this.dispatchEvent(new CustomEvent("on-all-rows-selection-change",d))}updateAfterExternalChanges(){this._allRows=Array.from(this.querySelectorAll("kyn-tr")),this._selectedRows=this._allRows.filter((e=>e.selected)),this._updateHeaderCheckbox(),this.requestUpdate()}getSelectedRows(){return this._selectedRows}_handleRowsChange(e){const{detail:{rows:t}}=e;e.stopPropagation(),this._allRows=t,this._updateSelectionStates(),this._updateHeaderCheckbox()}_updateSelectionStates(){const e=[];this._allRows.forEach((t=>{this._selectedRowIds.has(t.rowId)?(t.selected=!0,e.push(t)):t.selected&&(this._selectedRowIds.add(t.rowId),e.push(t))})),this._selectedRows=e}connectedCallback(){super.connectedCallback(),this.addEventListener("on-header-checkbox-toggle",this._toggleSelectionAll),this.addEventListener("on-row-select",this._handleRowSelectionChange),this.addEventListener("on-rows-change",this._handleRowsChange)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("on-header-checkbox-toggle",this._toggleSelectionAll),this.removeEventListener("on-row-select",this._handleRowSelectionChange),this.removeEventListener("on-rows-change",this._handleRowsChange)}firstUpdated(){this._tableHeaderRow=this.querySelector("kyn-header-tr")}render(){return l` <slot></slot> `}};c.styles=[h],e([t({type:String,reflect:!0})],c.prototype,"role",void 0),e([t({type:Boolean})],c.prototype,"checkboxSelection",void 0),e([t({type:Boolean})],c.prototype,"striped",void 0),e([t({type:Boolean})],c.prototype,"stickyHeader",void 0),e([t({type:Boolean})],c.prototype,"dense",void 0),e([t({type:Boolean})],c.prototype,"fixedLayout",void 0),e([o()],c.prototype,"_provider",void 0),e([o()],c.prototype,"_tableHeaderRow",void 0),e([o()],c.prototype,"_allRows",void 0),e([o()],c.prototype,"_selectedRows",void 0),e([o()],c.prototype,"_selectedRowIds",void 0),e([o()],c.prototype,"_headerCheckboxIndeterminate",void 0),e([o()],c.prototype,"_headerCheckboxChecked",void 0),c=e([s("kyn-table")],c);export{c as T,h as c};
21
- //# sourceMappingURL=table-f6b54ef0.js.map
21
+ //# sourceMappingURL=table-7b5747f8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table-f6b54ef0.js","sources":["../src/components/reusable/table/table.ts"],"sourcesContent":["import { LitElement, html, PropertyValues } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { ContextProvider } from '@lit/context';\nimport { tableContext } from './table-context';\n\nimport { TableRow } from './table-row';\nimport { TableHeaderRow } from './table-header-row';\n\nimport styles from './table.scss';\n\n/**\n * `kyn-table` Web Component.\n * This component provides a table with sorting, pagination, and selection capabilities.\n * It is designed to be used with the `kyn-table-toolbar` and `kyn-table-container` components.\n * @fires on-row-selection-change - Dispatched when the selection state of a row is toggled.\n * @fires on-all-rows-selection-change - Dispatched when the selection state of all rows is toggled.\n */\n\n@customElement('kyn-table')\nexport class Table extends LitElement {\n static override styles = [styles];\n\n /** aria role.\n * @internal\n */\n @property({ type: String, reflect: true })\n override role = 'table';\n\n /**\n * checkboxSelection: Boolean indicating whether rows should be\n * selectable using checkboxes.\n * @type {boolean}\n * @default false\n */\n @property({ type: Boolean })\n checkboxSelection?: boolean;\n\n /**\n * striped: Boolean indicating whether rows should have alternate\n * coloring.\n * @type {boolean}\n * @default false\n */\n @property({ type: Boolean })\n striped?: boolean;\n\n /**\n * stickyHeader: Boolean indicating whether the table header should be sticky.\n * Must also set a height or max-height on kyn-table-container.\n * @type {boolean}\n * @default false\n */\n @property({ type: Boolean })\n stickyHeader?: boolean;\n\n /**\n * dense: Boolean indicating whether the table should be displayed\n * in dense mode.\n * @type {boolean}\n * @default false\n */\n @property({ type: Boolean })\n dense?: boolean;\n\n /**\n * fixedLayout: Boolean indicating whether the table should have a fixed layout.\n * This will set the table's layout to fixed, which means the table and column widths\n * will be determined by the width of the columns and not by the content of the cells.\n * This can be useful when you want to have a consistent column width across multiple tables.\n * @type {boolean}\n * @default false\n * */\n @property({ type: Boolean })\n fixedLayout?: boolean;\n\n /**\n * _provider: Context provider for the table.\n * @ignore\n * @private\n */\n @state()\n private _provider = new ContextProvider(this, tableContext);\n\n /**\n * updated: Lifecycle method called when the element is updated.\n */\n override updated(changedProperties: PropertyValues) {\n super.updated(changedProperties);\n\n // Create an object to hold the new values\n const newValues: Partial<any> = {};\n\n // Check each property in _propsToCheck and add it to newValues if it has really changed\n if (changedProperties.has('dense')) newValues.dense = this.dense;\n if (changedProperties.has('striped')) newValues.striped = this.striped;\n if (changedProperties.has('checkboxSelection'))\n newValues.checkboxSelection = this.checkboxSelection;\n if (changedProperties.has('stickyHeader'))\n newValues.stickyHeader = this.stickyHeader;\n\n // Update the context provider with the new values\n this._provider.setValue(newValues);\n }\n\n /**\n * tableHeaderRow: Reference to the header row of the table.\n * @ignore\n * @private\n */\n @state()\n private _tableHeaderRow: TableHeaderRow | null = null;\n\n /**\n * allRows: Array of objects representing each row in the data table.\n * @ignore\n * @private\n */\n @state()\n private _allRows: TableRow[] = [];\n\n /**\n * selectedRows: Set of row ids that are currently selected.\n * @ignore\n * @private\n */\n @state()\n private _selectedRows: TableRow[] = [];\n\n /**\n * selectedRowIds: Set of row ids that are currently selected.\n * @ignore\n * @private\n */\n @state()\n private _selectedRowIds: Set<string> = new Set();\n\n /**\n * headerCheckboxIndeterminate: Boolean indicating whether the header\n * checkbox is in an indeterminate state.\n * @ignore\n * @private\n */\n @state()\n private _headerCheckboxIndeterminate = false;\n\n /**\n * headerCheckboxChecked: Boolean indicating whether the header checkbox is\n * checked.\n * @ignore\n * @private\n */\n @state()\n private _headerCheckboxChecked = false;\n\n /**\n * Updates the state of the header checkbox based on the number of\n * selected rows.\n * @private\n */\n private _updateHeaderCheckbox() {\n if (this._selectedRows.length === 0 || this._allRows.length === 0) {\n this._headerCheckboxIndeterminate = false;\n this._headerCheckboxChecked = false;\n } else if (this._selectedRows.length === this._allRows.length) {\n this._headerCheckboxIndeterminate = false;\n this._headerCheckboxChecked = true;\n } else {\n this._headerCheckboxIndeterminate = true;\n this._headerCheckboxChecked = false;\n }\n\n this._tableHeaderRow?.updateHeaderCheckboxState(\n this._headerCheckboxIndeterminate,\n this._headerCheckboxChecked\n );\n }\n\n /**\n * Handles the change of selection state for a specific row.\n */\n private _handleRowSelectionChange(event: CustomEvent) {\n event.stopPropagation();\n\n const { target } = event;\n const { _selectedRows: selectedRows } = this;\n\n if (!this.contains(target as TableRow)) {\n return;\n }\n\n if (selectedRows.includes(target as TableRow)) {\n this._selectedRows = selectedRows.filter((e) => e !== target);\n this._selectedRowIds.delete((target as TableRow).rowId);\n } else {\n this._selectedRows.push(target as TableRow);\n this._selectedRowIds.add((target as TableRow).rowId);\n }\n\n this._updateHeaderCheckbox();\n\n const init = {\n bubbles: false,\n cancelable: true,\n composed: true,\n detail: {\n selectedRow: target,\n selectedRows: this._selectedRows,\n },\n };\n this.dispatchEvent(new CustomEvent('on-row-selection-change', init));\n }\n\n /**\n * Toggles the selection state of all rows in the table.\n */\n private _toggleSelectionAll(event: CustomEvent) {\n event.stopPropagation();\n\n const {\n detail: { checked },\n target,\n } = event;\n const { _allRows: allRows } = this;\n\n if (!this.contains(target as TableRow)) {\n return;\n }\n\n allRows.forEach((row) => {\n if ((row as TableRow).disabled) return;\n\n (row as TableRow).selected = checked;\n });\n\n this._selectedRows = [...allRows.filter((row) => row.selected)];\n this._selectedRowIds = new Set(this._selectedRows.map((row) => row.rowId));\n\n this._updateHeaderCheckbox();\n\n const init = {\n bubbles: false,\n cancelable: true,\n composed: true,\n detail: {\n selectedRows: this._selectedRows,\n },\n };\n this.dispatchEvent(new CustomEvent('on-all-rows-selection-change', init));\n }\n\n /**\n * Resets the selection state of all rows in the table.\n * This method is called when the table is reset or cleared.\n * @public\n * @returns void\n */\n public updateAfterExternalChanges() {\n // Re-query the DOM to update the _allRows based on current children elements\n this._allRows = Array.from(this.querySelectorAll('kyn-tr'));\n\n // Update _selectedRows based on whether the row elements are marked as selected\n this._selectedRows = this._allRows.filter((row) => row.selected);\n\n this._updateHeaderCheckbox();\n this.requestUpdate();\n }\n\n /**\n * Returns the selected rows in the table.\n * @returns Array of selected rows.\n * @public\n */\n public getSelectedRows() {\n return this._selectedRows;\n }\n\n /**\n * Handles the change of rows in the table body.\n * @param {CustomEvent} event - The custom event containing the updated rows.\n * @private\n */\n private _handleRowsChange(event: CustomEvent) {\n const {\n detail: { rows },\n } = event;\n event.stopPropagation();\n\n this._allRows = rows;\n this._updateSelectionStates();\n this._updateHeaderCheckbox();\n }\n\n private _updateSelectionStates() {\n // Temporary array to hold updated selected rows\n const updatedSelectedRows: TableRow[] = [];\n\n // Loop through all rows to update their selected state and rebuild the selectedRows array\n this._allRows.forEach((row) => {\n if (this._selectedRowIds.has(row.rowId)) {\n row.selected = true; // Update the selected property if the rowId matches\n updatedSelectedRows.push(row); // Add the actual row element to the updated selected rows array\n } else if (row.selected) {\n this._selectedRowIds.add(row.rowId); // Add the rowId to the selectedRowIds set\n updatedSelectedRows.push(row); // Add the actual row element to the updated selected rows array\n }\n });\n\n // Replace the old selectedRows with the updated selected rows\n this._selectedRows = updatedSelectedRows;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n this.addEventListener(\n 'on-header-checkbox-toggle',\n this._toggleSelectionAll as EventListener\n );\n this.addEventListener(\n 'on-row-select',\n this._handleRowSelectionChange as EventListener\n );\n this.addEventListener(\n 'on-rows-change',\n this._handleRowsChange as EventListener\n );\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n\n this.removeEventListener(\n 'on-header-checkbox-toggle',\n this._toggleSelectionAll as EventListener\n );\n this.removeEventListener(\n 'on-row-select',\n this._handleRowSelectionChange as EventListener\n );\n this.removeEventListener(\n 'on-rows-change',\n this._handleRowsChange as EventListener\n );\n }\n\n override firstUpdated() {\n this._tableHeaderRow = this.querySelector('kyn-header-tr');\n }\n\n override render() {\n return html` <slot></slot> `;\n }\n}\n\n// Define the custom element in the global namespace\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-table': Table;\n }\n}\n"],"names":["Table","LitElement","constructor","this","role","_provider","ContextProvider","tableContext","_tableHeaderRow","_allRows","_selectedRows","_selectedRowIds","Set","_headerCheckboxIndeterminate","_headerCheckboxChecked","updated","changedProperties","super","newValues","has","dense","striped","checkboxSelection","stickyHeader","setValue","_updateHeaderCheckbox","length","_a","updateHeaderCheckboxState","_handleRowSelectionChange","event","stopPropagation","target","selectedRows","contains","includes","filter","e","delete","rowId","push","add","init","bubbles","cancelable","composed","detail","selectedRow","dispatchEvent","CustomEvent","_toggleSelectionAll","checked","allRows","forEach","row","disabled","selected","map","updateAfterExternalChanges","Array","from","querySelectorAll","requestUpdate","getSelectedRows","_handleRowsChange","rows","_updateSelectionStates","updatedSelectedRows","connectedCallback","addEventListener","disconnectedCallback","removeEventListener","firstUpdated","querySelector","render","html","styles","__decorate","property","type","String","reflect","prototype","Boolean","state","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"table-7b5747f8.js","sources":["../src/components/reusable/table/table.ts"],"sourcesContent":["import { LitElement, html, PropertyValues } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { ContextProvider } from '@lit/context';\nimport { tableContext } from './table-context';\n\nimport { TableRow } from './table-row';\nimport { TableHeaderRow } from './table-header-row';\n\nimport styles from './table.scss';\n\n/**\n * `kyn-table` Web Component.\n * This component provides a table with sorting, pagination, and selection capabilities.\n * It is designed to be used with the `kyn-table-toolbar` and `kyn-table-container` components.\n * @fires on-row-selection-change - Dispatched when the selection state of a row is toggled.\n * @fires on-all-rows-selection-change - Dispatched when the selection state of all rows is toggled.\n */\n\n@customElement('kyn-table')\nexport class Table extends LitElement {\n static override styles = [styles];\n\n /** aria role.\n * @internal\n */\n @property({ type: String, reflect: true })\n override role = 'table';\n\n /**\n * checkboxSelection: Boolean indicating whether rows should be\n * selectable using checkboxes.\n * @type {boolean}\n * @default false\n */\n @property({ type: Boolean })\n checkboxSelection?: boolean;\n\n /**\n * striped: Boolean indicating whether rows should have alternate\n * coloring.\n * @type {boolean}\n * @default false\n */\n @property({ type: Boolean })\n striped?: boolean;\n\n /**\n * stickyHeader: Boolean indicating whether the table header should be sticky.\n * Must also set a height or max-height on kyn-table-container.\n * @type {boolean}\n * @default false\n */\n @property({ type: Boolean })\n stickyHeader?: boolean;\n\n /**\n * dense: Boolean indicating whether the table should be displayed\n * in dense mode.\n * @type {boolean}\n * @default false\n */\n @property({ type: Boolean })\n dense?: boolean;\n\n /**\n * fixedLayout: Boolean indicating whether the table should have a fixed layout.\n * This will set the table's layout to fixed, which means the table and column widths\n * will be determined by the width of the columns and not by the content of the cells.\n * This can be useful when you want to have a consistent column width across multiple tables.\n * @type {boolean}\n * @default false\n * */\n @property({ type: Boolean })\n fixedLayout?: boolean;\n\n /**\n * _provider: Context provider for the table.\n * @ignore\n * @private\n */\n @state()\n private _provider = new ContextProvider(this, tableContext);\n\n /**\n * updated: Lifecycle method called when the element is updated.\n */\n override updated(changedProperties: PropertyValues) {\n super.updated(changedProperties);\n\n // Create an object to hold the new values\n const newValues: Partial<any> = {};\n\n // Check each property in _propsToCheck and add it to newValues if it has really changed\n if (changedProperties.has('dense')) newValues.dense = this.dense;\n if (changedProperties.has('striped')) newValues.striped = this.striped;\n if (changedProperties.has('checkboxSelection'))\n newValues.checkboxSelection = this.checkboxSelection;\n if (changedProperties.has('stickyHeader'))\n newValues.stickyHeader = this.stickyHeader;\n\n // Update the context provider with the new values\n this._provider.setValue(newValues);\n }\n\n /**\n * tableHeaderRow: Reference to the header row of the table.\n * @ignore\n * @private\n */\n @state()\n private _tableHeaderRow: TableHeaderRow | null = null;\n\n /**\n * allRows: Array of objects representing each row in the data table.\n * @ignore\n * @private\n */\n @state()\n private _allRows: TableRow[] = [];\n\n /**\n * selectedRows: Set of row ids that are currently selected.\n * @ignore\n * @private\n */\n @state()\n private _selectedRows: TableRow[] = [];\n\n /**\n * selectedRowIds: Set of row ids that are currently selected.\n * @ignore\n * @private\n */\n @state()\n private _selectedRowIds: Set<string> = new Set();\n\n /**\n * headerCheckboxIndeterminate: Boolean indicating whether the header\n * checkbox is in an indeterminate state.\n * @ignore\n * @private\n */\n @state()\n private _headerCheckboxIndeterminate = false;\n\n /**\n * headerCheckboxChecked: Boolean indicating whether the header checkbox is\n * checked.\n * @ignore\n * @private\n */\n @state()\n private _headerCheckboxChecked = false;\n\n /**\n * Updates the state of the header checkbox based on the number of\n * selected rows.\n * @private\n */\n private _updateHeaderCheckbox() {\n if (this._selectedRows.length === 0 || this._allRows.length === 0) {\n this._headerCheckboxIndeterminate = false;\n this._headerCheckboxChecked = false;\n } else if (this._selectedRows.length === this._allRows.length) {\n this._headerCheckboxIndeterminate = false;\n this._headerCheckboxChecked = true;\n } else {\n this._headerCheckboxIndeterminate = true;\n this._headerCheckboxChecked = false;\n }\n\n this._tableHeaderRow?.updateHeaderCheckboxState(\n this._headerCheckboxIndeterminate,\n this._headerCheckboxChecked\n );\n }\n\n /**\n * Handles the change of selection state for a specific row.\n */\n private _handleRowSelectionChange(event: CustomEvent) {\n event.stopPropagation();\n\n const { target } = event;\n const { _selectedRows: selectedRows } = this;\n\n if (!this.contains(target as TableRow)) {\n return;\n }\n\n if (selectedRows.includes(target as TableRow)) {\n this._selectedRows = selectedRows.filter((e) => e !== target);\n this._selectedRowIds.delete((target as TableRow).rowId);\n } else {\n this._selectedRows.push(target as TableRow);\n this._selectedRowIds.add((target as TableRow).rowId);\n }\n\n this._updateHeaderCheckbox();\n\n const init = {\n bubbles: false,\n cancelable: true,\n composed: true,\n detail: {\n selectedRow: target,\n selectedRows: this._selectedRows,\n },\n };\n this.dispatchEvent(new CustomEvent('on-row-selection-change', init));\n }\n\n /**\n * Toggles the selection state of all rows in the table.\n */\n private _toggleSelectionAll(event: CustomEvent) {\n event.stopPropagation();\n\n const {\n detail: { checked },\n target,\n } = event;\n const { _allRows: allRows } = this;\n\n if (!this.contains(target as TableRow)) {\n return;\n }\n\n allRows.forEach((row) => {\n if ((row as TableRow).disabled) return;\n\n (row as TableRow).selected = checked;\n });\n\n this._selectedRows = [...allRows.filter((row) => row.selected)];\n this._selectedRowIds = new Set(this._selectedRows.map((row) => row.rowId));\n\n this._updateHeaderCheckbox();\n\n const init = {\n bubbles: false,\n cancelable: true,\n composed: true,\n detail: {\n selectedRows: this._selectedRows,\n },\n };\n this.dispatchEvent(new CustomEvent('on-all-rows-selection-change', init));\n }\n\n /**\n * Resets the selection state of all rows in the table.\n * This method is called when the table is reset or cleared.\n * @public\n * @returns void\n */\n public updateAfterExternalChanges() {\n // Re-query the DOM to update the _allRows based on current children elements\n this._allRows = Array.from(this.querySelectorAll('kyn-tr'));\n\n // Update _selectedRows based on whether the row elements are marked as selected\n this._selectedRows = this._allRows.filter((row) => row.selected);\n\n this._updateHeaderCheckbox();\n this.requestUpdate();\n }\n\n /**\n * Returns the selected rows in the table.\n * @returns Array of selected rows.\n * @public\n */\n public getSelectedRows() {\n return this._selectedRows;\n }\n\n /**\n * Handles the change of rows in the table body.\n * @param {CustomEvent} event - The custom event containing the updated rows.\n * @private\n */\n private _handleRowsChange(event: CustomEvent) {\n const {\n detail: { rows },\n } = event;\n event.stopPropagation();\n\n this._allRows = rows;\n this._updateSelectionStates();\n this._updateHeaderCheckbox();\n }\n\n private _updateSelectionStates() {\n // Temporary array to hold updated selected rows\n const updatedSelectedRows: TableRow[] = [];\n\n // Loop through all rows to update their selected state and rebuild the selectedRows array\n this._allRows.forEach((row) => {\n if (this._selectedRowIds.has(row.rowId)) {\n row.selected = true; // Update the selected property if the rowId matches\n updatedSelectedRows.push(row); // Add the actual row element to the updated selected rows array\n } else if (row.selected) {\n this._selectedRowIds.add(row.rowId); // Add the rowId to the selectedRowIds set\n updatedSelectedRows.push(row); // Add the actual row element to the updated selected rows array\n }\n });\n\n // Replace the old selectedRows with the updated selected rows\n this._selectedRows = updatedSelectedRows;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n this.addEventListener(\n 'on-header-checkbox-toggle',\n this._toggleSelectionAll as EventListener\n );\n this.addEventListener(\n 'on-row-select',\n this._handleRowSelectionChange as EventListener\n );\n this.addEventListener(\n 'on-rows-change',\n this._handleRowsChange as EventListener\n );\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n\n this.removeEventListener(\n 'on-header-checkbox-toggle',\n this._toggleSelectionAll as EventListener\n );\n this.removeEventListener(\n 'on-row-select',\n this._handleRowSelectionChange as EventListener\n );\n this.removeEventListener(\n 'on-rows-change',\n this._handleRowsChange as EventListener\n );\n }\n\n override firstUpdated() {\n this._tableHeaderRow = this.querySelector('kyn-header-tr');\n }\n\n override render() {\n return html` <slot></slot> `;\n }\n}\n\n// Define the custom element in the global namespace\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-table': Table;\n }\n}\n"],"names":["Table","LitElement","constructor","this","role","_provider","ContextProvider","tableContext","_tableHeaderRow","_allRows","_selectedRows","_selectedRowIds","Set","_headerCheckboxIndeterminate","_headerCheckboxChecked","updated","changedProperties","super","newValues","has","dense","striped","checkboxSelection","stickyHeader","setValue","_updateHeaderCheckbox","length","_a","updateHeaderCheckboxState","_handleRowSelectionChange","event","stopPropagation","target","selectedRows","contains","includes","filter","e","delete","rowId","push","add","init","bubbles","cancelable","composed","detail","selectedRow","dispatchEvent","CustomEvent","_toggleSelectionAll","checked","allRows","forEach","row","disabled","selected","map","updateAfterExternalChanges","Array","from","querySelectorAll","requestUpdate","getSelectedRows","_handleRowsChange","rows","_updateSelectionStates","updatedSelectedRows","connectedCallback","addEventListener","disconnectedCallback","removeEventListener","firstUpdated","querySelector","render","html","styles","__decorate","property","type","String","reflect","prototype","Boolean","state","customElement"],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * Copyright 2021 Google LLC
4
4
  * SPDX-License-Identifier: BSD-3-Clause
5
5
  */
6
- let t=class extends Event{constructor(t,s,e){super("context-request",{bubbles:!0,composed:!0}),this.context=t,this.callback=s,this.subscribe=e??!1}};
6
+ let t=class extends Event{constructor(t,s,e,i){super("context-request",{bubbles:!0,composed:!0}),this.context=t,this.contextTarget=s,this.callback=e,this.subscribe=i??!1}};
7
7
  /**
8
8
  * @license
9
9
  * Copyright 2021 Google LLC
@@ -13,7 +13,7 @@ let t=class extends Event{constructor(t,s,e){super("context-request",{bubbles:!0
13
13
  * @license
14
14
  * Copyright 2021 Google LLC
15
15
  * SPDX-License-Identifier: BSD-3-Clause
16
- */let e=class{constructor(t,s,e,i){if(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(t,s)=>{this.unsubscribe&&(this.unsubscribe!==s&&(this.provided=!1,this.unsubscribe()),this.subscribe||this.unsubscribe()),this.value=t,this.host.requestUpdate(),this.provided&&!this.subscribe||(this.provided=!0,this.callback&&this.callback(t,s)),this.unsubscribe=s},this.host=t,void 0!==s.context){const t=s;this.context=t.context,this.callback=t.callback,this.subscribe=t.subscribe??!1}else this.context=s,this.callback=e,this.subscribe=i??!1;this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=void 0)}dispatchRequest(){this.host.dispatchEvent(new t(this.context,this.t,this.subscribe))}};
16
+ */let e=class{constructor(t,s,e,i){if(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(t,s)=>{this.unsubscribe&&(this.unsubscribe!==s&&(this.provided=!1,this.unsubscribe()),this.subscribe||this.unsubscribe()),this.value=t,this.host.requestUpdate(),this.provided&&!this.subscribe||(this.provided=!0,this.callback&&this.callback(t,s)),this.unsubscribe=s},this.host=t,void 0!==s.context){const t=s;this.context=t.context,this.callback=t.callback,this.subscribe=t.subscribe??!1}else this.context=s,this.callback=e,this.subscribe=i??!1;this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=void 0)}dispatchRequest(){this.host.dispatchEvent(new t(this.context,this.host,this.t,this.subscribe))}};
17
17
  /**
18
18
  * @license
19
19
  * Copyright 2021 Google LLC
@@ -23,5 +23,5 @@ let t=class extends Event{constructor(t,s,e){super("context-request",{bubbles:!0
23
23
  * @license
24
24
  * Copyright 2021 Google LLC
25
25
  * SPDX-License-Identifier: BSD-3-Clause
26
- */class o extends Event{constructor(t){super("context-provider",{bubbles:!0,composed:!0}),this.context=t}}class c extends i{constructor(s,e,i){super(void 0!==e.context?e.initialValue:i),this.onContextRequest=t=>{const s=t.composedPath()[0];t.context===this.context&&s!==this.host&&(t.stopPropagation(),this.addCallback(t.callback,s,t.subscribe))},this.onProviderRequest=s=>{const e=s.composedPath()[0];if(s.context!==this.context||e===this.host)return;const i=new Set;for(const[s,{consumerHost:e}]of this.subscriptions)i.has(s)||(i.add(s),e.dispatchEvent(new t(this.context,s,!0)));s.stopPropagation()},this.host=s,void 0!==e.context?this.context=e.context:this.context=e,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener("context-request",this.onContextRequest),this.host.addEventListener("context-provider",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new o(this.context))}}export{c as i,s as n,e as s};
27
- //# sourceMappingURL=context-81eb2692.js.map
26
+ */class o extends Event{constructor(t,s){super("context-provider",{bubbles:!0,composed:!0}),this.context=t,this.contextTarget=s}}class c extends i{constructor(s,e,i){super(void 0!==e.context?e.initialValue:i),this.onContextRequest=t=>{if(t.context!==this.context)return;const s=t.contextTarget??t.composedPath()[0];s!==this.host&&(t.stopPropagation(),this.addCallback(t.callback,s,t.subscribe))},this.onProviderRequest=s=>{if(s.context!==this.context)return;if((s.contextTarget??s.composedPath()[0])===this.host)return;const e=new Set;for(const[s,{consumerHost:i}]of this.subscriptions)e.has(s)||(e.add(s),i.dispatchEvent(new t(this.context,i,s,!0)));s.stopPropagation()},this.host=s,void 0!==e.context?this.context=e.context:this.context=e,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener("context-request",this.onContextRequest),this.host.addEventListener("context-provider",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new o(this.context,this.host))}}export{c as i,s as n,e as s};
27
+ //# sourceMappingURL=context-6f74d22e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-6f74d22e.js","sources":["../../../node_modules/@lit/context/lib/context-request-event.js","../../../node_modules/@lit/context/lib/create-context.js","../../../node_modules/@lit/context/lib/controllers/context-consumer.js","../../../node_modules/@lit/context/lib/value-notifier.js","../../../node_modules/@lit/context/lib/controllers/context-provider.js"],"sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s extends Event{constructor(s,t,e,o){super(\"context-request\",{bubbles:!0,composed:!0}),this.context=s,this.contextTarget=t,this.callback=e,this.subscribe=o??!1}}export{s as ContextRequestEvent};\n//# sourceMappingURL=context-request-event.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nfunction n(n){return n}export{n as createContext};\n//# sourceMappingURL=create-context.js.map\n","import{ContextRequestEvent as t}from\"../context-request-event.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class s{constructor(t,s,i,h){if(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(t,s)=>{this.unsubscribe&&(this.unsubscribe!==s&&(this.provided=!1,this.unsubscribe()),this.subscribe||this.unsubscribe()),this.value=t,this.host.requestUpdate(),this.provided&&!this.subscribe||(this.provided=!0,this.callback&&this.callback(t,s)),this.unsubscribe=s},this.host=t,void 0!==s.context){const t=s;this.context=t.context,this.callback=t.callback,this.subscribe=t.subscribe??!1}else this.context=s,this.callback=i,this.subscribe=h??!1;this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=void 0)}dispatchRequest(){this.host.dispatchEvent(new t(this.context,this.host,this.t,this.subscribe))}}export{s as ContextConsumer};\n//# sourceMappingURL=context-consumer.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s{get value(){return this.o}set value(s){this.setValue(s)}setValue(s,t=!1){const i=t||!Object.is(s,this.o);this.o=s,i&&this.updateObservers()}constructor(s){this.subscriptions=new Map,this.updateObservers=()=>{for(const[s,{disposer:t}]of this.subscriptions)s(this.o,t)},void 0!==s&&(this.value=s)}addCallback(s,t,i){if(!i)return void s(this.value);this.subscriptions.has(s)||this.subscriptions.set(s,{disposer:()=>{this.subscriptions.delete(s)},consumerHost:t});const{disposer:h}=this.subscriptions.get(s);s(this.value,h)}clearCallbacks(){this.subscriptions.clear()}}export{s as ValueNotifier};\n//# sourceMappingURL=value-notifier.js.map\n","import{ContextRequestEvent as t}from\"../context-request-event.js\";import{ValueNotifier as s}from\"../value-notifier.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends Event{constructor(t,s){super(\"context-provider\",{bubbles:!0,composed:!0}),this.context=t,this.contextTarget=s}}class i extends s{constructor(s,e,i){super(void 0!==e.context?e.initialValue:i),this.onContextRequest=t=>{if(t.context!==this.context)return;const s=t.contextTarget??t.composedPath()[0];s!==this.host&&(t.stopPropagation(),this.addCallback(t.callback,s,t.subscribe))},this.onProviderRequest=s=>{if(s.context!==this.context)return;if((s.contextTarget??s.composedPath()[0])===this.host)return;const e=new Set;for(const[s,{consumerHost:i}]of this.subscriptions)e.has(s)||(e.add(s),i.dispatchEvent(new t(this.context,i,s,!0)));s.stopPropagation()},this.host=s,void 0!==e.context?this.context=e.context:this.context=e,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener(\"context-request\",this.onContextRequest),this.host.addEventListener(\"context-provider\",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new e(this.context,this.host))}}export{i as ContextProvider,e as ContextProviderEvent};\n//# sourceMappingURL=context-provider.js.map\n"],"names":["Event","constructor","s","t","e","o","super","bubbles","composed","this","context","contextTarget","callback","subscribe","n","s$1","i","h","provided","value","unsubscribe","host","requestUpdate","addController","hostConnected","dispatchRequest","hostDisconnected","dispatchEvent","setValue","Object","is","updateObservers","subscriptions","Map","disposer","addCallback","has","set","delete","consumerHost","get","clearCallbacks","clear","initialValue","onContextRequest","composedPath","stopPropagation","onProviderRequest","Set","add","attachListeners","addEventListener"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-81eb2692.js","sources":["../../../node_modules/@lit/context/lib/context-request-event.js","../../../node_modules/@lit/context/lib/create-context.js","../../../node_modules/@lit/context/lib/controllers/context-consumer.js","../../../node_modules/@lit/context/lib/value-notifier.js","../../../node_modules/@lit/context/lib/controllers/context-provider.js"],"sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s extends Event{constructor(s,t,e){super(\"context-request\",{bubbles:!0,composed:!0}),this.context=s,this.callback=t,this.subscribe=e??!1}}export{s as ContextRequestEvent};\n//# sourceMappingURL=context-request-event.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nfunction n(n){return n}export{n as createContext};\n//# sourceMappingURL=create-context.js.map\n","import{ContextRequestEvent as t}from\"../context-request-event.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class s{constructor(t,s,i,h){if(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(t,s)=>{this.unsubscribe&&(this.unsubscribe!==s&&(this.provided=!1,this.unsubscribe()),this.subscribe||this.unsubscribe()),this.value=t,this.host.requestUpdate(),this.provided&&!this.subscribe||(this.provided=!0,this.callback&&this.callback(t,s)),this.unsubscribe=s},this.host=t,void 0!==s.context){const t=s;this.context=t.context,this.callback=t.callback,this.subscribe=t.subscribe??!1}else this.context=s,this.callback=i,this.subscribe=h??!1;this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=void 0)}dispatchRequest(){this.host.dispatchEvent(new t(this.context,this.t,this.subscribe))}}export{s as ContextConsumer};\n//# sourceMappingURL=context-consumer.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s{get value(){return this.o}set value(s){this.setValue(s)}setValue(s,t=!1){const i=t||!Object.is(s,this.o);this.o=s,i&&this.updateObservers()}constructor(s){this.subscriptions=new Map,this.updateObservers=()=>{for(const[s,{disposer:t}]of this.subscriptions)s(this.o,t)},void 0!==s&&(this.value=s)}addCallback(s,t,i){if(!i)return void s(this.value);this.subscriptions.has(s)||this.subscriptions.set(s,{disposer:()=>{this.subscriptions.delete(s)},consumerHost:t});const{disposer:h}=this.subscriptions.get(s);s(this.value,h)}clearCallbacks(){this.subscriptions.clear()}}export{s as ValueNotifier};\n//# sourceMappingURL=value-notifier.js.map\n","import{ContextRequestEvent as t}from\"../context-request-event.js\";import{ValueNotifier as s}from\"../value-notifier.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends Event{constructor(t){super(\"context-provider\",{bubbles:!0,composed:!0}),this.context=t}}class i extends s{constructor(s,e,i){super(void 0!==e.context?e.initialValue:i),this.onContextRequest=t=>{const s=t.composedPath()[0];t.context===this.context&&s!==this.host&&(t.stopPropagation(),this.addCallback(t.callback,s,t.subscribe))},this.onProviderRequest=s=>{const e=s.composedPath()[0];if(s.context!==this.context||e===this.host)return;const i=new Set;for(const[s,{consumerHost:e}]of this.subscriptions)i.has(s)||(i.add(s),e.dispatchEvent(new t(this.context,s,!0)));s.stopPropagation()},this.host=s,void 0!==e.context?this.context=e.context:this.context=e,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener(\"context-request\",this.onContextRequest),this.host.addEventListener(\"context-provider\",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new e(this.context))}}export{i as ContextProvider,e as ContextProviderEvent};\n//# sourceMappingURL=context-provider.js.map\n"],"names":["Event","constructor","s","t","e","super","bubbles","composed","this","context","callback","subscribe","n","s$1","i","h","provided","value","unsubscribe","host","requestUpdate","addController","hostConnected","dispatchRequest","hostDisconnected","dispatchEvent","o","setValue","Object","is","updateObservers","subscriptions","Map","disposer","addCallback","has","set","delete","consumerHost","get","clearCallbacks","clear","initialValue","onContextRequest","composedPath","stopPropagation","onProviderRequest","Set","add","attachListeners","addEventListener"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}