@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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, a as createEvent, h, d as Host, e as getElement } from './index-
|
|
1
|
+
import { r as registerInstance, a as createEvent, h, d as Host, e as getElement } from './index-BCjiE1MF.js';
|
|
2
2
|
|
|
3
3
|
const nvSplitCss = () => `nv-split{display:flex;width:100%;height:100%;position:relative}nv-split[direction=horizontal]{flex-direction:row}nv-split[direction=vertical]{flex-direction:column}nv-split .nv-split-gutter{position:absolute;z-index:10;background:transparent;display:flex;align-items:center;justify-content:center;flex:0 0 auto;transition:background-color 0.2s ease}nv-split .nv-split-gutter::after{content:"";position:absolute;background:var(--components-splitter-line-background);transition:background-color 0.2s ease}nv-split .nv-split-gutter:hover::after{background:var(--components-splitter-line-background-hover)}nv-split .nv-split-gutter::before{content:"";background:var(--components-splitter-handle-background);position:absolute;background-repeat:no-repeat;background-position:center;transition:all 0.2s ease;pointer-events:none}nv-split[direction=horizontal]>.nv-split-gutter{width:var(--splitter-gutter);top:0;bottom:0;transform:translateX(-50%);cursor:col-resize}nv-split[direction=horizontal]>.nv-split-gutter::after{width:var(--splitter-line-width);background-color:var(--components-splitter-line-background);height:100%;left:50%;top:0%;transform:translateX(-50%)}nv-split[direction=horizontal]>.nv-split-gutter:hover::after{background-color:var(--components-splitter-line-background-hover)}nv-split[direction=horizontal]>.nv-split-gutter:active::after{background-color:var(--components-splitter-line-background-active)}nv-split[direction=horizontal]>.nv-split-gutter::before{background-color:var(--components-splitter-handle-background);width:var(--splitter-handle-wide);height:var(--splitter-handle-long);border-radius:var(--splitter-handle-radius);z-index:11;transition:all 0.2s ease}nv-split[direction=horizontal]>.nv-split-gutter:hover::before{background-color:var(--components-splitter-handle-background-hover)}nv-split[direction=horizontal]>.nv-split-gutter:active::before{background-color:var(--components-splitter-handle-background-active)}nv-split[direction=vertical]>.nv-split-gutter{height:var(--splitter-gutter);left:0;right:0;transform:translateY(-50%);cursor:row-resize}nv-split[direction=vertical]>.nv-split-gutter::after{height:var(--splitter-line-width);background-color:var(--components-splitter-line-background);width:100%;top:50%;left:0%;transform:translateY(-50%)}nv-split[direction=vertical]>.nv-split-gutter:hover::after{background-color:var(--components-splitter-line-background-hover)}nv-split[direction=vertical]>.nv-split-gutter:active::after{background-color:var(--components-splitter-line-background-active)}nv-split[direction=vertical]>.nv-split-gutter::before{background-color:var(--components-splitter-handle-background);width:var(--splitter-handle-long);height:var(--splitter-handle-wide);border-radius:var(--splitter-handle-radius);z-index:11;transition:all 0.2s ease}nv-split[direction=vertical]>.nv-split-gutter:hover::before{background-color:var(--components-splitter-handle-background-hover)}nv-split[direction=vertical]>.nv-split-gutter:active::before{background-color:var(--components-splitter-handle-background-active)}nv-split[data-dragging=true]>.nv-split-gutter::after{background:var(--components-splitter-line-background-active)}nv-split>[slot=pane]{box-sizing:border-box;flex:1 1 auto;overflow:hidden;min-width:0;min-height:0;display:flex;flex-direction:column;margin:0 !important}nv-split>[slot=pane]>nv-split{flex:1 1 auto;width:100%;height:100%}`;
|
|
4
4
|
|
|
@@ -321,7 +321,7 @@ const NvSplit = class {
|
|
|
321
321
|
/****************************************************************************/
|
|
322
322
|
//#region RENDER
|
|
323
323
|
render() {
|
|
324
|
-
return (h(Host, { key: '
|
|
324
|
+
return (h(Host, { key: '8ad8bebda77f9868b9715280c0157f247057026d', "data-dragging": this.isDragging.toString() }, h("slot", { key: '8ca002feab0c3cd7755a5f1f53864e4e20585420', name: "pane" }), h("slot", { key: 'f7f7352ed8c326ec263f6d617bcd84fea02689ea', name: "gutter" })));
|
|
325
325
|
}
|
|
326
326
|
get el() { return getElement(this); }
|
|
327
327
|
static get watchers() { return {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, h, d as Host } from './index-
|
|
1
|
+
import { r as registerInstance, h, d as Host } from './index-BCjiE1MF.js';
|
|
2
2
|
import { c as clsx } from './clsx-ChV9xqsO.js';
|
|
3
3
|
|
|
4
4
|
const nvStackCss = () => `nv-stack{display:flex;align-items:center;justify-content:flex-start;flex-direction:row}nv-stack nv-col{display:flex}nv-stack:not(nv-row){flex-wrap:nowrap}nv-stack>.nv-stack-item-flex{flex-shrink:1;flex-grow:1}nv-stack>.nv-stack-item-lead{margin-right:auto}nv-stack>.nv-stack-item-lead+*{margin-left:0}nv-stack>.nv-stack-item-center{margin-right:auto;margin-left:auto}nv-stack>.nv-stack-item-tail{margin-left:auto}nv-stack>.nv-stack-nowrap{white-space:nowrap}nv-stack.nv-stack-vertical{align-items:stretch;flex-direction:column}nv-stack.nv-stack-vertical>.nv-stack-item-lead{margin-right:0;margin-bottom:auto}nv-stack.nv-stack-vertical>.nv-stack-item-lead+*{margin-top:0}nv-stack.nv-stack-vertical>.nv-stack-item-tail{margin-left:0;margin-top:auto}nv-stack.nv-stack-vertical>.nv-stack-item-center{margin:auto 0}nv-stack.nv-stack-flex>*{flex-shrink:1;flex-grow:1}nv-stack.nv-stack-fill>*{height:100%}nv-stack.nv-stack-fill.nv-stack-vertical>*{height:auto;width:100%}`;
|
|
@@ -18,7 +18,7 @@ const NvStack = class {
|
|
|
18
18
|
/****************************************************************************/
|
|
19
19
|
//#region RENDER
|
|
20
20
|
render() {
|
|
21
|
-
return (h(Host, { key: '
|
|
21
|
+
return (h(Host, { key: '861c5eed0b6dc7cdd5bf3a2d07af92127e2025bf', class: clsx(this.fill && 'nv-stack-fill', this.flex && 'nv-stack-flex', this.full && 'w-full', this.gutter && !this.vertical && `gap-x-${this.gutter}`, this.gutter && this.vertical && `gap-y-${this.gutter}`, this.vertical && 'nv-stack-vertical') }, h("slot", { key: '4cf3d3fb15fa6c4ed2d7d6bb70334965b0cca457' })));
|
|
22
22
|
}
|
|
23
23
|
};
|
|
24
24
|
NvStack.style = nvStackCss();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, h, d as Host, e as getElement } from './index-
|
|
1
|
+
import { r as registerInstance, h, d as Host, e as getElement } from './index-BCjiE1MF.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Table utility functions and constants for nv-table component
|
|
@@ -231,7 +231,7 @@ const NvTable = class {
|
|
|
231
231
|
/****************************************************************************/
|
|
232
232
|
//#region RENDER
|
|
233
233
|
render() {
|
|
234
|
-
return (h(Host, { key: '
|
|
234
|
+
return (h(Host, { key: 'a6882cbcf9b0b12776f6d4be6d9cbfb42aff6833' }, h("slot", { key: 'd4d47a2eb77c50ff30109e217ceecd2677b9d28d' })));
|
|
235
235
|
}
|
|
236
236
|
get host() { return getElement(this); }
|
|
237
237
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, a as createEvent, h, d as Host } from './index-
|
|
1
|
+
import { r as registerInstance, a as createEvent, h, d as Host } from './index-BCjiE1MF.js';
|
|
2
2
|
|
|
3
3
|
const nvTableheaderCss = () => `nv-tableheader{display:inline-flex;width:100%;align-items:center;gap:var(--spacing-2)}nv-tableheader:focus-visible:focus,nv-tableheader:focus-visible:focus-within{outline:none}nv-tableheader:focus-visible:focus-visible,nv-tableheader:focus-visible:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-tableheader:focus-visible{border-radius:var(--radius-rounded-sm)}nv-tableheader nv-iconbutton{transition:transform 120ms ease, opacity 120ms ease}nv-tableheader nv-iconbutton svg{transition:transform 240ms ease}nv-tableheader nv-iconbutton.is-none{opacity:0.5}nv-tableheader nv-iconbutton.is-desc svg{transform:rotate(180deg)}`;
|
|
4
4
|
|
|
@@ -57,7 +57,7 @@ const NvTableheader = class {
|
|
|
57
57
|
/****************************************************************************/
|
|
58
58
|
//#region RENDER
|
|
59
59
|
render() {
|
|
60
|
-
return (h(Host, { key: '
|
|
60
|
+
return (h(Host, { key: '962f555a02b3035148c5915ae7493c68c0202cc7', role: "columnheader", "aria-sort": this.ariaSort, tabindex: this.sortable ? 0 : undefined, onKeyDown: this.handleKeyDown.bind(this), onClick: this.cycleSortDirection.bind(this) }, h("slot", { key: '0e69da3d4e2eb8ad01060f51d5043ffc14380415' }), this.sortable && (h("span", { key: 'a9b5ff97552d142cc3e1becc14a34ebab1f3092d', class: "sort-icon-wrap", "aria-hidden": "true" }, h("nv-iconbutton", { key: '76f832eba2b57f244dbce597668f493a918cf599', disableTabindex: true, name: "arrow-up", size: "xs", emphasis: this.sortDirection === 'none' ? 'lower' : 'low',
|
|
61
61
|
// prevent mousedown from selecting text
|
|
62
62
|
onMouseDown: (e) => e.preventDefault(), class: {
|
|
63
63
|
'is-none': this.sortDirection === 'none',
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { r as registerInstance, a as createEvent, h, d as Host } from './index-BCjiE1MF.js';
|
|
2
|
+
import { a as parseTimeOnly, b as formatTimeOnly, L as LocalDate } from './nova-datetime-CyL2J6O4.js';
|
|
3
|
+
|
|
4
|
+
const nvTimetestCss = () => `nv-timetest{display:flex}nv-timetest label{display:flex;flex-direction:column;margin-right:10px;font-weight:bold}nv-timetest input{font-weight:normal;padding:var(--spacing-2);border-radius:var(--spacing-1);border:1px solid #ccc}`;
|
|
5
|
+
|
|
6
|
+
const NvTimetest = class {
|
|
7
|
+
constructor(hostRef) {
|
|
8
|
+
registerInstance(this, hostRef);
|
|
9
|
+
this.valueChanged = createEvent(this, "valueChanged", 3);
|
|
10
|
+
this.lastChanged = createEvent(this, "lastChanged", 3);
|
|
11
|
+
this.historyChanged = createEvent(this, "historyChanged", 3);
|
|
12
|
+
this.valueDateChanged = createEvent(this, "valueDateChanged", 3);
|
|
13
|
+
//#endregion PROPERTIES
|
|
14
|
+
/****************************************************************************/
|
|
15
|
+
//#region METHODS
|
|
16
|
+
this.handleStartChange = (event) => {
|
|
17
|
+
const input = event.target;
|
|
18
|
+
const parsed = parseTimeOnly(input.value);
|
|
19
|
+
if (!parsed)
|
|
20
|
+
return;
|
|
21
|
+
const newStart = formatTimeOnly(parsed);
|
|
22
|
+
this.value = { start: newStart, end: this.value?.end };
|
|
23
|
+
this.lastChange = newStart;
|
|
24
|
+
this.history = [...(this.history ?? []), newStart];
|
|
25
|
+
this.valueChanged.emit(this.value);
|
|
26
|
+
this.lastChanged.emit({ time: this.lastChange });
|
|
27
|
+
this.historyChanged.emit({ times: this.history });
|
|
28
|
+
const todayDate = LocalDate.now().toString();
|
|
29
|
+
this.valueDateChanged.emit({
|
|
30
|
+
start: this.value?.start
|
|
31
|
+
? new Date(todayDate + 'T' + this.value.start)
|
|
32
|
+
: undefined,
|
|
33
|
+
end: this.value?.end
|
|
34
|
+
? new Date(todayDate + 'T' + this.value.end)
|
|
35
|
+
: undefined,
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
this.handleEndChange = (event) => {
|
|
39
|
+
const input = event.target;
|
|
40
|
+
const parsed = parseTimeOnly(input.value);
|
|
41
|
+
if (!parsed)
|
|
42
|
+
return;
|
|
43
|
+
const newEnd = formatTimeOnly(parsed);
|
|
44
|
+
this.value = { start: this.value?.start, end: newEnd };
|
|
45
|
+
this.lastChange = newEnd;
|
|
46
|
+
this.history = [...(this.history ?? []), newEnd];
|
|
47
|
+
this.valueChanged.emit(this.value);
|
|
48
|
+
this.lastChanged.emit({ time: this.lastChange });
|
|
49
|
+
this.historyChanged.emit({ times: this.history });
|
|
50
|
+
const todayDate = LocalDate.now().toString();
|
|
51
|
+
this.valueDateChanged.emit({
|
|
52
|
+
start: this.value?.start
|
|
53
|
+
? new Date(todayDate + 'T' + this.value.start)
|
|
54
|
+
: undefined,
|
|
55
|
+
end: this.value?.end
|
|
56
|
+
? new Date(todayDate + 'T' + this.value.end)
|
|
57
|
+
: undefined,
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//#endregion EVENTS
|
|
62
|
+
/****************************************************************************/
|
|
63
|
+
//#region RENDER
|
|
64
|
+
render() {
|
|
65
|
+
return (h(Host, { key: '85d3773d49a180e5bc9b5bc0962cc3b709a474b0' }, h("label", { key: 'c0d5c262578e6aa1555ded8c542e2eef7e42d491' }, "Start:", h("input", { key: '31fe9447be14efd87aab1161dbc01593a30328dc', type: "time", step: "1", value: this.value?.start ?? '', onInput: this.handleStartChange })), h("label", { key: '0959b432f53169c425765b94c098ca5ecc8d6ede' }, "End:", h("input", { key: 'ccc50a80dfea2ab7eb627d11840dd5626ca25f88', type: "time", step: "1", value: this.value?.end ?? '', onInput: this.handleEndChange })), h("slot", { key: 'd4c6a017d41102a245e1f8472d676bc866382c00' })));
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
NvTimetest.style = nvTimetestCss();
|
|
69
|
+
|
|
70
|
+
export { NvTimetest as nv_timetest };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, a as createEvent, h, d as Host, e as getElement } from './index-
|
|
1
|
+
import { r as registerInstance, a as createEvent, h, d as Host, e as getElement } from './index-BCjiE1MF.js';
|
|
2
2
|
import { c as clsx } from './clsx-ChV9xqsO.js';
|
|
3
3
|
import { v as v4 } from './v4-BdYh22OP.js';
|
|
4
4
|
|
|
@@ -61,8 +61,8 @@ const NvToggle = class {
|
|
|
61
61
|
/****************************************************************************/
|
|
62
62
|
//#region RENDER
|
|
63
63
|
render() {
|
|
64
|
-
return (h(Host, { key: '
|
|
65
|
-
this.el.querySelector('[slot="description"]')) && (h("div", { key: '
|
|
64
|
+
return (h(Host, { key: '39ad1374bbf8cd5393a99dc4c18fa28091dc5e90', class: clsx(this.labelPlacement === 'before' && 'label-placement-before') }, h("div", { key: '3a8be2405404975398f1a0dae05c0855b913245f', class: "input-container" }, h("input", { key: 'b589b9faa5801f99e698d0e664e0a35779a1271f', type: "checkbox", id: this.inputId, name: this.name, autocomplete: "off", value: this.value, checked: Boolean(this.checked), disabled: this.disabled || this.readonly, readonly: this.readonly })), h("div", { key: 'a3308782b02b1c0eca3d6a1b87509674b9bc5c13', class: "text-container" }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: '854b2ffe7bf61423512154ffe8b3b0351a2950a4', htmlFor: this.inputId, class: clsx(this.hideLabel && 'visually-hidden') }, h("slot", { key: '933bf88b7841f3b2ed24c3bb86fb24159eaac900', name: "label" }, this.label))), (this.description ||
|
|
65
|
+
this.el.querySelector('[slot="description"]')) && (h("div", { key: '5a04358d1be3b935239bb23e1466cc22ed2f3b48', class: "description" }, h("slot", { key: 'f5c1513eff6ee42bc171b0088baec634f8458197', name: "description" }, this.description))))));
|
|
66
66
|
}
|
|
67
67
|
static get formAssociated() { return true; }
|
|
68
68
|
get el() { return getElement(this); }
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, a as createEvent, h, d as Host, e as getElement } from './index-
|
|
1
|
+
import { r as registerInstance, a as createEvent, h, d as Host, e as getElement } from './index-BCjiE1MF.js';
|
|
2
2
|
|
|
3
3
|
const nvTogglebuttonCss = () => `nv-togglebutton{display:inline-flex;justify-content:center;align-items:center}nv-togglebutton:focus-visible,nv-togglebutton:has(:focus-visible){z-index:1}nv-togglebutton[size=xs]{padding:var(--button-xs-padding-y) var(--button-xs-padding-x);gap:var(--button-xs-gap);border-radius:var(--button-xs-border-radius);line-height:var(--button-xs-line-height);height:var(--button-xs-height);font-size:var(--button-xs-font-size)}nv-togglebutton[size=xs] nv-icon>svg{width:var(--spacing-3);height:var(--spacing-3);stroke-width:1.2px}nv-togglebutton[size=xs]{padding-top:calc(var(--togglegroup-xs-button-padding-y) - var(--togglegroup-stroke));padding-bottom:calc(var(--togglegroup-xs-button-padding-y) - var(--togglegroup-stroke));border-radius:var(--togglegroup-xs-button-radius);height:calc((var(--togglegroup-xs-height)) - var(--togglegroup-inner-space));border-width:0}nv-togglebutton[size=sm]{padding:var(--button-sm-padding-y) var(--button-sm-padding-x);gap:var(--button-sm-gap);border-radius:var(--button-sm-border-radius);line-height:var(--button-sm-line-height);height:var(--button-sm-height);font-size:var(--button-sm-font-size)}nv-togglebutton[size=sm] nv-icon>svg{width:var(--spacing-4);height:var(--spacing-4);stroke-width:1.5px}nv-togglebutton[size=sm]{padding-top:calc(var(--togglegroup-sm-button-padding-y) - var(--togglegroup-stroke));padding-bottom:calc(var(--togglegroup-sm-button-padding-y) - var(--togglegroup-stroke));border-radius:calc(var(--togglegroup-sm-button-radius) + 1px);height:calc((var(--togglegroup-sm-height)) - var(--togglegroup-inner-space));border-width:0}nv-togglebutton[size=md]{padding:var(--button-md-padding-y) var(--button-md-padding-x);gap:var(--button-md-gap);border-radius:var(--button-md-border-radius);line-height:var(--button-md-line-height);height:var(--button-md-height);font-size:var(--button-md-font-size)}nv-togglebutton[size=md] nv-icon>svg{width:var(--spacing-5);height:var(--spacing-5);stroke-width:1.6px}nv-togglebutton[size=md]{padding-top:calc(var(--togglegroup-md-button-padding-y) - var(--togglegroup-stroke));padding-bottom:calc(var(--togglegroup-md-button-padding-y) - var(--togglegroup-stroke));border-radius:calc(var(--togglegroup-md-button-radius) + 1px);height:calc((var(--togglegroup-md-height)) - var(--togglegroup-inner-space));border-width:0}nv-togglebutton[size=lg]{padding:var(--button-lg-padding-y) var(--button-lg-padding-x);gap:var(--button-lg-gap);border-radius:var(--button-lg-border-radius);line-height:var(--button-lg-line-height);height:var(--button-lg-height);font-size:var(--button-lg-font-size)}nv-togglebutton[size=lg] nv-icon>svg{width:var(--spacing-6);height:var(--spacing-6);stroke-width:1.8px}nv-togglebutton[size=lg]{padding-top:calc(var(--togglegroup-lg-button-padding-y) - var(--togglegroup-stroke));padding-bottom:calc(var(--togglegroup-lg-button-padding-y) - var(--togglegroup-stroke));border-radius:calc(var(--togglegroup-lg-button-radius) + 1px);height:calc((var(--togglegroup-lg-height)) - var(--togglegroup-inner-space));border-width:0}nv-togglebutton[emphasis=high]{background:var(--components-button-low-background);border:1px solid var(--components-button-low-border);color:var(--components-button-low-text)}nv-togglebutton[emphasis=high]:hover{background:var(--components-button-low-background-hover);border:1px solid var(--components-button-low-border);color:var(--components-button-low-text-hover)}nv-togglebutton[emphasis=high]:active{background:var(--components-button-low-background-active);border:1px solid var(--components-button-low-border-active);color:var(--components-button-low-text-active)}nv-togglebutton[emphasis=high]:focus,nv-togglebutton[emphasis=high]:focus-within{outline:none}nv-togglebutton[emphasis=high]:focus-visible,nv-togglebutton[emphasis=high]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-togglebutton[emphasis=high]:disabled:not([disabled=false]){opacity:0.5;cursor:not-allowed;box-shadow:none}nv-togglebutton[emphasis=high][active]:not([active=false]){background:var(--components-button-low-background-active);border:1px solid var(--components-button-low-border-active);color:var(--components-button-low-text-active)}nv-togglebutton[emphasis=low]{background:var(--components-button-lower-background);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text)}nv-togglebutton[emphasis=low]:hover{background:var(--components-button-lower-background-hover);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text-hover)}nv-togglebutton[emphasis=low]:active{background:var(--components-button-lower-background-active);border:1px solid var(--components-button-lower-border-active);color:var(--components-button-lower-text-active)}nv-togglebutton[emphasis=low]:focus,nv-togglebutton[emphasis=low]:focus-within{outline:none}nv-togglebutton[emphasis=low]:focus-visible,nv-togglebutton[emphasis=low]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-togglebutton[emphasis=low]:disabled:not([disabled=false]){opacity:0.5;cursor:not-allowed;box-shadow:none}nv-togglebutton[emphasis=low][active]:not([active=false]),nv-togglebutton[emphasis=low]:active{background:var(--components-button-lower-background-hover);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text-hover)}`;
|
|
4
4
|
|
|
@@ -52,7 +52,7 @@ const NvTogglebutton = class {
|
|
|
52
52
|
/****************************************************************************/
|
|
53
53
|
//#region RENDER
|
|
54
54
|
render() {
|
|
55
|
-
return (h(Host, { key: '
|
|
55
|
+
return (h(Host, { key: '8e700d38ba155b977d4efa0d9e01b41e73fc4413', role: "button", tabindex: "0", "aria-pressed": String(this.active), onClick: this.handleClick }, h("slot", { key: '92427015839f98b0d9238b8df6af8e08ee511153' })));
|
|
56
56
|
}
|
|
57
57
|
get el() { return getElement(this); }
|
|
58
58
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, a as createEvent, h, d as Host, e as getElement } from './index-
|
|
1
|
+
import { r as registerInstance, a as createEvent, h, d as Host, e as getElement } from './index-BCjiE1MF.js';
|
|
2
2
|
|
|
3
3
|
const nvTogglebuttongroupCss = () => `nv-togglebuttongroup{display:flex;gap:var(--togglegroup-lg-gap);border-radius:var(--togglegroup-lg-radius);width:fit-content;padding:var(--togglegroup-lg-gap)}nv-togglebuttongroup[emphasis=high]{border:1px solid var(--components-togglegroup-high-border)}nv-togglebuttongroup[emphasis=low]{border:1px solid var(--components-togglegroup-low-border)}nv-togglebuttongroup[size=xs]{padding:calc(var(--togglegroup-xs-padding) - 1px);gap:var(--togglegroup-xs-gap);border-radius:var(--togglegroup-xs-radius);height:var(--togglegroup-xs-height)}nv-togglebuttongroup[size=sm]{padding:calc(var(--togglegroup-sm-padding) - 1px);gap:var(--togglegroup-sm-gap);border-radius:var(--togglegroup-sm-radius);height:var(--togglegroup-sm-height)}nv-togglebuttongroup[size=md]{padding:calc(var(--togglegroup-md-padding) - 1px);gap:var(--togglegroup-md-gap);border-radius:var(--togglegroup-md-radius);height:var(--togglegroup-md-height)}nv-togglebuttongroup[size=lg]{padding:calc(var(--togglegroup-lg-padding) - 1px);gap:var(--togglegroup-lg-gap);border-radius:var(--togglegroup-lg-radius);height:var(--togglegroup-lg-height)}`;
|
|
4
4
|
|
|
@@ -151,7 +151,7 @@ const NvTogglebuttongroup = class {
|
|
|
151
151
|
/****************************************************************************/
|
|
152
152
|
//#region RENDER
|
|
153
153
|
render() {
|
|
154
|
-
return (h(Host, { key: '
|
|
154
|
+
return (h(Host, { key: '2026cb95db8b57f2a1cd4ea53608f336843b63fe' }, h("slot", { key: '5c06ab59d6c99e789c3a1c3a8a4842a0772ca3a2' })));
|
|
155
155
|
}
|
|
156
156
|
get el() { return getElement(this); }
|
|
157
157
|
static get watchers() { return {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, a as createEvent, h, d as Host, e as getElement } from './index-
|
|
1
|
+
import { r as registerInstance, a as createEvent, h, d as Host, e as getElement } from './index-BCjiE1MF.js';
|
|
2
2
|
|
|
3
3
|
const nvTooltipCss = () => `nv-tooltip{display:inline-block;vertical-align:top;position:relative;user-select:none}nv-tooltip:has([fluid]:not([fluid=false])){display:block}nv-tooltip nv-popover{display:block;height:0;min-height:0;overflow:visible}nv-tooltip nv-popover>[data-scope=popover]{background:var(--components-tooltip-background);color:var(--components-tooltip-text);font-weight:var(--font-weight-medium-emphasis);padding:var(--tooltip-padding-y) var(--tooltip-padding-x);font-size:var(--tooltip-font-size);border-radius:var(--tooltip-radius);border:none;box-shadow:0px var(--shadow-y-axis-lg-1) var(--shadow-blur-lg-1) var(--shadow-spread-lg-1) var(--shadow-color-opacity-1), 0px var(--shadow-y-axis-lg-2) var(--shadow-blur-lg-2) var(--shadow-spread-lg-2) var(--shadow-color-opacity-2)}nv-tooltip nv-popover>[data-scope=popover] [data-scope=arrow]{background:var(--components-tooltip-background);box-shadow:none;border:none}`;
|
|
4
4
|
|
|
@@ -34,15 +34,20 @@ const NvTooltip = class {
|
|
|
34
34
|
/****************************************************************************/
|
|
35
35
|
//#region LIFECYCLE
|
|
36
36
|
componentDidRender() {
|
|
37
|
-
if (
|
|
37
|
+
if (!this.popoverElement)
|
|
38
38
|
return;
|
|
39
|
-
|
|
39
|
+
const trigger = this.triggerElement ??
|
|
40
|
+
this.defaultSlot?.nextElementSibling ??
|
|
41
|
+
this.el.querySelector(':scope > :not(nv-popover):not(slot):not([slot])');
|
|
42
|
+
if (trigger && this.popoverElement.triggerElement !== trigger) {
|
|
43
|
+
this.popoverElement.triggerElement = trigger;
|
|
44
|
+
}
|
|
40
45
|
}
|
|
41
46
|
//#endregion LIFECYCLE
|
|
42
47
|
/****************************************************************************/
|
|
43
48
|
//#region RENDER
|
|
44
49
|
render() {
|
|
45
|
-
return (h(Host, { key: '
|
|
50
|
+
return (h(Host, { key: '8285fbb412cb45cc7baf2936f0405c0438395c8d' }, h("nv-popover", { key: '29d70e9baa826de35d2cdca88f48610d70ec55e4', ref: el => (this.popoverElement = el), triggerMode: "hover", hasArrow: true, placement: this.placement, strategy: this.strategy, groupName: 'tooltip', enterDelay: this.enterDelay, onOpenChanged: e => this.openChanged.emit(e.detail) }, h("p", { key: 'a9c907fa96f9c4108a8d84cec53981218c060811', slot: "content" }, this.message), h("slot", { key: 'af1b7ac8069071fe2d41e925f1c0090f8b6aaab5', name: "content" })), h("slot", { key: 'e5d3c6d16fb7e4a682b66e0016d9e4e30e5647e0', ref: el => (this.defaultSlot = el) })));
|
|
46
51
|
}
|
|
47
52
|
get el() { return getElement(this); }
|
|
48
53
|
};
|
|
@@ -158,7 +158,10 @@ const augmentProps = (component) => {
|
|
|
158
158
|
if (!prop.values)
|
|
159
159
|
return prop; // Skip props without values
|
|
160
160
|
const transformedValues = prop.values.map(value => {
|
|
161
|
-
return {
|
|
161
|
+
return {
|
|
162
|
+
...value,
|
|
163
|
+
type: convertToCSharpType(value.type, prop.complexType?.original),
|
|
164
|
+
};
|
|
162
165
|
});
|
|
163
166
|
let propType = transformedValues[0]?.type; // Default to the first value's type
|
|
164
167
|
if (transformedValues.length > 1) {
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
import extract from "extract-comments";
|
|
3
3
|
/**
|
|
4
4
|
* Convert a TypeScript type to its C# equivalent
|
|
5
|
-
* @param { string }
|
|
5
|
+
* @param { string } resolvedType The type as it is resolved by TypeScript
|
|
6
|
+
* @param { string } originalType The original reference name
|
|
6
7
|
* @returns { string } The corresponding C# type
|
|
7
8
|
*/
|
|
8
|
-
export const convertToCSharpType = (
|
|
9
|
-
const normalizedType =
|
|
9
|
+
export const convertToCSharpType = (resolvedType, originalType) => {
|
|
10
|
+
const normalizedType = resolvedType.replace(/\s+/g, '');
|
|
10
11
|
const unionParts = normalizedType.split('|');
|
|
11
12
|
if (unionParts.includes('number') &&
|
|
12
13
|
unionParts.length > 1 &&
|
|
@@ -15,19 +16,34 @@ export const convertToCSharpType = (tsType) => {
|
|
|
15
16
|
.every(part => part === '""' || part === 'null' || part === 'undefined')) {
|
|
16
17
|
return 'double';
|
|
17
18
|
}
|
|
18
|
-
switch (
|
|
19
|
+
switch (originalType) {
|
|
20
|
+
case 'TimeOnly':
|
|
21
|
+
return 'TimeOnly';
|
|
22
|
+
case 'DateOnly':
|
|
23
|
+
return 'DateOnly';
|
|
24
|
+
}
|
|
25
|
+
switch (resolvedType) {
|
|
19
26
|
case 'string':
|
|
20
27
|
return 'string';
|
|
21
28
|
case 'number':
|
|
22
29
|
return 'double';
|
|
23
30
|
case 'boolean':
|
|
24
31
|
return 'bool';
|
|
32
|
+
case 'Date':
|
|
33
|
+
return 'DateTimeOffset';
|
|
25
34
|
}
|
|
26
|
-
const isArray =
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
35
|
+
const isArray = resolvedType.endsWith('[]');
|
|
36
|
+
const baseOriginalType = isArray
|
|
37
|
+
? originalType?.slice(0, -2).trim()
|
|
38
|
+
: originalType;
|
|
39
|
+
let baseResolvedType = isArray
|
|
40
|
+
? resolvedType.slice(0, -2).trim()
|
|
41
|
+
: resolvedType;
|
|
42
|
+
if (baseResolvedType.startsWith('{') && baseResolvedType.endsWith('}'))
|
|
43
|
+
baseResolvedType = 'object';
|
|
44
|
+
return isArray
|
|
45
|
+
? `${convertToCSharpType(baseResolvedType, baseOriginalType)}[]`
|
|
46
|
+
: baseResolvedType;
|
|
31
47
|
};
|
|
32
48
|
/**
|
|
33
49
|
* Checks for any recursive types (for example with the nv-menu component)
|
|
@@ -99,23 +115,24 @@ export const extractCommentsFromInterface = (interfaceString) => {
|
|
|
99
115
|
export const parseCSharpObjectStructure = (objectTypeString, originalTypeString) => {
|
|
100
116
|
const interfaceComments = extractCommentsFromInterface(originalTypeString);
|
|
101
117
|
// Remove leading/trailing whitespace
|
|
102
|
-
|
|
118
|
+
objectTypeString = objectTypeString.trim();
|
|
119
|
+
originalTypeString = originalTypeString?.trim();
|
|
103
120
|
// If this isn't an object, handle it directly
|
|
104
|
-
if (!
|
|
105
|
-
return { type: convertToCSharpType(
|
|
121
|
+
if (!objectTypeString.startsWith('{')) {
|
|
122
|
+
return { type: convertToCSharpType(objectTypeString, originalTypeString) };
|
|
106
123
|
}
|
|
107
124
|
// Find the content between the outermost curly braces
|
|
108
125
|
// We need to properly handle nested objects
|
|
109
126
|
let depth = 0;
|
|
110
127
|
let start = -1;
|
|
111
128
|
let end = -1;
|
|
112
|
-
for (let i = 0; i <
|
|
113
|
-
if (
|
|
129
|
+
for (let i = 0; i < objectTypeString.length; i++) {
|
|
130
|
+
if (objectTypeString[i] === '{') {
|
|
114
131
|
if (depth === 0)
|
|
115
132
|
start = i;
|
|
116
133
|
depth++;
|
|
117
134
|
}
|
|
118
|
-
else if (
|
|
135
|
+
else if (objectTypeString[i] === '}') {
|
|
119
136
|
depth--;
|
|
120
137
|
if (depth === 0) {
|
|
121
138
|
end = i;
|
|
@@ -126,7 +143,7 @@ export const parseCSharpObjectStructure = (objectTypeString, originalTypeString)
|
|
|
126
143
|
if (start === -1 || end === -1) {
|
|
127
144
|
throw new Error(`Invalid object structure: ${objectTypeString}`);
|
|
128
145
|
}
|
|
129
|
-
const innerContent =
|
|
146
|
+
const innerContent = objectTypeString.substring(start + 1, end).trim();
|
|
130
147
|
// Parse the properties, respecting nested objects and structures
|
|
131
148
|
const properties = {};
|
|
132
149
|
// Split the content on semicolons, but only when not inside nested objects/arrays
|
|
@@ -157,6 +174,81 @@ export const parseCSharpObjectStructure = (objectTypeString, originalTypeString)
|
|
|
157
174
|
// Add the last property if it exists
|
|
158
175
|
if (current.trim())
|
|
159
176
|
propStrings.push(current.trim());
|
|
177
|
+
// Parse originalTypeString into a property-name → original-type map
|
|
178
|
+
const originalTypes = {};
|
|
179
|
+
if (originalTypeString?.startsWith('{')) {
|
|
180
|
+
let oDepth = 0;
|
|
181
|
+
let oStart = -1;
|
|
182
|
+
let oEnd = -1;
|
|
183
|
+
for (let i = 0; i < originalTypeString.length; i++) {
|
|
184
|
+
if (originalTypeString[i] === '{') {
|
|
185
|
+
if (oDepth === 0)
|
|
186
|
+
oStart = i;
|
|
187
|
+
oDepth++;
|
|
188
|
+
}
|
|
189
|
+
else if (originalTypeString[i] === '}') {
|
|
190
|
+
oDepth--;
|
|
191
|
+
if (oDepth === 0) {
|
|
192
|
+
oEnd = i;
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
if (oStart !== -1 && oEnd !== -1) {
|
|
198
|
+
const originalInner = originalTypeString
|
|
199
|
+
.substring(oStart + 1, oEnd)
|
|
200
|
+
.trim();
|
|
201
|
+
const originalPropStrings = [];
|
|
202
|
+
let oCurrent = '';
|
|
203
|
+
let oCurrentDepth = 0;
|
|
204
|
+
let oInArray = false;
|
|
205
|
+
for (let i = 0; i < originalInner.length; i++) {
|
|
206
|
+
const char = originalInner[i];
|
|
207
|
+
if (char === '{')
|
|
208
|
+
oCurrentDepth++;
|
|
209
|
+
else if (char === '}')
|
|
210
|
+
oCurrentDepth--;
|
|
211
|
+
else if (char === '[')
|
|
212
|
+
oInArray = true;
|
|
213
|
+
else if (char === ']')
|
|
214
|
+
oInArray = false;
|
|
215
|
+
if (char === ';' && oCurrentDepth === 0 && !oInArray) {
|
|
216
|
+
if (oCurrent.trim())
|
|
217
|
+
originalPropStrings.push(oCurrent.trim());
|
|
218
|
+
oCurrent = '';
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
oCurrent += char;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
if (oCurrent.trim())
|
|
225
|
+
originalPropStrings.push(oCurrent.trim());
|
|
226
|
+
originalPropStrings.forEach(prop => {
|
|
227
|
+
let colonIdx = -1;
|
|
228
|
+
let od = 0;
|
|
229
|
+
let ad = 0;
|
|
230
|
+
for (let i = 0; i < prop.length; i++) {
|
|
231
|
+
if (prop[i] === '{')
|
|
232
|
+
od++;
|
|
233
|
+
else if (prop[i] === '}')
|
|
234
|
+
od--;
|
|
235
|
+
else if (prop[i] === '[')
|
|
236
|
+
ad++;
|
|
237
|
+
else if (prop[i] === ']')
|
|
238
|
+
ad--;
|
|
239
|
+
else if (prop[i] === ':' && od === 0 && ad === 0) {
|
|
240
|
+
colonIdx = i;
|
|
241
|
+
break;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
if (colonIdx === -1)
|
|
245
|
+
return;
|
|
246
|
+
const key = prop.substring(0, colonIdx).trim().replace(/\?$/, '');
|
|
247
|
+
const typeVal = prop.substring(colonIdx + 1).trim();
|
|
248
|
+
originalTypes[key] = typeVal;
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
}
|
|
160
252
|
// Process each property
|
|
161
253
|
propStrings.forEach(prop => {
|
|
162
254
|
// Find the first colon that's not inside a nested object/array
|
|
@@ -193,13 +285,17 @@ export const parseCSharpObjectStructure = (objectTypeString, originalTypeString)
|
|
|
193
285
|
};
|
|
194
286
|
if (baseType.startsWith('{')) {
|
|
195
287
|
// This is a nested object
|
|
196
|
-
const nestedStructure = parseCSharpObjectStructure(baseType);
|
|
288
|
+
const nestedStructure = parseCSharpObjectStructure(baseType, originalTypes[propertyName]);
|
|
197
289
|
propertyDef.type = isArray ? 'object[]' : 'object';
|
|
198
290
|
propertyDef.structure = nestedStructure;
|
|
199
291
|
}
|
|
200
292
|
else {
|
|
201
293
|
// This is a primitive type
|
|
202
|
-
const
|
|
294
|
+
const originalPropType = originalTypes[propertyName];
|
|
295
|
+
const baseOriginalPropType = isArray && originalPropType?.endsWith('[]')
|
|
296
|
+
? originalPropType.slice(0, -2).trim()
|
|
297
|
+
: originalPropType;
|
|
298
|
+
const csharpType = convertToCSharpType(baseType, baseOriginalPropType);
|
|
203
299
|
propertyDef.type = isArray ? `${csharpType}[]` : csharpType;
|
|
204
300
|
}
|
|
205
301
|
propertyDef.comment = interfaceComments?.[propertyName] ?? 'N/A';
|
|
@@ -38,14 +38,17 @@ describe('util -> convertToCSharpType', () => {
|
|
|
38
38
|
expect(convertToCSharpType('undefined')).toBe('undefined');
|
|
39
39
|
expect(convertToCSharpType('void')).toBe('void');
|
|
40
40
|
});
|
|
41
|
+
it('should convert Date to DateTimeOffset', () => {
|
|
42
|
+
expect(convertToCSharpType('Date')).toBe('DateTimeOffset');
|
|
43
|
+
});
|
|
41
44
|
it('should return the original type if no mapping exists', () => {
|
|
42
|
-
expect(convertToCSharpType('Date')).toBe('Date');
|
|
43
45
|
expect(convertToCSharpType('CustomType')).toBe('CustomType');
|
|
44
46
|
});
|
|
45
47
|
it('should handle array types', () => {
|
|
46
48
|
expect(convertToCSharpType('string[]')).toBe('string[]');
|
|
47
49
|
expect(convertToCSharpType('number[]')).toBe('double[]');
|
|
48
50
|
expect(convertToCSharpType('boolean[]')).toBe('bool[]');
|
|
51
|
+
expect(convertToCSharpType('Date[]')).toBe('DateTimeOffset[]');
|
|
49
52
|
expect(convertToCSharpType('CustomType[]')).toBe('CustomType[]');
|
|
50
53
|
});
|
|
51
54
|
it('should convert object types to "object"', () => {
|
|
@@ -56,6 +59,22 @@ describe('util -> convertToCSharpType', () => {
|
|
|
56
59
|
expect(convertToCSharpType('{ foo: string }[]')).toBe('object[]');
|
|
57
60
|
expect(convertToCSharpType('{ label: string; value: string; disabled?: boolean; }[]')).toBe('object[]');
|
|
58
61
|
});
|
|
62
|
+
it('should return TimeOnly when originalType is TimeOnly', () => {
|
|
63
|
+
expect(convertToCSharpType('`${number}:${number}:${number}`', 'TimeOnly')).toBe('TimeOnly');
|
|
64
|
+
});
|
|
65
|
+
it('should return DateOnly when originalType is DateOnly', () => {
|
|
66
|
+
expect(convertToCSharpType('`${number}-${number}-${number}`', 'DateOnly')).toBe('DateOnly');
|
|
67
|
+
});
|
|
68
|
+
it('should handle TimeOnly array via originalType', () => {
|
|
69
|
+
expect(convertToCSharpType('`${number}:${number}:${number}`[]', 'TimeOnly[]')).toBe('TimeOnly[]');
|
|
70
|
+
});
|
|
71
|
+
it('should handle DateOnly array via originalType', () => {
|
|
72
|
+
expect(convertToCSharpType('`${number}-${number}-${number}`[]', 'DateOnly[]')).toBe('DateOnly[]');
|
|
73
|
+
});
|
|
74
|
+
it('should ignore originalType when it is not TimeOnly or DateOnly', () => {
|
|
75
|
+
expect(convertToCSharpType('string', 'SomeAlias')).toBe('string');
|
|
76
|
+
expect(convertToCSharpType('number', 'MyNumber')).toBe('double');
|
|
77
|
+
});
|
|
59
78
|
});
|
|
60
79
|
describe('util -> checkForRecursiveType', () => {
|
|
61
80
|
it('marks recursive when structure keys match parent keys', () => {
|
|
@@ -247,4 +266,79 @@ describe('util -> parseCSharpObjectStructure', () => {
|
|
|
247
266
|
expect(() => parseCSharpObjectStructure('{ unclosed: string;')).toThrow();
|
|
248
267
|
expect(() => parseCSharpObjectStructure('malformed')).not.toThrow();
|
|
249
268
|
});
|
|
269
|
+
it('should pass original type names to convertToCSharpType for TimeOnly', () => {
|
|
270
|
+
const result = parseCSharpObjectStructure('{ start?: `${number}:${number}:${number}`; end?: `${number}:${number}:${number}` }', '{ start?: TimeOnly; end?: TimeOnly }');
|
|
271
|
+
expect(result).toEqual({
|
|
272
|
+
start: {
|
|
273
|
+
type: 'TimeOnly',
|
|
274
|
+
optional: true,
|
|
275
|
+
comment: 'N/A',
|
|
276
|
+
},
|
|
277
|
+
end: {
|
|
278
|
+
type: 'TimeOnly',
|
|
279
|
+
optional: true,
|
|
280
|
+
comment: 'N/A',
|
|
281
|
+
},
|
|
282
|
+
});
|
|
283
|
+
});
|
|
284
|
+
it('should pass original type names to convertToCSharpType for DateOnly', () => {
|
|
285
|
+
const result = parseCSharpObjectStructure('{ date?: `${number}-${number}-${number}` }', '{ date?: DateOnly }');
|
|
286
|
+
expect(result).toEqual({
|
|
287
|
+
date: {
|
|
288
|
+
type: 'DateOnly',
|
|
289
|
+
optional: true,
|
|
290
|
+
comment: 'N/A',
|
|
291
|
+
},
|
|
292
|
+
});
|
|
293
|
+
});
|
|
294
|
+
it('should handle array types with original type names', () => {
|
|
295
|
+
const result = parseCSharpObjectStructure('{ times: `${number}:${number}:${number}`[] }', '{ times: TimeOnly[] }');
|
|
296
|
+
expect(result).toEqual({
|
|
297
|
+
times: {
|
|
298
|
+
type: 'TimeOnly[]',
|
|
299
|
+
optional: false,
|
|
300
|
+
comment: 'N/A',
|
|
301
|
+
},
|
|
302
|
+
});
|
|
303
|
+
});
|
|
304
|
+
it('should pass original type through nested object structures', () => {
|
|
305
|
+
const result = parseCSharpObjectStructure('{ range: { start?: `${number}:${number}:${number}`; end?: `${number}:${number}:${number}` } }', '{ range: { start?: TimeOnly; end?: TimeOnly } }');
|
|
306
|
+
expect(result).toEqual({
|
|
307
|
+
range: {
|
|
308
|
+
type: 'object',
|
|
309
|
+
optional: false,
|
|
310
|
+
comment: 'N/A',
|
|
311
|
+
structure: {
|
|
312
|
+
start: {
|
|
313
|
+
type: 'TimeOnly',
|
|
314
|
+
optional: true,
|
|
315
|
+
comment: 'N/A',
|
|
316
|
+
},
|
|
317
|
+
end: {
|
|
318
|
+
type: 'TimeOnly',
|
|
319
|
+
optional: true,
|
|
320
|
+
comment: 'N/A',
|
|
321
|
+
},
|
|
322
|
+
},
|
|
323
|
+
},
|
|
324
|
+
});
|
|
325
|
+
});
|
|
326
|
+
it('should handle mixed original types and regular types', () => {
|
|
327
|
+
const result = parseCSharpObjectStructure('{ label: string; time: `${number}:${number}:${number}`; count: number }', '{ label: string; time: TimeOnly; count: number }');
|
|
328
|
+
expect(result).toEqual({
|
|
329
|
+
label: { type: 'string', optional: false, comment: 'N/A' },
|
|
330
|
+
time: { type: 'TimeOnly', optional: false, comment: 'N/A' },
|
|
331
|
+
count: { type: 'double', optional: false, comment: 'N/A' },
|
|
332
|
+
});
|
|
333
|
+
});
|
|
334
|
+
it('should still work when originalTypeString is not provided', () => {
|
|
335
|
+
const result = parseCSharpObjectStructure('{ start?: `${number}:${number}:${number}` }');
|
|
336
|
+
expect(result).toEqual({
|
|
337
|
+
start: {
|
|
338
|
+
type: '`${number}:${number}:${number}`',
|
|
339
|
+
optional: true,
|
|
340
|
+
comment: 'N/A',
|
|
341
|
+
},
|
|
342
|
+
});
|
|
343
|
+
});
|
|
250
344
|
});
|