@aquera/nile-elements 0.1.75-beta-1.1 → 0.1.75-beta-2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/demo/index.html +121 -181
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +724 -271
- package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
- package/dist/nile-avatar/nile-avatar.test.cjs.js.map +1 -1
- package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
- 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-badge/nile-badge.test.cjs.js +1 -1
- package/dist/nile-badge/nile-badge.test.cjs.js.map +1 -1
- package/dist/nile-badge/nile-badge.test.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.esm.js +1 -1
- package/dist/nile-button/nile-button.test.cjs.js +1 -1
- package/dist/nile-button/nile-button.test.cjs.js.map +1 -1
- package/dist/nile-button/nile-button.test.esm.js +1 -1
- package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
- package/dist/nile-calendar/nile-calendar.test.cjs.js.map +1 -1
- package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
- package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
- package/dist/nile-chip/nile-chip.test.cjs.js.map +1 -1
- package/dist/nile-chip/nile-chip.test.esm.js +1 -1
- package/dist/nile-code-editor/backup_nile-code-editor copy.cjs.js +2 -0
- package/dist/nile-code-editor/backup_nile-code-editor copy.cjs.js.map +1 -0
- package/dist/nile-code-editor/backup_nile-code-editor copy.esm.js +1 -0
- package/dist/nile-code-editor/extensionSetup.cjs.js +6 -6
- package/dist/nile-code-editor/extensionSetup.cjs.js.map +1 -1
- package/dist/nile-code-editor/extensionSetup.esm.js +1 -1
- package/dist/nile-code-editor/nile-code-editor.cjs.js +2 -2
- package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
- package/dist/nile-code-editor/nile-code-editor.esm.js +3 -3
- 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 +2 -2
- package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
- package/dist/nile-dialog/nile-dialog.test.cjs.js.map +1 -1
- package/dist/nile-dialog/nile-dialog.test.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 +2 -2
- package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
- package/dist/nile-drawer/nile-drawer.test.cjs.js.map +1 -1
- package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
- package/dist/nile-grid/index.cjs.js +2 -0
- package/dist/nile-grid/index.cjs.js.map +1 -0
- package/dist/nile-grid/index.esm.js +1 -0
- package/dist/nile-grid/nile-grid.cjs.js +2 -0
- package/dist/nile-grid/nile-grid.cjs.js.map +1 -0
- package/dist/nile-grid/nile-grid.css.cjs.js +2 -0
- package/dist/nile-grid/nile-grid.css.cjs.js.map +1 -0
- package/dist/nile-grid/nile-grid.css.esm.js +32 -0
- package/dist/nile-grid/nile-grid.esm.js +7 -0
- package/dist/nile-grid/nile-grid.utils.cjs.js +2 -0
- package/dist/nile-grid/nile-grid.utils.cjs.js.map +1 -0
- package/dist/nile-grid/nile-grid.utils.esm.js +1 -0
- package/dist/nile-grid-body/index.cjs.js +2 -0
- package/dist/nile-grid-body/index.cjs.js.map +1 -0
- package/dist/nile-grid-body/index.esm.js +1 -0
- package/dist/nile-grid-body/nile-grid-body.cjs.js +2 -0
- package/dist/nile-grid-body/nile-grid-body.cjs.js.map +1 -0
- package/dist/nile-grid-body/nile-grid-body.css.cjs.js +2 -0
- package/dist/nile-grid-body/nile-grid-body.css.cjs.js.map +1 -0
- package/dist/nile-grid-body/nile-grid-body.css.esm.js +10 -0
- package/dist/nile-grid-body/nile-grid-body.esm.js +5 -0
- package/dist/nile-grid-cell-item/index.cjs.js +2 -0
- package/dist/nile-grid-cell-item/index.cjs.js.map +1 -0
- package/dist/nile-grid-cell-item/index.esm.js +1 -0
- package/dist/nile-grid-cell-item/nile-grid-cell-item.cjs.js +2 -0
- package/dist/nile-grid-cell-item/nile-grid-cell-item.cjs.js.map +1 -0
- package/dist/nile-grid-cell-item/nile-grid-cell-item.css.cjs.js +2 -0
- package/dist/nile-grid-cell-item/nile-grid-cell-item.css.cjs.js.map +1 -0
- package/dist/nile-grid-cell-item/nile-grid-cell-item.css.esm.js +35 -0
- package/dist/nile-grid-cell-item/nile-grid-cell-item.esm.js +12 -0
- package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.cjs.js +2 -0
- package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.cjs.js.map +1 -0
- package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.esm.js +1 -0
- package/dist/nile-grid-head/index.cjs.js +2 -0
- package/dist/nile-grid-head/index.cjs.js.map +1 -0
- package/dist/nile-grid-head/index.esm.js +1 -0
- package/dist/nile-grid-head/nile-grid-head.cjs.js +2 -0
- package/dist/nile-grid-head/nile-grid-head.cjs.js.map +1 -0
- package/dist/nile-grid-head/nile-grid-head.css.cjs.js +2 -0
- package/dist/nile-grid-head/nile-grid-head.css.cjs.js.map +1 -0
- package/dist/nile-grid-head/nile-grid-head.css.esm.js +7 -0
- package/dist/nile-grid-head/nile-grid-head.esm.js +5 -0
- package/dist/nile-grid-head-item/index.cjs.js +2 -0
- package/dist/nile-grid-head-item/index.cjs.js.map +1 -0
- package/dist/nile-grid-head-item/index.esm.js +1 -0
- package/dist/nile-grid-head-item/nile-grid-head-item.cjs.js +2 -0
- package/dist/nile-grid-head-item/nile-grid-head-item.cjs.js.map +1 -0
- package/dist/nile-grid-head-item/nile-grid-head-item.css.cjs.js +2 -0
- package/dist/nile-grid-head-item/nile-grid-head-item.css.cjs.js.map +1 -0
- package/dist/nile-grid-head-item/nile-grid-head-item.css.esm.js +34 -0
- package/dist/nile-grid-head-item/nile-grid-head-item.esm.js +12 -0
- package/dist/nile-grid-head-item/nile-grid-head-item.utils.cjs.js +2 -0
- package/dist/nile-grid-head-item/nile-grid-head-item.utils.cjs.js.map +1 -0
- package/dist/nile-grid-head-item/nile-grid-head-item.utils.esm.js +1 -0
- package/dist/nile-grid-row/index.cjs.js +2 -0
- package/dist/nile-grid-row/index.cjs.js.map +1 -0
- package/dist/nile-grid-row/index.esm.js +1 -0
- package/dist/nile-grid-row/nile-grid-row.cjs.js +2 -0
- package/dist/nile-grid-row/nile-grid-row.cjs.js.map +1 -0
- package/dist/nile-grid-row/nile-grid-row.css.cjs.js +2 -0
- package/dist/nile-grid-row/nile-grid-row.css.cjs.js.map +1 -0
- package/dist/nile-grid-row/nile-grid-row.css.esm.js +15 -0
- package/dist/nile-grid-row/nile-grid-row.esm.js +7 -0
- package/dist/nile-icon/icons/svg/format_align_justify.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/format_align_justify.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/format_align_justify.esm.js +1 -0
- package/dist/nile-icon/icons/svg/format_align_left.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/format_align_left.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/format_align_left.esm.js +1 -0
- package/dist/nile-icon/icons/svg/format_align_middle.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/format_align_middle.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/format_align_middle.esm.js +1 -0
- package/dist/nile-icon/icons/svg/format_align_right.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/format_align_right.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/format_align_right.esm.js +1 -0
- package/dist/nile-icon/icons/svg/format_bold.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/format_bold.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/format_bold.esm.js +1 -0
- package/dist/nile-icon/icons/svg/format_clear.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/format_clear.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/format_clear.esm.js +1 -0
- package/dist/nile-icon/icons/svg/format_italic.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/format_italic.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/format_italic.esm.js +1 -0
- package/dist/nile-icon/icons/svg/format_list_bulleted.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/format_list_bulleted.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/format_list_bulleted.esm.js +1 -0
- package/dist/nile-icon/icons/svg/format_list_numbered.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/format_list_numbered.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/format_list_numbered.esm.js +1 -0
- package/dist/nile-icon/icons/svg/format_underline.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/format_underline.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/format_underline.esm.js +1 -0
- package/dist/nile-icon/icons/svg/image_2.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/image_2.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/image_2.esm.js +1 -0
- 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/link_2.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/link_2.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/link_2.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 +2 -2
- package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
- package/dist/nile-icon/nile-icon.test.cjs.js.map +1 -1
- package/dist/nile-icon/nile-icon.test.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-input/nile-input.test.cjs.js +1 -1
- package/dist/nile-input/nile-input.test.cjs.js.map +1 -1
- package/dist/nile-input/nile-input.test.esm.js +1 -1
- package/dist/nile-link/nile-link.css.cjs.js +1 -1
- package/dist/nile-link/nile-link.css.cjs.js.map +1 -1
- package/dist/nile-link/nile-link.css.esm.js +1 -0
- 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 +2 -2
- package/dist/nile-rich-text-editor/index.cjs.js +2 -0
- package/dist/nile-rich-text-editor/index.cjs.js.map +1 -0
- package/dist/nile-rich-text-editor/index.esm.js +1 -0
- package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js +2 -0
- package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js.map +1 -0
- package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js +2 -0
- package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js.map +1 -0
- package/dist/nile-rich-text-editor/nile-rich-text-editor.css.esm.js +149 -0
- package/dist/nile-rich-text-editor/nile-rich-text-editor.esm.js +1 -0
- package/dist/nile-rich-text-editor/nile-rte-color.cjs.js +2 -0
- package/dist/nile-rich-text-editor/nile-rte-color.cjs.js.map +1 -0
- package/dist/nile-rich-text-editor/nile-rte-color.esm.js +53 -0
- package/dist/nile-rich-text-editor/nile-rte-divider.cjs.js +2 -0
- package/dist/nile-rich-text-editor/nile-rte-divider.cjs.js.map +1 -0
- package/dist/nile-rich-text-editor/nile-rte-divider.esm.js +1 -0
- package/dist/nile-rich-text-editor/nile-rte-link.cjs.js +2 -0
- package/dist/nile-rich-text-editor/nile-rte-link.cjs.js.map +1 -0
- package/dist/nile-rich-text-editor/nile-rte-link.esm.js +19 -0
- package/dist/nile-rich-text-editor/nile-rte-mentions-item.cjs.js +2 -0
- package/dist/nile-rich-text-editor/nile-rte-mentions-item.cjs.js.map +1 -0
- package/dist/nile-rich-text-editor/nile-rte-mentions-item.esm.js +1 -0
- package/dist/nile-rich-text-editor/nile-rte-mentions.cjs.js +3 -0
- package/dist/nile-rich-text-editor/nile-rte-mentions.cjs.js.map +1 -0
- package/dist/nile-rich-text-editor/nile-rte-mentions.esm.js +1 -0
- package/dist/nile-rich-text-editor/nile-rte-preview.cjs.js +2 -0
- package/dist/nile-rich-text-editor/nile-rte-preview.cjs.js.map +1 -0
- package/dist/nile-rich-text-editor/nile-rte-preview.esm.js +1 -0
- package/dist/nile-rich-text-editor/nile-rte-select.cjs.js +2 -0
- package/dist/nile-rich-text-editor/nile-rte-select.cjs.js.map +1 -0
- package/dist/nile-rich-text-editor/nile-rte-select.esm.js +66 -0
- package/dist/nile-rich-text-editor/nile-rte-toolbar-item.cjs.js +2 -0
- package/dist/nile-rich-text-editor/nile-rte-toolbar-item.cjs.js.map +1 -0
- package/dist/nile-rich-text-editor/nile-rte-toolbar-item.esm.js +1 -0
- package/dist/nile-rich-text-editor/nile-rte-toolbar.cjs.js +2 -0
- package/dist/nile-rich-text-editor/nile-rte-toolbar.cjs.js.map +1 -0
- package/dist/nile-rich-text-editor/nile-rte-toolbar.esm.js +1 -0
- package/dist/nile-rich-text-editor/utils.cjs.js +2 -0
- package/dist/nile-rich-text-editor/utils.cjs.js.map +1 -0
- package/dist/nile-rich-text-editor/utils.esm.js +1 -0
- 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 +1 -1
- package/dist/nile-select/nile-select.test.cjs.js +1 -1
- package/dist/nile-select/nile-select.test.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.test.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 +1 -1
- package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.test.cjs.js.map +1 -1
- package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
- 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 +1 -1
- 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 +2 -2
- 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/index.d.ts +7 -0
- package/dist/src/index.js +8 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/nile-code-editor/Old_theme copy.d.ts +191 -0
- package/dist/src/nile-code-editor/Old_theme copy.js +193 -0
- package/dist/src/nile-code-editor/Old_theme copy.js.map +1 -0
- package/dist/src/nile-code-editor/backup_nile-code-editor copy.d.ts +0 -0
- package/dist/src/nile-code-editor/backup_nile-code-editor copy.js +675 -0
- package/dist/src/nile-code-editor/backup_nile-code-editor copy.js.map +1 -0
- package/dist/src/nile-code-editor/nile-code-editor.d.ts +6 -3
- package/dist/src/nile-code-editor/nile-code-editor.js +44 -22
- package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
- package/dist/src/nile-code-editor/theme copy.d.ts +191 -0
- package/dist/src/nile-code-editor/theme copy.js +193 -0
- package/dist/src/nile-code-editor/theme copy.js.map +1 -0
- package/dist/src/nile-grid/index.d.ts +0 -4
- package/dist/src/nile-grid/index.js +0 -4
- package/dist/src/nile-grid/index.js.map +1 -1
- package/dist/src/nile-grid/nile-grid.css.d.ts +8 -0
- package/dist/src/nile-grid/nile-grid.css.js +27 -106
- package/dist/src/nile-grid/nile-grid.css.js.map +1 -1
- package/dist/src/nile-grid/nile-grid.d.ts +37 -26
- package/dist/src/nile-grid/nile-grid.js +96 -148
- package/dist/src/nile-grid/nile-grid.js.map +1 -1
- package/dist/src/nile-grid/nile-grid.utils.d.ts +9 -0
- package/dist/src/nile-grid/nile-grid.utils.js +170 -0
- package/dist/src/nile-grid/nile-grid.utils.js.map +1 -0
- package/dist/src/nile-grid-body/index.d.ts +1 -0
- package/dist/src/nile-grid-body/index.js +2 -0
- package/dist/src/nile-grid-body/index.js.map +1 -0
- package/dist/src/nile-grid-body/nile-grid-body.css.d.ts +12 -0
- package/dist/src/nile-grid-body/nile-grid-body.css.js +22 -0
- package/dist/src/nile-grid-body/nile-grid-body.css.js.map +1 -0
- package/dist/src/nile-grid-body/nile-grid-body.d.ts +29 -0
- package/dist/src/nile-grid-body/nile-grid-body.js +43 -0
- package/dist/src/nile-grid-body/nile-grid-body.js.map +1 -0
- package/dist/src/nile-grid-cell-item/index.d.ts +1 -0
- package/dist/src/nile-grid-cell-item/index.js +2 -0
- package/dist/src/nile-grid-cell-item/index.js.map +1 -0
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.d.ts +12 -0
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.js +47 -0
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.js.map +1 -0
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.d.ts +36 -0
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.js +93 -0
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.js.map +1 -0
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.d.ts +10 -0
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.js +34 -0
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.js.map +1 -0
- package/dist/src/nile-grid-head/index.d.ts +1 -0
- package/dist/src/nile-grid-head/index.js +2 -0
- package/dist/src/nile-grid-head/index.js.map +1 -0
- package/dist/src/nile-grid-head/nile-grid-head.css.d.ts +12 -0
- package/dist/src/nile-grid-head/nile-grid-head.css.js +19 -0
- package/dist/src/nile-grid-head/nile-grid-head.css.js.map +1 -0
- package/dist/src/nile-grid-head/nile-grid-head.d.ts +28 -0
- package/dist/src/nile-grid-head/nile-grid-head.js +41 -0
- package/dist/src/nile-grid-head/nile-grid-head.js.map +1 -0
- package/dist/src/nile-grid-head-item/index.d.ts +1 -0
- package/dist/src/nile-grid-head-item/index.js +2 -0
- package/dist/src/nile-grid-head-item/index.js.map +1 -0
- package/dist/src/nile-grid-head-item/nile-grid-head-item.css.d.ts +12 -0
- package/dist/src/nile-grid-head-item/nile-grid-head-item.css.js +46 -0
- package/dist/src/nile-grid-head-item/nile-grid-head-item.css.js.map +1 -0
- package/dist/src/nile-grid-head-item/nile-grid-head-item.d.ts +37 -0
- package/dist/src/nile-grid-head-item/nile-grid-head-item.js +100 -0
- package/dist/src/nile-grid-head-item/nile-grid-head-item.js.map +1 -0
- package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.d.ts +10 -0
- package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.js +34 -0
- package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.js.map +1 -0
- package/dist/src/nile-grid-row/index.d.ts +1 -0
- package/dist/src/nile-grid-row/index.js +2 -0
- package/dist/src/nile-grid-row/index.js.map +1 -0
- package/dist/src/nile-grid-row/nile-grid-row.css.d.ts +12 -0
- package/dist/src/nile-grid-row/nile-grid-row.css.js +27 -0
- package/dist/src/nile-grid-row/nile-grid-row.css.js.map +1 -0
- package/dist/src/nile-grid-row/nile-grid-row.d.ts +29 -0
- package/dist/src/nile-grid-row/nile-grid-row.js +45 -0
- package/dist/src/nile-grid-row/nile-grid-row.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/format_align_justify.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/format_align_justify.js +5 -0
- package/dist/src/nile-icon/icons/svg/format_align_justify.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/format_align_left.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/format_align_left.js +5 -0
- package/dist/src/nile-icon/icons/svg/format_align_left.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/format_align_middle.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/format_align_middle.js +5 -0
- package/dist/src/nile-icon/icons/svg/format_align_middle.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/format_align_right.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/format_align_right.js +5 -0
- package/dist/src/nile-icon/icons/svg/format_align_right.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/format_bold.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/format_bold.js +5 -0
- package/dist/src/nile-icon/icons/svg/format_bold.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/format_clear.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/format_clear.js +5 -0
- package/dist/src/nile-icon/icons/svg/format_clear.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/format_italic.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/format_italic.js +5 -0
- package/dist/src/nile-icon/icons/svg/format_italic.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/format_list_bulleted.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/format_list_bulleted.js +5 -0
- package/dist/src/nile-icon/icons/svg/format_list_bulleted.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/format_list_numbered.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/format_list_numbered.js +5 -0
- package/dist/src/nile-icon/icons/svg/format_list_numbered.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/format_underline.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/format_underline.js +5 -0
- package/dist/src/nile-icon/icons/svg/format_underline.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/image_2.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/image_2.js +5 -0
- package/dist/src/nile-icon/icons/svg/image_2.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/index.d.ts +12 -0
- package/dist/src/nile-icon/icons/svg/index.js +12 -0
- package/dist/src/nile-icon/icons/svg/index.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/link_2.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/link_2.js +5 -0
- package/dist/src/nile-icon/icons/svg/link_2.js.map +1 -0
- package/dist/src/nile-link/nile-link.css.js +1 -0
- package/dist/src/nile-link/nile-link.css.js.map +1 -1
- package/dist/src/nile-option/nile-option.js +1 -1
- package/dist/src/nile-option/nile-option.js.map +1 -1
- package/dist/src/nile-rich-text-editor/index.d.ts +1 -0
- package/dist/src/nile-rich-text-editor/index.js +2 -0
- package/dist/src/nile-rich-text-editor/index.js.map +1 -0
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.d.ts +3 -0
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js +152 -0
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js.map +1 -0
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.d.ts +63 -0
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js +735 -0
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js.map +1 -0
- package/dist/src/nile-rich-text-editor/nile-rte-color.d.ts +20 -0
- package/dist/src/nile-rich-text-editor/nile-rte-color.js +188 -0
- package/dist/src/nile-rich-text-editor/nile-rte-color.js.map +1 -0
- package/dist/src/nile-rich-text-editor/nile-rte-divider.d.ts +10 -0
- package/dist/src/nile-rich-text-editor/nile-rte-divider.js +12 -0
- package/dist/src/nile-rich-text-editor/nile-rte-divider.js.map +1 -0
- package/dist/src/nile-rich-text-editor/nile-rte-link.d.ts +19 -0
- package/dist/src/nile-rich-text-editor/nile-rte-link.js +169 -0
- package/dist/src/nile-rich-text-editor/nile-rte-link.js.map +1 -0
- package/dist/src/nile-rich-text-editor/nile-rte-mentions-item.d.ts +18 -0
- package/dist/src/nile-rich-text-editor/nile-rte-mentions-item.js +53 -0
- package/dist/src/nile-rich-text-editor/nile-rte-mentions-item.js.map +1 -0
- package/dist/src/nile-rich-text-editor/nile-rte-mentions.d.ts +64 -0
- package/dist/src/nile-rich-text-editor/nile-rte-mentions.js +544 -0
- package/dist/src/nile-rich-text-editor/nile-rte-mentions.js.map +1 -0
- package/dist/src/nile-rich-text-editor/nile-rte-preview.d.ts +10 -0
- package/dist/src/nile-rich-text-editor/nile-rte-preview.js +12 -0
- package/dist/src/nile-rich-text-editor/nile-rte-preview.js.map +1 -0
- package/dist/src/nile-rich-text-editor/nile-rte-select.d.ts +33 -0
- package/dist/src/nile-rich-text-editor/nile-rte-select.js +228 -0
- package/dist/src/nile-rich-text-editor/nile-rte-select.js.map +1 -0
- package/dist/src/nile-rich-text-editor/nile-rte-toolbar-item.d.ts +12 -0
- package/dist/src/nile-rich-text-editor/nile-rte-toolbar-item.js +23 -0
- package/dist/src/nile-rich-text-editor/nile-rte-toolbar-item.js.map +1 -0
- package/dist/src/nile-rich-text-editor/nile-rte-toolbar.d.ts +10 -0
- package/dist/src/nile-rich-text-editor/nile-rte-toolbar.js +12 -0
- package/dist/src/nile-rich-text-editor/nile-rte-toolbar.js.map +1 -0
- package/dist/src/nile-rich-text-editor/utils.d.ts +13 -0
- package/dist/src/nile-rich-text-editor/utils.js +538 -0
- package/dist/src/nile-rich-text-editor/utils.js.map +1 -0
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -3
- package/rollup.config.js +1 -3
- package/src/index.ts +8 -1
- package/src/nile-code-editor/backup_nile-code-editor copy.ts +763 -0
- package/src/nile-code-editor/nile-code-editor.ts +44 -20
- package/src/nile-grid/index.ts +1 -0
- package/src/nile-grid/nile-grid.css.ts +43 -0
- package/src/nile-grid/nile-grid.ts +185 -0
- package/src/nile-grid/nile-grid.utils.ts +252 -0
- package/src/nile-grid-body/index.ts +1 -0
- package/src/nile-grid-body/nile-grid-body.css.ts +24 -0
- package/src/nile-grid-body/nile-grid-body.ts +51 -0
- package/src/nile-grid-cell-item/index.ts +1 -0
- package/src/nile-grid-cell-item/nile-grid-cell-item.css.ts +49 -0
- package/src/nile-grid-cell-item/nile-grid-cell-item.ts +98 -0
- package/src/nile-grid-cell-item/nile-grid-cell-item.utils.ts +65 -0
- package/src/nile-grid-head/index.ts +1 -0
- package/src/nile-grid-head/nile-grid-head.css.ts +21 -0
- package/src/nile-grid-head/nile-grid-head.ts +50 -0
- package/src/nile-grid-head-item/index.ts +1 -0
- package/src/nile-grid-head-item/nile-grid-head-item.css.ts +48 -0
- package/src/nile-grid-head-item/nile-grid-head-item.ts +111 -0
- package/src/nile-grid-head-item/nile-grid-head-item.utils.ts +66 -0
- package/src/nile-grid-row/index.ts +1 -0
- package/src/nile-grid-row/nile-grid-row.css.ts +29 -0
- package/src/nile-grid-row/nile-grid-row.ts +53 -0
- package/src/nile-icon/icons/svg/format_align_justify.ts +5 -0
- package/src/nile-icon/icons/svg/format_align_left.ts +5 -0
- package/src/nile-icon/icons/svg/format_align_middle.ts +5 -0
- package/src/nile-icon/icons/svg/format_align_right.ts +5 -0
- package/src/nile-icon/icons/svg/format_bold.ts +5 -0
- package/src/nile-icon/icons/svg/format_clear.ts +5 -0
- package/src/nile-icon/icons/svg/format_italic.ts +5 -0
- package/src/nile-icon/icons/svg/format_list_bulleted.ts +5 -0
- package/src/nile-icon/icons/svg/format_list_numbered.ts +5 -0
- package/src/nile-icon/icons/svg/format_underline.ts +5 -0
- package/src/nile-icon/icons/svg/image_2.ts +5 -0
- package/src/nile-icon/icons/svg/index.ts +12 -0
- package/src/nile-icon/icons/svg/link_2.ts +5 -0
- package/src/nile-link/nile-link.css.ts +1 -0
- package/src/nile-option/nile-option.ts +1 -1
- package/src/nile-rich-text-editor/index.ts +1 -0
- package/src/nile-rich-text-editor/nile-rich-text-editor.css.ts +154 -0
- package/src/nile-rich-text-editor/nile-rich-text-editor.ts +836 -0
- package/src/nile-rich-text-editor/nile-rte-color.ts +189 -0
- package/src/nile-rich-text-editor/nile-rte-divider.ts +9 -0
- package/src/nile-rich-text-editor/nile-rte-link.ts +161 -0
- package/src/nile-rich-text-editor/nile-rte-mentions-item.ts +46 -0
- package/src/nile-rich-text-editor/nile-rte-mentions.ts +618 -0
- package/src/nile-rich-text-editor/nile-rte-preview.ts +9 -0
- package/src/nile-rich-text-editor/nile-rte-select.ts +249 -0
- package/src/nile-rich-text-editor/nile-rte-toolbar-item.ts +13 -0
- package/src/nile-rich-text-editor/nile-rte-toolbar.ts +9 -0
- package/src/nile-rich-text-editor/utils.ts +643 -0
- package/vscode-html-custom-data.json +309 -7
|
@@ -1,35 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Aquera Inc 2025
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the BSD-3-Clause license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import { CSSResultArray, TemplateResult } from 'lit';
|
|
3
8
|
import NileElement from '../internal/nile-element';
|
|
4
|
-
import type { ColumnDef, GridOptions } from './types.js';
|
|
5
9
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* @
|
|
10
|
+
* Nile grid component.
|
|
11
|
+
*
|
|
12
|
+
* @tag nile-grid
|
|
9
13
|
*
|
|
10
|
-
* @event grid-ready - Emitted when the grid is ready
|
|
11
14
|
*/
|
|
12
15
|
export declare class NileGrid extends NileElement {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
private
|
|
24
|
-
|
|
25
|
-
private
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
private
|
|
16
|
+
/**
|
|
17
|
+
* The styles for nile-grid
|
|
18
|
+
* @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`
|
|
19
|
+
*/
|
|
20
|
+
static get styles(): CSSResultArray;
|
|
21
|
+
/** User can pass custom widths for the columns */
|
|
22
|
+
customWidths: number[];
|
|
23
|
+
/** To set the grid template columns in rebuildTemplate method */
|
|
24
|
+
colTemplate: string;
|
|
25
|
+
/** To store the column widths in the beginning and after resizing */
|
|
26
|
+
private columnWidths;
|
|
27
|
+
/** To get the slot element */
|
|
28
|
+
private slotEl;
|
|
29
|
+
/** To get the first resize line to show the resize handle */
|
|
30
|
+
resizeStart: HTMLElement;
|
|
31
|
+
/** To get the last resize line to show the resize handle */
|
|
32
|
+
resizeEnd: HTMLElement;
|
|
33
|
+
/** To store the mutation observer */
|
|
34
|
+
private mo?;
|
|
35
|
+
/** To store the request animation frame */
|
|
36
|
+
private raf;
|
|
37
|
+
private scheduleLayout;
|
|
38
|
+
private ensureWidths;
|
|
39
|
+
private onResize;
|
|
40
|
+
protected firstUpdated(): void;
|
|
41
|
+
private _attachObserverAndLayout;
|
|
32
42
|
render(): TemplateResult;
|
|
43
|
+
disconnectedCallback(): void;
|
|
33
44
|
}
|
|
34
45
|
export default NileGrid;
|
|
35
46
|
declare global {
|
|
@@ -1,179 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Aquera Inc 2025
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the BSD-3-Clause license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
1
7
|
import { __decorate } from "tslib";
|
|
2
|
-
import { customElement, property } from 'lit/decorators.js';
|
|
3
8
|
import { html } from 'lit';
|
|
9
|
+
import { customElement, property, query, state } from 'lit/decorators.js';
|
|
4
10
|
import { styles } from './nile-grid.css';
|
|
5
11
|
import NileElement from '../internal/nile-element';
|
|
6
|
-
import {
|
|
7
|
-
import { GridRenderer } from './renderer.js';
|
|
8
|
-
import { ResizeHandler } from './resize-handler.js';
|
|
12
|
+
import { resizeLinesHandler, listenToEventListeners, removeEventListeners, getHead, getBody, rebuildTemplate, applyTemplate, layout, } from './nile-grid.utils';
|
|
9
13
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* @
|
|
14
|
+
* Nile grid component.
|
|
15
|
+
*
|
|
16
|
+
* @tag nile-grid
|
|
13
17
|
*
|
|
14
|
-
* @event grid-ready - Emitted when the grid is ready
|
|
15
18
|
*/
|
|
16
19
|
let NileGrid = class NileGrid extends NileElement {
|
|
17
20
|
constructor() {
|
|
18
21
|
super(...arguments);
|
|
19
|
-
/**
|
|
20
|
-
this.
|
|
21
|
-
/**
|
|
22
|
-
this.
|
|
23
|
-
/**
|
|
24
|
-
this.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
setRowData: (data) => {
|
|
38
|
-
this.rowData = data;
|
|
39
|
-
this.requestUpdate();
|
|
40
|
-
},
|
|
41
|
-
setColumnDefs: (defs) => {
|
|
42
|
-
this.columnDefs = defs;
|
|
43
|
-
this.requestUpdate();
|
|
22
|
+
/** User can pass custom widths for the columns */
|
|
23
|
+
this.customWidths = [];
|
|
24
|
+
/** To set the grid template columns in rebuildTemplate method */
|
|
25
|
+
this.colTemplate = '';
|
|
26
|
+
/** To store the column widths in the beginning and after resizing */
|
|
27
|
+
this.columnWidths = [...this.customWidths];
|
|
28
|
+
/** To store the request animation frame */
|
|
29
|
+
this.raf = 0;
|
|
30
|
+
this.onResize = (e) => {
|
|
31
|
+
const { col, widthPx } = e.detail;
|
|
32
|
+
let w;
|
|
33
|
+
const floor = 60;
|
|
34
|
+
if (e.target.getAttribute('colspan') &&
|
|
35
|
+
parseInt(e.target.getAttribute('colspan')) > 1) {
|
|
36
|
+
w = Math.max(floor, Math.round(widthPx - this.columnWidths[col - 1]));
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
w = Math.max(floor, Math.round(widthPx));
|
|
44
40
|
}
|
|
41
|
+
this.columnWidths[col] = w;
|
|
42
|
+
resizeLinesHandler(this.resizeStart, this.resizeEnd, col, widthPx, this.scrollHeight, this.columnWidths, e);
|
|
43
|
+
this.colTemplate = rebuildTemplate(this.columnWidths.length, this.columnWidths);
|
|
44
|
+
applyTemplate(getHead(this.slotEl), getBody(this.slotEl), this.colTemplate);
|
|
45
45
|
};
|
|
46
|
+
/* #endregion */
|
|
46
47
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
this.emit('grid-ready', event);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
handleResizeStart(event, col, columnIndex) {
|
|
57
|
-
ResizeHandler.handleResizeStart(event, col, columnIndex, this.columnDefs, this.gridOptions, () => this.requestUpdate());
|
|
58
|
-
}
|
|
59
|
-
renderHeader() {
|
|
60
|
-
return html `
|
|
61
|
-
<div class="grid-header" style="grid-template-columns: ${this.getGridTemplateColumns()};">
|
|
62
|
-
${this.columnDefs.map((col, index) => html `
|
|
63
|
-
<div class="grid-header-cell">
|
|
64
|
-
<span>${col.headerName || col.field}</span>
|
|
65
|
-
${this.shouldShowResizeHandle(col) ? html `
|
|
66
|
-
<div
|
|
67
|
-
class="grid-resize-handle"
|
|
68
|
-
@mousedown=${(e) => this.handleResizeStart(e, col, index)}
|
|
69
|
-
title="Drag to resize column"
|
|
70
|
-
></div>
|
|
71
|
-
` : ''}
|
|
72
|
-
</div>
|
|
73
|
-
`)}
|
|
74
|
-
</div>
|
|
75
|
-
`;
|
|
76
|
-
}
|
|
77
|
-
shouldShowResizeHandle(col) {
|
|
78
|
-
if (!this.gridOptions.enableColResize)
|
|
79
|
-
return false;
|
|
80
|
-
if (col.resizable === false)
|
|
81
|
-
return false;
|
|
82
|
-
return true;
|
|
48
|
+
/**
|
|
49
|
+
* The styles for nile-grid
|
|
50
|
+
* @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`
|
|
51
|
+
*/
|
|
52
|
+
static get styles() {
|
|
53
|
+
return [styles];
|
|
83
54
|
}
|
|
84
|
-
|
|
85
|
-
if (this.
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
<div class="grid-row" style="grid-template-columns: ${this.getGridTemplateColumns()};">
|
|
92
|
-
${this.renderRowCells(row, rowIndex)}
|
|
93
|
-
</div>
|
|
94
|
-
`,
|
|
95
|
-
scroller: true,
|
|
96
|
-
})}
|
|
97
|
-
</div>
|
|
98
|
-
`;
|
|
99
|
-
}
|
|
100
|
-
return GridRenderer.renderBody(this.rowData, this.columnDefs, false, () => html ``);
|
|
55
|
+
scheduleLayout() {
|
|
56
|
+
if (this.raf)
|
|
57
|
+
cancelAnimationFrame(this.raf);
|
|
58
|
+
this.raf = requestAnimationFrame(() => {
|
|
59
|
+
this.raf = 0;
|
|
60
|
+
layout(this, this.slotEl, this.ensureWidths.bind(this), rebuildTemplate, applyTemplate, this.columnWidths);
|
|
61
|
+
});
|
|
101
62
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
for (let colIndex = 0; colIndex < this.columnDefs.length; colIndex++) {
|
|
106
|
-
const col = this.columnDefs[colIndex];
|
|
107
|
-
// Check if this column should be skipped due to previous spanning
|
|
108
|
-
if (currentColIndex > colIndex) {
|
|
109
|
-
continue;
|
|
110
|
-
}
|
|
111
|
-
// Calculate column span
|
|
112
|
-
const colSpan = this.calculateColSpan(col, row, rowIndex, colIndex);
|
|
113
|
-
if (colSpan > 0) {
|
|
114
|
-
const cellStyle = `grid-column: ${currentColIndex + 1} / span ${colSpan};`;
|
|
115
|
-
cells.push(html `
|
|
116
|
-
<div class="grid-cell" style="${cellStyle}">
|
|
117
|
-
<span>${row[col.field]}</span>
|
|
118
|
-
</div>
|
|
119
|
-
`);
|
|
120
|
-
currentColIndex += colSpan;
|
|
121
|
-
}
|
|
63
|
+
ensureWidths(colCount) {
|
|
64
|
+
if (this.columnWidths.length !== colCount) {
|
|
65
|
+
this.columnWidths = Array(colCount).fill('');
|
|
122
66
|
}
|
|
123
|
-
return html `${cells}`;
|
|
124
67
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
data: row,
|
|
129
|
-
field: col.field,
|
|
130
|
-
rowIndex,
|
|
131
|
-
columnIndex: colIndex
|
|
132
|
-
};
|
|
133
|
-
return col.colSpan(params);
|
|
134
|
-
}
|
|
135
|
-
return 1;
|
|
68
|
+
firstUpdated() {
|
|
69
|
+
this.setAttribute('role', 'table');
|
|
70
|
+
listenToEventListeners(this, this.onResize, this.slotEl, this._attachObserverAndLayout.bind(this));
|
|
136
71
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
72
|
+
_attachObserverAndLayout() {
|
|
73
|
+
this.mo?.disconnect();
|
|
74
|
+
this.mo = new MutationObserver(() => {
|
|
75
|
+
this.scheduleLayout();
|
|
76
|
+
});
|
|
77
|
+
const head = getHead(this.slotEl);
|
|
78
|
+
const body = getBody(this.slotEl);
|
|
79
|
+
if (!head && !body)
|
|
80
|
+
return;
|
|
81
|
+
const target = body ?? this;
|
|
82
|
+
this.mo.observe(target, {
|
|
83
|
+
subtree: true,
|
|
84
|
+
childList: true,
|
|
85
|
+
attributes: true,
|
|
86
|
+
attributeFilter: ['colspan', 'rowspan'],
|
|
87
|
+
});
|
|
88
|
+
layout(this, this.slotEl, this.ensureWidths.bind(this), rebuildTemplate, applyTemplate, this.columnWidths);
|
|
148
89
|
}
|
|
149
90
|
render() {
|
|
150
|
-
if (!this.columnDefs || this.columnDefs.length === 0) {
|
|
151
|
-
return html `
|
|
152
|
-
<div class="grid-container">
|
|
153
|
-
<div class="grid-empty">
|
|
154
|
-
<div class="empty-text">No columns defined</div>
|
|
155
|
-
</div>
|
|
156
|
-
</div>
|
|
157
|
-
`;
|
|
158
|
-
}
|
|
159
91
|
return html `
|
|
160
|
-
<div
|
|
161
|
-
|
|
162
|
-
|
|
92
|
+
<div>
|
|
93
|
+
<slot></slot>
|
|
94
|
+
<div class="nile-resize-start"></div>
|
|
95
|
+
<div class="nile-resize-end"></div>
|
|
163
96
|
</div>
|
|
164
97
|
`;
|
|
165
98
|
}
|
|
99
|
+
disconnectedCallback() {
|
|
100
|
+
super.disconnectedCallback?.();
|
|
101
|
+
this.mo?.disconnect();
|
|
102
|
+
if (this.raf)
|
|
103
|
+
cancelAnimationFrame(this.raf);
|
|
104
|
+
removeEventListeners(this, this.onResize, this.slotEl, this._attachObserverAndLayout.bind(this));
|
|
105
|
+
}
|
|
166
106
|
};
|
|
167
|
-
NileGrid.styles = styles;
|
|
168
107
|
__decorate([
|
|
169
|
-
property({ type: Array, attribute:
|
|
170
|
-
], NileGrid.prototype, "
|
|
108
|
+
property({ type: Array, attribute: true })
|
|
109
|
+
], NileGrid.prototype, "customWidths", void 0);
|
|
110
|
+
__decorate([
|
|
111
|
+
state()
|
|
112
|
+
], NileGrid.prototype, "colTemplate", void 0);
|
|
113
|
+
__decorate([
|
|
114
|
+
state()
|
|
115
|
+
], NileGrid.prototype, "columnWidths", void 0);
|
|
116
|
+
__decorate([
|
|
117
|
+
query('slot')
|
|
118
|
+
], NileGrid.prototype, "slotEl", void 0);
|
|
171
119
|
__decorate([
|
|
172
|
-
|
|
173
|
-
], NileGrid.prototype, "
|
|
120
|
+
query('.nile-resize-start')
|
|
121
|
+
], NileGrid.prototype, "resizeStart", void 0);
|
|
174
122
|
__decorate([
|
|
175
|
-
|
|
176
|
-
], NileGrid.prototype, "
|
|
123
|
+
query('.nile-resize-end')
|
|
124
|
+
], NileGrid.prototype, "resizeEnd", void 0);
|
|
177
125
|
NileGrid = __decorate([
|
|
178
126
|
customElement('nile-grid')
|
|
179
127
|
], NileGrid);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-grid.js","sourceRoot":"","sources":["../../../src/nile-grid/nile-grid.ts"],"names":[],"mappings":"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","sourcesContent":["import { customElement, property } from 'lit/decorators.js';\nimport { html, TemplateResult } from 'lit';\nimport { styles } from './nile-grid.css';\nimport type { CSSResultGroup } from 'lit';\nimport NileElement from '../internal/nile-element';\nimport { virtualize } from '@lit-labs/virtualizer/virtualize.js';\nimport type { ColumnDef, GridOptions, GridApi, GridReadyEvent } from './types.js';\nimport { GridRenderer } from './renderer.js';\nimport { ResizeHandler } from './resize-handler.js';\n\n/**\n * @summary A simple data grid component\n * @status stable\n * @since 2.0\n *\n * @event grid-ready - Emitted when the grid is ready\n */\n\n@customElement('nile-grid')\nexport class NileGrid extends NileElement {\n static styles: CSSResultGroup = styles;\n\n /** Column definitions for the grid */\n @property({ type: Array, attribute: 'columnDefs' }) columnDefs: ColumnDef[] = [];\n\n /** Row data to display in the grid */\n @property({ type: Array, attribute: 'rowData' }) rowData: any[] = [];\n\n /** Grid options for configuration */\n @property({ type: Object, attribute: 'gridOptions' }) gridOptions: GridOptions = {};\n\n private gridApi: GridApi | null = null;\n\n connectedCallback() {\n super.connectedCallback();\n this.initializeGridApi();\n }\n\n firstUpdated() {\n this.emitGridReady();\n }\n\n private initializeGridApi() {\n this.gridApi = {\n getSelectedRows: () => [],\n setRowData: (data: any[]) => {\n this.rowData = data;\n this.requestUpdate();\n },\n setColumnDefs: (defs: ColumnDef[]) => {\n this.columnDefs = defs;\n this.requestUpdate();\n }\n };\n }\n\n private emitGridReady() {\n if (this.gridApi) {\n const event: GridReadyEvent = {\n api: this.gridApi,\n type: 'gridReady'\n };\n this.emit('grid-ready', event);\n }\n }\n\n private handleResizeStart(event: MouseEvent, col: ColumnDef, columnIndex: number): void {\n ResizeHandler.handleResizeStart(\n event, \n col, \n columnIndex, \n this.columnDefs, \n this.gridOptions, \n () => this.requestUpdate()\n );\n }\n\n private renderHeader(): TemplateResult {\n return html`\n <div class=\"grid-header\" style=\"grid-template-columns: ${this.getGridTemplateColumns()};\">\n ${this.columnDefs.map((col, index) => html`\n <div class=\"grid-header-cell\">\n <span>${col.headerName || col.field}</span>\n ${this.shouldShowResizeHandle(col) ? html`\n <div \n class=\"grid-resize-handle\"\n @mousedown=${(e: MouseEvent) => this.handleResizeStart(e, col, index)}\n title=\"Drag to resize column\"\n ></div>\n ` : ''}\n </div>\n `)}\n </div>\n `;\n }\n\n private shouldShowResizeHandle(col: any): boolean {\n if (!this.gridOptions.enableColResize) return false;\n if (col.resizable === false) return false;\n return true;\n }\n\n private renderBody(): TemplateResult {\n if (this.gridOptions.enableVirtualScroll && this.rowData.length > 0) {\n return html`\n <div class=\"grid-body\">\n ${virtualize({\n items: this.rowData,\n renderItem: (row: any, rowIndex: number) => html`\n <div class=\"grid-row\" style=\"grid-template-columns: ${this.getGridTemplateColumns()};\">\n ${this.renderRowCells(row, rowIndex)}\n </div>\n `,\n scroller: true,\n })}\n </div>\n `;\n }\n\n return GridRenderer.renderBody(\n this.rowData,\n this.columnDefs,\n false,\n () => html``\n );\n }\n\n private renderRowCells(row: any, rowIndex: number): TemplateResult {\n const cells: TemplateResult[] = [];\n let currentColIndex = 0;\n\n for (let colIndex = 0; colIndex < this.columnDefs.length; colIndex++) {\n const col = this.columnDefs[colIndex];\n \n // Check if this column should be skipped due to previous spanning\n if (currentColIndex > colIndex) {\n continue;\n }\n\n // Calculate column span\n const colSpan = this.calculateColSpan(col, row, rowIndex, colIndex);\n \n if (colSpan > 0) {\n const cellStyle = `grid-column: ${currentColIndex + 1} / span ${colSpan};`;\n \n cells.push(html`\n <div class=\"grid-cell\" style=\"${cellStyle}\">\n <span>${row[col.field]}</span>\n </div>\n `);\n \n currentColIndex += colSpan;\n }\n }\n\n return html`${cells}`;\n }\n\n private calculateColSpan(col: any, row: any, rowIndex: number, colIndex: number): number {\n if (col.colSpan) {\n const params = {\n data: row,\n field: col.field,\n rowIndex,\n columnIndex: colIndex\n };\n return col.colSpan(params);\n }\n return 1;\n }\n\n private getGridTemplateColumns(): string {\n return this.columnDefs.map((col, index) => {\n if (col.width) {\n return `${col.width}px`;\n }\n // Last column takes remaining space\n if (index === this.columnDefs.length - 1) {\n return '1fr';\n }\n return 'auto';\n }).join(' ');\n }\n\n render(): TemplateResult {\n if (!this.columnDefs || this.columnDefs.length === 0) {\n return html`\n <div class=\"grid-container\">\n <div class=\"grid-empty\">\n <div class=\"empty-text\">No columns defined</div>\n </div>\n </div>\n `;\n }\n\n return html`\n <div class=\"grid-container\">\n ${this.renderHeader()}\n ${this.renderBody()}\n </div>\n `;\n }\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 { LitElement, 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 {\n resizeLinesHandler,\n listenToEventListeners,\n removeEventListeners,\n getHead,\n getBody,\n rebuildTemplate,\n applyTemplate,\n layout,\n} from './nile-grid.utils';\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 /** User can pass custom widths for the columns */\n @property({ type: Array, attribute: true }) customWidths: number[] = [];\n\n /** To set the grid template columns in rebuildTemplate method */\n @state() public colTemplate = '';\n\n /** To store the column widths in the beginning and after resizing */\n @state() private columnWidths: number[] = [...this.customWidths];\n\n /** To get the slot element */\n @query('slot') private 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 store the mutation observer */\n private mo?: MutationObserver;\n\n /** To store the request animation frame */\n private raf = 0;\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 rebuildTemplate,\n applyTemplate,\n this.columnWidths\n );\n });\n }\n\n private ensureWidths(colCount: number) {\n if (this.columnWidths.length !== colCount) {\n this.columnWidths = Array(colCount).fill('');\n }\n }\n\n private onResize = (e: Event) => {\n const { col, widthPx } = (e as CustomEvent).detail as {\n col: number;\n widthPx: number;\n };\n let w: any;\n const floor = 60;\n\n if (\n (e.target as HTMLElement).getAttribute('colspan') &&\n parseInt((e.target as HTMLElement).getAttribute('colspan')!) > 1\n ) {\n w = Math.max(floor, Math.round(widthPx - this.columnWidths[col - 1]));\n } else {\n w = Math.max(floor, Math.round(widthPx));\n }\n this.columnWidths[col] = w;\n resizeLinesHandler(\n this.resizeStart,\n this.resizeEnd,\n col,\n widthPx,\n this.scrollHeight,\n this.columnWidths,\n e\n );\n this.colTemplate = rebuildTemplate(\n this.columnWidths.length,\n this.columnWidths\n );\n applyTemplate(getHead(this.slotEl), getBody(this.slotEl), this.colTemplate);\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 }\n\n private _attachObserverAndLayout() {\n this.mo?.disconnect();\n this.mo = new MutationObserver(() => {\n this.scheduleLayout();\n });\n\n const head = getHead(this.slotEl);\n const body = getBody(this.slotEl);\n if (!head && !body) return;\n\n const target = body ?? this;\n this.mo.observe(target, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: ['colspan', 'rowspan'],\n });\n layout(\n this,\n this.slotEl,\n this.ensureWidths.bind(this),\n rebuildTemplate,\n applyTemplate,\n this.columnWidths\n );\n }\n\n public render(): TemplateResult {\n return html`\n <div>\n <slot></slot>\n <div class=\"nile-resize-start\"></div>\n <div class=\"nile-resize-end\"></div>\n </div>\n `;\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback?.();\n this.mo?.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"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { NileGrid } from './nile-grid';
|
|
2
|
+
export declare const resizeLinesHandler: (resizeStart: any, resizeEnd: any, col: number, widthPx: number, scrollHeight: any, columnWidths: any, e: any) => void;
|
|
3
|
+
export declare const listenToEventListeners: (nileGrid: NileGrid, onResize: any, slotEl: any, _attachObserverAndLayout: any) => void;
|
|
4
|
+
export declare const removeEventListeners: (nileGrid: NileGrid, onResize: any, slotEl: any, _attachObserverAndLayout: any) => void;
|
|
5
|
+
export declare const getHead: (slotEl: any) => HTMLElement;
|
|
6
|
+
export declare const getBody: (slotEl: any) => HTMLElement;
|
|
7
|
+
export declare const rebuildTemplate: (colCount: number, columnWidths: number[]) => string;
|
|
8
|
+
export declare const applyTemplate: (head: HTMLElement | null, body: HTMLElement | null, colTemplate: string) => void;
|
|
9
|
+
export declare const layout: (nileGrid: NileGrid, slotEl: any, ensureWidths: any, rebuildTemplate: any, applyTemplate: any, columnWidths: any) => void;
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
export const resizeLinesHandler = (resizeStart, resizeEnd, col, widthPx, scrollHeight, columnWidths, e) => {
|
|
2
|
+
resizeStart.style.display = 'block';
|
|
3
|
+
resizeEnd.style.display = 'block';
|
|
4
|
+
resizeStart.style.height = scrollHeight + 'px';
|
|
5
|
+
resizeEnd.style.height = scrollHeight + 'px';
|
|
6
|
+
if (col === 0) {
|
|
7
|
+
resizeStart.style.left = `${Math.max(60, widthPx) - 6}px`;
|
|
8
|
+
resizeEnd.style.left = `${Math.max(60, widthPx) - 2}px`;
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
let totalWidth = 0;
|
|
12
|
+
if (e.target.getAttribute('colspan') &&
|
|
13
|
+
parseInt(e.target.getAttribute('colspan')) > 1) {
|
|
14
|
+
widthPx = widthPx - columnWidths[col - 1];
|
|
15
|
+
for (let i = 0; i < col; i++) {
|
|
16
|
+
totalWidth += columnWidths[i];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
for (let i = 0; i < col; i++) {
|
|
21
|
+
totalWidth += columnWidths[i];
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
resizeStart.style.left = `${totalWidth + Math.max(60, widthPx) - 6}px`;
|
|
25
|
+
resizeEnd.style.left = `${totalWidth + Math.max(60, widthPx) - 2}px`;
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
export const listenToEventListeners = (nileGrid, onResize, slotEl, _attachObserverAndLayout) => {
|
|
29
|
+
nileGrid.addEventListener('nile-resize', onResize);
|
|
30
|
+
nileGrid.addEventListener('nile-resize-start', () => {
|
|
31
|
+
nileGrid.resizeStart.style.display = 'block';
|
|
32
|
+
});
|
|
33
|
+
nileGrid.addEventListener('nile-resize-end', () => {
|
|
34
|
+
nileGrid.resizeStart.style.display = 'none';
|
|
35
|
+
nileGrid.resizeEnd.style.display = 'none';
|
|
36
|
+
});
|
|
37
|
+
slotEl.addEventListener('slotchange', () => _attachObserverAndLayout());
|
|
38
|
+
};
|
|
39
|
+
export const removeEventListeners = (nileGrid, onResize, slotEl, _attachObserverAndLayout) => {
|
|
40
|
+
nileGrid.removeEventListener('nile-resize', onResize);
|
|
41
|
+
nileGrid.removeEventListener('nile-resize-start', () => {
|
|
42
|
+
nileGrid.resizeStart.style.display = 'block';
|
|
43
|
+
});
|
|
44
|
+
nileGrid.removeEventListener('nile-resize-end', () => {
|
|
45
|
+
nileGrid.resizeStart.style.display = 'none';
|
|
46
|
+
nileGrid.resizeEnd.style.display = 'none';
|
|
47
|
+
});
|
|
48
|
+
slotEl.removeEventListener('slotchange', () => _attachObserverAndLayout());
|
|
49
|
+
};
|
|
50
|
+
export const getHead = (slotEl) => {
|
|
51
|
+
const nodes = slotEl?.assignedElements() ?? [];
|
|
52
|
+
return (nodes.find((n) => n.tagName.toLowerCase() === 'nile-grid-head') || null);
|
|
53
|
+
};
|
|
54
|
+
export const getBody = (slotEl) => {
|
|
55
|
+
const nodes = slotEl?.assignedElements() ?? [];
|
|
56
|
+
return (nodes.find((n) => n.tagName.toLowerCase() === 'nile-grid-body') || null);
|
|
57
|
+
};
|
|
58
|
+
export const rebuildTemplate = (colCount, columnWidths) => {
|
|
59
|
+
const parts = [];
|
|
60
|
+
for (let i = 0; i < colCount; i++) {
|
|
61
|
+
const explicit = columnWidths[i];
|
|
62
|
+
if (i === colCount - 1) {
|
|
63
|
+
parts.push(`minmax(${explicit}px, auto)`);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
parts.push(`${explicit}px`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return parts.join(' ');
|
|
70
|
+
};
|
|
71
|
+
export const applyTemplate = (head, body, colTemplate) => {
|
|
72
|
+
if (head)
|
|
73
|
+
head.style.gridTemplateColumns = colTemplate;
|
|
74
|
+
if (body) {
|
|
75
|
+
body.style.gridTemplateColumns = colTemplate;
|
|
76
|
+
body.style.overflowX = 'auto';
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
function computeHeadLayout(headRows, carryHead, colCount) {
|
|
80
|
+
headRows.forEach((row, rIdx) => {
|
|
81
|
+
let c = 1;
|
|
82
|
+
const cells = Array.from(row.querySelectorAll('nile-grid-head-item, nile-grid-cell'));
|
|
83
|
+
const rStart = rIdx + 1;
|
|
84
|
+
cells.forEach(cell => {
|
|
85
|
+
while (carryHead[c - 1] > 0)
|
|
86
|
+
c++;
|
|
87
|
+
const colspan = Math.max(1, Number(cell.getAttribute('colspan')) || 1);
|
|
88
|
+
const rowspan = Math.max(1, Number(cell.getAttribute('rowspan')) || 1);
|
|
89
|
+
const cStart = c, cEnd = c + colspan;
|
|
90
|
+
const rEnd = rStart + rowspan;
|
|
91
|
+
cell.style.gridColumn = `${cStart} / ${cEnd}`;
|
|
92
|
+
cell.style.gridRow = `${rStart} / ${rEnd}`;
|
|
93
|
+
cell.dataset.cStart = String(cStart);
|
|
94
|
+
for (let k = 0; k < colspan; k++) {
|
|
95
|
+
const idx = c - 1 + k;
|
|
96
|
+
carryHead[idx] = Math.max(carryHead[idx] || 0, rowspan);
|
|
97
|
+
}
|
|
98
|
+
c = cEnd;
|
|
99
|
+
colCount = Math.max(colCount, cEnd - 1);
|
|
100
|
+
});
|
|
101
|
+
for (let i = 0; i < carryHead.length; i++)
|
|
102
|
+
if (carryHead[i] > 0)
|
|
103
|
+
carryHead[i]--;
|
|
104
|
+
});
|
|
105
|
+
return colCount;
|
|
106
|
+
}
|
|
107
|
+
function computeBodyLayout(bodyRows, carryBody, colCount) {
|
|
108
|
+
bodyRows.forEach((row, rIdx) => {
|
|
109
|
+
let c = 1;
|
|
110
|
+
const cells = Array.from(row.querySelectorAll('nile-grid-cell, nile-grid-header'));
|
|
111
|
+
const rStart = rIdx + 1;
|
|
112
|
+
let maxRowspan = 1;
|
|
113
|
+
const bg = row.shadowRoot?.querySelector('[data-row-bg]');
|
|
114
|
+
if (bg)
|
|
115
|
+
bg.style.gridColumn = `1 / -1`;
|
|
116
|
+
cells.forEach(cell => {
|
|
117
|
+
while (carryBody[c - 1] > 0)
|
|
118
|
+
c++;
|
|
119
|
+
const colspan = Math.max(1, Number(cell.getAttribute('colspan')) || 1);
|
|
120
|
+
const rowspan = Math.max(1, Number(cell.getAttribute('rowspan')) || 1);
|
|
121
|
+
const cStart = c, cEnd = c + colspan;
|
|
122
|
+
const rEnd = rStart + rowspan;
|
|
123
|
+
cell.style.gridColumn = `${cStart} / ${cEnd}`;
|
|
124
|
+
cell.style.gridRow = `${rStart} / ${rEnd}`;
|
|
125
|
+
cell.dataset.cStart = String(cStart);
|
|
126
|
+
for (let k = 0; k < colspan; k++) {
|
|
127
|
+
const idx = c - 1 + k;
|
|
128
|
+
carryBody[idx] = Math.max(carryBody[idx] || 0, rowspan);
|
|
129
|
+
}
|
|
130
|
+
maxRowspan = Math.max(maxRowspan, rowspan);
|
|
131
|
+
c = cEnd;
|
|
132
|
+
colCount = Math.max(colCount, cEnd - 1);
|
|
133
|
+
});
|
|
134
|
+
if (bg) {
|
|
135
|
+
const rEnd = rStart + maxRowspan;
|
|
136
|
+
bg.style.gridRow = `${rStart} / ${rEnd}`;
|
|
137
|
+
}
|
|
138
|
+
for (let i = 0; i < carryBody.length; i++)
|
|
139
|
+
if (carryBody[i] > 0)
|
|
140
|
+
carryBody[i]--;
|
|
141
|
+
});
|
|
142
|
+
return colCount;
|
|
143
|
+
}
|
|
144
|
+
function computeColumnWidths(nileGrid, colCount, columnWidths) {
|
|
145
|
+
for (let col = 0; col < colCount; col++) {
|
|
146
|
+
const containerWidth = (nileGrid.getBoundingClientRect().width || 1) - 2;
|
|
147
|
+
columnWidths[col] =
|
|
148
|
+
nileGrid.customWidths[col] || containerWidth / Math.max(colCount, 1);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
export const layout = (nileGrid, slotEl, ensureWidths, rebuildTemplate, applyTemplate, columnWidths) => {
|
|
152
|
+
const head = getHead(slotEl);
|
|
153
|
+
const body = getBody(slotEl);
|
|
154
|
+
if (!body)
|
|
155
|
+
return;
|
|
156
|
+
const headRows = head
|
|
157
|
+
? Array.from(head.querySelectorAll('nile-grid-row'))
|
|
158
|
+
: [];
|
|
159
|
+
const bodyRows = Array.from(body.querySelectorAll('nile-grid-row'));
|
|
160
|
+
let colCount = 0;
|
|
161
|
+
colCount = computeHeadLayout(headRows, [], colCount);
|
|
162
|
+
colCount = computeBodyLayout(bodyRows, [], colCount);
|
|
163
|
+
computeColumnWidths(nileGrid, colCount, columnWidths);
|
|
164
|
+
ensureWidths(colCount);
|
|
165
|
+
body.style.gridAutoRows = 'auto';
|
|
166
|
+
body.style.overflowY = 'auto';
|
|
167
|
+
nileGrid.colTemplate = rebuildTemplate(colCount, columnWidths);
|
|
168
|
+
applyTemplate(head, body, nileGrid.colTemplate, nileGrid.colTemplate);
|
|
169
|
+
};
|
|
170
|
+
//# sourceMappingURL=nile-grid.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nile-grid.utils.js","sourceRoot":"","sources":["../../../src/nile-grid/nile-grid.utils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,WAAgB,EAChB,SAAc,EACd,GAAW,EACX,OAAe,EACf,YAAiB,EACjB,YAAiB,EACjB,CAAM,EACN,EAAE;IACF,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IACpC,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IAClC,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC;IAC/C,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC;IAC7C,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACd,WAAW,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QAC1D,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IACG,CAAC,CAAC,MAAsB,CAAC,YAAY,CAAC,SAAS,CAAC;YACjD,QAAQ,CAAE,CAAC,CAAC,MAAsB,CAAC,YAAY,CAAC,SAAS,CAAE,CAAC,GAAG,CAAC,EAChE,CAAC;YACD,OAAO,GAAG,OAAO,GAAG,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7B,UAAU,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7B,UAAU,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QACD,WAAW,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QACvE,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IACvE,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,QAAkB,EAClB,QAAa,EACb,MAAW,EACX,wBAA6B,EAC7B,EAAE;IACF,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACnD,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAClD,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IAC/C,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAChD,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAC5C,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IAC5C,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,wBAAwB,EAAE,CAAC,CAAC;AAC1E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,QAAkB,EAClB,QAAa,EACb,MAAW,EACX,wBAA6B,EAC7B,EAAE;IACF,QAAQ,CAAC,mBAAmB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACtD,QAAQ,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACrD,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IAC/C,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACnD,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAC5C,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IAC5C,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,wBAAwB,EAAE,CAAC,CAAC;AAC7E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,MAAW,EAAE,EAAE;IACrC,MAAM,KAAK,GAAG,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;IAC/C,OAAO,CACJ,KAAK,CAAC,IAAI,CACT,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,gBAAgB,CACzC,IAAI,IAAI,CAC1B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,MAAW,EAAE,EAAE;IACrC,MAAM,KAAK,GAAG,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;IAC/C,OAAO,CACJ,KAAK,CAAC,IAAI,CACT,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,gBAAgB,CACzC,IAAI,IAAI,CAC1B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,QAAgB,EAChB,YAAsB,EACd,EAAE;IACV,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,QAAQ,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,UAAU,QAAQ,WAAW,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,IAAwB,EACxB,IAAwB,EACxB,WAAmB,EACnB,EAAE;IACF,IAAI,IAAI;QAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,WAAW,CAAC;IACvD,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,WAAW,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;IAChC,CAAC;AACH,CAAC,CAAC;AAEF,SAAS,iBAAiB,CACxB,QAAuB,EACvB,SAAmB,EACnB,QAAgB;IAEhB,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QAC7B,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CACtB,GAAG,CAAC,gBAAgB,CAAC,qCAAqC,CAAC,CAC3C,CAAC;QACnB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;QAExB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACnB,OAAO,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;gBAAE,CAAC,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAEvE,MAAM,MAAM,GAAG,CAAC,EACd,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC;YACrB,MAAM,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;YAE9B,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,CAAC;YAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,CAAC;YAC1C,IAAY,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAE9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtB,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YAC1D,CAAC;YACD,CAAC,GAAG,IAAI,CAAC;YACT,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;YACvC,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,iBAAiB,CACxB,QAAuB,EACvB,SAAmB,EACnB,QAAgB;IAEhB,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QAC7B,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CACtB,GAAG,CAAC,gBAAgB,CAAC,kCAAkC,CAAC,CACxC,CAAC;QACnB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;QACxB,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,aAAa,CAAc,eAAe,CAAC,CAAC;QACvE,IAAI,EAAE;YAAE,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;QAEvC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACnB,OAAO,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;gBAAE,CAAC,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAEvE,MAAM,MAAM,GAAG,CAAC,EACd,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC;YACrB,MAAM,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;YAE9B,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,CAAC;YAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,CAAC;YAC1C,IAAY,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAE9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtB,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YAC1D,CAAC;YACD,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC3C,CAAC,GAAG,IAAI,CAAC;YACT,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,IAAI,GAAG,MAAM,GAAG,UAAU,CAAC;YACjC,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,CAAC;QAC3C,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;YACvC,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAAkB,EAClB,QAAgB,EAChB,YAAsB;IAEtB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC;QACxC,MAAM,cAAc,GAAG,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACzE,YAAY,CAAC,GAAG,CAAC;YACf,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,QAAkB,EAClB,MAAW,EACX,YAAiB,EACjB,eAAoB,EACpB,aAAkB,EAClB,YAAiB,EACjB,EAAE;IACF,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI;QAAE,OAAO;IAElB,MAAM,QAAQ,GAAG,IAAI;QACnB,CAAC,CAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAmB;QACvE,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CACzB,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CACtB,CAAC;IAEnB,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IACrD,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IAErD,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAEtD,YAAY,CAAC,QAAQ,CAAC,CAAC;IACvB,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;IACjC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,GAAG,eAAe,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC/D,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;AACxE,CAAC,CAAC","sourcesContent":["import { NileGrid } from './nile-grid';\n\nexport const resizeLinesHandler = (\n resizeStart: any,\n resizeEnd: any,\n col: number,\n widthPx: number,\n scrollHeight: any,\n columnWidths: any,\n e: any\n) => {\n resizeStart.style.display = 'block';\n resizeEnd.style.display = 'block';\n resizeStart.style.height = scrollHeight + 'px';\n resizeEnd.style.height = scrollHeight + 'px';\n if (col === 0) {\n resizeStart.style.left = `${Math.max(60, widthPx) - 6}px`;\n resizeEnd.style.left = `${Math.max(60, widthPx) - 2}px`;\n } else {\n let totalWidth = 0;\n if (\n (e.target as HTMLElement).getAttribute('colspan') &&\n parseInt((e.target as HTMLElement).getAttribute('colspan')!) > 1\n ) {\n widthPx = widthPx - columnWidths[col - 1];\n for (let i = 0; i < col; i++) {\n totalWidth += columnWidths[i];\n }\n } else {\n for (let i = 0; i < col; i++) {\n totalWidth += columnWidths[i];\n }\n }\n resizeStart.style.left = `${totalWidth + Math.max(60, widthPx) - 6}px`;\n resizeEnd.style.left = `${totalWidth + Math.max(60, widthPx) - 2}px`;\n }\n};\n\nexport const listenToEventListeners = (\n nileGrid: NileGrid,\n onResize: any,\n slotEl: any,\n _attachObserverAndLayout: any\n) => {\n nileGrid.addEventListener('nile-resize', onResize);\n nileGrid.addEventListener('nile-resize-start', () => {\n nileGrid.resizeStart.style.display = 'block';\n });\n nileGrid.addEventListener('nile-resize-end', () => {\n nileGrid.resizeStart.style.display = 'none';\n nileGrid.resizeEnd.style.display = 'none';\n });\n slotEl.addEventListener('slotchange', () => _attachObserverAndLayout());\n};\n\nexport const removeEventListeners = (\n nileGrid: NileGrid,\n onResize: any,\n slotEl: any,\n _attachObserverAndLayout: any\n) => {\n nileGrid.removeEventListener('nile-resize', onResize);\n nileGrid.removeEventListener('nile-resize-start', () => {\n nileGrid.resizeStart.style.display = 'block';\n });\n nileGrid.removeEventListener('nile-resize-end', () => {\n nileGrid.resizeStart.style.display = 'none';\n nileGrid.resizeEnd.style.display = 'none';\n });\n slotEl.removeEventListener('slotchange', () => _attachObserverAndLayout());\n};\n\nexport const getHead = (slotEl: any) => {\n const nodes = slotEl?.assignedElements() ?? [];\n return (\n (nodes.find(\n (n: any) => n.tagName.toLowerCase() === 'nile-grid-head'\n ) as HTMLElement) || null\n );\n};\n\nexport const getBody = (slotEl: any) => {\n const nodes = slotEl?.assignedElements() ?? [];\n return (\n (nodes.find(\n (n: any) => n.tagName.toLowerCase() === 'nile-grid-body'\n ) as HTMLElement) || null\n );\n};\n\nexport const rebuildTemplate = (\n colCount: number,\n columnWidths: number[]\n): string => {\n const parts: string[] = [];\n\n for (let i = 0; i < colCount; i++) {\n const explicit = columnWidths[i];\n if (i === colCount - 1) {\n parts.push(`minmax(${explicit}px, auto)`);\n } else {\n parts.push(`${explicit}px`);\n }\n }\n return parts.join(' ');\n};\n\nexport const applyTemplate = (\n head: HTMLElement | null,\n body: HTMLElement | null,\n colTemplate: string\n) => {\n if (head) head.style.gridTemplateColumns = colTemplate;\n if (body) {\n body.style.gridTemplateColumns = colTemplate;\n body.style.overflowX = 'auto';\n }\n};\n\nfunction computeHeadLayout(\n headRows: HTMLElement[],\n carryHead: number[],\n colCount: number\n): number {\n headRows.forEach((row, rIdx) => {\n let c = 1;\n const cells = Array.from(\n row.querySelectorAll('nile-grid-head-item, nile-grid-cell')\n ) as HTMLElement[];\n const rStart = rIdx + 1;\n\n cells.forEach(cell => {\n while (carryHead[c - 1] > 0) c++;\n const colspan = Math.max(1, Number(cell.getAttribute('colspan')) || 1);\n const rowspan = Math.max(1, Number(cell.getAttribute('rowspan')) || 1);\n\n const cStart = c,\n cEnd = c + colspan;\n const rEnd = rStart + rowspan;\n\n cell.style.gridColumn = `${cStart} / ${cEnd}`;\n cell.style.gridRow = `${rStart} / ${rEnd}`;\n (cell as any).dataset.cStart = String(cStart);\n\n for (let k = 0; k < colspan; k++) {\n const idx = c - 1 + k;\n carryHead[idx] = Math.max(carryHead[idx] || 0, rowspan);\n }\n c = cEnd;\n colCount = Math.max(colCount, cEnd - 1);\n });\n\n for (let i = 0; i < carryHead.length; i++)\n if (carryHead[i] > 0) carryHead[i]--;\n });\n return colCount;\n}\n\nfunction computeBodyLayout(\n bodyRows: HTMLElement[],\n carryBody: number[],\n colCount: number\n) {\n bodyRows.forEach((row, rIdx) => {\n let c = 1;\n const cells = Array.from(\n row.querySelectorAll('nile-grid-cell, nile-grid-header')\n ) as HTMLElement[];\n const rStart = rIdx + 1;\n let maxRowspan = 1;\n\n const bg = row.shadowRoot?.querySelector<HTMLElement>('[data-row-bg]');\n if (bg) bg.style.gridColumn = `1 / -1`;\n\n cells.forEach(cell => {\n while (carryBody[c - 1] > 0) c++;\n const colspan = Math.max(1, Number(cell.getAttribute('colspan')) || 1);\n const rowspan = Math.max(1, Number(cell.getAttribute('rowspan')) || 1);\n\n const cStart = c,\n cEnd = c + colspan;\n const rEnd = rStart + rowspan;\n\n cell.style.gridColumn = `${cStart} / ${cEnd}`;\n cell.style.gridRow = `${rStart} / ${rEnd}`;\n (cell as any).dataset.cStart = String(cStart);\n\n for (let k = 0; k < colspan; k++) {\n const idx = c - 1 + k;\n carryBody[idx] = Math.max(carryBody[idx] || 0, rowspan);\n }\n maxRowspan = Math.max(maxRowspan, rowspan);\n c = cEnd;\n colCount = Math.max(colCount, cEnd - 1);\n });\n\n if (bg) {\n const rEnd = rStart + maxRowspan;\n bg.style.gridRow = `${rStart} / ${rEnd}`;\n }\n\n for (let i = 0; i < carryBody.length; i++)\n if (carryBody[i] > 0) carryBody[i]--;\n });\n\n return colCount;\n}\n\nfunction computeColumnWidths(\n nileGrid: NileGrid,\n colCount: number,\n columnWidths: number[]\n) {\n for (let col = 0; col < colCount; col++) {\n const containerWidth = (nileGrid.getBoundingClientRect().width || 1) - 2;\n columnWidths[col] =\n nileGrid.customWidths[col] || containerWidth / Math.max(colCount, 1);\n }\n}\n\nexport const layout = (\n nileGrid: NileGrid,\n slotEl: any,\n ensureWidths: any,\n rebuildTemplate: any,\n applyTemplate: any,\n columnWidths: any\n) => {\n const head = getHead(slotEl);\n const body = getBody(slotEl);\n if (!body) return;\n\n const headRows = head\n ? (Array.from(head.querySelectorAll('nile-grid-row')) as HTMLElement[])\n : [];\n const bodyRows = Array.from(\n body.querySelectorAll('nile-grid-row')\n ) as HTMLElement[];\n\n let colCount = 0;\n\n colCount = computeHeadLayout(headRows, [], colCount);\n colCount = computeBodyLayout(bodyRows, [], colCount);\n\n computeColumnWidths(nileGrid, colCount, columnWidths);\n\n ensureWidths(colCount);\n body.style.gridAutoRows = 'auto';\n body.style.overflowY = 'auto';\n nileGrid.colTemplate = rebuildTemplate(colCount, columnWidths);\n applyTemplate(head, body, nileGrid.colTemplate, nileGrid.colTemplate);\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { NileGridBody } from './nile-grid-body';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nile-grid-body/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC","sourcesContent":["export { NileGridBody } from './nile-grid-body';"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Aquera Inc 2025
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the BSD-3-Clause license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* GridBody CSS
|
|
9
|
+
*/
|
|
10
|
+
export declare const styles: import("lit").CSSResult;
|
|
11
|
+
declare const _default: import("lit").CSSResult[];
|
|
12
|
+
export default _default;
|