@nova-design-system/nova-webcomponents 3.26.0 → 3.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{index-BQjqJTJB.js → index-Cfkoz1kc.js} +17 -1
- package/dist/cjs/index.cjs.js +6 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/native.cjs.js +2 -2
- package/dist/cjs/nova-datetime-DOtVgYBB.js +10643 -0
- package/dist/cjs/nv-accordion-item.cjs.entry.js +1 -1
- package/dist/cjs/nv-accordion.cjs.entry.js +1 -1
- package/dist/cjs/nv-alert.cjs.entry.js +1 -1
- package/dist/cjs/nv-avatar.cjs.entry.js +1 -1
- package/dist/cjs/nv-badge_2.cjs.entry.js +2 -2
- package/dist/cjs/nv-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/nv-breadcrumbs.cjs.entry.js +1 -1
- package/dist/cjs/nv-button.cjs.entry.js +1 -1
- package/dist/cjs/nv-buttongroup.cjs.entry.js +1 -1
- package/dist/cjs/nv-calendar.cjs.entry.js +1 -1
- package/dist/cjs/nv-col.cjs.entry.js +1 -1
- package/dist/cjs/nv-datagrid.cjs.entry.js +1 -1
- package/dist/cjs/nv-datagridcolumn.cjs.entry.js +1 -1
- package/dist/cjs/nv-datetest.cjs.entry.js +66 -0
- package/dist/cjs/nv-datetimetest.cjs.entry.js +54 -0
- package/dist/cjs/nv-dialog.cjs.entry.js +16 -3
- package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +3 -3
- package/dist/cjs/nv-drawer.cjs.entry.js +2 -2
- package/dist/cjs/nv-drawerfooter_2.cjs.entry.js +3 -3
- package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +5 -5
- package/dist/cjs/nv-fielddate.cjs.entry.js +7 -7
- package/dist/cjs/nv-fielddaterange.cjs.entry.js +7 -7
- package/dist/cjs/nv-fielddropdown.cjs.entry.js +5 -5
- package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +1 -1
- package/dist/cjs/nv-fieldnumber.cjs.entry.js +5 -5
- package/dist/cjs/nv-fieldpassword.cjs.entry.js +5 -5
- package/dist/cjs/nv-fieldradio.cjs.entry.js +4 -4
- package/dist/cjs/nv-fieldselect.cjs.entry.js +6 -6
- package/dist/cjs/nv-fieldslider.cjs.entry.js +4 -4
- package/dist/cjs/nv-fieldtext.cjs.entry.js +5 -5
- package/dist/cjs/nv-fieldtextarea.cjs.entry.js +4 -4
- package/dist/cjs/nv-fieldtime.cjs.entry.js +4 -4
- package/dist/cjs/nv-icon.cjs.entry.js +3 -3
- package/dist/cjs/nv-iconbutton_2.cjs.entry.js +3 -3
- package/dist/cjs/nv-menu.cjs.entry.js +2 -2
- package/dist/cjs/nv-menuitem.cjs.entry.js +2 -2
- package/dist/cjs/nv-notification-bullet.cjs.entry.js +1 -1
- package/dist/cjs/nv-notification.cjs.entry.js +2 -2
- package/dist/cjs/nv-notificationcontainer.cjs.entry.js +2 -14
- package/dist/cjs/nv-pagination-nav.cjs.entry.js +198 -0
- package/dist/cjs/nv-paginationtable.cjs.entry.js +2 -2
- package/dist/cjs/nv-popover.cjs.entry.js +2 -2
- package/dist/cjs/nv-row.cjs.entry.js +2 -2
- package/dist/cjs/nv-sidebar.cjs.entry.js +2 -2
- package/dist/cjs/nv-sidebarcontent.cjs.entry.js +2 -2
- package/dist/cjs/nv-sidebardivider.cjs.entry.js +2 -2
- package/dist/cjs/nv-sidebarfooter.cjs.entry.js +2 -2
- package/dist/cjs/nv-sidebargroup.cjs.entry.js +2 -2
- package/dist/cjs/nv-sidebarheader.cjs.entry.js +2 -2
- package/dist/cjs/nv-sidebarlogo.cjs.entry.js +2 -2
- package/dist/cjs/nv-sidebarnavitem.cjs.entry.js +12 -5
- package/dist/cjs/nv-sidebarnavsubitem.cjs.entry.js +2 -2
- package/dist/cjs/nv-split.cjs.entry.js +2 -2
- package/dist/cjs/nv-stack.cjs.entry.js +2 -2
- package/dist/cjs/nv-table.cjs.entry.js +2 -2
- package/dist/cjs/nv-tableheader.cjs.entry.js +2 -2
- package/dist/cjs/nv-timetest.cjs.entry.js +72 -0
- package/dist/cjs/nv-toggle.cjs.entry.js +3 -3
- package/dist/cjs/nv-togglebutton.cjs.entry.js +2 -2
- package/dist/cjs/nv-togglebuttongroup.cjs.entry.js +2 -2
- package/dist/cjs/nv-tooltip.cjs.entry.js +9 -4
- package/dist/collection/collection-manifest.json +4 -0
- package/dist/collection/components/nv-accordion/nv-accordion.docs.js +1 -0
- package/dist/collection/components/nv-accordion-item/nv-accordion-item.docs.js +69 -1
- package/dist/collection/components/nv-alert/nv-alert.docs.js +1 -0
- package/dist/collection/components/nv-avatar/nv-avatar.docs.js +1 -0
- package/dist/collection/components/nv-badge/nv-badge.docs.js +1 -0
- package/dist/collection/components/nv-breadcrumb/nv-breadcrumb.docs.js +36 -1
- package/dist/collection/components/nv-breadcrumbs/nv-breadcrumbs.docs.js +1 -0
- package/dist/collection/components/nv-button/nv-button.docs.js +1 -0
- package/dist/collection/components/nv-buttongroup/nv-buttongroup.docs.js +1 -0
- package/dist/collection/components/nv-calendar/nv-calendar.docs.js +1 -0
- package/dist/collection/components/nv-col/nv-col.docs.js +1 -0
- package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js +1 -0
- package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.docs.js +25 -1
- package/dist/collection/components/nv-datetest/nv-datetest.css +15 -0
- package/dist/collection/components/nv-datetest/nv-datetest.docs.js +12 -0
- package/dist/collection/components/nv-datetest/nv-datetest.js +242 -0
- package/dist/collection/components/nv-datetimetest/nv-datetimetest.css +15 -0
- package/dist/collection/components/nv-datetimetest/nv-datetimetest.docs.js +5 -0
- package/dist/collection/components/nv-datetimetest/nv-datetimetest.js +197 -0
- package/dist/collection/components/nv-dialog/nv-dialog.docs.js +1 -0
- package/dist/collection/components/nv-dialog/nv-dialog.js +15 -2
- package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.docs.js +9 -1
- package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.js +1 -1
- package/dist/collection/components/nv-dialogheader/nv-dialogheader.docs.js +9 -1
- package/dist/collection/components/nv-dialogheader/nv-dialogheader.js +1 -1
- package/dist/collection/components/nv-drawer/nv-drawer.docs.js +1 -0
- package/dist/collection/components/nv-drawer/nv-drawer.js +1 -1
- package/dist/collection/components/nv-drawerfooter/nv-drawerfooter.docs.js +9 -1
- package/dist/collection/components/nv-drawerfooter/nv-drawerfooter.js +1 -1
- package/dist/collection/components/nv-drawerheader/nv-drawerheader.docs.js +9 -1
- package/dist/collection/components/nv-drawerheader/nv-drawerheader.js +1 -1
- package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.docs.js +1 -0
- package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js +4 -4
- package/dist/collection/components/nv-fielddate/nv-fielddate.docs.js +1 -0
- package/dist/collection/components/nv-fielddate/nv-fielddate.js +6 -6
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.docs.js +1 -0
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +6 -6
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js +1 -0
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +4 -4
- package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.docs.js +54 -1
- package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js +1 -1
- package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.docs.js +42 -1
- package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js +1 -1
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js +1 -0
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.docs.js +1 -0
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +4 -4
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.docs.js +1 -0
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +4 -4
- package/dist/collection/components/nv-fieldradio/nv-fieldradio.docs.js +1 -0
- package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +3 -3
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.docs.js +1 -0
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +5 -5
- package/dist/collection/components/nv-fieldslider/nv-fieldslider.docs.js +1 -0
- package/dist/collection/components/nv-fieldslider/nv-fieldslider.js +3 -3
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js +1 -0
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +4 -4
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.docs.js +1 -0
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +3 -3
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js +1 -0
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +3 -3
- package/dist/collection/components/nv-icon/nv-icon.docs.js +1 -0
- package/dist/collection/components/nv-icon/nv-icon.js +1 -1
- package/dist/collection/components/nv-icon/nv-icons.js +4 -0
- package/dist/collection/components/nv-iconbutton/nv-iconbutton.docs.js +1 -0
- package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +1 -1
- package/dist/collection/components/nv-loader/nv-loader.docs.js +1 -0
- package/dist/collection/components/nv-loader/nv-loader.js +1 -1
- package/dist/collection/components/nv-menu/nv-menu.docs.js +1 -0
- package/dist/collection/components/nv-menu/nv-menu.js +1 -1
- package/dist/collection/components/nv-menuitem/nv-menuitem.docs.js +20 -1
- package/dist/collection/components/nv-menuitem/nv-menuitem.js +2 -2
- package/dist/collection/components/nv-notification/nv-notification.docs.js +1 -0
- package/dist/collection/components/nv-notification/nv-notification.js +1 -1
- package/dist/collection/components/nv-notification-bullet/nv-notification-bullet.docs.js +1 -0
- package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.docs.js +24 -1
- package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.js +1 -15
- package/dist/collection/components/nv-pagination-nav/nv-pagination-nav.css +37 -0
- package/dist/collection/components/nv-pagination-nav/nv-pagination-nav.docs.js +278 -0
- package/dist/collection/components/nv-pagination-nav/nv-pagination-nav.js +359 -0
- package/dist/collection/components/nv-pagination-nav/nv-pagination-nav.utils.js +70 -0
- package/dist/collection/components/nv-pagination-nav/test/nv-pagination-nav.utils.test.js +66 -0
- package/dist/collection/components/nv-paginationtable/nv-paginationtable.docs.js +1 -0
- package/dist/collection/components/nv-paginationtable/nv-paginationtable.js +1 -1
- package/dist/collection/components/nv-popover/nv-popover.docs.js +1 -0
- package/dist/collection/components/nv-popover/nv-popover.js +1 -1
- package/dist/collection/components/nv-row/nv-row.docs.js +1 -0
- package/dist/collection/components/nv-row/nv-row.js +1 -1
- package/dist/collection/components/nv-sidebar/nv-sidebar.docs.js +1 -0
- package/dist/collection/components/nv-sidebar/nv-sidebar.js +1 -1
- package/dist/collection/components/nv-sidebarcontent/nv-sidebarcontent.docs.js +14 -1
- package/dist/collection/components/nv-sidebarcontent/nv-sidebarcontent.js +1 -1
- package/dist/collection/components/nv-sidebardivider/nv-sidebardivider.docs.js +15 -1
- package/dist/collection/components/nv-sidebardivider/nv-sidebardivider.js +1 -1
- package/dist/collection/components/nv-sidebarfooter/nv-sidebarfooter.docs.js +9 -1
- package/dist/collection/components/nv-sidebarfooter/nv-sidebarfooter.js +1 -1
- package/dist/collection/components/nv-sidebargroup/nv-sidebargroup.docs.js +15 -1
- package/dist/collection/components/nv-sidebargroup/nv-sidebargroup.js +1 -1
- package/dist/collection/components/nv-sidebarheader/nv-sidebarheader.docs.js +9 -1
- package/dist/collection/components/nv-sidebarheader/nv-sidebarheader.js +1 -1
- package/dist/collection/components/nv-sidebarlogo/nv-sidebarlogo.docs.js +10 -1
- package/dist/collection/components/nv-sidebarlogo/nv-sidebarlogo.js +3 -1
- package/dist/collection/components/nv-sidebarnavitem/nv-sidebarnavitem.docs.js +16 -1
- package/dist/collection/components/nv-sidebarnavitem/nv-sidebarnavitem.js +12 -5
- package/dist/collection/components/nv-sidebarnavsubitem/nv-sidebarnavsubitem.docs.js +15 -1
- package/dist/collection/components/nv-sidebarnavsubitem/nv-sidebarnavsubitem.js +1 -1
- package/dist/collection/components/nv-split/nv-split.docs.js +1 -0
- package/dist/collection/components/nv-split/nv-split.js +1 -1
- package/dist/collection/components/nv-stack/nv-stack.docs.js +1 -0
- package/dist/collection/components/nv-stack/nv-stack.js +1 -1
- package/dist/collection/components/nv-table/nv-table.docs.js +1 -0
- package/dist/collection/components/nv-table/nv-table.js +1 -1
- package/dist/collection/components/nv-tableheader/nv-tableheader.docs.js +1 -0
- package/dist/collection/components/nv-tableheader/nv-tableheader.js +1 -1
- package/dist/collection/components/nv-timetest/nv-timetest.css +15 -0
- package/dist/collection/components/nv-timetest/nv-timetest.docs.js +5 -0
- package/dist/collection/components/nv-timetest/nv-timetest.js +248 -0
- package/dist/collection/components/nv-toggle/nv-toggle.docs.js +1 -0
- package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
- package/dist/collection/components/nv-togglebutton/nv-togglebutton.docs.js +48 -1
- package/dist/collection/components/nv-togglebutton/nv-togglebutton.js +1 -1
- package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js +1 -0
- package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js +1 -1
- package/dist/collection/components/nv-tooltip/nv-tooltip.docs.js +1 -0
- package/dist/collection/components/nv-tooltip/nv-tooltip.js +8 -3
- package/dist/collection/index.js +3 -0
- package/dist/collection/interfaces/dates.js +1 -0
- package/dist/collection/utils/nova-datetime.js +144 -0
- package/dist/collection/utils/test/nova-datetime.test.js +230 -0
- package/dist/components/index.js +1 -1
- package/dist/components/nv-accordion-item.js +1 -1
- package/dist/components/nv-accordion.js +1 -1
- package/dist/components/nv-alert.js +1 -1
- package/dist/components/nv-avatar.js +1 -1
- package/dist/components/nv-badge.js +1 -1
- package/dist/components/nv-breadcrumb.js +1 -1
- package/dist/components/nv-breadcrumbs.js +1 -1
- package/dist/components/nv-button.js +1 -1
- package/dist/components/nv-buttongroup.js +1 -1
- package/dist/components/nv-calendar.js +1 -1
- package/dist/components/nv-col.js +1 -1
- package/dist/components/nv-datagrid.js +1 -1
- package/dist/components/nv-datagridcolumn.js +1 -1
- package/dist/components/nv-datetest.d.ts +11 -0
- package/dist/components/nv-datetest.js +1 -0
- package/dist/components/nv-datetimetest.d.ts +11 -0
- package/dist/components/nv-datetimetest.js +1 -0
- package/dist/components/nv-dialog.js +1 -1
- package/dist/components/nv-dialogfooter.js +1 -1
- package/dist/components/nv-dialogheader.js +1 -1
- package/dist/components/nv-drawer.js +1 -1
- package/dist/components/nv-drawerfooter.js +1 -1
- package/dist/components/nv-drawerheader.js +1 -1
- package/dist/components/nv-fieldcheckbox.js +1 -1
- package/dist/components/nv-fielddate.js +1 -1
- package/dist/components/nv-fielddaterange.js +1 -1
- package/dist/components/nv-fielddropdown.js +1 -1
- package/dist/components/nv-fielddropdownitem.js +1 -1
- package/dist/components/nv-fielddropdownitemcheck.js +1 -1
- package/dist/components/nv-fieldmultiselect.js +1 -1
- package/dist/components/nv-fieldnumber.js +1 -1
- package/dist/components/nv-fieldpassword.js +1 -1
- package/dist/components/nv-fieldradio.js +1 -1
- package/dist/components/nv-fieldselect.js +1 -1
- package/dist/components/nv-fieldslider.js +1 -1
- package/dist/components/nv-fieldtext.js +1 -1
- package/dist/components/nv-fieldtextarea.js +1 -1
- package/dist/components/nv-fieldtime.js +1 -1
- package/dist/components/nv-icon.js +1 -1
- package/dist/components/nv-iconbutton.js +1 -1
- package/dist/components/nv-loader.js +1 -1
- package/dist/components/nv-menu.js +1 -1
- package/dist/components/nv-menuitem.js +1 -1
- package/dist/components/nv-notification-bullet.js +1 -1
- package/dist/components/nv-notification.js +1 -1
- package/dist/components/nv-notificationcontainer.js +1 -1
- package/dist/components/nv-pagination-nav.d.ts +11 -0
- package/dist/components/nv-pagination-nav.js +1 -0
- package/dist/components/nv-paginationtable.js +1 -1
- package/dist/components/nv-popover.js +1 -1
- package/dist/components/nv-row.js +1 -1
- package/dist/components/nv-sidebar.js +1 -1
- package/dist/components/nv-sidebarcontent.js +1 -1
- package/dist/components/nv-sidebardivider.js +1 -1
- package/dist/components/nv-sidebarfooter.js +1 -1
- package/dist/components/nv-sidebargroup.js +1 -1
- package/dist/components/nv-sidebarheader.js +1 -1
- package/dist/components/nv-sidebarlogo.js +1 -1
- package/dist/components/nv-sidebarnavitem.js +1 -1
- package/dist/components/nv-sidebarnavsubitem.js +1 -1
- package/dist/components/nv-split.js +1 -1
- package/dist/components/nv-stack.js +1 -1
- package/dist/components/nv-table.js +1 -1
- package/dist/components/nv-tableheader.js +1 -1
- package/dist/components/nv-timetest.d.ts +11 -0
- package/dist/components/nv-timetest.js +1 -0
- package/dist/components/nv-toggle.js +1 -1
- package/dist/components/nv-togglebutton.js +1 -1
- package/dist/components/nv-togglebuttongroup.js +1 -1
- package/dist/components/nv-tooltip.js +1 -1
- package/dist/components/{p-iXsbKJzR.js → p-6nAIGZFL.js} +1 -1
- package/dist/components/{p-yHGZRC6Q.js → p-BwYt1BAb.js} +1 -1
- package/dist/components/{p-C9p4yTS2.js → p-C5J7jtrC.js} +1 -1
- package/dist/components/{p-CEI7jWvn.js → p-CAGzfU3O.js} +1 -1
- package/dist/components/{p-B5KLppep.js → p-CKFXHAaU.js} +1 -1
- package/dist/components/{p-DHNSuxz-.js → p-CLzCfsnq.js} +1 -1
- package/dist/components/{p-Bh6WGsHA.js → p-CnkB4kvn.js} +1 -1
- package/dist/components/{p-DDqZBSGn.js → p-Co8IghI-.js} +1 -1
- package/dist/components/p-CrRawrjU.js +1 -0
- package/dist/components/p-CyL2J6O4.js +74 -0
- package/dist/components/{p-Ce1IBFTa.js → p-D2C_Qr5O.js} +1 -1
- package/dist/components/{p-CAKTe96z.js → p-DE792Sds.js} +1 -1
- package/dist/components/{p-RUeDcouW.js → p-DGj-fiRX.js} +1 -1
- package/dist/components/{p-C2J7j_fw.js → p-DUaenjr8.js} +1 -1
- package/dist/components/{p-laRga5dw.js → p-DVFofrTe.js} +1 -1
- package/dist/components/{p-BfaMgLx7.js → p-DlOgBZa8.js} +2 -2
- package/dist/components/{p-BAlaMmS4.js → p-Du3Fh0jQ.js} +1 -1
- package/dist/components/p-DwtLxfU5.js +1 -0
- package/dist/components/{p-DhDxhFz-.js → p-VXpV-BUK.js} +1 -1
- package/dist/components/{p-CZcMM7Lh.js → p-f8OUzde-.js} +1 -1
- package/dist/components/{p-DqU-wS_x.js → p-h3cPA0Cx.js} +1 -1
- package/dist/components/p-nzxGC8BS.js +1 -0
- package/dist/components/p-qkNH2RHl.js +1 -0
- package/dist/components/{p-nmQOuX7R.js → p-xrXEz2WP.js} +1 -1
- package/dist/esm/{index-S-IZ4AN_.js → index-BCjiE1MF.js} +17 -1
- package/dist/esm/index.js +5 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/native.js +3 -3
- package/dist/esm/nova-datetime-CyL2J6O4.js +10636 -0
- package/dist/esm/nv-accordion-item.entry.js +1 -1
- package/dist/esm/nv-accordion.entry.js +1 -1
- package/dist/esm/nv-alert.entry.js +1 -1
- package/dist/esm/nv-avatar.entry.js +1 -1
- package/dist/esm/nv-badge_2.entry.js +2 -2
- package/dist/esm/nv-breadcrumb.entry.js +1 -1
- package/dist/esm/nv-breadcrumbs.entry.js +1 -1
- package/dist/esm/nv-button.entry.js +1 -1
- package/dist/esm/nv-buttongroup.entry.js +1 -1
- package/dist/esm/nv-calendar.entry.js +1 -1
- package/dist/esm/nv-col.entry.js +1 -1
- package/dist/esm/nv-datagrid.entry.js +1 -1
- package/dist/esm/nv-datagridcolumn.entry.js +1 -1
- package/dist/esm/nv-datetest.entry.js +64 -0
- package/dist/esm/nv-datetimetest.entry.js +52 -0
- package/dist/esm/nv-dialog.entry.js +16 -3
- package/dist/esm/nv-dialogfooter_2.entry.js +3 -3
- package/dist/esm/nv-drawer.entry.js +2 -2
- package/dist/esm/nv-drawerfooter_2.entry.js +3 -3
- package/dist/esm/nv-fieldcheckbox.entry.js +5 -5
- package/dist/esm/nv-fielddate.entry.js +7 -7
- package/dist/esm/nv-fielddaterange.entry.js +7 -7
- package/dist/esm/nv-fielddropdown.entry.js +5 -5
- package/dist/esm/nv-fielddropdownitem.entry.js +2 -2
- package/dist/esm/nv-fieldmultiselect.entry.js +1 -1
- package/dist/esm/nv-fieldnumber.entry.js +5 -5
- package/dist/esm/nv-fieldpassword.entry.js +5 -5
- package/dist/esm/nv-fieldradio.entry.js +4 -4
- package/dist/esm/nv-fieldselect.entry.js +6 -6
- package/dist/esm/nv-fieldslider.entry.js +4 -4
- package/dist/esm/nv-fieldtext.entry.js +5 -5
- package/dist/esm/nv-fieldtextarea.entry.js +4 -4
- package/dist/esm/nv-fieldtime.entry.js +4 -4
- package/dist/esm/nv-icon.entry.js +3 -3
- package/dist/esm/nv-iconbutton_2.entry.js +3 -3
- package/dist/esm/nv-menu.entry.js +2 -2
- package/dist/esm/nv-menuitem.entry.js +2 -2
- package/dist/esm/nv-notification-bullet.entry.js +1 -1
- package/dist/esm/nv-notification.entry.js +2 -2
- package/dist/esm/nv-notificationcontainer.entry.js +2 -14
- package/dist/esm/nv-pagination-nav.entry.js +196 -0
- package/dist/esm/nv-paginationtable.entry.js +2 -2
- package/dist/esm/nv-popover.entry.js +2 -2
- package/dist/esm/nv-row.entry.js +2 -2
- package/dist/esm/nv-sidebar.entry.js +2 -2
- package/dist/esm/nv-sidebarcontent.entry.js +2 -2
- package/dist/esm/nv-sidebardivider.entry.js +2 -2
- package/dist/esm/nv-sidebarfooter.entry.js +2 -2
- package/dist/esm/nv-sidebargroup.entry.js +2 -2
- package/dist/esm/nv-sidebarheader.entry.js +2 -2
- package/dist/esm/nv-sidebarlogo.entry.js +2 -2
- package/dist/esm/nv-sidebarnavitem.entry.js +12 -5
- package/dist/esm/nv-sidebarnavsubitem.entry.js +2 -2
- package/dist/esm/nv-split.entry.js +2 -2
- package/dist/esm/nv-stack.entry.js +2 -2
- package/dist/esm/nv-table.entry.js +2 -2
- package/dist/esm/nv-tableheader.entry.js +2 -2
- package/dist/esm/nv-timetest.entry.js +70 -0
- package/dist/esm/nv-toggle.entry.js +3 -3
- package/dist/esm/nv-togglebutton.entry.js +2 -2
- package/dist/esm/nv-togglebuttongroup.entry.js +2 -2
- package/dist/esm/nv-tooltip.entry.js +9 -4
- package/dist/lib/generators/docs-blazor.js +4 -1
- package/dist/lib/utils/parseToCSharpTypes.js +114 -18
- package/dist/lib/utils/test/parseToCSharpTypes.test.js +95 -1
- package/dist/native/index.esm.js +1 -1
- package/dist/native/native.css +1 -1
- package/dist/native/native.esm.js +1 -1
- package/dist/native/{p-a8bc3b92.entry.js → p-05f7bad5.entry.js} +1 -1
- package/dist/native/{p-043d500e.entry.js → p-083b39c5.entry.js} +1 -1
- package/dist/native/{p-3fb1a188.entry.js → p-0bb64497.entry.js} +1 -1
- package/dist/native/{p-1bf1a213.entry.js → p-0fe84123.entry.js} +1 -1
- package/dist/native/p-1029a266.entry.js +1 -0
- package/dist/native/p-12a8443b.entry.js +1 -0
- package/dist/native/{p-bdaab534.entry.js → p-148c1d3e.entry.js} +1 -1
- package/dist/native/{p-79d8c26b.entry.js → p-1d7a27bb.entry.js} +1 -1
- package/dist/native/{p-11eb959b.entry.js → p-1e03fc3c.entry.js} +1 -1
- package/dist/native/{p-f22d2ad9.entry.js → p-213c5836.entry.js} +1 -1
- package/dist/native/{p-d46ea49a.entry.js → p-25ef7329.entry.js} +1 -1
- package/dist/native/p-291b297d.entry.js +1 -0
- package/dist/native/{p-e937d495.entry.js → p-2af6d988.entry.js} +1 -1
- package/dist/native/{p-89f7d483.entry.js → p-343c04db.entry.js} +1 -1
- package/dist/native/{p-7a8e2ef3.entry.js → p-37c41059.entry.js} +1 -1
- package/dist/native/{p-a92e2ad8.entry.js → p-3c4114b8.entry.js} +1 -1
- package/dist/native/{p-31301f1e.entry.js → p-46267895.entry.js} +1 -1
- package/dist/native/p-493c1bb5.entry.js +1 -0
- package/dist/native/{p-70abbe4f.entry.js → p-4ac8181c.entry.js} +1 -1
- package/dist/native/{p-04956305.entry.js → p-4bf96114.entry.js} +1 -1
- package/dist/native/p-544b34d4.entry.js +1 -0
- package/dist/native/{p-0ec34d19.entry.js → p-58966e0f.entry.js} +1 -1
- package/dist/native/{p-e1021e2c.entry.js → p-5c003e50.entry.js} +1 -1
- package/dist/native/{p-1dd3da3b.entry.js → p-5ce3d30b.entry.js} +1 -1
- package/dist/native/p-5ea697a7.entry.js +1 -0
- package/dist/native/{p-3a04a563.entry.js → p-5ef0ed10.entry.js} +1 -1
- package/dist/native/{p-0e8b544b.entry.js → p-63f2f87f.entry.js} +1 -1
- package/dist/native/{p-6a9363a6.entry.js → p-644ecff8.entry.js} +1 -1
- package/dist/native/{p-5cbf5973.entry.js → p-67e0680e.entry.js} +1 -1
- package/dist/native/{p-bd143e7b.entry.js → p-6d8d2088.entry.js} +1 -1
- package/dist/native/{p-a9a20f37.entry.js → p-72d8cb56.entry.js} +1 -1
- package/dist/native/p-75a2a2ac.entry.js +1 -0
- package/dist/native/{p-bdbc92d9.entry.js → p-767ee0fc.entry.js} +1 -1
- package/dist/native/{p-8ce17efd.entry.js → p-7aa4605d.entry.js} +1 -1
- package/dist/native/{p-0819a7b1.entry.js → p-7c00f6da.entry.js} +1 -1
- package/dist/native/p-7d164a7a.entry.js +1 -0
- package/dist/native/{p-06a17aba.entry.js → p-7ec28d5d.entry.js} +1 -1
- package/dist/native/{p-dc0d1690.entry.js → p-89348af5.entry.js} +1 -1
- package/dist/native/p-8e1bcadc.entry.js +1 -0
- package/dist/native/{p-b0d97496.entry.js → p-90b8b889.entry.js} +1 -1
- package/dist/native/{p-945ca1db.entry.js → p-95a9d385.entry.js} +1 -1
- package/dist/native/{p-a9a07a8d.entry.js → p-9709c7d5.entry.js} +1 -1
- package/dist/native/p-9fc95cf3.entry.js +1 -0
- package/dist/native/{p-S-IZ4AN_.js → p-BCjiE1MF.js} +1 -1
- package/dist/native/p-CyL2J6O4.js +74 -0
- package/dist/native/{p-aa232a20.entry.js → p-a16f8a14.entry.js} +1 -1
- package/dist/native/p-ac765e6a.entry.js +1 -0
- package/dist/native/p-b3477504.entry.js +1 -0
- package/dist/native/{p-c3ea1eca.entry.js → p-c2c826a4.entry.js} +1 -1
- package/dist/native/p-c56ffa82.entry.js +1 -0
- package/dist/native/{p-6b655545.entry.js → p-c5d97054.entry.js} +1 -1
- package/dist/native/{p-48e7b457.entry.js → p-cfa0eb58.entry.js} +1 -1
- package/dist/native/p-d3e66306.entry.js +1 -0
- package/dist/native/p-d5f5a6e1.entry.js +1 -0
- package/dist/native/{p-702a6646.entry.js → p-d8120afd.entry.js} +1 -1
- package/dist/native/p-dc2ce8ee.entry.js +1 -0
- package/dist/native/{p-85c8be32.entry.js → p-e3fb16af.entry.js} +1 -1
- package/dist/native/{p-7c413f8b.entry.js → p-e46c35a0.entry.js} +1 -1
- package/dist/native/{p-e05b6008.entry.js → p-ec23ce93.entry.js} +1 -1
- package/dist/native/{p-bef3d325.entry.js → p-f7522dac.entry.js} +1 -1
- package/dist/native/{p-64104dbd.entry.js → p-f9612edf.entry.js} +1 -1
- package/dist/native/{p-fba55e2f.entry.js → p-fab2f2b3.entry.js} +1 -1
- package/dist/native/{p-2106dfbd.entry.js → p-fb34fc7d.entry.js} +1 -1
- package/dist/native/{p-98ea927d.entry.js → p-fd5e27ae.entry.js} +1 -1
- package/dist/types/components/nv-datetest/nv-datetest.d.ts +48 -0
- package/dist/types/components/nv-datetest/nv-datetest.docs.d.ts +4 -0
- package/dist/types/components/nv-datetimetest/nv-datetimetest.d.ts +44 -0
- package/dist/types/components/nv-datetimetest/nv-datetimetest.docs.d.ts +4 -0
- package/dist/types/components/nv-dialog/nv-dialog.d.ts +9 -0
- package/dist/types/components/nv-icon/nv-icons.d.ts +1 -1
- package/dist/types/components/nv-notificationcontainer/nv-notificationcontainer.d.ts +0 -6
- package/dist/types/components/nv-pagination-nav/nv-pagination-nav.d.ts +82 -0
- package/dist/types/components/nv-pagination-nav/nv-pagination-nav.docs.d.ts +4 -0
- package/dist/types/components/nv-pagination-nav/nv-pagination-nav.utils.d.ts +26 -0
- package/dist/types/components/nv-pagination-nav/test/nv-pagination-nav.utils.test.d.ts +1 -0
- package/dist/types/components/nv-sidebarlogo/nv-sidebarlogo.d.ts +2 -0
- package/dist/types/components/nv-timetest/nv-timetest.d.ts +48 -0
- package/dist/types/components/nv-timetest/nv-timetest.docs.d.ts +4 -0
- package/dist/types/components.d.ts +421 -15
- package/dist/types/index.d.ts +2 -0
- package/dist/types/interfaces/dates.d.ts +8 -0
- package/dist/types/nova-docs.d.ts +8 -0
- package/dist/types/utils/nova-datetime.d.ts +79 -0
- package/dist/types/utils/test/nova-datetime.test.d.ts +1 -0
- package/dist/vscode-data.json +107 -0
- package/hydrate/index.js +11096 -107
- package/hydrate/index.mjs +11096 -107
- package/package.json +18 -1
- package/dist/components/p-BPufjY85.js +0 -1
- package/dist/components/p-D15RdWEG.js +0 -1
- package/dist/components/p-FSPz8FER.js +0 -1
- package/dist/components/p-jZF_Ggmx.js +0 -1
- package/dist/native/p-0bfd188c.entry.js +0 -1
- package/dist/native/p-17f2525a.entry.js +0 -1
- package/dist/native/p-1a5db5e9.entry.js +0 -1
- package/dist/native/p-87a1b06c.entry.js +0 -1
- package/dist/native/p-8dadc0c9.entry.js +0 -1
- package/dist/native/p-97a5f8d5.entry.js +0 -1
- package/dist/native/p-ae4fc02a.entry.js +0 -1
- package/dist/native/p-c825c542.entry.js +0 -1
- package/dist/native/p-ce2c17dc.entry.js +0 -1
- package/dist/native/p-f2a32774.entry.js +0 -1
- package/dist/native/p-f5eff2b2.entry.js +0 -1
- package/dist/native/p-f64f1bea.entry.js +0 -1
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
import { nameof } from "../../utils/class.utils";
|
|
3
|
+
const NvPaginationNavDocs = {
|
|
4
|
+
component: 'nv-pagination-nav',
|
|
5
|
+
subcomponents: ['nv-button', 'nv-iconbutton', 'nv-icon'],
|
|
6
|
+
badge: 'beta',
|
|
7
|
+
stories: [
|
|
8
|
+
// Default
|
|
9
|
+
{
|
|
10
|
+
name: 'Default',
|
|
11
|
+
description: 'Basic pagination navigation with default settings. Shows a sliding window of page numbers with Previous/Next buttons. The component automatically handles button states and provides a clean, accessible navigation experience.',
|
|
12
|
+
args: {
|
|
13
|
+
currentPage: 1,
|
|
14
|
+
totalCount: 100,
|
|
15
|
+
pageSize: 10,
|
|
16
|
+
previousButtonLabel: 'Previous',
|
|
17
|
+
nextButtonLabel: 'Next',
|
|
18
|
+
},
|
|
19
|
+
template: h("nv-pagination-nav", { "data-storybook-args": true }),
|
|
20
|
+
},
|
|
21
|
+
// currentPage
|
|
22
|
+
{
|
|
23
|
+
name: nameof(x => x.currentPage),
|
|
24
|
+
description: 'The currently active page number (1-based index). The active page is visually highlighted with an active state. Use this prop to control which page is selected, typically bound to your application state.',
|
|
25
|
+
args: {
|
|
26
|
+
currentPage: 5,
|
|
27
|
+
totalCount: 100,
|
|
28
|
+
pageSize: 10,
|
|
29
|
+
},
|
|
30
|
+
template: h("nv-pagination-nav", { "data-storybook-args": true }),
|
|
31
|
+
},
|
|
32
|
+
// totalCount
|
|
33
|
+
{
|
|
34
|
+
name: nameof(x => x.totalCount),
|
|
35
|
+
description: 'Total number of items to paginate. Works with pageSize to calculate the total number of pages (totalCount / pageSize). In this example: 250 items ÷ 10 per page = 25 pages.',
|
|
36
|
+
args: {
|
|
37
|
+
currentPage: 1,
|
|
38
|
+
totalCount: 250,
|
|
39
|
+
pageSize: 10,
|
|
40
|
+
},
|
|
41
|
+
template: h("nv-pagination-nav", { "data-storybook-args": true }),
|
|
42
|
+
},
|
|
43
|
+
// pageSize
|
|
44
|
+
{
|
|
45
|
+
name: nameof(x => x.pageSize),
|
|
46
|
+
description: 'Number of items per page. Works with totalCount to determine total pages. Smaller values create more pages. In this example: 100 items ÷ 25 per page = 4 pages.',
|
|
47
|
+
args: {
|
|
48
|
+
currentPage: 1,
|
|
49
|
+
totalCount: 100,
|
|
50
|
+
pageSize: 25,
|
|
51
|
+
},
|
|
52
|
+
template: h("nv-pagination-nav", { "data-storybook-args": true }),
|
|
53
|
+
},
|
|
54
|
+
// previousButtonLabel
|
|
55
|
+
{
|
|
56
|
+
name: nameof(x => x.previousButtonLabel),
|
|
57
|
+
description: 'Customize the label for the previous navigation button. Use this for internationalization (i18n) to display text in different languages. Default is "Previous".',
|
|
58
|
+
args: {
|
|
59
|
+
currentPage: 5,
|
|
60
|
+
totalCount: 100,
|
|
61
|
+
pageSize: 10,
|
|
62
|
+
previousButtonLabel: 'Précédent',
|
|
63
|
+
nextButtonLabel: 'Suivant',
|
|
64
|
+
},
|
|
65
|
+
template: h("nv-pagination-nav", { "data-storybook-args": true }),
|
|
66
|
+
},
|
|
67
|
+
// nextButtonLabel
|
|
68
|
+
{
|
|
69
|
+
name: nameof(x => x.nextButtonLabel),
|
|
70
|
+
description: 'Customize the label for the next navigation button. Use this for internationalization (i18n) to display text in different languages. Default is "Next".',
|
|
71
|
+
args: {
|
|
72
|
+
currentPage: 5,
|
|
73
|
+
totalCount: 100,
|
|
74
|
+
pageSize: 10,
|
|
75
|
+
previousButtonLabel: 'Zurück',
|
|
76
|
+
nextButtonLabel: 'Weiter',
|
|
77
|
+
},
|
|
78
|
+
template: h("nv-pagination-nav", { "data-storybook-args": true }),
|
|
79
|
+
},
|
|
80
|
+
// numStartZoneButtons
|
|
81
|
+
{
|
|
82
|
+
name: nameof(x => x.numStartZoneButtons),
|
|
83
|
+
description: 'Number of page buttons to show at the start of the pagination. Combined with numEndZoneButtons, this determines the total number of visible page buttons (default: 2). Increasing this value shows more pages at the beginning.',
|
|
84
|
+
args: {
|
|
85
|
+
currentPage: 10,
|
|
86
|
+
totalCount: 200,
|
|
87
|
+
pageSize: 10,
|
|
88
|
+
numStartZoneButtons: 3,
|
|
89
|
+
numEndZoneButtons: 2,
|
|
90
|
+
numMiddleButtons: 3,
|
|
91
|
+
},
|
|
92
|
+
template: h("nv-pagination-nav", { "data-storybook-args": true }),
|
|
93
|
+
},
|
|
94
|
+
// numEndZoneButtons
|
|
95
|
+
{
|
|
96
|
+
name: nameof(x => x.numEndZoneButtons),
|
|
97
|
+
description: 'Number of page buttons to show at the end of the pagination. Combined with numStartZoneButtons, this determines the total number of visible page buttons (default: 2). Increasing this value shows more pages at the end.',
|
|
98
|
+
args: {
|
|
99
|
+
currentPage: 10,
|
|
100
|
+
totalCount: 200,
|
|
101
|
+
pageSize: 10,
|
|
102
|
+
numStartZoneButtons: 2,
|
|
103
|
+
numEndZoneButtons: 3,
|
|
104
|
+
numMiddleButtons: 3,
|
|
105
|
+
},
|
|
106
|
+
template: h("nv-pagination-nav", { "data-storybook-args": true }),
|
|
107
|
+
},
|
|
108
|
+
// numMiddleButtons
|
|
109
|
+
{
|
|
110
|
+
name: nameof(x => x.numMiddleButtons),
|
|
111
|
+
description: 'Number of page buttons to show in the middle zone around the current page (only used when showMiddleZone is true)',
|
|
112
|
+
args: {
|
|
113
|
+
currentPage: 10,
|
|
114
|
+
totalCount: 200,
|
|
115
|
+
pageSize: 10,
|
|
116
|
+
numStartZoneButtons: 2,
|
|
117
|
+
numEndZoneButtons: 2,
|
|
118
|
+
numMiddleButtons: 5,
|
|
119
|
+
showMiddleZone: true,
|
|
120
|
+
},
|
|
121
|
+
template: h("nv-pagination-nav", { "data-storybook-args": true }),
|
|
122
|
+
},
|
|
123
|
+
// isOnlyIcon
|
|
124
|
+
{
|
|
125
|
+
name: nameof(x => x.isOnlyIcon),
|
|
126
|
+
description: 'Display Previous/Next navigation buttons as icon buttons for a more compact layout. Page number buttons always use regular buttons.',
|
|
127
|
+
args: {
|
|
128
|
+
currentPage: 5,
|
|
129
|
+
totalCount: 100,
|
|
130
|
+
pageSize: 10,
|
|
131
|
+
isOnlyIcon: true,
|
|
132
|
+
},
|
|
133
|
+
template: h("nv-pagination-nav", { "data-storybook-args": true }),
|
|
134
|
+
},
|
|
135
|
+
// showMiddleZone
|
|
136
|
+
{
|
|
137
|
+
name: nameof(x => x.showMiddleZone),
|
|
138
|
+
description: 'When true, shows a middle zone with the current page and two ellipses. When false (default), uses a sliding window that keeps a constant number of buttons while ensuring the current page is always visible.',
|
|
139
|
+
args: {
|
|
140
|
+
currentPage: 15,
|
|
141
|
+
totalCount: 500,
|
|
142
|
+
pageSize: 10,
|
|
143
|
+
showMiddleZone: true,
|
|
144
|
+
numMiddleButtons: 3,
|
|
145
|
+
},
|
|
146
|
+
template: h("nv-pagination-nav", { "data-storybook-args": true }),
|
|
147
|
+
},
|
|
148
|
+
// SlidingWindow
|
|
149
|
+
{
|
|
150
|
+
name: 'SlidingWindow',
|
|
151
|
+
description: 'Default behavior with sliding window (showMiddleZone=false). The pagination window slides to keep the current page visible while maintaining a constant number of buttons.',
|
|
152
|
+
args: {
|
|
153
|
+
currentPage: 15,
|
|
154
|
+
totalCount: 500,
|
|
155
|
+
pageSize: 10,
|
|
156
|
+
showMiddleZone: false,
|
|
157
|
+
},
|
|
158
|
+
template: h("nv-pagination-nav", { "data-storybook-args": true }),
|
|
159
|
+
},
|
|
160
|
+
// ManyPages
|
|
161
|
+
{
|
|
162
|
+
name: 'ManyPages',
|
|
163
|
+
description: 'Pagination with many pages showing the sliding window behavior (default). The window slides to include the current page while keeping a constant number of buttons.',
|
|
164
|
+
args: {
|
|
165
|
+
currentPage: 15,
|
|
166
|
+
totalCount: 500,
|
|
167
|
+
pageSize: 10,
|
|
168
|
+
},
|
|
169
|
+
template: h("nv-pagination-nav", { "data-storybook-args": true }),
|
|
170
|
+
},
|
|
171
|
+
// FewPages
|
|
172
|
+
{
|
|
173
|
+
name: 'FewPages',
|
|
174
|
+
description: 'When the total number of pages is small (4 pages or fewer), all page numbers are displayed without ellipses. This provides direct access to all pages without any truncation.',
|
|
175
|
+
args: {
|
|
176
|
+
currentPage: 2,
|
|
177
|
+
totalCount: 35,
|
|
178
|
+
pageSize: 10,
|
|
179
|
+
},
|
|
180
|
+
template: h("nv-pagination-nav", { "data-storybook-args": true }),
|
|
181
|
+
},
|
|
182
|
+
// FirstPage
|
|
183
|
+
{
|
|
184
|
+
name: 'FirstPage',
|
|
185
|
+
description: 'Edge case demonstrating the first page state. The Previous button is automatically disabled to prevent navigation beyond the first page, providing a clear visual indicator that users are at the start.',
|
|
186
|
+
args: {
|
|
187
|
+
currentPage: 1,
|
|
188
|
+
totalCount: 100,
|
|
189
|
+
pageSize: 10,
|
|
190
|
+
},
|
|
191
|
+
template: h("nv-pagination-nav", { "data-storybook-args": true }),
|
|
192
|
+
},
|
|
193
|
+
// LastPage
|
|
194
|
+
{
|
|
195
|
+
name: 'LastPage',
|
|
196
|
+
description: 'Edge case demonstrating the last page state. The Next button is automatically disabled to prevent navigation beyond the last page, providing a clear visual indicator that users are at the end.',
|
|
197
|
+
args: {
|
|
198
|
+
currentPage: 10,
|
|
199
|
+
totalCount: 100,
|
|
200
|
+
pageSize: 10,
|
|
201
|
+
},
|
|
202
|
+
template: h("nv-pagination-nav", { "data-storybook-args": true }),
|
|
203
|
+
},
|
|
204
|
+
// SinglePage
|
|
205
|
+
{
|
|
206
|
+
name: 'SinglePage',
|
|
207
|
+
description: 'Edge case with only one page of data. Both Previous and Next buttons are disabled since there are no other pages to navigate to. This is common when filtering reduces results to a single page.',
|
|
208
|
+
args: {
|
|
209
|
+
currentPage: 1,
|
|
210
|
+
totalCount: 8,
|
|
211
|
+
pageSize: 10,
|
|
212
|
+
},
|
|
213
|
+
template: h("nv-pagination-nav", { "data-storybook-args": true }),
|
|
214
|
+
},
|
|
215
|
+
// CustomZones
|
|
216
|
+
{
|
|
217
|
+
name: 'CustomZones',
|
|
218
|
+
description: 'Advanced example with minimal zone configuration (1 start + 1 end button). This creates a very compact pagination display, showing only 2 page buttons at a time plus the current page when sliding. Useful for space-constrained layouts.',
|
|
219
|
+
args: {
|
|
220
|
+
currentPage: 12,
|
|
221
|
+
totalCount: 300,
|
|
222
|
+
pageSize: 10,
|
|
223
|
+
numStartZoneButtons: 1,
|
|
224
|
+
numEndZoneButtons: 1,
|
|
225
|
+
numMiddleButtons: 5,
|
|
226
|
+
},
|
|
227
|
+
template: h("nv-pagination-nav", { "data-storybook-args": true }),
|
|
228
|
+
},
|
|
229
|
+
// LargeDataset
|
|
230
|
+
{
|
|
231
|
+
name: 'LargeDataset',
|
|
232
|
+
description: 'Demonstrates pagination with a very large dataset (10,000 items across 100 pages). The sliding window behavior efficiently handles large page counts by showing only a small, constant number of page buttons while maintaining easy navigation.',
|
|
233
|
+
args: {
|
|
234
|
+
currentPage: 50,
|
|
235
|
+
totalCount: 10000,
|
|
236
|
+
pageSize: 100,
|
|
237
|
+
},
|
|
238
|
+
template: h("nv-pagination-nav", { "data-storybook-args": true }),
|
|
239
|
+
},
|
|
240
|
+
// SmallPageSize
|
|
241
|
+
{
|
|
242
|
+
name: 'SmallPageSize',
|
|
243
|
+
description: 'Shows how a smaller page size creates more pages from the same dataset. 100 items with 5 per page creates 20 pages instead of 10. Useful for scenarios where you want to display fewer items at once (mobile views, detailed cards, etc.).',
|
|
244
|
+
args: {
|
|
245
|
+
currentPage: 5,
|
|
246
|
+
totalCount: 100,
|
|
247
|
+
pageSize: 5,
|
|
248
|
+
},
|
|
249
|
+
template: h("nv-pagination-nav", { "data-storybook-args": true }),
|
|
250
|
+
},
|
|
251
|
+
// Internationalization
|
|
252
|
+
{
|
|
253
|
+
name: 'Internationalization',
|
|
254
|
+
description: 'Complete example showing how to localize the pagination component for different languages. Use previousButtonLabel and nextButtonLabel props to translate the navigation buttons. This example uses French labels.',
|
|
255
|
+
args: {
|
|
256
|
+
currentPage: 5,
|
|
257
|
+
totalCount: 100,
|
|
258
|
+
pageSize: 10,
|
|
259
|
+
previousButtonLabel: 'Précédent',
|
|
260
|
+
nextButtonLabel: 'Suivant',
|
|
261
|
+
},
|
|
262
|
+
template: h("nv-pagination-nav", { "data-storybook-args": true }),
|
|
263
|
+
},
|
|
264
|
+
// IconButtonMode
|
|
265
|
+
{
|
|
266
|
+
name: 'IconButtonMode',
|
|
267
|
+
description: 'Compact navigation with Previous/Next as icon buttons. Page numbers remain as regular buttons for readability.',
|
|
268
|
+
args: {
|
|
269
|
+
currentPage: 5,
|
|
270
|
+
totalCount: 100,
|
|
271
|
+
pageSize: 10,
|
|
272
|
+
isOnlyIcon: true,
|
|
273
|
+
},
|
|
274
|
+
template: h("nv-pagination-nav", { "data-storybook-args": true }),
|
|
275
|
+
},
|
|
276
|
+
],
|
|
277
|
+
};
|
|
278
|
+
export default NvPaginationNavDocs;
|
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
import { Host, h, } from "@stencil/core";
|
|
2
|
+
import { calculatePaginationRange } from "./nv-pagination-nav.utils";
|
|
3
|
+
/**
|
|
4
|
+
* A pagination navigation component that displays page numbers with Previous/Next controls.
|
|
5
|
+
* Use the isOnlyIcon prop to display Previous/Next as icon buttons for compact layouts.
|
|
6
|
+
*/
|
|
7
|
+
export class NvPaginationNav {
|
|
8
|
+
constructor() {
|
|
9
|
+
/****************************************************************************/
|
|
10
|
+
//#region PROPERTIES
|
|
11
|
+
/**
|
|
12
|
+
* Label for the previous button.
|
|
13
|
+
*/
|
|
14
|
+
this.previousButtonLabel = 'Previous';
|
|
15
|
+
/**
|
|
16
|
+
* Label for the next button.
|
|
17
|
+
*/
|
|
18
|
+
this.nextButtonLabel = 'Next';
|
|
19
|
+
/**
|
|
20
|
+
* Number of page buttons to show at the start of the pagination range.
|
|
21
|
+
*/
|
|
22
|
+
this.numStartZoneButtons = 2;
|
|
23
|
+
/**
|
|
24
|
+
* Number of page buttons to show at the end of the pagination range.
|
|
25
|
+
*/
|
|
26
|
+
this.numEndZoneButtons = 2;
|
|
27
|
+
/**
|
|
28
|
+
* Number of page buttons to show in the middle zone around the current page.
|
|
29
|
+
*/
|
|
30
|
+
this.numMiddleButtons = 1;
|
|
31
|
+
/**
|
|
32
|
+
* Current page number (1-based index).
|
|
33
|
+
*/
|
|
34
|
+
this.currentPage = 1;
|
|
35
|
+
/**
|
|
36
|
+
* Total number of items to paginate.
|
|
37
|
+
*/
|
|
38
|
+
this.totalCount = 100;
|
|
39
|
+
/**
|
|
40
|
+
* Number of items per page.
|
|
41
|
+
*/
|
|
42
|
+
this.pageSize = 10;
|
|
43
|
+
/**
|
|
44
|
+
* If true, the Previous/Next navigation buttons will be displayed as icon buttons.
|
|
45
|
+
* Page number buttons always use regular buttons.
|
|
46
|
+
*/
|
|
47
|
+
this.isOnlyIcon = false;
|
|
48
|
+
/**
|
|
49
|
+
* If true, shows the middle zone with the current page when it's not in start/end zones.
|
|
50
|
+
* If false (default), only shows one ellipsis between start and end zones (simpler pagination).
|
|
51
|
+
*/
|
|
52
|
+
this.showMiddleZone = false;
|
|
53
|
+
/**
|
|
54
|
+
* Handles page change events.
|
|
55
|
+
* @param {number} pageNumber The page number to navigate to.
|
|
56
|
+
*/
|
|
57
|
+
this.handlePageChange = (pageNumber) => {
|
|
58
|
+
if (pageNumber < 1 ||
|
|
59
|
+
pageNumber > this.totalPages ||
|
|
60
|
+
pageNumber === this.currentPage) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
this.currentPage = pageNumber;
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//#endregion PROPERTIES
|
|
67
|
+
/****************************************************************************/
|
|
68
|
+
//#region METHODS
|
|
69
|
+
/**
|
|
70
|
+
* Calculates the total number of pages based on totalCount and pageSize.
|
|
71
|
+
* @returns {number} The total number of pages.
|
|
72
|
+
*/
|
|
73
|
+
get totalPages() {
|
|
74
|
+
return Math.ceil(this.totalCount / this.pageSize);
|
|
75
|
+
}
|
|
76
|
+
//#endregion METHODS
|
|
77
|
+
/****************************************************************************/
|
|
78
|
+
//#region WATCHERS
|
|
79
|
+
/**
|
|
80
|
+
* Watches for changes to currentPage and emits the currentPageChanged event.
|
|
81
|
+
* @param {number} newValue The new current page value.
|
|
82
|
+
*/
|
|
83
|
+
onCurrentPageChange(newValue) {
|
|
84
|
+
// Validate and constrain currentPage
|
|
85
|
+
const constrainedValue = Math.max(1, Math.min(newValue, this.totalPages));
|
|
86
|
+
if (constrainedValue !== newValue) {
|
|
87
|
+
this.currentPage = constrainedValue;
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
this.currentPageChanged.emit(newValue);
|
|
91
|
+
}
|
|
92
|
+
//#endregion EVENTS
|
|
93
|
+
/****************************************************************************/
|
|
94
|
+
//#region RENDER
|
|
95
|
+
/**
|
|
96
|
+
* Renders a single page button.
|
|
97
|
+
* @param {number} pageNumber The page number to render.
|
|
98
|
+
* @returns {JSX.Element} The rendered page button element.
|
|
99
|
+
*/
|
|
100
|
+
renderPageButton(pageNumber) {
|
|
101
|
+
const isCurrentPage = pageNumber === this.currentPage;
|
|
102
|
+
return (h("li", { key: pageNumber, "data-scope": "page-button" }, h("nv-button", { size: "md", emphasis: "lower", active: isCurrentPage, onClick: () => this.handlePageChange(pageNumber), "data-page": pageNumber, "data-current": isCurrentPage ? 'true' : undefined }, pageNumber)));
|
|
103
|
+
}
|
|
104
|
+
render() {
|
|
105
|
+
const isFirstPage = this.currentPage === 1;
|
|
106
|
+
const isLastPage = this.currentPage === this.totalPages;
|
|
107
|
+
return (h(Host, { key: 'b2255fce4e03cee8ff370086aac31df5c69d275d' }, h("nav", { key: 'a136b7193f9b00a68e6ee626802dee19fd762531', "data-scope": "pagination-nav", "aria-label": "Pagination navigation" }, this.isOnlyIcon ? (h("nv-iconbutton", { name: "chevron-left", size: "md", emphasis: "lower", disabled: isFirstPage, onClick: () => this.handlePageChange(this.currentPage - 1), "data-scope": "previous-iconbutton", "aria-label": this.previousButtonLabel })) : (h("nv-button", { size: "md", emphasis: "lower", disabled: isFirstPage, onClick: () => this.handlePageChange(this.currentPage - 1), "data-scope": "previous-button" }, h("nv-icon", { slot: "leading-icon", name: "chevron-left" }), this.previousButtonLabel)), h("ol", { key: '5bebe0e3f5c8f1799ed8980752fbed7aadbcac01', "data-scope": "page-list" }, calculatePaginationRange({
|
|
108
|
+
currentPage: this.currentPage,
|
|
109
|
+
totalCount: this.totalCount,
|
|
110
|
+
pageSize: this.pageSize,
|
|
111
|
+
numStartZoneButtons: this.numStartZoneButtons,
|
|
112
|
+
numEndZoneButtons: this.numEndZoneButtons,
|
|
113
|
+
numMiddleButtons: this.numMiddleButtons,
|
|
114
|
+
showMiddleZone: this.showMiddleZone,
|
|
115
|
+
}).map(item => typeof item === 'number' ? (this.renderPageButton(item)) : (h("li", { key: `ellipsis-${item}`, "data-scope": "ellipsis", "aria-hidden": "true" }, h("span", null, item))))), this.isOnlyIcon ? (h("nv-iconbutton", { name: "chevron-right", size: "md", emphasis: "lower", disabled: isLastPage, onClick: () => this.handlePageChange(this.currentPage + 1), "data-scope": "next-iconbutton", "aria-label": this.nextButtonLabel })) : (h("nv-button", { size: "md", emphasis: "lower", disabled: isLastPage, onClick: () => this.handlePageChange(this.currentPage + 1), "data-scope": "next-button" }, this.nextButtonLabel, h("nv-icon", { slot: "trailing-icon", name: "chevron-right" }))))));
|
|
116
|
+
}
|
|
117
|
+
static get is() { return "nv-pagination-nav"; }
|
|
118
|
+
static get originalStyleUrls() {
|
|
119
|
+
return {
|
|
120
|
+
"$": ["nv-pagination-nav.scss"]
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
static get styleUrls() {
|
|
124
|
+
return {
|
|
125
|
+
"$": ["nv-pagination-nav.css"]
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
static get properties() {
|
|
129
|
+
return {
|
|
130
|
+
"previousButtonLabel": {
|
|
131
|
+
"type": "string",
|
|
132
|
+
"mutable": false,
|
|
133
|
+
"complexType": {
|
|
134
|
+
"original": "string",
|
|
135
|
+
"resolved": "string",
|
|
136
|
+
"references": {}
|
|
137
|
+
},
|
|
138
|
+
"required": false,
|
|
139
|
+
"optional": false,
|
|
140
|
+
"docs": {
|
|
141
|
+
"tags": [],
|
|
142
|
+
"text": "Label for the previous button."
|
|
143
|
+
},
|
|
144
|
+
"getter": false,
|
|
145
|
+
"setter": false,
|
|
146
|
+
"reflect": true,
|
|
147
|
+
"attribute": "previous-button-label",
|
|
148
|
+
"defaultValue": "'Previous'"
|
|
149
|
+
},
|
|
150
|
+
"nextButtonLabel": {
|
|
151
|
+
"type": "string",
|
|
152
|
+
"mutable": false,
|
|
153
|
+
"complexType": {
|
|
154
|
+
"original": "string",
|
|
155
|
+
"resolved": "string",
|
|
156
|
+
"references": {}
|
|
157
|
+
},
|
|
158
|
+
"required": false,
|
|
159
|
+
"optional": false,
|
|
160
|
+
"docs": {
|
|
161
|
+
"tags": [],
|
|
162
|
+
"text": "Label for the next button."
|
|
163
|
+
},
|
|
164
|
+
"getter": false,
|
|
165
|
+
"setter": false,
|
|
166
|
+
"reflect": true,
|
|
167
|
+
"attribute": "next-button-label",
|
|
168
|
+
"defaultValue": "'Next'"
|
|
169
|
+
},
|
|
170
|
+
"numStartZoneButtons": {
|
|
171
|
+
"type": "number",
|
|
172
|
+
"mutable": false,
|
|
173
|
+
"complexType": {
|
|
174
|
+
"original": "number",
|
|
175
|
+
"resolved": "number",
|
|
176
|
+
"references": {}
|
|
177
|
+
},
|
|
178
|
+
"required": false,
|
|
179
|
+
"optional": false,
|
|
180
|
+
"docs": {
|
|
181
|
+
"tags": [],
|
|
182
|
+
"text": "Number of page buttons to show at the start of the pagination range."
|
|
183
|
+
},
|
|
184
|
+
"getter": false,
|
|
185
|
+
"setter": false,
|
|
186
|
+
"reflect": true,
|
|
187
|
+
"attribute": "num-start-zone-buttons",
|
|
188
|
+
"defaultValue": "2"
|
|
189
|
+
},
|
|
190
|
+
"numEndZoneButtons": {
|
|
191
|
+
"type": "number",
|
|
192
|
+
"mutable": false,
|
|
193
|
+
"complexType": {
|
|
194
|
+
"original": "number",
|
|
195
|
+
"resolved": "number",
|
|
196
|
+
"references": {}
|
|
197
|
+
},
|
|
198
|
+
"required": false,
|
|
199
|
+
"optional": false,
|
|
200
|
+
"docs": {
|
|
201
|
+
"tags": [],
|
|
202
|
+
"text": "Number of page buttons to show at the end of the pagination range."
|
|
203
|
+
},
|
|
204
|
+
"getter": false,
|
|
205
|
+
"setter": false,
|
|
206
|
+
"reflect": true,
|
|
207
|
+
"attribute": "num-end-zone-buttons",
|
|
208
|
+
"defaultValue": "2"
|
|
209
|
+
},
|
|
210
|
+
"numMiddleButtons": {
|
|
211
|
+
"type": "number",
|
|
212
|
+
"mutable": false,
|
|
213
|
+
"complexType": {
|
|
214
|
+
"original": "number",
|
|
215
|
+
"resolved": "number",
|
|
216
|
+
"references": {}
|
|
217
|
+
},
|
|
218
|
+
"required": false,
|
|
219
|
+
"optional": false,
|
|
220
|
+
"docs": {
|
|
221
|
+
"tags": [],
|
|
222
|
+
"text": "Number of page buttons to show in the middle zone around the current page."
|
|
223
|
+
},
|
|
224
|
+
"getter": false,
|
|
225
|
+
"setter": false,
|
|
226
|
+
"reflect": true,
|
|
227
|
+
"attribute": "num-middle-buttons",
|
|
228
|
+
"defaultValue": "1"
|
|
229
|
+
},
|
|
230
|
+
"currentPage": {
|
|
231
|
+
"type": "number",
|
|
232
|
+
"mutable": true,
|
|
233
|
+
"complexType": {
|
|
234
|
+
"original": "number",
|
|
235
|
+
"resolved": "number",
|
|
236
|
+
"references": {}
|
|
237
|
+
},
|
|
238
|
+
"required": false,
|
|
239
|
+
"optional": false,
|
|
240
|
+
"docs": {
|
|
241
|
+
"tags": [],
|
|
242
|
+
"text": "Current page number (1-based index)."
|
|
243
|
+
},
|
|
244
|
+
"getter": false,
|
|
245
|
+
"setter": false,
|
|
246
|
+
"reflect": true,
|
|
247
|
+
"attribute": "current-page",
|
|
248
|
+
"defaultValue": "1"
|
|
249
|
+
},
|
|
250
|
+
"totalCount": {
|
|
251
|
+
"type": "number",
|
|
252
|
+
"mutable": false,
|
|
253
|
+
"complexType": {
|
|
254
|
+
"original": "number",
|
|
255
|
+
"resolved": "number",
|
|
256
|
+
"references": {}
|
|
257
|
+
},
|
|
258
|
+
"required": false,
|
|
259
|
+
"optional": false,
|
|
260
|
+
"docs": {
|
|
261
|
+
"tags": [],
|
|
262
|
+
"text": "Total number of items to paginate."
|
|
263
|
+
},
|
|
264
|
+
"getter": false,
|
|
265
|
+
"setter": false,
|
|
266
|
+
"reflect": true,
|
|
267
|
+
"attribute": "total-count",
|
|
268
|
+
"defaultValue": "100"
|
|
269
|
+
},
|
|
270
|
+
"pageSize": {
|
|
271
|
+
"type": "number",
|
|
272
|
+
"mutable": false,
|
|
273
|
+
"complexType": {
|
|
274
|
+
"original": "number",
|
|
275
|
+
"resolved": "number",
|
|
276
|
+
"references": {}
|
|
277
|
+
},
|
|
278
|
+
"required": false,
|
|
279
|
+
"optional": false,
|
|
280
|
+
"docs": {
|
|
281
|
+
"tags": [],
|
|
282
|
+
"text": "Number of items per page."
|
|
283
|
+
},
|
|
284
|
+
"getter": false,
|
|
285
|
+
"setter": false,
|
|
286
|
+
"reflect": true,
|
|
287
|
+
"attribute": "page-size",
|
|
288
|
+
"defaultValue": "10"
|
|
289
|
+
},
|
|
290
|
+
"isOnlyIcon": {
|
|
291
|
+
"type": "boolean",
|
|
292
|
+
"mutable": false,
|
|
293
|
+
"complexType": {
|
|
294
|
+
"original": "boolean",
|
|
295
|
+
"resolved": "boolean",
|
|
296
|
+
"references": {}
|
|
297
|
+
},
|
|
298
|
+
"required": false,
|
|
299
|
+
"optional": false,
|
|
300
|
+
"docs": {
|
|
301
|
+
"tags": [],
|
|
302
|
+
"text": "If true, the Previous/Next navigation buttons will be displayed as icon buttons.\nPage number buttons always use regular buttons."
|
|
303
|
+
},
|
|
304
|
+
"getter": false,
|
|
305
|
+
"setter": false,
|
|
306
|
+
"reflect": true,
|
|
307
|
+
"attribute": "is-only-icon",
|
|
308
|
+
"defaultValue": "false"
|
|
309
|
+
},
|
|
310
|
+
"showMiddleZone": {
|
|
311
|
+
"type": "boolean",
|
|
312
|
+
"mutable": false,
|
|
313
|
+
"complexType": {
|
|
314
|
+
"original": "boolean",
|
|
315
|
+
"resolved": "boolean",
|
|
316
|
+
"references": {}
|
|
317
|
+
},
|
|
318
|
+
"required": false,
|
|
319
|
+
"optional": false,
|
|
320
|
+
"docs": {
|
|
321
|
+
"tags": [],
|
|
322
|
+
"text": "If true, shows the middle zone with the current page when it's not in start/end zones.\nIf false (default), only shows one ellipsis between start and end zones (simpler pagination)."
|
|
323
|
+
},
|
|
324
|
+
"getter": false,
|
|
325
|
+
"setter": false,
|
|
326
|
+
"reflect": true,
|
|
327
|
+
"attribute": "show-middle-zone",
|
|
328
|
+
"defaultValue": "false"
|
|
329
|
+
}
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
static get events() {
|
|
333
|
+
return [{
|
|
334
|
+
"method": "currentPageChanged",
|
|
335
|
+
"name": "currentPageChanged",
|
|
336
|
+
"bubbles": false,
|
|
337
|
+
"cancelable": true,
|
|
338
|
+
"composed": true,
|
|
339
|
+
"docs": {
|
|
340
|
+
"tags": [{
|
|
341
|
+
"name": "bind",
|
|
342
|
+
"text": "currentPage"
|
|
343
|
+
}],
|
|
344
|
+
"text": "Emitted when the current page changes."
|
|
345
|
+
},
|
|
346
|
+
"complexType": {
|
|
347
|
+
"original": "number",
|
|
348
|
+
"resolved": "number",
|
|
349
|
+
"references": {}
|
|
350
|
+
}
|
|
351
|
+
}];
|
|
352
|
+
}
|
|
353
|
+
static get watchers() {
|
|
354
|
+
return [{
|
|
355
|
+
"propName": "currentPage",
|
|
356
|
+
"methodName": "onCurrentPageChange"
|
|
357
|
+
}];
|
|
358
|
+
}
|
|
359
|
+
}
|