@acorex/components 18.5.17 → 18.6.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.
Files changed (135) hide show
  1. package/audio-wave/lib/audio-wave.component.d.ts +5 -0
  2. package/button-group/lib/button-group.component.d.ts +5 -2
  3. package/circular-progress/lib/circular-progress.component.d.ts +21 -57
  4. package/data-pager/lib/data-pager-pagesize-dropdown.component.d.ts +28 -0
  5. package/data-pager/lib/data-pager-prev-buttons.component.d.ts +20 -0
  6. package/data-pager/lib/data-pager.component.d.ts +111 -0
  7. package/data-table/lib/columns/data-text-column.component.d.ts +58 -0
  8. package/data-table/lib/columns/row-command-column.component.d.ts +83 -0
  9. package/data-table/lib/columns/row-index-column.component.d.ts +51 -0
  10. package/data-table/lib/columns/row-select-column.component.d.ts +47 -0
  11. package/data-table/lib/data-table/data-table.component.d.ts +200 -0
  12. package/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.d.ts +185 -0
  13. package/datetime-box/lib/datetime-box.component.d.ts +59 -1
  14. package/datetime-input/lib/datetime-input.component.d.ts +133 -0
  15. package/datetime-picker/lib/datetime-picker.component.d.ts +95 -0
  16. package/decorators/lib/components/clear-button.component.d.ts +25 -0
  17. package/decorators/lib/components/close-button.component.d.ts +22 -0
  18. package/decorators/lib/components/generic-content.component.d.ts +4 -0
  19. package/decorators/lib/components/icon.component.d.ts +12 -0
  20. package/dialog/lib/dialog.component.d.ts +20 -0
  21. package/drawer/lib/drawer-container.component.d.ts +7 -0
  22. package/drawer/lib/drawer.component.d.ts +104 -0
  23. package/dropdown/lib/dropdown-box.component.d.ts +66 -0
  24. package/dropdown/lib/dropdown-panel.component.d.ts +85 -0
  25. package/dropdown-button/lib/dropdown-button.component.d.ts +38 -0
  26. package/esm2022/audio-wave/lib/audio-wave.component.mjs +6 -1
  27. package/esm2022/button-group/lib/button-group.component.mjs +6 -3
  28. package/esm2022/circular-progress/lib/circular-progress.component.mjs +45 -114
  29. package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +23 -1
  30. package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +18 -1
  31. package/esm2022/data-pager/lib/data-pager.component.mjs +109 -1
  32. package/esm2022/data-table/lib/columns/data-text-column.component.mjs +32 -1
  33. package/esm2022/data-table/lib/columns/row-command-column.component.mjs +63 -1
  34. package/esm2022/data-table/lib/columns/row-index-column.component.mjs +40 -1
  35. package/esm2022/data-table/lib/columns/row-select-column.component.mjs +39 -1
  36. package/esm2022/data-table/lib/data-table/data-table.component.mjs +183 -1
  37. package/esm2022/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.mjs +159 -1
  38. package/esm2022/datetime-box/lib/datetime-box.component.mjs +51 -2
  39. package/esm2022/datetime-input/lib/datetime-input.component.mjs +122 -1
  40. package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +90 -1
  41. package/esm2022/decorators/lib/components/clear-button.component.mjs +26 -1
  42. package/esm2022/decorators/lib/components/close-button.component.mjs +23 -1
  43. package/esm2022/decorators/lib/components/generic-content.component.mjs +5 -1
  44. package/esm2022/decorators/lib/components/icon.component.mjs +13 -1
  45. package/esm2022/dialog/lib/dialog.component.mjs +18 -1
  46. package/esm2022/drawer/lib/drawer-container.component.mjs +8 -1
  47. package/esm2022/drawer/lib/drawer.component.mjs +102 -1
  48. package/esm2022/dropdown/lib/dropdown-box.component.mjs +58 -1
  49. package/esm2022/dropdown/lib/dropdown-panel.component.mjs +77 -1
  50. package/esm2022/dropdown-button/lib/dropdown-button.component.mjs +36 -1
  51. package/esm2022/form/lib/form-field.component.mjs +40 -1
  52. package/esm2022/form/lib/form.component.mjs +59 -1
  53. package/esm2022/form/lib/validation-summary.component.mjs +41 -1
  54. package/esm2022/image/lib/image.component.mjs +47 -1
  55. package/esm2022/label/lib/label.component.mjs +32 -1
  56. package/esm2022/list/lib/list.component.mjs +84 -1
  57. package/esm2022/loading/lib/loading-spinner.component.mjs +17 -1
  58. package/esm2022/loading/lib/loading.component.mjs +27 -1
  59. package/esm2022/popup/lib/popup.component.mjs +2 -2
  60. package/esm2022/progress-bar/lib/progress-bar.component.mjs +1 -1
  61. package/esm2022/uploader/index.mjs +5 -5
  62. package/esm2022/uploader/lib/{uploader-dialog-container.component.mjs → uploader-dialog-container/uploader-dialog-container.component.mjs} +2 -2
  63. package/esm2022/uploader/lib/uploader-drop-zone/uploader-drop-zone.component.mjs +27 -0
  64. package/esm2022/uploader/lib/uploader-list/uploader-list.component.mjs +26 -0
  65. package/esm2022/uploader/lib/uploader-zone.directive.mjs +23 -16
  66. package/esm2022/uploader/lib/uploader.models.mjs +6 -1
  67. package/esm2022/uploader/lib/uploader.module.mjs +18 -13
  68. package/esm2022/uploader/lib/uploader.service.mjs +14 -7
  69. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.mjs +50 -10
  70. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-toolbar/wysiwyg-toolbar.component.mjs +8 -16
  71. package/fesm2022/acorex-components-audio-wave.mjs +5 -0
  72. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  73. package/fesm2022/acorex-components-button-group.mjs +5 -2
  74. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  75. package/fesm2022/acorex-components-circular-progress.mjs +44 -113
  76. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  77. package/fesm2022/acorex-components-data-pager.mjs +147 -0
  78. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  79. package/fesm2022/acorex-components-data-table.mjs +510 -0
  80. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  81. package/fesm2022/acorex-components-datetime-box.mjs +50 -1
  82. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  83. package/fesm2022/acorex-components-datetime-input.mjs +121 -0
  84. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  85. package/fesm2022/acorex-components-datetime-picker.mjs +89 -0
  86. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  87. package/fesm2022/acorex-components-decorators.mjs +63 -0
  88. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  89. package/fesm2022/acorex-components-dialog.mjs +17 -0
  90. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  91. package/fesm2022/acorex-components-drawer.mjs +108 -0
  92. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  93. package/fesm2022/acorex-components-dropdown-button.mjs +35 -0
  94. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  95. package/fesm2022/acorex-components-dropdown.mjs +133 -0
  96. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  97. package/fesm2022/acorex-components-form.mjs +137 -0
  98. package/fesm2022/acorex-components-form.mjs.map +1 -1
  99. package/fesm2022/acorex-components-image.mjs +46 -0
  100. package/fesm2022/acorex-components-image.mjs.map +1 -1
  101. package/fesm2022/acorex-components-label.mjs +31 -0
  102. package/fesm2022/acorex-components-label.mjs.map +1 -1
  103. package/fesm2022/acorex-components-list.mjs +83 -0
  104. package/fesm2022/acorex-components-list.mjs.map +1 -1
  105. package/fesm2022/acorex-components-loading.mjs +42 -0
  106. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  107. package/fesm2022/acorex-components-popup.mjs +1 -1
  108. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  109. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  110. package/fesm2022/acorex-components-uploader.mjs +63 -32
  111. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  112. package/fesm2022/acorex-components-wysiwyg.mjs +55 -25
  113. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  114. package/form/lib/form-field.component.d.ts +45 -0
  115. package/form/lib/form.component.d.ts +58 -0
  116. package/form/lib/validation-summary.component.d.ts +49 -0
  117. package/image/lib/image.component.d.ts +61 -0
  118. package/label/lib/label.component.d.ts +34 -0
  119. package/list/lib/list.component.d.ts +98 -0
  120. package/loading/lib/loading-spinner.component.d.ts +20 -0
  121. package/loading/lib/loading.component.d.ts +35 -0
  122. package/package.json +66 -66
  123. package/progress-bar/lib/progress-bar.component.d.ts +0 -1
  124. package/uploader/index.d.ts +4 -4
  125. package/uploader/lib/{uploader-drop-zone.component.d.ts → uploader-drop-zone/uploader-drop-zone.component.d.ts} +3 -1
  126. package/uploader/lib/{uploader-list.component.d.ts → uploader-list/uploader-list.component.d.ts} +1 -1
  127. package/uploader/lib/uploader-zone.directive.d.ts +1 -0
  128. package/uploader/lib/uploader.models.d.ts +5 -0
  129. package/uploader/lib/uploader.module.d.ts +4 -4
  130. package/uploader/lib/uploader.service.d.ts +2 -1
  131. package/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.d.ts +16 -3
  132. package/wysiwyg/lib/wysiwyg/wysiwyg-toolbar/wysiwyg-toolbar.component.d.ts +3 -4
  133. package/esm2022/uploader/lib/uploader-drop-zone.component.mjs +0 -18
  134. package/esm2022/uploader/lib/uploader-list.component.mjs +0 -26
  135. /package/uploader/lib/{uploader-dialog-container.component.d.ts → uploader-dialog-container/uploader-dialog-container.component.d.ts} +0 -0
@@ -160,24 +160,55 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
160
160
  args: ['mousedown', ['$event']]
161
161
  }] } });
162
162
 
163
+ /**
164
+ * Component for a text column in a data table, supporting header, cell, and footer templates.
165
+ *
166
+ * @category Components
167
+ */
163
168
  class AXDataTableTextColumnComponent extends AXDataTableColumnComponent {
164
169
  constructor() {
165
170
  super(...arguments);
171
+ /**
172
+ * Toggles text wrapping in the cell.
173
+ *
174
+ * @defaultValue false
175
+ */
166
176
  this.wrapText = false;
177
+ /**
178
+ * @ignore
179
+ */
167
180
  this.formatService = inject(AXFormatService);
168
181
  }
182
+ /**
183
+ * Returns the template used for rendering cells.
184
+ * Falls back to a default template if no custom template is provided.
185
+ */
169
186
  get renderCellTemplate() {
170
187
  return this.cellTemplate ?? this._contentCellTemplate;
171
188
  }
189
+ /**
190
+ * Returns the template used for rendering the column footer,
191
+ * falling back to a default if not provided.
192
+ */
172
193
  get renderFooterTemplate() {
173
194
  return this.footerTemplate ?? this._contentFooterTemplate;
174
195
  }
196
+ /**
197
+ * Retrieves the template used for rendering the column header.
198
+ * Falls back to a default template if none is provided.
199
+ */
175
200
  get renderHeaderTemplate() {
176
201
  return this.headerTemplate ?? this._contentHeaderTemplate;
177
202
  }
203
+ /**
204
+ * Indicates whether loading functionality is enabled.
205
+ */
178
206
  get loadingEnabled() {
179
207
  return true;
180
208
  }
209
+ /**
210
+ * Generates a unique name based on the `dataField` value.
211
+ */
181
212
  get name() {
182
213
  return `cl-${this.dataField}`;
183
214
  }
@@ -266,24 +297,50 @@ class AXBaseRowCommandColumnComponent extends AXDataTableColumnComponent {
266
297
  return 'ax-command-column';
267
298
  }
268
299
  }
300
+ /**
301
+ * A column for displaying dropdown command buttons in a data table.
302
+ *
303
+ * @category Components
304
+ */
269
305
  class AXRowDropdownCommandColumnComponent extends AXBaseRowCommandColumnComponent {
270
306
  constructor() {
271
307
  super(...arguments);
308
+ /**
309
+ * @ignore
310
+ */
272
311
  this._items = [];
273
312
  this.items = [];
274
313
  }
314
+ /**
315
+ * Returns the template used for rendering cell content.
316
+ * This method provides the cell template used in the data table column, falling back to a default template if none is provided.
317
+ */
275
318
  get renderCellTemplate() {
276
319
  return this._cellTemplate;
277
320
  }
321
+ /**
322
+ * Returns the template used for rendering the header content.
323
+ * This method provides the header template used in the data table column.
324
+ */
278
325
  get renderHeaderTemplate() {
279
326
  return this._contentHeaderTemplate;
280
327
  }
328
+ /**
329
+ * Returns the template used for rendering the footer content.
330
+ * This method provides the footer template used in the data table column.
331
+ */
281
332
  get renderFooterTemplate() {
282
333
  return this.footerTemplate ?? this._contentFooterTemplate;
283
334
  }
335
+ /**
336
+ * Returns the name identifier for the column component.
337
+ */
284
338
  get name() {
285
339
  return 'cl-dd-cmd';
286
340
  }
341
+ /**
342
+ * @ignore
343
+ */
287
344
  async handleOnOpened(rowData) {
288
345
  if (Array.isArray(this.items)) {
289
346
  this._items = this.items;
@@ -301,9 +358,15 @@ class AXRowDropdownCommandColumnComponent extends AXBaseRowCommandColumnComponen
301
358
  }
302
359
  this.cdr.detectChanges();
303
360
  }
361
+ /**
362
+ * @ignore
363
+ */
304
364
  handleOnClosed() {
305
365
  this._items = [];
306
366
  }
367
+ /**
368
+ * @ignore
369
+ */
307
370
  handleOnItemClick(e, data) {
308
371
  const args = {
309
372
  component: this.grid,
@@ -404,23 +467,50 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
404
467
  }], items: [{
405
468
  type: Input
406
469
  }] } });
470
+ /**
471
+ * A column for displaying command buttons in a data table.
472
+ *
473
+ * @category Components
474
+ */
407
475
  class AXRowCommandColumnComponent extends AXBaseRowCommandColumnComponent {
408
476
  constructor() {
409
477
  super(...arguments);
478
+ /**
479
+ * Defines the command items to display in the column.
480
+ * @defaultValue []
481
+ */
410
482
  this.items = [];
411
483
  }
484
+ /**
485
+ * Returns the template used for rendering the cell content.
486
+ * Uses the specified cell template if provided; otherwise, falls back to a default template.
487
+ */
412
488
  get renderCellTemplate() {
413
489
  return this._cellTemplate;
414
490
  }
491
+ /**
492
+ * Returns the template used for rendering the header content.
493
+ * Overrides the base implementation to provide a specific template for the command column.
494
+ */
415
495
  get renderHeaderTemplate() {
416
496
  return this._contentHeaderTemplate;
417
497
  }
498
+ /**
499
+ * Gets the template used for rendering the footer content of the column.
500
+ * Returns `footerTemplate` if provided; otherwise, returns `_contentFooterTemplate`.
501
+ */
418
502
  get renderFooterTemplate() {
419
503
  return this.footerTemplate ?? this._contentFooterTemplate;
420
504
  }
505
+ /**
506
+ * Gets the unique name identifier for the command column.
507
+ */
421
508
  get name() {
422
509
  return 'cl-in-cmd';
423
510
  }
511
+ /**
512
+ * @ignore
513
+ */
424
514
  getItems(rowData) {
425
515
  if (Array.isArray(this.items)) {
426
516
  return this.items;
@@ -432,6 +522,9 @@ class AXRowCommandColumnComponent extends AXBaseRowCommandColumnComponent {
432
522
  }
433
523
  return [];
434
524
  }
525
+ /**
526
+ * @ignore
527
+ */
435
528
  handleOnItemClick(e, item, data) {
436
529
  const args = {
437
530
  component: this.grid,
@@ -513,27 +606,60 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
513
606
  type: Input
514
607
  }] } });
515
608
 
609
+ /**
610
+ * Component for displaying row indices in a data table column.
611
+ *
612
+ * @category Components
613
+ */
516
614
  class AXRowIndexColumnComponent extends AXDataTableColumnComponent {
517
615
  constructor() {
518
616
  super(...arguments);
519
617
  this.grid = inject(AXBaseDataTable);
520
618
  this.unsubscriber = inject(AXUnsubscriber);
619
+ /**
620
+ * Determines whether the index should be zero-padded.
621
+ * @defaultValue false
622
+ */
521
623
  this.padZero = false;
624
+ /**
625
+ * @ignore
626
+ */
522
627
  this.formatCount = 1;
628
+ /**
629
+ * Disables sorting for this column.
630
+ *
631
+ * @defaultValue false
632
+ */
523
633
  this.allowSorting = false;
524
634
  }
635
+ /**
636
+ * Provides the cell template for custom rendering if defined.
637
+ */
525
638
  get renderCellTemplate() {
526
639
  return this._cellTemplate;
527
640
  }
641
+ /**
642
+ * Provides the header template for custom rendering if defined.
643
+ */
528
644
  get renderHeaderTemplate() {
529
645
  return this._contentHeaderTemplate;
530
646
  }
647
+ /**
648
+ * Returns the template used for rendering the footer of the column.
649
+ * This method returns the `footerTemplate` if it is provided; otherwise, it defaults to the `_contentFooterTemplate`. This allows for custom footer content while falling back to a default template if no custom template is specified.
650
+ */
531
651
  get renderFooterTemplate() {
532
652
  return this.footerTemplate ?? this._contentFooterTemplate;
533
653
  }
654
+ /**
655
+ * Gets the unique identifier name for the column.
656
+ */
534
657
  get name() {
535
658
  return 'cl-inx';
536
659
  }
660
+ /**
661
+ * @ignore
662
+ */
537
663
  ngOnInit() {
538
664
  if (this.padZero) {
539
665
  this.grid.dataSource.onChanged.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {
@@ -541,9 +667,15 @@ class AXRowIndexColumnComponent extends AXDataTableColumnComponent {
541
667
  });
542
668
  }
543
669
  }
670
+ /**
671
+ * Indicates whether loading is enabled for this component.
672
+ */
544
673
  get loadingEnabled() {
545
674
  return false;
546
675
  }
676
+ /**
677
+ * Gets the CSS class applied to the component.
678
+ */
547
679
  get cssClass() {
548
680
  return 'ax-index-column';
549
681
  }
@@ -595,36 +727,65 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
595
727
  type: Input
596
728
  }] } });
597
729
 
730
+ /**
731
+ * Column component that provides checkboxes for row selection in a data table.
732
+ *
733
+ * @category Components
734
+ */
598
735
  class AXRowSelectColumnComponent extends AXDataTableColumnComponent {
599
736
  constructor() {
600
737
  super(...arguments);
601
738
  this.grid = inject(AXBaseDataTable);
602
739
  }
740
+ /**
741
+ * Gets the template used to render cells in the column.
742
+ */
603
743
  get renderCellTemplate() {
604
744
  return this._cellTemplate;
605
745
  }
746
+ /**
747
+ * Gets the template used to render the column header.
748
+ */
606
749
  get renderHeaderTemplate() {
607
750
  return this._contentHeaderTemplate;
608
751
  }
752
+ /**
753
+ * Gets the template used to render the column footer.
754
+ */
609
755
  get renderFooterTemplate() {
610
756
  return this._contentFooterTemplate;
611
757
  }
758
+ /**
759
+ * Gets the unique identifier for the column.
760
+ */
612
761
  get name() {
613
762
  return 'cl-select';
614
763
  }
764
+ /**
765
+ * @ignore
766
+ */
615
767
  getDataSourceKey() {
616
768
  return this.grid.dataSource.config.key || 'id';
617
769
  }
770
+ /**
771
+ * @ignore
772
+ */
618
773
  isSelected(item) {
619
774
  const key = this.getDataSourceKey();
620
775
  const selectedRowKeys = this.grid.selectedRows.map((sr) => (typeof sr === 'object' ? sr[key] : sr));
621
776
  return item != null && selectedRowKeys.includes(typeof item === 'object' ? item[key] : item);
622
777
  }
778
+ /**
779
+ * @ignore
780
+ */
623
781
  checkAllSelected(rows) {
624
782
  const key = this.getDataSourceKey();
625
783
  const selectedRowKeys = this.grid.selectedRows.map((sr) => (typeof sr === 'object' ? sr[key] : sr));
626
784
  return rows[0] && rows.every((element) => selectedRowKeys.includes(typeof element === 'object' ? element[key] : element));
627
785
  }
786
+ /**
787
+ * @ignore
788
+ */
628
789
  checkAnySelected(rows) {
629
790
  const key = this.getDataSourceKey();
630
791
  const selectedRowKeys = this.grid.selectedRows.map((sr) => (typeof sr === 'object' ? sr[key] : sr));
@@ -632,6 +793,9 @@ class AXRowSelectColumnComponent extends AXDataTableColumnComponent {
632
793
  !this.checkAllSelected(rows) &&
633
794
  rows.some((element) => selectedRowKeys.includes(typeof element === 'object' ? element[key] : element)));
634
795
  }
796
+ /**
797
+ * @ignore
798
+ */
635
799
  handleChange(item) {
636
800
  if (this.isSelected(item)) {
637
801
  this.grid.unSelectRows(item);
@@ -640,6 +804,9 @@ class AXRowSelectColumnComponent extends AXDataTableColumnComponent {
640
804
  this.grid.selectRows(item);
641
805
  }
642
806
  }
807
+ /**
808
+ * @ignore
809
+ */
643
810
  handleSelectAll(rows) {
644
811
  if (this.checkAllSelected(rows)) {
645
812
  this.grid.unSelectRows(...rows);
@@ -648,6 +815,9 @@ class AXRowSelectColumnComponent extends AXDataTableColumnComponent {
648
815
  this.grid.selectRows(...rows);
649
816
  }
650
817
  }
818
+ /**
819
+ * Indicates whether loading is enabled for the column.
820
+ */
651
821
  get loadingEnabled() {
652
822
  return false;
653
823
  }
@@ -721,19 +891,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
721
891
  args: ['footer']
722
892
  }] } });
723
893
 
894
+ /**
895
+ * Component for displaying and managing a data table with advanced features.
896
+ *
897
+ * @category Components
898
+ */
724
899
  class AXDataTableComponent extends AXBaseDataTable {
725
900
  constructor() {
726
901
  super(...arguments);
727
902
  this._unsubscriber = inject(AXUnsubscriber);
728
903
  this._zone = inject(NgZone);
904
+ /**
905
+ * @ignore
906
+ */
729
907
  this.displayedRows = signal([]);
908
+ /**
909
+ * @ignore
910
+ */
730
911
  this.page = signal(0);
912
+ /**
913
+ * @ignore
914
+ */
731
915
  this.pageSize = signal(0);
916
+ /**
917
+ * @ignore
918
+ */
732
919
  this.isLoading = signal(true);
920
+ /**
921
+ * @ignore
922
+ */
733
923
  this.columnsList = signal([]);
924
+ /**
925
+ * @ignore
926
+ */
734
927
  this.endFixedColumnsList = computed(() => this.columnsList().filter((c) => c.fixed === 'end'));
928
+ /**
929
+ * @ignore
930
+ */
735
931
  this.startFixedColumnsList = computed(() => this.columnsList().filter((c) => c.fixed === 'start'));
932
+ /**
933
+ * @ignore
934
+ */
736
935
  this.normalColumnsList = computed(() => this.columnsList().filter((c) => c.fixed !== 'end' && c.fixed !== 'start'));
936
+ /**
937
+ * @ignore
938
+ */
737
939
  this.resizeColumnProp = {
738
940
  startX: 0,
739
941
  startWidth: 0,
@@ -741,35 +943,129 @@ class AXDataTableComponent extends AXBaseDataTable {
741
943
  newColumnWidth: 0,
742
944
  thElement: null,
743
945
  };
946
+ /**
947
+ * @ignore
948
+ */
744
949
  this.hasItems = false;
950
+ /**
951
+ * @ignore
952
+ */
745
953
  this.totalRows = 0;
954
+ /**
955
+ * @ignore
956
+ */
746
957
  this.currentPage = 0;
958
+ /**
959
+ * @ignore
960
+ */
747
961
  this.totalPages = 0;
962
+ /**
963
+ * @ignore
964
+ */
748
965
  this.startRowIndex = 0;
966
+ /**
967
+ * Defines if alternative row styling should be applied.
968
+ *
969
+ * @defaultValue `true`
970
+ */
749
971
  this.alternative = true;
972
+ /**
973
+ * Indicates if the table header should be displayed.
974
+ *
975
+ * @defaultValue `true`
976
+ */
750
977
  this.showHeader = true;
978
+ /**
979
+ * Indicates if the table header should be fixed.
980
+ *
981
+ * @defaultValue `true`
982
+ */
751
983
  this.fixedHeader = true;
984
+ /**
985
+ * Indicates if the table footer should be displayed.
986
+ *
987
+ * @defaultValue `false`
988
+ */
752
989
  this.showFooter = false;
990
+ /**
991
+ * Indicates if the table footer should be fixed.
992
+ *
993
+ * @defaultValue `true`
994
+ */
753
995
  this.fixedFooter = true;
996
+ /**
997
+ * Specifies the height of each item in the table.
998
+ *
999
+ * @defaultValue `40`
1000
+ */
754
1001
  this.itemHeight = 40;
1002
+ /**
1003
+ * Enables or disables row reordering.
1004
+ *
1005
+ * @defaultValue `false`
1006
+ */
755
1007
  this.allowReordering = false;
1008
+ /**
1009
+ * Enables or disables paging.
1010
+ *
1011
+ * @defaultValue `true`
1012
+ */
756
1013
  this.paging = true;
1014
+ /**
1015
+ * Specifies how data should be fetched.
1016
+ *
1017
+ * @defaultValue `'auto'`
1018
+ */
757
1019
  this.fetchDataMode = 'auto';
1020
+ /**
1021
+ * Configuration for loading state.
1022
+ *
1023
+ * @defaultValue `{ enabled: true, animation: true }`
1024
+ */
758
1025
  this.loading = {
759
1026
  enabled: true,
760
1027
  animation: true,
761
1028
  };
1029
+ /**
1030
+ * Emits when the focused row changes.
1031
+ *
1032
+ * @event
1033
+ */
762
1034
  this.focusedRowChange = new EventEmitter();
1035
+ /**
1036
+ * Emits when a row is clicked.
1037
+ *
1038
+ * @event onRowClick
1039
+ */
763
1040
  this.onRowClick = new EventEmitter();
1041
+ /**
1042
+ * Emits when a row is double-clicked.
1043
+ *
1044
+ * @event onRowDbClick
1045
+ */
764
1046
  this.onRowDbClick = new EventEmitter();
1047
+ /**
1048
+ * Emits when the order of columns changes.
1049
+ *
1050
+ * @event onColumnsOrderChanged
1051
+ */
765
1052
  this.onColumnsOrderChanged = new EventEmitter();
1053
+ /**
1054
+ * @ignore
1055
+ */
766
1056
  this.clickSubject = new Subject();
1057
+ /**
1058
+ * @ignore
1059
+ */
767
1060
  this.onResizeColumnMove = (event) => {
768
1061
  const diffX = event.pageX - this.resizeColumnProp.startX;
769
1062
  const newWidth = this.rtl ? this.resizeColumnProp.startWidth - diffX : this.resizeColumnProp.startWidth + diffX;
770
1063
  this.resizeColumnProp.thElement.style.width = `${Math.max(100, newWidth)}px`;
771
1064
  this.resizeColumnProp.thElement.setAttribute('new-width', `${newWidth}`);
772
1065
  };
1066
+ /**
1067
+ * @ignore
1068
+ */
773
1069
  this.onResizeColumnEnd = () => {
774
1070
  document.removeEventListener('mousemove', this.onResizeColumnMove);
775
1071
  document.removeEventListener('mouseup', this.onResizeColumnEnd);
@@ -778,13 +1074,24 @@ class AXDataTableComponent extends AXBaseDataTable {
778
1074
  this.resetResizingProcess();
779
1075
  };
780
1076
  }
1077
+ /**
1078
+ * Gets the currently focused row.
1079
+ */
781
1080
  get focusedRow() {
782
1081
  return this._focusedRow;
783
1082
  }
1083
+ /**
1084
+ * Sets the currently focused row and emits the change event.
1085
+ *
1086
+ * @param v - The row to be focused.
1087
+ */
784
1088
  set focusedRow(v) {
785
1089
  this._focusedRow = v;
786
1090
  this.focusedRowChange.emit(v);
787
1091
  }
1092
+ /**
1093
+ * @ignore
1094
+ */
788
1095
  ngOnInit() {
789
1096
  super.ngOnInit();
790
1097
  this.rtl = AXHtmlUtil.isRtl(this.getHostElement());
@@ -810,6 +1117,9 @@ class AXDataTableComponent extends AXBaseDataTable {
810
1117
  this.handleRowDoubleClick(clickArray[0].event, clickArray[0].item);
811
1118
  });
812
1119
  }
1120
+ /**
1121
+ * @ignore
1122
+ */
813
1123
  ngAfterViewInit() {
814
1124
  this.calculateStickyColumnsPositions();
815
1125
  this.columnsList.set(this.columns.toArray());
@@ -817,6 +1127,9 @@ class AXDataTableComponent extends AXBaseDataTable {
817
1127
  this.columnsList.set(cols.toArray());
818
1128
  });
819
1129
  }
1130
+ /**
1131
+ * @ignore
1132
+ */
820
1133
  drop(event) {
821
1134
  const clonedColumns = [...this.columnsList()];
822
1135
  moveItemInArray(clonedColumns, event.previousIndex, event.currentIndex);
@@ -827,10 +1140,16 @@ class AXDataTableComponent extends AXBaseDataTable {
827
1140
  isUserInteraction: true,
828
1141
  });
829
1142
  }
1143
+ /**
1144
+ * @ignore
1145
+ */
830
1146
  handleRowClick(event, item) {
831
1147
  this.handleRowSingleClick(event, item);
832
1148
  this.clickSubject.next({ event, item });
833
1149
  }
1150
+ /**
1151
+ * @ignore
1152
+ */
834
1153
  handleRowSingleClick(event, item) {
835
1154
  if (this.focusedRow == item) {
836
1155
  this.focusedRow = null;
@@ -845,6 +1164,9 @@ class AXDataTableComponent extends AXBaseDataTable {
845
1164
  isUserInteraction: true,
846
1165
  });
847
1166
  }
1167
+ /**
1168
+ * @ignore
1169
+ */
848
1170
  onPageChanged(event) {
849
1171
  if (event.isUserInteraction) {
850
1172
  const pageChanged = event.page - 1 != this.page();
@@ -863,6 +1185,9 @@ class AXDataTableComponent extends AXBaseDataTable {
863
1185
  }
864
1186
  }
865
1187
  }
1188
+ /**
1189
+ * @ignore
1190
+ */
866
1191
  handleRowDoubleClick(e, item) {
867
1192
  this.focusedRow = item;
868
1193
  //
@@ -872,6 +1197,14 @@ class AXDataTableComponent extends AXBaseDataTable {
872
1197
  isUserInteraction: true,
873
1198
  });
874
1199
  }
1200
+ /**
1201
+ * Handles the click event on a column header.
1202
+ * Toggles the sorting direction or removes the sort if already sorted.
1203
+ *
1204
+ * @param e - The mouse event triggered by the click.
1205
+ * @param column - The column that was clicked.
1206
+ * @ignore
1207
+ */
875
1208
  handleColumnClick(e, column) {
876
1209
  if (column instanceof AXDataTableTextColumnComponent) {
877
1210
  const sort = this.dataSource.query.sort.find((c) => c.field == column.dataField);
@@ -892,6 +1225,9 @@ class AXDataTableComponent extends AXBaseDataTable {
892
1225
  this.refresh();
893
1226
  }
894
1227
  }
1228
+ /**
1229
+ * @ignore
1230
+ */
895
1231
  getSort(column) {
896
1232
  if (column instanceof AXDataTableTextColumnComponent) {
897
1233
  const sort = this.dataSource.query.sort.find((c) => c.field == column.dataField);
@@ -899,15 +1235,25 @@ class AXDataTableComponent extends AXBaseDataTable {
899
1235
  }
900
1236
  return undefined;
901
1237
  }
1238
+ /**
1239
+ * Refreshes the data in the data source and resets the data pager to the first page.
1240
+ * @ignore
1241
+ */
902
1242
  refresh() {
903
1243
  this.dataSource.refresh();
904
1244
  if (this.dataPager) {
905
1245
  this.dataPager.goFirstPage();
906
1246
  }
907
1247
  }
1248
+ /**
1249
+ * @ignore
1250
+ */
908
1251
  calculateRowIndex(index) {
909
1252
  return this.dataSource.pageSize * this.page() + index;
910
1253
  }
1254
+ /**
1255
+ * @ignore
1256
+ */
911
1257
  onResizeColumnStart(event, columnIndex) {
912
1258
  event.preventDefault();
913
1259
  event.stopPropagation();
@@ -920,6 +1266,9 @@ class AXDataTableComponent extends AXBaseDataTable {
920
1266
  document.addEventListener('mouseup', this.onResizeColumnEnd);
921
1267
  });
922
1268
  }
1269
+ /**
1270
+ * @ignore
1271
+ */
923
1272
  resetResizingProcess() {
924
1273
  this.resizeColumnProp.thElement.removeAttribute('new-width');
925
1274
  this.resizeColumnProp = {
@@ -930,6 +1279,9 @@ class AXDataTableComponent extends AXBaseDataTable {
930
1279
  thElement: null,
931
1280
  };
932
1281
  }
1282
+ /**
1283
+ * @ignore
1284
+ */
933
1285
  calculateStickyColumnsPositions() {
934
1286
  let totalWidth = 0;
935
1287
  let accumulatedWidthFromStart = 0;
@@ -1028,51 +1380,154 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
1028
1380
  args: [AXDataTableColumnComponent]
1029
1381
  }] } });
1030
1382
 
1383
+ /**
1384
+ * Component for a data table with infinite scrolling capabilities.
1385
+ *
1386
+ * @category Components
1387
+ */
1031
1388
  class AXInfiniteScrollDataTableComponent extends AXBaseDataTable {
1032
1389
  constructor() {
1033
1390
  super(...arguments);
1034
1391
  this.ngZone = inject(NgZone);
1392
+ /**
1393
+ * Emits an event when the page changes.
1394
+ *
1395
+ * @event
1396
+ */
1035
1397
  this.onPageChanged = new EventEmitter();
1398
+ /**
1399
+ * @ignore
1400
+ */
1036
1401
  this.clickSubject = new Subject();
1402
+ /**
1403
+ * Emits an event when a row is clicked.
1404
+ *
1405
+ * @event
1406
+ */
1037
1407
  this.onRowClick = new EventEmitter();
1408
+ /**
1409
+ * Emits an event when a row is double-clicked.
1410
+ *
1411
+ * @event
1412
+ */
1038
1413
  this.onRowDbClick = new EventEmitter();
1414
+ /**
1415
+ * Controls the visibility of the table header.
1416
+ *
1417
+ * @defaultValue true
1418
+ */
1039
1419
  this.showHeader = true;
1420
+ /**
1421
+ * Defines the mode for fetching data.
1422
+ *
1423
+ * @defaultValue 'auto'
1424
+ */
1040
1425
  this.fetchDataMode = 'auto';
1426
+ /**
1427
+ * Configuration for the loading state of the data table.
1428
+ *
1429
+ * @defaultValue { enabled: true, animation: true }
1430
+ */
1041
1431
  this.loading = {
1042
1432
  enabled: true,
1043
1433
  animation: true,
1044
1434
  };
1435
+ /**
1436
+ * @ignore
1437
+ */
1045
1438
  this.isLoading = signal(true);
1439
+ /**
1440
+ * @ignore
1441
+ */
1046
1442
  this.hasItems = false;
1443
+ /**
1444
+ * @ignore
1445
+ */
1047
1446
  this.totalRows = 0;
1447
+ /**
1448
+ * @ignore
1449
+ */
1048
1450
  this.currentPage = 0;
1451
+ /**
1452
+ * @ignore
1453
+ */
1049
1454
  this.totalPages = 0;
1455
+ /**
1456
+ * @ignore
1457
+ */
1050
1458
  this.startRowIndex = 0;
1459
+ /**
1460
+ * @ignore
1461
+ */
1051
1462
  this.lastIndex = 0;
1463
+ /**
1464
+ * Event emitted when the focused row changes.
1465
+ *
1466
+ * @event
1467
+ */
1052
1468
  this.focusedRowChange = new EventEmitter();
1469
+ /**
1470
+ * Defines the height of each item in the table.
1471
+ *
1472
+ * @default 40
1473
+ */
1053
1474
  this.itemHeight = 40;
1475
+ /**
1476
+ * @ignore
1477
+ */
1054
1478
  this.width = '100%';
1479
+ /**
1480
+ * @ignore
1481
+ */
1055
1482
  this.height = '100%';
1483
+ /**
1484
+ * Emitted when the scroll index changes in the table.
1485
+ *
1486
+ * @event
1487
+ */
1056
1488
  this.onScrolledIndexChanged = new EventEmitter();
1057
1489
  }
1490
+ /**
1491
+ * @ignore
1492
+ */
1058
1493
  startFixedColumn() {
1059
1494
  return this.columns?.toArray().filter((c) => c.fixed == 'start') ?? [];
1060
1495
  }
1496
+ /**
1497
+ * @ignore
1498
+ */
1061
1499
  endFixedColumn() {
1062
1500
  return this.columns?.toArray().filter((c) => c.fixed == 'end') ?? [];
1063
1501
  }
1502
+ /**
1503
+ * @ignore
1504
+ */
1064
1505
  notFixedColumn() {
1065
1506
  return this.columns?.toArray().filter((c) => !c.fixed) ?? [];
1066
1507
  }
1508
+ /**
1509
+ * @ignore
1510
+ */
1067
1511
  notFixedColumnCount() {
1068
1512
  return this.columns?.toArray().filter((c) => !c.fixed).length ?? 0;
1069
1513
  }
1514
+ /**
1515
+ * @ignore
1516
+ */
1070
1517
  fixedColumnCount() {
1071
1518
  return this.columns?.toArray().filter((c) => c.fixed).length ?? 0;
1072
1519
  }
1520
+ /**
1521
+ * Retrieves the currently focused row.
1522
+ */
1073
1523
  get focusedRow() {
1074
1524
  return this._focusedRow;
1075
1525
  }
1526
+ /**
1527
+ * Sets the currently focused row and emits a change event.
1528
+ *
1529
+ * @param v - The row data to be set as focused.
1530
+ */
1076
1531
  set focusedRow(v) {
1077
1532
  this._focusedRow = v;
1078
1533
  this.focusedRowChange.emit(v);
@@ -1080,6 +1535,9 @@ class AXInfiniteScrollDataTableComponent extends AXBaseDataTable {
1080
1535
  trackByIdx(i) {
1081
1536
  return i;
1082
1537
  }
1538
+ /**
1539
+ * @ignore
1540
+ */
1083
1541
  ngOnInit() {
1084
1542
  super.ngOnInit();
1085
1543
  this.listDataSource = new AXListDataSource({
@@ -1102,6 +1560,9 @@ class AXInfiniteScrollDataTableComponent extends AXBaseDataTable {
1102
1560
  this.handleRowDoubleClick(clickArray[0].event, clickArray[0].item);
1103
1561
  });
1104
1562
  }
1563
+ /**
1564
+ * @ignore
1565
+ */
1105
1566
  _handleOnscrolledIndexChange(e) {
1106
1567
  this.lastIndex = e;
1107
1568
  this.onScrolledIndexChanged.emit({
@@ -1110,6 +1571,9 @@ class AXInfiniteScrollDataTableComponent extends AXBaseDataTable {
1110
1571
  isUserInteraction: true,
1111
1572
  });
1112
1573
  }
1574
+ /**
1575
+ * @ignore
1576
+ */
1113
1577
  ngDoCheck() {
1114
1578
  //this.copyFixedColumns();
1115
1579
  this.updateHScroll();
@@ -1119,6 +1583,9 @@ class AXInfiniteScrollDataTableComponent extends AXBaseDataTable {
1119
1583
  //
1120
1584
  this.updateTotalCount();
1121
1585
  }
1586
+ /**
1587
+ * @ignore
1588
+ */
1122
1589
  updateTotalCount() {
1123
1590
  this.startRowIndex = this.lastIndex;
1124
1591
  if (this.startRowIndex < 1)
@@ -1126,15 +1593,24 @@ class AXInfiniteScrollDataTableComponent extends AXBaseDataTable {
1126
1593
  if (this.startRowIndex > this.totalRows)
1127
1594
  this.startRowIndex = this.totalRows;
1128
1595
  }
1596
+ /**
1597
+ * @ignore
1598
+ */
1129
1599
  updateHeight() {
1130
1600
  this.height = `calc(100% - ${(this.headerContainer?.nativeElement.clientHeight ?? 0) + (this.footerContainer?.nativeElement.clientHeight ?? 0)}px)`;
1131
1601
  }
1602
+ /**
1603
+ * @ignore
1604
+ */
1132
1605
  updateWidth() {
1133
1606
  if (this.columns && this.columns.length) {
1134
1607
  const sumPx = sum(this.columns.toArray().map((c) => (typeof c.width == 'number' ? c.width : Number(c.width.replace('px', '')))));
1135
1608
  this.width = `${Math.max(sumPx, this.getHostElement().clientWidth - 5)}px`;
1136
1609
  }
1137
1610
  }
1611
+ /**
1612
+ * @ignore
1613
+ */
1138
1614
  updateHScroll() {
1139
1615
  this.ngZone.runOutsideAngular(() => {
1140
1616
  if (this.headerContainer) {
@@ -1144,6 +1620,9 @@ class AXInfiniteScrollDataTableComponent extends AXBaseDataTable {
1144
1620
  }
1145
1621
  });
1146
1622
  }
1623
+ /**
1624
+ * @ignore
1625
+ */
1147
1626
  // Function to copy fixed columns
1148
1627
  copyFixedColumns() {
1149
1628
  const originalRows = Array.from(this.viewport._contentWrapper.nativeElement.querySelectorAll('tr'));
@@ -1161,19 +1640,34 @@ class AXInfiniteScrollDataTableComponent extends AXBaseDataTable {
1161
1640
  const scrollTop = this.getHostElement().querySelector('.cdk-virtual-scrollable').scrollTop;
1162
1641
  fixedColumnTable.style.transform = `translateY(${-scrollTop}px)`;
1163
1642
  }
1643
+ /**
1644
+ * Updates the viewport by checking its size and scrolling to the last index.
1645
+ * Marks the component for change detection.
1646
+ * @ignore
1647
+ */
1164
1648
  render() {
1165
1649
  this.viewport.checkViewportSize();
1166
1650
  this.viewport.scrollToIndex(this.lastIndex);
1167
1651
  this.cdr.markForCheck();
1168
1652
  }
1653
+ /**
1654
+ * Resets the index to zero and refreshes the data source.
1655
+ * @ignore
1656
+ */
1169
1657
  refresh() {
1170
1658
  this.lastIndex = 0;
1171
1659
  this.listDataSource.refresh();
1172
1660
  }
1661
+ /**
1662
+ * @ignore
1663
+ */
1173
1664
  handleRowClick(event, item) {
1174
1665
  this.handleRowSingleClick(event, item);
1175
1666
  this.clickSubject.next({ event, item });
1176
1667
  }
1668
+ /**
1669
+ * @ignore
1670
+ */
1177
1671
  handleRowSingleClick(event, item) {
1178
1672
  if (this.focusedRow == item) {
1179
1673
  this.focusedRow = null;
@@ -1188,6 +1682,9 @@ class AXInfiniteScrollDataTableComponent extends AXBaseDataTable {
1188
1682
  isUserInteraction: true,
1189
1683
  });
1190
1684
  }
1685
+ /**
1686
+ * @ignore
1687
+ */
1191
1688
  handleRowDoubleClick(e, item) {
1192
1689
  this.focusedRow = item;
1193
1690
  //
@@ -1197,6 +1694,13 @@ class AXInfiniteScrollDataTableComponent extends AXBaseDataTable {
1197
1694
  isUserInteraction: true,
1198
1695
  });
1199
1696
  }
1697
+ /**
1698
+ * Handles column header clicks to toggle sorting on the column.
1699
+ *
1700
+ * @param e - The mouse event triggered by the click.
1701
+ * @param column - The column that was clicked.
1702
+ * @ignore
1703
+ */
1200
1704
  handleColumnClick(e, column) {
1201
1705
  if (column instanceof AXDataTableTextColumnComponent) {
1202
1706
  const sort = this.dataSource.query.sort.find((c) => c.field == column.dataField);
@@ -1217,6 +1721,9 @@ class AXInfiniteScrollDataTableComponent extends AXBaseDataTable {
1217
1721
  this.refresh();
1218
1722
  }
1219
1723
  }
1724
+ /**
1725
+ * @ignore
1726
+ */
1220
1727
  getSort(column) {
1221
1728
  if (column instanceof AXDataTableTextColumnComponent) {
1222
1729
  const sort = this.dataSource.query.sort.find((c) => c.field == column.dataField);
@@ -1224,6 +1731,9 @@ class AXInfiniteScrollDataTableComponent extends AXBaseDataTable {
1224
1731
  }
1225
1732
  return undefined;
1226
1733
  }
1734
+ /**
1735
+ * @ignore
1736
+ */
1227
1737
  _handleOnScroll() {
1228
1738
  this.updateHScroll();
1229
1739
  }