@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-dropdown.js","sourceRoot":"","sources":["../../../src/nile-dropdown/nile-dropdown.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\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\nimport {LitElement, html, CSSResultArray, TemplateResult, PropertyValues} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport {styles} from './nile-dropdown.css';\nimport { animateTo, stopAnimations } from '../internal/animate';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query } from 'lit/decorators.js';\nimport { getAnimation, setDefaultAnimation } from '../utilities/animation-registry';\nimport { getTabbableBoundary } from '../internal/tabbable';\nimport { waitForEvent } from '../internal/event';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup } from 'lit';\nimport type NileButton from '../nile-button/nile-button';\nimport type NileIconButton from '../nile-icon-button/nile-icon-button';\nimport type { NileMenu } from '../nile-menu';\nimport type { NilePopup } from '../nile-popup';\nimport '../nile-popup';\nimport { DropdownPortalManager } from './portal-manager';\nimport { VisibilityManager } from '../utilities/visibility-manager.js';\n\n/**\n * Nile icon component.\n *\n * @tag nile-dropdown\n * @summary Dropdowns expose additional content that \"drops down\" in a panel.\n * @dependency nile-popup\n *\n * @slot - The dropdown's main content.\n * @slot trigger - The dropdown's trigger, usually a `<nile-button>` element.\n *\n * @event nile-show - Emitted when the dropdown opens.\n * @event nile-after-show - Emitted after the dropdown opens and all animations are complete.\n * @event nile-hide - Emitted when the dropdown closes.\n * @event nile-after-hide - Emitted after the dropdown closes and all animations are complete.\n *\n * @csspart base - The component's base wrapper.\n * @csspart trigger - The container that wraps the trigger.\n * @csspart panel - The panel that gets shown when the dropdown is open.\n *\n * @animation dropdown.show - The animation to use when showing the dropdown.\n * @animation dropdown.hide - The animation to use when hiding the dropdown.\n */\n@customElement('nile-dropdown')\nexport class NileDropdown extends NileElement {\n static styles: CSSResultGroup = styles;\n\n @query('.dropdown') popup: NilePopup;\n @query('.dropdown__trigger') trigger: HTMLSlotElement;\n @query('.dropdown__panel') panel: HTMLSlotElement;\n\n\n /**\n * Indicates whether or not the dropdown is open. You can toggle this attribute to show and hide the dropdown, or you\n * can use the `show()` and `hide()` methods and this attribute will reflect the dropdown's open state.\n */\n @property({ type: Boolean, reflect: true }) open = false;\n\n /**\n * The preferred placement of the dropdown panel. Note that the actual placement may vary as needed to keep the panel\n * inside of the viewport.\n */\n @property({ reflect: true }) placement:\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'left'\n | 'left-start'\n | 'left-end' = 'bottom-start';\n\n /** Disables the dropdown so the panel will not open. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /**\n * By default, the dropdown is closed when an item is selected. This attribute will keep it open instead. Useful for\n * dropdowns that allow for multiple interactions.\n */\n @property({ attribute: 'stay-open-on-select', type: Boolean, reflect: true }) stayOpenOnSelect = false;\n\n /**\n * The dropdown will close when the user interacts outside of this element (e.g. clicking). Useful for composing other\n * components that use a dropdown internally.\n */\n @property({ attribute: false }) containingElement?: HTMLElement;\n\n /** The distance in pixels from which to offset the panel away from its trigger. */\n @property({ type: Number }) distance = 0;\n\n\n @property({ type: Boolean }) noOpenOnClick = false;\n\n /** The distance in pixels from which to offset the panel along its trigger. */\n @property({ type: Number }) skidding = 0;\n\n /** Syncs the popup's width or height to that of the anchor element. */\n @property() sync: 'width' | 'height' | 'both';\n\n /**\n * Enable this option to prevent the panel 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 /**\n * Enable portal mode to render the dropdown panel in a portal outside the component's DOM tree.\n * This provides better positioning control and prevents clipping issues in complex layouts.\n */\n @property({ type: Boolean, reflect: true }) portal = false;\n\n @property({ type: Boolean, reflect: true }) enableVisibilityEffect = false;\n\n @property({ type: Boolean, reflect: true }) enableTabClose = false;\n\n\n private portalManager: DropdownPortalManager | null = null;\n private visibilityManager?: VisibilityManager;\n\n connectedCallback() {\n super.connectedCallback();\n this.handlePanelSelect = this.handlePanelSelect.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);\n this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);\n\n if (!this.containingElement) {\n this.containingElement = this;\n }\n this.emit('nile-init');\n\n requestAnimationFrame(() => {\n if (this.portal && !this.portalManager) {\n this.portalManager = new DropdownPortalManager(this);\n }\n });\n }\n\n protected async firstUpdated(_changed: PropertyValues) {\n \n this.panel.hidden = !this.open;\n\n // If the dropdown is visible on init, update its position\n if (this.open) {\n this.addOpenListeners();\n this.popup.active = true;\n }\n \n await this.updateComplete;\n const triggerNode = this.trigger.assignedElements({ flatten: true })[0] as HTMLElement | undefined;\n \n this.visibilityManager = new VisibilityManager({\n host: this,\n target: triggerNode || null,\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 });\n },\n onDocumentHidden: () => {\n this.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'document-hidden',\n });\n },\n emit: (event, detail) => this.emit(`nile-${event}`, detail),\n });\n }\n \n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.visibilityManager?.cleanup();\n this.removeOpenListeners();\n this.hide();\n this.emit('nile-destroy');\n\n if (this.portalManager) {\n this.portalManager.cleanupPortalAppend();\n this.portalManager = null;\n }\n }\n\n focusOnTrigger() {\n const trigger = this.trigger.assignedElements({ flatten: true })[0] as HTMLElement | undefined;\n if (typeof trigger?.focus === 'function') {\n trigger.focus();\n }\n }\n\n getMenu() {\n return this.panel.assignedElements({ flatten: true }).find(el => el.tagName.toLowerCase() === 'nile-menu') as\n | NileMenu\n | undefined;\n }\n\n handleKeyDown(event: KeyboardEvent) {\n // Close when escape is pressed inside an open dropdown. We need to listen on the panel itself and stop propagation\n // in case any ancestors are also listening for this key.\n if (this.open && event.key === 'Escape') {\n event.stopPropagation();\n this.hide();\n this.focusOnTrigger();\n }\n }\n\n handleDocumentKeyDown(event: KeyboardEvent) {\n // Close when escape or tab is pressed\n if (event.key === 'Escape' && this.open) {\n event.stopPropagation();\n this.focusOnTrigger();\n this.hide();\n return;\n }\n\n // Handle tabbing\n if (event.key === 'Tab') {\n // Tabbing within an open menu should close the dropdown and refocus the trigger\n if (this.open && document.activeElement?.tagName.toLowerCase() === 'nile-menu-item') {\n event.preventDefault();\n this.hide();\n this.focusOnTrigger();\n return;\n }\n\n // Tabbing outside of the containing element closes the panel\n //\n // If the dropdown is used within a shadow DOM, we need to obtain the activeElement within that shadowRoot,\n // otherwise `document.activeElement` will only return the name of the parent shadow DOM element.\n setTimeout(() => {\n const activeElement =\n this.containingElement?.getRootNode() instanceof ShadowRoot\n ? document.activeElement?.shadowRoot?.activeElement\n : document.activeElement;\n\n const hitSelf = this.containingElement && activeElement?.closest(this.containingElement.tagName.toLowerCase()) === this.containingElement;\n const hitPortalAppend = this.portal && this.portalManager?.portalContainerElement && \n (activeElement === this.portalManager.portalContainerElement || \n activeElement?.closest('.nile-dropdown-portal-append') === this.portalManager.portalContainerElement);\n\n if (!hitSelf && !hitPortalAppend) {\n this.hide();\n }\n });\n }\n }\n\n handleDocumentMouseDown(event: MouseEvent) {\n // Close when clicking outside of the containing element\n const path = event.composedPath();\n const hitSelf = this.containingElement && path.includes(this.containingElement);\n const hitPortalAppend = this.portal && this.portalManager?.portalContainerElement && path.includes(this.portalManager.portalContainerElement);\n\n if (!hitSelf && !hitPortalAppend) {\n this.hide();\n }\n }\n\n handlePanelSelect(event: any) {\n const target = event.target as HTMLElement;\n\n // Hide the dropdown when a menu item is selected\n if (!this.stayOpenOnSelect && target.tagName.toLowerCase() === 'nile-menu') {\n this.hide();\n this.focusOnTrigger();\n } else if(this.stayOpenOnSelect && target.tagName.toLowerCase() === 'nile-menu') {\n this.show();\n this.focusOnTrigger();\n }\n }\n\n handleTriggerClick() {\n if(this.noOpenOnClick){\n return;\n }\n if (this.open) {\n this.hide();\n } else {\n this.show();\n this.focusOnTrigger();\n }\n }\n\n handleTriggerKeyDown(event: KeyboardEvent) {\n // When spacebar/enter is pressed, show the panel but don't focus on the menu. This let's the user press the same\n // key again to hide the menu in case they don't want to make a selection.\n // if (['Enter'].includes(event.key)) {\n // event.preventDefault();\n // this.handleTriggerClick();\n // return;\n // }\n\n const menu = this.getMenu();\n\n if (menu) {\n const menuItems = menu.getAllItems();\n const firstMenuItem = menuItems[0];\n const lastMenuItem = menuItems[menuItems.length - 1];\n\n // When up/down is pressed, we make the assumption that the user is familiar with the menu and plans to make a\n // selection. Rather than toggle the panel, we focus on the menu (if one exists) and activate the first item for\n // faster navigation.\n if (['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) {\n event.preventDefault();\n\n // Show the menu if it's not already open\n if (!this.open) {\n this.show();\n }\n\n if (menuItems.length > 0) {\n // Focus on the first/last menu item after showing\n this.updateComplete.then(() => {\n if (event.key === 'ArrowDown' || event.key === 'Home') {\n menu.setCurrentItem(firstMenuItem);\n firstMenuItem.focus();\n }\n\n if (event.key === 'ArrowUp' || event.key === 'End') {\n menu.setCurrentItem(lastMenuItem);\n lastMenuItem.focus();\n }\n });\n }\n }\n }\n }\n\n handleTriggerKeyUp(event: KeyboardEvent) {\n // Prevent space from triggering a click event in Firefox\n if (event.key === ' ') {\n event.preventDefault();\n }\n }\n\n handleTriggerSlotChange() {\n this.updateAccessibleTrigger();\n }\n\n //\n // Slotted triggers can be arbitrary content, but we need to link them to the dropdown panel with `aria-haspopup` and\n // `aria-expanded`. These must be applied to the \"accessible trigger\" (the tabbable portion of the trigger element\n // that gets slotted in) so screen readers will understand them. The accessible trigger could be the slotted element,\n // a child of the slotted element, or an element in the slotted element's shadow root.\n //\n // For example, the accessible trigger of an <nile-button> is a <button> located inside its shadow root.\n //\n // To determine this, we assume the first tabbable element in the trigger slot is the \"accessible trigger.\"\n //\n updateAccessibleTrigger() {\n const assignedElements = this.trigger.assignedElements({ flatten: true }) as HTMLElement[];\n const accessibleTrigger = assignedElements.find(el => getTabbableBoundary(el).start);\n let target: HTMLElement;\n\n if (accessibleTrigger) {\n switch (accessibleTrigger.tagName.toLowerCase()) {\n // nile buttons have to update the internal button so it's announced correctly by screen readers\n case 'nile-button':\n case 'nile-icon-button':\n target = (accessibleTrigger as NileButton | NileIconButton).button;\n break;\n\n default:\n target = accessibleTrigger;\n }\n\n target.setAttribute('aria-haspopup', 'true');\n target.setAttribute('aria-expanded', this.open ? 'true' : 'false');\n }\n }\n\n /** Shows the dropdown panel. */\n async show() {\n if (this.open) {\n return undefined;\n }\n\n this.open = true;\n return waitForEvent(this, 'nile-after-show');\n }\n\n /** Hides the dropdown panel */\n async hide() {\n if (!this.open) {\n return undefined;\n }\n\n this.open = false;\n return waitForEvent(this, 'nile-after-hide');\n }\n\n /**\n * Instructs the dropdown menu to reposition. Useful when the position or size of the trigger changes when the menu\n * is activated.\n */\n reposition() {\n this.popup.reposition();\n }\n\n addOpenListeners() {\n this.panel.addEventListener('nile-select', this.handlePanelSelect);\n this.panel.addEventListener('keydown', this.handleKeyDown);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n }\n\n removeOpenListeners() {\n if (this.panel) {\n this.panel.removeEventListener('nile-select', this.handlePanelSelect);\n this.panel.removeEventListener('keydown', this.handleKeyDown);\n }\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n }\n\n protected updated(changedProperties: PropertyValues): void {\n super.updated(changedProperties);\n \n if (changedProperties.has('portal')) {\n if (this.portal && !this.portalManager) {\n this.portalManager = new DropdownPortalManager(this);\n if (this.open) {\n this.portalManager.setupPortalAppend();\n }\n } else if (!this.portal && this.portalManager) {\n this.portalManager.cleanupPortalAppend();\n this.portalManager = null;\n }\n }\n if (changedProperties.has('disabled')) {\n this.updateTriggerDisabledState();\n }\n }\n \n private updateTriggerDisabledState() {\n const trigger = this.querySelector('[slot=\"trigger\"]') as HTMLElement | null;\n if (!trigger) return;\n if ('disabled' in trigger) {\n (trigger as any).disabled = this.disabled;\n }\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n this.visibilityManager?.setup();\n if (this.disabled) {\n this.open = false;\n return;\n }\n\n this.updateAccessibleTrigger();\n\n if (this.open) {\n // Show\n this.emit('nile-show');\n this.addOpenListeners();\n\n if (this.portal && this.portalManager) {\n this.portalManager.setupPortalAppend();\n } else if (this.portal && !this.portalManager) {\n this.portalManager = new DropdownPortalManager(this);\n this.portalManager.setupPortalAppend();\n }\n\n await stopAnimations(this);\n \n // Only show panel and animate if not using portal\n if (!this.portal) {\n this.panel.hidden = false;\n this.popup.active = true;\n const { keyframes, options } = getAnimation(this, 'dropdown.show', { dir: '' });\n await animateTo(this.popup.popup, keyframes, options);\n }\n\n this.emit('nile-after-show');\n } else {\n // Hide\n this.emit('nile-hide');\n this.removeOpenListeners();\n this.visibilityManager?.cleanup();\n\n if (this.portal && this.portalManager) {\n this.portalManager.cleanupPortalAppend();\n }\n\n await stopAnimations(this);\n \n // Only hide panel and animate if not using portal\n if (!this.portal) {\n const { keyframes, options } = getAnimation(this, 'dropdown.hide', { dir: '' });\n await animateTo(this.popup.popup, keyframes, options);\n this.panel.hidden = true;\n this.popup.active = false;\n }\n\n this.emit('nile-after-hide');\n }\n }\n\n render() {\n return html`\n <nile-popup\n part=\"base\"\n id=\"dropdown\"\n placement=${this.placement}\n distance=${this.distance}\n skidding=${this.skidding}\n strategy=${this.hoist ? 'fixed' : 'absolute'}\n sync=${this.sync}\n flip\n shift\n auto-size=\"both\"\n auto-size-padding=\"10\"\n class=${classMap({\n dropdown: true,\n 'dropdown--open': this.open\n })}\n >\n <slot\n name=\"trigger\"\n slot=\"anchor\"\n part=\"trigger\"\n class=\"dropdown__trigger\"\n @click=${this.handleTriggerClick}\n @keydown=${this.handleTriggerKeyDown}\n @keyup=${this.handleTriggerKeyUp}\n @slotchange=${this.handleTriggerSlotChange}\n ></slot>\n\n <slot\n part=\"panel\"\n class=\"dropdown__panel\"\n aria-hidden=${this.open ? 'false' : 'true'}\n aria-labelledby=\"dropdown\"\n style=${this.portal && this.portalManager ? 'display: none;' : ''}\n ></slot>\n </nile-popup>\n `;\n }\n}\n\nsetDefaultAnimation('dropdown.show', {\n keyframes: [\n { opacity: 0, scale: 0.9 },\n { opacity: 1, scale: 1 }\n ],\n options: { duration: 100, easing: 'ease' }\n});\n\nsetDefaultAnimation('dropdown.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 NileDropdown;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-dropdown': NileDropdown;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"nile-dropdown.js","sourceRoot":"","sources":["../../../src/nile-dropdown/nile-dropdown.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,EAAa,IAAI,EAAiD,MAAM,KAAK,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAG,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAMnD,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEI,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,WAAW;IAAtC;;QAQL;;;WAGG;QACyC,SAAI,GAAG,KAAK,CAAC;QAEzD;;;WAGG;QAC0B,cAAS,GAYrB,cAAc,CAAC;QAEhC,wDAAwD;QACZ,aAAQ,GAAG,KAAK,CAAC;QAE7D;;;WAGG;QAC2E,qBAAgB,GAAG,KAAK,CAAC;QAQvG,mFAAmF;QACvD,aAAQ,GAAG,CAAC,CAAC;QAGZ,kBAAa,GAAG,KAAK,CAAC;QAEnD,+EAA+E;QACnD,aAAQ,GAAG,CAAC,CAAC;QAKzC;;;WAGG;QAC0B,UAAK,GAAG,KAAK,CAAC;QAE3C;;;WAGG;QACyC,WAAM,GAAG,KAAK,CAAC;QAEf,2BAAsB,GAAG,KAAK,CAAC;QAE/B,mBAAc,GAAG,KAAK,CAAC;QAG3D,kBAAa,GAAiC,IAAI,CAAC;IA+a7D,CAAC;IA5aC,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEvB,qBAAqB,CAAC,GAAG,EAAE;YACzB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvC,IAAI,CAAC,aAAa,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACvD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,QAAwB;QAEnD,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAE/B,0DAA0D;QAC1D,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QAC3B,CAAC;QAED,MAAM,IAAI,CAAC,cAAc,CAAC;QAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAA4B,CAAC;QAEnG,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC;YAC7C,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,WAAW,IAAI,IAAI;YAC3B,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI;YACvB,iBAAiB,EAAE,GAAG,EAAE;gBACtB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;oBAClC,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,oBAAoB;iBAC7B,CAAC,CAAC;YACL,CAAC;YACD,gBAAgB,EAAE,GAAG,EAAE;gBACrB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;oBAClC,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,iBAAiB;iBAC1B,CAAC,CAAC;YACL,CAAC;YACD,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,EAAE,EAAE,MAAM,CAAC;SAC5D,CAAC,CAAC;IACL,CAAC;IAGD,oBAAoB;QAClB,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE1B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC;YACzC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,cAAc;QACZ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAA4B,CAAC;QAC/F,IAAI,OAAO,OAAO,EAAE,KAAK,KAAK,UAAU,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,WAAW,CAE5F,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,KAAoB;QAChC,mHAAmH;QACnH,yDAAyD;QACzD,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YACxC,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,qBAAqB,CAAC,KAAoB;QACxC,sCAAsC;QACtC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACxC,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,iBAAiB;QACjB,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;YACxB,gFAAgF;YAChF,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,gBAAgB,EAAE,CAAC;gBACpF,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;YAED,6DAA6D;YAC7D,EAAE;YACF,2GAA2G;YAC3G,iGAAiG;YACjG,UAAU,CAAC,GAAG,EAAE;gBACd,MAAM,aAAa,GACjB,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY,UAAU;oBACzD,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,aAAa;oBACnD,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;gBAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,IAAI,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,IAAI,CAAC,iBAAiB,CAAC;gBAC1I,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,sBAAsB;oBACzD,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,CAAC,sBAAsB;wBAC3D,aAAa,EAAE,OAAO,CAAC,8BAA8B,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;gBAE/H,IAAI,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;oBACjC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,uBAAuB,CAAC,KAAiB;QACvC,wDAAwD;QACxD,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAChF,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,sBAAsB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;QAE9I,IAAI,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED,iBAAiB,CAAC,KAAU;QAC1B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;QAE3C,iDAAiD;QACjD,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,WAAW,EAAE,CAAC;YAC3E,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;aAAM,IAAG,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,WAAW,EAAE,CAAC;YAChF,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,IAAG,IAAI,CAAC,aAAa,EAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,oBAAoB,CAAC,KAAoB;QACvC,iHAAiH;QACjH,0EAA0E;QAC1E,uCAAuC;QACvC,4BAA4B;QAC5B,+BAA+B;QAC/B,YAAY;QACZ,IAAI;QAEJ,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAE5B,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAErD,8GAA8G;YAC9G,gHAAgH;YAChH,qBAAqB;YACrB,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChE,KAAK,CAAC,cAAc,EAAE,CAAC;gBAEvB,yCAAyC;gBACzC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACf,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,CAAC;gBAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzB,kDAAkD;oBAClD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE;wBAC5B,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;4BACtD,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;4BACnC,aAAa,CAAC,KAAK,EAAE,CAAC;wBACxB,CAAC;wBAED,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;4BACnD,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;4BAClC,YAAY,CAAC,KAAK,EAAE,CAAC;wBACvB,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,KAAoB;QACrC,yDAAyD;QACzD,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YACtB,KAAK,CAAC,cAAc,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,uBAAuB;QACrB,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAED,EAAE;IACF,qHAAqH;IACrH,kHAAkH;IAClH,qHAAqH;IACrH,sFAAsF;IACtF,EAAE;IACF,wGAAwG;IACxG,EAAE;IACF,2GAA2G;IAC3G,EAAE;IACF,uBAAuB;QACrB,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAkB,CAAC;QAC3F,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QACrF,IAAI,MAAmB,CAAC;QAExB,IAAI,iBAAiB,EAAE,CAAC;YACtB,QAAQ,iBAAiB,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;gBAChD,gGAAgG;gBAChG,KAAK,aAAa,CAAC;gBACnB,KAAK,kBAAkB;oBACrB,MAAM,GAAI,iBAAiD,CAAC,MAAM,CAAC;oBACnE,MAAM;gBAER;oBACE,MAAM,GAAG,iBAAiB,CAAC;YAC/B,CAAC;YAED,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YAC7C,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,OAAO,YAAY,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAC/C,CAAC;IAED,+BAA+B;IAC/B,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,OAAO,YAAY,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACnE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3D,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACjE,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACvE,CAAC;IAED,mBAAmB;QACjB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACtE,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAChE,CAAC;QACD,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACpE,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAC1E,CAAC;IAES,OAAO,CAAC,iBAAiC;QACjD,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAEjC,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvC,IAAI,CAAC,aAAa,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;gBACrD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;gBACzC,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC9C,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC;gBACzC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,IAAI,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACpC,CAAC;IACH,CAAC;IAEO,0BAA0B;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAQ,CAAC;QAC9D,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,sBAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,QAAQ,IAAI,sBAAsB,EAAE,CAAC;YAC5C,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,gBAAgB;QACpB,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAE/B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO;YACP,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAExB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtC,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;YACzC,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;gBACrD,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;YACzC,CAAC;YAED,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;YAE3B,kDAAkD;YAClD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;gBAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;gBACzB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;gBAChF,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACxD,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,OAAO;YACP,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,CAAC;YAElC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtC,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC;YAC3C,CAAC;YAED,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;YAE3B,kDAAkD;YAClD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;gBAChF,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;gBACtD,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;YAC5B,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;;;oBAIK,IAAI,CAAC,SAAS;mBACf,IAAI,CAAC,QAAQ;mBACb,IAAI,CAAC,QAAQ;mBACb,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU;eACrC,IAAI,CAAC,IAAI;;;;;gBAKR,QAAQ,CAAC;YACf,QAAQ,EAAE,IAAI;YACd,gBAAgB,EAAE,IAAI,CAAC,IAAI;SAC5B,CAAC;;;;;;;mBAOS,IAAI,CAAC,kBAAkB;qBACrB,IAAI,CAAC,oBAAoB;mBAC3B,IAAI,CAAC,kBAAkB;wBAClB,IAAI,CAAC,uBAAuB;;;;;;wBAM5B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;;kBAElC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;;;KAGtE,CAAC;IACJ,CAAC;;AAzfM,mBAAM,GAAmB,MAAM,AAAzB,CAA0B;AAEnB;IAAnB,KAAK,CAAC,WAAW,CAAC;2CAAkB;AACR;IAA5B,KAAK,CAAC,oBAAoB,CAAC;6CAA0B;AAC3B;IAA1B,KAAK,CAAC,kBAAkB,CAAC;2CAAwB;AAON;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;0CAAc;AAM5B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CAYI;AAGY;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;8CAAkB;AAMiB;IAA7E,QAAQ,CAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;sDAA0B;AAMvE;IAA/B,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;uDAAiC;AAGpC;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8CAAc;AAGZ;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;mDAAuB;AAGvB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8CAAc;AAG7B;IAAX,QAAQ,EAAE;0CAAmC;AAMjB;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;2CAAe;AAMC;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;4CAAgB;AAEf;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;4DAAgC;AAE/B;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;oDAAwB;AAkV7D;IADL,KAAK,CAAC,MAAM,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;oDAuD7C;AAjdU,YAAY;IADxB,aAAa,CAAC,eAAe,CAAC;GAClB,YAAY,CA2fxB;;AAED,mBAAmB,CAAC,eAAe,EAAE;IACnC,SAAS,EAAE;QACT,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;QAC1B,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;KACzB;IACD,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE;CAC3C,CAAC,CAAC;AAEH,mBAAmB,CAAC,eAAe,EAAE;IACnC,SAAS,EAAE;QACT,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;QACxB,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;KAC3B;IACD,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE;CAC3C,CAAC,CAAC;AAEH,eAAe,YAAY,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\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\nimport {LitElement, html, CSSResultArray, TemplateResult, PropertyValues} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport {styles} from './nile-dropdown.css';\nimport { animateTo, stopAnimations } from '../internal/animate';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query } from 'lit/decorators.js';\nimport { getAnimation, setDefaultAnimation } from '../utilities/animation-registry';\nimport { getTabbableBoundary } from '../internal/tabbable';\nimport { waitForEvent } from '../internal/event';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup } from 'lit';\nimport type NileButton from '../nile-button/nile-button';\nimport type NileIconButton from '../nile-icon-button/nile-icon-button';\nimport type { NileMenu } from '../nile-menu';\nimport type { NilePopup } from '../nile-popup';\nimport '../nile-popup';\nimport { DropdownPortalManager } from './portal-manager';\nimport { VisibilityManager } from '../utilities/visibility-manager.js';\n\n/**\n * Nile icon component.\n *\n * @tag nile-dropdown\n * @summary Dropdowns expose additional content that \"drops down\" in a panel.\n * @dependency nile-popup\n *\n * @slot - The dropdown's main content.\n * @slot trigger - The dropdown's trigger, usually a `<nile-button>` element.\n *\n * @event nile-show - Emitted when the dropdown opens.\n * @event nile-after-show - Emitted after the dropdown opens and all animations are complete.\n * @event nile-hide - Emitted when the dropdown closes.\n * @event nile-after-hide - Emitted after the dropdown closes and all animations are complete.\n *\n * @csspart base - The component's base wrapper.\n * @csspart trigger - The container that wraps the trigger.\n * @csspart panel - The panel that gets shown when the dropdown is open.\n *\n * @animation dropdown.show - The animation to use when showing the dropdown.\n * @animation dropdown.hide - The animation to use when hiding the dropdown.\n */\n@customElement('nile-dropdown')\nexport class NileDropdown extends NileElement {\n static styles: CSSResultGroup = styles;\n\n @query('.dropdown') popup: NilePopup;\n @query('.dropdown__trigger') trigger: HTMLSlotElement;\n @query('.dropdown__panel') panel: HTMLSlotElement;\n\n\n /**\n * Indicates whether or not the dropdown is open. You can toggle this attribute to show and hide the dropdown, or you\n * can use the `show()` and `hide()` methods and this attribute will reflect the dropdown's open state.\n */\n @property({ type: Boolean, reflect: true }) open = false;\n\n /**\n * The preferred placement of the dropdown panel. Note that the actual placement may vary as needed to keep the panel\n * inside of the viewport.\n */\n @property({ reflect: true }) placement:\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'left'\n | 'left-start'\n | 'left-end' = 'bottom-start';\n\n /** Disables the dropdown so the panel will not open. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /**\n * By default, the dropdown is closed when an item is selected. This attribute will keep it open instead. Useful for\n * dropdowns that allow for multiple interactions.\n */\n @property({ attribute: 'stay-open-on-select', type: Boolean, reflect: true }) stayOpenOnSelect = false;\n\n /**\n * The dropdown will close when the user interacts outside of this element (e.g. clicking). Useful for composing other\n * components that use a dropdown internally.\n */\n @property({ attribute: false }) containingElement?: HTMLElement;\n\n /** The distance in pixels from which to offset the panel away from its trigger. */\n @property({ type: Number }) distance = 0;\n\n\n @property({ type: Boolean }) noOpenOnClick = false;\n\n /** The distance in pixels from which to offset the panel along its trigger. */\n @property({ type: Number }) skidding = 0;\n\n /** Syncs the popup's width or height to that of the anchor element. */\n @property() sync: 'width' | 'height' | 'both';\n\n /**\n * Enable this option to prevent the panel 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 /**\n * Enable portal mode to render the dropdown panel in a portal outside the component's DOM tree.\n * This provides better positioning control and prevents clipping issues in complex layouts.\n */\n @property({ type: Boolean, reflect: true }) portal = false;\n\n @property({ type: Boolean, reflect: true }) enableVisibilityEffect = false;\n\n @property({ type: Boolean, reflect: true }) enableTabClose = false;\n\n\n private portalManager: DropdownPortalManager | null = null;\n private visibilityManager?: VisibilityManager;\n\n connectedCallback() {\n super.connectedCallback();\n this.handlePanelSelect = this.handlePanelSelect.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);\n this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);\n\n if (!this.containingElement) {\n this.containingElement = this;\n }\n this.emit('nile-init');\n\n requestAnimationFrame(() => {\n if (this.portal && !this.portalManager) {\n this.portalManager = new DropdownPortalManager(this);\n }\n });\n }\n\n protected async firstUpdated(_changed: PropertyValues) {\n \n this.panel.hidden = !this.open;\n\n // If the dropdown is visible on init, update its position\n if (this.open) {\n this.addOpenListeners();\n this.popup.active = true;\n }\n \n await this.updateComplete;\n const triggerNode = this.trigger.assignedElements({ flatten: true })[0] as HTMLElement | undefined;\n \n this.visibilityManager = new VisibilityManager({\n host: this,\n target: triggerNode || null,\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 });\n },\n onDocumentHidden: () => {\n this.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'document-hidden',\n });\n },\n emit: (event, detail) => this.emit(`nile-${event}`, detail),\n });\n }\n \n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.visibilityManager?.cleanup();\n this.removeOpenListeners();\n this.hide();\n this.emit('nile-destroy');\n\n if (this.portalManager) {\n this.portalManager.cleanupPortalAppend();\n this.portalManager = null;\n }\n }\n\n focusOnTrigger() {\n const trigger = this.trigger.assignedElements({ flatten: true })[0] as HTMLElement | undefined;\n if (typeof trigger?.focus === 'function') {\n trigger.focus();\n }\n }\n\n getMenu() {\n return this.panel.assignedElements({ flatten: true }).find(el => el.tagName.toLowerCase() === 'nile-menu') as\n | NileMenu\n | undefined;\n }\n\n handleKeyDown(event: KeyboardEvent) {\n // Close when escape is pressed inside an open dropdown. We need to listen on the panel itself and stop propagation\n // in case any ancestors are also listening for this key.\n if (this.open && event.key === 'Escape') {\n event.stopPropagation();\n this.hide();\n this.focusOnTrigger();\n }\n }\n\n handleDocumentKeyDown(event: KeyboardEvent) {\n // Close when escape or tab is pressed\n if (event.key === 'Escape' && this.open) {\n event.stopPropagation();\n this.focusOnTrigger();\n this.hide();\n return;\n }\n\n // Handle tabbing\n if (event.key === 'Tab') {\n // Tabbing within an open menu should close the dropdown and refocus the trigger\n if (this.open && document.activeElement?.tagName.toLowerCase() === 'nile-menu-item') {\n event.preventDefault();\n this.hide();\n this.focusOnTrigger();\n return;\n }\n\n // Tabbing outside of the containing element closes the panel\n //\n // If the dropdown is used within a shadow DOM, we need to obtain the activeElement within that shadowRoot,\n // otherwise `document.activeElement` will only return the name of the parent shadow DOM element.\n setTimeout(() => {\n const activeElement =\n this.containingElement?.getRootNode() instanceof ShadowRoot\n ? document.activeElement?.shadowRoot?.activeElement\n : document.activeElement;\n\n const hitSelf = this.containingElement && activeElement?.closest(this.containingElement.tagName.toLowerCase()) === this.containingElement;\n const hitPortalAppend = this.portal && this.portalManager?.portalContainerElement && \n (activeElement === this.portalManager.portalContainerElement || \n activeElement?.closest('.nile-dropdown-portal-append') === this.portalManager.portalContainerElement);\n\n if (!hitSelf && !hitPortalAppend) {\n this.hide();\n }\n });\n }\n }\n\n handleDocumentMouseDown(event: MouseEvent) {\n // Close when clicking outside of the containing element\n const path = event.composedPath();\n const hitSelf = this.containingElement && path.includes(this.containingElement);\n const hitPortalAppend = this.portal && this.portalManager?.portalContainerElement && path.includes(this.portalManager.portalContainerElement);\n\n if (!hitSelf && !hitPortalAppend) {\n this.hide();\n }\n }\n\n handlePanelSelect(event: any) {\n const target = event.target as HTMLElement;\n\n // Hide the dropdown when a menu item is selected\n if (!this.stayOpenOnSelect && target.tagName.toLowerCase() === 'nile-menu') {\n this.hide();\n this.focusOnTrigger();\n } else if(this.stayOpenOnSelect && target.tagName.toLowerCase() === 'nile-menu') {\n this.show();\n this.focusOnTrigger();\n }\n }\n\n handleTriggerClick() {\n if(this.noOpenOnClick){\n return;\n }\n if (this.open) {\n this.hide();\n } else {\n this.show();\n this.focusOnTrigger();\n }\n }\n\n handleTriggerKeyDown(event: KeyboardEvent) {\n // When spacebar/enter is pressed, show the panel but don't focus on the menu. This let's the user press the same\n // key again to hide the menu in case they don't want to make a selection.\n // if (['Enter'].includes(event.key)) {\n // event.preventDefault();\n // this.handleTriggerClick();\n // return;\n // }\n\n const menu = this.getMenu();\n\n if (menu) {\n const menuItems = menu.getAllItems();\n const firstMenuItem = menuItems[0];\n const lastMenuItem = menuItems[menuItems.length - 1];\n\n // When up/down is pressed, we make the assumption that the user is familiar with the menu and plans to make a\n // selection. Rather than toggle the panel, we focus on the menu (if one exists) and activate the first item for\n // faster navigation.\n if (['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) {\n event.preventDefault();\n\n // Show the menu if it's not already open\n if (!this.open) {\n this.show();\n }\n\n if (menuItems.length > 0) {\n // Focus on the first/last menu item after showing\n this.updateComplete.then(() => {\n if (event.key === 'ArrowDown' || event.key === 'Home') {\n menu.setCurrentItem(firstMenuItem);\n firstMenuItem.focus();\n }\n\n if (event.key === 'ArrowUp' || event.key === 'End') {\n menu.setCurrentItem(lastMenuItem);\n lastMenuItem.focus();\n }\n });\n }\n }\n }\n }\n\n handleTriggerKeyUp(event: KeyboardEvent) {\n // Prevent space from triggering a click event in Firefox\n if (event.key === ' ') {\n event.preventDefault();\n }\n }\n\n handleTriggerSlotChange() {\n this.updateAccessibleTrigger();\n }\n\n //\n // Slotted triggers can be arbitrary content, but we need to link them to the dropdown panel with `aria-haspopup` and\n // `aria-expanded`. These must be applied to the \"accessible trigger\" (the tabbable portion of the trigger element\n // that gets slotted in) so screen readers will understand them. The accessible trigger could be the slotted element,\n // a child of the slotted element, or an element in the slotted element's shadow root.\n //\n // For example, the accessible trigger of an <nile-button> is a <button> located inside its shadow root.\n //\n // To determine this, we assume the first tabbable element in the trigger slot is the \"accessible trigger.\"\n //\n updateAccessibleTrigger() {\n const assignedElements = this.trigger.assignedElements({ flatten: true }) as HTMLElement[];\n const accessibleTrigger = assignedElements.find(el => getTabbableBoundary(el).start);\n let target: HTMLElement;\n\n if (accessibleTrigger) {\n switch (accessibleTrigger.tagName.toLowerCase()) {\n // nile buttons have to update the internal button so it's announced correctly by screen readers\n case 'nile-button':\n case 'nile-icon-button':\n target = (accessibleTrigger as NileButton | NileIconButton).button;\n break;\n\n default:\n target = accessibleTrigger;\n }\n\n target.setAttribute('aria-haspopup', 'true');\n target.setAttribute('aria-expanded', this.open ? 'true' : 'false');\n }\n }\n\n /** Shows the dropdown panel. */\n async show() {\n if (this.open) {\n return undefined;\n }\n\n this.open = true;\n return waitForEvent(this, 'nile-after-show');\n }\n\n /** Hides the dropdown panel */\n async hide() {\n if (!this.open) {\n return undefined;\n }\n\n this.open = false;\n return waitForEvent(this, 'nile-after-hide');\n }\n\n /**\n * Instructs the dropdown menu to reposition. Useful when the position or size of the trigger changes when the menu\n * is activated.\n */\n reposition() {\n this.popup.reposition();\n }\n\n addOpenListeners() {\n this.panel.addEventListener('nile-select', this.handlePanelSelect);\n this.panel.addEventListener('keydown', this.handleKeyDown);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n }\n\n removeOpenListeners() {\n if (this.panel) {\n this.panel.removeEventListener('nile-select', this.handlePanelSelect);\n this.panel.removeEventListener('keydown', this.handleKeyDown);\n }\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n }\n\n protected updated(changedProperties: PropertyValues): void {\n super.updated(changedProperties);\n \n if (changedProperties.has('portal')) {\n if (this.portal && !this.portalManager) {\n this.portalManager = new DropdownPortalManager(this);\n if (this.open) {\n this.portalManager.setupPortalAppend();\n }\n } else if (!this.portal && this.portalManager) {\n this.portalManager.cleanupPortalAppend();\n this.portalManager = null;\n }\n }\n if (changedProperties.has('disabled')) {\n this.updateTriggerDisabledState();\n }\n }\n \n private updateTriggerDisabledState() {\n const trigger = this.querySelector('[slot=\"trigger\"]') as any;\n if (!trigger) return;\n const triggerAlreadyDisabled = trigger.hasAttribute('disabled');\n if (this.disabled || triggerAlreadyDisabled) {\n trigger.disabled = true;\n this.disabled = true;\n }\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n this.visibilityManager?.setup();\n if (this.disabled) {\n this.open = false;\n return;\n }\n\n this.updateAccessibleTrigger();\n\n if (this.open) {\n // Show\n this.emit('nile-show');\n this.addOpenListeners();\n\n if (this.portal && this.portalManager) {\n this.portalManager.setupPortalAppend();\n } else if (this.portal && !this.portalManager) {\n this.portalManager = new DropdownPortalManager(this);\n this.portalManager.setupPortalAppend();\n }\n\n await stopAnimations(this);\n \n // Only show panel and animate if not using portal\n if (!this.portal) {\n this.panel.hidden = false;\n this.popup.active = true;\n const { keyframes, options } = getAnimation(this, 'dropdown.show', { dir: '' });\n await animateTo(this.popup.popup, keyframes, options);\n }\n\n this.emit('nile-after-show');\n } else {\n // Hide\n this.emit('nile-hide');\n this.removeOpenListeners();\n this.visibilityManager?.cleanup();\n\n if (this.portal && this.portalManager) {\n this.portalManager.cleanupPortalAppend();\n }\n\n await stopAnimations(this);\n \n // Only hide panel and animate if not using portal\n if (!this.portal) {\n const { keyframes, options } = getAnimation(this, 'dropdown.hide', { dir: '' });\n await animateTo(this.popup.popup, keyframes, options);\n this.panel.hidden = true;\n this.popup.active = false;\n }\n\n this.emit('nile-after-hide');\n }\n }\n\n render() {\n return html`\n <nile-popup\n part=\"base\"\n id=\"dropdown\"\n placement=${this.placement}\n distance=${this.distance}\n skidding=${this.skidding}\n strategy=${this.hoist ? 'fixed' : 'absolute'}\n sync=${this.sync}\n flip\n shift\n auto-size=\"both\"\n auto-size-padding=\"10\"\n class=${classMap({\n dropdown: true,\n 'dropdown--open': this.open\n })}\n >\n <slot\n name=\"trigger\"\n slot=\"anchor\"\n part=\"trigger\"\n class=\"dropdown__trigger\"\n @click=${this.handleTriggerClick}\n @keydown=${this.handleTriggerKeyDown}\n @keyup=${this.handleTriggerKeyUp}\n @slotchange=${this.handleTriggerSlotChange}\n ></slot>\n\n <slot\n part=\"panel\"\n class=\"dropdown__panel\"\n aria-hidden=${this.open ? 'false' : 'true'}\n aria-labelledby=\"dropdown\"\n style=${this.portal && this.portalManager ? 'display: none;' : ''}\n ></slot>\n </nile-popup>\n `;\n }\n}\n\nsetDefaultAnimation('dropdown.show', {\n keyframes: [\n { opacity: 0, scale: 0.9 },\n { opacity: 1, scale: 1 }\n ],\n options: { duration: 100, easing: 'ease' }\n});\n\nsetDefaultAnimation('dropdown.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 NileDropdown;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-dropdown': NileDropdown;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-grid.css.js","sourceRoot":"","sources":["../../../src/nile-grid/nile-grid.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"nile-grid.css.js","sourceRoot":"","sources":["../../../src/nile-grid/nile-grid.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\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\nimport { css } from 'lit';\n\nexport const styles = css`\n :host {\n --min-width: 180px;\n display: grid;\n grid-template-rows: auto;\n overflow: auto;\n inline-size: 100%;\n position: relative;\n box-sizing: border-box;\n border: 1px solid var(--nile-colors-neutral-400, , var(--ng-colors-border-secondary));\n border-radius: var(--nile-radius-md, var(--ng-radius-xl));\n background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n max-height: 100%;\n width: 100%;\n min-width: var(--min-width);\n box-shadow: var(--nile-box-shadow-3, var(--ng-shadow-xs));\n }\n\n ::slotted(nile-grid-head),\n ::slotted(nile-grid-body) {\n inline-size: 100%;\n }\n\n .nile-resize-start,\n .nile-resize-end {\n position: absolute;\n z-index: 4;\n background-color: var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));\n width: 2px;\n height: 100%;\n top: 0;\n display: none;\n bottom: 0;\n }\n`;\n\nexport default [styles];\n"]}
|
|
@@ -35,6 +35,8 @@ export declare class NileGrid extends NileElement {
|
|
|
35
35
|
enableScroll: boolean;
|
|
36
36
|
/** To enable hoverable rows */
|
|
37
37
|
hoverable: boolean;
|
|
38
|
+
/** Controls vertical overscroll behavior when the grid is scrollable. */
|
|
39
|
+
overflowScrollBehaviour: string;
|
|
38
40
|
/** To store the mutation observer */
|
|
39
41
|
private mo?;
|
|
40
42
|
/** To store the resize observer */
|
|
@@ -67,6 +69,7 @@ export declare class NileGrid extends NileElement {
|
|
|
67
69
|
needsWidthLayout: boolean;
|
|
68
70
|
needsSpanLayout: boolean;
|
|
69
71
|
colCount: number;
|
|
72
|
+
isGridReady: boolean;
|
|
70
73
|
shadowLeftVisibleSticky?: boolean;
|
|
71
74
|
shadowRightVisibleSticky?: boolean;
|
|
72
75
|
stickyLeftHeadEls: HTMLElement[];
|
|
@@ -80,10 +83,12 @@ export declare class NileGrid extends NileElement {
|
|
|
80
83
|
constructor();
|
|
81
84
|
connectedCallback(): void;
|
|
82
85
|
private syncStickyShadowsRaf;
|
|
86
|
+
private updateOverscrollBehavior;
|
|
83
87
|
private scheduleLayout;
|
|
84
88
|
private ensureWidths;
|
|
85
89
|
private onResize;
|
|
86
90
|
protected firstUpdated(): void;
|
|
91
|
+
updated(changed: Map<string, unknown>): void;
|
|
87
92
|
private _attachObserverAndLayout;
|
|
88
93
|
render(): TemplateResult;
|
|
89
94
|
disconnectedCallback(): void;
|
|
@@ -34,6 +34,8 @@ let NileGrid = class NileGrid extends NileElement {
|
|
|
34
34
|
this.enableScroll = false;
|
|
35
35
|
/** To enable hoverable rows */
|
|
36
36
|
this.hoverable = false;
|
|
37
|
+
/** Controls vertical overscroll behavior when the grid is scrollable. */
|
|
38
|
+
this.overflowScrollBehaviour = "none";
|
|
37
39
|
/** To store the request animation frame */
|
|
38
40
|
this.raf = 0;
|
|
39
41
|
/** Minimum column width */
|
|
@@ -61,6 +63,7 @@ let NileGrid = class NileGrid extends NileElement {
|
|
|
61
63
|
this.needsWidthLayout = false;
|
|
62
64
|
this.needsSpanLayout = false;
|
|
63
65
|
this.colCount = 0;
|
|
66
|
+
this.isGridReady = false;
|
|
64
67
|
this.stickyLeftHeadEls = [];
|
|
65
68
|
this.stickyRightHeadEls = [];
|
|
66
69
|
this.stickyLeftBodyEls = [];
|
|
@@ -111,6 +114,12 @@ let NileGrid = class NileGrid extends NileElement {
|
|
|
111
114
|
super.connectedCallback();
|
|
112
115
|
this.emit('nile-init');
|
|
113
116
|
}
|
|
117
|
+
updateOverscrollBehavior() {
|
|
118
|
+
const isVerticallyScrollable = this.scrollHeight > this.clientHeight;
|
|
119
|
+
this.style.overscrollBehavior = isVerticallyScrollable
|
|
120
|
+
? this.overflowScrollBehaviour
|
|
121
|
+
: '';
|
|
122
|
+
}
|
|
114
123
|
scheduleLayout() {
|
|
115
124
|
if (this.raf)
|
|
116
125
|
cancelAnimationFrame(this.raf);
|
|
@@ -130,10 +139,18 @@ let NileGrid = class NileGrid extends NileElement {
|
|
|
130
139
|
this.setAttribute('role', 'table');
|
|
131
140
|
listenToEventListeners(this, this.onResize, this.slotEl, this._attachObserverAndLayout.bind(this));
|
|
132
141
|
this.addEventListener('scroll', this.syncStickyShadowsRaf);
|
|
133
|
-
this.resizeObserverStickyShadows = new ResizeObserver(() =>
|
|
142
|
+
this.resizeObserverStickyShadows = new ResizeObserver(() => {
|
|
143
|
+
syncStickyShadows(this);
|
|
144
|
+
this.updateOverscrollBehavior();
|
|
145
|
+
});
|
|
134
146
|
this.resizeObserverStickyShadows.observe(this);
|
|
135
147
|
this.syncStickyShadowsRaf();
|
|
136
148
|
}
|
|
149
|
+
updated(changed) {
|
|
150
|
+
if (changed.has("overflowScrollBehaviour")) {
|
|
151
|
+
this.updateOverscrollBehavior();
|
|
152
|
+
}
|
|
153
|
+
}
|
|
137
154
|
_attachObserverAndLayout() {
|
|
138
155
|
this.mo?.disconnect();
|
|
139
156
|
this.mo = new MutationObserver(() => {
|
|
@@ -217,6 +234,9 @@ __decorate([
|
|
|
217
234
|
__decorate([
|
|
218
235
|
property({ type: Boolean, attribute: true, reflect: true })
|
|
219
236
|
], NileGrid.prototype, "hoverable", void 0);
|
|
237
|
+
__decorate([
|
|
238
|
+
property({ type: String, attribute: true, reflect: true })
|
|
239
|
+
], NileGrid.prototype, "overflowScrollBehaviour", void 0);
|
|
220
240
|
__decorate([
|
|
221
241
|
property({ type: Number, reflect: true, attribute: true })
|
|
222
242
|
], NileGrid.prototype, "minColumnWidth", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-grid.js","sourceRoot":"","sources":["../../../src/nile-grid/nile-grid.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,EAAE,IAAI,EAAkC,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3H,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG3G;;;;;GAKG;AAEI,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,WAAW;IACvC;;;OAGG;IACI,MAAM,KAAK,MAAM;QACtB,OAAO,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAgGD;QACE,KAAK,EAAE,CAAC;QA/FV,qEAAqE;QACrD,iBAAY,GAAa,EAAE,CAAC;QAiB5C,2DAA2D;QACE,iBAAY,GAAY,KAAK,CAAC;QAE3F,+BAA+B;QAC8B,cAAS,GAAY,KAAK,CAAC;QAUxF,2CAA2C;QACnC,QAAG,GAAG,CAAC,CAAC;QAEhB,2BAA2B;QACiC,mBAAc,GAAG,EAAE,CAAC;QAEhF,kCAAkC;QAClB,sBAAiB,GAAa,EAAE,CAAC;QAEjD,kCAAkC;QAClB,uBAAkB,GAAa,EAAE,CAAC;QAElD,sCAAsC;QACtB,eAAU,GAAkB,IAAI,CAAC;QAEjC,eAAU,GAAkB,IAAI,CAAC;QAEjD,6CAA6C;QAC7B,sBAAiB,GAAG,KAAK,CAAC;QAE1C,6CAA6C;QAC7B,uBAAkB,GAAc,EAAE,CAAC;QAEnD,2BAA2B;QACX,0BAAqB,GAAmB,EAAE,CAAC;QAE3D,2BAA2B;QACX,kBAAa,GAAa,EAAE,CAAC;QAE7C,gBAAgB;QACA,aAAQ,GAAkB,EAAE,CAAC;QAE7C,gBAAgB;QACA,aAAQ,GAAkB,EAAE,CAAC;QAE7B,yBAAoB,GAAG,KAAK,CAAC;QAE7B,qBAAgB,GAAG,KAAK,CAAC;QAEzB,oBAAe,GAAG,KAAK,CAAC;QAExB,aAAQ,GAAG,CAAC,CAAC;QAMtB,sBAAiB,GAAkB,EAAE,CAAC;QAEtC,uBAAkB,GAAkB,EAAE,CAAC;QAEvC,sBAAiB,GAAkB,EAAE,CAAC;QAEtC,uBAAkB,GAAkB,EAAE,CAAC;QAEtC,gBAAW,GAAQ,CAAC,CAAC;QAE7B,wCAAwC;QAChC,cAAS,GAAG,CAAC,CAAC;QAEf,2BAAsB,GAAa,EAAE,CAAC;QAWrC,yBAAoB,GAAG,GAAG,EAAE;YAClC,IAAI,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC3B,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,GAAG,EAAE;gBAC1C,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;gBACnB,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAyBM,aAAQ,GAAG,CAAC,CAAQ,EAAE,EAAE;YAC9B,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBACvB,YAAY,EAAG,CAAiB,CAAC,MAAM,CAAC,GAAG;gBAC3C,WAAW,EAAG,CAAiB,CAAC,MAAM,CAAC,OAAO;aAC/C,CAAC,CAAC;YACH,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAI,CAAiB,CAAC,MAG3C,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,sBAAsB;gBAAE,OAAO;YAEzC,sBAAsB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACvE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC;gBAC9C,MAAM,EAAE,CAAC,CAAC,MAAqB;gBAC/B,GAAG;gBACH,OAAO;gBACP,KAAK,EAAE,IAAI,CAAC,cAAc;gBAC1B,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC,CAAC,CAAC;YAEH,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjB,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC9B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvB,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;YAC/E,CAAC;iBAAM,CAAC;gBACN,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC,CAAC;IAtEF,CAAC;IAED,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzB,CAAC;IAWO,cAAc;QACpB,IAAI,IAAI,CAAC,GAAG;YAAE,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,GAAG,qBAAqB,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;YACb,MAAM,CACJ,IAAI,EACJ,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAC5B,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,kBAAkB,CACxB,CAAC;YACF,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,YAAY,CAAC,QAAgB;QACnC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAoCS,YAAY;QACpB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,sBAAsB,CACpB,IAAI,EACJ,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CACzC,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC3D,IAAI,CAAC,2BAA2B,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAEO,wBAAwB;QAC9B,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC;QACtB,IAAI,CAAC,EAAE,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE;YAClC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE;YAC5C,IAAI,IAAI,CAAC,WAAW;gBAAE,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACrD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE;gBACjC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;gBACrB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,CAAC,EAAE,EAAE,CAAC,CAAC;QACT,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAElC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO;QAC3B,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,CAAC;QAC5B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE;YACtB,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;YAChB,eAAe,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC;SACxE,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAEnC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;YACjD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,CAAA;;;;;;;;KAQV,CAAC;IACJ,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1B,KAAK,CAAC,oBAAoB,EAAE,EAAE,CAAC;QAC/B,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC;QACtB,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,2BAA2B,EAAE,UAAU,EAAE,CAAC;QAE/C,IAAI,IAAI,CAAC,GAAG;YAAE,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7C,oBAAoB,CAClB,IAAI,EACJ,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CACzC,CAAC;IACJ,CAAC;CAGF,CAAA;AAzPiB;IAAf,KAAK,EAAE;8CAAoC;AAGtB;IAArB,KAAK,CAAC,MAAM,CAAC;wCAAiC;AAGlB;IAA5B,KAAK,CAAC,oBAAoB,CAAC;6CAA0B;AAG3B;IAA1B,KAAK,CAAC,kBAAkB,CAAC;2CAAwB;AAG3B;IAAtB,KAAK,CAAC,cAAc,CAAC;4CAAyB;AAGvB;IAAvB,KAAK,CAAC,eAAe,CAAC;6CAA0B;AAGY;IAA5D,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;8CAA+B;AAG9B;IAA5D,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;2CAA4B;AAc5B;IAA3D,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gDAAqB;AAGhE;IAAf,KAAK,EAAE;mDAAyC;AAGjC;IAAf,KAAK,EAAE;oDAA0C;AAGlC;IAAf,KAAK,EAAE;4CAAyC;AAEjC;IAAf,KAAK,EAAE;4CAAyC;AAGjC;IAAf,KAAK,EAAE;mDAAkC;AAG1B;IAAf,KAAK,EAAE;oDAA2C;AAGnC;IAAf,KAAK,EAAE;uDAAmD;AAG3C;IAAf,KAAK,EAAE;+CAAqC;AAG7B;IAAf,KAAK,EAAE;0CAAqC;AAG7B;IAAf,KAAK,EAAE;0CAAqC;AAE7B;IAAf,KAAK,EAAE;sDAAqC;AAE7B;IAAf,KAAK,EAAE;kDAAiC;AAEzB;IAAf,KAAK,EAAE;iDAAgC;AAExB;IAAf,KAAK,EAAE;0CAAqB;AAlFlB,QAAQ;IADpB,aAAa,CAAC,WAAW,CAAC;GACd,QAAQ,CAmQpB;;AAED,eAAe,QAAQ,CAAC","sourcesContent":["/**\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\nimport { html, CSSResultArray, TemplateResult } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { styles } from './nile-grid.css';\nimport NileElement from '../internal/nile-element';\nimport { syncStickyShadows, layout } from './nile-grid.layout';\nimport { listenToEventListeners, removeEventListeners, getHead, getBody, copyArrayValuesInPlace } from './nile-grid.utils';\nimport { computeNewWidth, resizeWithScroll, resizeNoScroll, updateResizeGuides } from './nile-grid.resize';\nimport { PrefixColumn } from './types/nile-grid.types';\n\n/**\n * Nile grid component.\n *\n * @tag nile-grid\n *\n */\n@customElement('nile-grid')\nexport class NileGrid extends NileElement {\n /**\n * The styles for nile-grid\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n /** To store the column widths in the beginning and after resizing */\n @state() public columnWidths: number[] = [];\n\n /** To get the slot element */\n @query('slot') public slotEl!: HTMLSlotElement;\n\n /** To get the first resize line to show the resize handle */\n @query('.nile-resize-start') resizeStart: HTMLElement;\n\n /** To get the last resize line to show the resize handle */\n @query('.nile-resize-end') resizeEnd: HTMLElement;\n\n /** To get the last resize line to show the resize handle */\n @query('.shadow-left') shadowLeft: HTMLElement;\n\n /** To get the last resize line to show the resize handle */\n @query('.shadow-right') shadowRight: HTMLElement;\n\n /** To enable horizontal scrolling when user is resizing */\n @property({ type: Boolean, attribute: true, reflect: true }) enableScroll: boolean = false;\n\n /** To enable hoverable rows */\n @property({ type: Boolean, attribute: true, reflect: true }) hoverable: boolean = false;\n\n /** To store the mutation observer */\n private mo?: MutationObserver;\n\n /** To store the resize observer */\n private resizeObserver?: ResizeObserver;\n\n private resizeObserverStickyShadows?: ResizeObserver;\n\n /** To store the request animation frame */\n private raf = 0;\n\n /** Minimum column width */\n @property({ type: Number, reflect: true, attribute: true }) minColumnWidth = 40;\n\n /** To store the sticky index's */\n @state() public stickyLeftIndexes: number[] = [];\n\n /** To store the sticky index's */\n @state() public stickyRightIndexes: number[] = [];\n\n /** To calculate the rowspan height */\n @state() public cellHeight: number | null = null;\n\n @state() public headHeight: number | null = null;\n\n /** To check if the widths are initialized */\n @state() public widthsInitialized = false;\n\n /** To check if the widths are initialized */\n @state() public lockedWidthColumns: boolean[] = [];\n\n /** prefix columns width */\n @state() public prefixSumColumnsWidth: PrefixColumn[] = [];\n\n /** prefix columns width */\n @state() public stickyColumns: number[] = [];\n\n /** body rows */\n @state() public bodyRows: HTMLElement[] = [];\n\n /** head rows */\n @state() public headRows: HTMLElement[] = [];\n\n @state() public needsStructureLayout = false;\n\n @state() public needsWidthLayout = false;\n\n @state() public needsSpanLayout = false;\n\n @state() public colCount = 0;\n \n public shadowLeftVisibleSticky?: boolean;\n\n public shadowRightVisibleSticky?: boolean;\n\n public stickyLeftHeadEls: HTMLElement[] = [];\n\n public stickyRightHeadEls: HTMLElement[] = [];\n\n public stickyLeftBodyEls: HTMLElement[] = [];\n\n public stickyRightBodyEls: HTMLElement[] = [];\n\n private resizeTimer: any = 0;\n\n /** To throttle sticky shadow updates */\n private shadowRaf = 0;\n\n public resizeBaseColumnWidths: number[] = [];\n\n constructor() {\n super();\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.emit('nile-init');\n }\n\n private syncStickyShadowsRaf = () => {\n if (this.shadowRaf) return;\n this.shadowRaf = requestAnimationFrame(() => {\n this.shadowRaf = 0;\n syncStickyShadows(this);\n });\n };\n\n\n private scheduleLayout() {\n if (this.raf) cancelAnimationFrame(this.raf);\n this.raf = requestAnimationFrame(() => {\n this.raf = 0;\n layout(\n this,\n this.slotEl,\n this.ensureWidths.bind(this),\n this.stickyLeftIndexes,\n this.stickyRightIndexes\n );\n syncStickyShadows(this);\n });\n }\n\n private ensureWidths(colCount: number) {\n if (this.columnWidths.length !== colCount) {\n this.columnWidths = Array(colCount).fill(0);\n this.lockedWidthColumns = Array(colCount).fill(false); \n }\n }\n\n private onResize = (e: Event) => {\n e.stopPropagation();\n this.emit('nile-resize', {\n columnNumber: (e as CustomEvent).detail.col,\n columnWidth: (e as CustomEvent).detail.widthPx,\n });\n const { col, widthPx } = (e as CustomEvent).detail as {\n col: number;\n widthPx: number;\n };\n if (!this.resizeBaseColumnWidths) return;\n \n copyArrayValuesInPlace(this.columnWidths, this.resizeBaseColumnWidths);\n const { prevW, newW, delta0 } = computeNewWidth({\n target: e.target as HTMLElement,\n col,\n widthPx,\n floor: this.minColumnWidth,\n columnWidths: this.columnWidths,\n });\n\n if (delta0 === 0) {\n updateResizeGuides(this, col);\n return;\n }\n\n if (!this.enableScroll) {\n resizeNoScroll({ grid: this, col, prevW, newW, floor: this.minColumnWidth });\n } else {\n resizeWithScroll({ grid: this, col, newW });\n }\n updateResizeGuides(this, col);\n };\n\n protected firstUpdated() {\n this.setAttribute('role', 'table');\n listenToEventListeners(\n this,\n this.onResize,\n this.slotEl,\n this._attachObserverAndLayout.bind(this)\n );\n this.addEventListener('scroll', this.syncStickyShadowsRaf);\n this.resizeObserverStickyShadows = new ResizeObserver(() => syncStickyShadows(this));\n this.resizeObserverStickyShadows.observe(this);\n this.syncStickyShadowsRaf();\n }\n\n private _attachObserverAndLayout() {\n this.mo?.disconnect();\n this.mo = new MutationObserver(() => {\n this.needsStructureLayout = true;\n this.needsWidthLayout = true;\n this.needsSpanLayout = true;\n this.scheduleLayout();\n });\n this.resizeObserver?.disconnect();\n this.resizeObserver = new ResizeObserver(() => {\n if (this.resizeTimer) clearTimeout(this.resizeTimer);\n this.resizeTimer = setTimeout(() => {\n this.resizeTimer = 0;\n this.needsWidthLayout = true;\n this.scheduleLayout();\n }, 16);\n });\n\n const head = getHead(this.slotEl);\n const body = getBody(this.slotEl);\n \n if (!head && !body) return;\n const target = head ?? this;\n this.mo.observe(target, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['colspan', 'rowspan', 'width', 'lockwidth', 'sticky']\n });\n this.resizeObserver?.observe(this);\n\n if (!this.colCount || !this.columnWidths?.length) {\n this.needsStructureLayout = true;\n this.needsSpanLayout = true;\n this.needsWidthLayout = true;\n this.scheduleLayout();\n }\n }\n\n public render(): TemplateResult {\n return html`\n <div part=\"grid-base\" class=\"nile-grid-base\">\n <div part=\"grid-slot-wrapper\">\n <slot part=\"grid-slot\"></slot>\n </div>\n <div part=\"resize-start\" class=\"nile-resize-start\"></div>\n <div part=\"resize-end\" class=\"nile-resize-end\"></div>\n </div>\n `;\n }\n\n disconnectedCallback(): void {\n this.emit('nile-destroy');\n super.disconnectedCallback?.();\n this.mo?.disconnect();\n this.resizeObserver?.disconnect();\n this.resizeObserverStickyShadows?.disconnect();\n\n if (this.raf) cancelAnimationFrame(this.raf);\n removeEventListeners(\n this,\n this.onResize,\n this.slotEl,\n this._attachObserverAndLayout.bind(this)\n );\n }\n\n /* #endregion */\n}\n\nexport default NileGrid;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-grid': NileGrid;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"nile-grid.js","sourceRoot":"","sources":["../../../src/nile-grid/nile-grid.ts"],"names":[],"mappings":"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","sourcesContent":["/**\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\nimport { html, CSSResultArray, TemplateResult } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { styles } from './nile-grid.css';\nimport NileElement from '../internal/nile-element';\nimport { syncStickyShadows, layout } from './nile-grid.layout';\nimport { listenToEventListeners, removeEventListeners, getHead, getBody, copyArrayValuesInPlace } from './nile-grid.utils';\nimport { computeNewWidth, resizeWithScroll, resizeNoScroll, updateResizeGuides } from './nile-grid.resize';\nimport { PrefixColumn } from './types/nile-grid.types';\n\n/**\n * Nile grid component.\n *\n * @tag nile-grid\n *\n */\n@customElement('nile-grid')\nexport class NileGrid extends NileElement {\n /**\n * The styles for nile-grid\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n /** To store the column widths in the beginning and after resizing */\n @state() public columnWidths: number[] = [];\n\n /** To get the slot element */\n @query('slot') public slotEl!: HTMLSlotElement;\n\n /** To get the first resize line to show the resize handle */\n @query('.nile-resize-start') resizeStart: HTMLElement;\n\n /** To get the last resize line to show the resize handle */\n @query('.nile-resize-end') resizeEnd: HTMLElement;\n\n /** To get the last resize line to show the resize handle */\n @query('.shadow-left') shadowLeft: HTMLElement;\n\n /** To get the last resize line to show the resize handle */\n @query('.shadow-right') shadowRight: HTMLElement;\n\n /** To enable horizontal scrolling when user is resizing */\n @property({ type: Boolean, attribute: true, reflect: true }) enableScroll: boolean = false;\n\n /** To enable hoverable rows */\n @property({ type: Boolean, attribute: true, reflect: true }) hoverable: boolean = false;\n\n /** Controls vertical overscroll behavior when the grid is scrollable. */\n @property({ type: String, attribute: true, reflect: true }) overflowScrollBehaviour: string = \"none\";\n\n /** To store the mutation observer */\n private mo?: MutationObserver;\n\n /** To store the resize observer */\n private resizeObserver?: ResizeObserver;\n\n private resizeObserverStickyShadows?: ResizeObserver;\n\n /** To store the request animation frame */\n private raf = 0;\n\n /** Minimum column width */\n @property({ type: Number, reflect: true, attribute: true }) minColumnWidth = 40;\n\n /** To store the sticky index's */\n @state() public stickyLeftIndexes: number[] = [];\n\n /** To store the sticky index's */\n @state() public stickyRightIndexes: number[] = [];\n\n /** To calculate the rowspan height */\n @state() public cellHeight: number | null = null;\n\n @state() public headHeight: number | null = null;\n\n /** To check if the widths are initialized */\n @state() public widthsInitialized = false;\n\n /** To check if the widths are initialized */\n @state() public lockedWidthColumns: boolean[] = [];\n\n /** prefix columns width */\n @state() public prefixSumColumnsWidth: PrefixColumn[] = [];\n\n /** prefix columns width */\n @state() public stickyColumns: number[] = [];\n\n /** body rows */\n @state() public bodyRows: HTMLElement[] = [];\n\n /** head rows */\n @state() public headRows: HTMLElement[] = [];\n\n @state() public needsStructureLayout = false;\n\n @state() public needsWidthLayout = false;\n\n @state() public needsSpanLayout = false;\n\n @state() public colCount = 0;\n \n public isGridReady = false;\n\n public shadowLeftVisibleSticky?: boolean;\n\n public shadowRightVisibleSticky?: boolean;\n\n public stickyLeftHeadEls: HTMLElement[] = [];\n\n public stickyRightHeadEls: HTMLElement[] = [];\n\n public stickyLeftBodyEls: HTMLElement[] = [];\n\n public stickyRightBodyEls: HTMLElement[] = [];\n\n private resizeTimer: any = 0;\n\n /** To throttle sticky shadow updates */\n private shadowRaf = 0;\n\n public resizeBaseColumnWidths: number[] = [];\n\n constructor() {\n super();\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.emit('nile-init');\n }\n\n private syncStickyShadowsRaf = () => {\n if (this.shadowRaf) return;\n this.shadowRaf = requestAnimationFrame(() => {\n this.shadowRaf = 0;\n syncStickyShadows(this);\n });\n };\n\n private updateOverscrollBehavior() {\n const isVerticallyScrollable = this.scrollHeight > this.clientHeight;\n this.style.overscrollBehavior = isVerticallyScrollable\n ? this.overflowScrollBehaviour\n : '';\n }\n\n\n private scheduleLayout() {\n if (this.raf) cancelAnimationFrame(this.raf);\n this.raf = requestAnimationFrame(() => {\n this.raf = 0;\n layout(\n this,\n this.slotEl,\n this.ensureWidths.bind(this),\n this.stickyLeftIndexes,\n this.stickyRightIndexes\n );\n syncStickyShadows(this);\n });\n }\n\n private ensureWidths(colCount: number) {\n if (this.columnWidths.length !== colCount) {\n this.columnWidths = Array(colCount).fill(0);\n this.lockedWidthColumns = Array(colCount).fill(false); \n }\n }\n\n private onResize = (e: Event) => {\n e.stopPropagation();\n this.emit('nile-resize', {\n columnNumber: (e as CustomEvent).detail.col,\n columnWidth: (e as CustomEvent).detail.widthPx,\n });\n const { col, widthPx } = (e as CustomEvent).detail as {\n col: number;\n widthPx: number;\n };\n if (!this.resizeBaseColumnWidths) return;\n \n copyArrayValuesInPlace(this.columnWidths, this.resizeBaseColumnWidths);\n const { prevW, newW, delta0 } = computeNewWidth({\n target: e.target as HTMLElement,\n col,\n widthPx,\n floor: this.minColumnWidth,\n columnWidths: this.columnWidths,\n });\n\n if (delta0 === 0) {\n updateResizeGuides(this, col);\n return;\n }\n\n if (!this.enableScroll) {\n resizeNoScroll({ grid: this, col, prevW, newW, floor: this.minColumnWidth });\n } else {\n resizeWithScroll({ grid: this, col, newW });\n }\n updateResizeGuides(this, col);\n };\n\n protected firstUpdated() {\n this.setAttribute('role', 'table');\n listenToEventListeners(\n this,\n this.onResize,\n this.slotEl,\n this._attachObserverAndLayout.bind(this)\n );\n this.addEventListener('scroll', this.syncStickyShadowsRaf);\n this.resizeObserverStickyShadows = new ResizeObserver(() => {\n syncStickyShadows(this);\n this.updateOverscrollBehavior();\n });\n this.resizeObserverStickyShadows.observe(this);\n this.syncStickyShadowsRaf();\n }\n\n updated(changed: Map<string, unknown>) {\n if (changed.has(\"overflowScrollBehaviour\")) {\n this.updateOverscrollBehavior();\n }\n }\n\n private _attachObserverAndLayout() {\n this.mo?.disconnect();\n this.mo = new MutationObserver(() => {\n this.needsStructureLayout = true;\n this.needsWidthLayout = true;\n this.needsSpanLayout = true;\n this.scheduleLayout();\n });\n this.resizeObserver?.disconnect();\n this.resizeObserver = new ResizeObserver(() => {\n if (this.resizeTimer) clearTimeout(this.resizeTimer);\n this.resizeTimer = setTimeout(() => {\n this.resizeTimer = 0;\n this.needsWidthLayout = true;\n this.scheduleLayout();\n }, 16);\n });\n\n const head = getHead(this.slotEl);\n const body = getBody(this.slotEl);\n \n if (!head && !body) return;\n const target = head ?? this;\n this.mo.observe(target, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['colspan', 'rowspan', 'width', 'lockwidth', 'sticky']\n });\n this.resizeObserver?.observe(this);\n\n if (!this.colCount || !this.columnWidths?.length) {\n this.needsStructureLayout = true;\n this.needsSpanLayout = true;\n this.needsWidthLayout = true;\n this.scheduleLayout();\n }\n }\n\n public render(): TemplateResult {\n return html`\n <div part=\"grid-base\" class=\"nile-grid-base\">\n <div part=\"grid-slot-wrapper\">\n <slot part=\"grid-slot\"></slot>\n </div>\n <div part=\"resize-start\" class=\"nile-resize-start\"></div>\n <div part=\"resize-end\" class=\"nile-resize-end\"></div>\n </div>\n `;\n }\n\n disconnectedCallback(): void {\n this.emit('nile-destroy');\n super.disconnectedCallback?.();\n this.mo?.disconnect();\n this.resizeObserver?.disconnect();\n this.resizeObserverStickyShadows?.disconnect();\n\n if (this.raf) cancelAnimationFrame(this.raf);\n removeEventListeners(\n this,\n this.onResize,\n this.slotEl,\n this._attachObserverAndLayout.bind(this)\n );\n }\n\n /* #endregion */\n}\n\nexport default NileGrid;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-grid': NileGrid;\n }\n}\n"]}
|
|
@@ -65,6 +65,10 @@ export const layout = (nileGrid, slotEl, ensureWidths, stickyLeftIndexes, sticky
|
|
|
65
65
|
addVariablesValue(nileGrid);
|
|
66
66
|
applyColumnsTemplate(nileGrid, nileGrid.columnWidths);
|
|
67
67
|
nileGrid.needsWidthLayout = false;
|
|
68
|
+
if (!nileGrid.isGridReady) {
|
|
69
|
+
nileGrid.isGridReady = true;
|
|
70
|
+
nileGrid.emit('nile-grid-ready');
|
|
71
|
+
}
|
|
68
72
|
}
|
|
69
73
|
};
|
|
70
74
|
export function cacheStickyEls(nileGrid) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-grid.layout.js","sourceRoot":"","sources":["../../../src/nile-grid/nile-grid.layout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,QAAkB,EAClB,MAAW,EACX,YAAiB,EACjB,iBAA2B,EAC3B,kBAA4B,EAC5B,EAAE;IACF,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;QAAE,OAAO;IAE3B,IAAI,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtC,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,IAAI,QAAQ,CAAC,oBAAoB,EAAE,CAAC;QAClC,aAAa,GAAG,IAAI,CAAC;QAErB,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,QAAQ,GAAG,CAAC,CAAC;QACb,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC7B,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;QACjH,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;YACT,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAkB,CAAC;YACxF,IAAI,QAAQ,EAAE,CAAC;gBACb,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;YACtG,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;YACjH,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,iBAAiB,CAAC,MAAM,IAAI,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;YAC5E,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAChC,QAAQ,CAAC,kBAAkB,GAAG,EAAE,CAAC;YACjC,QAAQ,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAChC,QAAQ,CAAC,kBAAkB,GAAG,EAAE,CAAC;YACjC,QAAQ,CAAC,uBAAuB,GAAG,KAAK,CAAC;YACzC,QAAQ,CAAC,wBAAwB,GAAG,KAAK,CAAC;QAC5C,CAAC;QAED,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,QAAQ,CAAC,oBAAoB,GAAG,KAAK,CAAC;QACtC,QAAQ,CAAC,eAAe,GAAG,KAAK,CAAC;QACjC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC;IACnC,CAAC;SAAM,IAAI,QAAQ,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QACnC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC;QAClC,IAAI,QAAQ,EAAE,CAAC;YACb,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;QAC7F,CAAC;QACD,QAAQ,CAAC,eAAe,GAAG,KAAK,CAAC;IACnC,CAAC;IAED,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAC9B,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC;QACzC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,YAAY,CAAC,QAAQ,CAAC,CAAC;QACvB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;QACnH,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC5B,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;QACtD,QAAQ,CAAC,gBAAgB,GAAG,KAAK,CAAC;IACpC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,QAAkB;IAC/C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAEhD,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,yCAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtH,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,0CAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxH,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,yCAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtH,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,0CAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1H,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,UAAU,CACjB,QAAkB,EAClB,IAAmB,EACnB,KAAe,EACf,QAAgB,EAChB,iBAA2B,EAC3B,kBAA4B,EAC5B,IAA8E;IAE9E,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACzB,IAAI,QAAQ,CAAC,SAAS;YAAE,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1D,QAAQ,GAAG,eAAe,CACxB,QAAQ,EACR,GAAG,EACH,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,iBAAiB,EACjB,kBAAkB,EAClB,IAAI,CACL,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,eAAe,CACtB,QAAkB,EAClB,GAAgB,EAChB,IAAY,EACZ,KAAe,EACf,QAAgB,EAChB,iBAA2B,EAC3B,kBAA4B,EAC5B,IAAuD;IAEvD,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;IACxB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;IAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAC3C,CAAC,KAAK,EAAwB,EAAE,CAC9B,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,GAAG,CACtC,CAAC;IAEF,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;YAAE,CAAC,EAAE,CAAC;QACpC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,UAAU,CAC3B,QAAQ,EACR,EAAE,EACF,CAAC,EACD,MAAM,EACN,KAAK,EACL,QAAQ,EACR,iBAAiB,EACjB,kBAAkB,EAClB,IAAI,CACL,CAAC,CAAC;IACL,CAAC;IACD,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,UAAU,CACjB,QAAkB,EAClB,EAAe,EACf,CAAS,EACT,MAAc,EACd,KAAe,EACf,QAAgB,EAChB,iBAA2B,EAC3B,kBAA4B,EAC5B,IAAiC;IAEjC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAE,IAAI,CAAC,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAE,IAAI,CAAC,CAAC,CAAC;IAC/D,aAAa,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAErC,MAAM,MAAM,GAAG,CAAC,CAAC;IACjB,MAAM,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,IAAI,IAAI,CAAC,aAAa,IAAI,iBAAiB,CAAC,MAAM,IAAI,kBAAkB,CAAC,MAAM,EAAE,CAAC;QAChF,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;QACjC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO;QACL,CAAC,EAAE,IAAI;QACP,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC;KACvC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,QAAkB,EAAE,EAAe,EAAE,OAAe;IACzE,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO;IACzB,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;IAC/B,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;IAEtB,IAAI,EAAE,CAAC,OAAO,KAAK,mBAAmB,EAAE,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,UAAU;YAAE,QAAQ,CAAC,UAAU,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;QAClF,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC;QACzE,EAAE,CAAC,KAAK,CAAC,eAAe,GAAG,+DAA+D,CAAC;QAC3F,EAAE,CAAC,KAAK,CAAC,eAAe,GAAG,+DAA+D,CAAC;IAC7F,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,QAAQ,CAAC,UAAU;YAAE,QAAQ,CAAC,UAAU,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;QAClF,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC;QACzE,EAAE,CAAC,KAAK,CAAC,eAAe,GAAG,4DAA4D,CAAC;QACxF,EAAE,CAAC,KAAK,CAAC,eAAe,GAAG,4DAA4D,CAAC;IAC1F,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CACtB,EAAe,EACf,MAAc,EACd,IAAY,EACZ,MAAc,EACd,OAAe;IAEf,MAAM,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9B,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,CAAC;IAC5C,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,CAAC;IACxC,EAAU,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CACnB,EAAe,EACf,MAAc,EACd,IAAiC,EACjC,iBAA2B,EAC3B,kBAA4B;IAE5B,IAAI,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QAC1G,iBAAiB,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,IAAI,CAAC,aAAa,IAAK,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QAC7G,kBAAkB,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC;IACD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,KAAe;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACb,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAClB,EAAe,EACf,QAAgB,EAChB,iBAA2B,EAC3B,kBAA4B;IAE5B,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO;QAAE,OAAO;IAEhC,oBAAoB,CAAC,EAAE,CAAC,CAAC;IACzB,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,eAAe,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,EAAe;IAC3C,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;IACnB,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;IACpB,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;AACpC,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CACtB,EAAe,EACf,QAAgB;IAEhB,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACvC,IAAI,EAAE,CAAC,OAAO,KAAK,mBAAmB,EAAE,CAAC;QACvC,EAAE,CAAC,KAAK,CAAC,eAAe,GAAG,+DAA+D,CAAC;IAC7F,CAAC;SACI,CAAC;QACJ,EAAE,CAAC,KAAK,CAAC,eAAe,GAAG,4DAA4D,CAAC;IAC1F,CAAC;IACD,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;IACtB,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,qBAAqB,QAAQ,GAAG,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CACvB,EAAe,EACf,QAAgB;IAEhB,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACxC,IAAI,EAAE,CAAC,OAAO,KAAK,mBAAmB,EAAE,CAAC;QACvC,EAAE,CAAC,KAAK,CAAC,eAAe,GAAG,+DAA+D,CAAC;IAC7F,CAAC;SACI,CAAC;QACJ,EAAE,CAAC,KAAK,CAAC,eAAe,GAAG,4DAA4D,CAAC;IAC1F,CAAC;IACD,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;IACtB,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,sBAAsB,QAAQ,GAAG,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAkB;IAClD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;QAC9E,OAAO;IACT,CAAC;IAED,MAAM,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAEvF,IACE,QAAQ,CAAC,uBAAuB,KAAK,uBAAuB;QAC5D,QAAQ,CAAC,wBAAwB,KAAK,uBAAuB,EAC7D,CAAC;QACD,OAAO;IACT,CAAC;IAED,QAAQ,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;IAC3D,QAAQ,CAAC,wBAAwB,GAAG,uBAAuB,CAAC;IAG5D,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAC5C,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;IAC9D,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAC5C,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;IAC9D,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,kBAAkB,EAAE,CAAC;QAC7C,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC;IAC/D,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,kBAAkB,EAAE,CAAC;QAC7C,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAGD;;;GAGG;AACH,SAAS,eAAe,CAAC,QAAkB;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IACrE,OAAO;QACL,uBAAuB,EAAE,QAAQ,CAAC,UAAU,GAAG,CAAC;QAChD,uBAAuB,EAAE,QAAQ,CAAC,UAAU,GAAG,GAAG;KACnD,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CACxB,QAAkB,EAClB,QAAuB,EACvB,SAAmB,EACnB,QAAgB,EAChB,iBAA2B,EAC3B,kBAA4B;IAE5B,OAAO,UAAU,CACf,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,iBAAiB,EACjB,kBAAkB,EAClB;QACE,YAAY,EAAE,qBAAqB;QACnC,aAAa,EAAE,IAAI;QACnB,WAAW,EAAE,KAAK;KACnB,CACF,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CACxB,QAAkB,EAClB,QAAuB,EACvB,SAAmB,EACnB,QAAgB,EAChB,iBAA2B,EAC3B,kBAA4B;IAE5B,OAAO,UAAU,CACf,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,iBAAiB,EACjB,kBAAkB,EAClB;QACE,YAAY,EAAE,qBAAqB;QACnC,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,IAAI;KAClB,CACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAkB,EAClB,YAAsB;IAEtB,MAAM,IAAI,GAAG,YAAY;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;QACd,IAAI,GAAG,KAAK,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,OAAO,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;QAC5C,CAAC;QACD,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,QAAkB;IACxC,IAAI,CAAC,QAAQ,CAAC,UAAU;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACtE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;IACpD,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE,CAC3B,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,GAAG,CAA4B,CAAC;IACjF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;AACxE,CAAC","sourcesContent":["import { NileGrid } from './nile-grid';\nimport { getHead, getBody } from './nile-grid.utils';\nimport { getScrollbarComp } from './nile-grid.resize';\nimport { addVariablesValue, computeColumnWidths } from './nile-grid.width';\nimport { NILE_GRID_HEAD_ITEM } from './types/nile-grid.enums';\n\n/**\n * @param nileGrid Parent NileGrid instance\n * @param slotEl <slot> element hosting head/body\n * @param ensureWidths Function to ensure columnWidths length matches colCount\n * @param stickyLeftIndexes Mutable list of left-sticky column indexes\n * @param stickyRightIndexes Mutable list of right-sticky column indexes\n * @returns void\n */\nexport const layout = (\n nileGrid: NileGrid,\n slotEl: any,\n ensureWidths: any,\n stickyLeftIndexes: number[],\n stickyRightIndexes: number[]\n) => {\n const head = getHead(slotEl);\n const body = getBody(slotEl);\n if (!head && !body) return;\n\n let colCount = nileGrid.colCount || 0;\n let headerChanged = false;\n\n if (nileGrid.needsStructureLayout) {\n headerChanged = true;\n \n nileGrid.headRows = head ? (Array.from(head.querySelectorAll('nile-grid-row')) as HTMLElement[]) : [];\n colCount = 0;\n if (nileGrid.headRows.length) {\n colCount = computeHeadLayout(nileGrid, nileGrid.headRows, [], colCount, stickyLeftIndexes, stickyRightIndexes);\n }\n\n if (body) {\n nileGrid.bodyRows = Array.from(body.querySelectorAll('nile-grid-row')) as HTMLElement[];\n if (colCount) {\n computeBodyLayout(nileGrid, nileGrid.bodyRows, [], colCount, stickyLeftIndexes, stickyRightIndexes);\n } else {\n colCount = computeBodyLayout(nileGrid, nileGrid.bodyRows, [], colCount, stickyLeftIndexes, stickyRightIndexes);\n }\n }\n\n if (nileGrid.stickyLeftIndexes.length || nileGrid.stickyRightIndexes.length) {\n cacheStickyEls(nileGrid);\n } else {\n nileGrid.stickyLeftHeadEls = [];\n nileGrid.stickyRightHeadEls = [];\n nileGrid.stickyLeftBodyEls = [];\n nileGrid.stickyRightBodyEls = [];\n nileGrid.shadowLeftVisibleSticky = false;\n nileGrid.shadowRightVisibleSticky = false;\n }\n\n nileGrid.colCount = colCount;\n nileGrid.needsStructureLayout = false;\n nileGrid.needsSpanLayout = false;\n nileGrid.needsWidthLayout = true;\n } else if (nileGrid.needsSpanLayout && body) {\n const bodyRows = nileGrid.bodyRows;\n colCount = nileGrid.colCount || 0;\n if (colCount) {\n computeBodyLayout(nileGrid, bodyRows, [], colCount, stickyLeftIndexes, stickyRightIndexes);\n }\n nileGrid.needsSpanLayout = false;\n }\n\n if (nileGrid.needsWidthLayout) {\n colCount = nileGrid.colCount || colCount;\n if (!colCount) return;\n\n ensureWidths(colCount);\n computeColumnWidths(nileGrid, colCount, nileGrid.columnWidths, slotEl, nileGrid.lockedWidthColumns, headerChanged);\n addVariablesValue(nileGrid);\n applyColumnsTemplate(nileGrid, nileGrid.columnWidths);\n nileGrid.needsWidthLayout = false;\n }\n};\n\nexport function cacheStickyEls(nileGrid: NileGrid) {\n const { head, body } = getHeadAndBody(nileGrid);\n\n nileGrid.stickyLeftHeadEls = head ? Array.from(head.querySelectorAll('nile-grid-head-item[data-sticky=\"left\"]')) : [];\n nileGrid.stickyRightHeadEls = head ? Array.from(head.querySelectorAll('nile-grid-head-item[data-sticky=\"right\"]')) : [];\n nileGrid.stickyLeftBodyEls = body ? Array.from(body.querySelectorAll('nile-grid-cell-item[data-sticky=\"left\"]')) : [];\n nileGrid.stickyRightBodyEls = body ? Array.from(body.querySelectorAll('nile-grid-cell-item[data-sticky=\"right\"]')) : [];\n}\n\n/** \n * @param nileGrid The parent NileGrid instance\n * @param rows Array of grid row elements\n * @param carry Array tracking rowspan, colspan continuation\n * @param colCount Total column count\n * @param stickyLeftIndexes List of sticky-left column indexes\n * @param stickyRightIndexes List of sticky-right column indexes\n * @param columnWidths Computed column widths\n * @param opts Options controlling layout behavior\n * @returns Final computed column count\n */\nfunction layoutRows(\n nileGrid: NileGrid,\n rows: HTMLElement[],\n carry: number[],\n colCount: number,\n stickyLeftIndexes: number[],\n stickyRightIndexes: number[],\n opts: { itemSelector: string; useStickyAttr?: boolean; handleRowBg?: boolean }\n): number {\n rows.forEach((row, rIdx) => {\n if (nileGrid.hoverable) row.setAttribute('hover', 'true');\n colCount = layoutSingleRow(\n nileGrid,\n row,\n rIdx,\n carry,\n colCount,\n stickyLeftIndexes,\n stickyRightIndexes,\n opts\n );\n });\n return colCount;\n}\n\n/**\n * @param nileGrid The grid element being processed\n * @param row Single row element to layout\n * @param rIdx Row index in the grid\n * @param carry Rowspan tracking array\n * @param colCount Current column count\n * @param stickyLeftIndexes Sticky-left indexes\n * @param stickyRightIndexes Sticky-right indexes\n * @param opts Layout options\n * @returns Updated column count\n */\nfunction layoutSingleRow(\n nileGrid: NileGrid,\n row: HTMLElement,\n rIdx: number,\n carry: number[],\n colCount: number,\n stickyLeftIndexes: number[],\n stickyRightIndexes: number[],\n opts: { itemSelector: string; useStickyAttr?: boolean }\n): number {\n let c = 1;\n const rStart = rIdx + 1;\n const tag = opts.itemSelector.toLowerCase();\n const items = Array.from(row.children).filter(\n (child): child is HTMLElement =>\n child.tagName.toLowerCase() === tag\n );\n\n for (const el of items) {\n while ((carry[c - 1] || 0) > 0) c++;\n ({ c, colCount } = layoutCell(\n nileGrid,\n el,\n c,\n rStart,\n carry,\n colCount,\n stickyLeftIndexes,\n stickyRightIndexes,\n opts\n ));\n }\n decrementCarry(carry);\n return colCount;\n}\n\n/**\n * @param nileGrid The parent grid\n * @param el Cell element being laid out\n * @param c Current column index\n * @param rStart Row start index\n * @param carry Rowspan carry array\n * @param colCount Current max column count\n * @param stickyLeftIndexes Left sticky indexes\n * @param stickyRightIndexes Right sticky indexes\n * @param opts Sticky and layout options\n * @returns Updated column index and column count\n */\nfunction layoutCell(\n nileGrid: NileGrid,\n el: HTMLElement,\n c: number,\n rStart: number,\n carry: number[],\n colCount: number,\n stickyLeftIndexes: number[],\n stickyRightIndexes: number[],\n opts: { useStickyAttr?: boolean }\n) {\n const colspan = Math.max(1, +el.getAttribute('colspan')! || 1);\n const rowspan = Math.max(1, +el.getAttribute('rowspan')! || 1);\n handleRowspan(nileGrid, el, rowspan);\n\n const cStart = c;\n const cEnd = c + colspan;\n setGridPosition(el, cStart, cEnd, rStart, rowspan);\n if (opts.useStickyAttr || stickyLeftIndexes.length || stickyRightIndexes.length) {\n handleSticky(el, cStart, opts, stickyLeftIndexes, stickyRightIndexes);\n }\n\n for (let k = 0; k < colspan; k++) {\n carry[c - 1 + k] = Math.max(carry[c - 1 + k] || 0, rowspan);\n }\n return {\n c: cEnd,\n colCount: Math.max(colCount, cEnd - 1),\n };\n}\n\n/** \n * @param nileGrid The grid container \n * @param el Element that spans multiple rows \n * @param rowspan Number of rows to span \n */\nfunction handleRowspan(nileGrid: NileGrid, el: HTMLElement, rowspan: number) {\n if (rowspan <= 1) return;\n el.style.position = \"absolute\";\n el.style.zIndex = \"1\";\n\n if (el.tagName === NILE_GRID_HEAD_ITEM) {\n if (!nileGrid.headHeight) nileGrid.headHeight = el.getBoundingClientRect().height;\n el.style.height = `${(nileGrid.headHeight * rowspan) + (rowspan - 1)}px`;\n el.style.backgroundColor = \"var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary))\";\n el.style.backgroundColor = \"var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary))\";\n } else {\n if (!nileGrid.cellHeight) nileGrid.cellHeight = el.getBoundingClientRect().height;\n el.style.height = `${(nileGrid.cellHeight * rowspan) + (rowspan - 1)}px`;\n el.style.backgroundColor = \"var(--nile-colors-white-base, var(--ng-colors-bg-primary))\";\n el.style.backgroundColor = \"var(--nile-colors-white-base, var(--ng-colors-bg-primary))\";\n }\n}\n\n/**\n * @param el Grid item element\n * @param cStart Starting column index\n * @param cEnd Ending column index\n * @param rStart Starting row index\n * @param rowspan Row span value\n */\nfunction setGridPosition(\n el: HTMLElement,\n cStart: number,\n cEnd: number,\n rStart: number,\n rowspan: number\n) {\n const rEnd = rStart + rowspan;\n el.style.gridColumn = `${cStart} / ${cEnd}`;\n el.style.gridRow = `${rStart} / ${rEnd}`;\n (el as any).dataset.cStart = String(cStart);\n}\n\n/**\n * @param el Grid item element\n * @param cStart Column start index\n * @param opts Sticky configuration options\n * @param stickyLeftIndexes Left sticky indexes\n * @param stickyRightIndexes Right sticky indexes\n */\nfunction handleSticky(\n el: HTMLElement,\n cStart: number,\n opts: { useStickyAttr?: boolean },\n stickyLeftIndexes: number[],\n stickyRightIndexes: number[],\n) {\n if (opts.useStickyAttr && el.getAttribute('sticky') === \"left\" && !stickyLeftIndexes.includes(cStart - 1)) {\n stickyLeftIndexes.push(cStart - 1);\n }\n if (opts.useStickyAttr && el.getAttribute('sticky') === \"right\" && !stickyRightIndexes.includes(cStart - 1)) {\n stickyRightIndexes.push(cStart - 1);\n }\n applySticky(el, cStart - 1, stickyLeftIndexes, stickyRightIndexes);\n}\n\n/**\n * @param carry Rowspan tracking array\n */\nfunction decrementCarry(carry: number[]) {\n for (let i = 0; i < carry.length; i++) {\n if (carry[i] > 0) {\n carry[i]--;\n }\n }\n}\n\n/**\n * @param el Target grid cell element\n * @param colIndex Column index\n * @param stickyLeftIndexes Sticky-left indexes\n * @param stickyRightIndexes Sticky-right indexes\n */\nfunction applySticky(\n el: HTMLElement,\n colIndex: number,\n stickyLeftIndexes: number[],\n stickyRightIndexes: number[],\n) {\n const onLeft = stickyLeftIndexes.includes(colIndex);\n const onRight = stickyRightIndexes.includes(colIndex);\n if (!onLeft && !onRight) return;\n\n prepareStickyElement(el);\n if (onLeft && !onRight) {\n applyLeftSticky(el, colIndex);\n } else {\n applyRightSticky(el, colIndex);\n }\n}\n\n/**\n * @param el Grid item element to prepare for sticky positioning\n */\nfunction prepareStickyElement(el: HTMLElement) {\n el.style.position = 'sticky';\n el.style.left = '';\n el.style.right = '';\n el.removeAttribute('data-sticky');\n}\n\n/**\n * @param el Target element\n * @param colIndex Column index\n * @param stickyLeftIndexes Sticky-left column indexes\n */\nfunction applyLeftSticky(\n el: HTMLElement,\n colIndex: number,\n) {\n el.setAttribute('data-sticky', 'left');\n if (el.tagName === NILE_GRID_HEAD_ITEM) {\n el.style.backgroundColor = \"var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary))\";\n }\n else {\n el.style.backgroundColor = 'var(--nile-colors-white-base, var(--ng-colors-bg-primary))';\n }\n el.style.zIndex = '1';\n el.style.left = `var(--sticky-left-${colIndex})`;\n}\n\n/**\n * @param el Target element\n * @param colIndex Column index\n * @param stickyRightIndexes Sticky-right indexes\n */\nfunction applyRightSticky(\n el: HTMLElement,\n colIndex: number,\n) {\n el.setAttribute('data-sticky', 'right');\n if (el.tagName === NILE_GRID_HEAD_ITEM) {\n el.style.backgroundColor = \"var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary))\";\n }\n else {\n el.style.backgroundColor = 'var(--nile-colors-white-base, var(--ng-colors-bg-primary))';\n }\n el.style.zIndex = '1';\n el.style.right = `var(--sticky-right-${colIndex})`;\n}\n\n/**\n * @param nileGrid Grid instance to sync shadows for\n */\nexport function syncStickyShadows(nileGrid: NileGrid) {\n if (!nileGrid.stickyLeftIndexes.length && !nileGrid.stickyRightIndexes.length) {\n return;\n }\n\n const { showRightOnLeftStickies, showLeftOnRightStickies } = getShadowStates(nileGrid);\n\n if (\n nileGrid.shadowLeftVisibleSticky === showRightOnLeftStickies &&\n nileGrid.shadowRightVisibleSticky === showLeftOnRightStickies\n ) {\n return;\n }\n\n nileGrid.shadowLeftVisibleSticky = showRightOnLeftStickies;\n nileGrid.shadowRightVisibleSticky = showLeftOnRightStickies;\n \n\n for (const el of nileGrid.stickyLeftHeadEls) {\n el.classList.toggle('shadow-left', showRightOnLeftStickies);\n }\n for (const el of nileGrid.stickyLeftBodyEls) {\n el.classList.toggle('shadow-left', showRightOnLeftStickies);\n }\n for (const el of nileGrid.stickyRightHeadEls) {\n el.classList.toggle('shadow-right', showLeftOnRightStickies);\n }\n for (const el of nileGrid.stickyRightBodyEls) {\n el.classList.toggle('shadow-right', showLeftOnRightStickies);\n }\n}\n\n\n/**\n * @param nileGrid Grid instance\n * @returns Object containing booleans for left/right shadow visibility\n */\nfunction getShadowStates(nileGrid: NileGrid) {\n const max = Math.max(0, nileGrid.scrollWidth - nileGrid.clientWidth);\n return {\n showRightOnLeftStickies: nileGrid.scrollLeft > 0,\n showLeftOnRightStickies: nileGrid.scrollLeft < max\n };\n}\n\n/** computeHeadLayout\n * @param nileGrid Grid instance\n * @param headRows Header rows (<nile-grid-row>[])\n * @param carryHead Rowspan carry tracking array\n * @param colCount Current column count\n * @param stickyLeftIndexes Left-sticky indexes\n * @param stickyRightIndexes Right-sticky indexes\n * @returns Final column count after header layout\n */\nfunction computeHeadLayout(\n nileGrid: NileGrid,\n headRows: HTMLElement[],\n carryHead: number[],\n colCount: number,\n stickyLeftIndexes: number[],\n stickyRightIndexes: number[],\n): number {\n return layoutRows(\n nileGrid,\n headRows,\n carryHead,\n colCount,\n stickyLeftIndexes,\n stickyRightIndexes,\n {\n itemSelector: 'nile-grid-head-item',\n useStickyAttr: true,\n handleRowBg: false,\n }\n );\n}\n\n/** computeBodyLayout\n * @param nileGrid Grid instance\n * @param bodyRows Body rows (<nile-grid-row>[])\n * @param carryBody Rowspan carry tracking array\n * @param colCount Current column count\n * @param stickyLeftIndexes Left-sticky indexes\n * @param stickyRightIndexes Right-sticky indexes\n * @returns Final column count after body layout\n */\nfunction computeBodyLayout(\n nileGrid: NileGrid,\n bodyRows: HTMLElement[],\n carryBody: number[],\n colCount: number,\n stickyLeftIndexes: number[],\n stickyRightIndexes: number[],\n): number {\n return layoutRows(\n nileGrid,\n bodyRows,\n carryBody,\n colCount,\n stickyLeftIndexes,\n stickyRightIndexes,\n {\n itemSelector: 'nile-grid-cell-item',\n useStickyAttr: false,\n handleRowBg: true,\n }\n );\n}\n\n/**\n * @param nileGrid Grid container element\n * @param colCount Total number of columns\n * @param columnWidths Column width array\n */\nexport function applyColumnsTemplate(\n nileGrid: NileGrid,\n columnWidths: number[]\n) {\n const cols = columnWidths\n .map((w, idx) => {\n if (idx === columnWidths.length - 1) {\n return `minmax(${Math.round(w)}px, auto)`;\n }\n return `${Math.max(0, Math.round(w))}px`;\n })\n .join(' ');\n nileGrid.style.setProperty('--nile-grid-columns', cols);\n}\n\n/**\n * @param nileGrid Grid instance\n * @returns Head and body elements from the grid slot\n */\nfunction getHeadAndBody(nileGrid: NileGrid) {\n if (!nileGrid.shadowRoot) return { head: undefined, body: undefined };\n const assigned = nileGrid.slotEl.assignedElements();\n const find = (tag: string) =>\n assigned.find(n => n.tagName.toLowerCase() === tag) as HTMLElement | undefined;\n return { head: find('nile-grid-head'), body: find('nile-grid-body') };\n}"]}
|
|
1
|
+
{"version":3,"file":"nile-grid.layout.js","sourceRoot":"","sources":["../../../src/nile-grid/nile-grid.layout.ts"],"names":[],"mappings":"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","sourcesContent":["import { NileGrid } from './nile-grid';\nimport { getHead, getBody } from './nile-grid.utils';\nimport { getScrollbarComp } from './nile-grid.resize';\nimport { addVariablesValue, computeColumnWidths } from './nile-grid.width';\nimport { NILE_GRID_HEAD_ITEM } from './types/nile-grid.enums';\n\n/**\n * @param nileGrid Parent NileGrid instance\n * @param slotEl <slot> element hosting head/body\n * @param ensureWidths Function to ensure columnWidths length matches colCount\n * @param stickyLeftIndexes Mutable list of left-sticky column indexes\n * @param stickyRightIndexes Mutable list of right-sticky column indexes\n * @returns void\n */\nexport const layout = (\n nileGrid: NileGrid,\n slotEl: any,\n ensureWidths: any,\n stickyLeftIndexes: number[],\n stickyRightIndexes: number[]\n) => {\n const head = getHead(slotEl);\n const body = getBody(slotEl);\n if (!head && !body) return;\n\n let colCount = nileGrid.colCount || 0;\n let headerChanged = false;\n\n if (nileGrid.needsStructureLayout) {\n headerChanged = true;\n \n nileGrid.headRows = head ? (Array.from(head.querySelectorAll('nile-grid-row')) as HTMLElement[]) : [];\n colCount = 0;\n if (nileGrid.headRows.length) {\n colCount = computeHeadLayout(nileGrid, nileGrid.headRows, [], colCount, stickyLeftIndexes, stickyRightIndexes);\n }\n\n if (body) {\n nileGrid.bodyRows = Array.from(body.querySelectorAll('nile-grid-row')) as HTMLElement[];\n if (colCount) {\n computeBodyLayout(nileGrid, nileGrid.bodyRows, [], colCount, stickyLeftIndexes, stickyRightIndexes);\n } else {\n colCount = computeBodyLayout(nileGrid, nileGrid.bodyRows, [], colCount, stickyLeftIndexes, stickyRightIndexes);\n }\n }\n\n if (nileGrid.stickyLeftIndexes.length || nileGrid.stickyRightIndexes.length) {\n cacheStickyEls(nileGrid);\n } else {\n nileGrid.stickyLeftHeadEls = [];\n nileGrid.stickyRightHeadEls = [];\n nileGrid.stickyLeftBodyEls = [];\n nileGrid.stickyRightBodyEls = [];\n nileGrid.shadowLeftVisibleSticky = false;\n nileGrid.shadowRightVisibleSticky = false;\n }\n\n nileGrid.colCount = colCount;\n nileGrid.needsStructureLayout = false;\n nileGrid.needsSpanLayout = false;\n nileGrid.needsWidthLayout = true;\n } else if (nileGrid.needsSpanLayout && body) {\n const bodyRows = nileGrid.bodyRows;\n colCount = nileGrid.colCount || 0;\n if (colCount) {\n computeBodyLayout(nileGrid, bodyRows, [], colCount, stickyLeftIndexes, stickyRightIndexes);\n }\n nileGrid.needsSpanLayout = false;\n }\n\n if (nileGrid.needsWidthLayout) {\n colCount = nileGrid.colCount || colCount;\n if (!colCount) return;\n\n ensureWidths(colCount);\n computeColumnWidths(nileGrid, colCount, nileGrid.columnWidths, slotEl, nileGrid.lockedWidthColumns, headerChanged);\n addVariablesValue(nileGrid);\n applyColumnsTemplate(nileGrid, nileGrid.columnWidths);\n nileGrid.needsWidthLayout = false;\n\n if (!nileGrid.isGridReady) {\n nileGrid.isGridReady = true;\n nileGrid.emit('nile-grid-ready');\n }\n }\n};\n\nexport function cacheStickyEls(nileGrid: NileGrid) {\n const { head, body } = getHeadAndBody(nileGrid);\n\n nileGrid.stickyLeftHeadEls = head ? Array.from(head.querySelectorAll('nile-grid-head-item[data-sticky=\"left\"]')) : [];\n nileGrid.stickyRightHeadEls = head ? Array.from(head.querySelectorAll('nile-grid-head-item[data-sticky=\"right\"]')) : [];\n nileGrid.stickyLeftBodyEls = body ? Array.from(body.querySelectorAll('nile-grid-cell-item[data-sticky=\"left\"]')) : [];\n nileGrid.stickyRightBodyEls = body ? Array.from(body.querySelectorAll('nile-grid-cell-item[data-sticky=\"right\"]')) : [];\n}\n\n/** \n * @param nileGrid The parent NileGrid instance\n * @param rows Array of grid row elements\n * @param carry Array tracking rowspan, colspan continuation\n * @param colCount Total column count\n * @param stickyLeftIndexes List of sticky-left column indexes\n * @param stickyRightIndexes List of sticky-right column indexes\n * @param columnWidths Computed column widths\n * @param opts Options controlling layout behavior\n * @returns Final computed column count\n */\nfunction layoutRows(\n nileGrid: NileGrid,\n rows: HTMLElement[],\n carry: number[],\n colCount: number,\n stickyLeftIndexes: number[],\n stickyRightIndexes: number[],\n opts: { itemSelector: string; useStickyAttr?: boolean; handleRowBg?: boolean }\n): number {\n rows.forEach((row, rIdx) => {\n if (nileGrid.hoverable) row.setAttribute('hover', 'true');\n colCount = layoutSingleRow(\n nileGrid,\n row,\n rIdx,\n carry,\n colCount,\n stickyLeftIndexes,\n stickyRightIndexes,\n opts\n );\n });\n return colCount;\n}\n\n/**\n * @param nileGrid The grid element being processed\n * @param row Single row element to layout\n * @param rIdx Row index in the grid\n * @param carry Rowspan tracking array\n * @param colCount Current column count\n * @param stickyLeftIndexes Sticky-left indexes\n * @param stickyRightIndexes Sticky-right indexes\n * @param opts Layout options\n * @returns Updated column count\n */\nfunction layoutSingleRow(\n nileGrid: NileGrid,\n row: HTMLElement,\n rIdx: number,\n carry: number[],\n colCount: number,\n stickyLeftIndexes: number[],\n stickyRightIndexes: number[],\n opts: { itemSelector: string; useStickyAttr?: boolean }\n): number {\n let c = 1;\n const rStart = rIdx + 1;\n const tag = opts.itemSelector.toLowerCase();\n const items = Array.from(row.children).filter(\n (child): child is HTMLElement =>\n child.tagName.toLowerCase() === tag\n );\n\n for (const el of items) {\n while ((carry[c - 1] || 0) > 0) c++;\n ({ c, colCount } = layoutCell(\n nileGrid,\n el,\n c,\n rStart,\n carry,\n colCount,\n stickyLeftIndexes,\n stickyRightIndexes,\n opts\n ));\n }\n decrementCarry(carry);\n return colCount;\n}\n\n/**\n * @param nileGrid The parent grid\n * @param el Cell element being laid out\n * @param c Current column index\n * @param rStart Row start index\n * @param carry Rowspan carry array\n * @param colCount Current max column count\n * @param stickyLeftIndexes Left sticky indexes\n * @param stickyRightIndexes Right sticky indexes\n * @param opts Sticky and layout options\n * @returns Updated column index and column count\n */\nfunction layoutCell(\n nileGrid: NileGrid,\n el: HTMLElement,\n c: number,\n rStart: number,\n carry: number[],\n colCount: number,\n stickyLeftIndexes: number[],\n stickyRightIndexes: number[],\n opts: { useStickyAttr?: boolean }\n) {\n const colspan = Math.max(1, +el.getAttribute('colspan')! || 1);\n const rowspan = Math.max(1, +el.getAttribute('rowspan')! || 1);\n handleRowspan(nileGrid, el, rowspan);\n\n const cStart = c;\n const cEnd = c + colspan;\n setGridPosition(el, cStart, cEnd, rStart, rowspan);\n if (opts.useStickyAttr || stickyLeftIndexes.length || stickyRightIndexes.length) {\n handleSticky(el, cStart, opts, stickyLeftIndexes, stickyRightIndexes);\n }\n\n for (let k = 0; k < colspan; k++) {\n carry[c - 1 + k] = Math.max(carry[c - 1 + k] || 0, rowspan);\n }\n return {\n c: cEnd,\n colCount: Math.max(colCount, cEnd - 1),\n };\n}\n\n/** \n * @param nileGrid The grid container \n * @param el Element that spans multiple rows \n * @param rowspan Number of rows to span \n */\nfunction handleRowspan(nileGrid: NileGrid, el: HTMLElement, rowspan: number) {\n if (rowspan <= 1) return;\n el.style.position = \"absolute\";\n el.style.zIndex = \"1\";\n\n if (el.tagName === NILE_GRID_HEAD_ITEM) {\n if (!nileGrid.headHeight) nileGrid.headHeight = el.getBoundingClientRect().height;\n el.style.height = `${(nileGrid.headHeight * rowspan) + (rowspan - 1)}px`;\n el.style.backgroundColor = \"var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary))\";\n el.style.backgroundColor = \"var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary))\";\n } else {\n if (!nileGrid.cellHeight) nileGrid.cellHeight = el.getBoundingClientRect().height;\n el.style.height = `${(nileGrid.cellHeight * rowspan) + (rowspan - 1)}px`;\n el.style.backgroundColor = \"var(--nile-colors-white-base, var(--ng-colors-bg-primary))\";\n el.style.backgroundColor = \"var(--nile-colors-white-base, var(--ng-colors-bg-primary))\";\n }\n}\n\n/**\n * @param el Grid item element\n * @param cStart Starting column index\n * @param cEnd Ending column index\n * @param rStart Starting row index\n * @param rowspan Row span value\n */\nfunction setGridPosition(\n el: HTMLElement,\n cStart: number,\n cEnd: number,\n rStart: number,\n rowspan: number\n) {\n const rEnd = rStart + rowspan;\n el.style.gridColumn = `${cStart} / ${cEnd}`;\n el.style.gridRow = `${rStart} / ${rEnd}`;\n (el as any).dataset.cStart = String(cStart);\n}\n\n/**\n * @param el Grid item element\n * @param cStart Column start index\n * @param opts Sticky configuration options\n * @param stickyLeftIndexes Left sticky indexes\n * @param stickyRightIndexes Right sticky indexes\n */\nfunction handleSticky(\n el: HTMLElement,\n cStart: number,\n opts: { useStickyAttr?: boolean },\n stickyLeftIndexes: number[],\n stickyRightIndexes: number[],\n) {\n if (opts.useStickyAttr && el.getAttribute('sticky') === \"left\" && !stickyLeftIndexes.includes(cStart - 1)) {\n stickyLeftIndexes.push(cStart - 1);\n }\n if (opts.useStickyAttr && el.getAttribute('sticky') === \"right\" && !stickyRightIndexes.includes(cStart - 1)) {\n stickyRightIndexes.push(cStart - 1);\n }\n applySticky(el, cStart - 1, stickyLeftIndexes, stickyRightIndexes);\n}\n\n/**\n * @param carry Rowspan tracking array\n */\nfunction decrementCarry(carry: number[]) {\n for (let i = 0; i < carry.length; i++) {\n if (carry[i] > 0) {\n carry[i]--;\n }\n }\n}\n\n/**\n * @param el Target grid cell element\n * @param colIndex Column index\n * @param stickyLeftIndexes Sticky-left indexes\n * @param stickyRightIndexes Sticky-right indexes\n */\nfunction applySticky(\n el: HTMLElement,\n colIndex: number,\n stickyLeftIndexes: number[],\n stickyRightIndexes: number[],\n) {\n const onLeft = stickyLeftIndexes.includes(colIndex);\n const onRight = stickyRightIndexes.includes(colIndex);\n if (!onLeft && !onRight) return;\n\n prepareStickyElement(el);\n if (onLeft && !onRight) {\n applyLeftSticky(el, colIndex);\n } else {\n applyRightSticky(el, colIndex);\n }\n}\n\n/**\n * @param el Grid item element to prepare for sticky positioning\n */\nfunction prepareStickyElement(el: HTMLElement) {\n el.style.position = 'sticky';\n el.style.left = '';\n el.style.right = '';\n el.removeAttribute('data-sticky');\n}\n\n/**\n * @param el Target element\n * @param colIndex Column index\n * @param stickyLeftIndexes Sticky-left column indexes\n */\nfunction applyLeftSticky(\n el: HTMLElement,\n colIndex: number,\n) {\n el.setAttribute('data-sticky', 'left');\n if (el.tagName === NILE_GRID_HEAD_ITEM) {\n el.style.backgroundColor = \"var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary))\";\n }\n else {\n el.style.backgroundColor = 'var(--nile-colors-white-base, var(--ng-colors-bg-primary))';\n }\n el.style.zIndex = '1';\n el.style.left = `var(--sticky-left-${colIndex})`;\n}\n\n/**\n * @param el Target element\n * @param colIndex Column index\n * @param stickyRightIndexes Sticky-right indexes\n */\nfunction applyRightSticky(\n el: HTMLElement,\n colIndex: number,\n) {\n el.setAttribute('data-sticky', 'right');\n if (el.tagName === NILE_GRID_HEAD_ITEM) {\n el.style.backgroundColor = \"var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary))\";\n }\n else {\n el.style.backgroundColor = 'var(--nile-colors-white-base, var(--ng-colors-bg-primary))';\n }\n el.style.zIndex = '1';\n el.style.right = `var(--sticky-right-${colIndex})`;\n}\n\n/**\n * @param nileGrid Grid instance to sync shadows for\n */\nexport function syncStickyShadows(nileGrid: NileGrid) {\n if (!nileGrid.stickyLeftIndexes.length && !nileGrid.stickyRightIndexes.length) {\n return;\n }\n\n const { showRightOnLeftStickies, showLeftOnRightStickies } = getShadowStates(nileGrid);\n\n if (\n nileGrid.shadowLeftVisibleSticky === showRightOnLeftStickies &&\n nileGrid.shadowRightVisibleSticky === showLeftOnRightStickies\n ) {\n return;\n }\n\n nileGrid.shadowLeftVisibleSticky = showRightOnLeftStickies;\n nileGrid.shadowRightVisibleSticky = showLeftOnRightStickies;\n \n\n for (const el of nileGrid.stickyLeftHeadEls) {\n el.classList.toggle('shadow-left', showRightOnLeftStickies);\n }\n for (const el of nileGrid.stickyLeftBodyEls) {\n el.classList.toggle('shadow-left', showRightOnLeftStickies);\n }\n for (const el of nileGrid.stickyRightHeadEls) {\n el.classList.toggle('shadow-right', showLeftOnRightStickies);\n }\n for (const el of nileGrid.stickyRightBodyEls) {\n el.classList.toggle('shadow-right', showLeftOnRightStickies);\n }\n}\n\n\n/**\n * @param nileGrid Grid instance\n * @returns Object containing booleans for left/right shadow visibility\n */\nfunction getShadowStates(nileGrid: NileGrid) {\n const max = Math.max(0, nileGrid.scrollWidth - nileGrid.clientWidth);\n return {\n showRightOnLeftStickies: nileGrid.scrollLeft > 0,\n showLeftOnRightStickies: nileGrid.scrollLeft < max\n };\n}\n\n/** computeHeadLayout\n * @param nileGrid Grid instance\n * @param headRows Header rows (<nile-grid-row>[])\n * @param carryHead Rowspan carry tracking array\n * @param colCount Current column count\n * @param stickyLeftIndexes Left-sticky indexes\n * @param stickyRightIndexes Right-sticky indexes\n * @returns Final column count after header layout\n */\nfunction computeHeadLayout(\n nileGrid: NileGrid,\n headRows: HTMLElement[],\n carryHead: number[],\n colCount: number,\n stickyLeftIndexes: number[],\n stickyRightIndexes: number[],\n): number {\n return layoutRows(\n nileGrid,\n headRows,\n carryHead,\n colCount,\n stickyLeftIndexes,\n stickyRightIndexes,\n {\n itemSelector: 'nile-grid-head-item',\n useStickyAttr: true,\n handleRowBg: false,\n }\n );\n}\n\n/** computeBodyLayout\n * @param nileGrid Grid instance\n * @param bodyRows Body rows (<nile-grid-row>[])\n * @param carryBody Rowspan carry tracking array\n * @param colCount Current column count\n * @param stickyLeftIndexes Left-sticky indexes\n * @param stickyRightIndexes Right-sticky indexes\n * @returns Final column count after body layout\n */\nfunction computeBodyLayout(\n nileGrid: NileGrid,\n bodyRows: HTMLElement[],\n carryBody: number[],\n colCount: number,\n stickyLeftIndexes: number[],\n stickyRightIndexes: number[],\n): number {\n return layoutRows(\n nileGrid,\n bodyRows,\n carryBody,\n colCount,\n stickyLeftIndexes,\n stickyRightIndexes,\n {\n itemSelector: 'nile-grid-cell-item',\n useStickyAttr: false,\n handleRowBg: true,\n }\n );\n}\n\n/**\n * @param nileGrid Grid container element\n * @param colCount Total number of columns\n * @param columnWidths Column width array\n */\nexport function applyColumnsTemplate(\n nileGrid: NileGrid,\n columnWidths: number[]\n) {\n const cols = columnWidths\n .map((w, idx) => {\n if (idx === columnWidths.length - 1) {\n return `minmax(${Math.round(w)}px, auto)`;\n }\n return `${Math.max(0, Math.round(w))}px`;\n })\n .join(' ');\n nileGrid.style.setProperty('--nile-grid-columns', cols);\n}\n\n/**\n * @param nileGrid Grid instance\n * @returns Head and body elements from the grid slot\n */\nfunction getHeadAndBody(nileGrid: NileGrid) {\n if (!nileGrid.shadowRoot) return { head: undefined, body: undefined };\n const assigned = nileGrid.slotEl.assignedElements();\n const find = (tag: string) =>\n assigned.find(n => n.tagName.toLowerCase() === tag) as HTMLElement | undefined;\n return { head: find('nile-grid-head'), body: find('nile-grid-body') };\n}"]}
|
|
@@ -308,9 +308,11 @@ export { default as ngbatterycharging } from './ng-battery-charging';
|
|
|
308
308
|
export { default as ngbell01 } from './ng-bell-01';
|
|
309
309
|
export { default as ngbellringing04 } from './ng-bell-ringing-04';
|
|
310
310
|
export { default as ngbold01 } from './ng-bold-01';
|
|
311
|
+
export { default as ngboolean } from './ng-boolean';
|
|
311
312
|
export { default as ngbriefcase01 } from './ng-briefcase-01';
|
|
312
313
|
export { default as ngbuilding01 } from './ng-building-01';
|
|
313
314
|
export { default as ngbuilding05 } from './ng-building-05';
|
|
315
|
+
export { default as ngbuilding07 } from './ng-building-07';
|
|
314
316
|
export { default as ngbuttonloadingblueanimated } from './ng-button-loading-blue-animated';
|
|
315
317
|
export { default as ngbuttonloadingblue } from './ng-button-loading-blue';
|
|
316
318
|
export { default as ngcalendarplus02 } from './ng-calendar-plus-02';
|
|
@@ -328,8 +330,10 @@ export { default as ngchevronright } from './ng-chevron-right';
|
|
|
328
330
|
export { default as ngchevronselectorvertical } from './ng-chevron-selector-vertical';
|
|
329
331
|
export { default as ngchevronupdouble } from './ng-chevron-up-double';
|
|
330
332
|
export { default as ngchevronup } from './ng-chevron-up';
|
|
333
|
+
export { default as ngclockrefresh } from './ng-clock-refresh';
|
|
331
334
|
export { default as ngcolumns02 } from './ng-columns-02';
|
|
332
335
|
export { default as ngcopy03 } from './ng-copy-03';
|
|
336
|
+
export { default as ngdataflow02 } from './ng-dataflow-02';
|
|
333
337
|
export { default as ngdataflow04 } from './ng-dataflow-04';
|
|
334
338
|
export { default as ngdotsgrid } from './ng-dots-grid';
|
|
335
339
|
export { default as ngdotsvertical } from './ng-dots-vertical';
|
|
@@ -345,6 +349,7 @@ export { default as ngfile06 } from './ng-file-06';
|
|
|
345
349
|
export { default as ngfilecheck02 } from './ng-file-check-02';
|
|
346
350
|
export { default as ngfilequestion03 } from './ng-file-question-03';
|
|
347
351
|
export { default as ngfilterlines } from './ng-filter-lines';
|
|
352
|
+
export { default as ngfoldercode } from './ng-folder-code';
|
|
348
353
|
export { default as nggrid01 } from './ng-grid-01';
|
|
349
354
|
export { default as nghash } from './ng-hash';
|
|
350
355
|
export { default as nghelpcircle } from './ng-help-circle';
|
|
@@ -356,6 +361,7 @@ export { default as ngitalic01 } from './ng-italic-01';
|
|
|
356
361
|
export { default as ngkey01 } from './ng-key-01';
|
|
357
362
|
export { default as nglayersthree01 } from './ng-layers-three-01';
|
|
358
363
|
export { default as nglayersthree02 } from './ng-layers-three-02';
|
|
364
|
+
export { default as nglightbulb05 } from './ng-lightbulb-05';
|
|
359
365
|
export { default as nglist } from './ng-list';
|
|
360
366
|
export { default as nglock03 } from './ng-lock-03';
|
|
361
367
|
export { default as nglogout01 } from './ng-log-out-01';
|
|
@@ -367,6 +373,7 @@ export { default as ngmessagetextsquare01 } from './ng-message-text-square-01';
|
|
|
367
373
|
export { default as ngminimize02 } from './ng-minimize-02';
|
|
368
374
|
export { default as ngminus } from './ng-minus';
|
|
369
375
|
export { default as ngmonitor } from './ng-monitor';
|
|
376
|
+
export { default as ngnumber } from './ng-number';
|
|
370
377
|
export { default as ngpiechart03 } from './ng-pie-chart-03';
|
|
371
378
|
export { default as ngplus } from './ng-plus';
|
|
372
379
|
export { default as ngpower01 } from './ng-power-01';
|
|
@@ -383,6 +390,7 @@ export { default as ngshare06 } from './ng-share-06';
|
|
|
383
390
|
export { default as ngshieldtick } from './ng-shield-tick';
|
|
384
391
|
export { default as ngshoppingbag01 } from './ng-shopping-bag-01';
|
|
385
392
|
export { default as ngstars02 } from './ng-stars-02';
|
|
393
|
+
export { default as ngstring } from './ng-string';
|
|
386
394
|
export { default as ngswitchhorizontal01 } from './ng-switch-horizontal-01';
|
|
387
395
|
export { default as ngtag } from './ng-tag';
|
|
388
396
|
export { default as ngtrash01 } from './ng-trash-01';
|