@aquera/nile-elements 1.7.6 → 1.7.7
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 +3 -0
- package/dist/index.js +9 -5
- package/dist/nile-detail/nile-detail.cjs.js +1 -1
- package/dist/nile-detail/nile-detail.cjs.js.map +1 -1
- package/dist/nile-detail/nile-detail.css.cjs.js +1 -1
- package/dist/nile-detail/nile-detail.css.cjs.js.map +1 -1
- package/dist/nile-detail/nile-detail.css.esm.js +1 -1
- package/dist/nile-detail/nile-detail.esm.js +7 -3
- package/dist/src/nile-detail/nile-detail.css.js +1 -1
- package/dist/src/nile-detail/nile-detail.css.js.map +1 -1
- package/dist/src/nile-detail/nile-detail.d.ts +2 -0
- package/dist/src/nile-detail/nile-detail.js +23 -1
- package/dist/src/nile-detail/nile-detail.js.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/nile-detail/nile-detail.css.ts +1 -1
- package/src/nile-detail/nile-detail.ts +20 -1
- package/vscode-html-custom-data.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-detail.js","sourceRoot":"","sources":["../../../src/nile-detail/nile-detail.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult, nothing } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { styles } from './nile-detail.css';\nimport NileElement from '../internal/nile-element';\nimport { watch } from '../internal/watch';\nimport {\n animateShow,\n animateHide,\n showDetail,\n hideDetail,\n handleSummaryClick,\n handleSummaryKeyDown,\n} from './nile-detail.utils';\nimport '../nile-checkbox/index';\nimport '../nile-input/index';\nimport '../nile-link/index';\nimport '../nile-icon/index';\nimport '../nile-lite-tooltip/index';\nimport { VirtualizerController } from '@tanstack/lit-virtual';\nimport type { CSSResultGroup } from 'lit';\n\nexport type NileDetailVariant = 'default' | 'selection';\n\nexport interface NileDetailSelectionItem {\n value: string;\n label?: string;\n description?: string;\n prefix?: string;\n suffix?: string;\n disabled?: boolean;\n className?: string;\n}\n\nexport interface NileDetailRenderItemConfig {\n getDisplayText: (item: any) => string;\n getValue?: (item: any) => string;\n getSearchText?: (item: any) => string;\n getDescription?: (item: any) => string;\n getPrefix?: (item: any) => string;\n getSuffix?: (item: any) => string;\n getDisabled?: (item: any) => boolean;\n getClassName?: (item: any) => string;\n}\n\ntype SelectionItem = string | NileDetailSelectionItem | Record<string, any>;\n\nconst IS_BROWSER = typeof window !== 'undefined';\n\nexport interface NileDetailSelectionConfig {\n // Identity\n variant?: NileDetailVariant;\n heading?: string;\n description?: string;\n itemsLabel?: string;\n\n // Items / selection\n items?: SelectionItem[];\n selected?: string[];\n renderItemConfig?: NileDetailRenderItemConfig;\n allowHtmlLabel?: boolean;\n\n // Layout\n layout?: {\n orientation?: 'horizontal' | 'vertical' | 'both';\n gridRows?: number;\n gridColumns?: number;\n matrixColumns?: number;\n minColumnWidth?: string;\n laneHeight?: number;\n maxHeight?: string;\n expandIconPlacement?: 'left' | 'right';\n };\n\n // Search\n search?: {\n placeholder?: string;\n disableLocal?: boolean;\n };\n\n // Virtualization\n virtualization?: {\n enabled?: boolean;\n threshold?: number;\n overscan?: number;\n };\n\n // Pagination / infinite scroll\n pagination?: {\n totalCount?: number;\n pageSize?: number;\n fetchPage?: (offset: number, limit: number) => Promise<SelectionItem[]>;\n placeholderLabel?: string;\n };\n\n // Action labels\n labels?: {\n restore?: string;\n clear?: string;\n selectedOnly?: string;\n showAll?: string;\n };\n\n showSelectedToggle?: boolean;\n\n // Inherited / passthrough\n open?: boolean;\n disabled?: boolean;\n}\n\n@customElement('nile-detail')\nexport class NileDetail extends NileElement {\n\n static styles: CSSResultGroup = styles;\n\n @query('details') detail: HTMLDetailsElement;\n @query('summary') header: HTMLElement;\n @query('.detail__body') body: HTMLElement;\n\n @property({ attribute: true, type: Boolean, reflect: true }) open = false;\n\n @property({ attribute: true, type: String, reflect: true }) heading = '';\n\n @property({ attribute: true, type: String, reflect: true }) description = '';\n\n @property({ attribute: true, reflect: true }) expandIconPlacement: 'left' | 'right' = 'right';\n\n @property({ attribute: true, type: Boolean, reflect: true }) disabled = false;\n\n @property({ attribute: true, type: String, reflect: true }) variant: NileDetailVariant = 'default';\n\n @property({ attribute: false, type: Array }) items: SelectionItem[] = [];\n\n @property({ attribute: false, type: Array }) selected: string[] = [];\n\n @property({ attribute: false }) renderItemConfig?: NileDetailRenderItemConfig;\n\n @property({ attribute: 'allow-html-label', type: Boolean }) allowHtmlLabel = false;\n\n @property({ attribute: 'disable-local-search', type: Boolean }) disableLocalSearch = false;\n\n @property({ attribute: 'total-count', type: Number }) totalCount?: number;\n\n @property({ attribute: 'page-size', type: Number }) pageSize = 200;\n\n @property({ attribute: false }) fetchPage?: (offset: number, limit: number) => Promise<SelectionItem[]>;\n\n @property({ attribute: 'placeholder-label', type: String }) placeholderLabel = 'Loading…';\n\n @property({ attribute: false }) config?: NileDetailSelectionConfig;\n\n @property({ attribute: 'search-placeholder', type: String }) searchPlaceholder = 'Search...';\n\n @property({ attribute: 'items-label', type: String }) itemsLabel = 'attributes';\n\n @property({ attribute: 'restore-label', type: String }) restoreLabel = 'Restore';\n\n @property({ attribute: 'clear-label', type: String }) clearLabel = 'Clear';\n\n @property({ attribute: 'grid-rows', type: Number }) gridRows = 6;\n\n @property({ attribute: 'grid-columns', type: Number }) gridColumns = 3;\n\n @property({ attribute: 'min-column-width', type: String }) minColumnWidth = '220px';\n\n @property({ attribute: 'lane-height', type: Number }) laneHeight = 32;\n\n @property({ attribute: true, type: String, reflect: true }) orientation: 'horizontal' | 'vertical' | 'both' = 'horizontal';\n\n @property({ attribute: 'max-height', type: String }) maxHeight = '320px';\n\n @property({ attribute: 'matrix-columns', type: Number }) matrixColumns = 20;\n\n @property({ attribute: true, type: Boolean }) virtualize = false;\n\n @property({ attribute: 'virtualize-threshold', type: Number }) virtualizeThreshold = 60;\n\n @property({ attribute: 'overscan', type: Number }) overscan = 4;\n\n @state() private _detailOpen = false;\n\n @state() private _searchTerm = '';\n\n @state() private _selectedSet: Set<string> = new Set();\n\n @state() private _showSelectedOnly = false;\n\n @property({ attribute: 'show-selected-toggle', type: Boolean, reflect: true }) showSelectedToggle = false;\n\n @property({ attribute: 'selected-only-label', type: String }) selectedOnlyLabel = 'Selected';\n\n @property({ attribute: 'show-all-label', type: String }) showAllLabel = 'Show all';\n\n private _restoreDefaults: string[] | null = null;\n\n private _gridResizeObserver: ResizeObserver | null = null;\n\n private _virtCtrl: VirtualizerController<HTMLElement, HTMLElement> | null = null;\n\n private _rowVirtCtrl: VirtualizerController<HTMLElement, HTMLElement> | null = null;\n\n private _colVirtCtrl: VirtualizerController<HTMLElement, HTMLElement> | null = null;\n\n private _pageCache: any = new Map();\n\n private _pendingPages: any = new Set();\n\n private get _isInfiniteMode(): boolean {\n return (\n this.variant === 'selection' &&\n typeof this.fetchPage === 'function' &&\n typeof this.totalCount === 'number' &&\n this.orientation !== 'both'\n );\n }\n\n private _effectiveTotalCount(): number {\n if (this._isInfiniteMode) return this.totalCount ?? 0;\n return this._filteredItems.length;\n }\n\n private _getItemAt(index: number): SelectionItem | undefined {\n if (!this._isInfiniteMode) return this._filteredItems[index];\n const pageSize = Math.max(1, this.pageSize);\n const pageIndex = Math.floor(index / pageSize);\n const page = this._pageCache.get(pageIndex);\n if (!page) return undefined;\n return page[index - pageIndex * pageSize];\n }\n\n private _scheduleFetchForRange(start: number, end: number) {\n if (!this._isInfiniteMode || !this.fetchPage) return;\n const pageSize = Math.max(1, this.pageSize);\n const total = this.totalCount ?? 0;\n if (total <= 0) return;\n\n const firstPage = Math.floor(start / pageSize);\n const lastPage = Math.floor(Math.min(end, total - 1) / pageSize);\n for (let p = firstPage; p <= lastPage; p++) {\n if (this._pageCache.has(p) || this._pendingPages.has(p)) continue;\n this._loadPage(p);\n }\n }\n\n private async _loadPage(pageIndex: number) {\n if (!this.fetchPage) return;\n const pageSize = Math.max(1, this.pageSize);\n const offset = pageIndex * pageSize;\n const total = this.totalCount ?? 0;\n const limit = Math.min(pageSize, Math.max(0, total - offset));\n if (limit <= 0) return;\n\n this._pendingPages.add(pageIndex);\n try {\n const rows = await this.fetchPage(offset, limit);\n this._pageCache.set(pageIndex, Array.isArray(rows) ? rows : []);\n this.dispatchEvent(\n new CustomEvent('nile-page-load', {\n detail: { pageIndex, offset, limit, rows: this._pageCache.get(pageIndex) },\n bubbles: true,\n composed: true,\n })\n );\n } catch (err) {\n this.dispatchEvent(\n new CustomEvent('nile-page-error', {\n detail: { pageIndex, offset, limit, error: err },\n bubbles: true,\n composed: true,\n })\n );\n } finally {\n this._pendingPages.delete(pageIndex);\n this.requestUpdate();\n }\n }\n\n /** Public: clear the page cache (use after a query change to refetch). */\n resetPages() {\n this._pageCache = new Map();\n this._pendingPages = new Set();\n this.requestUpdate();\n }\n\n private get _isVirtualized(): boolean {\n if (!IS_BROWSER) return false;\n if (this._isInfiniteMode) return true;\n return this.variant === 'selection'\n && (this.virtualize || this.items.length > this.virtualizeThreshold);\n }\n\n private get _columnWidthPx(): number {\n const parsed = parseInt(this.minColumnWidth, 10);\n return Number.isFinite(parsed) && parsed > 0 ? parsed : 220;\n }\n\n firstUpdated() {\n this._detailOpen = this.open;\n this.body.hidden = !this.open;\n this.body.style.height = this.open ? 'auto' : '0';\n this._syncSelectedFromProperty();\n if (this._restoreDefaults === null) {\n this._restoreDefaults = [...this._selectedSet];\n }\n this._setupGridResizeObserver();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this._gridResizeObserver?.disconnect();\n this._gridResizeObserver = null;\n }\n\n updated(_changed: Map<string, unknown>) {\n if (this.variant === 'selection') {\n this._setupGridResizeObserver();\n this._syncVirtualizer();\n this._scheduleTooltipOverflowCheck();\n }\n }\n\n private _syncVirtualizer() {\n if (!IS_BROWSER) return;\n if (!this._isVirtualized) {\n this._virtCtrl = null;\n this._rowVirtCtrl = null;\n this._colVirtCtrl = null;\n return;\n }\n const grid = this.shadowRoot?.querySelector('.detail__selection-grid') as HTMLElement | null;\n if (!grid) return;\n\n if (this.orientation === 'both') {\n this._virtCtrl = null;\n this._syncBothVirtualizers();\n return;\n }\n\n // Reset 2-axis controllers if we switched away from 'both'.\n this._rowVirtCtrl = null;\n this._colVirtCtrl = null;\n\n const count = this._effectiveTotalCount();\n const isVertical = this.orientation === 'vertical';\n const lanes = Math.max(1, isVertical ? this.gridColumns : this.gridRows);\n const itemSize = isVertical ? this.laneHeight : this._columnWidthPx;\n\n if (!this._virtCtrl) {\n this._virtCtrl = new VirtualizerController<HTMLElement, HTMLElement>(this, {\n count,\n getScrollElement: () =>\n this.shadowRoot?.querySelector('.detail__selection-grid') as HTMLElement | null,\n estimateSize: () => itemSize,\n horizontal: !isVertical,\n lanes,\n overscan: this.overscan,\n });\n return;\n }\n\n const v = this._virtCtrl.getVirtualizer();\n const prev = v.options;\n const orientationChanged = !!prev.horizontal !== !isVertical;\n if (\n prev.count !== count ||\n prev.lanes !== lanes ||\n prev.overscan !== this.overscan ||\n orientationChanged\n ) {\n v.setOptions({\n ...prev,\n count,\n lanes,\n overscan: this.overscan,\n horizontal: !isVertical,\n estimateSize: () => itemSize,\n });\n v.measure();\n }\n }\n\n private _syncBothVirtualizers() {\n const totalItems = this._filteredItems.length;\n const cols = Math.max(1, this.matrixColumns);\n const rows = Math.max(1, Math.ceil(totalItems / cols));\n const columnWidth = this._columnWidthPx;\n const rowHeight = this.laneHeight;\n const getScrollEl = () =>\n this.shadowRoot?.querySelector('.detail__selection-grid') as HTMLElement | null;\n\n if (!this._rowVirtCtrl) {\n this._rowVirtCtrl = new VirtualizerController<HTMLElement, HTMLElement>(this, {\n count: rows,\n getScrollElement: getScrollEl,\n estimateSize: () => rowHeight,\n horizontal: false,\n overscan: this.overscan,\n });\n } else {\n const rv = this._rowVirtCtrl.getVirtualizer();\n const prev = rv.options;\n if (prev.count !== rows || prev.overscan !== this.overscan) {\n rv.setOptions({\n ...prev,\n count: rows,\n overscan: this.overscan,\n estimateSize: () => rowHeight,\n });\n rv.measure();\n }\n }\n\n if (!this._colVirtCtrl) {\n this._colVirtCtrl = new VirtualizerController<HTMLElement, HTMLElement>(this, {\n count: cols,\n getScrollElement: getScrollEl,\n estimateSize: () => columnWidth,\n horizontal: true,\n overscan: this.overscan,\n });\n } else {\n const cv = this._colVirtCtrl.getVirtualizer();\n const prev = cv.options;\n if (prev.count !== cols || prev.overscan !== this.overscan) {\n cv.setOptions({\n ...prev,\n count: cols,\n overscan: this.overscan,\n estimateSize: () => columnWidth,\n });\n cv.measure();\n }\n }\n }\n\n private _setupGridResizeObserver() {\n if (this.variant !== 'selection') return;\n if (typeof ResizeObserver === 'undefined') return;\n const grid = this.shadowRoot?.querySelector('.detail__selection-grid') as HTMLElement | null;\n if (!grid) return;\n if (this._gridResizeObserver) return;\n this._gridResizeObserver = new ResizeObserver(() => this._scheduleTooltipOverflowCheck());\n this._gridResizeObserver.observe(grid);\n }\n\n private _scheduleTooltipOverflowCheck() {\n if (typeof requestAnimationFrame === 'undefined') return;\n requestAnimationFrame(() => this._updateTooltipOverflowStates());\n }\n\n private async _updateTooltipOverflowStates() {\n const tooltips = this.shadowRoot?.querySelectorAll(\n '.detail__selection-tooltip'\n ) as NodeListOf<HTMLElement> | undefined;\n if (!tooltips) return;\n for (const tip of tooltips) {\n const cb = tip.querySelector('nile-checkbox') as HTMLElement & { updateComplete?: Promise<unknown> } | null;\n if (!cb) continue;\n if (cb.updateComplete) await cb.updateComplete;\n const labelEl = cb.shadowRoot?.querySelector('[part=\"label\"]') as HTMLElement | null;\n const overflowing = !!labelEl && labelEl.scrollWidth > labelEl.clientWidth + 1;\n if (overflowing) tip.removeAttribute('disabled');\n else tip.setAttribute('disabled', '');\n }\n }\n\n @watch('selected', { waitUntilFirstUpdate: false })\n _onSelectedPropertyChange() {\n this._syncSelectedFromProperty();\n }\n\n @watch('config', { waitUntilFirstUpdate: false })\n _onConfigChange() {\n this._applyConfig();\n }\n\n private _applyConfig() {\n const c = this.config;\n if (!c) return;\n\n if (c.variant !== undefined) this.variant = c.variant;\n if (c.heading !== undefined) this.heading = c.heading;\n if (c.description !== undefined) this.description = c.description;\n if (c.itemsLabel !== undefined) this.itemsLabel = c.itemsLabel;\n if (c.open !== undefined) this.open = c.open;\n if (c.disabled !== undefined) this.disabled = c.disabled;\n\n if (c.items !== undefined) this.items = c.items;\n if (c.selected !== undefined) this.selected = c.selected;\n if (c.renderItemConfig !== undefined) this.renderItemConfig = c.renderItemConfig;\n if (c.allowHtmlLabel !== undefined) this.allowHtmlLabel = c.allowHtmlLabel;\n\n if (c.layout) {\n const l = c.layout;\n if (l.orientation !== undefined) this.orientation = l.orientation;\n if (l.gridRows !== undefined) this.gridRows = l.gridRows;\n if (l.gridColumns !== undefined) this.gridColumns = l.gridColumns;\n if (l.matrixColumns !== undefined) this.matrixColumns = l.matrixColumns;\n if (l.minColumnWidth !== undefined) this.minColumnWidth = l.minColumnWidth;\n if (l.laneHeight !== undefined) this.laneHeight = l.laneHeight;\n if (l.maxHeight !== undefined) this.maxHeight = l.maxHeight;\n if (l.expandIconPlacement !== undefined) this.expandIconPlacement = l.expandIconPlacement;\n }\n\n if (c.search) {\n if (c.search.placeholder !== undefined) this.searchPlaceholder = c.search.placeholder;\n if (c.search.disableLocal !== undefined) this.disableLocalSearch = c.search.disableLocal;\n }\n\n if (c.virtualization) {\n if (c.virtualization.enabled !== undefined) this.virtualize = c.virtualization.enabled;\n if (c.virtualization.threshold !== undefined) this.virtualizeThreshold = c.virtualization.threshold;\n if (c.virtualization.overscan !== undefined) this.overscan = c.virtualization.overscan;\n }\n\n if (c.pagination) {\n if (c.pagination.totalCount !== undefined) this.totalCount = c.pagination.totalCount;\n if (c.pagination.pageSize !== undefined) this.pageSize = c.pagination.pageSize;\n if (c.pagination.fetchPage !== undefined) this.fetchPage = c.pagination.fetchPage;\n if (c.pagination.placeholderLabel !== undefined) this.placeholderLabel = c.pagination.placeholderLabel;\n }\n\n if (c.labels) {\n if (c.labels.restore !== undefined) this.restoreLabel = c.labels.restore;\n if (c.labels.clear !== undefined) this.clearLabel = c.labels.clear;\n if (c.labels.selectedOnly !== undefined) this.selectedOnlyLabel = c.labels.selectedOnly;\n if (c.labels.showAll !== undefined) this.showAllLabel = c.labels.showAll;\n }\n\n if (c.showSelectedToggle !== undefined) this.showSelectedToggle = c.showSelectedToggle;\n }\n\n private _syncSelectedFromProperty() {\n this._selectedSet = new Set(this.selected || []);\n }\n\n private _getItemValue(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getValue) return String(rc.getValue(item));\n if (typeof item === 'string') return item;\n return String((item as NileDetailSelectionItem).value ?? '');\n }\n\n private _getItemLabel(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getDisplayText) return rc.getDisplayText(item);\n if (typeof item === 'string') return item;\n return (item as NileDetailSelectionItem).label ?? this._getItemValue(item);\n }\n\n private _getItemSearchText(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getSearchText) return rc.getSearchText(item);\n return this._getItemLabel(item);\n }\n\n private _getItemDescription(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getDescription) return rc.getDescription(item) ?? '';\n if (typeof item === 'string') return '';\n return (item as NileDetailSelectionItem).description ?? '';\n }\n\n private _getItemPrefix(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getPrefix) return rc.getPrefix(item) ?? '';\n if (typeof item === 'string') return '';\n return (item as NileDetailSelectionItem).prefix ?? '';\n }\n\n private _getItemSuffix(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getSuffix) return rc.getSuffix(item) ?? '';\n if (typeof item === 'string') return '';\n return (item as NileDetailSelectionItem).suffix ?? '';\n }\n\n private _getItemDisabled(item: SelectionItem): boolean {\n const rc = this.renderItemConfig;\n if (rc?.getDisabled) return !!rc.getDisabled(item);\n if (typeof item === 'string') return false;\n return !!(item as NileDetailSelectionItem).disabled;\n }\n\n private _getItemClassName(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getClassName) return rc.getClassName(item) ?? '';\n if (typeof item === 'string') return '';\n return (item as NileDetailSelectionItem).className ?? '';\n }\n\n private get _filteredItems(): SelectionItem[] {\n let source: SelectionItem[] = this.items;\n\n if (this._showSelectedOnly) {\n source = source.filter(item => this._selectedSet.has(this._getItemValue(item)));\n }\n\n if (this.disableLocalSearch) return source;\n const q = this._searchTerm.trim().toLowerCase();\n if (!q) return source;\n return source.filter(item =>\n this._getItemSearchText(item).toLowerCase().includes(q)\n );\n }\n\n private _onToggleSelectedOnly(event: Event) {\n event.preventDefault();\n const next = !this._showSelectedOnly;\n if (next && this._selectedSet.size === 0) return;\n this._showSelectedOnly = next;\n }\n\n private _selectableValues(): string[] {\n const source: SelectionItem[] = this._isInfiniteMode\n ? (Array.from(this._pageCache.values()).flat() as SelectionItem[])\n : this.items;\n return source\n .filter(i => !this._getItemDisabled(i))\n .map(i => this._getItemValue(i));\n }\n\n private get _allChecked(): boolean {\n const selectable = this._selectableValues();\n if (selectable.length === 0) return false;\n return selectable.every(v => this._selectedSet.has(v));\n }\n\n private get _indeterminate(): boolean {\n const selectable = this._selectableValues();\n const sel = selectable.filter(v => this._selectedSet.has(v)).length;\n return sel > 0 && sel < selectable.length;\n }\n\n private get _countLabel(): string {\n const total = this._isInfiniteMode ? (this.totalCount ?? 0) : this.items.length;\n return `${this._selectedSet.size} of ${total} ${this.itemsLabel} selected`;\n }\n\n private _emitSelectionChange() {\n this.selected = [...this._selectedSet];\n this.dispatchEvent(\n new CustomEvent('nile-change', {\n detail: { selected: [...this._selectedSet] },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private _onItemChange(value: string, disabled: boolean, event: Event) {\n if (disabled) {\n event.preventDefault();\n return;\n }\n const target = event.target as HTMLInputElement;\n const next = new Set(this._selectedSet);\n if (target.checked) next.add(value);\n else next.delete(value);\n this._selectedSet = next;\n this._emitSelectionChange();\n }\n\n private _onSelectAllChange(event: Event) {\n const target = event.target as HTMLInputElement;\n const selectable = this._selectableValues();\n const next = new Set(this._selectedSet);\n if (target.checked) selectable.forEach(v => next.add(v));\n else selectable.forEach(v => next.delete(v));\n this._selectedSet = next;\n this._emitSelectionChange();\n }\n\n private _emitSearch(value: string) {\n this.dispatchEvent(\n new CustomEvent('nile-search', {\n detail: { value },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private _onSearchInput(event: Event) {\n const target = event.target as HTMLInputElement;\n const value = target.value ?? '';\n this._searchTerm = value;\n if (this.disableLocalSearch) this._emitSearch(value);\n }\n\n private _onSearchClear() {\n this._searchTerm = '';\n if (this.disableLocalSearch) this._emitSearch('');\n }\n\n private _onRestore(event: Event) {\n event.preventDefault();\n const source = this._restoreDefaults ?? this._selectableValues();\n this._selectedSet = new Set(source);\n this._emitSelectionChange();\n }\n\n private _onClear(event: Event) {\n event.preventDefault();\n this._selectedSet = new Set();\n this._showSelectedOnly = false;\n this._emitSelectionChange();\n }\n\n private _stopHeaderToggle(event: Event) {\n event.stopPropagation();\n }\n\n private _handleSummaryClick(event: Event) {\n event.preventDefault();\n handleSummaryClick(this);\n }\n\n private _handleSummaryKeyDown(event: KeyboardEvent) {\n handleSummaryKeyDown(event, this);\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n if (this.open) {\n this._detailOpen = true;\n await animateShow(this);\n } else {\n await animateHide(this);\n this._detailOpen = false;\n }\n }\n\n async show() {\n return showDetail(this);\n }\n\n async hide() {\n return hideDetail(this);\n }\n\n private get _summaryLabel(): string {\n return [this.heading, this.description].filter(Boolean).join(', ');\n }\n\n private _renderSelectionLabel(): TemplateResult {\n return html`\n <div part=\"selection-label\" class=\"detail__selection-label\">\n <nile-checkbox\n part=\"select-all\"\n class=\"detail__select-all\"\n ?checked=${this._allChecked}\n ?indeterminate=${this._indeterminate}\n aria-label=${`Select all ${this.heading || this.itemsLabel}`}\n @click=${this._stopHeaderToggle}\n @nile-change=${this._onSelectAllChange}\n ></nile-checkbox>\n <div class=\"detail__selection-title\">\n <span part=\"label-text\" class=\"detail__heading-text\">${this.heading}</span>\n <span part=\"selection-count\" class=\"detail__selection-count\">${this._countLabel}</span>\n </div>\n </div>\n `;\n }\n\n private _renderSelectionBody(): TemplateResult {\n const virtualized = this._isVirtualized;\n const isVertical = this.orientation === 'vertical';\n const isBoth = this.orientation === 'both';\n const laneHeightPx = this.laneHeight;\n const columnWidth = this._columnWidthPx;\n\n let gridStyle = '';\n if (virtualized) {\n if (isBoth) {\n gridStyle = `max-height: ${this.maxHeight}; height: ${this.maxHeight};`;\n } else if (isVertical) {\n gridStyle = `max-height: ${this.maxHeight}; height: ${this.maxHeight};`;\n } else {\n const lanes = Math.max(1, this.gridRows);\n gridStyle = `height: ${lanes * laneHeightPx}px;`;\n }\n } else if (isVertical) {\n const cols = Math.max(1, this.gridColumns);\n gridStyle = `grid-template-columns: repeat(${cols}, minmax(0, 1fr)); grid-auto-flow: row; max-height: ${this.maxHeight}; overflow-y: auto; overflow-x: hidden;`;\n } else {\n const lanes = Math.max(1, this.gridRows);\n gridStyle = `grid-template-rows: repeat(${lanes}, auto); grid-auto-columns: minmax(${this.minColumnWidth}, 1fr);`;\n }\n\n return html`\n <div part=\"selection-toolbar\" class=\"detail__selection-toolbar\">\n <slot name=\"tooblar-actions-prefix\"></slot>\n <slot name=\"toolbar-search\" class=\"detail__selection-search-slot\">\n <nile-input\n part=\"search\"\n class=\"detail__selection-search\"\n placeholder=${this.searchPlaceholder}\n clearable\n .value=${this._searchTerm}\n @nile-input=${this._onSearchInput}\n @nile-clear=${this._onSearchClear}\n >\n <nile-icon slot=\"prefix\" name=\"search\" library=\"system\"></nile-icon>\n </nile-input>\n </slot>\n <slot name=\"toolbar-actions\" class=\"detail__selection-actions\">\n ${this.showSelectedToggle\n ? html`\n <nile-link\n href=\"#\"\n variant=\"subtle\"\n class=\"detail__selected-toggle\"\n @click=${this._onToggleSelectedOnly}\n >\n <nile-icon slot=\"prefix\" name=\"filter\" library=\"system\"></nile-icon>\n ${this._showSelectedOnly ? this.showAllLabel : this.selectedOnlyLabel}\n </nile-link>\n `\n : nothing}\n <nile-link href=\"#\" variant=\"subtle\" @click=${this._onRestore}>${this.restoreLabel}</nile-link>\n <nile-link href=\"#\" variant=\"subtle\" @click=${this._onClear}>${this.clearLabel}</nile-link>\n </slot>\n <slot name=\"tooblar-actions-suffix\"></slot>\n </div>\n <div\n part=\"selection-grid\"\n class=${classMap({\n 'detail__selection-grid': true,\n 'detail__selection-grid--virtual': virtualized,\n 'detail__selection-grid--vertical': isVertical,\n 'detail__selection-grid--both': isBoth,\n })}\n style=${gridStyle}\n >\n ${virtualized\n ? (isBoth\n ? this._renderBothVirtualGrid(laneHeightPx, columnWidth)\n : this._renderVirtualGrid(laneHeightPx, columnWidth, isVertical))\n : this._renderStaticGrid()}\n </div>\n `;\n }\n\n private _renderItemContent(item: SelectionItem): TemplateResult {\n const label = this._getItemLabel(item);\n const description = this._getItemDescription(item);\n const prefix = this._getItemPrefix(item);\n const suffix = this._getItemSuffix(item);\n const allowHtml = this.allowHtmlLabel;\n return html`\n ${prefix\n ? html`<span class=\"detail__selection-prefix\" part=\"item-prefix\">${allowHtml ? unsafeHTML(prefix) : prefix}</span>`\n : ''}\n <span class=\"detail__selection-text\" part=\"item-text\">\n <span class=\"detail__selection-item-label\" part=\"item-label\">${allowHtml ? unsafeHTML(label) : label}</span>\n ${description\n ? html`<span class=\"detail__selection-desc\" part=\"item-description\">${allowHtml ? unsafeHTML(description) : description}</span>`\n : ''}\n </span>\n ${suffix\n ? html`<span class=\"detail__selection-suffix\" part=\"item-suffix\">${allowHtml ? unsafeHTML(suffix) : suffix}</span>`\n : ''}\n `;\n }\n\n private _renderItemTooltip(item: SelectionItem, opts: { positionStyle?: string; extraClasses?: string } = {}): TemplateResult {\n const value = this._getItemValue(item);\n const label = this._getItemLabel(item);\n const description = this._getItemDescription(item);\n const isDisabled = this._getItemDisabled(item);\n const className = this._getItemClassName(item);\n const tooltipContent = description ? `${label} — ${description}` : label;\n\n const tooltipClass = `detail__selection-tooltip${opts.extraClasses ? ' ' + opts.extraClasses : ''}`;\n const checkboxClass = classMap({\n 'detail__selection-checkbox': true,\n 'detail__selection-checkbox--disabled': isDisabled,\n [className]: !!className,\n });\n\n return html`\n <nile-lite-tooltip\n class=${tooltipClass}\n content=${tooltipContent}\n size=\"small\"\n disabled\n style=${opts.positionStyle ?? nothing as any}\n >\n <nile-checkbox\n class=${checkboxClass}\n ?checked=${this._selectedSet.has(value)}\n ?disabled=${isDisabled}\n @nile-change=${(e: Event) => this._onItemChange(value, isDisabled, e)}\n >${this._renderItemContent(item)}</nile-checkbox>\n </nile-lite-tooltip>\n `;\n }\n\n private _renderStaticGrid(): TemplateResult {\n return html`${this._filteredItems.map(item => this._renderItemTooltip(item))}`;\n }\n\n private _renderBothVirtualGrid(_laneHeightPx: number, _columnWidthPx: number): TemplateResult {\n const rowV = this._rowVirtCtrl?.getVirtualizer();\n const colV = this._colVirtCtrl?.getVirtualizer();\n const rowTotal = rowV?.getTotalSize() ?? 0;\n const colTotal = colV?.getTotalSize() ?? 0;\n const rowItems = rowV?.getVirtualItems() ?? [];\n const colItems = colV?.getVirtualItems() ?? [];\n const cols = Math.max(1, this.matrixColumns);\n const total = this._filteredItems.length;\n\n return html`\n <div\n class=\"detail__selection-track\"\n style=\"width: ${colTotal}px; height: ${rowTotal}px; position: relative;\"\n >\n ${rowItems.flatMap(rvi =>\n colItems.map(cvi => {\n const idx = rvi.index * cols + cvi.index;\n if (idx >= total) return null;\n const item = this._filteredItems[idx];\n if (item === undefined) return null;\n const positionStyle = `position: absolute; top: ${rvi.start}px; left: ${cvi.start}px; width: ${cvi.size}px; height: ${rvi.size}px;`;\n return this._renderItemTooltip(item, {\n positionStyle,\n extraClasses: 'detail__selection-tooltip--virtual',\n });\n })\n )}\n </div>\n `;\n }\n\n private _renderVirtualGrid(\n laneHeightPx: number,\n _columnWidthPx: number,\n isVertical: boolean\n ): TemplateResult {\n const v = this._virtCtrl?.getVirtualizer();\n const totalSize = v?.getTotalSize() ?? 0;\n const virtualItems = v?.getVirtualItems() ?? [];\n const lanes = Math.max(1, isVertical ? this.gridColumns : this.gridRows);\n\n if (this._isInfiniteMode && virtualItems.length > 0) {\n const first = virtualItems[0].index;\n const last = virtualItems[virtualItems.length - 1].index;\n this._scheduleFetchForRange(first, last);\n }\n\n const trackStyle = isVertical\n ? `width: 100%; height: ${totalSize}px; position: relative;`\n : `width: ${totalSize}px; height: 100%; position: relative;`;\n\n return html`\n <div class=\"detail__selection-track\" style=${trackStyle}>\n ${virtualItems.map(vi => {\n const laneIdx = vi.lane ?? 0;\n const positionStyle = isVertical\n ? `position: absolute; top: ${vi.start}px; left: calc(${laneIdx} * (100% / ${lanes})); width: calc(100% / ${lanes}); height: ${vi.size}px;`\n : `position: absolute; top: ${laneIdx * laneHeightPx}px; left: ${vi.start}px; width: ${vi.size}px; height: ${laneHeightPx}px;`;\n const item = this._getItemAt(vi.index);\n if (item === undefined) {\n return this._renderPlaceholder(positionStyle);\n }\n return this._renderItemTooltip(item, {\n positionStyle,\n extraClasses: 'detail__selection-tooltip--virtual',\n });\n })}\n </div>\n `;\n }\n\n private _renderPlaceholder(positionStyle: string): TemplateResult {\n return html`\n <div class=\"detail__selection-placeholder\" style=${positionStyle} part=\"item-placeholder\">\n <div class=\"detail__selection-placeholder-bar\"></div>\n <span class=\"detail__selection-placeholder-label\">${this.placeholderLabel}</span>\n </div>\n `;\n }\n\n render(): TemplateResult {\n const isSelection = this.variant === 'selection';\n return html`\n <details\n part=\"base\"\n ?open=${this._detailOpen}\n class=${classMap({\n 'detail': true,\n 'detail--open': this.open,\n 'detail--disabled': this.disabled,\n 'detail--selection': isSelection,\n })}\n >\n <summary\n part=\"header\"\n id=\"header\"\n class=${classMap({\n 'detail__header': true,\n 'detail__header--icon-left': this.expandIconPlacement === 'left',\n })}\n aria-label=${this._summaryLabel || nothing}\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-disabled=${this.disabled ? 'true' : 'false'}\n tabindex=${this.disabled ? '-1' : '0'}\n @click=${this._handleSummaryClick}\n @keydown=${this._handleSummaryKeyDown}\n >\n <slot name=\"label\" part=\"label\" class=\"detail__label\">\n ${isSelection\n ? this._renderSelectionLabel()\n : html`\n <span part=\"label-text\" class=\"detail__heading-text\">${this.heading}</span>\n ${this.description\n ? html`<span part=\"description\" class=\"detail__description\">${this.description}</span>`\n : ''}\n `}\n </slot>\n\n <slot name=\"header-actions\" part=\"header-actions\" class=\"detail__header-actions\"></slot>\n\n <slot name=\"prefix\" part=\"prefix\" class=\"detail__prefix\"></slot>\n\n <span part=\"summary-icon\" class=\"detail__summary-icon\" aria-hidden=\"true\">\n <slot name=\"expand-icon\">\n <nile-icon\n name=\"var(--nile-icon-arrow-right, var(--ng-icon-chevron-right))\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\"\n library=\"system\"\n ></nile-icon>\n </slot>\n </span>\n\n <slot name=\"suffix\" part=\"suffix\" class=\"detail__suffix\"></slot>\n\n </summary>\n\n <div part=\"content\" class=\"detail__body\">\n ${isSelection\n ? html`<div part=\"selection-content\" class=\"detail__selection-content\">${this._renderSelectionBody()}</div>`\n : ''}\n <slot id=\"content\" class=\"detail__content\"></slot>\n </div>\n </details>\n `;\n }\n}\n\nexport default NileDetail;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-detail': NileDetail;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"nile-detail.js","sourceRoot":"","sources":["../../../src/nile-detail/nile-detail.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult, nothing } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { styles } from './nile-detail.css';\nimport NileElement from '../internal/nile-element';\nimport { watch } from '../internal/watch';\nimport {\n animateShow,\n animateHide,\n showDetail,\n hideDetail,\n handleSummaryClick,\n handleSummaryKeyDown,\n} from './nile-detail.utils';\nimport '../nile-checkbox/index';\nimport '../nile-input/index';\nimport '../nile-link/index';\nimport '../nile-icon/index';\nimport '../nile-lite-tooltip/index';\nimport { VirtualizerController } from '@tanstack/lit-virtual';\nimport type { CSSResultGroup } from 'lit';\n\nexport type NileDetailVariant = 'default' | 'selection';\n\nexport interface NileDetailSelectionItem {\n value: string;\n label?: string;\n description?: string;\n prefix?: string;\n suffix?: string;\n disabled?: boolean;\n className?: string;\n}\n\nexport interface NileDetailRenderItemConfig {\n getDisplayText: (item: any) => string;\n getValue?: (item: any) => string;\n getSearchText?: (item: any) => string;\n getDescription?: (item: any) => string;\n getPrefix?: (item: any) => string;\n getSuffix?: (item: any) => string;\n getDisabled?: (item: any) => boolean;\n getClassName?: (item: any) => string;\n}\n\ntype SelectionItem = string | NileDetailSelectionItem | Record<string, any>;\n\nconst IS_BROWSER = typeof window !== 'undefined';\n\nexport interface NileDetailSelectionConfig {\n // Identity\n variant?: NileDetailVariant;\n heading?: string;\n description?: string;\n itemsLabel?: string;\n\n // Items / selection\n items?: SelectionItem[];\n selected?: string[];\n renderItemConfig?: NileDetailRenderItemConfig;\n allowHtmlLabel?: boolean;\n\n // Layout\n layout?: {\n orientation?: 'horizontal' | 'vertical' | 'both';\n gridRows?: number;\n gridColumns?: number;\n matrixColumns?: number;\n minColumnWidth?: string;\n laneHeight?: number;\n maxHeight?: string;\n expandIconPlacement?: 'left' | 'right';\n };\n\n // Search\n search?: {\n placeholder?: string;\n disableLocal?: boolean;\n };\n\n // Virtualization\n virtualization?: {\n enabled?: boolean;\n threshold?: number;\n overscan?: number;\n };\n\n // Pagination / infinite scroll\n pagination?: {\n totalCount?: number;\n pageSize?: number;\n fetchPage?: (offset: number, limit: number) => Promise<SelectionItem[]>;\n placeholderLabel?: string;\n };\n\n // Action labels\n labels?: {\n restore?: string;\n clear?: string;\n selectedOnly?: string;\n showAll?: string;\n };\n\n showSelectedToggle?: boolean;\n\n // Inherited / passthrough\n open?: boolean;\n disabled?: boolean;\n}\n\n@customElement('nile-detail')\nexport class NileDetail extends NileElement {\n\n static styles: CSSResultGroup = styles;\n\n @query('details') detail: HTMLDetailsElement;\n @query('summary') header: HTMLElement;\n @query('.detail__body') body: HTMLElement;\n\n @property({ attribute: true, type: Boolean, reflect: true }) open = false;\n\n @property({ attribute: true, type: String, reflect: true }) heading = '';\n\n @property({ attribute: true, type: String, reflect: true }) description = '';\n\n @property({ attribute: true, reflect: true }) expandIconPlacement: 'left' | 'right' = 'right';\n\n @property({ attribute: true, type: Boolean, reflect: true }) disabled = false;\n\n @property({ attribute: true, type: String, reflect: true }) variant: NileDetailVariant = 'default';\n\n @property({ attribute: false, type: Array }) items: SelectionItem[] = [];\n\n @property({ attribute: false, type: Array }) selected: string[] = [];\n\n @property({ attribute: false }) renderItemConfig?: NileDetailRenderItemConfig;\n\n @property({ attribute: 'allow-html-label', type: Boolean }) allowHtmlLabel = false;\n\n @property({ attribute: 'disable-local-search', type: Boolean }) disableLocalSearch = false;\n\n @property({ attribute: 'total-count', type: Number }) totalCount?: number;\n\n @property({ attribute: 'page-size', type: Number }) pageSize = 200;\n\n @property({ attribute: false }) fetchPage?: (offset: number, limit: number) => Promise<SelectionItem[]>;\n\n @property({ attribute: 'placeholder-label', type: String }) placeholderLabel = 'Loading…';\n\n @property({ attribute: false }) config?: NileDetailSelectionConfig;\n\n @property({ attribute: 'search-placeholder', type: String }) searchPlaceholder = 'Search...';\n\n @property({ attribute: 'items-label', type: String }) itemsLabel = 'attributes';\n\n @property({ attribute: 'restore-label', type: String }) restoreLabel = 'Restore';\n\n @property({ attribute: 'clear-label', type: String }) clearLabel = 'Clear';\n\n @property({ attribute: 'grid-rows', type: Number }) gridRows = 6;\n\n @property({ attribute: 'grid-columns', type: Number }) gridColumns = 3;\n\n @property({ attribute: 'min-column-width', type: String }) minColumnWidth = '220px';\n\n @property({ attribute: 'lane-height', type: Number }) laneHeight = 32;\n\n @property({ attribute: true, type: String, reflect: true }) orientation: 'horizontal' | 'vertical' | 'both' = 'horizontal';\n\n @property({ attribute: 'max-height', type: String }) maxHeight = '320px';\n\n @property({ attribute: 'matrix-columns', type: Number }) matrixColumns = 20;\n\n @property({ attribute: true, type: Boolean }) virtualize = false;\n\n @property({ attribute: 'virtualize-threshold', type: Number }) virtualizeThreshold = 60;\n\n @property({ attribute: 'overscan', type: Number }) overscan = 4;\n\n @state() private _detailOpen = false;\n\n @state() private _hasSlottedContent = false;\n\n @state() private _searchTerm = '';\n\n @state() private _selectedSet: Set<string> = new Set();\n\n @state() private _showSelectedOnly = false;\n\n @property({ attribute: 'show-selected-toggle', type: Boolean, reflect: true }) showSelectedToggle = false;\n\n @property({ attribute: 'selected-only-label', type: String }) selectedOnlyLabel = 'Selected';\n\n @property({ attribute: 'show-all-label', type: String }) showAllLabel = 'Show all';\n\n private _restoreDefaults: string[] | null = null;\n\n private _gridResizeObserver: ResizeObserver | null = null;\n\n private _virtCtrl: VirtualizerController<HTMLElement, HTMLElement> | null = null;\n\n private _rowVirtCtrl: VirtualizerController<HTMLElement, HTMLElement> | null = null;\n\n private _colVirtCtrl: VirtualizerController<HTMLElement, HTMLElement> | null = null;\n\n private _pageCache: any = new Map();\n\n private _pendingPages: any = new Set();\n\n private get _isInfiniteMode(): boolean {\n return (\n this.variant === 'selection' &&\n typeof this.fetchPage === 'function' &&\n typeof this.totalCount === 'number' &&\n this.orientation !== 'both'\n );\n }\n\n private _effectiveTotalCount(): number {\n if (this._isInfiniteMode) return this.totalCount ?? 0;\n return this._filteredItems.length;\n }\n\n private _getItemAt(index: number): SelectionItem | undefined {\n if (!this._isInfiniteMode) return this._filteredItems[index];\n const pageSize = Math.max(1, this.pageSize);\n const pageIndex = Math.floor(index / pageSize);\n const page = this._pageCache.get(pageIndex);\n if (!page) return undefined;\n return page[index - pageIndex * pageSize];\n }\n\n private _scheduleFetchForRange(start: number, end: number) {\n if (!this._isInfiniteMode || !this.fetchPage) return;\n const pageSize = Math.max(1, this.pageSize);\n const total = this.totalCount ?? 0;\n if (total <= 0) return;\n\n const firstPage = Math.floor(start / pageSize);\n const lastPage = Math.floor(Math.min(end, total - 1) / pageSize);\n for (let p = firstPage; p <= lastPage; p++) {\n if (this._pageCache.has(p) || this._pendingPages.has(p)) continue;\n this._loadPage(p);\n }\n }\n\n private async _loadPage(pageIndex: number) {\n if (!this.fetchPage) return;\n const pageSize = Math.max(1, this.pageSize);\n const offset = pageIndex * pageSize;\n const total = this.totalCount ?? 0;\n const limit = Math.min(pageSize, Math.max(0, total - offset));\n if (limit <= 0) return;\n\n this._pendingPages.add(pageIndex);\n try {\n const rows = await this.fetchPage(offset, limit);\n this._pageCache.set(pageIndex, Array.isArray(rows) ? rows : []);\n this.dispatchEvent(\n new CustomEvent('nile-page-load', {\n detail: { pageIndex, offset, limit, rows: this._pageCache.get(pageIndex) },\n bubbles: true,\n composed: true,\n })\n );\n } catch (err) {\n this.dispatchEvent(\n new CustomEvent('nile-page-error', {\n detail: { pageIndex, offset, limit, error: err },\n bubbles: true,\n composed: true,\n })\n );\n } finally {\n this._pendingPages.delete(pageIndex);\n this.requestUpdate();\n }\n }\n\n /** Public: clear the page cache (use after a query change to refetch). */\n resetPages() {\n this._pageCache = new Map();\n this._pendingPages = new Set();\n this.requestUpdate();\n }\n\n private get _isVirtualized(): boolean {\n if (!IS_BROWSER) return false;\n if (this._isInfiniteMode) return true;\n return this.variant === 'selection'\n && (this.virtualize || this.items.length > this.virtualizeThreshold);\n }\n\n private get _columnWidthPx(): number {\n const parsed = parseInt(this.minColumnWidth, 10);\n return Number.isFinite(parsed) && parsed > 0 ? parsed : 220;\n }\n\n firstUpdated() {\n this._detailOpen = this.open;\n this.body.hidden = !this.open;\n this.body.style.height = this.open ? 'auto' : '0';\n this._syncSelectedFromProperty();\n if (this._restoreDefaults === null) {\n this._restoreDefaults = [...this._selectedSet];\n }\n this._setupGridResizeObserver();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this._gridResizeObserver?.disconnect();\n this._gridResizeObserver = null;\n }\n\n updated(_changed: Map<string, unknown>) {\n if (this.variant === 'selection') {\n this._setupGridResizeObserver();\n this._syncVirtualizer();\n this._scheduleTooltipOverflowCheck();\n }\n }\n\n private _syncVirtualizer() {\n if (!IS_BROWSER) return;\n if (!this._isVirtualized) {\n this._virtCtrl = null;\n this._rowVirtCtrl = null;\n this._colVirtCtrl = null;\n return;\n }\n const grid = this.shadowRoot?.querySelector('.detail__selection-grid') as HTMLElement | null;\n if (!grid) return;\n\n if (this.orientation === 'both') {\n this._virtCtrl = null;\n this._syncBothVirtualizers();\n return;\n }\n\n // Reset 2-axis controllers if we switched away from 'both'.\n this._rowVirtCtrl = null;\n this._colVirtCtrl = null;\n\n const count = this._effectiveTotalCount();\n const isVertical = this.orientation === 'vertical';\n const lanes = Math.max(1, isVertical ? this.gridColumns : this.gridRows);\n const itemSize = isVertical ? this.laneHeight : this._columnWidthPx;\n\n if (!this._virtCtrl) {\n this._virtCtrl = new VirtualizerController<HTMLElement, HTMLElement>(this, {\n count,\n getScrollElement: () =>\n this.shadowRoot?.querySelector('.detail__selection-grid') as HTMLElement | null,\n estimateSize: () => itemSize,\n horizontal: !isVertical,\n lanes,\n overscan: this.overscan,\n });\n return;\n }\n\n const v = this._virtCtrl.getVirtualizer();\n const prev = v.options;\n const orientationChanged = !!prev.horizontal !== !isVertical;\n if (\n prev.count !== count ||\n prev.lanes !== lanes ||\n prev.overscan !== this.overscan ||\n orientationChanged\n ) {\n v.setOptions({\n ...prev,\n count,\n lanes,\n overscan: this.overscan,\n horizontal: !isVertical,\n estimateSize: () => itemSize,\n });\n v.measure();\n }\n }\n\n private _syncBothVirtualizers() {\n const totalItems = this._filteredItems.length;\n const cols = Math.max(1, this.matrixColumns);\n const rows = Math.max(1, Math.ceil(totalItems / cols));\n const columnWidth = this._columnWidthPx;\n const rowHeight = this.laneHeight;\n const getScrollEl = () =>\n this.shadowRoot?.querySelector('.detail__selection-grid') as HTMLElement | null;\n\n if (!this._rowVirtCtrl) {\n this._rowVirtCtrl = new VirtualizerController<HTMLElement, HTMLElement>(this, {\n count: rows,\n getScrollElement: getScrollEl,\n estimateSize: () => rowHeight,\n horizontal: false,\n overscan: this.overscan,\n });\n } else {\n const rv = this._rowVirtCtrl.getVirtualizer();\n const prev = rv.options;\n if (prev.count !== rows || prev.overscan !== this.overscan) {\n rv.setOptions({\n ...prev,\n count: rows,\n overscan: this.overscan,\n estimateSize: () => rowHeight,\n });\n rv.measure();\n }\n }\n\n if (!this._colVirtCtrl) {\n this._colVirtCtrl = new VirtualizerController<HTMLElement, HTMLElement>(this, {\n count: cols,\n getScrollElement: getScrollEl,\n estimateSize: () => columnWidth,\n horizontal: true,\n overscan: this.overscan,\n });\n } else {\n const cv = this._colVirtCtrl.getVirtualizer();\n const prev = cv.options;\n if (prev.count !== cols || prev.overscan !== this.overscan) {\n cv.setOptions({\n ...prev,\n count: cols,\n overscan: this.overscan,\n estimateSize: () => columnWidth,\n });\n cv.measure();\n }\n }\n }\n\n private _setupGridResizeObserver() {\n if (this.variant !== 'selection') return;\n if (typeof ResizeObserver === 'undefined') return;\n const grid = this.shadowRoot?.querySelector('.detail__selection-grid') as HTMLElement | null;\n if (!grid) return;\n if (this._gridResizeObserver) return;\n this._gridResizeObserver = new ResizeObserver(() => this._scheduleTooltipOverflowCheck());\n this._gridResizeObserver.observe(grid);\n }\n\n private _scheduleTooltipOverflowCheck() {\n if (typeof requestAnimationFrame === 'undefined') return;\n requestAnimationFrame(() => this._updateTooltipOverflowStates());\n }\n\n private async _updateTooltipOverflowStates() {\n const tooltips = this.shadowRoot?.querySelectorAll(\n '.detail__selection-tooltip'\n ) as NodeListOf<HTMLElement> | undefined;\n if (!tooltips) return;\n for (const tip of tooltips) {\n const cb = tip.querySelector('nile-checkbox') as HTMLElement & { updateComplete?: Promise<unknown> } | null;\n if (!cb) continue;\n if (cb.updateComplete) await cb.updateComplete;\n const labelEl = cb.shadowRoot?.querySelector('[part=\"label\"]') as HTMLElement | null;\n const overflowing = !!labelEl && labelEl.scrollWidth > labelEl.clientWidth + 1;\n if (overflowing) tip.removeAttribute('disabled');\n else tip.setAttribute('disabled', '');\n }\n }\n\n @watch('selected', { waitUntilFirstUpdate: false })\n _onSelectedPropertyChange() {\n this._syncSelectedFromProperty();\n }\n\n @watch('config', { waitUntilFirstUpdate: false })\n _onConfigChange() {\n this._applyConfig();\n }\n\n private _applyConfig() {\n const c = this.config;\n if (!c) return;\n\n if (c.variant !== undefined) this.variant = c.variant;\n if (c.heading !== undefined) this.heading = c.heading;\n if (c.description !== undefined) this.description = c.description;\n if (c.itemsLabel !== undefined) this.itemsLabel = c.itemsLabel;\n if (c.open !== undefined) this.open = c.open;\n if (c.disabled !== undefined) this.disabled = c.disabled;\n\n if (c.items !== undefined) this.items = c.items;\n if (c.selected !== undefined) this.selected = c.selected;\n if (c.renderItemConfig !== undefined) this.renderItemConfig = c.renderItemConfig;\n if (c.allowHtmlLabel !== undefined) this.allowHtmlLabel = c.allowHtmlLabel;\n\n if (c.layout) {\n const l = c.layout;\n if (l.orientation !== undefined) this.orientation = l.orientation;\n if (l.gridRows !== undefined) this.gridRows = l.gridRows;\n if (l.gridColumns !== undefined) this.gridColumns = l.gridColumns;\n if (l.matrixColumns !== undefined) this.matrixColumns = l.matrixColumns;\n if (l.minColumnWidth !== undefined) this.minColumnWidth = l.minColumnWidth;\n if (l.laneHeight !== undefined) this.laneHeight = l.laneHeight;\n if (l.maxHeight !== undefined) this.maxHeight = l.maxHeight;\n if (l.expandIconPlacement !== undefined) this.expandIconPlacement = l.expandIconPlacement;\n }\n\n if (c.search) {\n if (c.search.placeholder !== undefined) this.searchPlaceholder = c.search.placeholder;\n if (c.search.disableLocal !== undefined) this.disableLocalSearch = c.search.disableLocal;\n }\n\n if (c.virtualization) {\n if (c.virtualization.enabled !== undefined) this.virtualize = c.virtualization.enabled;\n if (c.virtualization.threshold !== undefined) this.virtualizeThreshold = c.virtualization.threshold;\n if (c.virtualization.overscan !== undefined) this.overscan = c.virtualization.overscan;\n }\n\n if (c.pagination) {\n if (c.pagination.totalCount !== undefined) this.totalCount = c.pagination.totalCount;\n if (c.pagination.pageSize !== undefined) this.pageSize = c.pagination.pageSize;\n if (c.pagination.fetchPage !== undefined) this.fetchPage = c.pagination.fetchPage;\n if (c.pagination.placeholderLabel !== undefined) this.placeholderLabel = c.pagination.placeholderLabel;\n }\n\n if (c.labels) {\n if (c.labels.restore !== undefined) this.restoreLabel = c.labels.restore;\n if (c.labels.clear !== undefined) this.clearLabel = c.labels.clear;\n if (c.labels.selectedOnly !== undefined) this.selectedOnlyLabel = c.labels.selectedOnly;\n if (c.labels.showAll !== undefined) this.showAllLabel = c.labels.showAll;\n }\n\n if (c.showSelectedToggle !== undefined) this.showSelectedToggle = c.showSelectedToggle;\n }\n\n private _syncSelectedFromProperty() {\n this._selectedSet = new Set(this.selected || []);\n }\n\n private _getItemValue(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getValue) return String(rc.getValue(item));\n if (typeof item === 'string') return item;\n return String((item as NileDetailSelectionItem).value ?? '');\n }\n\n private _getItemLabel(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getDisplayText) return rc.getDisplayText(item);\n if (typeof item === 'string') return item;\n return (item as NileDetailSelectionItem).label ?? this._getItemValue(item);\n }\n\n private _getItemSearchText(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getSearchText) return rc.getSearchText(item);\n return this._getItemLabel(item);\n }\n\n private _getItemDescription(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getDescription) return rc.getDescription(item) ?? '';\n if (typeof item === 'string') return '';\n return (item as NileDetailSelectionItem).description ?? '';\n }\n\n private _getItemPrefix(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getPrefix) return rc.getPrefix(item) ?? '';\n if (typeof item === 'string') return '';\n return (item as NileDetailSelectionItem).prefix ?? '';\n }\n\n private _getItemSuffix(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getSuffix) return rc.getSuffix(item) ?? '';\n if (typeof item === 'string') return '';\n return (item as NileDetailSelectionItem).suffix ?? '';\n }\n\n private _getItemDisabled(item: SelectionItem): boolean {\n const rc = this.renderItemConfig;\n if (rc?.getDisabled) return !!rc.getDisabled(item);\n if (typeof item === 'string') return false;\n return !!(item as NileDetailSelectionItem).disabled;\n }\n\n private _getItemClassName(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getClassName) return rc.getClassName(item) ?? '';\n if (typeof item === 'string') return '';\n return (item as NileDetailSelectionItem).className ?? '';\n }\n\n private get _filteredItems(): SelectionItem[] {\n let source: SelectionItem[] = this.items;\n\n if (this._showSelectedOnly) {\n source = source.filter(item => this._selectedSet.has(this._getItemValue(item)));\n }\n\n if (this.disableLocalSearch) return source;\n const q = this._searchTerm.trim().toLowerCase();\n if (!q) return source;\n return source.filter(item =>\n this._getItemSearchText(item).toLowerCase().includes(q)\n );\n }\n\n private _onToggleSelectedOnly(event: Event) {\n event.preventDefault();\n const next = !this._showSelectedOnly;\n if (next && this._selectedSet.size === 0) return;\n this._showSelectedOnly = next;\n }\n\n private _selectableValues(): string[] {\n const source: SelectionItem[] = this._isInfiniteMode\n ? (Array.from(this._pageCache.values()).flat() as SelectionItem[])\n : this.items;\n return source\n .filter(i => !this._getItemDisabled(i))\n .map(i => this._getItemValue(i));\n }\n\n private get _allChecked(): boolean {\n const selectable = this._selectableValues();\n if (selectable.length === 0) return false;\n return selectable.every(v => this._selectedSet.has(v));\n }\n\n private get _indeterminate(): boolean {\n const selectable = this._selectableValues();\n const sel = selectable.filter(v => this._selectedSet.has(v)).length;\n return sel > 0 && sel < selectable.length;\n }\n\n private get _countLabel(): string {\n const total = this._isInfiniteMode ? (this.totalCount ?? 0) : this.items.length;\n return `${this._selectedSet.size} of ${total} ${this.itemsLabel} selected`;\n }\n\n private _emitSelectionChange() {\n this.selected = [...this._selectedSet];\n this.dispatchEvent(\n new CustomEvent('nile-change', {\n detail: { selected: [...this._selectedSet] },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private _onItemChange(value: string, disabled: boolean, event: Event) {\n if (disabled) {\n event.preventDefault();\n return;\n }\n const target = event.target as HTMLInputElement;\n const next = new Set(this._selectedSet);\n if (target.checked) next.add(value);\n else next.delete(value);\n this._selectedSet = next;\n this._emitSelectionChange();\n }\n\n private _onSelectAllChange(event: Event) {\n const target = event.target as HTMLInputElement;\n const selectable = this._selectableValues();\n const next = new Set(this._selectedSet);\n if (target.checked) selectable.forEach(v => next.add(v));\n else selectable.forEach(v => next.delete(v));\n this._selectedSet = next;\n this._emitSelectionChange();\n }\n\n private _emitSearch(value: string) {\n this.dispatchEvent(\n new CustomEvent('nile-search', {\n detail: { value },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private _onSearchInput(event: Event) {\n const target = event.target as HTMLInputElement;\n const value = target.value ?? '';\n this._searchTerm = value;\n if (this.disableLocalSearch) this._emitSearch(value);\n }\n\n private _onSearchClear() {\n this._searchTerm = '';\n if (this.disableLocalSearch) this._emitSearch('');\n }\n\n private _onRestore(event: Event) {\n event.preventDefault();\n const source = this._restoreDefaults ?? this._selectableValues();\n this._selectedSet = new Set(source);\n this._emitSelectionChange();\n }\n\n private _onClear(event: Event) {\n event.preventDefault();\n this._selectedSet = new Set();\n this._showSelectedOnly = false;\n this._emitSelectionChange();\n }\n\n private _handleDefaultSlotChange(event: Event) {\n const slot = event.target as HTMLSlotElement;\n const nodes = slot.assignedNodes({ flatten: true });\n this._hasSlottedContent = nodes.some(node => {\n if (node.nodeType === Node.ELEMENT_NODE) return true;\n if (node.nodeType === Node.TEXT_NODE) return !!(node.textContent && node.textContent.trim());\n return false;\n });\n }\n\n private _stopHeaderToggle(event: Event) {\n event.stopPropagation();\n }\n\n private _handleSummaryClick(event: Event) {\n event.preventDefault();\n handleSummaryClick(this);\n }\n\n private _handleSummaryKeyDown(event: KeyboardEvent) {\n handleSummaryKeyDown(event, this);\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n if (this.open) {\n this._detailOpen = true;\n await animateShow(this);\n } else {\n await animateHide(this);\n this._detailOpen = false;\n }\n }\n\n async show() {\n return showDetail(this);\n }\n\n async hide() {\n return hideDetail(this);\n }\n\n private get _summaryLabel(): string {\n return [this.heading, this.description].filter(Boolean).join(', ');\n }\n\n private _renderSelectionLabel(): TemplateResult {\n return html`\n <div part=\"selection-label\" class=\"detail__selection-label\">\n <nile-checkbox\n part=\"select-all\"\n class=\"detail__select-all\"\n ?checked=${this._allChecked}\n ?indeterminate=${this._indeterminate}\n aria-label=${`Select all ${this.heading || this.itemsLabel}`}\n @click=${this._stopHeaderToggle}\n @nile-change=${this._onSelectAllChange}\n ></nile-checkbox>\n <div class=\"detail__selection-title\">\n <span part=\"label-text\" class=\"detail__heading-text\">${this.heading}</span>\n <span part=\"selection-count\" class=\"detail__selection-count\">${this._countLabel}</span>\n </div>\n </div>\n `;\n }\n\n private _renderSelectionBody(): TemplateResult {\n const virtualized = this._isVirtualized;\n const isVertical = this.orientation === 'vertical';\n const isBoth = this.orientation === 'both';\n const laneHeightPx = this.laneHeight;\n const columnWidth = this._columnWidthPx;\n\n let gridStyle = '';\n if (virtualized) {\n if (isBoth) {\n gridStyle = `max-height: ${this.maxHeight}; height: ${this.maxHeight};`;\n } else if (isVertical) {\n gridStyle = `max-height: ${this.maxHeight}; height: ${this.maxHeight};`;\n } else {\n const lanes = Math.max(1, this.gridRows);\n gridStyle = `height: ${lanes * laneHeightPx}px;`;\n }\n } else if (isVertical) {\n const cols = Math.max(1, this.gridColumns);\n gridStyle = `grid-template-columns: repeat(${cols}, minmax(0, 1fr)); grid-auto-flow: row; max-height: ${this.maxHeight}; overflow-y: auto; overflow-x: hidden;`;\n } else {\n const lanes = Math.max(1, this.gridRows);\n gridStyle = `grid-template-rows: repeat(${lanes}, auto); grid-auto-columns: minmax(${this.minColumnWidth}, 1fr);`;\n }\n\n return html`\n <div part=\"selection-toolbar\" class=\"detail__selection-toolbar\">\n <slot name=\"tooblar-actions-prefix\"></slot>\n <slot name=\"toolbar-search\" class=\"detail__selection-search-slot\">\n <nile-input\n part=\"search\"\n class=\"detail__selection-search\"\n placeholder=${this.searchPlaceholder}\n clearable\n .value=${this._searchTerm}\n @nile-input=${this._onSearchInput}\n @nile-clear=${this._onSearchClear}\n >\n <nile-icon slot=\"prefix\" name=\"search\" library=\"system\"></nile-icon>\n </nile-input>\n </slot>\n <slot name=\"toolbar-actions\" class=\"detail__selection-actions\">\n ${this.showSelectedToggle\n ? html`\n <nile-link\n href=\"#\"\n variant=\"subtle\"\n class=\"detail__selected-toggle\"\n @click=${this._onToggleSelectedOnly}\n >\n <nile-icon slot=\"prefix\" name=\"filter\" library=\"system\"></nile-icon>\n ${this._showSelectedOnly ? this.showAllLabel : this.selectedOnlyLabel}\n </nile-link>\n `\n : nothing}\n <nile-link href=\"#\" variant=\"subtle\" @click=${this._onRestore}>${this.restoreLabel}</nile-link>\n <nile-link href=\"#\" variant=\"subtle\" @click=${this._onClear}>${this.clearLabel}</nile-link>\n </slot>\n <slot name=\"tooblar-actions-suffix\"></slot>\n </div>\n <div\n part=\"selection-grid\"\n class=${classMap({\n 'detail__selection-grid': true,\n 'detail__selection-grid--virtual': virtualized,\n 'detail__selection-grid--vertical': isVertical,\n 'detail__selection-grid--both': isBoth,\n })}\n style=${gridStyle}\n >\n ${virtualized\n ? (isBoth\n ? this._renderBothVirtualGrid(laneHeightPx, columnWidth)\n : this._renderVirtualGrid(laneHeightPx, columnWidth, isVertical))\n : this._renderStaticGrid()}\n </div>\n `;\n }\n\n private _renderItemContent(item: SelectionItem): TemplateResult {\n const label = this._getItemLabel(item);\n const description = this._getItemDescription(item);\n const prefix = this._getItemPrefix(item);\n const suffix = this._getItemSuffix(item);\n const allowHtml = this.allowHtmlLabel;\n return html`\n ${prefix\n ? html`<span class=\"detail__selection-prefix\" part=\"item-prefix\">${allowHtml ? unsafeHTML(prefix) : prefix}</span>`\n : ''}\n <span class=\"detail__selection-text\" part=\"item-text\">\n <span class=\"detail__selection-item-label\" part=\"item-label\">${allowHtml ? unsafeHTML(label) : label}</span>\n ${description\n ? html`<span class=\"detail__selection-desc\" part=\"item-description\">${allowHtml ? unsafeHTML(description) : description}</span>`\n : ''}\n </span>\n ${suffix\n ? html`<span class=\"detail__selection-suffix\" part=\"item-suffix\">${allowHtml ? unsafeHTML(suffix) : suffix}</span>`\n : ''}\n `;\n }\n\n private _renderItemTooltip(item: SelectionItem, opts: { positionStyle?: string; extraClasses?: string } = {}): TemplateResult {\n const value = this._getItemValue(item);\n const label = this._getItemLabel(item);\n const description = this._getItemDescription(item);\n const isDisabled = this._getItemDisabled(item);\n const className = this._getItemClassName(item);\n const tooltipContent = description ? `${label} — ${description}` : label;\n\n const tooltipClass = `detail__selection-tooltip${opts.extraClasses ? ' ' + opts.extraClasses : ''}`;\n const checkboxClass = classMap({\n 'detail__selection-checkbox': true,\n 'detail__selection-checkbox--disabled': isDisabled,\n [className]: !!className,\n });\n\n return html`\n <nile-lite-tooltip\n class=${tooltipClass}\n content=${tooltipContent}\n size=\"small\"\n disabled\n style=${opts.positionStyle ?? nothing as any}\n >\n <nile-checkbox\n class=${checkboxClass}\n ?checked=${this._selectedSet.has(value)}\n ?disabled=${isDisabled}\n @nile-change=${(e: Event) => this._onItemChange(value, isDisabled, e)}\n >${this._renderItemContent(item)}</nile-checkbox>\n </nile-lite-tooltip>\n `;\n }\n\n private _renderStaticGrid(): TemplateResult {\n return html`${this._filteredItems.map(item => this._renderItemTooltip(item))}`;\n }\n\n private _renderBothVirtualGrid(_laneHeightPx: number, _columnWidthPx: number): TemplateResult {\n const rowV = this._rowVirtCtrl?.getVirtualizer();\n const colV = this._colVirtCtrl?.getVirtualizer();\n const rowTotal = rowV?.getTotalSize() ?? 0;\n const colTotal = colV?.getTotalSize() ?? 0;\n const rowItems = rowV?.getVirtualItems() ?? [];\n const colItems = colV?.getVirtualItems() ?? [];\n const cols = Math.max(1, this.matrixColumns);\n const total = this._filteredItems.length;\n\n return html`\n <div\n class=\"detail__selection-track\"\n style=\"width: ${colTotal}px; height: ${rowTotal}px; position: relative;\"\n >\n ${rowItems.flatMap(rvi =>\n colItems.map(cvi => {\n const idx = rvi.index * cols + cvi.index;\n if (idx >= total) return null;\n const item = this._filteredItems[idx];\n if (item === undefined) return null;\n const positionStyle = `position: absolute; top: ${rvi.start}px; left: ${cvi.start}px; width: ${cvi.size}px; height: ${rvi.size}px;`;\n return this._renderItemTooltip(item, {\n positionStyle,\n extraClasses: 'detail__selection-tooltip--virtual',\n });\n })\n )}\n </div>\n `;\n }\n\n private _renderVirtualGrid(\n laneHeightPx: number,\n _columnWidthPx: number,\n isVertical: boolean\n ): TemplateResult {\n const v = this._virtCtrl?.getVirtualizer();\n const totalSize = v?.getTotalSize() ?? 0;\n const virtualItems = v?.getVirtualItems() ?? [];\n const lanes = Math.max(1, isVertical ? this.gridColumns : this.gridRows);\n\n if (this._isInfiniteMode && virtualItems.length > 0) {\n const first = virtualItems[0].index;\n const last = virtualItems[virtualItems.length - 1].index;\n this._scheduleFetchForRange(first, last);\n }\n\n const trackStyle = isVertical\n ? `width: 100%; height: ${totalSize}px; position: relative;`\n : `width: ${totalSize}px; height: 100%; position: relative;`;\n\n return html`\n <div class=\"detail__selection-track\" style=${trackStyle}>\n ${virtualItems.map(vi => {\n const laneIdx = vi.lane ?? 0;\n const positionStyle = isVertical\n ? `position: absolute; top: ${vi.start}px; left: calc(${laneIdx} * (100% / ${lanes})); width: calc(100% / ${lanes}); height: ${vi.size}px;`\n : `position: absolute; top: ${laneIdx * laneHeightPx}px; left: ${vi.start}px; width: ${vi.size}px; height: ${laneHeightPx}px;`;\n const item = this._getItemAt(vi.index);\n if (item === undefined) {\n return this._renderPlaceholder(positionStyle);\n }\n return this._renderItemTooltip(item, {\n positionStyle,\n extraClasses: 'detail__selection-tooltip--virtual',\n });\n })}\n </div>\n `;\n }\n\n private _renderPlaceholder(positionStyle: string): TemplateResult {\n return html`\n <div class=\"detail__selection-placeholder\" style=${positionStyle} part=\"item-placeholder\">\n <div class=\"detail__selection-placeholder-bar\"></div>\n <span class=\"detail__selection-placeholder-label\">${this.placeholderLabel}</span>\n </div>\n `;\n }\n\n render(): TemplateResult {\n const isSelection = this.variant === 'selection';\n return html`\n <details\n part=\"base\"\n ?open=${this._detailOpen}\n class=${classMap({\n 'detail': true,\n 'detail--open': this.open,\n 'detail--disabled': this.disabled,\n 'detail--selection': isSelection,\n })}\n >\n <summary\n part=\"header\"\n id=\"header\"\n class=${classMap({\n 'detail__header': true,\n 'detail__header--icon-left': this.expandIconPlacement === 'left',\n })}\n aria-label=${this._summaryLabel || nothing}\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-disabled=${this.disabled ? 'true' : 'false'}\n tabindex=${this.disabled ? '-1' : '0'}\n @click=${this._handleSummaryClick}\n @keydown=${this._handleSummaryKeyDown}\n >\n <slot name=\"label\" part=\"label\" class=\"detail__label\">\n ${isSelection\n ? this._renderSelectionLabel()\n : html`\n <span part=\"label-text\" class=\"detail__heading-text\">${this.heading}</span>\n ${this.description\n ? html`<span part=\"description\" class=\"detail__description\">${this.description}</span>`\n : ''}\n `}\n </slot>\n\n <slot name=\"header-actions\" part=\"header-actions\" class=\"detail__header-actions\"></slot>\n\n <slot name=\"prefix\" part=\"prefix\" class=\"detail__prefix\"></slot>\n\n <span part=\"summary-icon\" class=\"detail__summary-icon\" aria-hidden=\"true\">\n <slot name=\"expand-icon\">\n <nile-icon\n name=\"var(--nile-icon-arrow-right, var(--ng-icon-chevron-right))\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\"\n library=\"system\"\n ></nile-icon>\n </slot>\n </span>\n\n <slot name=\"suffix\" part=\"suffix\" class=\"detail__suffix\"></slot>\n\n </summary>\n\n <div part=\"content\" class=\"detail__body\">\n ${isSelection\n ? html`<div part=\"selection-content\" class=\"detail__selection-content\">${this._renderSelectionBody()}</div>`\n : ''}\n <slot\n id=\"content\"\n class=${classMap({\n 'detail__content': true,\n 'detail__content--empty': !this._hasSlottedContent,\n })}\n @slotchange=${this._handleDefaultSlotChange}\n ></slot>\n </div>\n </details>\n `;\n }\n}\n\nexport default NileDetail;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-detail': NileDetail;\n }\n}\n"]}
|
package/dist/src/version.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Version utility - placeholders will be replaced during build
|
|
2
|
-
export const NILE_ELEMENTS_VERSION = '1.7.
|
|
2
|
+
export const NILE_ELEMENTS_VERSION = '1.7.7';
|
|
3
3
|
export const NILE_VERSION = '1.2.4';
|
|
4
4
|
// Set global versions for runtime access
|
|
5
5
|
if (typeof window !== 'undefined') {
|
package/dist/src/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAE/C,yCAAyC;AACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IACjC,MAAc,CAAC,mBAAmB,GAAG,qBAAqB,CAAC;IAC3D,MAAc,CAAC,WAAW,GAAG,YAAY,CAAC;IAC3C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC;AACzE,CAAC","sourcesContent":["// Version utility - placeholders will be replaced during build\nexport const NILE_ELEMENTS_VERSION = '1.7.
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAE/C,yCAAyC;AACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IACjC,MAAc,CAAC,mBAAmB,GAAG,qBAAqB,CAAC;IAC3D,MAAc,CAAC,WAAW,GAAG,YAAY,CAAC;IAC3C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC;AACzE,CAAC","sourcesContent":["// Version utility - placeholders will be replaced during build\nexport const NILE_ELEMENTS_VERSION = '1.7.7';\nexport const NILE_VERSION = '1.2.4';\n\n// Set global versions for runtime access\nif (typeof window !== 'undefined') {\n (window as any).nileElementsVersion = NILE_ELEMENTS_VERSION;\n (window as any).nileVersion = NILE_VERSION;\n window.process = window.process || { env: { NODE_ENV: 'production' } };\n}\n"]}
|