@aquera/nile-elements 1.5.1 → 1.5.3
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 +253 -197
- package/dist/nile-auto-complete/nile-auto-complete.cjs.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.cjs.js.map +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.css.cjs.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.css.cjs.js.map +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.css.esm.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.esm.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.cjs.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.cjs.js.map +1 -1
- package/dist/nile-file-preview/nile-file-preview.css.cjs.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.css.cjs.js.map +1 -1
- package/dist/nile-file-preview/nile-file-preview.css.esm.js +2 -2
- package/dist/nile-file-preview/nile-file-preview.esm.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.template.cjs.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.template.cjs.js.map +1 -1
- package/dist/nile-file-preview/nile-file-preview.template.esm.js +55 -25
- package/dist/nile-file-preview/utils/index.cjs.js +1 -1
- package/dist/nile-file-preview/utils/index.esm.js +1 -1
- package/dist/nile-file-preview/utils/nile-file-preview.util.cjs.js +1 -1
- package/dist/nile-file-preview/utils/nile-file-preview.util.cjs.js.map +1 -1
- package/dist/nile-file-preview/utils/nile-file-preview.util.esm.js +1 -1
- package/dist/nile-file-upload/nile-file-upload.cjs.js +1 -1
- package/dist/nile-file-upload/nile-file-upload.cjs.js.map +1 -1
- package/dist/nile-file-upload/nile-file-upload.css.cjs.js +1 -1
- package/dist/nile-file-upload/nile-file-upload.css.cjs.js.map +1 -1
- package/dist/nile-file-upload/nile-file-upload.css.esm.js +15 -5
- package/dist/nile-file-upload/nile-file-upload.esm.js +2 -2
- package/dist/nile-file-upload/nile-file-upload.template.cjs.js +2 -2
- package/dist/nile-file-upload/nile-file-upload.template.cjs.js.map +1 -1
- package/dist/nile-file-upload/nile-file-upload.template.esm.js +36 -32
- package/dist/nile-file-upload/types/file-upload.enums.cjs.js +1 -1
- package/dist/nile-file-upload/types/file-upload.enums.cjs.js.map +1 -1
- package/dist/nile-file-upload/types/file-upload.enums.esm.js +1 -1
- package/dist/nile-file-upload/types/index.cjs.js +1 -1
- package/dist/nile-file-upload/types/index.esm.js +1 -1
- package/dist/nile-file-upload/utils/drag-drop.util.cjs.js +1 -1
- package/dist/nile-file-upload/utils/drag-drop.util.cjs.js.map +1 -1
- package/dist/nile-file-upload/utils/drag-drop.util.esm.js +1 -1
- package/dist/nile-file-upload/utils/file-validation.util.cjs.js +4 -2
- package/dist/nile-file-upload/utils/file-validation.util.cjs.js.map +1 -1
- package/dist/nile-file-upload/utils/file-validation.util.esm.js +1 -1
- package/dist/nile-grid/index.cjs.js +1 -1
- package/dist/nile-grid/index.esm.js +1 -1
- package/dist/nile-grid/nile-grid-cell-item/nile-grid-cell-item.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-cell-item/nile-grid-cell-item.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid-cell-item/nile-grid-cell-item.css.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-cell-item/nile-grid-cell-item.css.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid-cell-item/nile-grid-cell-item.css.esm.js +2 -0
- package/dist/nile-grid/nile-grid-cell-item/nile-grid-cell-item.esm.js +1 -1
- package/dist/nile-grid/nile-grid-cell-item/nile-grid-cell-item.utils.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-cell-item/nile-grid-cell-item.utils.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid-cell-item/nile-grid-cell-item.utils.esm.js +1 -1
- package/dist/nile-grid/nile-grid-head/nile-grid-head.css.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-head/nile-grid-head.css.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid-head/nile-grid-head.css.esm.js +8 -2
- package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.css.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.css.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.css.esm.js +2 -1
- package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.esm.js +3 -3
- package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.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 +1 -0
- package/dist/nile-grid/nile-grid.esm.js +5 -3
- package/dist/nile-grid/nile-grid.layout.cjs.js +1 -1
- package/dist/nile-grid/nile-grid.layout.esm.js +1 -1
- package/dist/nile-grid/nile-grid.resize.cjs.js +1 -1
- package/dist/nile-grid/nile-grid.resize.esm.js +1 -1
- package/dist/nile-grid/nile-grid.utils.cjs.js +1 -1
- package/dist/nile-grid/nile-grid.utils.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid.utils.esm.js +1 -1
- 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-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-popover/index.cjs.js +1 -1
- package/dist/nile-popover/index.esm.js +1 -1
- package/dist/nile-popover/nile-popover.cjs.js +4 -4
- package/dist/nile-popover/nile-popover.cjs.js.map +1 -1
- package/dist/nile-popover/nile-popover.esm.js +11 -6
- package/dist/src/nile-accordion/nile-accordian.test.js +101 -99
- package/dist/src/nile-accordion/nile-accordian.test.js.map +1 -1
- package/dist/src/nile-auto-complete/nile-auto-complete.css.js +1 -1
- package/dist/src/nile-auto-complete/nile-auto-complete.css.js.map +1 -1
- package/dist/src/nile-auto-complete/nile-auto-complete.js +1 -1
- package/dist/src/nile-auto-complete/nile-auto-complete.js.map +1 -1
- package/dist/src/nile-auto-complete/nile-auto-complete.test.js +104 -112
- package/dist/src/nile-auto-complete/nile-auto-complete.test.js.map +1 -1
- package/dist/src/nile-avatar/nile-avatar.test.d.ts +0 -1
- package/dist/src/nile-avatar/nile-avatar.test.js +103 -87
- package/dist/src/nile-avatar/nile-avatar.test.js.map +1 -1
- package/dist/src/nile-badge/nile-badge.test.js +554 -35
- package/dist/src/nile-badge/nile-badge.test.js.map +1 -1
- package/dist/src/nile-breadcrumb/nile-breadcrumb.test.d.ts +2 -0
- package/dist/src/nile-breadcrumb/nile-breadcrumb.test.js +106 -0
- package/dist/src/nile-breadcrumb/nile-breadcrumb.test.js.map +1 -0
- package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.test.d.ts +1 -0
- package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.test.js +108 -0
- package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.test.js.map +1 -0
- package/dist/src/nile-button/nile-button.test.js +499 -39
- package/dist/src/nile-button/nile-button.test.js.map +1 -1
- package/dist/src/nile-button-filter/nile-button-filter.test.d.ts +1 -0
- package/dist/src/nile-button-filter/nile-button-filter.test.js +108 -0
- package/dist/src/nile-button-filter/nile-button-filter.test.js.map +1 -0
- package/dist/src/nile-button-toggle/nile-button-toggle.test.d.ts +1 -0
- package/dist/src/nile-button-toggle/nile-button-toggle.test.js +108 -0
- package/dist/src/nile-button-toggle/nile-button-toggle.test.js.map +1 -0
- package/dist/src/nile-button-toggle-group/nile-button-toggle-group.test.d.ts +1 -1
- package/dist/src/nile-button-toggle-group/nile-button-toggle-group.test.js +105 -104
- package/dist/src/nile-button-toggle-group/nile-button-toggle-group.test.js.map +1 -1
- package/dist/src/nile-calendar/nile-calendar.test.d.ts +0 -6
- package/dist/src/nile-calendar/nile-calendar.test.js +103 -318
- package/dist/src/nile-calendar/nile-calendar.test.js.map +1 -1
- package/dist/src/nile-card/nile-card.test.js +102 -66
- package/dist/src/nile-card/nile-card.test.js.map +1 -1
- package/dist/src/nile-checkbox/nile-checkbox.test.js +547 -108
- package/dist/src/nile-checkbox/nile-checkbox.test.js.map +1 -1
- package/dist/src/nile-chip/nile-chip.test.d.ts +0 -2
- package/dist/src/nile-chip/nile-chip.test.js +101 -102
- package/dist/src/nile-chip/nile-chip.test.js.map +1 -1
- package/dist/src/nile-circular-progressbar/nile-circular-progressbar.test.d.ts +1 -0
- package/dist/src/nile-circular-progressbar/nile-circular-progressbar.test.js +108 -0
- package/dist/src/nile-circular-progressbar/nile-circular-progressbar.test.js.map +1 -0
- package/dist/src/nile-date-picker/nile-date-picker.test.d.ts +1 -0
- package/dist/src/nile-date-picker/nile-date-picker.test.js +108 -0
- package/dist/src/nile-date-picker/nile-date-picker.test.js.map +1 -0
- package/dist/src/nile-dialog/nile-dialog.test.d.ts +0 -1
- package/dist/src/nile-dialog/nile-dialog.test.js +104 -126
- package/dist/src/nile-dialog/nile-dialog.test.js.map +1 -1
- package/dist/src/nile-divider/nile-divider.test.d.ts +1 -0
- package/dist/src/nile-divider/nile-divider.test.js +560 -0
- package/dist/src/nile-divider/nile-divider.test.js.map +1 -0
- package/dist/src/nile-drawer/nile-drawer.test.js +106 -86
- package/dist/src/nile-drawer/nile-drawer.test.js.map +1 -1
- package/dist/src/nile-dropdown/nile-dropdown.test.js +104 -148
- package/dist/src/nile-dropdown/nile-dropdown.test.js.map +1 -1
- package/dist/src/nile-empty-state/nile-empty-state.test.js +107 -59
- package/dist/src/nile-empty-state/nile-empty-state.test.js.map +1 -1
- package/dist/src/nile-error-message/nile-error-message.test.js +105 -55
- package/dist/src/nile-error-message/nile-error-message.test.js.map +1 -1
- package/dist/src/nile-error-notification/nile-error-notification.test.d.ts +1 -0
- package/dist/src/nile-error-notification/nile-error-notification.test.js +108 -0
- package/dist/src/nile-error-notification/nile-error-notification.test.js.map +1 -0
- package/dist/src/nile-file-preview/nile-file-preview.css.js +2 -2
- package/dist/src/nile-file-preview/nile-file-preview.css.js.map +1 -1
- package/dist/src/nile-file-preview/nile-file-preview.d.ts +1 -4
- package/dist/src/nile-file-preview/nile-file-preview.js +21 -47
- package/dist/src/nile-file-preview/nile-file-preview.js.map +1 -1
- package/dist/src/nile-file-preview/nile-file-preview.template.d.ts +6 -6
- package/dist/src/nile-file-preview/nile-file-preview.template.js +53 -23
- package/dist/src/nile-file-preview/nile-file-preview.template.js.map +1 -1
- package/dist/src/nile-file-preview/nile-file-preview.test.d.ts +0 -6
- package/dist/src/nile-file-preview/nile-file-preview.test.js +106 -28
- package/dist/src/nile-file-preview/nile-file-preview.test.js.map +1 -1
- package/dist/src/nile-file-preview/utils/nile-file-preview.util.d.ts +3 -2
- package/dist/src/nile-file-preview/utils/nile-file-preview.util.js +32 -7
- package/dist/src/nile-file-preview/utils/nile-file-preview.util.js.map +1 -1
- package/dist/src/nile-file-upload/nile-file-upload.css.js +15 -5
- package/dist/src/nile-file-upload/nile-file-upload.css.js.map +1 -1
- package/dist/src/nile-file-upload/nile-file-upload.d.ts +4 -1
- package/dist/src/nile-file-upload/nile-file-upload.js +13 -1
- package/dist/src/nile-file-upload/nile-file-upload.js.map +1 -1
- package/dist/src/nile-file-upload/nile-file-upload.template.js +19 -15
- package/dist/src/nile-file-upload/nile-file-upload.template.js.map +1 -1
- package/dist/src/nile-file-upload/nile-file-upload.test.d.ts +0 -6
- package/dist/src/nile-file-upload/nile-file-upload.test.js +106 -28
- package/dist/src/nile-file-upload/nile-file-upload.test.js.map +1 -1
- package/dist/src/nile-file-upload/types/file-upload.enums.d.ts +17 -3
- package/dist/src/nile-file-upload/types/file-upload.enums.js +17 -1
- package/dist/src/nile-file-upload/types/file-upload.enums.js.map +1 -1
- package/dist/src/nile-file-upload/utils/drag-drop.util.d.ts +2 -0
- package/dist/src/nile-file-upload/utils/drag-drop.util.js +14 -8
- package/dist/src/nile-file-upload/utils/drag-drop.util.js.map +1 -1
- package/dist/src/nile-file-upload/utils/file-validation.util.js +89 -10
- package/dist/src/nile-file-upload/utils/file-validation.util.js.map +1 -1
- package/dist/src/nile-filter-chip/nile-filter-chip.test.js +102 -77
- package/dist/src/nile-filter-chip/nile-filter-chip.test.js.map +1 -1
- package/dist/src/nile-form-error-message/nile-form-error-message.test.d.ts +1 -0
- package/dist/src/nile-form-error-message/nile-form-error-message.test.js +108 -0
- package/dist/src/nile-form-error-message/nile-form-error-message.test.js.map +1 -0
- package/dist/src/nile-form-group/nile-form-group.test.js +104 -51
- package/dist/src/nile-form-group/nile-form-group.test.js.map +1 -1
- package/dist/src/nile-form-help-text/nile-form-help-text.test.js +104 -84
- package/dist/src/nile-form-help-text/nile-form-help-text.test.js.map +1 -1
- package/dist/src/nile-format-date/nile-format-date.test.d.ts +1 -0
- package/dist/src/nile-format-date/nile-format-date.test.js +108 -0
- package/dist/src/nile-format-date/nile-format-date.test.js.map +1 -0
- package/dist/src/nile-grid/nile-grid-cell-item/nile-grid-cell-item.css.js +2 -0
- package/dist/src/nile-grid/nile-grid-cell-item/nile-grid-cell-item.css.js.map +1 -1
- package/dist/src/nile-grid/nile-grid-cell-item/nile-grid-cell-item.js +1 -1
- package/dist/src/nile-grid/nile-grid-cell-item/nile-grid-cell-item.js.map +1 -1
- package/dist/src/nile-grid/nile-grid-cell-item/nile-grid-cell-item.utils.d.ts +1 -1
- package/dist/src/nile-grid/nile-grid-cell-item/nile-grid-cell-item.utils.js +2 -2
- package/dist/src/nile-grid/nile-grid-cell-item/nile-grid-cell-item.utils.js.map +1 -1
- package/dist/src/nile-grid/nile-grid-head/nile-grid-head.css.js +6 -0
- package/dist/src/nile-grid/nile-grid-head/nile-grid-head.css.js.map +1 -1
- package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.css.js +2 -1
- package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.css.js.map +1 -1
- package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.js +6 -5
- package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.js.map +1 -1
- package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.d.ts +15 -1
- package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.js +26 -2
- package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.js.map +1 -1
- package/dist/src/nile-grid/nile-grid.css.js +1 -0
- package/dist/src/nile-grid/nile-grid.css.js.map +1 -1
- package/dist/src/nile-grid/nile-grid.d.ts +31 -3
- package/dist/src/nile-grid/nile-grid.js +107 -30
- package/dist/src/nile-grid/nile-grid.js.map +1 -1
- package/dist/src/nile-grid/nile-grid.layout.d.ts +2 -9
- package/dist/src/nile-grid/nile-grid.layout.js +120 -106
- package/dist/src/nile-grid/nile-grid.layout.js.map +1 -1
- package/dist/src/nile-grid/nile-grid.resize.d.ts +1 -0
- package/dist/src/nile-grid/nile-grid.resize.js +7 -3
- package/dist/src/nile-grid/nile-grid.resize.js.map +1 -1
- package/dist/src/nile-grid/nile-grid.utils.d.ts +7 -0
- package/dist/src/nile-grid/nile-grid.utils.js +37 -2
- package/dist/src/nile-grid/nile-grid.utils.js.map +1 -1
- package/dist/src/nile-grid/nile-grid.width.d.ts +2 -1
- package/dist/src/nile-grid/nile-grid.width.js +38 -8
- package/dist/src/nile-grid/nile-grid.width.js.map +1 -1
- package/dist/src/nile-grid/types/nile-grid.types.d.ts +5 -0
- package/dist/src/nile-grid/types/nile-grid.types.js.map +1 -1
- package/dist/src/nile-heading/nile-heading.test.d.ts +1 -0
- package/dist/src/nile-heading/nile-heading.test.js +108 -0
- package/dist/src/nile-heading/nile-heading.test.js.map +1 -0
- package/dist/src/nile-hero/nile-hero.test.js +101 -38
- package/dist/src/nile-hero/nile-hero.test.js.map +1 -1
- package/dist/src/nile-icon/nile-icon.test.js +103 -40
- package/dist/src/nile-icon/nile-icon.test.js.map +1 -1
- package/dist/src/nile-icon-button/nile-icon-button.test.d.ts +1 -0
- package/dist/src/nile-icon-button/nile-icon-button.test.js +568 -0
- package/dist/src/nile-icon-button/nile-icon-button.test.js.map +1 -0
- package/dist/src/nile-inline-edit/nile-inline-edit.test.d.ts +1 -0
- package/dist/src/nile-inline-edit/nile-inline-edit.test.js +108 -0
- package/dist/src/nile-inline-edit/nile-inline-edit.test.js.map +1 -0
- package/dist/src/nile-input/nile-input.js +1 -1
- package/dist/src/nile-input/nile-input.js.map +1 -1
- package/dist/src/nile-input/nile-input.test.js +109 -139
- package/dist/src/nile-input/nile-input.test.js.map +1 -1
- package/dist/src/nile-link/nile-link.test.js +103 -67
- package/dist/src/nile-link/nile-link.test.js.map +1 -1
- package/dist/src/nile-list/nile-list.test.d.ts +1 -0
- package/dist/src/nile-list/nile-list.test.js +108 -0
- package/dist/src/nile-list/nile-list.test.js.map +1 -0
- package/dist/src/nile-list-item/nile-list-item.test.d.ts +1 -0
- package/dist/src/nile-list-item/nile-list-item.test.js +108 -0
- package/dist/src/nile-list-item/nile-list-item.test.js.map +1 -0
- package/dist/src/nile-lite-tooltip/nile-lite-tooltip.test.d.ts +2 -0
- package/dist/src/nile-lite-tooltip/nile-lite-tooltip.test.js +109 -0
- package/dist/src/nile-lite-tooltip/nile-lite-tooltip.test.js.map +1 -0
- package/dist/src/nile-loader/nile-loader.test.js +107 -40
- package/dist/src/nile-loader/nile-loader.test.js.map +1 -1
- package/dist/src/nile-menu/nile-menu.test.d.ts +1 -0
- package/dist/src/nile-menu/nile-menu.test.js +113 -0
- package/dist/src/nile-menu/nile-menu.test.js.map +1 -0
- package/dist/src/nile-menu-item/nile-menu-item.test.d.ts +1 -0
- package/dist/src/nile-menu-item/nile-menu-item.test.js +113 -0
- package/dist/src/nile-menu-item/nile-menu-item.test.js.map +1 -0
- package/dist/src/nile-option/nile-option.test.d.ts +1 -0
- package/dist/src/nile-option/nile-option.test.js +108 -0
- package/dist/src/nile-option/nile-option.test.js.map +1 -0
- package/dist/src/nile-option-group/nile-option-group.test.d.ts +1 -0
- package/dist/src/nile-option-group/nile-option-group.test.js +108 -0
- package/dist/src/nile-option-group/nile-option-group.test.js.map +1 -0
- package/dist/src/nile-page-header/nile-page-header.test.d.ts +1 -0
- package/dist/src/nile-page-header/nile-page-header.test.js +108 -0
- package/dist/src/nile-page-header/nile-page-header.test.js.map +1 -0
- package/dist/src/nile-pagination/nile-pagination.test.d.ts +1 -0
- package/dist/src/nile-pagination/nile-pagination.test.js +108 -0
- package/dist/src/nile-pagination/nile-pagination.test.js.map +1 -0
- package/dist/src/nile-popover/nile-popover.test.js +103 -68
- package/dist/src/nile-popover/nile-popover.test.js.map +1 -1
- package/dist/src/nile-popup/nile-popup.test.js +104 -65
- package/dist/src/nile-popup/nile-popup.test.js.map +1 -1
- package/dist/src/nile-progress-bar/nile-progress-bar.test.js +104 -44
- package/dist/src/nile-progress-bar/nile-progress-bar.test.js.map +1 -1
- package/dist/src/nile-radio/nile-radio.test.js +103 -66
- package/dist/src/nile-radio/nile-radio.test.js.map +1 -1
- package/dist/src/nile-radio-group/nile-radio-group.test.d.ts +0 -1
- package/dist/src/nile-radio-group/nile-radio-group.test.js +105 -171
- package/dist/src/nile-radio-group/nile-radio-group.test.js.map +1 -1
- package/dist/src/nile-section-message/nile-section-message.test.d.ts +1 -0
- package/dist/src/nile-section-message/nile-section-message.test.js +108 -0
- package/dist/src/nile-section-message/nile-section-message.test.js.map +1 -0
- package/dist/src/nile-select/nile-select.test.d.ts +0 -5
- package/dist/src/nile-select/nile-select.test.js +105 -244
- package/dist/src/nile-select/nile-select.test.js.map +1 -1
- package/dist/src/nile-skeleton-loader/nile-skeleton-loader.test.d.ts +1 -0
- package/dist/src/nile-skeleton-loader/nile-skeleton-loader.test.js +108 -0
- package/dist/src/nile-skeleton-loader/nile-skeleton-loader.test.js.map +1 -0
- package/dist/src/nile-slide-toggle/nile-slide-toggle.test.js +104 -50
- package/dist/src/nile-slide-toggle/nile-slide-toggle.test.js.map +1 -1
- package/dist/src/nile-slider/nile-slider.test.d.ts +1 -0
- package/dist/src/nile-slider/nile-slider.test.js +108 -0
- package/dist/src/nile-slider/nile-slider.test.js.map +1 -0
- package/dist/src/nile-spinner/nile-spinner.test.d.ts +1 -0
- package/dist/src/nile-spinner/nile-spinner.test.js +569 -0
- package/dist/src/nile-spinner/nile-spinner.test.js.map +1 -0
- package/dist/src/nile-split-panel/nile-split-panel.test.d.ts +1 -0
- package/dist/src/nile-split-panel/nile-split-panel.test.js +108 -0
- package/dist/src/nile-split-panel/nile-split-panel.test.js.map +1 -0
- package/dist/src/nile-stepper/nile-stepper.test.d.ts +2 -0
- package/dist/src/nile-stepper/nile-stepper.test.js +109 -0
- package/dist/src/nile-stepper/nile-stepper.test.js.map +1 -0
- package/dist/src/nile-stepper-item/nile-stepper-item.test.d.ts +1 -0
- package/dist/src/nile-stepper-item/nile-stepper-item.test.js +108 -0
- package/dist/src/nile-stepper-item/nile-stepper-item.test.js.map +1 -0
- package/dist/src/nile-tab/nile-tab.test.d.ts +1 -0
- package/dist/src/nile-tab/nile-tab.test.js +108 -0
- package/dist/src/nile-tab/nile-tab.test.js.map +1 -0
- package/dist/src/nile-tab-group/nile-tab-group.test.js +105 -172
- package/dist/src/nile-tab-group/nile-tab-group.test.js.map +1 -1
- package/dist/src/nile-tab-panel/nile-tab-panel.test.d.ts +1 -0
- package/dist/src/nile-tab-panel/nile-tab-panel.test.js +108 -0
- package/dist/src/nile-tab-panel/nile-tab-panel.test.js.map +1 -0
- package/dist/src/nile-tag/nile-tag.test.d.ts +1 -0
- package/dist/src/nile-tag/nile-tag.test.js +574 -0
- package/dist/src/nile-tag/nile-tag.test.js.map +1 -0
- package/dist/src/nile-textarea/nile-textarea.test.d.ts +1 -1
- package/dist/src/nile-textarea/nile-textarea.test.js +105 -84
- package/dist/src/nile-textarea/nile-textarea.test.js.map +1 -1
- package/dist/src/nile-title/nile-title.test.d.ts +1 -0
- package/dist/src/nile-title/nile-title.test.js +108 -0
- package/dist/src/nile-title/nile-title.test.js.map +1 -0
- package/dist/src/nile-toast/nile-toast.test.d.ts +1 -0
- package/dist/src/nile-toast/nile-toast.test.js +526 -0
- package/dist/src/nile-toast/nile-toast.test.js.map +1 -0
- package/dist/src/nile-toolbar/nile-toolbar.test.d.ts +1 -0
- package/dist/src/nile-toolbar/nile-toolbar.test.js +108 -0
- package/dist/src/nile-toolbar/nile-toolbar.test.js.map +1 -0
- package/dist/src/nile-tooltip/nile-tooltip.test.d.ts +1 -0
- package/dist/src/nile-tooltip/nile-tooltip.test.js +546 -0
- package/dist/src/nile-tooltip/nile-tooltip.test.js.map +1 -0
- package/dist/src/nile-virtual-select/nile-virtual-select.test.d.ts +1 -7
- package/dist/src/nile-virtual-select/nile-virtual-select.test.js +105 -628
- package/dist/src/nile-virtual-select/nile-virtual-select.test.js.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/rollup.config.js +7 -1
- package/src/nile-accordion/nile-accordian.test.ts +102 -116
- package/src/nile-auto-complete/nile-auto-complete.css.ts +1 -1
- package/src/nile-auto-complete/nile-auto-complete.test.ts +102 -145
- package/src/nile-auto-complete/nile-auto-complete.ts +1 -1
- package/src/nile-avatar/nile-avatar.test.ts +102 -112
- package/src/nile-badge/nile-badge.test.ts +642 -30
- package/src/nile-breadcrumb/nile-breadcrumb.test.ts +107 -0
- package/src/nile-breadcrumb-item/nile-breadcrumb-item.test.ts +106 -0
- package/src/nile-button/nile-button.test.ts +593 -61
- package/src/nile-button-filter/nile-button-filter.test.ts +106 -0
- package/src/nile-button-toggle/nile-button-toggle.test.ts +106 -0
- package/src/nile-button-toggle-group/nile-button-toggle-group.test.ts +104 -126
- package/src/nile-calendar/nile-calendar.test.ts +102 -406
- package/src/nile-card/nile-card.test.ts +103 -71
- package/src/nile-checkbox/nile-checkbox.test.ts +614 -108
- package/src/nile-chip/nile-chip.test.ts +102 -136
- package/src/nile-circular-progressbar/nile-circular-progressbar.test.ts +106 -0
- package/src/nile-date-picker/nile-date-picker.test.ts +106 -0
- package/src/nile-dialog/nile-dialog.test.ts +102 -164
- package/src/nile-divider/nile-divider.test.ts +659 -0
- package/src/nile-drawer/nile-drawer.test.ts +105 -105
- package/src/nile-dropdown/nile-dropdown.test.ts +102 -190
- package/src/nile-empty-state/nile-empty-state.test.ts +104 -67
- package/src/nile-error-message/nile-error-message.test.ts +104 -67
- package/src/nile-error-notification/nile-error-notification.test.ts +106 -0
- package/src/nile-file-preview/nile-file-preview.css.ts +2 -2
- package/src/nile-file-preview/nile-file-preview.template.ts +59 -23
- package/src/nile-file-preview/nile-file-preview.test.ts +105 -37
- package/src/nile-file-preview/nile-file-preview.ts +23 -56
- package/src/nile-file-preview/utils/nile-file-preview.util.ts +37 -8
- package/src/nile-file-upload/nile-file-upload.css.ts +15 -5
- package/src/nile-file-upload/nile-file-upload.template.ts +22 -18
- package/src/nile-file-upload/nile-file-upload.test.ts +105 -37
- package/src/nile-file-upload/nile-file-upload.ts +11 -3
- package/src/nile-file-upload/types/file-upload.enums.ts +20 -4
- package/src/nile-file-upload/utils/drag-drop.util.ts +20 -11
- package/src/nile-file-upload/utils/file-validation.util.ts +104 -22
- package/src/nile-filter-chip/nile-filter-chip.test.ts +103 -89
- package/src/nile-form-error-message/nile-form-error-message.test.ts +106 -0
- package/src/nile-form-group/nile-form-group.test.ts +103 -60
- package/src/nile-form-help-text/nile-form-help-text.test.ts +102 -106
- package/src/nile-format-date/nile-format-date.test.ts +106 -0
- package/src/nile-grid/nile-grid-cell-item/nile-grid-cell-item.css.ts +2 -0
- package/src/nile-grid/nile-grid-cell-item/nile-grid-cell-item.ts +1 -1
- package/src/nile-grid/nile-grid-cell-item/nile-grid-cell-item.utils.ts +2 -1
- package/src/nile-grid/nile-grid-head/nile-grid-head.css.ts +6 -0
- package/src/nile-grid/nile-grid-head-item/nile-grid-head-item.css.ts +2 -1
- package/src/nile-grid/nile-grid-head-item/nile-grid-head-item.ts +7 -5
- package/src/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.ts +30 -1
- package/src/nile-grid/nile-grid.css.ts +1 -0
- package/src/nile-grid/nile-grid.layout.ts +122 -133
- package/src/nile-grid/nile-grid.resize.ts +15 -9
- package/src/nile-grid/nile-grid.ts +102 -28
- package/src/nile-grid/nile-grid.utils.ts +45 -3
- package/src/nile-grid/nile-grid.width.ts +45 -14
- package/src/nile-grid/types/nile-grid.types.ts +7 -1
- package/src/nile-heading/nile-heading.test.ts +106 -0
- package/src/nile-hero/nile-hero.test.ts +103 -42
- package/src/nile-icon/nile-icon.test.ts +103 -50
- package/src/nile-icon-button/nile-icon-button.test.ts +667 -0
- package/src/nile-inline-edit/nile-inline-edit.test.ts +106 -0
- package/src/nile-input/nile-input.test.ts +105 -164
- package/src/nile-input/nile-input.ts +1 -1
- package/src/nile-link/nile-link.test.ts +104 -81
- package/src/nile-list/nile-list.test.ts +106 -0
- package/src/nile-list-item/nile-list-item.test.ts +106 -0
- package/src/nile-lite-tooltip/nile-lite-tooltip.test.ts +107 -0
- package/src/nile-loader/nile-loader.test.ts +103 -48
- package/src/nile-menu/nile-menu.test.ts +106 -0
- package/src/nile-menu-item/nile-menu-item.test.ts +106 -0
- package/src/nile-option/nile-option.test.ts +106 -0
- package/src/nile-option-group/nile-option-group.test.ts +106 -0
- package/src/nile-page-header/nile-page-header.test.ts +106 -0
- package/src/nile-pagination/nile-pagination.test.ts +106 -0
- package/src/nile-popover/nile-popover.test.ts +103 -83
- package/src/nile-popup/nile-popup.test.ts +102 -82
- package/src/nile-progress-bar/nile-progress-bar.test.ts +103 -52
- package/src/nile-radio/nile-radio.test.ts +103 -78
- package/src/nile-radio-group/nile-radio-group.test.ts +104 -213
- package/src/nile-section-message/nile-section-message.test.ts +106 -0
- package/src/nile-select/nile-select.test.ts +105 -308
- package/src/nile-skeleton-loader/nile-skeleton-loader.test.ts +106 -0
- package/src/nile-slide-toggle/nile-slide-toggle.test.ts +103 -58
- package/src/nile-slider/nile-slider.test.ts +106 -0
- package/src/nile-spinner/nile-spinner.test.ts +668 -0
- package/src/nile-split-panel/nile-split-panel.test.ts +106 -0
- package/src/nile-stepper/nile-stepper.test.ts +107 -0
- package/src/nile-stepper-item/nile-stepper-item.test.ts +106 -0
- package/src/nile-tab/nile-tab.test.ts +106 -0
- package/src/nile-tab-group/nile-tab-group.test.ts +104 -211
- package/src/nile-tab-panel/nile-tab-panel.test.ts +106 -0
- package/src/nile-tag/nile-tag.test.ts +675 -0
- package/src/nile-textarea/nile-textarea.test.ts +104 -100
- package/src/nile-title/nile-title.test.ts +106 -0
- package/src/nile-toast/nile-toast.test.ts +625 -0
- package/src/nile-toolbar/nile-toolbar.test.ts +106 -0
- package/src/nile-tooltip/nile-tooltip.test.ts +645 -0
- package/src/nile-virtual-select/nile-virtual-select.test.ts +104 -772
- package/vscode-html-custom-data.json +10 -5
- package/web-test-runner.config.mjs +4 -2
- package/dist/axe.min-2720cd56.esm.js +0 -1
- package/dist/axe.min-69d47269.cjs.js +0 -2
- package/dist/axe.min-69d47269.cjs.js.map +0 -1
- package/dist/css-tag-bb10c0fa.cjs.js +0 -6
- package/dist/css-tag-bb10c0fa.cjs.js.map +0 -1
- package/dist/css-tag-dc564feb.esm.js +0 -6
- package/dist/fixture-958445f8.cjs.js +0 -395
- package/dist/fixture-958445f8.cjs.js.map +0 -1
- package/dist/fixture-985bba12.esm.js +0 -569
- package/dist/nile-accordion/nile-accordian.test.cjs.js +0 -2
- package/dist/nile-accordion/nile-accordian.test.cjs.js.map +0 -1
- package/dist/nile-accordion/nile-accordian.test.esm.js +0 -1
- package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +0 -2
- package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js.map +0 -1
- package/dist/nile-auto-complete/nile-auto-complete.test.esm.js +0 -9
- package/dist/nile-avatar/nile-avatar.test.cjs.js +0 -2
- package/dist/nile-avatar/nile-avatar.test.cjs.js.map +0 -1
- package/dist/nile-avatar/nile-avatar.test.esm.js +0 -11
- package/dist/nile-badge/nile-badge.test.cjs.js +0 -2
- package/dist/nile-badge/nile-badge.test.cjs.js.map +0 -1
- package/dist/nile-badge/nile-badge.test.esm.js +0 -1
- package/dist/nile-button/nile-button.test.cjs.js +0 -2
- package/dist/nile-button/nile-button.test.cjs.js.map +0 -1
- package/dist/nile-button/nile-button.test.esm.js +0 -4
- package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +0 -2
- package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js.map +0 -1
- package/dist/nile-button-toggle-group/nile-button-toggle-group.test.esm.js +0 -49
- package/dist/nile-calendar/nile-calendar.test.cjs.js +0 -2
- package/dist/nile-calendar/nile-calendar.test.cjs.js.map +0 -1
- package/dist/nile-calendar/nile-calendar.test.esm.js +0 -11
- package/dist/nile-card/nile-card.test.cjs.js +0 -2
- package/dist/nile-card/nile-card.test.cjs.js.map +0 -1
- package/dist/nile-card/nile-card.test.esm.js +0 -51
- package/dist/nile-checkbox/nile-checkbox.test.cjs.js +0 -2
- package/dist/nile-checkbox/nile-checkbox.test.cjs.js.map +0 -1
- package/dist/nile-checkbox/nile-checkbox.test.esm.js +0 -17
- package/dist/nile-chip/nile-chip.test.cjs.js +0 -2
- package/dist/nile-chip/nile-chip.test.cjs.js.map +0 -1
- package/dist/nile-chip/nile-chip.test.esm.js +0 -1
- package/dist/nile-dialog/nile-dialog.test.cjs.js +0 -2
- package/dist/nile-dialog/nile-dialog.test.cjs.js.map +0 -1
- package/dist/nile-dialog/nile-dialog.test.esm.js +0 -7
- package/dist/nile-drawer/nile-drawer.test.cjs.js +0 -2
- package/dist/nile-drawer/nile-drawer.test.cjs.js.map +0 -1
- package/dist/nile-drawer/nile-drawer.test.esm.js +0 -17
- package/dist/nile-dropdown/nile-dropdown.test.cjs.js +0 -2
- package/dist/nile-dropdown/nile-dropdown.test.cjs.js.map +0 -1
- package/dist/nile-dropdown/nile-dropdown.test.esm.js +0 -28
- package/dist/nile-empty-state/nile-empty-state.test.cjs.js +0 -2
- package/dist/nile-empty-state/nile-empty-state.test.cjs.js.map +0 -1
- package/dist/nile-empty-state/nile-empty-state.test.esm.js +0 -9
- package/dist/nile-error-message/nile-error-message.test.cjs.js +0 -2
- package/dist/nile-error-message/nile-error-message.test.cjs.js.map +0 -1
- package/dist/nile-error-message/nile-error-message.test.esm.js +0 -1
- package/dist/nile-file-preview/nile-file-preview.test.cjs.js +0 -2
- package/dist/nile-file-preview/nile-file-preview.test.cjs.js.map +0 -1
- package/dist/nile-file-preview/nile-file-preview.test.esm.js +0 -1
- package/dist/nile-file-upload/nile-file-upload.test.cjs.js +0 -2
- package/dist/nile-file-upload/nile-file-upload.test.cjs.js.map +0 -1
- package/dist/nile-file-upload/nile-file-upload.test.esm.js +0 -1
- package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +0 -2
- package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js.map +0 -1
- package/dist/nile-filter-chip/nile-filter-chip.test.esm.js +0 -20
- package/dist/nile-form-group/nile-form-group.test.cjs.js +0 -2
- package/dist/nile-form-group/nile-form-group.test.cjs.js.map +0 -1
- package/dist/nile-form-group/nile-form-group.test.esm.js +0 -1
- package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +0 -2
- package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js.map +0 -1
- package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +0 -1
- package/dist/nile-hero/nile-hero.test.cjs.js +0 -2
- package/dist/nile-hero/nile-hero.test.cjs.js.map +0 -1
- package/dist/nile-hero/nile-hero.test.esm.js +0 -14
- package/dist/nile-icon/nile-icon.test.cjs.js +0 -2
- package/dist/nile-icon/nile-icon.test.cjs.js.map +0 -1
- package/dist/nile-icon/nile-icon.test.esm.js +0 -1
- package/dist/nile-input/nile-input.test.cjs.js +0 -2
- package/dist/nile-input/nile-input.test.cjs.js.map +0 -1
- package/dist/nile-input/nile-input.test.esm.js +0 -17
- package/dist/nile-link/nile-link.test.cjs.js +0 -2
- package/dist/nile-link/nile-link.test.cjs.js.map +0 -1
- package/dist/nile-link/nile-link.test.esm.js +0 -1
- package/dist/nile-loader/nile-loader.test.cjs.js +0 -2
- package/dist/nile-loader/nile-loader.test.cjs.js.map +0 -1
- package/dist/nile-loader/nile-loader.test.esm.js +0 -1
- package/dist/nile-popover/nile-popover.test.cjs.js +0 -2
- package/dist/nile-popover/nile-popover.test.cjs.js.map +0 -1
- package/dist/nile-popover/nile-popover.test.esm.js +0 -21
- package/dist/nile-popup/nile-popup.test.cjs.js +0 -2
- package/dist/nile-popup/nile-popup.test.cjs.js.map +0 -1
- package/dist/nile-popup/nile-popup.test.esm.js +0 -1
- package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +0 -2
- package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js.map +0 -1
- package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +0 -1
- package/dist/nile-radio/nile-radio.test.cjs.js +0 -2
- package/dist/nile-radio/nile-radio.test.cjs.js.map +0 -1
- package/dist/nile-radio/nile-radio.test.esm.js +0 -1
- package/dist/nile-radio-group/nile-radio-group.test.cjs.js +0 -2
- package/dist/nile-radio-group/nile-radio-group.test.cjs.js.map +0 -1
- package/dist/nile-radio-group/nile-radio-group.test.esm.js +0 -57
- package/dist/nile-select/nile-select.test.cjs.js +0 -2
- package/dist/nile-select/nile-select.test.cjs.js.map +0 -1
- package/dist/nile-select/nile-select.test.esm.js +0 -55
- package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +0 -2
- package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js.map +0 -1
- package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +0 -1
- package/dist/nile-tab-group/nile-tab-group.test.cjs.js +0 -2
- package/dist/nile-tab-group/nile-tab-group.test.cjs.js.map +0 -1
- package/dist/nile-tab-group/nile-tab-group.test.esm.js +0 -65
- package/dist/nile-textarea/nile-textarea.test.cjs.js +0 -2
- package/dist/nile-textarea/nile-textarea.test.cjs.js.map +0 -1
- package/dist/nile-textarea/nile-textarea.test.esm.js +0 -1
- package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js +0 -2
- package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js.map +0 -1
- package/dist/nile-virtual-select/nile-virtual-select.test.esm.js +0 -93
- package/dist/scopedElementsWrapper-31107e48.esm.js +0 -1
- package/dist/scopedElementsWrapper-9b188ea6.cjs.js +0 -2
- package/dist/scopedElementsWrapper-9b188ea6.cjs.js.map +0 -1
- package/dist/sinon-esm-68c8e378.esm.js +0 -1
- package/dist/sinon-esm-97570c13.cjs.js +0 -2
- package/dist/sinon-esm-97570c13.cjs.js.map +0 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { applyAfterResize } from './nile-grid.resize';
|
|
1
2
|
/** listenToEventListeners
|
|
2
3
|
* @param nileGrid Grid element to attach listeners on
|
|
3
4
|
* @param onResize Handler for 'nile-column-resize'
|
|
@@ -7,14 +8,20 @@
|
|
|
7
8
|
*/
|
|
8
9
|
export const listenToEventListeners = (nileGrid, onResize, slotEl, _attachObserverAndLayout) => {
|
|
9
10
|
nileGrid.addEventListener('nile-column-resize', onResize);
|
|
10
|
-
nileGrid.addEventListener('nile-resize-start', () => {
|
|
11
|
+
nileGrid.addEventListener('nile-resize-start', (e) => {
|
|
12
|
+
e.stopPropagation();
|
|
13
|
+
nileGrid.resizeBaseColumnWidths = [...nileGrid.columnWidths];
|
|
11
14
|
nileGrid.resizeStart.style.display = 'block';
|
|
12
15
|
});
|
|
13
|
-
nileGrid.addEventListener('nile-resize-end', () => {
|
|
16
|
+
nileGrid.addEventListener('nile-resize-end', (e) => {
|
|
17
|
+
e.stopPropagation();
|
|
18
|
+
applyAfterResize(nileGrid, e.detail.col);
|
|
19
|
+
nileGrid.resizeBaseColumnWidths = [];
|
|
14
20
|
nileGrid.resizeStart.style.display = 'none';
|
|
15
21
|
nileGrid.resizeEnd.style.display = 'none';
|
|
16
22
|
});
|
|
17
23
|
slotEl.addEventListener('slotchange', () => _attachObserverAndLayout());
|
|
24
|
+
nileGrid.addEventListener('scroll', () => scrollEventHandler(nileGrid));
|
|
18
25
|
};
|
|
19
26
|
/** removeEventListeners
|
|
20
27
|
* @param nileGrid Grid element to detach listeners from
|
|
@@ -33,6 +40,7 @@ export const removeEventListeners = (nileGrid, onResize, slotEl, _attachObserver
|
|
|
33
40
|
nileGrid.resizeEnd.style.display = 'none';
|
|
34
41
|
});
|
|
35
42
|
slotEl.removeEventListener('slotchange', () => _attachObserverAndLayout());
|
|
43
|
+
nileGrid.removeEventListener('scroll', () => scrollEventHandler(nileGrid));
|
|
36
44
|
};
|
|
37
45
|
/** getHead
|
|
38
46
|
* @param slotEl Slot element containing assigned nodes
|
|
@@ -50,4 +58,31 @@ export const getBody = (slotEl) => {
|
|
|
50
58
|
const nodes = slotEl?.assignedElements() ?? [];
|
|
51
59
|
return (nodes.find((n) => n.tagName.toLowerCase() === 'nile-grid-body') || null);
|
|
52
60
|
};
|
|
61
|
+
export const scrollEventHandler = (el) => {
|
|
62
|
+
const maxY = Math.max(1, el.scrollHeight - el.clientHeight);
|
|
63
|
+
const maxX = Math.max(1, el.scrollWidth - el.clientWidth);
|
|
64
|
+
const percentageY = Math.round((el.scrollTop / maxY) * 100);
|
|
65
|
+
const percentageX = Math.round((el.scrollLeft / maxX) * 100);
|
|
66
|
+
el.emit('nile-scroll', {
|
|
67
|
+
bubbles: true,
|
|
68
|
+
composed: true,
|
|
69
|
+
detail: {
|
|
70
|
+
horizontalScroll: percentageX,
|
|
71
|
+
verticalScroll: percentageY,
|
|
72
|
+
left: el.scrollLeft,
|
|
73
|
+
top: el.scrollTop
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
/** copyArrayValuesInPlace
|
|
78
|
+
* @param target Target array
|
|
79
|
+
* @param source Source array
|
|
80
|
+
* @returns void
|
|
81
|
+
*/
|
|
82
|
+
export function copyArrayValuesInPlace(target, source) {
|
|
83
|
+
const count = Math.min(target.length, source.length);
|
|
84
|
+
for (let i = 0; i < count; i++) {
|
|
85
|
+
target[i] = source[i];
|
|
86
|
+
}
|
|
87
|
+
}
|
|
53
88
|
//# sourceMappingURL=nile-grid.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-grid.utils.js","sourceRoot":"","sources":["../../../src/nile-grid/nile-grid.utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nile-grid.utils.js","sourceRoot":"","sources":["../../../src/nile-grid/nile-grid.utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { NileGrid } from './nile-grid';\nimport { applyAfterResize } from './nile-grid.resize'\n\n/** listenToEventListeners\n * @param nileGrid Grid element to attach listeners on\n * @param onResize Handler for 'nile-column-resize'\n * @param slotEl Slot element to watch for 'slotchange'\n * @param _attachObserverAndLayout Callback to reattach observer + layout\n * @returns void\n */\nexport const listenToEventListeners = (\n nileGrid: NileGrid,\n onResize: any,\n slotEl: any,\n _attachObserverAndLayout: any\n) => {\n nileGrid.addEventListener('nile-column-resize', onResize);\n nileGrid.addEventListener('nile-resize-start', (e) => {\n e.stopPropagation();\n nileGrid.resizeBaseColumnWidths = [...nileGrid.columnWidths];\n nileGrid.resizeStart.style.display = 'block';\n });\n nileGrid.addEventListener('nile-resize-end', (e: CustomEvent) => {\n e.stopPropagation();\n applyAfterResize(nileGrid, (e as CustomEvent).detail!.col);\n nileGrid.resizeBaseColumnWidths = [];\n nileGrid.resizeStart.style.display = 'none';\n nileGrid.resizeEnd.style.display = 'none';\n });\n slotEl.addEventListener('slotchange', () => _attachObserverAndLayout());\n nileGrid.addEventListener('scroll', () => scrollEventHandler(nileGrid));\n};\n\n/** removeEventListeners\n * @param nileGrid Grid element to detach listeners from\n * @param onResize Handler previously attached to 'nile-column-resize'\n * @param slotEl Slot element to remove 'slotchange' from\n * @param _attachObserverAndLayout Callback reference used during attach\n * @returns void\n */\nexport const removeEventListeners = (\n nileGrid: NileGrid,\n onResize: any,\n slotEl: any,\n _attachObserverAndLayout: any\n) => {\n nileGrid.removeEventListener('nile-column-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 nileGrid.removeEventListener('scroll', () => scrollEventHandler(nileGrid));\n};\n\n/** getHead\n * @param slotEl Slot element containing assigned nodes\n * @returns <nile-grid-head> element or null\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\n/** getBody\n * @param slotEl Slot element containing assigned nodes\n * @returns <nile-grid-body> element or null\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 scrollEventHandler = (el: NileGrid) => {\n const maxY = Math.max(1, el.scrollHeight - el.clientHeight);\n const maxX = Math.max(1, el.scrollWidth - el.clientWidth);\n\n const percentageY = Math.round((el.scrollTop / maxY) * 100);\n const percentageX = Math.round((el.scrollLeft / maxX) * 100);\n\n el.emit('nile-scroll', {\n bubbles: true,\n composed: true,\n detail: {\n horizontalScroll: percentageX,\n verticalScroll: percentageY,\n left: el.scrollLeft,\n top: el.scrollTop\n }\n });\n};\n\n/** copyArrayValuesInPlace\n * @param target Target array\n * @param source Source array\n * @returns void\n */\nexport function copyArrayValuesInPlace(\n target: number[],\n source: number[]\n) {\n const count = Math.min(target.length, source.length);\n for (let i = 0; i < count; i++) {\n target[i] = source[i];\n }\n}"]}
|
|
@@ -6,7 +6,7 @@ import { NileGrid } from './nile-grid';
|
|
|
6
6
|
* @param slotEl Slot element (to read head for desired widths)
|
|
7
7
|
* @returns void
|
|
8
8
|
*/
|
|
9
|
-
export declare function computeColumnWidths(nileGrid: NileGrid, colCount: number, columnWidths: number[], slotEl: any, lockedWidthColumns: boolean[]): void;
|
|
9
|
+
export declare function computeColumnWidths(nileGrid: NileGrid, colCount: number, columnWidths: number[], slotEl: any, lockedWidthColumns: boolean[], headerChanged: boolean): void;
|
|
10
10
|
/**
|
|
11
11
|
* @param columnWidths Current widths array
|
|
12
12
|
* @param minCol Minimum column width
|
|
@@ -23,3 +23,4 @@ export declare function takeFromRight(widths: number[], start: number, needInit:
|
|
|
23
23
|
* @param amount Pixels to add to rightmost columns
|
|
24
24
|
*/
|
|
25
25
|
export declare function giveToRight(widths: number[], start: number, giveInit: number): number;
|
|
26
|
+
export declare function addVariablesValue(nileGrid: NileGrid): void;
|
|
@@ -7,13 +7,15 @@ import { getHead } from './nile-grid.utils';
|
|
|
7
7
|
* @param slotEl Slot element (to read head for desired widths)
|
|
8
8
|
* @returns void
|
|
9
9
|
*/
|
|
10
|
-
export function computeColumnWidths(nileGrid, colCount, columnWidths, slotEl, lockedWidthColumns) {
|
|
10
|
+
export function computeColumnWidths(nileGrid, colCount, columnWidths, slotEl, lockedWidthColumns, headerChanged) {
|
|
11
11
|
const minCol = nileGrid.minColumnWidth;
|
|
12
12
|
const containerWidth = getContainerWidth(nileGrid);
|
|
13
|
-
const desired = readDesiredFromHead(slotEl, colCount, containerWidth, nileGrid, lockedWidthColumns, columnWidths);
|
|
13
|
+
const desired = readDesiredFromHead(slotEl, colCount, containerWidth, nileGrid, lockedWidthColumns, headerChanged, columnWidths);
|
|
14
14
|
const isSeeded = seedWidthsFromDesired(desired, columnWidths, minCol);
|
|
15
15
|
distributeFlex(columnWidths, isSeeded, containerWidth, minCol);
|
|
16
|
-
|
|
16
|
+
if (!nileGrid.enableScroll) {
|
|
17
|
+
normalizeToContainer(columnWidths, containerWidth, minCol);
|
|
18
|
+
}
|
|
17
19
|
clampAndRound(columnWidths, minCol);
|
|
18
20
|
applyColumnsTemplate(nileGrid, columnWidths);
|
|
19
21
|
}
|
|
@@ -31,13 +33,17 @@ function getContainerWidth(nileGrid) {
|
|
|
31
33
|
* @param prevWidths Previously computed column widths
|
|
32
34
|
* @returns Array of desired column widths
|
|
33
35
|
*/
|
|
34
|
-
function readDesiredFromHead(slotEl, colCount, containerWidth, nileGrid, lockedWidthColumns, prevWidths) {
|
|
36
|
+
function readDesiredFromHead(slotEl, colCount, containerWidth, nileGrid, lockedWidthColumns, headerChanged, prevWidths) {
|
|
35
37
|
const desired = Array(colCount).fill(null);
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
if (headerChanged) {
|
|
39
|
+
const head = getHead(slotEl);
|
|
40
|
+
if (head)
|
|
41
|
+
fillDesiredFromHeadRows(head, desired, colCount, containerWidth, lockedWidthColumns);
|
|
42
|
+
}
|
|
43
|
+
const hasPrevWidths = !!prevWidths?.length && prevWidths.some(w => w > 0);
|
|
44
|
+
if (hasPrevWidths && prevWidths?.length === colCount) {
|
|
40
45
|
fillFromPrevWidths(desired, prevWidths, nileGrid);
|
|
46
|
+
}
|
|
41
47
|
return desired;
|
|
42
48
|
}
|
|
43
49
|
/**
|
|
@@ -310,4 +316,28 @@ export function giveToRight(widths, start, giveInit) {
|
|
|
310
316
|
}
|
|
311
317
|
return give;
|
|
312
318
|
}
|
|
319
|
+
export function addVariablesValue(nileGrid) {
|
|
320
|
+
const columnWidths = nileGrid.columnWidths;
|
|
321
|
+
const leftStickyColumns = nileGrid.stickyLeftIndexes;
|
|
322
|
+
const rightStickyColumns = nileGrid.stickyRightIndexes;
|
|
323
|
+
const prefixColumns = [];
|
|
324
|
+
const root = nileGrid;
|
|
325
|
+
// --- LEFT STICKY ---
|
|
326
|
+
let totalLeft = 0;
|
|
327
|
+
for (let i = 0; i < leftStickyColumns.length; i++) {
|
|
328
|
+
const colIndex = leftStickyColumns[i];
|
|
329
|
+
prefixColumns.push({ colNumber: colIndex, left: totalLeft, right: 0 });
|
|
330
|
+
root.style.setProperty(`--sticky-left-${colIndex}`, `${totalLeft}px`);
|
|
331
|
+
totalLeft += columnWidths[colIndex];
|
|
332
|
+
}
|
|
333
|
+
// --- RIGHT STICKY ---
|
|
334
|
+
let totalRight = 0;
|
|
335
|
+
for (let i = rightStickyColumns.length - 1; i >= 0; i--) {
|
|
336
|
+
const colIndex = rightStickyColumns[i];
|
|
337
|
+
prefixColumns.push({ colNumber: colIndex, left: 0, right: totalRight });
|
|
338
|
+
root.style.setProperty(`--sticky-right-${colIndex}`, `${totalRight}px`);
|
|
339
|
+
totalRight += columnWidths[colIndex];
|
|
340
|
+
}
|
|
341
|
+
nileGrid.prefixSumColumnsWidth = prefixColumns;
|
|
342
|
+
}
|
|
313
343
|
//# sourceMappingURL=nile-grid.width.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-grid.width.js","sourceRoot":"","sources":["../../../src/nile-grid/nile-grid.width.ts"],"names":[],"mappings":"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","sourcesContent":["import { NileGrid } from './nile-grid';\nimport { applyColumnsTemplate } from './nile-grid.layout';\nimport { getHead } from './nile-grid.utils';\n\n/** computeColumnWidths\n * @param nileGrid Grid instance (reads minColumnWidth, columnWidths)\n * @param colCount Total columns\n * @param columnWidths Mutable widths array to fill/update\n * @param slotEl Slot element (to read head for desired widths)\n * @returns void\n */\nexport function computeColumnWidths(\n nileGrid: NileGrid,\n colCount: number,\n columnWidths: number[],\n slotEl: any,\n lockedWidthColumns: boolean[]\n): void {\n const minCol = nileGrid.minColumnWidth;\n const containerWidth = getContainerWidth(nileGrid);\n const desired = readDesiredFromHead(\n slotEl,\n colCount,\n containerWidth,\n nileGrid,\n lockedWidthColumns,\n columnWidths\n );\n const isSeeded = seedWidthsFromDesired(desired, columnWidths, minCol);\n\n distributeFlex(columnWidths, isSeeded, containerWidth, minCol);\n normalizeToContainer(columnWidths, containerWidth, minCol);\n clampAndRound(columnWidths, minCol);\n applyColumnsTemplate(nileGrid, columnWidths);\n}\n\n/** getContainerWidth\n * @param nileGrid Grid root element\n * @returns Numeric container width in pixels (accounting for padding/offset)\n */\nfunction getContainerWidth(nileGrid: NileGrid): number {\n return Math.max(0, (nileGrid.getBoundingClientRect().width || 0) - 4);\n}\n\n/**\n * @param slotEl The slot element containing head rows\n * @param colCount Number of columns\n * @param containerWidth Width of the parent container\n * @param prevWidths Previously computed column widths\n * @returns Array of desired column widths\n */\nfunction readDesiredFromHead(\n slotEl: any,\n colCount: number,\n containerWidth: number,\n nileGrid: NileGrid,\n lockedWidthColumns: boolean[],\n prevWidths?: number[]\n): (number | null)[] {\n const desired = Array(colCount).fill(null);\n const head = getHead(slotEl) as HTMLElement | null;\n if (head) fillDesiredFromHeadRows(head, desired, colCount, containerWidth, lockedWidthColumns);\n if (prevWidths?.length === colCount) fillFromPrevWidths(desired, prevWidths, nileGrid);\n return desired;\n}\n\n/**\n * @param head Head element containing grid header rows\n * @param desired Desired widths array to fill\n * @param colCount Column count\n * @param containerWidth Grid container width\n * @param fixedWidthColumns Fixed width columns\n */\nfunction fillDesiredFromHeadRows(\n head: HTMLElement,\n desired: (number | null)[],\n colCount: number,\n containerWidth: number,\n lockedWidthColumns: boolean[]\n) {\n const headRows = [...head.children].filter(\n el => el.tagName.toLowerCase() === 'nile-grid-row'\n ) as HTMLElement[];\n for (const row of headRows) {\n fillFromHeadRow(row, desired, colCount, containerWidth, lockedWidthColumns);\n }\n}\n\n/**\n * @param row A single header row element\n * @param desired Desired widths array\n * @param colCount Total number of columns\n * @param containerWidth Container width\n * @param lockedWidthColumns Locked width columns\n * @returns void\n */\nfunction fillFromHeadRow(\n row: HTMLElement,\n desired: (number | null)[],\n colCount: number,\n containerWidth: number,\n lockedWidthColumns: boolean[]\n) {\n const items = [...row.children].filter(\n el => el.tagName.toLowerCase() === 'nile-grid-head-item'\n ) as HTMLElement[];\n const parsed = items\n .map(h => parseHeadItemWidth(h, containerWidth, lockedWidthColumns))\n .filter(x => x.cw != null);\n parsed.sort((a, b) => a.colspan - b.colspan);\n parsed.forEach(({ cStart, colspan, cw }) => {\n assignWidth(desired, cStart, colspan, cw!, colCount);\n });\n}\n\n/**\n * @param h Header item element\n * @param containerWidth Width of parent container\n * @param lockedWidthColumns Locked width columns\n * @returns Parsed object containing start, colspan, and computed width\n */\nfunction parseHeadItemWidth(h: HTMLElement, containerWidth: number, lockedWidthColumns: boolean[]) {\n const cStart = Number((h as any).dataset?.cStart) || 1;\n const colspan = Math.max(1, Number(h.getAttribute('colspan')) || 1);\n const raw = (h as any).width ?? h.getAttribute('width') ?? null;\n if (h.hasAttribute('lockWidth')) {\n lockedWidthColumns[cStart - 1] = true;\n }\n const cw = parseCustomWidth(raw, containerWidth);\n return { cStart, colspan, cw };\n}\n\n/**\n * @param desired Array of desired widths\n * @param cStart Start column index\n * @param colspan Column span value\n * @param cw Computed width value\n * @param colCount Total column count\n */\nfunction assignWidth(\n desired: (number | null)[],\n cStart: number,\n colspan: number,\n cw: number,\n colCount: number\n) {\n const perCol = Math.round(cw / colspan);\n for (let k = 0; k < colspan; k++) {\n const idx = cStart - 1 + k;\n if (idx >= 0 && idx < colCount && desired[idx] == null) {\n desired[idx] = perCol;\n }\n }\n}\n\n/**\n * @param desired Desired widths array\n * @param prevWidths Previous column widths\n */\nfunction fillFromPrevWidths(desired: (number | null)[], prevWidths: number[], nileGrid: NileGrid) {\n for (let i = 0; i < prevWidths.length; i++) {\n if (desired[i] == null && Number.isFinite(prevWidths[i]!)) {\n desired[i] = Math.max(nileGrid.minColumnWidth, Math.round(prevWidths[i]!));\n }\n }\n}\n\n/** parseCustomWidth\n * @param raw User-specified width (number | string like \"120px\" or \"20%\")\n * @param containerWidth Container width for % resolution\n * @returns Width in pixels or null if invalid\n */\nfunction parseCustomWidth(raw: any, containerWidth: number): number | null {\n if (raw == null) return null;\n if (typeof raw === 'number' && Number.isFinite(raw)) return raw;\n const s = String(raw).trim().toLowerCase();\n if (!s) return null;\n\n if (s.endsWith('px')) {\n const v = parseFloat(s);\n return Number.isFinite(v) ? v : null;\n }\n if (s.endsWith('%')) {\n const v = parseFloat(s);\n return Number.isFinite(v) ? (v / 100) * containerWidth : null;\n }\n const v = parseFloat(s);\n return Number.isFinite(v) ? v : null;\n}\n\n/** seedWidthsFromDesired\n * @param desired Array of desired widths (px) or nulls\n * @param columnWidths Output array to seed (mutated)\n * @param minCol Minimum per-column width\n * @returns Boolean[] flags indicating which columns were seeded\n */\nfunction seedWidthsFromDesired(\n desired: (number | null)[],\n columnWidths: number[],\n minCol: number\n): boolean[] {\n const isSeeded = Array(desired.length).fill(false);\n\n for (let i = 0; i < desired.length; i++) {\n const w = desired[i] ?? null;\n columnWidths[i] =\n w != null && !Number.isNaN(w) ? Math.max(minCol, Number(w)) : 0;\n isSeeded[i] = w != null && !Number.isNaN(w);\n }\n return isSeeded;\n}\n\n/** distributeFlex\n * @param columnWidths Mutable widths array\n * @param isSeeded Boolean[] indicating fixed/seeded columns\n * @param containerWidth Total width to fill\n * @param minCol Minimum width per flexible column\n * @returns void\n */\nfunction distributeFlex(\n columnWidths: number[],\n isSeeded: boolean[],\n containerWidth: number,\n minCol: number\n) {\n const sumSeed = columnWidths.reduce((a, b) => a + b, 0);\n const remaining = containerWidth - sumSeed;\n const flexIdxs = Array.from(\n { length: columnWidths.length },\n (_, i) => i\n ).filter(i => !isSeeded[i]);\n if (flexIdxs.length === 0) return;\n\n const each = remaining / flexIdxs.length;\n for (const i of flexIdxs) columnWidths[i] = Math.max(minCol, each);\n}\n\n\n// Normalization (container fitting): adjust total column widths to match the container width proportionally.\n/**\n * @param columnWidths Array of current column widths\n * @param containerWidth Total grid container width\n * @param minCol Minimum allowed column width\n */\nfunction normalizeToContainer(\n columnWidths: number[],\n containerWidth: number,\n minCol: number\n) {\n let total = sumWidths(columnWidths);\n if (total < containerWidth) {\n expandWidths(columnWidths, containerWidth, total);\n } else if (total > containerWidth) {\n shrinkWidths(columnWidths, containerWidth, total, minCol);\n }\n}\n\n/**\n * @param widths Array of column widths\n * @returns Sum of all column widths\n */\nfunction sumWidths(widths: number[]) {\n return widths.reduce((a, b) => a + b, 0);\n}\n\n\n/**\n * @param columnWidths Current column widths\n * @param containerWidth Container total width\n * @param total Current total width\n */\nfunction expandWidths(\n columnWidths: number[],\n containerWidth: number,\n total: number\n) {\n if (!columnWidths.length) return;\n const add = containerWidth - total;\n const weight = total || 1;\n for (let i = 0; i < columnWidths.length; i++) {\n columnWidths[i] += add * (columnWidths[i] / weight);\n }\n}\n\n/**\n * @param columnWidths Current widths\n * @param containerWidth Container width\n * @param total Current total\n * @param minCol Minimum width constraint\n */\nfunction shrinkWidths(\n columnWidths: number[],\n containerWidth: number,\n total: number,\n minCol: number\n) {\n let need = total - containerWidth;\n for (let iter = 0; iter < 8 && need > 0.5; iter++) {\n const { candidates, weightSum } = collectReducible(columnWidths, minCol);\n if (!candidates.length || weightSum <= 0) break;\n const reduced = reduceWidths(\n columnWidths,\n candidates,\n weightSum,\n need,\n minCol\n );\n need -= reduced;\n if (reduced < 0.5) break;\n }\n}\n\n/**\n * @param columnWidths Current widths\n * @param minCol Minimum column width\n * @returns Reducible column indexes and weight sum\n */\nfunction collectReducible(columnWidths: number[], minCol: number) {\n const candidates: number[] = [];\n let weightSum = 0;\n for (let i = 0; i < columnWidths.length; i++) {\n const reducible = Math.max(0, columnWidths[i] - minCol);\n if (reducible > 0) {\n candidates.push(i);\n weightSum += columnWidths[i];\n }\n }\n return { candidates, weightSum };\n}\n\n/**\n * @param columnWidths Current widths array\n * @param candidates Reducible column indexes\n * @param weightSum Sum of reducible widths\n * @param need Total amount to reduce\n * @param minCol Minimum width\n * @returns Total reduced width\n */\nfunction reduceWidths(\n columnWidths: number[],\n candidates: number[],\n weightSum: number,\n need: number,\n minCol: number\n) {\n let reduced = 0;\n for (const i of candidates) {\n const reducible = Math.max(0, columnWidths[i] - minCol);\n const share = columnWidths[i] / weightSum;\n const cut = Math.min(reducible, need * share);\n columnWidths[i] -= cut;\n reduced += cut;\n }\n return reduced;\n}\n\nfunction clampAndRound(columnWidths: number[], minCol: number) {\n for (let i = 0; i < columnWidths.length; i++) {\n columnWidths[i] = Math.max(minCol, Math.round(columnWidths[i]));\n }\n}\n\n/**\n * @param columnWidths Current widths array\n * @param minCol Minimum column width\n * @returns Total reducible pixels\n */\nexport function totalReducibleRight(w: number[], start: number, floor: number, fixed?: boolean[]) {\n let sum = 0;\n for (let i = start; i < w.length; i++) {\n if (fixed?.[i]) continue;\n sum += Math.max(0, w[i] - floor);\n }\n return sum;\n}\n\n/**\n * @param columnWidths Current widths\n * @param amount Pixels to remove from rightmost columns\n */\nexport function takeFromRight(\n widths: number[],\n start: number,\n needInit: number,\n floor: number,\n fixed?: boolean[]\n) {\n let need = needInit;\n for (let i = start; i < widths.length && need > 0; i++) {\n if (fixed?.[i]) continue;\n const room = widths[i] - floor;\n if (room <= 0) continue;\n const cut = Math.min(room, need);\n widths[i] -= cut;\n need -= cut;\n }\n return need;\n}\n\n/**\n * @param columnWidths Current widths\n * @param amount Pixels to add to rightmost columns\n */\nexport function giveToRight(widths: number[], start: number, giveInit: number) {\n let give = giveInit;\n if (start < widths.length && give > 0) {\n widths[start] += give;\n give = 0;\n }\n return give;\n}"]}
|
|
1
|
+
{"version":3,"file":"nile-grid.width.js","sourceRoot":"","sources":["../../../src/nile-grid/nile-grid.width.ts"],"names":[],"mappings":"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","sourcesContent":["import { NileGrid } from './nile-grid';\nimport { applyColumnsTemplate } from './nile-grid.layout';\nimport { getHead } from './nile-grid.utils';\nimport { PrefixColumn } from './types/nile-grid.types';\n\n/** computeColumnWidths\n * @param nileGrid Grid instance (reads minColumnWidth, columnWidths)\n * @param colCount Total columns\n * @param columnWidths Mutable widths array to fill/update\n * @param slotEl Slot element (to read head for desired widths)\n * @returns void\n */\nexport function computeColumnWidths(\n nileGrid: NileGrid,\n colCount: number,\n columnWidths: number[],\n slotEl: any,\n lockedWidthColumns: boolean[],\n headerChanged: boolean\n): void {\n const minCol = nileGrid.minColumnWidth;\n const containerWidth = getContainerWidth(nileGrid);\n const desired = readDesiredFromHead(slotEl, colCount, containerWidth, nileGrid, lockedWidthColumns, headerChanged, columnWidths);\n const isSeeded = seedWidthsFromDesired(desired, columnWidths, minCol);\n\n distributeFlex(columnWidths, isSeeded, containerWidth, minCol);\n if(!nileGrid.enableScroll) {\n normalizeToContainer(columnWidths, containerWidth, minCol);\n }\n clampAndRound(columnWidths, minCol);\n applyColumnsTemplate(nileGrid, columnWidths);\n}\n\n/** getContainerWidth\n * @param nileGrid Grid root element\n * @returns Numeric container width in pixels (accounting for padding/offset)\n */\nfunction getContainerWidth(nileGrid: NileGrid): number {\n return Math.max(0, (nileGrid.getBoundingClientRect().width || 0) - 4);\n}\n\n/**\n * @param slotEl The slot element containing head rows\n * @param colCount Number of columns\n * @param containerWidth Width of the parent container\n * @param prevWidths Previously computed column widths\n * @returns Array of desired column widths\n */\nfunction readDesiredFromHead(\n slotEl: any,\n colCount: number,\n containerWidth: number,\n nileGrid: NileGrid,\n lockedWidthColumns: boolean[],\n headerChanged: boolean,\n prevWidths?: number[]\n): (number | null)[] {\n const desired = Array(colCount).fill(null);\n if (headerChanged) {\n const head = getHead(slotEl) as HTMLElement | null;\n if (head) fillDesiredFromHeadRows(head, desired, colCount, containerWidth, lockedWidthColumns);\n }\n const hasPrevWidths = !!prevWidths?.length && prevWidths.some(w => w > 0);\n if (hasPrevWidths && prevWidths?.length === colCount) {\n fillFromPrevWidths(desired, prevWidths, nileGrid);\n }\n return desired;\n}\n\n/**\n * @param head Head element containing grid header rows\n * @param desired Desired widths array to fill\n * @param colCount Column count\n * @param containerWidth Grid container width\n * @param fixedWidthColumns Fixed width columns\n */\nfunction fillDesiredFromHeadRows(\n head: HTMLElement,\n desired: (number | null)[],\n colCount: number,\n containerWidth: number,\n lockedWidthColumns: boolean[]\n) {\n const headRows = [...head.children].filter(\n el => el.tagName.toLowerCase() === 'nile-grid-row'\n ) as HTMLElement[];\n for (const row of headRows) {\n fillFromHeadRow(row, desired, colCount, containerWidth, lockedWidthColumns);\n }\n}\n\n/**\n * @param row A single header row element\n * @param desired Desired widths array\n * @param colCount Total number of columns\n * @param containerWidth Container width\n * @param lockedWidthColumns Locked width columns\n * @returns void\n */\nfunction fillFromHeadRow(\n row: HTMLElement,\n desired: (number | null)[],\n colCount: number,\n containerWidth: number,\n lockedWidthColumns: boolean[]\n) {\n const items = [...row.children].filter(\n el => el.tagName.toLowerCase() === 'nile-grid-head-item'\n ) as HTMLElement[];\n const parsed = items\n .map(h => parseHeadItemWidth(h, containerWidth, lockedWidthColumns))\n .filter(x => x.cw != null);\n parsed.sort((a, b) => a.colspan - b.colspan);\n parsed.forEach(({ cStart, colspan, cw }) => {\n assignWidth(desired, cStart, colspan, cw!, colCount);\n });\n}\n\n/**\n * @param h Header item element\n * @param containerWidth Width of parent container\n * @param lockedWidthColumns Locked width columns\n * @returns Parsed object containing start, colspan, and computed width\n */\nfunction parseHeadItemWidth(h: HTMLElement, containerWidth: number, lockedWidthColumns: boolean[]) {\n const cStart = Number((h as any).dataset?.cStart) || 1;\n const colspan = Math.max(1, Number(h.getAttribute('colspan')) || 1);\n const raw = (h as any).width ?? h.getAttribute('width') ?? null;\n if (h.hasAttribute('lockWidth')) {\n lockedWidthColumns[cStart - 1] = true;\n }\n const cw = parseCustomWidth(raw, containerWidth);\n return { cStart, colspan, cw };\n}\n\n/**\n * @param desired Array of desired widths\n * @param cStart Start column index\n * @param colspan Column span value\n * @param cw Computed width value\n * @param colCount Total column count\n */\nfunction assignWidth(\n desired: (number | null)[],\n cStart: number,\n colspan: number,\n cw: number,\n colCount: number\n) {\n const perCol = Math.round(cw / colspan);\n for (let k = 0; k < colspan; k++) {\n const idx = cStart - 1 + k;\n if (idx >= 0 && idx < colCount && desired[idx] == null) {\n desired[idx] = perCol;\n }\n }\n}\n\n/**\n * @param desired Desired widths array\n * @param prevWidths Previous column widths\n */\nfunction fillFromPrevWidths(desired: (number | null)[], prevWidths: number[], nileGrid: NileGrid) {\n for (let i = 0; i < prevWidths.length; i++) {\n if (desired[i] == null && Number.isFinite(prevWidths[i]!)) {\n desired[i] = Math.max(nileGrid.minColumnWidth, Math.round(prevWidths[i]!));\n }\n }\n}\n\n/** parseCustomWidth\n * @param raw User-specified width (number | string like \"120px\" or \"20%\")\n * @param containerWidth Container width for % resolution\n * @returns Width in pixels or null if invalid\n */\nfunction parseCustomWidth(raw: any, containerWidth: number): number | null {\n if (raw == null) return null;\n if (typeof raw === 'number' && Number.isFinite(raw)) return raw;\n const s = String(raw).trim().toLowerCase();\n if (!s) return null;\n\n if (s.endsWith('px')) {\n const v = parseFloat(s);\n return Number.isFinite(v) ? v : null;\n }\n if (s.endsWith('%')) {\n const v = parseFloat(s);\n return Number.isFinite(v) ? (v / 100) * containerWidth : null;\n }\n const v = parseFloat(s);\n return Number.isFinite(v) ? v : null;\n}\n\n/** seedWidthsFromDesired\n * @param desired Array of desired widths (px) or nulls\n * @param columnWidths Output array to seed (mutated)\n * @param minCol Minimum per-column width\n * @returns Boolean[] flags indicating which columns were seeded\n */\nfunction seedWidthsFromDesired(\n desired: (number | null)[],\n columnWidths: number[],\n minCol: number\n): boolean[] {\n const isSeeded = Array(desired.length).fill(false);\n\n for (let i = 0; i < desired.length; i++) {\n const w = desired[i] ?? null;\n columnWidths[i] =\n w != null && !Number.isNaN(w) ? Math.max(minCol, Number(w)) : 0;\n isSeeded[i] = w != null && !Number.isNaN(w);\n }\n return isSeeded;\n}\n\n/** distributeFlex\n * @param columnWidths Mutable widths array\n * @param isSeeded Boolean[] indicating fixed/seeded columns\n * @param containerWidth Total width to fill\n * @param minCol Minimum width per flexible column\n * @returns void\n */\nfunction distributeFlex(\n columnWidths: number[],\n isSeeded: boolean[],\n containerWidth: number,\n minCol: number\n) {\n const sumSeed = columnWidths.reduce((a, b) => a + b, 0);\n const remaining = containerWidth - sumSeed;\n const flexIdxs = Array.from(\n { length: columnWidths.length },\n (_, i) => i\n ).filter(i => !isSeeded[i]);\n if (flexIdxs.length === 0) return;\n\n const each = remaining / flexIdxs.length;\n for (const i of flexIdxs) columnWidths[i] = Math.max(minCol, each);\n}\n\n\n// Normalization (container fitting): adjust total column widths to match the container width proportionally.\n/**\n * @param columnWidths Array of current column widths\n * @param containerWidth Total grid container width\n * @param minCol Minimum allowed column width\n */\nfunction normalizeToContainer(\n columnWidths: number[],\n containerWidth: number,\n minCol: number\n) {\n let total = sumWidths(columnWidths);\n if (total < containerWidth) {\n expandWidths(columnWidths, containerWidth, total);\n } else if (total > containerWidth) {\n shrinkWidths(columnWidths, containerWidth, total, minCol);\n }\n}\n\n/**\n * @param widths Array of column widths\n * @returns Sum of all column widths\n */\nfunction sumWidths(widths: number[]) {\n return widths.reduce((a, b) => a + b, 0);\n}\n\n\n/**\n * @param columnWidths Current column widths\n * @param containerWidth Container total width\n * @param total Current total width\n */\nfunction expandWidths(\n columnWidths: number[],\n containerWidth: number,\n total: number\n) {\n if (!columnWidths.length) return;\n const add = containerWidth - total;\n const weight = total || 1;\n for (let i = 0; i < columnWidths.length; i++) {\n columnWidths[i] += add * (columnWidths[i] / weight);\n }\n}\n\n/**\n * @param columnWidths Current widths\n * @param containerWidth Container width\n * @param total Current total\n * @param minCol Minimum width constraint\n */\nfunction shrinkWidths(\n columnWidths: number[],\n containerWidth: number,\n total: number,\n minCol: number\n) {\n let need = total - containerWidth;\n for (let iter = 0; iter < 8 && need > 0.5; iter++) {\n const { candidates, weightSum } = collectReducible(columnWidths, minCol);\n if (!candidates.length || weightSum <= 0) break;\n const reduced = reduceWidths(\n columnWidths,\n candidates,\n weightSum,\n need,\n minCol\n );\n need -= reduced;\n if (reduced < 0.5) break;\n }\n}\n\n/**\n * @param columnWidths Current widths\n * @param minCol Minimum column width\n * @returns Reducible column indexes and weight sum\n */\nfunction collectReducible(columnWidths: number[], minCol: number) {\n const candidates: number[] = [];\n let weightSum = 0;\n for (let i = 0; i < columnWidths.length; i++) {\n const reducible = Math.max(0, columnWidths[i] - minCol);\n if (reducible > 0) {\n candidates.push(i);\n weightSum += columnWidths[i];\n }\n }\n return { candidates, weightSum };\n}\n\n/**\n * @param columnWidths Current widths array\n * @param candidates Reducible column indexes\n * @param weightSum Sum of reducible widths\n * @param need Total amount to reduce\n * @param minCol Minimum width\n * @returns Total reduced width\n */\nfunction reduceWidths(\n columnWidths: number[],\n candidates: number[],\n weightSum: number,\n need: number,\n minCol: number\n) {\n let reduced = 0;\n for (const i of candidates) {\n const reducible = Math.max(0, columnWidths[i] - minCol);\n const share = columnWidths[i] / weightSum;\n const cut = Math.min(reducible, need * share);\n columnWidths[i] -= cut;\n reduced += cut;\n }\n return reduced;\n}\n\nfunction clampAndRound(columnWidths: number[], minCol: number) {\n for (let i = 0; i < columnWidths.length; i++) {\n columnWidths[i] = Math.max(minCol, Math.round(columnWidths[i]));\n }\n}\n\n/**\n * @param columnWidths Current widths array\n * @param minCol Minimum column width\n * @returns Total reducible pixels\n */\nexport function totalReducibleRight(w: number[], start: number, floor: number, fixed?: boolean[]) {\n let sum = 0;\n for (let i = start; i < w.length; i++) {\n if (fixed?.[i]) continue;\n sum += Math.max(0, w[i] - floor);\n }\n return sum;\n}\n\n/**\n * @param columnWidths Current widths\n * @param amount Pixels to remove from rightmost columns\n */\nexport function takeFromRight(\n widths: number[],\n start: number,\n needInit: number,\n floor: number,\n fixed?: boolean[]\n) {\n let need = needInit;\n for (let i = start; i < widths.length && need > 0; i++) {\n if (fixed?.[i]) continue;\n const room = widths[i] - floor;\n if (room <= 0) continue;\n const cut = Math.min(room, need);\n widths[i] -= cut;\n need -= cut;\n }\n return need;\n}\n\n/**\n * @param columnWidths Current widths\n * @param amount Pixels to add to rightmost columns\n */\nexport function giveToRight(widths: number[], start: number, giveInit: number) {\n let give = giveInit;\n if (start < widths.length && give > 0) {\n widths[start] += give;\n give = 0;\n }\n return give;\n}\n\n\nexport function addVariablesValue(nileGrid: NileGrid) {\n const columnWidths = nileGrid.columnWidths;\n const leftStickyColumns = nileGrid.stickyLeftIndexes;\n const rightStickyColumns = nileGrid.stickyRightIndexes;\n const prefixColumns: PrefixColumn[] = [];\n const root = nileGrid as HTMLElement;\n\n // --- LEFT STICKY ---\n let totalLeft = 0;\n for (let i = 0; i < leftStickyColumns.length; i++) {\n const colIndex = leftStickyColumns[i];\n prefixColumns.push({ colNumber: colIndex, left: totalLeft, right: 0 });\n root.style.setProperty(`--sticky-left-${colIndex}`, `${totalLeft}px`);\n totalLeft += columnWidths[colIndex];\n }\n\n // --- RIGHT STICKY ---\n let totalRight = 0;\n for (let i = rightStickyColumns.length - 1; i >= 0; i--) {\n const colIndex = rightStickyColumns[i];\n prefixColumns.push({ colNumber: colIndex, left: 0, right: totalRight });\n root.style.setProperty(`--sticky-right-${colIndex}`, `${totalRight}px`);\n totalRight += columnWidths[colIndex];\n }\n nileGrid.prefixSumColumnsWidth = prefixColumns;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-grid.types.js","sourceRoot":"","sources":["../../../../src/nile-grid/types/nile-grid.types.ts"],"names":[],"mappings":"","sourcesContent":["export type HeadItemEl = HTMLElement & { width?: number | null };"]}
|
|
1
|
+
{"version":3,"file":"nile-grid.types.js","sourceRoot":"","sources":["../../../../src/nile-grid/types/nile-grid.types.ts"],"names":[],"mappings":"","sourcesContent":["export type HeadItemEl = HTMLElement & { width?: number | null };\n\nexport type PrefixColumn = {\n colNumber: number;\n left: number;\n right: number;\n};"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import './index';
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { expect, fixture, html } from '@open-wc/testing';
|
|
2
|
+
import './index';
|
|
3
|
+
describe('NileHeading', () => {
|
|
4
|
+
it('1. renders', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el).to.exist; });
|
|
5
|
+
it('2. shadow root', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot).to.not.be.null; });
|
|
6
|
+
it('3. tag name', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.tagName.toLowerCase()).to.equal('nile-heading'); });
|
|
7
|
+
it('4. name defaults empty', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.name).to.equal(''); });
|
|
8
|
+
it('5. size defaults header-1', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.size).to.equal('header-1'); });
|
|
9
|
+
it('6. slot', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot.querySelector('slot')).to.exist; });
|
|
10
|
+
it('7. slotted content', async () => { const el = await fixture(html `<nile-heading>Hello World</nile-heading>`); expect(el.textContent).to.contain('Hello World'); });
|
|
11
|
+
it('8. size reflected', async () => { const el = await fixture(html `<nile-heading size="header-2"></nile-heading>`); expect(el.getAttribute('size')).to.equal('header-2'); });
|
|
12
|
+
it('9. dynamic name', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); el.name = 'Test'; await el.updateComplete; expect(el.name).to.equal('Test'); });
|
|
13
|
+
it('10. dynamic size', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); el.size = 'header-2'; await el.updateComplete; expect(el.getAttribute('size')).to.equal('header-2'); });
|
|
14
|
+
it('11. has styles', async () => { expect((await import('./index')).NileHeading.styles).to.exist; });
|
|
15
|
+
it('12. is defined', async () => { expect(customElements.get('nile-heading')).to.exist; });
|
|
16
|
+
it('13. shadow mode', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot.mode).to.equal('open'); });
|
|
17
|
+
it('14. isConnected', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.isConnected).to.be.true; });
|
|
18
|
+
it('15. removal', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); el.remove(); expect(el.isConnected).to.be.false; });
|
|
19
|
+
it('16. outerHTML', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.outerHTML).to.contain('nile-heading'); });
|
|
20
|
+
it('17. matches', async () => { const el = await fixture(html `<nile-heading class="x"></nile-heading>`); expect(el.matches('nile-heading.x')).to.be.true; });
|
|
21
|
+
it('18. closest', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.closest('nile-heading')).to.equal(el); });
|
|
22
|
+
it('19. cloneNode', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.cloneNode(true).tagName.toLowerCase()).to.equal('nile-heading'); });
|
|
23
|
+
it('20. dispatchEvent', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); let f = false; el.addEventListener('c', () => (f = true)); el.dispatchEvent(new Event('c')); expect(f).to.be.true; });
|
|
24
|
+
it('21. updateComplete', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); const r = await el.updateComplete; expect(r).to.not.be.undefined; });
|
|
25
|
+
it('22. requestUpdate', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); el.requestUpdate(); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; });
|
|
26
|
+
it('23. render method', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.render).to.be.a('function'); });
|
|
27
|
+
it('24. shadowRoot host', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot.host).to.equal(el); });
|
|
28
|
+
it('25. class attr', async () => { const el = await fixture(html `<nile-heading class="h"></nile-heading>`); expect(el.classList.contains('h')).to.be.true; });
|
|
29
|
+
it('26. id attr', async () => { const el = await fixture(html `<nile-heading id="h1"></nile-heading>`); expect(el.id).to.equal('h1'); });
|
|
30
|
+
it('27. style attr', async () => { const el = await fixture(html `<nile-heading style="color:red"></nile-heading>`); expect(el.style.color).to.equal('red'); });
|
|
31
|
+
it('28. data attr', async () => { const el = await fixture(html `<nile-heading data-x="1"></nile-heading>`); expect(el.getAttribute('data-x')).to.equal('1'); });
|
|
32
|
+
it('29. hidden', async () => { const el = await fixture(html `<nile-heading hidden></nile-heading>`); expect(el.hidden).to.be.true; });
|
|
33
|
+
it('30. dir', async () => { const el = await fixture(html `<nile-heading dir="rtl"></nile-heading>`); expect(el.dir).to.equal('rtl'); });
|
|
34
|
+
it('31. nodeType', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.nodeType).to.equal(1); });
|
|
35
|
+
it('32. multiple instances', async () => { const c = await fixture(html `<div><nile-heading></nile-heading><nile-heading></nile-heading></div>`); expect(c.querySelectorAll('nile-heading').length).to.equal(2); });
|
|
36
|
+
it('33. parent-child', async () => { const c = await fixture(html `<div><nile-heading></nile-heading></div>`); expect(c.querySelector('nile-heading').parentElement).to.equal(c); });
|
|
37
|
+
it('34. localName', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.localName).to.equal('nile-heading'); });
|
|
38
|
+
it('35. namespaceURI', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.namespaceURI).to.equal('http://www.w3.org/1999/xhtml'); });
|
|
39
|
+
it('36. ownerDocument', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.ownerDocument).to.equal(document); });
|
|
40
|
+
it('37. classList add', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); el.classList.add('z'); expect(el.classList.contains('z')).to.be.true; });
|
|
41
|
+
it('38. dataset', async () => { const el = await fixture(html `<nile-heading data-idx="0"></nile-heading>`); expect(el.dataset.idx).to.equal('0'); });
|
|
42
|
+
it('39. getBoundingClientRect', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.getBoundingClientRect()).to.exist; });
|
|
43
|
+
it('40. name type', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(typeof el.name).to.equal('string'); });
|
|
44
|
+
it('41. size type', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(typeof el.size).to.equal('string'); });
|
|
45
|
+
it('42. no inputs', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot.querySelectorAll('input').length).to.equal(0); });
|
|
46
|
+
it('43. no buttons', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot.querySelectorAll('button').length).to.equal(0); });
|
|
47
|
+
it('44. slot count', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot.querySelectorAll('slot').length).to.equal(1); });
|
|
48
|
+
it('45. aria-label', async () => { const el = await fixture(html `<nile-heading aria-label="Title"></nile-heading>`); expect(el.getAttribute('aria-label')).to.equal('Title'); });
|
|
49
|
+
it('46. role', async () => { const el = await fixture(html `<nile-heading role="heading"></nile-heading>`); expect(el.getAttribute('role')).to.equal('heading'); });
|
|
50
|
+
it('47. createElement', async () => { const el = document.createElement('nile-heading'); document.body.appendChild(el); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; document.body.removeChild(el); });
|
|
51
|
+
it('48. lang attr', async () => { const el = await fixture(html `<nile-heading lang="en"></nile-heading>`); expect(el.lang).to.equal('en'); });
|
|
52
|
+
it('49. tabindex', async () => { const el = await fixture(html `<nile-heading tabindex="0"></nile-heading>`); expect(el.getAttribute('tabindex')).to.equal('0'); });
|
|
53
|
+
it('50. children survived update', async () => { const el = await fixture(html `<nile-heading><span id="s1">Title</span></nile-heading>`); el.name = 'N'; await el.updateComplete; expect(el.querySelector('#s1')).to.exist; });
|
|
54
|
+
it('51. nested elements', async () => { const el = await fixture(html `<nile-heading><strong>Bold</strong></nile-heading>`); expect(el.querySelector('strong')).to.exist; });
|
|
55
|
+
it('52. childElementCount', async () => { const el = await fixture(html `<nile-heading><span>A</span></nile-heading>`); expect(el.childElementCount).to.equal(1); });
|
|
56
|
+
it('53. firstElementChild', async () => { const el = await fixture(html `<nile-heading><span>A</span></nile-heading>`); expect(el.firstElementChild.tagName.toLowerCase()).to.equal('span'); });
|
|
57
|
+
it('54. text content', async () => { const el = await fixture(html `<nile-heading>Test</nile-heading>`); expect(el.textContent).to.contain('Test'); });
|
|
58
|
+
it('55. no children default', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.childElementCount).to.equal(0); });
|
|
59
|
+
it('56. no form', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot.querySelector('form')).to.be.null; });
|
|
60
|
+
it('57. no anchor', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot.querySelector('a')).to.be.null; });
|
|
61
|
+
it('58. no img', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot.querySelector('img')).to.be.null; });
|
|
62
|
+
it('59. no svg', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot.querySelector('svg')).to.be.null; });
|
|
63
|
+
it('60. shadow childNodes', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot.childNodes.length).to.be.greaterThan(0); });
|
|
64
|
+
it('61. scrollIntoView', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.scrollIntoView).to.be.a('function'); });
|
|
65
|
+
it('62. focus method', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.focus).to.be.a('function'); });
|
|
66
|
+
it('63. blur method', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.blur).to.be.a('function'); });
|
|
67
|
+
it('64. dispatchCustomEvent', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); let d; el.addEventListener('t', ((e) => { d = e.detail; })); el.dispatchEvent(new CustomEvent('t', { detail: 'x' })); expect(d).to.equal('x'); });
|
|
68
|
+
it('65. class toggle', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); el.classList.toggle('active'); expect(el.classList.contains('active')).to.be.true; });
|
|
69
|
+
it('66. toggle hidden', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); el.hidden = true; expect(el.hidden).to.be.true; });
|
|
70
|
+
it('67. innerHTML', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); el.innerHTML = '<p>New</p>'; expect(el.querySelector('p').textContent).to.equal('New'); });
|
|
71
|
+
it('68. setAttribute size', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); el.setAttribute('size', 'header-3'); await el.updateComplete; expect(el.size).to.equal('header-3'); });
|
|
72
|
+
it('69. removeAttribute size', async () => { const el = await fixture(html `<nile-heading size="header-2"></nile-heading>`); el.removeAttribute('size'); await el.updateComplete; expect(el.getAttribute('size')).to.be.null; });
|
|
73
|
+
it('70. hasAttribute size', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.hasAttribute('size')).to.be.true; });
|
|
74
|
+
it('71. rapid size changes', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); el.size = 'header-2'; await el.updateComplete; el.size = 'header-3'; await el.updateComplete; expect(el.size).to.equal('header-3'); });
|
|
75
|
+
it('72. no video', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot.querySelector('video')).to.be.null; });
|
|
76
|
+
it('73. no audio', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot.querySelector('audio')).to.be.null; });
|
|
77
|
+
it('74. no canvas', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot.querySelector('canvas')).to.be.null; });
|
|
78
|
+
it('75. no table', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot.querySelector('table')).to.be.null; });
|
|
79
|
+
it('76. no ul', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot.querySelector('ul')).to.be.null; });
|
|
80
|
+
it('77. re-renders', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); el.name = 'A'; await el.updateComplete; el.name = 'B'; await el.updateComplete; expect(el.name).to.equal('B'); });
|
|
81
|
+
it('78. nested in div', async () => { const c = await fixture(html `<div><nile-heading>Title</nile-heading></div>`); expect(c.querySelector('nile-heading')).to.exist; });
|
|
82
|
+
it('79. contains check', async () => { const el = await fixture(html `<nile-heading><span id="s1">T</span></nile-heading>`); expect(el.contains(el.querySelector('#s1'))).to.be.true; });
|
|
83
|
+
it('80. children array', async () => { const el = await fixture(html `<nile-heading><span>A</span><span>B</span></nile-heading>`); expect(el.children.length).to.equal(2); });
|
|
84
|
+
it('81. lastElementChild', async () => { const el = await fixture(html `<nile-heading><span>A</span><div>B</div></nile-heading>`); expect(el.lastElementChild.tagName.toLowerCase()).to.equal('div'); });
|
|
85
|
+
it('82. append child', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); const s = document.createElement('span'); el.appendChild(s); expect(el.querySelector('span')).to.exist; });
|
|
86
|
+
it('83. remove child', async () => { const el = await fixture(html `<nile-heading><span id="s1">T</span></nile-heading>`); el.removeChild(el.querySelector('#s1')); expect(el.querySelector('#s1')).to.be.null; });
|
|
87
|
+
it('84. replaceChildren', async () => { const el = await fixture(html `<nile-heading><span>Old</span></nile-heading>`); const p = document.createElement('p'); el.replaceChildren(p); expect(el.querySelector('p')).to.exist; expect(el.querySelector('span')).to.be.null; });
|
|
88
|
+
it('85. textContent empty default', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.textContent.trim()).to.equal(''); });
|
|
89
|
+
it('86. no nav', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot.querySelector('nav')).to.be.null; });
|
|
90
|
+
it('87. no aside', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot.querySelector('aside')).to.be.null; });
|
|
91
|
+
it('88. no select', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot.querySelector('select')).to.be.null; });
|
|
92
|
+
it('89. no textarea', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot.querySelector('textarea')).to.be.null; });
|
|
93
|
+
it('90. aria-level', async () => { const el = await fixture(html `<nile-heading aria-level="1"></nile-heading>`); expect(el.getAttribute('aria-level')).to.equal('1'); });
|
|
94
|
+
it('91. aria-describedby', async () => { const el = await fixture(html `<nile-heading aria-describedby="d"></nile-heading>`); expect(el.getAttribute('aria-describedby')).to.equal('d'); });
|
|
95
|
+
it('92. title attr', async () => { const el = await fixture(html `<nile-heading title="T"></nile-heading>`); expect(el.title).to.equal('T'); });
|
|
96
|
+
it('93. insertBefore', async () => { const el = await fixture(html `<nile-heading><span id="s1">B</span></nile-heading>`); const p = document.createElement('p'); el.insertBefore(p, el.querySelector('#s1')); expect(el.firstElementChild.tagName.toLowerCase()).to.equal('p'); });
|
|
97
|
+
it('94. no pre', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot.querySelector('pre')).to.be.null; });
|
|
98
|
+
it('95. no code', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot.querySelector('code')).to.be.null; });
|
|
99
|
+
it('96. no h1 in shadow', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot.querySelector('h1')).to.be.null; });
|
|
100
|
+
it('97. no div in shadow', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); expect(el.shadowRoot.querySelector('div')).to.be.null; });
|
|
101
|
+
it('98. only slot in shadow', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); const all = el.shadowRoot.querySelectorAll('*'); const tagNames = Array.from(all).map(e => e.tagName.toLowerCase()); expect(tagNames).to.include('slot'); });
|
|
102
|
+
it('99. multiple re-renders', async () => { const el = await fixture(html `<nile-heading></nile-heading>`); for (let i = 0; i < 5; i++) {
|
|
103
|
+
el.requestUpdate();
|
|
104
|
+
await el.updateComplete;
|
|
105
|
+
} expect(el.shadowRoot).to.not.be.null; });
|
|
106
|
+
it('100. full integration', async () => { const el = await fixture(html `<nile-heading size="header-1" name="Title" class="h" id="h1" role="heading" aria-label="Main heading">Main Title</nile-heading>`); expect(el.name).to.equal('Title'); expect(el.size).to.equal('header-1'); expect(el.id).to.equal('h1'); expect(el.textContent).to.contain('Main Title'); expect(el.shadowRoot.querySelector('slot')).to.exist; });
|
|
107
|
+
});
|
|
108
|
+
//# sourceMappingURL=nile-heading.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nile-heading.test.js","sourceRoot":"","sources":["../../../src/nile-heading/nile-heading.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture, html } from '@open-wc/testing';\nimport './index';\nimport type { NileHeading } from './index';\n\ndescribe('NileHeading', () => {\n it('1. renders', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el).to.exist; });\n it('2. shadow root', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot).to.not.be.null; });\n it('3. tag name', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.tagName.toLowerCase()).to.equal('nile-heading'); });\n it('4. name defaults empty', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.name).to.equal(''); });\n it('5. size defaults header-1', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.size).to.equal('header-1'); });\n it('6. slot', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot!.querySelector('slot')).to.exist; });\n it('7. slotted content', async () => { const el = await fixture<NileHeading>(html`<nile-heading>Hello World</nile-heading>`); expect(el.textContent).to.contain('Hello World'); });\n it('8. size reflected', async () => { const el = await fixture<NileHeading>(html`<nile-heading size=\"header-2\"></nile-heading>`); expect(el.getAttribute('size')).to.equal('header-2'); });\n it('9. dynamic name', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); el.name = 'Test'; await el.updateComplete; expect(el.name).to.equal('Test'); });\n it('10. dynamic size', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); el.size = 'header-2'; await el.updateComplete; expect(el.getAttribute('size')).to.equal('header-2'); });\n it('11. has styles', async () => { expect((await import('./index')).NileHeading.styles).to.exist; });\n it('12. is defined', async () => { expect(customElements.get('nile-heading')).to.exist; });\n it('13. shadow mode', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot!.mode).to.equal('open'); });\n it('14. isConnected', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.isConnected).to.be.true; });\n it('15. removal', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); el.remove(); expect(el.isConnected).to.be.false; });\n it('16. outerHTML', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.outerHTML).to.contain('nile-heading'); });\n it('17. matches', async () => { const el = await fixture<NileHeading>(html`<nile-heading class=\"x\"></nile-heading>`); expect(el.matches('nile-heading.x')).to.be.true; });\n it('18. closest', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.closest('nile-heading')).to.equal(el); });\n it('19. cloneNode', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect((el.cloneNode(true) as Element).tagName.toLowerCase()).to.equal('nile-heading'); });\n it('20. dispatchEvent', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); let f = false; el.addEventListener('c', () => (f = true)); el.dispatchEvent(new Event('c')); expect(f).to.be.true; });\n it('21. updateComplete', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); const r = await el.updateComplete; expect(r).to.not.be.undefined; });\n it('22. requestUpdate', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); el.requestUpdate(); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; });\n it('23. render method', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.render).to.be.a('function'); });\n it('24. shadowRoot host', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot!.host).to.equal(el); });\n it('25. class attr', async () => { const el = await fixture<NileHeading>(html`<nile-heading class=\"h\"></nile-heading>`); expect(el.classList.contains('h')).to.be.true; });\n it('26. id attr', async () => { const el = await fixture<NileHeading>(html`<nile-heading id=\"h1\"></nile-heading>`); expect(el.id).to.equal('h1'); });\n it('27. style attr', async () => { const el = await fixture<NileHeading>(html`<nile-heading style=\"color:red\"></nile-heading>`); expect(el.style.color).to.equal('red'); });\n it('28. data attr', async () => { const el = await fixture<NileHeading>(html`<nile-heading data-x=\"1\"></nile-heading>`); expect(el.getAttribute('data-x')).to.equal('1'); });\n it('29. hidden', async () => { const el = await fixture<NileHeading>(html`<nile-heading hidden></nile-heading>`); expect(el.hidden).to.be.true; });\n it('30. dir', async () => { const el = await fixture<NileHeading>(html`<nile-heading dir=\"rtl\"></nile-heading>`); expect(el.dir).to.equal('rtl'); });\n it('31. nodeType', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.nodeType).to.equal(1); });\n it('32. multiple instances', async () => { const c = await fixture(html`<div><nile-heading></nile-heading><nile-heading></nile-heading></div>`); expect(c.querySelectorAll('nile-heading').length).to.equal(2); });\n it('33. parent-child', async () => { const c = await fixture(html`<div><nile-heading></nile-heading></div>`); expect(c.querySelector('nile-heading')!.parentElement).to.equal(c); });\n it('34. localName', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.localName).to.equal('nile-heading'); });\n it('35. namespaceURI', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.namespaceURI).to.equal('http://www.w3.org/1999/xhtml'); });\n it('36. ownerDocument', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.ownerDocument).to.equal(document); });\n it('37. classList add', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); el.classList.add('z'); expect(el.classList.contains('z')).to.be.true; });\n it('38. dataset', async () => { const el = await fixture<NileHeading>(html`<nile-heading data-idx=\"0\"></nile-heading>`); expect(el.dataset.idx).to.equal('0'); });\n it('39. getBoundingClientRect', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.getBoundingClientRect()).to.exist; });\n it('40. name type', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(typeof el.name).to.equal('string'); });\n it('41. size type', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(typeof el.size).to.equal('string'); });\n it('42. no inputs', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot!.querySelectorAll('input').length).to.equal(0); });\n it('43. no buttons', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot!.querySelectorAll('button').length).to.equal(0); });\n it('44. slot count', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot!.querySelectorAll('slot').length).to.equal(1); });\n it('45. aria-label', async () => { const el = await fixture<NileHeading>(html`<nile-heading aria-label=\"Title\"></nile-heading>`); expect(el.getAttribute('aria-label')).to.equal('Title'); });\n it('46. role', async () => { const el = await fixture<NileHeading>(html`<nile-heading role=\"heading\"></nile-heading>`); expect(el.getAttribute('role')).to.equal('heading'); });\n it('47. createElement', async () => { const el = document.createElement('nile-heading') as NileHeading; document.body.appendChild(el); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; document.body.removeChild(el); });\n it('48. lang attr', async () => { const el = await fixture<NileHeading>(html`<nile-heading lang=\"en\"></nile-heading>`); expect(el.lang).to.equal('en'); });\n it('49. tabindex', async () => { const el = await fixture<NileHeading>(html`<nile-heading tabindex=\"0\"></nile-heading>`); expect(el.getAttribute('tabindex')).to.equal('0'); });\n it('50. children survived update', async () => { const el = await fixture<NileHeading>(html`<nile-heading><span id=\"s1\">Title</span></nile-heading>`); el.name = 'N'; await el.updateComplete; expect(el.querySelector('#s1')).to.exist; });\n it('51. nested elements', async () => { const el = await fixture<NileHeading>(html`<nile-heading><strong>Bold</strong></nile-heading>`); expect(el.querySelector('strong')).to.exist; });\n it('52. childElementCount', async () => { const el = await fixture<NileHeading>(html`<nile-heading><span>A</span></nile-heading>`); expect(el.childElementCount).to.equal(1); });\n it('53. firstElementChild', async () => { const el = await fixture<NileHeading>(html`<nile-heading><span>A</span></nile-heading>`); expect(el.firstElementChild!.tagName.toLowerCase()).to.equal('span'); });\n it('54. text content', async () => { const el = await fixture<NileHeading>(html`<nile-heading>Test</nile-heading>`); expect(el.textContent).to.contain('Test'); });\n it('55. no children default', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.childElementCount).to.equal(0); });\n it('56. no form', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot!.querySelector('form')).to.be.null; });\n it('57. no anchor', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot!.querySelector('a')).to.be.null; });\n it('58. no img', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot!.querySelector('img')).to.be.null; });\n it('59. no svg', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot!.querySelector('svg')).to.be.null; });\n it('60. shadow childNodes', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot!.childNodes.length).to.be.greaterThan(0); });\n it('61. scrollIntoView', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.scrollIntoView).to.be.a('function'); });\n it('62. focus method', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.focus).to.be.a('function'); });\n it('63. blur method', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.blur).to.be.a('function'); });\n it('64. dispatchCustomEvent', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); let d: any; el.addEventListener('t', ((e: CustomEvent) => { d = e.detail; }) as EventListener); el.dispatchEvent(new CustomEvent('t', { detail: 'x' })); expect(d).to.equal('x'); });\n it('65. class toggle', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); el.classList.toggle('active'); expect(el.classList.contains('active')).to.be.true; });\n it('66. toggle hidden', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); el.hidden = true; expect(el.hidden).to.be.true; });\n it('67. innerHTML', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); el.innerHTML = '<p>New</p>'; expect(el.querySelector('p')!.textContent).to.equal('New'); });\n it('68. setAttribute size', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); el.setAttribute('size', 'header-3'); await el.updateComplete; expect(el.size).to.equal('header-3'); });\n it('69. removeAttribute size', async () => { const el = await fixture<NileHeading>(html`<nile-heading size=\"header-2\"></nile-heading>`); el.removeAttribute('size'); await el.updateComplete; expect(el.getAttribute('size')).to.be.null; });\n it('70. hasAttribute size', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.hasAttribute('size')).to.be.true; });\n it('71. rapid size changes', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); el.size = 'header-2'; await el.updateComplete; el.size = 'header-3'; await el.updateComplete; expect(el.size).to.equal('header-3'); });\n it('72. no video', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot!.querySelector('video')).to.be.null; });\n it('73. no audio', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot!.querySelector('audio')).to.be.null; });\n it('74. no canvas', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot!.querySelector('canvas')).to.be.null; });\n it('75. no table', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot!.querySelector('table')).to.be.null; });\n it('76. no ul', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot!.querySelector('ul')).to.be.null; });\n it('77. re-renders', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); el.name = 'A'; await el.updateComplete; el.name = 'B'; await el.updateComplete; expect(el.name).to.equal('B'); });\n it('78. nested in div', async () => { const c = await fixture(html`<div><nile-heading>Title</nile-heading></div>`); expect(c.querySelector('nile-heading')).to.exist; });\n it('79. contains check', async () => { const el = await fixture<NileHeading>(html`<nile-heading><span id=\"s1\">T</span></nile-heading>`); expect(el.contains(el.querySelector('#s1'))).to.be.true; });\n it('80. children array', async () => { const el = await fixture<NileHeading>(html`<nile-heading><span>A</span><span>B</span></nile-heading>`); expect(el.children.length).to.equal(2); });\n it('81. lastElementChild', async () => { const el = await fixture<NileHeading>(html`<nile-heading><span>A</span><div>B</div></nile-heading>`); expect(el.lastElementChild!.tagName.toLowerCase()).to.equal('div'); });\n it('82. append child', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); const s = document.createElement('span'); el.appendChild(s); expect(el.querySelector('span')).to.exist; });\n it('83. remove child', async () => { const el = await fixture<NileHeading>(html`<nile-heading><span id=\"s1\">T</span></nile-heading>`); el.removeChild(el.querySelector('#s1')!); expect(el.querySelector('#s1')).to.be.null; });\n it('84. replaceChildren', async () => { const el = await fixture<NileHeading>(html`<nile-heading><span>Old</span></nile-heading>`); const p = document.createElement('p'); el.replaceChildren(p); expect(el.querySelector('p')).to.exist; expect(el.querySelector('span')).to.be.null; });\n it('85. textContent empty default', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.textContent!.trim()).to.equal(''); });\n it('86. no nav', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot!.querySelector('nav')).to.be.null; });\n it('87. no aside', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot!.querySelector('aside')).to.be.null; });\n it('88. no select', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot!.querySelector('select')).to.be.null; });\n it('89. no textarea', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot!.querySelector('textarea')).to.be.null; });\n it('90. aria-level', async () => { const el = await fixture<NileHeading>(html`<nile-heading aria-level=\"1\"></nile-heading>`); expect(el.getAttribute('aria-level')).to.equal('1'); });\n it('91. aria-describedby', async () => { const el = await fixture<NileHeading>(html`<nile-heading aria-describedby=\"d\"></nile-heading>`); expect(el.getAttribute('aria-describedby')).to.equal('d'); });\n it('92. title attr', async () => { const el = await fixture<NileHeading>(html`<nile-heading title=\"T\"></nile-heading>`); expect(el.title).to.equal('T'); });\n it('93. insertBefore', async () => { const el = await fixture<NileHeading>(html`<nile-heading><span id=\"s1\">B</span></nile-heading>`); const p = document.createElement('p'); el.insertBefore(p, el.querySelector('#s1')!); expect(el.firstElementChild!.tagName.toLowerCase()).to.equal('p'); });\n it('94. no pre', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot!.querySelector('pre')).to.be.null; });\n it('95. no code', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot!.querySelector('code')).to.be.null; });\n it('96. no h1 in shadow', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot!.querySelector('h1')).to.be.null; });\n it('97. no div in shadow', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); expect(el.shadowRoot!.querySelector('div')).to.be.null; });\n it('98. only slot in shadow', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); const all = el.shadowRoot!.querySelectorAll('*'); const tagNames = Array.from(all).map(e => e.tagName.toLowerCase()); expect(tagNames).to.include('slot'); });\n it('99. multiple re-renders', async () => { const el = await fixture<NileHeading>(html`<nile-heading></nile-heading>`); for (let i = 0; i < 5; i++) { el.requestUpdate(); await el.updateComplete; } expect(el.shadowRoot).to.not.be.null; });\n it('100. full integration', async () => { const el = await fixture<NileHeading>(html`<nile-heading size=\"header-1\" name=\"Title\" class=\"h\" id=\"h1\" role=\"heading\" aria-label=\"Main heading\">Main Title</nile-heading>`); expect(el.name).to.equal('Title'); expect(el.size).to.equal('header-1'); expect(el.id).to.equal('h1'); expect(el.textContent).to.contain('Main Title'); expect(el.shadowRoot!.querySelector('slot')).to.exist; });\n});\n"]}
|