@nova-design-system/nova-angular-19 3.23.0 → 3.25.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.
@@ -528,6 +528,93 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
528
528
  standalone: false
529
529
  }]
530
530
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
531
+ let NvDrawer = class NvDrawer {
532
+ constructor(c, r, z) {
533
+ this.z = z;
534
+ this.openChanged = new EventEmitter();
535
+ c.detach();
536
+ this.el = r.nativeElement;
537
+ }
538
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvDrawer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
539
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvDrawer, isStandalone: false, selector: "nv-drawer", inputs: { autofocus: "autofocus", clickOutside: "clickOutside", controlled: "controlled", open: "open", side: "side", size: "size", swipeToOpen: "swipeToOpen", undismissable: "undismissable", width: "width" }, outputs: { openChanged: "openChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
540
+ };
541
+ NvDrawer = __decorate([
542
+ ProxyCmp({
543
+ inputs: ['autofocus', 'clickOutside', 'controlled', 'open', 'side', 'size', 'swipeToOpen', 'undismissable', 'width'],
544
+ methods: ['show', 'close']
545
+ })
546
+ ], NvDrawer);
547
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvDrawer, decorators: [{
548
+ type: Component,
549
+ args: [{
550
+ selector: 'nv-drawer',
551
+ changeDetection: ChangeDetectionStrategy.OnPush,
552
+ template: '<ng-content></ng-content>',
553
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
554
+ inputs: ['autofocus', 'clickOutside', 'controlled', 'open', 'side', 'size', 'swipeToOpen', 'undismissable', 'width'],
555
+ outputs: ['openChanged'],
556
+ standalone: false
557
+ }]
558
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { openChanged: [{
559
+ type: Output
560
+ }] } });
561
+ let NvDrawerfooter = class NvDrawerfooter {
562
+ constructor(c, r, z) {
563
+ this.z = z;
564
+ this.drawerCanceled = new EventEmitter();
565
+ this.drawerPrimaryClicked = new EventEmitter();
566
+ c.detach();
567
+ this.el = r.nativeElement;
568
+ }
569
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvDrawerfooter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
570
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvDrawerfooter, isStandalone: false, selector: "nv-drawerfooter", inputs: { cancelLabel: "cancelLabel", danger: "danger", disabled: "disabled", form: "form", leadingIcon: "leadingIcon", primaryButtonType: "primaryButtonType", primaryLabel: "primaryLabel", trailingIcon: "trailingIcon", undismissable: "undismissable" }, outputs: { drawerCanceled: "drawerCanceled", drawerPrimaryClicked: "drawerPrimaryClicked" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
571
+ };
572
+ NvDrawerfooter = __decorate([
573
+ ProxyCmp({
574
+ inputs: ['cancelLabel', 'danger', 'disabled', 'form', 'leadingIcon', 'primaryButtonType', 'primaryLabel', 'trailingIcon', 'undismissable']
575
+ })
576
+ ], NvDrawerfooter);
577
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvDrawerfooter, decorators: [{
578
+ type: Component,
579
+ args: [{
580
+ selector: 'nv-drawerfooter',
581
+ changeDetection: ChangeDetectionStrategy.OnPush,
582
+ template: '<ng-content></ng-content>',
583
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
584
+ inputs: ['cancelLabel', 'danger', 'disabled', 'form', 'leadingIcon', 'primaryButtonType', 'primaryLabel', 'trailingIcon', 'undismissable'],
585
+ outputs: ['drawerCanceled', 'drawerPrimaryClicked'],
586
+ standalone: false
587
+ }]
588
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { drawerCanceled: [{
589
+ type: Output
590
+ }], drawerPrimaryClicked: [{
591
+ type: Output
592
+ }] } });
593
+ let NvDrawerheader = class NvDrawerheader {
594
+ constructor(c, r, z) {
595
+ this.z = z;
596
+ c.detach();
597
+ this.el = r.nativeElement;
598
+ }
599
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvDrawerheader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
600
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvDrawerheader, isStandalone: false, selector: "nv-drawerheader", inputs: { heading: "heading", subheading: "subheading" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
601
+ };
602
+ NvDrawerheader = __decorate([
603
+ ProxyCmp({
604
+ inputs: ['heading', 'subheading']
605
+ })
606
+ ], NvDrawerheader);
607
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvDrawerheader, decorators: [{
608
+ type: Component,
609
+ args: [{
610
+ selector: 'nv-drawerheader',
611
+ changeDetection: ChangeDetectionStrategy.OnPush,
612
+ template: '<ng-content></ng-content>',
613
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
614
+ inputs: ['heading', 'subheading'],
615
+ standalone: false
616
+ }]
617
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
531
618
  let NvFieldcheckbox = class NvFieldcheckbox {
532
619
  constructor(c, r, z) {
533
620
  this.z = z;
@@ -1196,6 +1283,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
1196
1283
  standalone: false
1197
1284
  }]
1198
1285
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1286
+ let NvPaginationtable = class NvPaginationtable {
1287
+ constructor(c, r, z) {
1288
+ this.z = z;
1289
+ this.pageIndexChanged = new EventEmitter();
1290
+ this.pageSizeChanged = new EventEmitter();
1291
+ c.detach();
1292
+ this.el = r.nativeElement;
1293
+ }
1294
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvPaginationtable, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1295
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvPaginationtable, isStandalone: false, selector: "nv-paginationtable", inputs: { hideControls: "hideControls", hideFirstLast: "hideFirstLast", hidePrevNext: "hidePrevNext", labelPage: "labelPage", labelPageSizeOption: "labelPageSizeOption", labelTotal: "labelTotal", pageCount: "pageCount", pageIndex: "pageIndex", pageSize: "pageSize", rowCount: "rowCount" }, outputs: { pageIndexChanged: "pageIndexChanged", pageSizeChanged: "pageSizeChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1296
+ };
1297
+ NvPaginationtable = __decorate([
1298
+ ProxyCmp({
1299
+ inputs: ['hideControls', 'hideFirstLast', 'hidePrevNext', 'labelPage', 'labelPageSizeOption', 'labelTotal', 'pageCount', 'pageIndex', 'pageSize', 'rowCount'],
1300
+ methods: ['firstPage', 'previousPage', 'nextPage', 'lastPage', 'setPageIndex', 'setPageSize']
1301
+ })
1302
+ ], NvPaginationtable);
1303
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvPaginationtable, decorators: [{
1304
+ type: Component,
1305
+ args: [{
1306
+ selector: 'nv-paginationtable',
1307
+ changeDetection: ChangeDetectionStrategy.OnPush,
1308
+ template: '<ng-content></ng-content>',
1309
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1310
+ inputs: ['hideControls', 'hideFirstLast', 'hidePrevNext', 'labelPage', 'labelPageSizeOption', 'labelTotal', 'pageCount', 'pageIndex', 'pageSize', 'rowCount'],
1311
+ outputs: ['pageIndexChanged', 'pageSizeChanged'],
1312
+ standalone: false
1313
+ }]
1314
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { pageIndexChanged: [{
1315
+ type: Output
1316
+ }], pageSizeChanged: [{
1317
+ type: Output
1318
+ }] } });
1199
1319
  let NvPopover = class NvPopover {
1200
1320
  constructor(c, r, z) {
1201
1321
  this.z = z;
@@ -1711,6 +1831,9 @@ const DIRECTIVES = [
1711
1831
  NvDialog,
1712
1832
  NvDialogfooter,
1713
1833
  NvDialogheader,
1834
+ NvDrawer,
1835
+ NvDrawerfooter,
1836
+ NvDrawerheader,
1714
1837
  NvFieldcheckbox,
1715
1838
  NvFielddate,
1716
1839
  NvFielddaterange,
@@ -1734,6 +1857,7 @@ const DIRECTIVES = [
1734
1857
  NvNotification,
1735
1858
  NvNotificationBullet,
1736
1859
  NvNotificationcontainer,
1860
+ NvPaginationtable,
1737
1861
  NvPopover,
1738
1862
  NvRow,
1739
1863
  NvSidebar,
@@ -2563,6 +2687,12 @@ class NvDatatable {
2563
2687
  this.columns = input([]);
2564
2688
  /** Row data */
2565
2689
  this.rows = input([]);
2690
+ /**
2691
+ * Data handling mode for sorting and filtering operations.
2692
+ * - 'client': All operations handled in browser (default)
2693
+ * - 'server': Operations trigger callbacks for server-side handling
2694
+ */
2695
+ this.mode = input('client');
2566
2696
  /** Optional pagination configuration */
2567
2697
  this.pagination = input(undefined);
2568
2698
  /** Optional sorting configuration */
@@ -2591,7 +2721,7 @@ class NvDatatable {
2591
2721
  /** Intersection observer for infinite scroll */
2592
2722
  this.observer = null;
2593
2723
  /** Helper to check if using infinite scroll */
2594
- this.isInfiniteScroll = computed(() => this.pagination()?.mode === 'infinite');
2724
+ this.isInfiniteScroll = computed(() => this.pagination()?.infinite === true);
2595
2725
  /** Computed table columns with proper typing and filtering. */
2596
2726
  this.tableColumns = computed(() => {
2597
2727
  const templateMap = this.cellTemplateMap();
@@ -2654,21 +2784,24 @@ class NvDatatable {
2654
2784
  this.tableInstance = createAngularTable(() => {
2655
2785
  const paginationConfig = this.pagination();
2656
2786
  const sortingConfig = this.sorting();
2787
+ const componentMode = this.mode();
2788
+ const isServerMode = componentMode === 'server';
2789
+ const isInfinite = paginationConfig?.infinite === true;
2657
2790
  // Determine base table configuration with sorting
2658
2791
  const getBaseTableConfig = () => {
2659
2792
  const baseConfig = {
2660
2793
  data: this.rows(),
2661
2794
  columns: this.tableColumns(),
2662
2795
  getCoreRowModel: getCoreRowModel(),
2663
- // Sorting configuration
2796
+ // Sorting configuration - uses top-level mode
2664
2797
  ...(sortingConfig && {
2665
2798
  state: {
2666
- sorting: sortingConfig.mode === 'server' && sortingConfig.sortState
2799
+ sorting: isServerMode && sortingConfig.sortState
2667
2800
  ? sortingConfig.sortState
2668
2801
  : this.sortingState(),
2669
2802
  },
2670
2803
  onSortingChange: (updaterOrValue) => {
2671
- const currentSort = sortingConfig.mode === 'server' && sortingConfig.sortState
2804
+ const currentSort = isServerMode && sortingConfig.sortState
2672
2805
  ? sortingConfig.sortState
2673
2806
  : this.sortingState();
2674
2807
  const newSort = typeof updaterOrValue === 'function'
@@ -2677,12 +2810,11 @@ class NvDatatable {
2677
2810
  // Always update internal state for reactivity
2678
2811
  this.sortingState.set(newSort);
2679
2812
  // For server-side sorting, also call the callback
2680
- if (sortingConfig?.mode === 'server' &&
2681
- sortingConfig.onSortingChange) {
2813
+ if (isServerMode && sortingConfig.onSortingChange) {
2682
2814
  sortingConfig.onSortingChange(newSort);
2683
2815
  }
2684
2816
  },
2685
- manualSorting: sortingConfig.mode === 'server',
2817
+ manualSorting: isServerMode,
2686
2818
  enableSorting: true,
2687
2819
  enableMultiSort: sortingConfig.enableMultiSort ?? false,
2688
2820
  enableSortingRemoval: sortingConfig.enableSortingRemoval ?? true,
@@ -2692,17 +2824,22 @@ class NvDatatable {
2692
2824
  isMultiSortEvent: sortingConfig.enableMultiSort
2693
2825
  ? () => true
2694
2826
  : undefined,
2695
- getSortedRowModel: sortingConfig.mode === 'client' ? getSortedRowModel() : undefined,
2827
+ getSortedRowModel: !isServerMode ? getSortedRowModel() : undefined,
2696
2828
  }),
2697
2829
  };
2698
2830
  return baseConfig;
2699
2831
  };
2700
- if (!paginationConfig || paginationConfig.mode === 'infinite') {
2701
- // No pagination or infinite scroll - simple config
2832
+ // Infinite scroll mode (requires server mode)
2833
+ if (isInfinite) {
2834
+ // No pagination row model for infinite scroll - simple config
2702
2835
  return getBaseTableConfig();
2703
2836
  }
2704
- else if (paginationConfig.mode === 'client') {
2705
- // Client-side pagination
2837
+ // No pagination configured
2838
+ if (!paginationConfig) {
2839
+ return getBaseTableConfig();
2840
+ }
2841
+ // Client-side pagination
2842
+ if (!isServerMode) {
2706
2843
  return {
2707
2844
  ...getBaseTableConfig(),
2708
2845
  getPaginationRowModel: getPaginationRowModel(),
@@ -2714,37 +2851,35 @@ class NvDatatable {
2714
2851
  },
2715
2852
  };
2716
2853
  }
2717
- else {
2718
- // Server-side pagination - manual pagination with reactive state
2719
- const baseConfig = getBaseTableConfig();
2720
- const pageSize = this.paginationState().pageSize;
2721
- return {
2722
- ...baseConfig,
2723
- manualPagination: true,
2724
- pageCount: paginationConfig.totalPageCount !== undefined
2725
- ? paginationConfig.totalPageCount
2726
- : paginationConfig.totalRowCount !== undefined
2727
- ? Math.ceil(paginationConfig.totalRowCount / pageSize)
2728
- : -1,
2729
- state: {
2730
- pagination: this.paginationState(),
2731
- ...(baseConfig.state && { sorting: baseConfig.state.sorting }),
2732
- },
2733
- onPaginationChange: (updaterOrValue) => {
2734
- const newState = typeof updaterOrValue === 'function'
2735
- ? updaterOrValue(this.paginationState())
2736
- : updaterOrValue;
2737
- this.paginationState.set(newState);
2738
- // Call user's callback for server-side pagination
2739
- if (paginationConfig.onPaginationChange) {
2740
- paginationConfig.onPaginationChange({
2741
- pageIndex: newState.pageIndex,
2742
- pageSize: newState.pageSize,
2743
- });
2744
- }
2745
- },
2746
- };
2747
- }
2854
+ // Server-side pagination - manual pagination with reactive state
2855
+ const baseConfig = getBaseTableConfig();
2856
+ const pageSize = this.paginationState().pageSize;
2857
+ return {
2858
+ ...baseConfig,
2859
+ manualPagination: true,
2860
+ pageCount: paginationConfig.totalPageCount !== undefined
2861
+ ? paginationConfig.totalPageCount
2862
+ : paginationConfig.totalRowCount !== undefined
2863
+ ? Math.ceil(paginationConfig.totalRowCount / pageSize)
2864
+ : -1,
2865
+ state: {
2866
+ pagination: this.paginationState(),
2867
+ ...(baseConfig.state && { sorting: baseConfig.state.sorting }),
2868
+ },
2869
+ onPaginationChange: (updaterOrValue) => {
2870
+ const newState = typeof updaterOrValue === 'function'
2871
+ ? updaterOrValue(this.paginationState())
2872
+ : updaterOrValue;
2873
+ this.paginationState.set(newState);
2874
+ // Call user's callback for server-side pagination
2875
+ if (paginationConfig.onPaginationChange) {
2876
+ paginationConfig.onPaginationChange({
2877
+ pageIndex: newState.pageIndex,
2878
+ pageSize: newState.pageSize,
2879
+ });
2880
+ }
2881
+ },
2882
+ };
2748
2883
  });
2749
2884
  /** Build pagination API for template */
2750
2885
  this.paginationAPI = computed(() => {
@@ -2752,10 +2887,13 @@ class NvDatatable {
2752
2887
  if (!paginationConfig) {
2753
2888
  return null;
2754
2889
  }
2890
+ const componentMode = this.mode();
2891
+ const isServerMode = componentMode === 'server';
2892
+ const isInfinite = paginationConfig.infinite === true;
2755
2893
  const table = this.table();
2756
2894
  const tablePaginationState = table.getState().pagination;
2757
2895
  const pageCount = table.getPageCount();
2758
- const rowCount = paginationConfig.mode === 'server'
2896
+ const rowCount = isServerMode
2759
2897
  ? paginationConfig.totalRowCount || this.rows().length
2760
2898
  : this.rows().length;
2761
2899
  return {
@@ -2771,25 +2909,31 @@ class NvDatatable {
2771
2909
  setPageSize: (size) => table.setPageSize(size),
2772
2910
  canPreviousPage: table.getCanPreviousPage(),
2773
2911
  canNextPage: table.getCanNextPage(),
2774
- isLoading: paginationConfig.mode === 'infinite'
2775
- ? paginationConfig.isLoading
2776
- : undefined,
2777
- hasMore: paginationConfig.mode === 'infinite'
2778
- ? paginationConfig.hasMore
2779
- : undefined,
2912
+ isLoading: isInfinite ? paginationConfig.isLoading : undefined,
2913
+ hasMore: isInfinite ? paginationConfig.hasMore : undefined,
2780
2914
  };
2781
2915
  });
2916
+ // Validate infinite scroll requires server mode
2917
+ effect(() => {
2918
+ const paginationConfig = this.pagination();
2919
+ const componentMode = this.mode();
2920
+ if (paginationConfig?.infinite === true && componentMode !== 'server') {
2921
+ console.warn('[NvDatatable] pagination.infinite=true requires mode="server". ' +
2922
+ 'Infinite scroll relies on server-side data loading.');
2923
+ }
2924
+ });
2782
2925
  // Set up intersection observer for infinite scroll
2783
2926
  effect(() => {
2784
2927
  const paginationConfig = this.pagination();
2785
2928
  const rows = this.rows(); // Track rows changes
2929
+ const isInfinite = paginationConfig?.infinite === true;
2786
2930
  // Clean up existing observer
2787
2931
  if (this.observer) {
2788
2932
  this.observer.disconnect();
2789
2933
  this.observer = null;
2790
2934
  }
2791
2935
  // Only set up observer for infinite scroll mode
2792
- if (paginationConfig?.mode !== 'infinite' || rows.length === 0) {
2936
+ if (!isInfinite || rows.length === 0) {
2793
2937
  return;
2794
2938
  }
2795
2939
  // Use setTimeout to ensure DOM is updated
@@ -2804,7 +2948,6 @@ class NvDatatable {
2804
2948
  this.observer = new IntersectionObserver((entries) => {
2805
2949
  const entry = entries[0];
2806
2950
  if (entry.isIntersecting &&
2807
- paginationConfig.mode === 'infinite' &&
2808
2951
  paginationConfig.hasMore &&
2809
2952
  !paginationConfig.isLoading &&
2810
2953
  paginationConfig.onLoadMore) {
@@ -2837,7 +2980,7 @@ class NvDatatable {
2837
2980
  }
2838
2981
  }
2839
2982
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvDatatable, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2840
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.5", type: NvDatatable, isStandalone: true, selector: "nv-datatable", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, pagination: { classPropertyName: "pagination", publicName: "pagination", isSignal: true, isRequired: false, transformFunction: null }, sorting: { classPropertyName: "sorting", publicName: "sorting", isSignal: true, isRequired: false, transformFunction: null }, stickyHeader: { classPropertyName: "stickyHeader", publicName: "stickyHeader", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "paginationTemplate", first: true, predicate: ["paginationTemplate"], descendants: true, read: TemplateRef }, { propertyName: "cellTemplates", predicate: NvDatatableCellDirective }], viewQueries: [{ propertyName: "tableRows", first: true, predicate: ["tableRow"], descendants: true, isSignal: true }], ngImport: i0, template: `
2983
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.5", type: NvDatatable, isStandalone: true, selector: "nv-datatable", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, pagination: { classPropertyName: "pagination", publicName: "pagination", isSignal: true, isRequired: false, transformFunction: null }, sorting: { classPropertyName: "sorting", publicName: "sorting", isSignal: true, isRequired: false, transformFunction: null }, stickyHeader: { classPropertyName: "stickyHeader", publicName: "stickyHeader", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "paginationTemplate", first: true, predicate: ["paginationTemplate"], descendants: true, read: TemplateRef }, { propertyName: "cellTemplates", predicate: NvDatatableCellDirective }], viewQueries: [{ propertyName: "tableRows", first: true, predicate: ["tableRow"], descendants: true, isSignal: true }], ngImport: i0, template: `
2841
2984
  <nv-table>
2842
2985
  <table>
2843
2986
  <thead [attr.data-sticky-top]="stickyHeader() ? 'true' : null">
@@ -2908,12 +3051,27 @@ class NvDatatable {
2908
3051
 
2909
3052
  <!-- Render pagination if configured -->
2910
3053
  @if (paginationAPI()) {
2911
- <ng-container
2912
- *ngTemplateOutlet="
2913
- paginationTemplate || null;
2914
- context: { $implicit: paginationAPI() }
2915
- "
2916
- ></ng-container>
3054
+ @if (paginationTemplate) {
3055
+ <ng-container
3056
+ *ngTemplateOutlet="
3057
+ paginationTemplate;
3058
+ context: { $implicit: paginationAPI() }
3059
+ "
3060
+ ></ng-container>
3061
+ } @else if (mode() === 'client' && pagination() && !pagination()?.infinite) {
3062
+ <!-- Default pagination with nv-paginationtable (client mode only) -->
3063
+ <nv-paginationtable
3064
+ [pageIndex]="paginationAPI()!.pageIndex"
3065
+ [pageSize]="paginationAPI()!.pageSize"
3066
+ [pageCount]="paginationAPI()!.pageCount"
3067
+ [rowCount]="paginationAPI()!.rowCount"
3068
+ [attr.label-page]="pagination()?.labels?.page || null"
3069
+ [attr.label-total]="pagination()?.labels?.total || null"
3070
+ [attr.label-page-size-option]="pagination()?.labels?.pageSizeOption || null"
3071
+ (pageIndexChanged)="paginationAPI()!.setPageIndex($event.detail)"
3072
+ (pageSizeChanged)="paginationAPI()!.setPageSize($event.detail)"
3073
+ ></nv-paginationtable>
3074
+ }
2917
3075
  }
2918
3076
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: FlexRenderDirective, selector: "[flexRender]", inputs: ["flexRender", "flexRenderProps", "flexRenderInjector"] }] }); }
2919
3077
  }
@@ -2995,12 +3153,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
2995
3153
 
2996
3154
  <!-- Render pagination if configured -->
2997
3155
  @if (paginationAPI()) {
2998
- <ng-container
2999
- *ngTemplateOutlet="
3000
- paginationTemplate || null;
3001
- context: { $implicit: paginationAPI() }
3002
- "
3003
- ></ng-container>
3156
+ @if (paginationTemplate) {
3157
+ <ng-container
3158
+ *ngTemplateOutlet="
3159
+ paginationTemplate;
3160
+ context: { $implicit: paginationAPI() }
3161
+ "
3162
+ ></ng-container>
3163
+ } @else if (mode() === 'client' && pagination() && !pagination()?.infinite) {
3164
+ <!-- Default pagination with nv-paginationtable (client mode only) -->
3165
+ <nv-paginationtable
3166
+ [pageIndex]="paginationAPI()!.pageIndex"
3167
+ [pageSize]="paginationAPI()!.pageSize"
3168
+ [pageCount]="paginationAPI()!.pageCount"
3169
+ [rowCount]="paginationAPI()!.rowCount"
3170
+ [attr.label-page]="pagination()?.labels?.page || null"
3171
+ [attr.label-total]="pagination()?.labels?.total || null"
3172
+ [attr.label-page-size-option]="pagination()?.labels?.pageSizeOption || null"
3173
+ (pageIndexChanged)="paginationAPI()!.setPageIndex($event.detail)"
3174
+ (pageSizeChanged)="paginationAPI()!.setPageSize($event.detail)"
3175
+ ></nv-paginationtable>
3176
+ }
3004
3177
  }
3005
3178
  `,
3006
3179
  }]
@@ -3251,6 +3424,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
3251
3424
  type: HostListener,
3252
3425
  args: ['openChanged', ['$event']]
3253
3426
  }] } });
3427
+ class NvDrawerValueAccessor extends ValueAccessor {
3428
+ constructor(el) {
3429
+ super(el);
3430
+ }
3431
+ handleOpenChanged(event) {
3432
+ this.handleChangeEvent(event.target.open);
3433
+ }
3434
+ writeValue(value) {
3435
+ this.el.nativeElement.open = this.lastValue = value;
3436
+ }
3437
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvDrawerValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
3438
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.5", type: NvDrawerValueAccessor, isStandalone: true, selector: "nv-drawer", host: { listeners: { "openChanged": "handleOpenChanged($event)" } }, providers: [
3439
+ {
3440
+ provide: NG_VALUE_ACCESSOR,
3441
+ useExisting: NvDrawerValueAccessor,
3442
+ multi: true,
3443
+ },
3444
+ ], usesInheritance: true, ngImport: i0 }); }
3445
+ }
3446
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvDrawerValueAccessor, decorators: [{
3447
+ type: Directive,
3448
+ args: [{
3449
+ selector: 'nv-drawer',
3450
+ providers: [
3451
+ {
3452
+ provide: NG_VALUE_ACCESSOR,
3453
+ useExisting: NvDrawerValueAccessor,
3454
+ multi: true,
3455
+ },
3456
+ ],
3457
+ }]
3458
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { handleOpenChanged: [{
3459
+ type: HostListener,
3460
+ args: ['openChanged', ['$event']]
3461
+ }] } });
3254
3462
  class NvFieldcheckboxValueAccessor extends ValueAccessor {
3255
3463
  constructor(el) {
3256
3464
  super(el);
@@ -3741,6 +3949,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
3741
3949
  type: HostListener,
3742
3950
  args: ['hiddenChanged', ['$event']]
3743
3951
  }] } });
3952
+ class NvPaginationtableValueAccessor extends ValueAccessor {
3953
+ constructor(el) {
3954
+ super(el);
3955
+ }
3956
+ handlePageIndexChanged(event) {
3957
+ this.handleChangeEvent(event.target.pageIndex);
3958
+ }
3959
+ writeValue(value) {
3960
+ this.el.nativeElement.pageIndex = this.lastValue = value;
3961
+ }
3962
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvPaginationtableValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
3963
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.5", type: NvPaginationtableValueAccessor, isStandalone: true, selector: "nv-paginationtable", host: { listeners: { "pageIndexChanged": "handlePageIndexChanged($event)" } }, providers: [
3964
+ {
3965
+ provide: NG_VALUE_ACCESSOR,
3966
+ useExisting: NvPaginationtableValueAccessor,
3967
+ multi: true,
3968
+ },
3969
+ ], usesInheritance: true, ngImport: i0 }); }
3970
+ }
3971
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvPaginationtableValueAccessor, decorators: [{
3972
+ type: Directive,
3973
+ args: [{
3974
+ selector: 'nv-paginationtable',
3975
+ providers: [
3976
+ {
3977
+ provide: NG_VALUE_ACCESSOR,
3978
+ useExisting: NvPaginationtableValueAccessor,
3979
+ multi: true,
3980
+ },
3981
+ ],
3982
+ }]
3983
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { handlePageIndexChanged: [{
3984
+ type: HostListener,
3985
+ args: ['pageIndexChanged', ['$event']]
3986
+ }] } });
3744
3987
  class NvPopoverValueAccessor extends ValueAccessor {
3745
3988
  constructor(el) {
3746
3989
  super(el);
@@ -3922,6 +4165,7 @@ const VALUE_ACCESSORS = [
3922
4165
  NvCalendarValueAccessor,
3923
4166
  NvDatagridValueAccessor,
3924
4167
  NvDialogValueAccessor,
4168
+ NvDrawerValueAccessor,
3925
4169
  NvFieldcheckboxValueAccessor,
3926
4170
  NvFielddateValueAccessor,
3927
4171
  NvFielddaterangeValueAccessor,
@@ -3936,6 +4180,7 @@ const VALUE_ACCESSORS = [
3936
4180
  NvFieldtextareaValueAccessor,
3937
4181
  NvFieldtimeValueAccessor,
3938
4182
  NvNotificationValueAccessor,
4183
+ NvPaginationtableValueAccessor,
3939
4184
  NvPopoverValueAccessor,
3940
4185
  NvSidebarValueAccessor,
3941
4186
  NvSplitValueAccessor,
@@ -3945,7 +4190,7 @@ const VALUE_ACCESSORS = [
3945
4190
 
3946
4191
  class NovaComponentsModule {
3947
4192
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
3948
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsModule, declarations: [NvAccordion, NvAccordionItem, NvAlert, NvAvatar, NvBadge, NvBreadcrumb, NvBreadcrumbs, NvButton, NvButtongroup, NvCalendar, NvCol, NvDatagrid, NvDatagridcolumn, NvDialog, NvDialogfooter, NvDialogheader, NvFieldcheckbox, NvFielddate, NvFielddaterange, NvFielddropdown, NvFielddropdownitem, NvFielddropdownitemcheck, NvFieldmultiselect, NvFieldnumber, NvFieldpassword, NvFieldradio, NvFieldselect, NvFieldslider, NvFieldtext, NvFieldtextarea, NvFieldtime, NvIcon, NvIconbutton, NvLoader, NvMenu, NvMenuitem, NvNotification, NvNotificationBullet, NvNotificationcontainer, NvPopover, NvRow, NvSidebar, NvSidebarcontent, NvSidebardivider, NvSidebarfooter, NvSidebargroup, NvSidebarheader, NvSidebarlogo, NvSidebarnavitem, NvSidebarnavsubitem, NvSplit, NvStack, NvTable, NvTableheader, NvToggle, NvTogglebutton, NvTogglebuttongroup, NvTooltip], imports: [NvDatatable], exports: [NvAccordion, NvAccordionItem, NvAlert, NvAvatar, NvBadge, NvBreadcrumb, NvBreadcrumbs, NvButton, NvButtongroup, NvCalendar, NvCol, NvDatagrid, NvDatagridcolumn, NvDialog, NvDialogfooter, NvDialogheader, NvFieldcheckbox, NvFielddate, NvFielddaterange, NvFielddropdown, NvFielddropdownitem, NvFielddropdownitemcheck, NvFieldmultiselect, NvFieldnumber, NvFieldpassword, NvFieldradio, NvFieldselect, NvFieldslider, NvFieldtext, NvFieldtextarea, NvFieldtime, NvIcon, NvIconbutton, NvLoader, NvMenu, NvMenuitem, NvNotification, NvNotificationBullet, NvNotificationcontainer, NvPopover, NvRow, NvSidebar, NvSidebarcontent, NvSidebardivider, NvSidebarfooter, NvSidebargroup, NvSidebarheader, NvSidebarlogo, NvSidebarnavitem, NvSidebarnavsubitem, NvSplit, NvStack, NvTable, NvTableheader, NvToggle, NvTogglebutton, NvTogglebuttongroup, NvTooltip, NvDatatable] }); }
4193
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsModule, declarations: [NvAccordion, NvAccordionItem, NvAlert, NvAvatar, NvBadge, NvBreadcrumb, NvBreadcrumbs, NvButton, NvButtongroup, NvCalendar, NvCol, NvDatagrid, NvDatagridcolumn, NvDialog, NvDialogfooter, NvDialogheader, NvDrawer, NvDrawerfooter, NvDrawerheader, NvFieldcheckbox, NvFielddate, NvFielddaterange, NvFielddropdown, NvFielddropdownitem, NvFielddropdownitemcheck, NvFieldmultiselect, NvFieldnumber, NvFieldpassword, NvFieldradio, NvFieldselect, NvFieldslider, NvFieldtext, NvFieldtextarea, NvFieldtime, NvIcon, NvIconbutton, NvLoader, NvMenu, NvMenuitem, NvNotification, NvNotificationBullet, NvNotificationcontainer, NvPaginationtable, NvPopover, NvRow, NvSidebar, NvSidebarcontent, NvSidebardivider, NvSidebarfooter, NvSidebargroup, NvSidebarheader, NvSidebarlogo, NvSidebarnavitem, NvSidebarnavsubitem, NvSplit, NvStack, NvTable, NvTableheader, NvToggle, NvTogglebutton, NvTogglebuttongroup, NvTooltip], imports: [NvDatatable], exports: [NvAccordion, NvAccordionItem, NvAlert, NvAvatar, NvBadge, NvBreadcrumb, NvBreadcrumbs, NvButton, NvButtongroup, NvCalendar, NvCol, NvDatagrid, NvDatagridcolumn, NvDialog, NvDialogfooter, NvDialogheader, NvDrawer, NvDrawerfooter, NvDrawerheader, NvFieldcheckbox, NvFielddate, NvFielddaterange, NvFielddropdown, NvFielddropdownitem, NvFielddropdownitemcheck, NvFieldmultiselect, NvFieldnumber, NvFieldpassword, NvFieldradio, NvFieldselect, NvFieldslider, NvFieldtext, NvFieldtextarea, NvFieldtime, NvIcon, NvIconbutton, NvLoader, NvMenu, NvMenuitem, NvNotification, NvNotificationBullet, NvNotificationcontainer, NvPaginationtable, NvPopover, NvRow, NvSidebar, NvSidebarcontent, NvSidebardivider, NvSidebarfooter, NvSidebargroup, NvSidebarheader, NvSidebarlogo, NvSidebarnavitem, NvSidebarnavsubitem, NvSplit, NvStack, NvTable, NvTableheader, NvToggle, NvTogglebutton, NvTogglebuttongroup, NvTooltip, NvDatatable] }); }
3949
4194
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsModule, imports: [NvDatatable] }); }
3950
4195
  }
3951
4196
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsModule, decorators: [{
@@ -3958,7 +4203,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
3958
4203
  }] });
3959
4204
  class NovaComponentsValueAccessorModule {
3960
4205
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsValueAccessorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
3961
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsValueAccessorModule, imports: [NvAccordionValueAccessor, NvAlertValueAccessor, NvCalendarValueAccessor, NvDatagridValueAccessor, NvDialogValueAccessor, NvFieldcheckboxValueAccessor, NvFielddateValueAccessor, NvFielddaterangeValueAccessor, NvFielddropdownValueAccessor, NvFieldmultiselectValueAccessor, NvFieldnumberValueAccessor, NvFieldpasswordValueAccessor, NvFieldradioValueAccessor, NvFieldselectValueAccessor, NvFieldsliderValueAccessor, NvFieldtextValueAccessor, NvFieldtextareaValueAccessor, NvFieldtimeValueAccessor, NvNotificationValueAccessor, NvPopoverValueAccessor, NvSidebarValueAccessor, NvSplitValueAccessor, NvToggleValueAccessor, NvTogglebuttongroupValueAccessor], exports: [NvAccordionValueAccessor, NvAlertValueAccessor, NvCalendarValueAccessor, NvDatagridValueAccessor, NvDialogValueAccessor, NvFieldcheckboxValueAccessor, NvFielddateValueAccessor, NvFielddaterangeValueAccessor, NvFielddropdownValueAccessor, NvFieldmultiselectValueAccessor, NvFieldnumberValueAccessor, NvFieldpasswordValueAccessor, NvFieldradioValueAccessor, NvFieldselectValueAccessor, NvFieldsliderValueAccessor, NvFieldtextValueAccessor, NvFieldtextareaValueAccessor, NvFieldtimeValueAccessor, NvNotificationValueAccessor, NvPopoverValueAccessor, NvSidebarValueAccessor, NvSplitValueAccessor, NvToggleValueAccessor, NvTogglebuttongroupValueAccessor] }); }
4206
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsValueAccessorModule, imports: [NvAccordionValueAccessor, NvAlertValueAccessor, NvCalendarValueAccessor, NvDatagridValueAccessor, NvDialogValueAccessor, NvDrawerValueAccessor, NvFieldcheckboxValueAccessor, NvFielddateValueAccessor, NvFielddaterangeValueAccessor, NvFielddropdownValueAccessor, NvFieldmultiselectValueAccessor, NvFieldnumberValueAccessor, NvFieldpasswordValueAccessor, NvFieldradioValueAccessor, NvFieldselectValueAccessor, NvFieldsliderValueAccessor, NvFieldtextValueAccessor, NvFieldtextareaValueAccessor, NvFieldtimeValueAccessor, NvNotificationValueAccessor, NvPaginationtableValueAccessor, NvPopoverValueAccessor, NvSidebarValueAccessor, NvSplitValueAccessor, NvToggleValueAccessor, NvTogglebuttongroupValueAccessor], exports: [NvAccordionValueAccessor, NvAlertValueAccessor, NvCalendarValueAccessor, NvDatagridValueAccessor, NvDialogValueAccessor, NvDrawerValueAccessor, NvFieldcheckboxValueAccessor, NvFielddateValueAccessor, NvFielddaterangeValueAccessor, NvFielddropdownValueAccessor, NvFieldmultiselectValueAccessor, NvFieldnumberValueAccessor, NvFieldpasswordValueAccessor, NvFieldradioValueAccessor, NvFieldselectValueAccessor, NvFieldsliderValueAccessor, NvFieldtextValueAccessor, NvFieldtextareaValueAccessor, NvFieldtimeValueAccessor, NvNotificationValueAccessor, NvPaginationtableValueAccessor, NvPopoverValueAccessor, NvSidebarValueAccessor, NvSplitValueAccessor, NvToggleValueAccessor, NvTogglebuttongroupValueAccessor] }); }
3962
4207
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsValueAccessorModule }); }
3963
4208
  }
3964
4209
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsValueAccessorModule, decorators: [{
@@ -4318,5 +4563,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
4318
4563
  * Generated bundle index. Do not edit.
4319
4564
  */
4320
4565
 
4321
- export { NotificationService, NotificationServiceComponent, NovaComponentsModule, NovaComponentsValueAccessorModule, NvAccordion, NvAccordionItem, NvAccordionValueAccessor, NvAlert, NvAlertValueAccessor, NvAvatar, NvBadge, NvBreadcrumb, NvBreadcrumbs, NvButton, NvButtongroup, NvCalendar, NvCalendarValueAccessor, NvCol, NvDatagrid, NvDatagridValueAccessor, NvDatagridcolumn, NvDatatable, NvDatatableCellDirective, NvDialog, NvDialogValueAccessor, NvDialogfooter, NvDialogheader, NvFieldcheckbox, NvFieldcheckboxValueAccessor, NvFielddate, NvFielddateValueAccessor, NvFielddaterange, NvFielddaterangeValueAccessor, NvFielddropdown, NvFielddropdownValueAccessor, NvFielddropdownitem, NvFielddropdownitemcheck, NvFieldmultiselect, NvFieldmultiselectValueAccessor, NvFieldnumber, NvFieldnumberValueAccessor, NvFieldpassword, NvFieldpasswordValueAccessor, NvFieldradio, NvFieldradioValueAccessor, NvFieldselect, NvFieldselectValueAccessor, NvFieldslider, NvFieldsliderValueAccessor, NvFieldtext, NvFieldtextValueAccessor, NvFieldtextarea, NvFieldtextareaValueAccessor, NvFieldtime, NvFieldtimeValueAccessor, NvIcon, NvIconbutton, NvLoader, NvMenu, NvMenuitem, NvNotification, NvNotificationBullet, NvNotificationValueAccessor, NvNotificationcontainer, NvPopover, NvPopoverValueAccessor, NvRow, NvSidebar, NvSidebarValueAccessor, NvSidebarcontent, NvSidebardivider, NvSidebarfooter, NvSidebargroup, NvSidebarheader, NvSidebarlogo, NvSidebarnavitem, NvSidebarnavsubitem, NvSplit, NvSplitValueAccessor, NvStack, NvTable, NvTableheader, NvToggle, NvToggleValueAccessor, NvTogglebutton, NvTogglebuttongroup, NvTogglebuttongroupValueAccessor, NvTooltip, VALUE_ACCESSORS, makeColumn, flexRenderComponent as nvDatatableRenderComponent };
4566
+ export { NotificationService, NotificationServiceComponent, NovaComponentsModule, NovaComponentsValueAccessorModule, NvAccordion, NvAccordionItem, NvAccordionValueAccessor, NvAlert, NvAlertValueAccessor, NvAvatar, NvBadge, NvBreadcrumb, NvBreadcrumbs, NvButton, NvButtongroup, NvCalendar, NvCalendarValueAccessor, NvCol, NvDatagrid, NvDatagridValueAccessor, NvDatagridcolumn, NvDatatable, NvDatatableCellDirective, NvDialog, NvDialogValueAccessor, NvDialogfooter, NvDialogheader, NvDrawer, NvDrawerValueAccessor, NvDrawerfooter, NvDrawerheader, NvFieldcheckbox, NvFieldcheckboxValueAccessor, NvFielddate, NvFielddateValueAccessor, NvFielddaterange, NvFielddaterangeValueAccessor, NvFielddropdown, NvFielddropdownValueAccessor, NvFielddropdownitem, NvFielddropdownitemcheck, NvFieldmultiselect, NvFieldmultiselectValueAccessor, NvFieldnumber, NvFieldnumberValueAccessor, NvFieldpassword, NvFieldpasswordValueAccessor, NvFieldradio, NvFieldradioValueAccessor, NvFieldselect, NvFieldselectValueAccessor, NvFieldslider, NvFieldsliderValueAccessor, NvFieldtext, NvFieldtextValueAccessor, NvFieldtextarea, NvFieldtextareaValueAccessor, NvFieldtime, NvFieldtimeValueAccessor, NvIcon, NvIconbutton, NvLoader, NvMenu, NvMenuitem, NvNotification, NvNotificationBullet, NvNotificationValueAccessor, NvNotificationcontainer, NvPaginationtable, NvPaginationtableValueAccessor, NvPopover, NvPopoverValueAccessor, NvRow, NvSidebar, NvSidebarValueAccessor, NvSidebarcontent, NvSidebardivider, NvSidebarfooter, NvSidebargroup, NvSidebarheader, NvSidebarlogo, NvSidebarnavitem, NvSidebarnavsubitem, NvSplit, NvSplitValueAccessor, NvStack, NvTable, NvTableheader, NvToggle, NvToggleValueAccessor, NvTogglebutton, NvTogglebuttongroup, NvTogglebuttongroupValueAccessor, NvTooltip, VALUE_ACCESSORS, makeColumn, flexRenderComponent as nvDatatableRenderComponent };
4322
4567
  //# sourceMappingURL=nova-components.mjs.map