@aquera/nile-elements 1.5.7 → 1.5.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +14 -16
- package/dist/nile-badge/index.cjs.js +1 -1
- package/dist/nile-badge/index.esm.js +1 -1
- package/dist/nile-badge/nile-badge.cjs.js +1 -1
- package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
- package/dist/nile-badge/nile-badge.esm.js +1 -1
- package/dist/nile-button/index.cjs.js +1 -1
- package/dist/nile-button/index.esm.js +1 -1
- package/dist/nile-button/nile-button.cjs.js +1 -1
- package/dist/nile-button/nile-button.cjs.js.map +1 -1
- package/dist/nile-button/nile-button.css.cjs.js +1 -1
- package/dist/nile-button/nile-button.css.cjs.js.map +1 -1
- package/dist/nile-button/nile-button.css.esm.js +8 -9
- package/dist/nile-button/nile-button.esm.js +1 -1
- package/dist/nile-carousel/index.cjs.js +1 -1
- package/dist/nile-carousel/index.esm.js +1 -1
- package/dist/nile-carousel/nile-carousel.cjs.js +1 -1
- package/dist/nile-carousel/nile-carousel.cjs.js.map +1 -1
- package/dist/nile-carousel/nile-carousel.esm.js +11 -11
- package/dist/nile-dialog/index.cjs.js +1 -1
- package/dist/nile-dialog/index.esm.js +1 -1
- package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
- package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
- package/dist/nile-dialog/nile-dialog.esm.js +1 -1
- package/dist/nile-drawer/index.cjs.js +1 -1
- package/dist/nile-drawer/index.esm.js +1 -1
- package/dist/nile-drawer/nile-drawer.cjs.js +1 -1
- package/dist/nile-drawer/nile-drawer.cjs.js.map +1 -1
- package/dist/nile-drawer/nile-drawer.esm.js +1 -1
- package/dist/nile-dropdown/nile-dropdown.cjs.js +1 -1
- package/dist/nile-dropdown/nile-dropdown.cjs.js.map +1 -1
- package/dist/nile-dropdown/nile-dropdown.esm.js +1 -1
- package/dist/nile-grid/nile-grid.cjs.js +1 -1
- package/dist/nile-grid/nile-grid.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid.css.cjs.js +1 -1
- package/dist/nile-grid/nile-grid.css.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid.css.esm.js +0 -1
- package/dist/nile-grid/nile-grid.esm.js +2 -2
- package/dist/nile-grid/nile-grid.width.cjs.js +1 -1
- package/dist/nile-grid/nile-grid.width.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid.width.esm.js +1 -1
- package/dist/nile-icon/icons/svg/index.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/index.esm.js +1 -1
- package/dist/nile-icon/icons/svg/ng-boolean.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/ng-boolean.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/ng-boolean.esm.js +1 -0
- package/dist/nile-icon/icons/svg/ng-building-07.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/ng-building-07.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/ng-building-07.esm.js +1 -0
- package/dist/nile-icon/icons/svg/ng-clock-refresh.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/ng-clock-refresh.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/ng-clock-refresh.esm.js +1 -0
- package/dist/nile-icon/icons/svg/ng-dataflow-02.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/ng-dataflow-02.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/ng-dataflow-02.esm.js +1 -0
- package/dist/nile-icon/icons/svg/ng-folder-code.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/ng-folder-code.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/ng-folder-code.esm.js +1 -0
- package/dist/nile-icon/icons/svg/ng-lightbulb-05.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/ng-lightbulb-05.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/ng-lightbulb-05.esm.js +1 -0
- package/dist/nile-icon/icons/svg/ng-number.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/ng-number.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/ng-number.esm.js +1 -0
- package/dist/nile-icon/icons/svg/ng-string.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/ng-string.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/ng-string.esm.js +1 -0
- package/dist/nile-icon/index.cjs.js +1 -1
- package/dist/nile-icon/index.cjs.js.map +1 -1
- package/dist/nile-icon/index.esm.js +1 -1
- package/dist/nile-icon-button/index.cjs.js +1 -1
- package/dist/nile-icon-button/index.esm.js +1 -1
- package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
- package/dist/nile-icon-button/nile-icon-button.cjs.js.map +1 -1
- package/dist/nile-icon-button/nile-icon-button.esm.js +1 -1
- package/dist/nile-input/index.cjs.js +1 -1
- package/dist/nile-input/index.esm.js +1 -1
- package/dist/nile-input/nile-input.cjs.js +1 -1
- package/dist/nile-input/nile-input.cjs.js.map +1 -1
- package/dist/nile-input/nile-input.esm.js +1 -1
- package/dist/nile-loader/nile-loader.css.cjs.js +1 -1
- package/dist/nile-loader/nile-loader.css.cjs.js.map +1 -1
- package/dist/nile-loader/nile-loader.css.esm.js +1 -1
- package/dist/nile-menu-item/index.cjs.js +1 -1
- package/dist/nile-menu-item/index.esm.js +1 -1
- package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
- package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
- package/dist/nile-menu-item/nile-menu-item.esm.js +1 -1
- package/dist/nile-option/index.cjs.js +1 -1
- package/dist/nile-option/index.esm.js +1 -1
- package/dist/nile-option/nile-option.cjs.js +1 -1
- package/dist/nile-option/nile-option.cjs.js.map +1 -1
- package/dist/nile-option/nile-option.esm.js +1 -1
- package/dist/nile-select/index.cjs.js +1 -1
- package/dist/nile-select/index.esm.js +1 -1
- package/dist/nile-select/nile-select.cjs.js +1 -1
- package/dist/nile-select/nile-select.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.esm.js +4 -4
- package/dist/nile-side-bar-action-menu-item/index.cjs.js +1 -1
- package/dist/nile-side-bar-action-menu-item/index.esm.js +1 -1
- package/dist/nile-side-bar-action-menu-item/nile-side-bar-action-menu-item.cjs.js +1 -1
- package/dist/nile-side-bar-action-menu-item/nile-side-bar-action-menu-item.cjs.js.map +1 -1
- package/dist/nile-side-bar-action-menu-item/nile-side-bar-action-menu-item.esm.js +1 -1
- package/dist/nile-tab/index.cjs.js +1 -1
- package/dist/nile-tab/index.esm.js +1 -1
- package/dist/nile-tab/nile-tab.cjs.js +1 -1
- package/dist/nile-tab/nile-tab.cjs.js.map +1 -1
- package/dist/nile-tab/nile-tab.esm.js +1 -1
- package/dist/nile-tab-group/index.cjs.js +1 -1
- package/dist/nile-tab-group/index.esm.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.cjs.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.cjs.js.map +1 -1
- package/dist/nile-tab-group/nile-tab-group.esm.js +2 -2
- package/dist/nile-tag/index.cjs.js +1 -1
- package/dist/nile-tag/index.esm.js +1 -1
- package/dist/nile-tag/nile-tag.cjs.js +1 -1
- package/dist/nile-tag/nile-tag.cjs.js.map +1 -1
- package/dist/nile-tag/nile-tag.esm.js +1 -1
- package/dist/nile-toast/index.cjs.js +1 -1
- package/dist/nile-toast/index.esm.js +1 -1
- package/dist/nile-toast/nile-toast.cjs.js +1 -1
- package/dist/nile-toast/nile-toast.cjs.js.map +1 -1
- package/dist/nile-toast/nile-toast.esm.js +1 -1
- package/dist/nile-tree/index.cjs.js +1 -1
- package/dist/nile-tree/index.esm.js +1 -1
- package/dist/nile-tree/nile-tree.cjs.js +1 -1
- package/dist/nile-tree/nile-tree.cjs.js.map +1 -1
- package/dist/nile-tree/nile-tree.esm.js +1 -1
- package/dist/nile-tree-item/index.cjs.js +1 -1
- package/dist/nile-tree-item/index.esm.js +1 -1
- package/dist/nile-tree-item/nile-tree-item.cjs.js +1 -1
- package/dist/nile-tree-item/nile-tree-item.cjs.js.map +1 -1
- package/dist/nile-tree-item/nile-tree-item.esm.js +3 -3
- package/dist/nile-virtual-select/index.cjs.js +1 -1
- package/dist/nile-virtual-select/index.esm.js +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.cjs.js +3 -3
- package/dist/nile-virtual-select/nile-virtual-select.cjs.js.map +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.esm.js +3 -3
- package/dist/src/nile-button/nile-button.css.js +8 -9
- package/dist/src/nile-button/nile-button.css.js.map +1 -1
- package/dist/src/nile-dropdown/nile-dropdown.js +4 -2
- package/dist/src/nile-dropdown/nile-dropdown.js.map +1 -1
- package/dist/src/nile-grid/nile-grid.css.js +0 -1
- package/dist/src/nile-grid/nile-grid.css.js.map +1 -1
- package/dist/src/nile-grid/nile-grid.d.ts +5 -0
- package/dist/src/nile-grid/nile-grid.js +21 -1
- package/dist/src/nile-grid/nile-grid.js.map +1 -1
- package/dist/src/nile-grid/nile-grid.layout.js +4 -0
- package/dist/src/nile-grid/nile-grid.layout.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/index.d.ts +8 -0
- package/dist/src/nile-icon/icons/svg/index.js +8 -0
- package/dist/src/nile-icon/icons/svg/index.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/ng-boolean.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/ng-boolean.js +5 -0
- package/dist/src/nile-icon/icons/svg/ng-boolean.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/ng-building-07.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/ng-building-07.js +5 -0
- package/dist/src/nile-icon/icons/svg/ng-building-07.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/ng-clock-refresh.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/ng-clock-refresh.js +5 -0
- package/dist/src/nile-icon/icons/svg/ng-clock-refresh.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/ng-dataflow-02.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/ng-dataflow-02.js +5 -0
- package/dist/src/nile-icon/icons/svg/ng-dataflow-02.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/ng-folder-code.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/ng-folder-code.js +5 -0
- package/dist/src/nile-icon/icons/svg/ng-folder-code.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/ng-lightbulb-05.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/ng-lightbulb-05.js +5 -0
- package/dist/src/nile-icon/icons/svg/ng-lightbulb-05.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/ng-number.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/ng-number.js +5 -0
- package/dist/src/nile-icon/icons/svg/ng-number.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/ng-string.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/ng-string.js +5 -0
- package/dist/src/nile-icon/icons/svg/ng-string.js.map +1 -0
- package/dist/src/nile-loader/nile-loader.css.js +1 -1
- package/dist/src/nile-loader/nile-loader.css.js.map +1 -1
- package/dist/src/version.js +2 -2
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/nile-button/nile-button.css.ts +8 -9
- package/src/nile-dropdown/nile-dropdown.ts +5 -3
- package/src/nile-grid/nile-grid.css.ts +0 -1
- package/src/nile-grid/nile-grid.layout.ts +5 -0
- package/src/nile-grid/nile-grid.ts +22 -1
- package/src/nile-icon/icons/svg/index.ts +8 -0
- package/src/nile-icon/icons/svg/ng-boolean.ts +5 -0
- package/src/nile-icon/icons/svg/ng-building-07.ts +5 -0
- package/src/nile-icon/icons/svg/ng-clock-refresh.ts +5 -0
- package/src/nile-icon/icons/svg/ng-dataflow-02.ts +5 -0
- package/src/nile-icon/icons/svg/ng-folder-code.ts +5 -0
- package/src/nile-icon/icons/svg/ng-lightbulb-05.ts +5 -0
- package/src/nile-icon/icons/svg/ng-number.ts +5 -0
- package/src/nile-icon/icons/svg/ng-string.ts +5 -0
- package/src/nile-loader/nile-loader.css.ts +1 -1
- package/vscode-html-custom-data.json +5 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-virtual-select.cjs.js","sources":["../../../../node_modules/lit-html/async-directive.js","../../../../node_modules/lit-html/directive-helpers.js","../../../../node_modules/@lit-labs/observers/resize-controller.js","../../../src/nile-virtual-select/nile-virtual-select.ts"],"sourcesContent":["import{isSingleExpression as i}from\"./directive-helpers.js\";import{Directive as t,PartType as e}from\"./directive.js\";export{directive}from\"./directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=(i,t)=>{const e=i._$AN;if(void 0===e)return!1;for(const i of e)i._$AO?.(t,!1),s(i,t);return!0},o=i=>{let t,e;do{if(void 0===(t=i._$AM))break;e=t._$AN,e.delete(i),i=t}while(0===e?.size)},r=i=>{for(let t;t=i._$AM;i=t){let e=t._$AN;if(void 0===e)t._$AN=e=new Set;else if(e.has(i))break;e.add(i),c(t)}};function h(i){void 0!==this._$AN?(o(this),this._$AM=i,r(this)):this._$AM=i}function n(i,t=!1,e=0){const r=this._$AH,h=this._$AN;if(void 0!==h&&0!==h.size)if(t)if(Array.isArray(r))for(let i=e;i<r.length;i++)s(r[i],!1),o(r[i]);else null!=r&&(s(r,!1),o(r));else s(this,i)}const c=i=>{i.type==e.CHILD&&(i._$AP??=n,i._$AQ??=h)};class f extends t{constructor(){super(...arguments),this._$AN=void 0}_$AT(i,t,e){super._$AT(i,t,e),r(this),this.isConnected=i._$AU}_$AO(i,t=!0){i!==this.isConnected&&(this.isConnected=i,i?this.reconnected?.():this.disconnected?.()),t&&(s(this,i),o(this))}setValue(t){if(i(this._$Ct))this._$Ct._$AI(t,this);else{const i=[...this._$Ct._$AH];i[this._$Ci]=t,this._$Ct._$AI(i,this,0)}}disconnected(){}reconnected(){}}export{f as AsyncDirective,t as Directive,e as PartType};\n//# sourceMappingURL=async-directive.js.map\n","import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:t}=o,i=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,n={HTML:1,SVG:2,MATHML:3},e=(o,t)=>void 0===t?void 0!==o?._$litType$:o?._$litType$===t,l=o=>null!=o?._$litType$?.h,c=o=>void 0!==o?._$litDirective$,d=o=>o?._$litDirective$,f=o=>void 0===o.strings,s=()=>document.createComment(\"\"),r=(o,i,n)=>{const e=o._$AA.parentNode,l=void 0===i?o._$AB:i._$AA;if(void 0===n){const i=e.insertBefore(s(),l),c=e.insertBefore(s(),l);n=new t(i,c,o,o.options)}else{const t=n._$AB.nextSibling,i=n._$AM,c=i!==o;if(c){let t;n._$AQ?.(o),n._$AM=o,void 0!==n._$AP&&(t=o._$AU)!==i._$AU&&n._$AP(t)}if(t!==l||c){let o=n._$AA;for(;o!==t;){const t=o.nextSibling;e.insertBefore(o,l),o=t}}}return n},v=(o,t,i=o)=>(o._$AI(t,i),o),u={},m=(o,t=u)=>o._$AH=t,p=o=>o._$AH,M=o=>{o._$AP?.(!1,!0);let t=o._$AA;const i=o._$AB.nextSibling;for(;t!==i;){const o=t.nextSibling;t.remove(),t=o}},h=o=>{o._$AR()};export{n as TemplateResultType,h as clearPart,p as getCommittedValue,d as getDirectiveClass,r as insertPart,l as isCompiledTemplateResult,c as isDirectiveResult,i as isPrimitive,f as isSingleExpression,e as isTemplateResult,M as removePart,v as setChildPartValue,m as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","import{AsyncDirective as t}from\"lit-html/async-directive.js\";import{directive as s}from\"lit-html/directive.js\";import{isServer as i}from\"lit-html/is-server.js\";class h{constructor(t,{target:s,config:h,callback:e,skipInitial:r}){this.t=new Set,this.o=!1,this.i=!1,this.h=t,null!==s&&this.t.add(s??t),this.l=h,this.o=r??this.o,this.callback=e,i||(window.ResizeObserver?(this.u=new ResizeObserver(t=>{this.handleChanges(t),this.h.requestUpdate()}),t.addController(this)):console.warn(\"ResizeController error: browser does not support ResizeObserver.\"))}handleChanges(t){this.value=this.callback?.(t,this.u)}hostConnected(){for(const t of this.t)this.observe(t)}hostDisconnected(){this.disconnect()}async hostUpdated(){!this.o&&this.i&&this.handleChanges([]),this.i=!1}observe(t){this.t.add(t),this.u.observe(t,this.l),this.i=!0,this.h.requestUpdate()}unobserve(t){this.t.delete(t),this.u.unobserve(t)}disconnect(){this.u.disconnect()}target(t){return e(this,t)}}const e=s(class extends t{constructor(){super(...arguments),this.observing=!1}render(t,s){}update(t,[s,i]){this.controller=s,this.part=t,this.observe=i,!1===i?(s.unobserve(t.element),this.observing=!1):!1===this.observing&&(s.observe(t.element),this.observing=!0)}disconnected(){this.controller?.unobserve(this.part.element),this.observing=!1}reconnected(){!1!==this.observe&&!1===this.observing&&(this.controller?.observe(this.part.element),this.observing=!0)}});export{h as ResizeController};\n//# sourceMappingURL=resize-controller.js.map\n"," /**\n * Copyright Aquera Inc 2025\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n import {\n LitElement,\n html,\n} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-virtual-select.css';\n\nimport '../nile-icon';\nimport '../nile-popup/nile-popup';\nimport '../nile-tag/nile-tag';\nimport '../nile-checkbox/nile-checkbox';\nimport '../nile-loader/nile-loader';\nimport { animateTo, stopAnimations } from '../internal/animate';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query, state } from 'lit/decorators.js';\nimport { defaultValue } from '../internal/default-value';\nimport { FormControlController } from '../internal/form';\nimport {\n getAnimation,\n setDefaultAnimation,\n} from '../utilities/animation-registry';\nimport { HasSlotController } from '../internal/slot';\nimport { waitForEvent } from '../internal/event';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';\nimport type { NileFormControl } from '../internal/nile-element';\nimport type NileOption from '../nile-option/nile-option';\nimport type NilePopup from '../nile-popup/nile-popup';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport type { VirtualOption, NileRemoveEvent, RenderItemConfig } from './types.js';\nimport { VirtualSelectSelectionManager } from './selection-manager.js';\nimport { VirtualSelectSearchManager } from './search-manager.js';\nimport { VirtualSelectRenderer } from './renderer.js';\nimport { PortalManager } from './portal-manager.js';\nimport { ResizeController } from '@lit-labs/observers/resize-controller.js';\nimport { VisibilityManager } from '../utilities/visibility-manager.js';\n\n/**\n * Nile Virtual Select component.\n *\n * @tag nile-virtual-select\n *\n */\n\n/**\n * @summary Virtual select component for handling large datasets with virtual scrolling.\n * @status stable\n * @since 2.0\n *\n * @dependency nile-icon\n * @dependency nile-popup\n * @dependency nile-tag\n * @dependency nile-checkbox\n *\n * @slot label - The input's label. Alternatively, you can use the `label` attribute.\n * @slot prefix - Used to prepend a presentational icon or similar element to the combobox.\n * @slot clear-icon - An icon to use in lieu of the default clear icon.\n * @slot expand-icon - The icon to show when the control is expanded and collapsed.\n * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n *\n * @event nile-change - Emitted when the control's value changes.\n * @event nile-clear - Emitted when the control's value is cleared.\n * @event nile-input - Emitted when the control receives input.\n * @event nile-focus - Emitted when the control gains focus.\n * @event nile-blur - Emitted when the control loses focus.\n * @event nile-show - Emitted when the select's menu opens.\n * @event nile-after-show - Emitted after the select's menu opens and all animations are complete.\n * @event nile-hide - Emitted when the select's menu closes.\n * @event nile-after-hide - Emitted after the select's menu closes and all animations are complete.\n * @event nile-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n * @event nile-search - Emitted when the user types in the search input. The event payload includes the search query for backend search functionality.\n * @event nile-scroll - Emitted when the user scrolls within the virtualized container. The event payload includes scroll position information.\n * @event nile-scroll-start - Emitted when the user starts scrolling within the virtualized container.\n * @event nile-scroll-end - Emitted when the user stops scrolling and reaches the bottom of the virtualized container (debounced).\n *\n * @csspart form-control - The form control that wraps the label, input, and help text.\n * @csspart form-control-label - The label's wrapper.\n * @csspart form-control-input - The select's wrapper.\n * @csspart form-control-help-text - The help text's wrapper.\n * @csspart combobox - The container the wraps the prefix, combobox, clear icon, and expand button.\n * @csspart prefix - The container that wraps the prefix slot.\n * @csspart display-input - The element that displays the selected option's label, an `<input>` element.\n * @csspart listbox - The listbox container where options are slotted.\n * @csspart tags - The container that houses option tags when `multiple` is used.\n * @csspart tag - The individual tags that represent each multiselect option.\n * @csspart clear-button - The clear button.\n * @csspart expand-icon - The container that wraps the expand icon.\n * @csspart footer - The footer container with show selected and clear all options.\n */\n\n@customElement('nile-virtual-select')\nexport class NileVirtualSelect extends NileElement implements NileFormControl {\n static styles: CSSResultGroup = styles;\n\n private readonly formControlController = new FormControlController(this, {\n assumeInteractionOn: ['nile-blur', 'nile-input'],\n });\n private readonly hasSlotController = new HasSlotController(\n this,\n 'help-text',\n 'label'\n );\n private readonly portalManager = new PortalManager(this);\n\n @query('.select') popup: NilePopup;\n @query('.select__combobox') combobox: HTMLElement;\n @query('.select__display-input') displayInput: HTMLInputElement;\n @query('.select__value-input') valueInput: HTMLInputElement;\n @query('.virtualized') virtualizedContainer: HTMLElement;\n\n @state() private hasFocus = false;\n @state() displayLabel = '';\n @state() selectedOptions: VirtualOption[] = [];\n @state() oldValue: string | string[] = '';\n \n private scrollTimeout: number | undefined;\n private scrolling = false;\n private visibilityManager?: VisibilityManager;\n\n /** The name of the select, submitted as a name/value pair with form data. */\n @property() name = '';\n\n /** Array of all option items for virtual scrolling */\n @property({ type: Array }) data: any = [];\n\n /** Original unfiltered option items for search functionality */\n @state() private originalOptionItems: any = [];\n\n /**\n * The current value of the select. When `multiple` is enabled, the value will be an array of selected values.\n */\n @property({\n converter: {\n fromAttribute: (value: string) => value.split(' '),\n toAttribute: (value: string[]) => value.join(' '),\n },\n })\n value: string | string[] = '';\n\n /** The default value of the form control. Primarily used for resetting the form control. */\n @defaultValue() defaultValue: string | string[] = '';\n\n /** The select's size. */\n @property() size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Placeholder text to show as a hint when the select is empty. */\n @property() placeholder = 'Select...';\n\n /** Enable automatic resizing of tags area */\n @property({ type: Boolean }) autoResize = false;\n\n /** Current search value */\n @state() searchValue: string = '';\n\n /** Enable search functionality */\n @property({ type: Boolean, reflect: true }) searchEnabled = false;\n\n @property({ type: Boolean, reflect: true, attribute: true }) enableVisibilityEffect = false;\n\n /** Search input placeholder */\n @property({attribute:'internal-search-placeholder'}) internalSearchPlaceHolder = 'Search...';\n\n /** Disable local search filtering */\n @property({ type: Boolean, reflect: true }) disableLocalSearch = false;\n\n /** Show loading state */\n @property({ type: Boolean, reflect: true }) optionsLoading = false;\n\n /** Show loading state using nile-loader */\n @property({ type: Boolean, reflect: true, attribute: true }) loading = false;\n\n /** Allows more than one option to be selected. */\n @property({ type: Boolean, reflect: true }) multiple = false;\n\n /** Help text */\n @property({ attribute: 'help-text', reflect: true }) helpText = '';\n\n /** Error message */\n @property({ attribute: 'error-message', reflect: true }) errorMessage = '';\n\n /** Sets the input to a warning state */\n @property({ type: Boolean }) warning = false;\n\n /** Sets the input to an error state */\n @property({ type: Boolean }) error = false;\n\n /** Sets the input to a success state */\n @property({ type: Boolean }) success = false;\n\n /** Disables the select control. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Adds a clear button when the select is not empty. */\n @property({ type: Boolean, reflect: true }) clearable = false;\n\n /** The select's open state. */\n @property({ type: Boolean, reflect: true }) open = false;\n\n /**\n * Enable this option to prevent the listbox from being clipped when the component is placed inside a container with\n * `overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.\n */\n @property({ type: Boolean }) hoist = false;\n\n /** Draws a filled select. */\n @property({ type: Boolean, reflect: true }) filled = false;\n\n /** Draws a pill-style select with rounded edges. */\n @property({ type: Boolean, reflect: true }) pill = false;\n\n /** The select's label. If you need to display HTML, use the `label` slot instead. */\n @property() label = '';\n\n /**\n * The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox\n * inside of the viewport.\n */\n @property({ reflect: true }) placement: 'top' | 'bottom' = 'bottom';\n\n /**\n * By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\n * to place the form control outside of a form and associate it with the form that has this `id`. The form must be in\n * the same document or shadow root for this to work.\n */\n @property({ reflect: true }) form = '';\n\n /** The select's required attribute. */\n @property({ type: Boolean, reflect: true }) required = false;\n\n /** Show no results message */\n @property({ type: Boolean }) showNoResults: boolean = false;\n\n /** No results message */\n @property({ type: String }) noResultsMessage: string = 'No results found';\n\n /** Show selected options only */\n @property({ type: Boolean }) showSelected = false;\n\n /** Enhanced configuration for rendering items with support for display text, value, and search text */\n @property({ attribute:false}) renderItemConfig?: RenderItemConfig;\n\n /** Block value change events */\n @property({ type: Boolean, reflect: true }) blockValueChange = false;\n\n /** Disable width synchronization */\n @property({ type: Boolean, reflect: true }) noWidthSync = false;\n\n /** \n * When true, the listbox will be appended to the document body instead of the parent container.\n * This is useful when the parent has overflow: hidden, clip-path, or transform applied.\n */\n @property({ type: Boolean, reflect: true }) portal = false;\n\n /**\n * The maximum number of selected options to show when `multiple` is true. After the maximum, \"+n\" will be shown to\n * indicate the number of additional items that are selected. Set to 0 to remove the limit.\n */\n @property({ attribute: 'max-options-visible', type: Number })\n maxOptionsVisible = 3;\n\n @state() oldMaxOptionsVisible: number = 1;\n\n @property({ type: Boolean, reflect: true, attribute: true }) enableTabClose = false;\n\n @property({ type: Boolean, reflect: true, attribute: true }) descriptionSearchEnabled = false;\n\n @property({\n type: Boolean,\n reflect: true,\n attribute: true,\n converter: {\n fromAttribute: (value) => value === 'true',\n toAttribute: (value) => String(value),\n },\n }) allowHtmlLabel = true;\n\n @property({ type: Boolean, reflect: true, attribute: true }) enableDescription = false;\n\n @state() showListbox: boolean = false;\n @state() private wasShowSelectedCheckedOnClose: boolean = false;\n\n /** Gets the validity state object */\n get validity() {\n return this.valueInput?.validity;\n }\n\n /** Gets the validation message */\n get validationMessage() {\n return this.valueInput?.validationMessage ?? '';\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.initializeComponent();\n this.setupEventListeners();\n \n this.updateComplete.then(() => {\n if (this.value && this.data.length > 0) {\n this.selectionChanged();\n }\n });\n }\n\n disconnectedCallback() {\n this.removeOpenListeners();\n this.visibilityManager?.cleanup();\n // Clear any pending scroll timeout to prevent memory leaks\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = undefined;\n }\n // Clean up body append elements\n this.portalManager.cleanupPortalAppend();\n }\n\n protected updated(changedProperties: PropertyValues): void {\n if(changedProperties.has('value')) {\n this.selectionChanged();\n }\n if (changedProperties.has('autoResize')) {\n const tagsDiv = this.shadowRoot?.querySelector('.select__tags') as HTMLElement;\n if (this.autoResize && tagsDiv) {\n this.resizeController.observe(tagsDiv);\n } else if (tagsDiv) {\n this.resizeController.unobserve(tagsDiv);\n }\n }\n }\n\n private initializeComponent(): void {\n this.open = false;\n this.emit('nile-init');\n }\n\n /**\n * Get display text for an item using renderItemConfig\n */\n private getDisplayText(item: any): string {\n if (this.renderItemConfig?.getDisplayText) {\n return this.renderItemConfig.getDisplayText(item);\n }\n // Fallback to basic display\n return item?.label || item?.name || item?.toString() || '';\n }\n\n /**\n * Get value for an item using renderItemConfig or fallback to item.value\n */\n private getItemValue(item: any): string {\n if (this.renderItemConfig?.getValue) {\n return this.renderItemConfig.getValue(item);\n }\n return item?.value || item;\n }\n\n /**\n * Get description for an item using renderItemConfig or fallback to item.description\n */\n private getItemDescription(item: any): string {\n if (this.renderItemConfig?.getDescription) {\n return this.renderItemConfig.getDescription(item);\n }\n return item?.description || item || '';\n }\n\n /**\n * Get description for an item using renderItemConfig or fallback to item.description\n */\n private getItemPrefix(item: any): string {\n if (this.renderItemConfig?.getPrefix) {\n return this.renderItemConfig.getPrefix(item);\n }\n return item?.prefix || item || '';\n }\n\n /**\n * Get suffix for an item using renderItemConfig or fallback to item.suffix\n */\n private getItemSuffix(item: any): string {\n if (this.renderItemConfig?.getSuffix) {\n return this.renderItemConfig.getSuffix(item);\n }\n return item?.suffix || item || '';\n }\n\n /**\n * Get search text for an item using renderItemConfig or fallback to display text\n */\n private getSearchText(item: any): string {\n if (this.renderItemConfig?.getSearchText) {\n return this.renderItemConfig.getSearchText(item);\n }\n return this.getDisplayText(item);\n }\n\n private setupEventListeners(): void {\n this.handleDocumentFocusIn = this.handleDocumentFocusIn.bind(this);\n this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);\n this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);\n this.handleWindowError = this.handleWindowError.bind(this);\n this.handleWindowResize = this.handleWindowResize.bind(this);\n this.handleWindowScroll = this.handleWindowScroll.bind(this);\n }\n\n private addOpenListeners(): void {\n document.addEventListener('focusin', this.handleDocumentFocusIn);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n window.addEventListener('error', this.handleWindowError);\n \n if (this.portal) {\n window.addEventListener('resize', this.handleWindowResize);\n window.addEventListener('scroll', this.handleWindowScroll, true);\n }\n }\n\n private removeOpenListeners(): void {\n document.removeEventListener('focusin', this.handleDocumentFocusIn);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n window.removeEventListener('error', this.handleWindowError);\n window.removeEventListener('resize', this.handleWindowResize);\n window.removeEventListener('scroll', this.handleWindowScroll, true);\n }\n\n private handleFocus(): void {\n this.hasFocus = true;\n this.emit('nile-focus');\n }\n\n private handleBlur(): void {\n this.hasFocus = false;\n this.emit('nile-blur');\n }\n\n \n protected firstUpdated(_changed: PropertyValues) {\n this.visibilityManager = new VisibilityManager({\n host: this,\n target: this.combobox, \n enableVisibilityEffect: this.enableVisibilityEffect,\n enableTabClose: this.enableTabClose,\n isOpen: () => this.open,\n onAnchorOutOfView: () => {\n this.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'anchor-out-of-view',\n name: this.name,\n });\n },\n onDocumentHidden: () => {\n this.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'document-hidden',\n name: this.name,\n });\n },\n emit: (event, detail) => this.emit(`nile-${event}`, detail),\n });\n }\n \n \n\n\n private handleDocumentFocusIn(event: FocusEvent): void {\n if (!this.open) return; \n const path = event.composedPath(); \n const hitSelf = path.includes(this);\n const hitPopup = this.popup && path.includes(this.popup);\n const hitPortalAppend = this.portal && this.portalManager.portalContainerElement && path.includes(this.portalManager.portalContainerElement);\n\n if (!hitSelf && !hitPopup && !hitPortalAppend) {\n this.hide();\n }\n }\n\n private handleDocumentKeyDown(event: KeyboardEvent): void {\n if (this.shouldIgnoreKeyPress(event)) {\n return;\n }\n\n if (this.isEscapeKey(event)) {\n this.handleEscapeKey(event);\n }\n\n if (this.isEnterOrSpaceKey(event)) {\n this.handleEnterOrSpaceKey(event);\n }\n }\n\n private shouldIgnoreKeyPress(event: KeyboardEvent): boolean {\n const target = event.target as HTMLElement;\n const isClearButton = target.closest('.select__clear') !== null;\n const isIconButton = target.closest('nile-icon-button') !== null;\n return isClearButton || isIconButton;\n }\n\n private isEscapeKey(event: KeyboardEvent): boolean {\n return event.key === 'Escape' && this.open;\n }\n\n private handleEscapeKey(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n\n private isEnterOrSpaceKey(event: KeyboardEvent): boolean {\n return event.key === 'Enter' || event.key === ' ';\n }\n\n private handleEnterOrSpaceKey(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopImmediatePropagation();\n\n if (!this.open) {\n this.show();\n return;\n }\n\n if (!this.multiple) {\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n }\n\n private handleDocumentMouseDown = (event: MouseEvent): void => {\n if (!this.open) return; \n \n const path = event.composedPath();\n const hitSelf = path.includes(this);\n const hitPopup = this.popup && path.includes(this.popup);\n const hitPortalAppend = this.portal && this.portalManager.portalContainerElement && path.includes(this.portalManager.portalContainerElement);\n \n if (!hitSelf && !hitPopup && !hitPortalAppend) {\n this.hide();\n }\n };\n\n /**\n * This is a workaround for an error in the Lit Labs virtualizer.\n * Since there are no specific guidelines available to fix the issue,\n * we are catching only the error message related to the virtualizer.\n */\n private handleWindowError = (event: ErrorEvent): void => {\n const errorMessage = event.error?.message || event.message || '';\n if (errorMessage.includes('Cannot read properties of null (reading \\'insertBefore\\')')) {\n event.preventDefault();\n return;\n }\n };\n\n private handleWindowResize = (): void => {\n this.portalManager.updatePortalAppendPosition();\n };\n\n private handleWindowScroll = (): void => {\n this.portalManager.updatePortalAppendPosition();\n };\n\n private handleFooterClick(event: MouseEvent): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n private toggleShowSelected(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n if (this.selectedOptions?.length === 0) {\n return;\n }\n this.showSelected = !this.showSelected;\n\n if (this.showSelected) {\n this.searchValue = \"\";\n const selectedValues = Array.isArray(this.value) ? this.value : [this.value];\n this.data = this.originalOptionItems.filter((item: any) => {\n const itemValue = this.getItemValue(item);\n return selectedValues.some(val => String(val) === String(itemValue));\n });\n } else {\n this.data = [...this.originalOptionItems];\n }\n\n // Reset measured height when show selected toggles (content height may change)\n this.portalManager.resetMeasuredHeight();\n\n this.requestUpdate();\n this.repaintOptionsContainer();\n }\n\n private unSelectAll(): void {\n this.showSelected = false;\n this.value = this.multiple ? [] : '';\n this.data = [...this.originalOptionItems];\n this.selectionChanged();\n this.emit('nile-change', { value: this.value, name: this.name });\n this.emit('nile-clear', { value: this.multiple ? this.value : '', name: this.name });\n this.resetScrollPosition();\n }\n\n private handleLabelClick(): void {\n this.displayInput.focus();\n this.hide();\n }\n\n private handleComboboxMouseDown(event: MouseEvent): void {\n if (this.shouldIgnoreComboboxClick(event)) {\n return;\n }\n\n event.preventDefault();\n this.displayInput.focus({ preventScroll: true });\n this.open = !this.open;\n }\n\n private resizeController = new ResizeController(this, {\n callback: (entries: ResizeObserverEntry[]) => {\n for (const entry of entries) {\n if (entry.target.classList.contains('select__tags')) {\n this.calculateTotalWidthOfTags();\n }\n }\n }\n });\n\n private shouldIgnoreComboboxClick(event: MouseEvent): boolean {\n const path = event.composedPath();\n const isIconButton = path.some(\n el =>\n el instanceof Element && el.tagName.toLowerCase() === 'nile-icon-button'\n );\n return this.disabled || isIconButton;\n }\n\n private handleComboboxKeyDown(event: KeyboardEvent): void {\n if (this.isEnterOrSpaceKey(event)) {\n event.preventDefault();\n this.open = !this.open;\n }\n }\n\n private handleClearClick(event: MouseEvent): void {\n event.stopPropagation();\n this.clearSelection();\n }\n\n private clearSelection(): void {\n const oldValue = this.value;\n this.value = this.multiple ? [] : '';\n this.selectionChanged();\n\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n this.emit('nile-clear');\n });\n }\n\n private handleClearMouseDown(event: MouseEvent): void {\n event.stopPropagation();\n }\n\n private handleOptionClick(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n const option = target.closest('nile-option');\n\n if (this.shouldBlockValueChange(option)) {\n return;\n }\n\n const oldValue = this.value;\n this.oldValue = oldValue;\n\n if (option && !option.disabled) {\n this.handleOptionSelection(option);\n }\n }\n\n private shouldBlockValueChange(option: Element | null): boolean {\n if (this.blockValueChange && option) {\n this.emit('nile-block-change', { value: (option as any)?.value, name: this.name });\n this.hide();\n return true;\n }\n return false;\n }\n\n private handleOptionSelection(option: Element): void {\n const optionValue = (option as any).value;\n \n if (this.multiple) {\n this.toggleOptionSelection(optionValue);\n } else {\n this.setSelectedOptions(optionValue);\n }\n\n this.updateComplete.then(() =>\n this.displayInput.focus({ preventScroll: true })\n );\n\n if (this.value !== this.oldValue) {\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n });\n }\n\n if (!this.multiple) {\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n }\n\n private setSelectedOptions(optionValue: string): void {\n this.value = optionValue;\n this.selectionChanged();\n }\n\n private toggleOptionSelection(optionValue: string): void {\n const currentValues = Array.isArray(this.value) ? this.value : [];\n \n if (currentValues.includes(optionValue)) {\n this.value = currentValues.filter(v => v !== optionValue);\n } else {\n this.value = [...currentValues, optionValue];\n }\n \n this.selectionChanged();\n }\n\n private handleTagRemove(event: NileRemoveEvent, option: VirtualOption): void {\n event.stopPropagation();\n\n if (!this.disabled) {\n this.removeTagFromSelection(option);\n this.emitTagRemovalEvent(option);\n }\n }\n\n private removeTagFromSelection(option: VirtualOption): void {\n let currentValue = this.value;\n if (!Array.isArray(currentValue)) {\n currentValue = currentValue ? [currentValue] : [];\n }\n const newValue = currentValue.filter((v: string) => v !== option.value);\n this.value = newValue;\n this.selectionChanged();\n }\n\n private emitTagRemovalEvent(option: VirtualOption): void {\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n this.emit('nile-tag-remove', { value: this.value, name: this.name, removedtagvalue: option.value });\n });\n }\n\n private selectionChanged(): void {\n const itemsToSearch = this.originalOptionItems.length > 0 ? this.originalOptionItems : this.data;\n this.selectedOptions = VirtualSelectSelectionManager.createVirtualOptionsFromValues(\n this.value, \n itemsToSearch, \n this.getDisplayText.bind(this),\n this.renderItemConfig?.getValue,\n this.allowHtmlLabel\n );\n\n if (this.multiple) {\n if (this.placeholder && this.value.length === 0) {\n this.displayLabel = '';\n } else {\n this.displayLabel = this.selectedOptions.length + ' selected';\n }\n } else {\n const currentValue = Array.isArray(this.value) ? this.value[0] : this.value;\n const label = this.selectedOptions[0]?.getTextLabel();\n this.displayLabel = label ? label : currentValue ?? '';\n }\n\n this.updateValidity();\n\n if (this.selectedOptions.length === 0) {\n this.showSelected = false;\n if(this.originalOptionItems?.length > 0 && !this.searchValue) {\n this.data = [...this.originalOptionItems];\n }\n this.repaintOptionsContainer();\n }\n\n this.calculateTotalWidthOfTags();\n }\n \n\n handleSearchFocus(): void {\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleSearchBlur(): void {\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleSearchChange(e: any): void {\n this.searchValue = e.detail.value;\n if (this.portal) {\n this.portalManager.updatePortalAppendPosition();\n }\n \n this.emit('nile-search', { \n query: this.searchValue,\n name: this.name \n });\n \n if (!this.disableLocalSearch) {\n this.filterVirtualOptions(this.searchValue);\n this.repaintOptionsContainer();\n \n // Reset measured height when search changes (content height may change)\n this.portalManager.resetMeasuredHeight();\n }\n }\n \n repaintOptionsContainer() {\n this.resetScrollPosition();\n this.updateComplete.then(() => {\n const virtualized = this.shadowRoot?.querySelector('.virtualized') as HTMLElement;\n if (virtualized) {\n if (this.data.length < 5) {\n virtualized.classList.add('no-scroll');\n } else {\n virtualized.classList.remove('no-scroll');\n }\n }\n });\n }\n\n handleScroll(e: Event): void {\n if(this.showSelected) {\n return;\n }\n\n const target = e.target as HTMLElement;\n \n this.emit('nile-scroll', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name\n });\n\n if (!this.scrolling) {\n this.scrolling = true;\n this.emit('nile-scroll-start', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name\n });\n }\n\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = window.setTimeout(() => {\n if (this.scrolling) {\n this.scrolling = false;\n }\n }, 300);\n\n const isAtBottom = Math.ceil(target.scrollTop) >= Math.floor(target.scrollHeight - target.offsetHeight);\n if (isAtBottom && !this.searchValue) {\n this.emit('nile-scroll-end', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name,\n isAtBottom: true\n });\n }\n }\n\n filterVirtualOptions(searchValue: string): void {\n const result = VirtualSelectSearchManager.filterVirtualOptions(\n searchValue,\n this.originalOptionItems,\n this.data,\n this.getDisplayText.bind(this),\n this.getItemDescription.bind(this),\n this.descriptionSearchEnabled,\n this.renderItemConfig?.getSearchText\n );\n if (this.portal) {\n this.portalManager.updatePortalAppendPosition();\n this.updateComplete.then(() => {\n requestAnimationFrame(() => {\n this.resetScrollPosition();\n });\n });\n } else {\n this.resetScrollPosition();\n }\n this.data = result.filteredItems;\n this.showNoResults = result.showNoResults;\n this.showSelected = false;\n this.requestUpdate();\n }\n\n private handleInvalid(event: Event): void {\n this.formControlController.setValidity(false);\n this.formControlController.emitInvalidEvent(event);\n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\n handleDisabledChange(): void {\n if (this.disabled) {\n this.open = false;\n this.handleOpenChange();\n }\n }\n\n \n @watch('value', { waitUntilFirstUpdate: true })\n handleValueChange(): void {\n this.selectionChanged();\n this.requestUpdate();\n \n // Update body append content if it's active\n if (this.portal && this.portalManager.portalContainerElement) {\n this.portalManager.updatePortalAppendPosition();\n }\n }\n\n @watch('data', { waitUntilFirstUpdate: true })\n handleDataChange(): void {\n if (this.data.length > 0 && this.open && !this.showSelected && !this.searchValue) {\n this.originalOptionItems = [...this.data];\n }\n this.selectionChanged();\n // Show no results message when data is empty and not loading\n if (!this.optionsLoading && !this.loading && this.data.length === 0) {\n this.showNoResults = true;\n } else if (this.data.length > 0) {\n this.showNoResults = false;\n }\n this.requestUpdate();\n \n // Reset measured height when data changes (content height may change)\n this.portalManager.resetMeasuredHeight();\n \n // Update body append content if it's active\n if (this.portal && this.portalManager.portalContainerElement) {\n this.portalManager.updatePortalAppendPosition();\n }\n }\n\n @watch('renderItemConfig', { waitUntilFirstUpdate: true })\n handleRenderItemConfigChange(): void {\n if (this.value && this.data.length > 0) {\n this.selectionChanged();\n this.requestUpdate();\n }\n }\n\n @watch('optionsLoading', { waitUntilFirstUpdate: true })\n handleOptionsLoadingChange(): void {\n // Show no results message when loading stops and there are no results\n if (!this.optionsLoading && this.data.length === 0) {\n this.showNoResults = true;\n }\n this.requestUpdate();\n \n // Update body append content if it's active\n if (this.portal && this.portalManager.portalContainerElement) {\n this.portalManager.updatePortalAppendPosition();\n }\n }\n\n @watch('portal', { waitUntilFirstUpdate: true })\n handlePortalAppendChange(): void {\n if (this.open) {\n if (this.portal) {\n this.portalManager.setupPortalAppend();\n } else {\n this.portalManager.cleanupPortalAppend();\n }\n }\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange(): Promise<void> {\n if (this.open && !this.disabled) {\n this.visibilityManager?.setup();\n this.showListbox = true;\n await this.updateComplete;\n await this.handleOpen();\n \n if (this.portal) {\n this.portalManager.setupPortalAppend();\n }\n } else {\n this.visibilityManager?.cleanup();\n await this.handleClose();\n this.showListbox = false;\n \n if (this.portal) {\n this.portalManager.cleanupPortalAppend();\n }\n }\n }\n\n private async handleOpen(): Promise<void> {\n this.emit('nile-show', { value: this.value, name: this.name });\n this.addOpenListeners();\n this.showNoResults = !this.data?.length;\n\n await stopAnimations(this);\n \n // Hide popup initially to prevent flickering during positioning calculation\n // This allows content to be measured while invisible\n if (this.popup?.popup) {\n this.popup.popup.style.visibility = 'hidden';\n }\n \n this.popup.active = true;\n \n // Wait for positioning to complete before showing the popup\n await new Promise(resolve => requestAnimationFrame(resolve));\n // Wait for next frame to allow Floating UI to calculate position\n await new Promise(resolve => requestAnimationFrame(resolve));\n \n // Show popup after positioning is calculated\n if (this.popup?.popup) {\n this.popup.popup.style.visibility = '';\n }\n\n const { keyframes, options } = getAnimation(this, 'select.show', {\n dir: 'ltr',\n });\n await animateTo(this.popup.popup, keyframes, options);\n\n if (this.wasShowSelectedCheckedOnClose) {\n this.showSelected = false;\n this.data = [...this.originalOptionItems];\n this.wasShowSelectedCheckedOnClose = false;\n }\n \n this.filterVirtualOptions(\"\");\n this.resetScrollPosition();\n this.emit('nile-after-show', { value: this.value, name: this.name });\n }\n\n private async handleClose(): Promise<void> {\n this.emit('nile-hide', { value: this.value, name: this.name });\n this.removeOpenListeners();\n\n this.wasShowSelectedCheckedOnClose = this.showSelected;\n\n await stopAnimations(this);\n const { keyframes, options } = getAnimation(this, 'select.hide', {\n dir: 'ltr',\n });\n await animateTo(this.popup.popup, keyframes, options);\n this.popup.active = false;\n \n // Reset visibility style when closing\n if (this.popup?.popup) {\n this.popup.popup.style.visibility = '';\n }\n\n this.searchValue = '';\n \n // Reset measured height when popup closes (content may change on next open)\n this.portalManager.resetMeasuredHeight();\n \n this.emit('nile-after-hide', { value: this.value, name: this.name });\n }\n\n async show(): Promise<unknown> {\n if (this.open || this.disabled) {\n this.open = false;\n return undefined;\n }\n\n this.open = true;\n return waitForEvent(this, 'nile-after-show');\n }\n\n async hide(): Promise<unknown> {\n if (!this.open || this.disabled) {\n this.open = false;\n return undefined;\n }\n\n this.open = false;\n return waitForEvent(this, 'nile-after-hide');\n }\n\n checkValidity(): boolean {\n return this.valueInput.checkValidity();\n }\n\n getForm(): HTMLFormElement | null {\n return this.formControlController.getForm();\n }\n\n reportValidity(): boolean {\n return this.valueInput.reportValidity();\n }\n\n setCustomValidity(message: string): void {\n this.valueInput.setCustomValidity(message);\n this.formControlController.updateValidity();\n }\n\n focus(options?: FocusOptions): void {\n this.displayInput.focus(options);\n }\n\n blur(): void {\n this.displayInput.blur();\n }\n\n onInputChange(event: Event): void {\n event.stopPropagation();\n }\n\n render(): TemplateResult {\n const hasLabelSlot = this.hasSlotController.test('label');\n const hasHelpTextSlot = this.hasSlotController.test('help-text');\n const hasLabelSuffixSlot = this.hasSlotController.test('label-suffix');\n const hasCustomSelect = this.hasSlotController.test('custom-select');\n const hasLabel = this.label ? true : !!hasLabelSlot;\n const hasClearIcon =\n this.clearable && !this.disabled && this.value.length > 0;\n const isPlaceholderVisible = !!this.placeholder && this.value.length === 0;\n const hasHelpText = !!this.helpText;\n const hasErrorMessage = !!this.errorMessage;\n\n return html`\n <div\n part=\"form-control\"\n class=${classMap({\n 'form-control': true,\n 'form-control--small': this.size === 'small',\n 'form-control--medium': this.size === 'medium',\n 'form-control--large': this.size === 'large',\n 'form-control--has-label': hasLabel,\n 'form-control--has-help-text': hasHelpText,\n })}\n >\n ${this.renderLabel(hasLabel, hasLabelSuffixSlot)}\n ${this.renderFormControlInput(hasCustomSelect, hasClearIcon, isPlaceholderVisible, hasHelpText, hasErrorMessage)}\n </div>\n `;\n }\n\n private renderLabel(hasLabel: boolean, hasLabelSuffixSlot: boolean): TemplateResult {\n return html`\n <label\n id=\"label\"\n part=\"form-control-label\"\n class=\"form-control__label\"\n aria-hidden=${hasLabel ? 'false' : 'true'}\n @click=${this.handleLabelClick}\n >\n <slot name=\"label\">${this.label}</slot>\n </label>\n\n ${hasLabelSuffixSlot ? html` <slot name=\"label-suffix\"></slot> ` : ``}\n `;\n }\n\n private renderFormControlInput(\n hasCustomSelect: boolean, \n hasClearIcon: boolean, \n isPlaceholderVisible: boolean, \n hasHelpText: boolean, \n hasErrorMessage: boolean\n ): TemplateResult {\n return html`\n <div part=\"form-control-input\" class=\"form-control-input\">\n ${this.renderPopup(hasCustomSelect, hasClearIcon, isPlaceholderVisible)}\n ${this.renderHelpText(hasHelpText, hasErrorMessage)}\n </div>\n `;\n }\n\n private renderPopup(hasCustomSelect: boolean, hasClearIcon: boolean, isPlaceholderVisible: boolean): TemplateResult {\n return html`\n <nile-popup\n class=${classMap({\n select: true,\n 'select--warning': this.warning,\n 'select--error': this.error,\n 'select--success': this.success,\n 'select--standard': true,\n 'select--filled': this.filled,\n 'select--pill': this.pill,\n 'select--open': this.open,\n 'select--disabled': this.disabled,\n 'select--multiple': this.multiple,\n 'select--focused': this.hasFocus,\n 'select--placeholder-visible': isPlaceholderVisible,\n 'select--top': this.placement === 'top',\n 'select--bottom': this.placement === 'bottom',\n 'select--small': this.size === 'small',\n 'select--medium': this.size === 'medium',\n 'select--large': this.size === 'large',\n })}\n placement=${this.placement}\n strategy=${this.portal ? 'fixed' : (this.hoist ? 'fixed' : 'absolute')}\n distance=\"6\"\n ?flip=${!this.portal}\n ?shift=${!this.portal}\n sync=${ifDefined(!this.noWidthSync ? 'width' : undefined)}\n auto-size=\"vertical\"\n auto-size-padding=\"10\"\n exportparts=\"tag__content\"\n >\n ${this.renderCustomSelect(hasCustomSelect)}\n ${this.renderCombobox(hasCustomSelect, hasClearIcon)}\n ${this.showListbox ? this.renderListbox() : html``}\n </nile-popup>\n `;\n }\n\n private renderCustomSelect(hasCustomSelect: boolean): TemplateResult {\n return hasCustomSelect\n ? html`<slot\n slot=\"anchor\"\n name=\"custom-select\"\n class=\"custom-select\"\n @keydown=${this.handleComboboxKeyDown}\n @mousedown=${this.handleComboboxMouseDown}\n ></slot>`\n : html``;\n }\n\n private renderCombobox(hasCustomSelect: boolean, hasClearIcon: boolean): TemplateResult {\n return html`\n <div\n part=\"combobox\"\n class=${classMap({\n select__combobox: true,\n 'select__hide-default': hasCustomSelect,\n })}\n slot=\"anchor\"\n @keydown=${this.handleComboboxKeyDown}\n @mousedown=${this.handleComboboxMouseDown}\n >\n ${this.renderPrefix()}\n ${this.renderDisplayInput()}\n ${this.renderTags()}\n ${this.renderValueInput()}\n ${this.renderClearButton(hasClearIcon)}\n ${this.renderSuffix()}\n ${this.renderExpandIcon()}\n </div>\n `;\n }\n\n private renderPrefix(): TemplateResult {\n return html`\n <slot\n part=\"prefix\"\n name=\"prefix\"\n class=${classMap({\n select__prefix: true,\n multiple: this.multiple,\n })}\n ></slot>\n `;\n }\n\n private renderDisplayInput(): TemplateResult {\n return html`\n <input\n part=\"display-input\"\n class=\"select__display-input\"\n type=\"text\"\n placeholder=${this.placeholder}\n .disabled=${this.disabled}\n .value=${this.displayLabel}\n autocomplete=\"off\"\n spellcheck=\"false\"\n autocapitalize=\"off\"\n readonly\n aria-controls=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n aria-labelledby=\"label\"\n aria-disabled=${this.disabled ? 'true' : 'false'}\n aria-describedby=\"help-text\"\n role=\"combobox\"\n tabindex=\"0\"\n />\n `;\n }\n\n private renderTags(): TemplateResult {\n return this.multiple\n ? html`\n <div part=\"tags\" class=\"select__tags\">\n ${this.selectedOptions.map((option, index) => {\n if (\n index < this.maxOptionsVisible ||\n this.maxOptionsVisible <= 0\n ) {\n const classes = {\n select__invisible:\n index + 1 > this.oldMaxOptionsVisible &&\n this.maxOptionsVisible === Infinity,\n };\n return html`\n <nile-tag\n class=${classMap(classes)}\n part=\"tag\"\n exportparts=\"\n base:tag__base,\n content:tag__content,\n remove-button:tag__remove-button,\n remove-button__base:tag__remove-button__base\n \"\n ?pill=${this.pill}\n size=${this.size}\n removable\n @nile-remove=${(event: NileRemoveEvent) =>\n this.handleTagRemove(event, option)}\n >\n ${option.getTextLabel()}\n </nile-tag>\n `;\n } else if (index === this.maxOptionsVisible) {\n return html`\n <span class=\"select__tags-count\"\n >+${this.selectedOptions.length - index} More\n </span>\n `;\n } else {\n return null;\n }\n })}\n </div>\n `\n : html``;\n }\n\n private renderValueInput(): TemplateResult {\n return html`\n <input\n class=\"select__value-input\"\n type=\"text\"\n ?disabled=${this.disabled}\n ?required=${this.required}\n .value=${Array.isArray(this.value)\n ? this.value.join(', ')\n : this.value}\n tabindex=\"-1\"\n aria-hidden=\"true\"\n @focus=${() => this.focus()}\n @invalid=${this.handleInvalid}\n />\n `;\n }\n\n private renderClearButton(hasClearIcon: boolean): TemplateResult {\n return hasClearIcon\n ? html`\n <button\n part=\"clear-button\"\n class=\"select__clear\"\n type=\"button\"\n aria-label=\"clearEntry\"\n @mousedown=${this.handleClearMouseDown}\n @click=${this.handleClearClick}\n tabindex=\"-1\"\n >\n <slot name=\"clear-icon\">\n <nile-icon name=\"var(--nile-icon-close, var(--ng-icon-x-close))\" size=\"var(--nile-height-14px, var(--ng-height-16px))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" library=\"system\" color=\"var(--nile-colors-dark-500, var(--ng-colors-fg-quaternary-400))\"></nile-icon>\n </slot>\n </button>\n `\n : html``;\n }\n\n private renderSuffix(): TemplateResult {\n return html`\n <slot\n part=\"suffix\"\n name=\"suffix\"\n class=${classMap({\n select__suffix: true,\n })}\n ></slot>\n `;\n }\n\n private renderExpandIcon(): TemplateResult {\n return html`\n <slot\n name=\"expand-icon\"\n part=\"expand-icon\"\n class=\"select__expand-icon\"\n >\n <nile-icon library=\"system\" name=\"var(--nile-icon-arrow-down, var(--ng-icon-chevron-down))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" color=\"var(--nile-colors-dark-500, var(--ng-colors-fg-quaternary-400))\"></nile-icon>\n </slot>\n `;\n }\n\n private renderListbox(): TemplateResult {\n return html`\n <div\n id=\"listbox\"\n role=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-multiselectable=${this.multiple ? 'true' : 'false'}\n aria-labelledby=\"label\"\n part=\"listbox\"\n class=\"select__listbox ${this.searchEnabled\n ? 'select__search-enabled '\n : ''} ${this.portal ? 'select__portal-append-hidden' : ''}\"\n tabindex=\"-1\"\n @mouseup=${this.handleOptionClick}\n style=${this.portal ? 'display: none;' : ''}\n >\n ${this.renderSearch()}\n ${this.renderLoader()}\n ${this.getVirtualizedContent()}\n ${this.renderFooter()}\n </div>\n `;\n }\n\n private renderSearch(): TemplateResult {\n return this.searchEnabled\n ? html`\n <div part=\"search\" class=\"select__search\">\n <nile-input\n size=\"small\"\n clearable\n .value=${this.searchValue}\n placeholder=\"${this.internalSearchPlaceHolder}\"\n @nile-input=${this.handleSearchChange}\n @nile-focus=${this.handleSearchFocus}\n @nile-change=\"${this.onInputChange}\"\n >\n <nile-icon name=\"var(--nile-icon-search, var(--ng-icon-search-lg))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" slot=\"suffix\"> </nile-icon>\n </nile-input>\n </div>\n `\n : html``;\n }\n\n private renderLoader(): TemplateResult {\n if (this.loading) {\n return html`\n <span part=\"loader\" class=\"virtual-select-loader\">\n <nile-loader size=\"sm\"></nile-loader>\n </span>\n `;\n }\n \n if (this.optionsLoading) {\n return html`\n <span part=\"loader\" class=\"select__loader\">\n <nile-icon\n class=\"select__loader--icon\"\n name=\"button-loading-blue\"\n ></nile-icon>\n </span>\n `;\n }\n \n return html``;\n }\n\n private renderFooter(): TemplateResult {\n return this.multiple\n ? html`\n <div\n part=\"footer\"\n class=\"select__footer ${this.loading ? 'loading' : ''}\"\n @click=\"${this.handleFooterClick}\"\n >\n <span\n @click=\"${this.toggleShowSelected}\"\n style=\"cursor: pointer;\"\n >\n <nile-checkbox\n ?disabled=\"${this.selectedOptions.length === 0}\"\n ?checked=\"${this.showSelected}\"\n >\n Show Selected</nile-checkbox\n >\n </span>\n ${this.selectedOptions.length !== 0\n ? html`\n <span\n class=\"select__clear\"\n @click=\"${this.unSelectAll}\"\n >\n Clear All\n </span>\n `\n : ``}\n </div>\n `\n : html``;\n }\n\n private renderHelpText(hasHelpText: boolean, hasErrorMessage: boolean): TemplateResult {\n return html`\n ${hasHelpText\n ? html` <nile-form-help-text>${this.helpText}</nile-form-help-text> `\n : ``}\n ${hasErrorMessage\n ? html`\n <nile-form-error-message\n >${this.errorMessage}</nile-form-error-message\n >\n `\n : ``}\n `;\n }\n\n getVirtualizedContent(): TemplateResult {\n return VirtualSelectRenderer.getVirtualizedContent(\n this.data,\n this.searchEnabled,\n this.getDisplayText.bind(this),\n this.value,\n this.multiple,\n this.renderItemConfig?.getDisplayText,\n this.renderItemConfig?.getValue,\n this.renderItemConfig?.getDescription,\n this.renderItemConfig?.getPrefix,\n this.renderItemConfig?.getSuffix,\n this.showNoResults,\n this.noResultsMessage,\n this.optionsLoading || this.loading,\n this.handleScroll.bind(this),\n this.allowHtmlLabel,\n this.enableDescription\n );\n }\n\n nileInput(value: any): void {\n this.emit('nile-input', value);\n }\n\n nileChange(value: any): void {\n this.emit('nile-change', value);\n }\n\n private updateValidity(): void {\n this.updateComplete.then(() => {\n this.formControlController.updateValidity();\n });\n }\n\n private calculateWidthOfSelectTagsDiv(): number | null {\n if (this.shadowRoot) {\n const selectTagsDiv = this.shadowRoot.querySelector('.select__tags') as HTMLElement;\n if (selectTagsDiv) {\n const width = selectTagsDiv.offsetWidth;\n return width - 70;\n }\n }\n return null;\n }\n\n private calculateTotalWidthOfTags(): void {\n if (this.maxOptionsVisible !== Infinity) {\n this.oldMaxOptionsVisible = this.maxOptionsVisible;\n }\n\n this.maxOptionsVisible = Infinity;\n setTimeout(() => {\n let widths: number[] = [];\n if (this.shadowRoot) {\n const tags = this.shadowRoot.querySelectorAll('nile-tag');\n tags.forEach(tag => {\n if (tag instanceof HTMLElement) {\n widths.push(tag.offsetWidth);\n }\n });\n }\n if (this.value.length !== widths.length) {\n return;\n }\n\n let sum = widths.reduce(\n (accumulator, currentValue) => accumulator + currentValue,\n 0\n );\n const widthOfSelectTagsDiv = this.calculateWidthOfSelectTagsDiv();\n if (!widthOfSelectTagsDiv) {\n return;\n }\n\n let summ = 0;\n let lastindex = 0;\n\n for (let i = 0; i < widths.length; i++) {\n summ += widths[i];\n\n if (summ > widthOfSelectTagsDiv) {\n lastindex = i;\n break;\n }\n }\n this.maxOptionsVisible = lastindex;\n }, 1);\n }\n\n private async resetScrollPosition(): Promise<void> {\n await this.portalManager.resetScrollPosition();\n }\n}\n\nsetDefaultAnimation('select.show', {\n keyframes: [\n { opacity: 0, scale: 0.9 },\n { opacity: 1, scale: 1 },\n ],\n options: { duration: 100, easing: 'ease' },\n});\n\nsetDefaultAnimation('select.hide', {\n keyframes: [\n { opacity: 1, scale: 1 },\n { opacity: 0, scale: 0.9 },\n ],\n options: { duration: 100, easing: 'ease' },\n});\n\nexport default NileVirtualSelect;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-virtual-select': NileVirtualSelect;\n }\n}\n\n"],"names":["h","i","this","_$AN","o","_$AM","r","n","t","arguments","length","undefined","e","_$AH","size","Array","isArray","s","setters","_tslib","_iterator","_createForOfIteratorHelper","_step","done","_$AO","err","f","_n","Set","has","add","c","type","CHILD","_$AP","_$AQ","A","super","_this","_inherits","_k","_createClass","key","value","_$AT","isConnected","_$AU","_this$reconnected","_this$disconnected","reconnected","disconnected","setValue","strings","_$Ct","_$AI","_$Ci","_export","q","target","config","callback","skipInitial","l","window","ResizeObserver","u","handleChanges","requestUpdate","addController","console","warn","hostConnected","_iterator2","_step2","observe","hostDisconnected","disconnect","_hostUpdated","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context2","prev","next","stop","hostUpdated","unobserve","_A","_class","observing","_this3","render","update","controller","part","element","_this$controller2","NileVirtualSelect","F","constructor","formControlController","FormControlController","assumeInteractionOn","hasSlotController","HasSlotController","portalManager","PortalManager","hasFocus","displayLabel","selectedOptions","oldValue","scrolling","name","data","originalOptionItems","defaultValue","placeholder","autoResize","searchValue","searchEnabled","enableVisibilityEffect","internalSearchPlaceHolder","disableLocalSearch","optionsLoading","loading","multiple","helpText","errorMessage","warning","error","success","disabled","clearable","open","hoist","filled","pill","label","placement","form","required","showNoResults","noResultsMessage","showSelected","blockValueChange","noWidthSync","portal","maxOptionsVisible","oldMaxOptionsVisible","enableTabClose","descriptionSearchEnabled","allowHtmlLabel","enableDescription","showListbox","wasShowSelectedCheckedOnClose","handleDocumentMouseDown","event","path","composedPath","hitSelf","includes","hitPopup","popup","hitPortalAppend","portalContainerElement","hide","handleWindowError","message","preventDefault","handleWindowResize","updatePortalAppendPosition","handleWindowScroll","resizeController","ResizeController","entries","_iterator3","_step3","entry","classList","contains","calculateTotalWidthOfTags","_this4","_u","get","_this$valueInput","valueInput","validity","_this$valueInput$vali","_this$valueInput2","validationMessage","connectedCallback","initializeComponent","setupEventListeners","updateComplete","then","selectionChanged","disconnectedCallback","removeOpenListeners","visibilityManager","cleanup","scrollTimeout","clearTimeout","cleanupPortalAppend","updated","changedProperties","_this$shadowRoot","tagsDiv","shadowRoot","querySelector","emit","getDisplayText","item","_this$renderItemConfi","renderItemConfig","toString","getItemValue","_this$renderItemConfi2","getValue","getItemDescription","getDescription","description","getItemPrefix","_this$renderItemConfi4","getPrefix","prefix","getItemSuffix","getSuffix","suffix","getSearchText","_this$renderItemConfi6","handleDocumentFocusIn","bind","handleDocumentKeyDown","addOpenListeners","document","addEventListener","removeEventListener","handleFocus","handleBlur","firstUpdated","_changed","VisibilityManager","host","combobox","isOpen","onAnchorOutOfView","visible","reason","onDocumentHidden","detail","shouldIgnoreKeyPress","isEscapeKey","handleEscapeKey","isEnterOrSpaceKey","handleEnterOrSpaceKey","isClearButton","closest","isIconButton","stopPropagation","displayInput","focus","preventScroll","stopImmediatePropagation","show","handleFooterClick","toggleShowSelected","_this$selectedOptions","_this7","selectedValues","filter","itemValue","some","val","String","resetMeasuredHeight","repaintOptionsContainer","unSelectAll","_toConsumableArray","resetScrollPosition","handleLabelClick","handleComboboxMouseDown","shouldIgnoreComboboxClick","el","Element","tagName","toLowerCase","handleComboboxKeyDown","handleClearClick","clearSelection","nileInput","nileChange","handleClearMouseDown","handleOptionClick","option","shouldBlockValueChange","handleOptionSelection","optionValue","toggleOptionSelection","setSelectedOptions","currentValues","v","handleTagRemove","removeTagFromSelection","emitTagRemovalEvent","currentValue","newValue","removedtagvalue","itemsToSearch","VirtualSelectSelectionManager","createVirtualOptionsFromValues","_this$selectedOptions2","getTextLabel","updateValidity","handleSearchFocus","handleSearchBlur","handleSearchChange","query","filterVirtualOptions","_this11$shadowRoot","virtualized","remove","handleScroll","_this12","scrollTop","scrollLeft","setTimeout","Math","ceil","floor","scrollHeight","offsetHeight","isAtBottom","result","VirtualSelectSearchManager","requestAnimationFrame","filteredItems","handleInvalid","setValidity","emitInvalidEvent","handleDisabledChange","handleOpenChange","handleValueChange","handleDataChange","handleRenderItemConfigChange","handleOptionsLoadingChange","handlePortalAppendChange","setupPortalAppend","_handleOpenChange","_callee2","_this$visibilityManag2","_this$visibilityManag3","_callee2$","_context3","setup","handleOpen","handleClose","_callee3","_this$data","_this$popup","_this$popup2","_g","_callee3$","_context4","stopAnimations","style","visibility","active","Promise","resolve","getAnimation","dir","animateTo","keyframes","options","_callee4","_this$popup3","_g2","_callee4$","_context5","_callee5","_callee5$","_context6","waitForEvent","_callee6","_callee6$","_context7","abrupt","checkValidity","getForm","reportValidity","setCustomValidity","blur","onInputChange","hasLabelSlot","test","hasLabelSuffixSlot","hasCustomSelect","hasLabel","hasClearIcon","isPlaceholderVisible","hasHelpText","hasErrorMessage","html","_templateObject","_taggedTemplateLiteral","classMap","renderLabel","renderFormControlInput","_templateObject2","_templateObject3","_templateObject4","renderPopup","renderHelpText","_templateObject5","select","ifDefined","renderCustomSelect","renderCombobox","renderListbox","_templateObject6","_templateObject7","_templateObject8","_templateObject9","select__combobox","renderPrefix","renderDisplayInput","renderTags","renderValueInput","renderClearButton","renderSuffix","renderExpandIcon","_templateObject10","select__prefix","_templateObject11","_templateObject12","map","index","classes","select__invisible","Infinity","_templateObject13","_templateObject14","_templateObject15","_templateObject16","join","_templateObject17","_templateObject18","_templateObject19","select__suffix","_templateObject20","_templateObject21","renderSearch","renderLoader","getVirtualizedContent","renderFooter","_templateObject22","_templateObject23","_templateObject24","_templateObject25","_templateObject26","_templateObject27","_templateObject28","_templateObject29","_templateObject30","_templateObject31","_templateObject32","VirtualSelectRenderer","calculateWidthOfSelectTagsDiv","selectTagsDiv","offsetWidth","widths","querySelectorAll","forEach","tag","HTMLElement","push","widthOfSelectTagsDiv","summ","lastindex","_resetScrollPosition","_callee7","_callee7$","_context8","NileElement","styles","__decorate","prototype","state","property","converter","fromAttribute","split","toAttribute","Boolean","reflect","attribute","Number","watch","waitUntilFirstUpdate","customElement","setDefaultAnimation","opacity","scale","duration","easing"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|
|
1
|
+
{"version":3,"file":"nile-virtual-select.cjs.js","sources":["../../../../node_modules/lit-html/async-directive.js","../../../../node_modules/lit-html/directive-helpers.js","../../../../node_modules/@lit-labs/observers/resize-controller.js","../../../src/nile-virtual-select/nile-virtual-select.ts"],"sourcesContent":["import{isSingleExpression as i}from\"./directive-helpers.js\";import{Directive as t,PartType as e}from\"./directive.js\";export{directive}from\"./directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=(i,t)=>{const e=i._$AN;if(void 0===e)return!1;for(const i of e)i._$AO?.(t,!1),s(i,t);return!0},o=i=>{let t,e;do{if(void 0===(t=i._$AM))break;e=t._$AN,e.delete(i),i=t}while(0===e?.size)},r=i=>{for(let t;t=i._$AM;i=t){let e=t._$AN;if(void 0===e)t._$AN=e=new Set;else if(e.has(i))break;e.add(i),c(t)}};function h(i){void 0!==this._$AN?(o(this),this._$AM=i,r(this)):this._$AM=i}function n(i,t=!1,e=0){const r=this._$AH,h=this._$AN;if(void 0!==h&&0!==h.size)if(t)if(Array.isArray(r))for(let i=e;i<r.length;i++)s(r[i],!1),o(r[i]);else null!=r&&(s(r,!1),o(r));else s(this,i)}const c=i=>{i.type==e.CHILD&&(i._$AP??=n,i._$AQ??=h)};class f extends t{constructor(){super(...arguments),this._$AN=void 0}_$AT(i,t,e){super._$AT(i,t,e),r(this),this.isConnected=i._$AU}_$AO(i,t=!0){i!==this.isConnected&&(this.isConnected=i,i?this.reconnected?.():this.disconnected?.()),t&&(s(this,i),o(this))}setValue(t){if(i(this._$Ct))this._$Ct._$AI(t,this);else{const i=[...this._$Ct._$AH];i[this._$Ci]=t,this._$Ct._$AI(i,this,0)}}disconnected(){}reconnected(){}}export{f as AsyncDirective,t as Directive,e as PartType};\n//# sourceMappingURL=async-directive.js.map\n","import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:t}=o,i=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,n={HTML:1,SVG:2,MATHML:3},e=(o,t)=>void 0===t?void 0!==o?._$litType$:o?._$litType$===t,l=o=>null!=o?._$litType$?.h,c=o=>void 0!==o?._$litDirective$,d=o=>o?._$litDirective$,f=o=>void 0===o.strings,s=()=>document.createComment(\"\"),r=(o,i,n)=>{const e=o._$AA.parentNode,l=void 0===i?o._$AB:i._$AA;if(void 0===n){const i=e.insertBefore(s(),l),c=e.insertBefore(s(),l);n=new t(i,c,o,o.options)}else{const t=n._$AB.nextSibling,i=n._$AM,c=i!==o;if(c){let t;n._$AQ?.(o),n._$AM=o,void 0!==n._$AP&&(t=o._$AU)!==i._$AU&&n._$AP(t)}if(t!==l||c){let o=n._$AA;for(;o!==t;){const t=o.nextSibling;e.insertBefore(o,l),o=t}}}return n},v=(o,t,i=o)=>(o._$AI(t,i),o),u={},m=(o,t=u)=>o._$AH=t,p=o=>o._$AH,M=o=>{o._$AP?.(!1,!0);let t=o._$AA;const i=o._$AB.nextSibling;for(;t!==i;){const o=t.nextSibling;t.remove(),t=o}},h=o=>{o._$AR()};export{n as TemplateResultType,h as clearPart,p as getCommittedValue,d as getDirectiveClass,r as insertPart,l as isCompiledTemplateResult,c as isDirectiveResult,i as isPrimitive,f as isSingleExpression,e as isTemplateResult,M as removePart,v as setChildPartValue,m as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","import{AsyncDirective as t}from\"lit-html/async-directive.js\";import{directive as s}from\"lit-html/directive.js\";import{isServer as i}from\"lit-html/is-server.js\";class h{constructor(t,{target:s,config:h,callback:e,skipInitial:r}){this.t=new Set,this.o=!1,this.i=!1,this.h=t,null!==s&&this.t.add(s??t),this.l=h,this.o=r??this.o,this.callback=e,i||(window.ResizeObserver?(this.u=new ResizeObserver(t=>{this.handleChanges(t),this.h.requestUpdate()}),t.addController(this)):console.warn(\"ResizeController error: browser does not support ResizeObserver.\"))}handleChanges(t){this.value=this.callback?.(t,this.u)}hostConnected(){for(const t of this.t)this.observe(t)}hostDisconnected(){this.disconnect()}async hostUpdated(){!this.o&&this.i&&this.handleChanges([]),this.i=!1}observe(t){this.t.add(t),this.u.observe(t,this.l),this.i=!0,this.h.requestUpdate()}unobserve(t){this.t.delete(t),this.u.unobserve(t)}disconnect(){this.u.disconnect()}target(t){return e(this,t)}}const e=s(class extends t{constructor(){super(...arguments),this.observing=!1}render(t,s){}update(t,[s,i]){this.controller=s,this.part=t,this.observe=i,!1===i?(s.unobserve(t.element),this.observing=!1):!1===this.observing&&(s.observe(t.element),this.observing=!0)}disconnected(){this.controller?.unobserve(this.part.element),this.observing=!1}reconnected(){!1!==this.observe&&!1===this.observing&&(this.controller?.observe(this.part.element),this.observing=!0)}});export{h as ResizeController};\n//# sourceMappingURL=resize-controller.js.map\n"," /**\n * Copyright Aquera Inc 2025\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n import {\n LitElement,\n html,\n} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-virtual-select.css';\n\nimport '../nile-icon';\nimport '../nile-popup/nile-popup';\nimport '../nile-tag/nile-tag';\nimport '../nile-checkbox/nile-checkbox';\nimport '../nile-loader/nile-loader';\nimport { animateTo, stopAnimations } from '../internal/animate';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query, state } from 'lit/decorators.js';\nimport { defaultValue } from '../internal/default-value';\nimport { FormControlController } from '../internal/form';\nimport {\n getAnimation,\n setDefaultAnimation,\n} from '../utilities/animation-registry';\nimport { HasSlotController } from '../internal/slot';\nimport { waitForEvent } from '../internal/event';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';\nimport type { NileFormControl } from '../internal/nile-element';\nimport type NileOption from '../nile-option/nile-option';\nimport type NilePopup from '../nile-popup/nile-popup';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport type { VirtualOption, NileRemoveEvent, RenderItemConfig } from './types.js';\nimport { VirtualSelectSelectionManager } from './selection-manager.js';\nimport { VirtualSelectSearchManager } from './search-manager.js';\nimport { VirtualSelectRenderer } from './renderer.js';\nimport { PortalManager } from './portal-manager.js';\nimport { ResizeController } from '@lit-labs/observers/resize-controller.js';\nimport { VisibilityManager } from '../utilities/visibility-manager.js';\n\n/**\n * Nile Virtual Select component.\n *\n * @tag nile-virtual-select\n *\n */\n\n/**\n * @summary Virtual select component for handling large datasets with virtual scrolling.\n * @status stable\n * @since 2.0\n *\n * @dependency nile-icon\n * @dependency nile-popup\n * @dependency nile-tag\n * @dependency nile-checkbox\n *\n * @slot label - The input's label. Alternatively, you can use the `label` attribute.\n * @slot prefix - Used to prepend a presentational icon or similar element to the combobox.\n * @slot clear-icon - An icon to use in lieu of the default clear icon.\n * @slot expand-icon - The icon to show when the control is expanded and collapsed.\n * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n *\n * @event nile-change - Emitted when the control's value changes.\n * @event nile-clear - Emitted when the control's value is cleared.\n * @event nile-input - Emitted when the control receives input.\n * @event nile-focus - Emitted when the control gains focus.\n * @event nile-blur - Emitted when the control loses focus.\n * @event nile-show - Emitted when the select's menu opens.\n * @event nile-after-show - Emitted after the select's menu opens and all animations are complete.\n * @event nile-hide - Emitted when the select's menu closes.\n * @event nile-after-hide - Emitted after the select's menu closes and all animations are complete.\n * @event nile-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n * @event nile-search - Emitted when the user types in the search input. The event payload includes the search query for backend search functionality.\n * @event nile-scroll - Emitted when the user scrolls within the virtualized container. The event payload includes scroll position information.\n * @event nile-scroll-start - Emitted when the user starts scrolling within the virtualized container.\n * @event nile-scroll-end - Emitted when the user stops scrolling and reaches the bottom of the virtualized container (debounced).\n *\n * @csspart form-control - The form control that wraps the label, input, and help text.\n * @csspart form-control-label - The label's wrapper.\n * @csspart form-control-input - The select's wrapper.\n * @csspart form-control-help-text - The help text's wrapper.\n * @csspart combobox - The container the wraps the prefix, combobox, clear icon, and expand button.\n * @csspart prefix - The container that wraps the prefix slot.\n * @csspart display-input - The element that displays the selected option's label, an `<input>` element.\n * @csspart listbox - The listbox container where options are slotted.\n * @csspart tags - The container that houses option tags when `multiple` is used.\n * @csspart tag - The individual tags that represent each multiselect option.\n * @csspart clear-button - The clear button.\n * @csspart expand-icon - The container that wraps the expand icon.\n * @csspart footer - The footer container with show selected and clear all options.\n */\n\n@customElement('nile-virtual-select')\nexport class NileVirtualSelect extends NileElement implements NileFormControl {\n static styles: CSSResultGroup = styles;\n\n private readonly formControlController = new FormControlController(this, {\n assumeInteractionOn: ['nile-blur', 'nile-input'],\n });\n private readonly hasSlotController = new HasSlotController(\n this,\n 'help-text',\n 'label'\n );\n private readonly portalManager = new PortalManager(this);\n\n @query('.select') popup: NilePopup;\n @query('.select__combobox') combobox: HTMLElement;\n @query('.select__display-input') displayInput: HTMLInputElement;\n @query('.select__value-input') valueInput: HTMLInputElement;\n @query('.virtualized') virtualizedContainer: HTMLElement;\n\n @state() private hasFocus = false;\n @state() displayLabel = '';\n @state() selectedOptions: VirtualOption[] = [];\n @state() oldValue: string | string[] = '';\n \n private scrollTimeout: number | undefined;\n private scrolling = false;\n private visibilityManager?: VisibilityManager;\n\n /** The name of the select, submitted as a name/value pair with form data. */\n @property() name = '';\n\n /** Array of all option items for virtual scrolling */\n @property({ type: Array }) data: any = [];\n\n /** Original unfiltered option items for search functionality */\n @state() private originalOptionItems: any = [];\n\n /**\n * The current value of the select. When `multiple` is enabled, the value will be an array of selected values.\n */\n @property({\n converter: {\n fromAttribute: (value: string) => value.split(' '),\n toAttribute: (value: string[]) => value.join(' '),\n },\n })\n value: string | string[] = '';\n\n /** The default value of the form control. Primarily used for resetting the form control. */\n @defaultValue() defaultValue: string | string[] = '';\n\n /** The select's size. */\n @property() size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Placeholder text to show as a hint when the select is empty. */\n @property() placeholder = 'Select...';\n\n /** Enable automatic resizing of tags area */\n @property({ type: Boolean }) autoResize = false;\n\n /** Current search value */\n @state() searchValue: string = '';\n\n /** Enable search functionality */\n @property({ type: Boolean, reflect: true }) searchEnabled = false;\n\n @property({ type: Boolean, reflect: true, attribute: true }) enableVisibilityEffect = false;\n\n /** Search input placeholder */\n @property({attribute:'internal-search-placeholder'}) internalSearchPlaceHolder = 'Search...';\n\n /** Disable local search filtering */\n @property({ type: Boolean, reflect: true }) disableLocalSearch = false;\n\n /** Show loading state */\n @property({ type: Boolean, reflect: true }) optionsLoading = false;\n\n /** Show loading state using nile-loader */\n @property({ type: Boolean, reflect: true, attribute: true }) loading = false;\n\n /** Allows more than one option to be selected. */\n @property({ type: Boolean, reflect: true }) multiple = false;\n\n /** Help text */\n @property({ attribute: 'help-text', reflect: true }) helpText = '';\n\n /** Error message */\n @property({ attribute: 'error-message', reflect: true }) errorMessage = '';\n\n /** Sets the input to a warning state */\n @property({ type: Boolean }) warning = false;\n\n /** Sets the input to an error state */\n @property({ type: Boolean }) error = false;\n\n /** Sets the input to a success state */\n @property({ type: Boolean }) success = false;\n\n /** Disables the select control. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Adds a clear button when the select is not empty. */\n @property({ type: Boolean, reflect: true }) clearable = false;\n\n /** The select's open state. */\n @property({ type: Boolean, reflect: true }) open = false;\n\n /**\n * Enable this option to prevent the listbox from being clipped when the component is placed inside a container with\n * `overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.\n */\n @property({ type: Boolean }) hoist = false;\n\n /** Draws a filled select. */\n @property({ type: Boolean, reflect: true }) filled = false;\n\n /** Draws a pill-style select with rounded edges. */\n @property({ type: Boolean, reflect: true }) pill = false;\n\n /** The select's label. If you need to display HTML, use the `label` slot instead. */\n @property() label = '';\n\n /**\n * The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox\n * inside of the viewport.\n */\n @property({ reflect: true }) placement: 'top' | 'bottom' = 'bottom';\n\n /**\n * By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\n * to place the form control outside of a form and associate it with the form that has this `id`. The form must be in\n * the same document or shadow root for this to work.\n */\n @property({ reflect: true }) form = '';\n\n /** The select's required attribute. */\n @property({ type: Boolean, reflect: true }) required = false;\n\n /** Show no results message */\n @property({ type: Boolean }) showNoResults: boolean = false;\n\n /** No results message */\n @property({ type: String }) noResultsMessage: string = 'No results found';\n\n /** Show selected options only */\n @property({ type: Boolean }) showSelected = false;\n\n /** Enhanced configuration for rendering items with support for display text, value, and search text */\n @property({ attribute:false}) renderItemConfig?: RenderItemConfig;\n\n /** Block value change events */\n @property({ type: Boolean, reflect: true }) blockValueChange = false;\n\n /** Disable width synchronization */\n @property({ type: Boolean, reflect: true }) noWidthSync = false;\n\n /** \n * When true, the listbox will be appended to the document body instead of the parent container.\n * This is useful when the parent has overflow: hidden, clip-path, or transform applied.\n */\n @property({ type: Boolean, reflect: true }) portal = false;\n\n /**\n * The maximum number of selected options to show when `multiple` is true. After the maximum, \"+n\" will be shown to\n * indicate the number of additional items that are selected. Set to 0 to remove the limit.\n */\n @property({ attribute: 'max-options-visible', type: Number })\n maxOptionsVisible = 3;\n\n @state() oldMaxOptionsVisible: number = 1;\n\n @property({ type: Boolean, reflect: true, attribute: true }) enableTabClose = false;\n\n @property({ type: Boolean, reflect: true, attribute: true }) descriptionSearchEnabled = false;\n\n @property({\n type: Boolean,\n reflect: true,\n attribute: true,\n converter: {\n fromAttribute: (value) => value === 'true',\n toAttribute: (value) => String(value),\n },\n }) allowHtmlLabel = true;\n\n @property({ type: Boolean, reflect: true, attribute: true }) enableDescription = false;\n\n @state() showListbox: boolean = false;\n @state() private wasShowSelectedCheckedOnClose: boolean = false;\n\n /** Gets the validity state object */\n get validity() {\n return this.valueInput?.validity;\n }\n\n /** Gets the validation message */\n get validationMessage() {\n return this.valueInput?.validationMessage ?? '';\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.initializeComponent();\n this.setupEventListeners();\n \n this.updateComplete.then(() => {\n if (this.value && this.data.length > 0) {\n this.selectionChanged();\n }\n });\n }\n\n disconnectedCallback() {\n this.removeOpenListeners();\n this.visibilityManager?.cleanup();\n // Clear any pending scroll timeout to prevent memory leaks\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = undefined;\n }\n // Clean up body append elements\n this.portalManager.cleanupPortalAppend();\n }\n\n protected updated(changedProperties: PropertyValues): void {\n if(changedProperties.has('value')) {\n this.selectionChanged();\n }\n if (changedProperties.has('autoResize')) {\n const tagsDiv = this.shadowRoot?.querySelector('.select__tags') as HTMLElement;\n if (this.autoResize && tagsDiv) {\n this.resizeController.observe(tagsDiv);\n } else if (tagsDiv) {\n this.resizeController.unobserve(tagsDiv);\n }\n }\n }\n\n private initializeComponent(): void {\n this.open = false;\n this.emit('nile-init');\n }\n\n /**\n * Get display text for an item using renderItemConfig\n */\n private getDisplayText(item: any): string {\n if (this.renderItemConfig?.getDisplayText) {\n return this.renderItemConfig.getDisplayText(item);\n }\n // Fallback to basic display\n return item?.label || item?.name || item?.toString() || '';\n }\n\n /**\n * Get value for an item using renderItemConfig or fallback to item.value\n */\n private getItemValue(item: any): string {\n if (this.renderItemConfig?.getValue) {\n return this.renderItemConfig.getValue(item);\n }\n return item?.value || item;\n }\n\n /**\n * Get description for an item using renderItemConfig or fallback to item.description\n */\n private getItemDescription(item: any): string {\n if (this.renderItemConfig?.getDescription) {\n return this.renderItemConfig.getDescription(item);\n }\n return item?.description || item || '';\n }\n\n /**\n * Get description for an item using renderItemConfig or fallback to item.description\n */\n private getItemPrefix(item: any): string {\n if (this.renderItemConfig?.getPrefix) {\n return this.renderItemConfig.getPrefix(item);\n }\n return item?.prefix || item || '';\n }\n\n /**\n * Get suffix for an item using renderItemConfig or fallback to item.suffix\n */\n private getItemSuffix(item: any): string {\n if (this.renderItemConfig?.getSuffix) {\n return this.renderItemConfig.getSuffix(item);\n }\n return item?.suffix || item || '';\n }\n\n /**\n * Get search text for an item using renderItemConfig or fallback to display text\n */\n private getSearchText(item: any): string {\n if (this.renderItemConfig?.getSearchText) {\n return this.renderItemConfig.getSearchText(item);\n }\n return this.getDisplayText(item);\n }\n\n private setupEventListeners(): void {\n this.handleDocumentFocusIn = this.handleDocumentFocusIn.bind(this);\n this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);\n this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);\n this.handleWindowError = this.handleWindowError.bind(this);\n this.handleWindowResize = this.handleWindowResize.bind(this);\n this.handleWindowScroll = this.handleWindowScroll.bind(this);\n }\n\n private addOpenListeners(): void {\n document.addEventListener('focusin', this.handleDocumentFocusIn);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n window.addEventListener('error', this.handleWindowError);\n \n if (this.portal) {\n window.addEventListener('resize', this.handleWindowResize);\n window.addEventListener('scroll', this.handleWindowScroll, true);\n }\n }\n\n private removeOpenListeners(): void {\n document.removeEventListener('focusin', this.handleDocumentFocusIn);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n window.removeEventListener('error', this.handleWindowError);\n window.removeEventListener('resize', this.handleWindowResize);\n window.removeEventListener('scroll', this.handleWindowScroll, true);\n }\n\n private handleFocus(): void {\n this.hasFocus = true;\n this.emit('nile-focus');\n }\n\n private handleBlur(): void {\n this.hasFocus = false;\n this.emit('nile-blur');\n }\n\n \n protected firstUpdated(_changed: PropertyValues) {\n this.visibilityManager = new VisibilityManager({\n host: this,\n target: this.combobox, \n enableVisibilityEffect: this.enableVisibilityEffect,\n enableTabClose: this.enableTabClose,\n isOpen: () => this.open,\n onAnchorOutOfView: () => {\n this.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'anchor-out-of-view',\n name: this.name,\n });\n },\n onDocumentHidden: () => {\n this.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'document-hidden',\n name: this.name,\n });\n },\n emit: (event, detail) => this.emit(`nile-${event}`, detail),\n });\n }\n \n \n\n\n private handleDocumentFocusIn(event: FocusEvent): void {\n if (!this.open) return; \n const path = event.composedPath(); \n const hitSelf = path.includes(this);\n const hitPopup = this.popup && path.includes(this.popup);\n const hitPortalAppend = this.portal && this.portalManager.portalContainerElement && path.includes(this.portalManager.portalContainerElement);\n\n if (!hitSelf && !hitPopup && !hitPortalAppend) {\n this.hide();\n }\n }\n\n private handleDocumentKeyDown(event: KeyboardEvent): void {\n if (this.shouldIgnoreKeyPress(event)) {\n return;\n }\n\n if (this.isEscapeKey(event)) {\n this.handleEscapeKey(event);\n }\n\n if (this.isEnterOrSpaceKey(event)) {\n this.handleEnterOrSpaceKey(event);\n }\n }\n\n private shouldIgnoreKeyPress(event: KeyboardEvent): boolean {\n const target = event.target as HTMLElement;\n const isClearButton = target.closest('.select__clear') !== null;\n const isIconButton = target.closest('nile-icon-button') !== null;\n return isClearButton || isIconButton;\n }\n\n private isEscapeKey(event: KeyboardEvent): boolean {\n return event.key === 'Escape' && this.open;\n }\n\n private handleEscapeKey(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n\n private isEnterOrSpaceKey(event: KeyboardEvent): boolean {\n return event.key === 'Enter' || event.key === ' ';\n }\n\n private handleEnterOrSpaceKey(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopImmediatePropagation();\n\n if (!this.open) {\n this.show();\n return;\n }\n\n if (!this.multiple) {\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n }\n\n private handleDocumentMouseDown = (event: MouseEvent): void => {\n if (!this.open) return; \n \n const path = event.composedPath();\n const hitSelf = path.includes(this);\n const hitPopup = this.popup && path.includes(this.popup);\n const hitPortalAppend = this.portal && this.portalManager.portalContainerElement && path.includes(this.portalManager.portalContainerElement);\n \n if (!hitSelf && !hitPopup && !hitPortalAppend) {\n this.hide();\n }\n };\n\n /**\n * This is a workaround for an error in the Lit Labs virtualizer.\n * Since there are no specific guidelines available to fix the issue,\n * we are catching only the error message related to the virtualizer.\n */\n private handleWindowError = (event: ErrorEvent): void => {\n const errorMessage = event.error?.message || event.message || '';\n if (errorMessage.includes('Cannot read properties of null (reading \\'insertBefore\\')')) {\n event.preventDefault();\n return;\n }\n };\n\n private handleWindowResize = (): void => {\n this.portalManager.updatePortalAppendPosition();\n };\n\n private handleWindowScroll = (): void => {\n this.portalManager.updatePortalAppendPosition();\n };\n\n private handleFooterClick(event: MouseEvent): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n private toggleShowSelected(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n if (this.selectedOptions?.length === 0) {\n return;\n }\n this.showSelected = !this.showSelected;\n\n if (this.showSelected) {\n this.searchValue = \"\";\n const selectedValues = Array.isArray(this.value) ? this.value : [this.value];\n this.data = this.originalOptionItems.filter((item: any) => {\n const itemValue = this.getItemValue(item);\n return selectedValues.some(val => String(val) === String(itemValue));\n });\n } else {\n this.data = [...this.originalOptionItems];\n }\n\n // Reset measured height when show selected toggles (content height may change)\n this.portalManager.resetMeasuredHeight();\n\n this.requestUpdate();\n this.repaintOptionsContainer();\n }\n\n private unSelectAll(): void {\n this.showSelected = false;\n this.value = this.multiple ? [] : '';\n this.data = [...this.originalOptionItems];\n this.selectionChanged();\n this.emit('nile-change', { value: this.value, name: this.name });\n this.emit('nile-clear', { value: this.multiple ? this.value : '', name: this.name });\n this.resetScrollPosition();\n }\n\n private handleLabelClick(): void {\n this.displayInput.focus();\n this.hide();\n }\n\n private handleComboboxMouseDown(event: MouseEvent): void {\n if (this.shouldIgnoreComboboxClick(event)) {\n return;\n }\n\n event.preventDefault();\n this.displayInput.focus({ preventScroll: true });\n this.open = !this.open;\n }\n\n private resizeController = new ResizeController(this, {\n callback: (entries: ResizeObserverEntry[]) => {\n for (const entry of entries) {\n if (entry.target.classList.contains('select__tags')) {\n this.calculateTotalWidthOfTags();\n }\n }\n }\n });\n\n private shouldIgnoreComboboxClick(event: MouseEvent): boolean {\n const path = event.composedPath();\n const isIconButton = path.some(\n el =>\n el instanceof Element && el.tagName.toLowerCase() === 'nile-icon-button'\n );\n return this.disabled || isIconButton;\n }\n\n private handleComboboxKeyDown(event: KeyboardEvent): void {\n if (this.isEnterOrSpaceKey(event)) {\n event.preventDefault();\n this.open = !this.open;\n }\n }\n\n private handleClearClick(event: MouseEvent): void {\n event.stopPropagation();\n this.clearSelection();\n }\n\n private clearSelection(): void {\n const oldValue = this.value;\n this.value = this.multiple ? [] : '';\n this.selectionChanged();\n\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n this.emit('nile-clear');\n });\n }\n\n private handleClearMouseDown(event: MouseEvent): void {\n event.stopPropagation();\n }\n\n private handleOptionClick(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n const option = target.closest('nile-option');\n\n if (this.shouldBlockValueChange(option)) {\n return;\n }\n\n const oldValue = this.value;\n this.oldValue = oldValue;\n\n if (option && !option.disabled) {\n this.handleOptionSelection(option);\n }\n }\n\n private shouldBlockValueChange(option: Element | null): boolean {\n if (this.blockValueChange && option) {\n this.emit('nile-block-change', { value: (option as any)?.value, name: this.name });\n this.hide();\n return true;\n }\n return false;\n }\n\n private handleOptionSelection(option: Element): void {\n const optionValue = (option as any).value;\n \n if (this.multiple) {\n this.toggleOptionSelection(optionValue);\n } else {\n this.setSelectedOptions(optionValue);\n }\n\n this.updateComplete.then(() =>\n this.displayInput.focus({ preventScroll: true })\n );\n\n if (this.value !== this.oldValue) {\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n });\n }\n\n if (!this.multiple) {\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n }\n\n private setSelectedOptions(optionValue: string): void {\n this.value = optionValue;\n this.selectionChanged();\n }\n\n private toggleOptionSelection(optionValue: string): void {\n const currentValues = Array.isArray(this.value) ? this.value : [];\n \n if (currentValues.includes(optionValue)) {\n this.value = currentValues.filter(v => v !== optionValue);\n } else {\n this.value = [...currentValues, optionValue];\n }\n \n this.selectionChanged();\n }\n\n private handleTagRemove(event: NileRemoveEvent, option: VirtualOption): void {\n event.stopPropagation();\n\n if (!this.disabled) {\n this.removeTagFromSelection(option);\n this.emitTagRemovalEvent(option);\n }\n }\n\n private removeTagFromSelection(option: VirtualOption): void {\n let currentValue = this.value;\n if (!Array.isArray(currentValue)) {\n currentValue = currentValue ? [currentValue] : [];\n }\n const newValue = currentValue.filter((v: string) => v !== option.value);\n this.value = newValue;\n this.selectionChanged();\n }\n\n private emitTagRemovalEvent(option: VirtualOption): void {\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n this.emit('nile-tag-remove', { value: this.value, name: this.name, removedtagvalue: option.value });\n });\n }\n\n private selectionChanged(): void {\n const itemsToSearch = this.originalOptionItems.length > 0 ? this.originalOptionItems : this.data;\n this.selectedOptions = VirtualSelectSelectionManager.createVirtualOptionsFromValues(\n this.value, \n itemsToSearch, \n this.getDisplayText.bind(this),\n this.renderItemConfig?.getValue,\n this.allowHtmlLabel\n );\n\n if (this.multiple) {\n if (this.placeholder && this.value.length === 0) {\n this.displayLabel = '';\n } else {\n this.displayLabel = this.selectedOptions.length + ' selected';\n }\n } else {\n const currentValue = Array.isArray(this.value) ? this.value[0] : this.value;\n const label = this.selectedOptions[0]?.getTextLabel();\n this.displayLabel = label ? label : currentValue ?? '';\n }\n\n this.updateValidity();\n\n if (this.selectedOptions.length === 0) {\n this.showSelected = false;\n if(this.originalOptionItems?.length > 0 && !this.searchValue) {\n this.data = [...this.originalOptionItems];\n }\n this.repaintOptionsContainer();\n }\n\n this.calculateTotalWidthOfTags();\n }\n \n\n handleSearchFocus(): void {\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleSearchBlur(): void {\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleSearchChange(e: any): void {\n this.searchValue = e.detail.value;\n if (this.portal) {\n this.portalManager.updatePortalAppendPosition();\n }\n \n this.emit('nile-search', { \n query: this.searchValue,\n name: this.name \n });\n \n if (!this.disableLocalSearch) {\n this.filterVirtualOptions(this.searchValue);\n this.repaintOptionsContainer();\n \n // Reset measured height when search changes (content height may change)\n this.portalManager.resetMeasuredHeight();\n }\n }\n \n repaintOptionsContainer() {\n this.resetScrollPosition();\n this.updateComplete.then(() => {\n const virtualized = this.shadowRoot?.querySelector('.virtualized') as HTMLElement;\n if (virtualized) {\n if (this.data.length < 5) {\n virtualized.classList.add('no-scroll');\n } else {\n virtualized.classList.remove('no-scroll');\n }\n }\n });\n }\n\n handleScroll(e: Event): void {\n if(this.showSelected) {\n return;\n }\n\n const target = e.target as HTMLElement;\n \n this.emit('nile-scroll', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name\n });\n\n if (!this.scrolling) {\n this.scrolling = true;\n this.emit('nile-scroll-start', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name\n });\n }\n\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = window.setTimeout(() => {\n if (this.scrolling) {\n this.scrolling = false;\n }\n }, 300);\n\n const isAtBottom = Math.ceil(target.scrollTop) >= Math.floor(target.scrollHeight - target.offsetHeight);\n if (isAtBottom && !this.searchValue) {\n this.emit('nile-scroll-end', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name,\n isAtBottom: true\n });\n }\n }\n\n filterVirtualOptions(searchValue: string): void {\n const result = VirtualSelectSearchManager.filterVirtualOptions(\n searchValue,\n this.originalOptionItems,\n this.data,\n this.getDisplayText.bind(this),\n this.getItemDescription.bind(this),\n this.descriptionSearchEnabled,\n this.renderItemConfig?.getSearchText\n );\n if (this.portal) {\n this.portalManager.updatePortalAppendPosition();\n this.updateComplete.then(() => {\n requestAnimationFrame(() => {\n this.resetScrollPosition();\n });\n });\n } else {\n this.resetScrollPosition();\n }\n this.data = result.filteredItems;\n this.showNoResults = result.showNoResults;\n this.showSelected = false;\n this.requestUpdate();\n }\n\n private handleInvalid(event: Event): void {\n this.formControlController.setValidity(false);\n this.formControlController.emitInvalidEvent(event);\n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\n handleDisabledChange(): void {\n if (this.disabled) {\n this.open = false;\n this.handleOpenChange();\n }\n }\n\n \n @watch('value', { waitUntilFirstUpdate: true })\n handleValueChange(): void {\n this.selectionChanged();\n this.requestUpdate();\n \n // Update body append content if it's active\n if (this.portal && this.portalManager.portalContainerElement) {\n this.portalManager.updatePortalAppendPosition();\n }\n }\n\n @watch('data', { waitUntilFirstUpdate: true })\n handleDataChange(): void {\n if (this.data.length > 0 && this.open && !this.showSelected && !this.searchValue) {\n this.originalOptionItems = [...this.data];\n }\n this.selectionChanged();\n // Show no results message when data is empty and not loading\n if (!this.optionsLoading && !this.loading && this.data.length === 0) {\n this.showNoResults = true;\n } else if (this.data.length > 0) {\n this.showNoResults = false;\n }\n this.requestUpdate();\n \n // Reset measured height when data changes (content height may change)\n this.portalManager.resetMeasuredHeight();\n \n // Update body append content if it's active\n if (this.portal && this.portalManager.portalContainerElement) {\n this.portalManager.updatePortalAppendPosition();\n }\n }\n\n @watch('renderItemConfig', { waitUntilFirstUpdate: true })\n handleRenderItemConfigChange(): void {\n if (this.value && this.data.length > 0) {\n this.selectionChanged();\n this.requestUpdate();\n }\n }\n\n @watch('optionsLoading', { waitUntilFirstUpdate: true })\n handleOptionsLoadingChange(): void {\n // Show no results message when loading stops and there are no results\n if (!this.optionsLoading && this.data.length === 0) {\n this.showNoResults = true;\n }\n this.requestUpdate();\n \n // Update body append content if it's active\n if (this.portal && this.portalManager.portalContainerElement) {\n this.portalManager.updatePortalAppendPosition();\n }\n }\n\n @watch('portal', { waitUntilFirstUpdate: true })\n handlePortalAppendChange(): void {\n if (this.open) {\n if (this.portal) {\n this.portalManager.setupPortalAppend();\n } else {\n this.portalManager.cleanupPortalAppend();\n }\n }\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange(): Promise<void> {\n if (this.open && !this.disabled) {\n this.visibilityManager?.setup();\n this.showListbox = true;\n await this.updateComplete;\n await this.handleOpen();\n \n if (this.portal) {\n this.portalManager.setupPortalAppend();\n }\n } else {\n this.visibilityManager?.cleanup();\n await this.handleClose();\n this.showListbox = false;\n \n if (this.portal) {\n this.portalManager.cleanupPortalAppend();\n }\n }\n }\n\n private async handleOpen(): Promise<void> {\n this.emit('nile-show', { value: this.value, name: this.name });\n this.addOpenListeners();\n this.showNoResults = !this.data?.length;\n\n await stopAnimations(this);\n \n // Hide popup initially to prevent flickering during positioning calculation\n // This allows content to be measured while invisible\n if (this.popup?.popup) {\n this.popup.popup.style.visibility = 'hidden';\n }\n \n this.popup.active = true;\n \n // Wait for positioning to complete before showing the popup\n await new Promise(resolve => requestAnimationFrame(resolve));\n // Wait for next frame to allow Floating UI to calculate position\n await new Promise(resolve => requestAnimationFrame(resolve));\n \n // Show popup after positioning is calculated\n if (this.popup?.popup) {\n this.popup.popup.style.visibility = '';\n }\n\n const { keyframes, options } = getAnimation(this, 'select.show', {\n dir: 'ltr',\n });\n await animateTo(this.popup.popup, keyframes, options);\n\n if (this.wasShowSelectedCheckedOnClose) {\n this.showSelected = false;\n this.data = [...this.originalOptionItems];\n this.wasShowSelectedCheckedOnClose = false;\n }\n \n this.filterVirtualOptions(\"\");\n this.resetScrollPosition();\n this.emit('nile-after-show', { value: this.value, name: this.name });\n }\n\n private async handleClose(): Promise<void> {\n this.emit('nile-hide', { value: this.value, name: this.name });\n this.removeOpenListeners();\n\n this.wasShowSelectedCheckedOnClose = this.showSelected;\n\n await stopAnimations(this);\n const { keyframes, options } = getAnimation(this, 'select.hide', {\n dir: 'ltr',\n });\n await animateTo(this.popup.popup, keyframes, options);\n this.popup.active = false;\n \n // Reset visibility style when closing\n if (this.popup?.popup) {\n this.popup.popup.style.visibility = '';\n }\n\n this.searchValue = '';\n \n // Reset measured height when popup closes (content may change on next open)\n this.portalManager.resetMeasuredHeight();\n \n this.emit('nile-after-hide', { value: this.value, name: this.name });\n }\n\n async show(): Promise<unknown> {\n if (this.open || this.disabled) {\n this.open = false;\n return undefined;\n }\n\n this.open = true;\n return waitForEvent(this, 'nile-after-show');\n }\n\n async hide(): Promise<unknown> {\n if (!this.open || this.disabled) {\n this.open = false;\n return undefined;\n }\n\n this.open = false;\n return waitForEvent(this, 'nile-after-hide');\n }\n\n checkValidity(): boolean {\n return this.valueInput.checkValidity();\n }\n\n getForm(): HTMLFormElement | null {\n return this.formControlController.getForm();\n }\n\n reportValidity(): boolean {\n return this.valueInput.reportValidity();\n }\n\n setCustomValidity(message: string): void {\n this.valueInput.setCustomValidity(message);\n this.formControlController.updateValidity();\n }\n\n focus(options?: FocusOptions): void {\n this.displayInput.focus(options);\n }\n\n blur(): void {\n this.displayInput.blur();\n }\n\n onInputChange(event: Event): void {\n event.stopPropagation();\n }\n\n render(): TemplateResult {\n const hasLabelSlot = this.hasSlotController.test('label');\n const hasHelpTextSlot = this.hasSlotController.test('help-text');\n const hasLabelSuffixSlot = this.hasSlotController.test('label-suffix');\n const hasCustomSelect = this.hasSlotController.test('custom-select');\n const hasLabel = this.label ? true : !!hasLabelSlot;\n const hasClearIcon =\n this.clearable && !this.disabled && this.value.length > 0;\n const isPlaceholderVisible = !!this.placeholder && this.value.length === 0;\n const hasHelpText = !!this.helpText;\n const hasErrorMessage = !!this.errorMessage;\n\n return html`\n <div\n part=\"form-control\"\n class=${classMap({\n 'form-control': true,\n 'form-control--small': this.size === 'small',\n 'form-control--medium': this.size === 'medium',\n 'form-control--large': this.size === 'large',\n 'form-control--has-label': hasLabel,\n 'form-control--has-help-text': hasHelpText,\n })}\n >\n ${this.renderLabel(hasLabel, hasLabelSuffixSlot)}\n ${this.renderFormControlInput(hasCustomSelect, hasClearIcon, isPlaceholderVisible, hasHelpText, hasErrorMessage)}\n </div>\n `;\n }\n\n private renderLabel(hasLabel: boolean, hasLabelSuffixSlot: boolean): TemplateResult {\n return html`\n <label\n id=\"label\"\n part=\"form-control-label\"\n class=\"form-control__label\"\n aria-hidden=${hasLabel ? 'false' : 'true'}\n @click=${this.handleLabelClick}\n >\n <slot name=\"label\">${this.label}</slot>\n </label>\n\n ${hasLabelSuffixSlot ? html` <slot name=\"label-suffix\"></slot> ` : ``}\n `;\n }\n\n private renderFormControlInput(\n hasCustomSelect: boolean, \n hasClearIcon: boolean, \n isPlaceholderVisible: boolean, \n hasHelpText: boolean, \n hasErrorMessage: boolean\n ): TemplateResult {\n return html`\n <div part=\"form-control-input\" class=\"form-control-input\">\n ${this.renderPopup(hasCustomSelect, hasClearIcon, isPlaceholderVisible)}\n ${this.renderHelpText(hasHelpText, hasErrorMessage)}\n </div>\n `;\n }\n\n private renderPopup(hasCustomSelect: boolean, hasClearIcon: boolean, isPlaceholderVisible: boolean): TemplateResult {\n return html`\n <nile-popup\n class=${classMap({\n select: true,\n 'select--warning': this.warning,\n 'select--error': this.error,\n 'select--success': this.success,\n 'select--standard': true,\n 'select--filled': this.filled,\n 'select--pill': this.pill,\n 'select--open': this.open,\n 'select--disabled': this.disabled,\n 'select--multiple': this.multiple,\n 'select--focused': this.hasFocus,\n 'select--placeholder-visible': isPlaceholderVisible,\n 'select--top': this.placement === 'top',\n 'select--bottom': this.placement === 'bottom',\n 'select--small': this.size === 'small',\n 'select--medium': this.size === 'medium',\n 'select--large': this.size === 'large',\n })}\n placement=${this.placement}\n strategy=${this.portal ? 'fixed' : (this.hoist ? 'fixed' : 'absolute')}\n distance=\"6\"\n ?flip=${!this.portal}\n ?shift=${!this.portal}\n sync=${ifDefined(!this.noWidthSync ? 'width' : undefined)}\n auto-size=\"vertical\"\n auto-size-padding=\"10\"\n exportparts=\"tag__content\"\n >\n ${this.renderCustomSelect(hasCustomSelect)}\n ${this.renderCombobox(hasCustomSelect, hasClearIcon)}\n ${this.showListbox ? this.renderListbox() : html``}\n </nile-popup>\n `;\n }\n\n private renderCustomSelect(hasCustomSelect: boolean): TemplateResult {\n return hasCustomSelect\n ? html`<slot\n slot=\"anchor\"\n name=\"custom-select\"\n class=\"custom-select\"\n @keydown=${this.handleComboboxKeyDown}\n @mousedown=${this.handleComboboxMouseDown}\n ></slot>`\n : html``;\n }\n\n private renderCombobox(hasCustomSelect: boolean, hasClearIcon: boolean): TemplateResult {\n return html`\n <div\n part=\"combobox\"\n class=${classMap({\n select__combobox: true,\n 'select__hide-default': hasCustomSelect,\n })}\n slot=\"anchor\"\n @keydown=${this.handleComboboxKeyDown}\n @mousedown=${this.handleComboboxMouseDown}\n >\n ${this.renderPrefix()}\n ${this.renderDisplayInput()}\n ${this.renderTags()}\n ${this.renderValueInput()}\n ${this.renderClearButton(hasClearIcon)}\n ${this.renderSuffix()}\n ${this.renderExpandIcon()}\n </div>\n `;\n }\n\n private renderPrefix(): TemplateResult {\n return html`\n <slot\n part=\"prefix\"\n name=\"prefix\"\n class=${classMap({\n select__prefix: true,\n multiple: this.multiple,\n })}\n ></slot>\n `;\n }\n\n private renderDisplayInput(): TemplateResult {\n return html`\n <input\n part=\"display-input\"\n class=\"select__display-input\"\n type=\"text\"\n placeholder=${this.placeholder}\n .disabled=${this.disabled}\n .value=${this.displayLabel}\n autocomplete=\"off\"\n spellcheck=\"false\"\n autocapitalize=\"off\"\n readonly\n aria-controls=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n aria-labelledby=\"label\"\n aria-disabled=${this.disabled ? 'true' : 'false'}\n aria-describedby=\"help-text\"\n role=\"combobox\"\n tabindex=\"0\"\n />\n `;\n }\n\n private renderTags(): TemplateResult {\n return this.multiple\n ? html`\n <div part=\"tags\" class=\"select__tags\">\n ${this.selectedOptions.map((option, index) => {\n if (\n index < this.maxOptionsVisible ||\n this.maxOptionsVisible <= 0\n ) {\n const classes = {\n select__invisible:\n index + 1 > this.oldMaxOptionsVisible &&\n this.maxOptionsVisible === Infinity,\n };\n return html`\n <nile-tag\n class=${classMap(classes)}\n part=\"tag\"\n exportparts=\"\n base:tag__base,\n content:tag__content,\n remove-button:tag__remove-button,\n remove-button__base:tag__remove-button__base\n \"\n ?pill=${this.pill}\n size=${this.size}\n removable\n @nile-remove=${(event: NileRemoveEvent) =>\n this.handleTagRemove(event, option)}\n >\n ${option.getTextLabel()}\n </nile-tag>\n `;\n } else if (index === this.maxOptionsVisible) {\n return html`\n <span class=\"select__tags-count\"\n >+${this.selectedOptions.length - index} More\n </span>\n `;\n } else {\n return null;\n }\n })}\n </div>\n `\n : html``;\n }\n\n private renderValueInput(): TemplateResult {\n return html`\n <input\n class=\"select__value-input\"\n type=\"text\"\n ?disabled=${this.disabled}\n ?required=${this.required}\n .value=${Array.isArray(this.value)\n ? this.value.join(', ')\n : this.value}\n tabindex=\"-1\"\n aria-hidden=\"true\"\n @focus=${() => this.focus()}\n @invalid=${this.handleInvalid}\n />\n `;\n }\n\n private renderClearButton(hasClearIcon: boolean): TemplateResult {\n return hasClearIcon\n ? html`\n <button\n part=\"clear-button\"\n class=\"select__clear\"\n type=\"button\"\n aria-label=\"clearEntry\"\n @mousedown=${this.handleClearMouseDown}\n @click=${this.handleClearClick}\n tabindex=\"-1\"\n >\n <slot name=\"clear-icon\">\n <nile-icon name=\"var(--nile-icon-close, var(--ng-icon-x-close))\" size=\"var(--nile-height-14px, var(--ng-height-16px))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" library=\"system\" color=\"var(--nile-colors-dark-500, var(--ng-colors-fg-quaternary-400))\"></nile-icon>\n </slot>\n </button>\n `\n : html``;\n }\n\n private renderSuffix(): TemplateResult {\n return html`\n <slot\n part=\"suffix\"\n name=\"suffix\"\n class=${classMap({\n select__suffix: true,\n })}\n ></slot>\n `;\n }\n\n private renderExpandIcon(): TemplateResult {\n return html`\n <slot\n name=\"expand-icon\"\n part=\"expand-icon\"\n class=\"select__expand-icon\"\n >\n <nile-icon library=\"system\" name=\"var(--nile-icon-arrow-down, var(--ng-icon-chevron-down))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" color=\"var(--nile-colors-dark-500, var(--ng-colors-fg-quaternary-400))\"></nile-icon>\n </slot>\n `;\n }\n\n private renderListbox(): TemplateResult {\n return html`\n <div\n id=\"listbox\"\n role=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-multiselectable=${this.multiple ? 'true' : 'false'}\n aria-labelledby=\"label\"\n part=\"listbox\"\n class=\"select__listbox ${this.searchEnabled\n ? 'select__search-enabled '\n : ''} ${this.portal ? 'select__portal-append-hidden' : ''}\"\n tabindex=\"-1\"\n @mouseup=${this.handleOptionClick}\n style=${this.portal ? 'display: none;' : ''}\n >\n ${this.renderSearch()}\n ${this.renderLoader()}\n ${this.getVirtualizedContent()}\n ${this.renderFooter()}\n </div>\n `;\n }\n\n private renderSearch(): TemplateResult {\n return this.searchEnabled\n ? html`\n <div part=\"search\" class=\"select__search\">\n <nile-input\n size=\"small\"\n clearable\n .value=${this.searchValue}\n placeholder=\"${this.internalSearchPlaceHolder}\"\n @nile-input=${this.handleSearchChange}\n @nile-focus=${this.handleSearchFocus}\n @nile-change=\"${this.onInputChange}\"\n >\n <nile-icon name=\"var(--nile-icon-search, var(--ng-icon-search-lg))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" slot=\"suffix\"> </nile-icon>\n </nile-input>\n </div>\n `\n : html``;\n }\n\n private renderLoader(): TemplateResult {\n if (this.loading) {\n return html`\n <span part=\"loader\" class=\"virtual-select-loader\">\n <nile-loader size=\"sm\"></nile-loader>\n </span>\n `;\n }\n \n if (this.optionsLoading) {\n return html`\n <span part=\"loader\" class=\"select__loader\">\n <nile-icon\n class=\"select__loader--icon\"\n name=\"button-loading-blue\"\n ></nile-icon>\n </span>\n `;\n }\n \n return html``;\n }\n\n private renderFooter(): TemplateResult {\n return this.multiple\n ? html`\n <div\n part=\"footer\"\n class=\"select__footer ${this.loading ? 'loading' : ''}\"\n @click=\"${this.handleFooterClick}\"\n >\n <span\n @click=\"${this.toggleShowSelected}\"\n style=\"cursor: pointer;\"\n >\n <nile-checkbox\n ?disabled=\"${this.selectedOptions.length === 0}\"\n ?checked=\"${this.showSelected}\"\n >\n Show Selected</nile-checkbox\n >\n </span>\n ${this.selectedOptions.length !== 0\n ? html`\n <span\n class=\"select__clear\"\n @click=\"${this.unSelectAll}\"\n >\n Clear All\n </span>\n `\n : ``}\n </div>\n `\n : html``;\n }\n\n private renderHelpText(hasHelpText: boolean, hasErrorMessage: boolean): TemplateResult {\n return html`\n ${hasHelpText\n ? html` <nile-form-help-text>${this.helpText}</nile-form-help-text> `\n : ``}\n ${hasErrorMessage\n ? html`\n <nile-form-error-message\n >${this.errorMessage}</nile-form-error-message\n >\n `\n : ``}\n `;\n }\n\n getVirtualizedContent(): TemplateResult {\n return VirtualSelectRenderer.getVirtualizedContent(\n this.data,\n this.searchEnabled,\n this.getDisplayText.bind(this),\n this.value,\n this.multiple,\n this.renderItemConfig?.getDisplayText,\n this.renderItemConfig?.getValue,\n this.renderItemConfig?.getDescription,\n this.renderItemConfig?.getPrefix,\n this.renderItemConfig?.getSuffix,\n this.showNoResults,\n this.noResultsMessage,\n this.optionsLoading || this.loading,\n this.handleScroll.bind(this),\n this.allowHtmlLabel,\n this.enableDescription\n );\n }\n\n nileInput(value: any): void {\n this.emit('nile-input', value);\n }\n\n nileChange(value: any): void {\n this.emit('nile-change', value);\n }\n\n private updateValidity(): void {\n this.updateComplete.then(() => {\n this.formControlController.updateValidity();\n });\n }\n\n private calculateWidthOfSelectTagsDiv(): number | null {\n if (this.shadowRoot) {\n const selectTagsDiv = this.shadowRoot.querySelector('.select__tags') as HTMLElement;\n if (selectTagsDiv) {\n const width = selectTagsDiv.offsetWidth;\n return width - 70;\n }\n }\n return null;\n }\n\n private calculateTotalWidthOfTags(): void {\n if (this.maxOptionsVisible !== Infinity) {\n this.oldMaxOptionsVisible = this.maxOptionsVisible;\n }\n\n this.maxOptionsVisible = Infinity;\n setTimeout(() => {\n let widths: number[] = [];\n if (this.shadowRoot) {\n const tags = this.shadowRoot.querySelectorAll('nile-tag');\n tags.forEach(tag => {\n if (tag instanceof HTMLElement) {\n widths.push(tag.offsetWidth);\n }\n });\n }\n if (this.value.length !== widths.length) {\n return;\n }\n\n let sum = widths.reduce(\n (accumulator, currentValue) => accumulator + currentValue,\n 0\n );\n const widthOfSelectTagsDiv = this.calculateWidthOfSelectTagsDiv();\n if (!widthOfSelectTagsDiv) {\n return;\n }\n\n let summ = 0;\n let lastindex = 0;\n\n for (let i = 0; i < widths.length; i++) {\n summ += widths[i];\n\n if (summ > widthOfSelectTagsDiv) {\n lastindex = i;\n break;\n }\n }\n this.maxOptionsVisible = lastindex;\n }, 1);\n }\n\n private async resetScrollPosition(): Promise<void> {\n await this.portalManager.resetScrollPosition();\n }\n}\n\nsetDefaultAnimation('select.show', {\n keyframes: [\n { opacity: 0, scale: 0.9 },\n { opacity: 1, scale: 1 },\n ],\n options: { duration: 100, easing: 'ease' },\n});\n\nsetDefaultAnimation('select.hide', {\n keyframes: [\n { opacity: 1, scale: 1 },\n { opacity: 0, scale: 0.9 },\n ],\n options: { duration: 100, easing: 'ease' },\n});\n\nexport default NileVirtualSelect;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-virtual-select': NileVirtualSelect;\n }\n}\n\n"],"names":["h","i","this","_$AN","o","_$AM","r","n","t","arguments","length","undefined","e","_$AH","size","Array","isArray","s","setters","_tslib","_iterator","_createForOfIteratorHelper","_step","done","_$AO","err","f","_n","Set","has","add","c","type","CHILD","_$AP","_$AQ","A","super","_this","_inherits","_k","_createClass","key","value","_$AT","isConnected","_$AU","_this$reconnected","_this$disconnected","reconnected","disconnected","setValue","strings","_$Ct","_$AI","_$Ci","_export","q","target","config","callback","skipInitial","l","window","ResizeObserver","u","handleChanges","requestUpdate","addController","console","warn","hostConnected","_iterator2","_step2","observe","hostDisconnected","disconnect","_hostUpdated","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context2","prev","next","stop","hostUpdated","unobserve","_A","_class","observing","_this3","render","update","controller","part","element","_this$controller2","NileVirtualSelect","F","constructor","formControlController","FormControlController","assumeInteractionOn","hasSlotController","HasSlotController","portalManager","PortalManager","hasFocus","displayLabel","selectedOptions","oldValue","scrolling","name","data","originalOptionItems","defaultValue","placeholder","autoResize","searchValue","searchEnabled","enableVisibilityEffect","internalSearchPlaceHolder","disableLocalSearch","optionsLoading","loading","multiple","helpText","errorMessage","warning","error","success","disabled","clearable","open","hoist","filled","pill","label","placement","form","required","showNoResults","noResultsMessage","showSelected","blockValueChange","noWidthSync","portal","maxOptionsVisible","oldMaxOptionsVisible","enableTabClose","descriptionSearchEnabled","allowHtmlLabel","enableDescription","showListbox","wasShowSelectedCheckedOnClose","handleDocumentMouseDown","event","path","composedPath","hitSelf","includes","hitPopup","popup","hitPortalAppend","portalContainerElement","hide","handleWindowError","message","preventDefault","handleWindowResize","updatePortalAppendPosition","handleWindowScroll","resizeController","ResizeController","entries","_iterator3","_step3","entry","classList","contains","calculateTotalWidthOfTags","_this4","_u","get","_this$valueInput","valueInput","validity","_this$valueInput$vali","_this$valueInput2","validationMessage","connectedCallback","initializeComponent","setupEventListeners","updateComplete","then","selectionChanged","disconnectedCallback","removeOpenListeners","visibilityManager","cleanup","scrollTimeout","clearTimeout","cleanupPortalAppend","updated","changedProperties","_this$shadowRoot","tagsDiv","shadowRoot","querySelector","emit","getDisplayText","item","_this$renderItemConfi","renderItemConfig","toString","getItemValue","_this$renderItemConfi2","getValue","getItemDescription","getDescription","description","getItemPrefix","_this$renderItemConfi4","getPrefix","prefix","getItemSuffix","getSuffix","suffix","getSearchText","_this$renderItemConfi6","handleDocumentFocusIn","bind","handleDocumentKeyDown","addOpenListeners","document","addEventListener","removeEventListener","handleFocus","handleBlur","firstUpdated","_changed","VisibilityManager","host","combobox","isOpen","onAnchorOutOfView","visible","reason","onDocumentHidden","detail","shouldIgnoreKeyPress","isEscapeKey","handleEscapeKey","isEnterOrSpaceKey","handleEnterOrSpaceKey","isClearButton","closest","isIconButton","stopPropagation","displayInput","focus","preventScroll","stopImmediatePropagation","show","handleFooterClick","toggleShowSelected","_this$selectedOptions","_this7","selectedValues","filter","itemValue","some","val","String","resetMeasuredHeight","repaintOptionsContainer","unSelectAll","_toConsumableArray","resetScrollPosition","handleLabelClick","handleComboboxMouseDown","shouldIgnoreComboboxClick","el","Element","tagName","toLowerCase","handleComboboxKeyDown","handleClearClick","clearSelection","nileInput","nileChange","handleClearMouseDown","handleOptionClick","option","shouldBlockValueChange","handleOptionSelection","optionValue","toggleOptionSelection","setSelectedOptions","currentValues","v","handleTagRemove","removeTagFromSelection","emitTagRemovalEvent","currentValue","newValue","removedtagvalue","itemsToSearch","VirtualSelectSelectionManager","createVirtualOptionsFromValues","_this$selectedOptions2","getTextLabel","updateValidity","handleSearchFocus","handleSearchBlur","handleSearchChange","query","filterVirtualOptions","_this11$shadowRoot","virtualized","remove","handleScroll","_this12","scrollTop","scrollLeft","setTimeout","Math","ceil","floor","scrollHeight","offsetHeight","isAtBottom","result","VirtualSelectSearchManager","requestAnimationFrame","filteredItems","handleInvalid","setValidity","emitInvalidEvent","handleDisabledChange","handleOpenChange","handleValueChange","handleDataChange","handleRenderItemConfigChange","handleOptionsLoadingChange","handlePortalAppendChange","setupPortalAppend","_handleOpenChange","_callee2","_this$visibilityManag2","_this$visibilityManag3","_callee2$","_context3","setup","handleOpen","handleClose","_callee3","_this$data","_this$popup","_this$popup2","_h","_callee3$","_context4","stopAnimations","style","visibility","active","Promise","resolve","getAnimation","dir","animateTo","keyframes","options","_callee4","_this$popup3","_h2","_callee4$","_context5","_callee5","_callee5$","_context6","waitForEvent","_callee6","_callee6$","_context7","abrupt","checkValidity","getForm","reportValidity","setCustomValidity","blur","onInputChange","hasLabelSlot","test","hasLabelSuffixSlot","hasCustomSelect","hasLabel","hasClearIcon","isPlaceholderVisible","hasHelpText","hasErrorMessage","html","_templateObject","_taggedTemplateLiteral","classMap","renderLabel","renderFormControlInput","_templateObject2","_templateObject3","_templateObject4","renderPopup","renderHelpText","_templateObject5","select","ifDefined","renderCustomSelect","renderCombobox","renderListbox","_templateObject6","_templateObject7","_templateObject8","_templateObject9","select__combobox","renderPrefix","renderDisplayInput","renderTags","renderValueInput","renderClearButton","renderSuffix","renderExpandIcon","_templateObject10","select__prefix","_templateObject11","_templateObject12","map","index","classes","select__invisible","Infinity","_templateObject13","_templateObject14","_templateObject15","_templateObject16","join","_templateObject17","_templateObject18","_templateObject19","select__suffix","_templateObject20","_templateObject21","renderSearch","renderLoader","getVirtualizedContent","renderFooter","_templateObject22","_templateObject23","_templateObject24","_templateObject25","_templateObject26","_templateObject27","_templateObject28","_templateObject29","_templateObject30","_templateObject31","_templateObject32","VirtualSelectRenderer","calculateWidthOfSelectTagsDiv","selectTagsDiv","offsetWidth","widths","querySelectorAll","forEach","tag","HTMLElement","push","widthOfSelectTagsDiv","summ","lastindex","_resetScrollPosition","_callee7","_callee7$","_context8","NileElement","styles","__decorate","prototype","state","property","converter","fromAttribute","split","toAttribute","Boolean","reflect","attribute","Number","watch","waitUntilFirstUpdate","customElement","setDefaultAnimation","opacity","scale","duration","easing"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|