@open-rlb/ng-bootstrap 3.1.6 → 3.1.7

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.
@@ -337,8 +337,6 @@ class AccordionItemComponent extends ToggleAbstractComponent {
337
337
  this.expanded = input(false, { ...(ngDevMode ? { debugName: "expanded" } : {}), alias: 'expanded', transform: booleanAttribute });
338
338
  this.cssClass = input('', { ...(ngDevMode ? { debugName: "cssClass" } : {}), alias: 'class' });
339
339
  this.style = input(undefined, { ...(ngDevMode ? { debugName: "style" } : {}), alias: 'style' });
340
- // We use a property for status because the base class updates it.
341
- // We'll sync it with an input via effect if provided.
342
340
  this.status = 'hidden';
343
341
  this.statusChange = output({ alias: 'statusChange' });
344
342
  this.header = contentChild(AccordionHeaderComponent, ...(ngDevMode ? [{ debugName: "header" }] : []));
@@ -377,6 +375,25 @@ class AccordionItemComponent extends ToggleAbstractComponent {
377
375
  if (this.expanded()) {
378
376
  this.open();
379
377
  }
378
+ // Reactively push the native Bootstrap state into Signals
379
+ this.statusSub = this.statusChange.subscribe(status => {
380
+ const isOpen = status === 'show' || status === 'shown';
381
+ const header = this.header();
382
+ const body = this.body();
383
+ if (header) {
384
+ header.expanded.set(isOpen);
385
+ }
386
+ if (body) {
387
+ body.expanded.set(isOpen);
388
+ }
389
+ });
390
+ }
391
+ ngOnDestroy() {
392
+ // Pass the correct element so abstract class prevents memory leaks
393
+ const element = this.elementRef?.nativeElement.querySelector('.accordion-collapse');
394
+ super.ngOnDestroy(element);
395
+ // Clean up subscription
396
+ this.statusSub?.unsubscribe();
380
397
  }
381
398
  getOrCreateInstance(element) {
382
399
  return Collapse.getOrCreateInstance(element, { toggle: false });
@@ -399,7 +416,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
399
416
  <ng-content select="[rlb-accordion-body]"></ng-content>
400
417
  `,
401
418
  host: { class: 'accordion-item' },
402
- standalone: false
419
+ standalone: false,
403
420
  }]
404
421
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: UniqueIdService }], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], expanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "expanded", required: false }] }], cssClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], style: [{ type: i0.Input, args: [{ isSignal: true, alias: "style", required: false }] }], statusChange: [{ type: i0.Output, args: ["statusChange"] }], header: [{ type: i0.ContentChild, args: [i0.forwardRef(() => AccordionHeaderComponent), { isSignal: true }] }], body: [{ type: i0.ContentChild, args: [i0.forwardRef(() => AccordionBodyComponent), { isSignal: true }] }] } });
405
422
 
@@ -413,6 +430,7 @@ class AccordionComponent {
413
430
  this.effectiveId = computed(() => this.id() || this._internalId(), ...(ngDevMode ? [{ debugName: "effectiveId" }] : []));
414
431
  this.subs = [];
415
432
  this.items = contentChildren(AccordionItemComponent, ...(ngDevMode ? [{ debugName: "items" }] : []));
433
+ this.cardStyle = input(true, { ...(ngDevMode ? { debugName: "cardStyle" } : {}), alias: 'card-style', transform: booleanAttribute });
416
434
  this._internalId.set(`accordion${this.idService.id}`);
417
435
  effect(() => {
418
436
  this.syncItems();
@@ -422,7 +440,7 @@ class AccordionComponent {
422
440
  const items = this.items();
423
441
  const id = this.effectiveId();
424
442
  const alwaysOpen = this.alwaysOpen();
425
- items.forEach((item) => {
443
+ items.forEach(item => {
426
444
  item.parentId.set(id);
427
445
  item.alwaysOpen.set(alwaysOpen);
428
446
  });
@@ -437,12 +455,12 @@ class AccordionComponent {
437
455
  const items = this.items();
438
456
  const alwaysOpen = this.alwaysOpen();
439
457
  const id = this.effectiveId();
440
- items.forEach((item) => {
458
+ items.forEach(item => {
441
459
  item.parentId.set(id);
442
460
  item.alwaysOpen.set(alwaysOpen);
443
- const sub = item.statusChange.subscribe((ev) => {
461
+ const sub = item.statusChange.subscribe(ev => {
444
462
  if (!alwaysOpen && (ev === 'show' || ev === 'shown')) {
445
- items.forEach((other) => {
463
+ items.forEach(other => {
446
464
  if (other !== item && (other.status === 'show' || other.status === 'shown')) {
447
465
  other.close();
448
466
  }
@@ -459,31 +477,36 @@ class AccordionComponent {
459
477
  if (this.alwaysOpen()) {
460
478
  return;
461
479
  }
462
- const opened = items.filter((i) => i.expanded() || i.status === 'show' || i.status === 'shown');
480
+ const opened = items.filter(i => i.expanded() || i.status === 'show' || i.status === 'shown');
463
481
  if (opened.length > 1) {
464
- opened.slice(1).forEach((i) => i.close());
482
+ opened.slice(1).forEach(i => i.close());
465
483
  }
466
484
  }
467
485
  cleanup() {
468
- this.subs.forEach((s) => s.unsubscribe());
486
+ this.subs.forEach(s => s.unsubscribe());
469
487
  this.subs = [];
470
488
  }
471
489
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: AccordionComponent, deps: [{ token: UniqueIdService }], target: i0.ɵɵFactoryTarget.Component }); }
472
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.5", type: AccordionComponent, isStandalone: false, selector: "rlb-accordion", inputs: { flush: { classPropertyName: "flush", publicName: "flush", isSignal: true, isRequired: false, transformFunction: null }, alwaysOpen: { classPropertyName: "alwaysOpen", publicName: "always-open", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.accordion-flush": "flush()", "id": "effectiveId()" }, classAttribute: "accordion" }, queries: [{ propertyName: "items", predicate: AccordionItemComponent, isSignal: true }], ngImport: i0, template: `<ng-content select="[rlb-accordion-item]"></ng-content>`, isInline: true }); }
490
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.5", type: AccordionComponent, isStandalone: false, selector: "rlb-accordion", inputs: { flush: { classPropertyName: "flush", publicName: "flush", isSignal: true, isRequired: false, transformFunction: null }, alwaysOpen: { classPropertyName: "alwaysOpen", publicName: "always-open", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, cardStyle: { classPropertyName: "cardStyle", publicName: "card-style", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.accordion-flush": "flush()", "class.accordion-card-style": "cardStyle()", "id": "effectiveId()" }, classAttribute: "accordion" }, queries: [{ propertyName: "items", predicate: AccordionItemComponent, isSignal: true }], ngImport: i0, template: `
491
+ <ng-content select="[rlb-accordion-item]"></ng-content>
492
+ `, isInline: true }); }
473
493
  }
474
494
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: AccordionComponent, decorators: [{
475
495
  type: Component,
476
496
  args: [{
477
497
  selector: 'rlb-accordion',
478
- template: `<ng-content select="[rlb-accordion-item]"></ng-content>`,
498
+ template: `
499
+ <ng-content select="[rlb-accordion-item]"></ng-content>
500
+ `,
479
501
  host: {
480
502
  class: 'accordion',
481
503
  '[class.accordion-flush]': 'flush()',
504
+ '[class.accordion-card-style]': 'cardStyle()',
482
505
  '[id]': 'effectiveId()',
483
506
  },
484
- standalone: false
507
+ standalone: false,
485
508
  }]
486
- }], ctorParameters: () => [{ type: UniqueIdService }], propDecorators: { flush: [{ type: i0.Input, args: [{ isSignal: true, alias: "flush", required: false }] }], alwaysOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "always-open", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => AccordionItemComponent), { isSignal: true }] }] } });
509
+ }], ctorParameters: () => [{ type: UniqueIdService }], propDecorators: { flush: [{ type: i0.Input, args: [{ isSignal: true, alias: "flush", required: false }] }], alwaysOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "always-open", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => AccordionItemComponent), { isSignal: true }] }], cardStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "card-style", required: false }] }] } });
487
510
 
488
511
  class AlertComponent {
489
512
  constructor(viewContainerRef) {
@@ -605,6 +628,7 @@ class BadgeDirective {
605
628
  this.start = input(undefined, { ...(ngDevMode ? { debugName: "start" } : {}), alias: 'badge-start',
606
629
  transform: numberAttribute });
607
630
  this.color = input('danger', { ...(ngDevMode ? { debugName: "color" } : {}), alias: 'badge-color' });
631
+ this.textColor = input('light', { ...(ngDevMode ? { debugName: "textColor" } : {}), alias: 'badge-text-color' });
608
632
  this.hiddenText = input(undefined, { ...(ngDevMode ? { debugName: "hiddenText" } : {}), alias: 'hidden-text' });
609
633
  this.dot = input(false, { ...(ngDevMode ? { debugName: "dot" } : {}), alias: 'badge-dot', transform: booleanAttribute });
610
634
  effect(() => {
@@ -642,6 +666,7 @@ class BadgeDirective {
642
666
  const border = this.border();
643
667
  const hiddenText = this.hiddenText();
644
668
  const badgeValue = this.castToString(this.badge());
669
+ const textColor = this.textColor();
645
670
  if (top || start || top === 0 || start === 0) {
646
671
  this.renderer.addClass(this.badgeElement, 'position-absolute');
647
672
  if (top || top === 0) {
@@ -662,6 +687,9 @@ class BadgeDirective {
662
687
  if (color) {
663
688
  this.renderer.addClass(this.badgeElement, `bg-${color}`);
664
689
  }
690
+ if (textColor) {
691
+ this.renderer.addClass(this.badgeElement, `text-${textColor}`);
692
+ }
665
693
  if (badgeValue) {
666
694
  this.badgeContent = this.renderer.createText(badgeValue);
667
695
  this.renderer.appendChild(this.badgeElement, this.badgeContent);
@@ -703,7 +731,7 @@ class BadgeDirective {
703
731
  }
704
732
  }
705
733
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: BadgeDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
706
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.5", type: BadgeDirective, isStandalone: false, selector: "[badge]", inputs: { badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, pill: { classPropertyName: "pill", publicName: "badge-pill", isSignal: true, isRequired: false, transformFunction: null }, border: { classPropertyName: "border", publicName: "badge-border", isSignal: true, isRequired: false, transformFunction: null }, top: { classPropertyName: "top", publicName: "badge-top", isSignal: true, isRequired: false, transformFunction: null }, start: { classPropertyName: "start", publicName: "badge-start", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "badge-color", isSignal: true, isRequired: false, transformFunction: null }, hiddenText: { classPropertyName: "hiddenText", publicName: "hidden-text", isSignal: true, isRequired: false, transformFunction: null }, dot: { classPropertyName: "dot", publicName: "badge-dot", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
734
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.5", type: BadgeDirective, isStandalone: false, selector: "[badge]", inputs: { badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, pill: { classPropertyName: "pill", publicName: "badge-pill", isSignal: true, isRequired: false, transformFunction: null }, border: { classPropertyName: "border", publicName: "badge-border", isSignal: true, isRequired: false, transformFunction: null }, top: { classPropertyName: "top", publicName: "badge-top", isSignal: true, isRequired: false, transformFunction: null }, start: { classPropertyName: "start", publicName: "badge-start", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "badge-color", isSignal: true, isRequired: false, transformFunction: null }, textColor: { classPropertyName: "textColor", publicName: "badge-text-color", isSignal: true, isRequired: false, transformFunction: null }, hiddenText: { classPropertyName: "hiddenText", publicName: "hidden-text", isSignal: true, isRequired: false, transformFunction: null }, dot: { classPropertyName: "dot", publicName: "badge-dot", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
707
735
  }
708
736
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: BadgeDirective, decorators: [{
709
737
  type: Directive,
@@ -711,7 +739,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
711
739
  selector: '[badge]',
712
740
  standalone: false,
713
741
  }]
714
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { badge: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge", required: false }] }], pill: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge-pill", required: false }] }], border: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge-border", required: false }] }], top: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge-top", required: false }] }], start: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge-start", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge-color", required: false }] }], hiddenText: [{ type: i0.Input, args: [{ isSignal: true, alias: "hidden-text", required: false }] }], dot: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge-dot", required: false }] }] } });
742
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { badge: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge", required: false }] }], pill: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge-pill", required: false }] }], border: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge-border", required: false }] }], top: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge-top", required: false }] }], start: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge-start", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge-color", required: false }] }], textColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge-text-color", required: false }] }], hiddenText: [{ type: i0.Input, args: [{ isSignal: true, alias: "hidden-text", required: false }] }], dot: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge-dot", required: false }] }] } });
715
743
 
716
744
  class BreadcrumbComponent {
717
745
  constructor() {
@@ -5044,41 +5072,50 @@ class SidebarItemComponent {
5044
5072
  this.badgeCounter = input(undefined, ...(ngDevMode ? [{ debugName: "badgeCounter" }] : []));
5045
5073
  this.click = output();
5046
5074
  this.children = contentChildren(SidebarItemComponent, ...(ngDevMode ? [{ debugName: "children" }] : []));
5075
+ this.template = viewChild.required('template');
5047
5076
  this.collapseComponent = ViewChild(CollapseComponent);
5077
+ this.isExpanded = signal(false, ...(ngDevMode ? [{ debugName: "isExpanded" }] : []));
5048
5078
  this._id = '';
5049
5079
  }
5050
5080
  ngOnInit() {
5051
- const templateView = this.viewContainerRef.createEmbeddedView(this.template);
5081
+ const templateView = this.viewContainerRef.createEmbeddedView(this.template());
5052
5082
  this.element = templateView.rootNodes[0];
5053
5083
  this.viewContainerRef.element.nativeElement.remove();
5054
5084
  this._id = this.uniqueIdService.id;
5055
5085
  }
5056
5086
  onItemClick(event) {
5057
- event.stopPropagation();
5058
5087
  this.click.emit(event);
5088
+ if (this.children().length > 0) {
5089
+ this.isExpanded.update(v => !v);
5090
+ }
5059
5091
  if (!this.title() && this.children().length === 0) {
5060
5092
  this.sidebarService.notifyItemClicked();
5061
5093
  }
5062
5094
  }
5063
5095
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: SidebarItemComponent, deps: [{ token: i0.ViewContainerRef }, { token: UniqueIdService }, { token: i2.Router }, { token: SidebarService }], target: i0.ɵɵFactoryTarget.Component }); }
5064
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.5", type: SidebarItemComponent, isStandalone: false, selector: "rlb-sidebar-item", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, badgeCounter: { classPropertyName: "badgeCounter", publicName: "badgeCounter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click: "click" }, queries: [{ propertyName: "children", predicate: SidebarItemComponent, isSignal: true }], viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, static: true }], ngImport: i0, template: `
5096
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.5", type: SidebarItemComponent, isStandalone: false, selector: "rlb-sidebar-item", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, badgeCounter: { classPropertyName: "badgeCounter", publicName: "badgeCounter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click: "click" }, queries: [{ propertyName: "children", predicate: SidebarItemComponent, isSignal: true }], viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, isSignal: true }], ngImport: i0, template: `
5065
5097
  <ng-template #template>
5066
5098
  @if (title()) {
5067
- <li (click)="onItemClick($event)" class="menu-title">{{ title() }}</li>
5099
+ <li
5100
+ (click)="onItemClick($event)"
5101
+ class="menu-title"
5102
+ >
5103
+ {{ title() }}
5104
+ </li>
5068
5105
  }
5069
5106
  @if (!title()) {
5070
- <li (click)="onItemClick($event)">
5107
+ <li>
5071
5108
  @if (children().length) {
5072
5109
  <a
5073
5110
  [badge]="
5074
- badgeCounter() && badgeCounter()! > 0
5075
- ? badgeCounter()!.toString()
5076
- : undefined
5111
+ badgeCounter() && badgeCounter()! > 0 ? badgeCounter()!.toString() : undefined
5077
5112
  "
5078
5113
  href="javascript:void(0);"
5079
5114
  class="is-parent has-arrow"
5080
5115
  toggle="collapse"
5081
5116
  [toggle-target]="'side-item' + _id"
5117
+ [collapsed]="!isExpanded()"
5118
+ (click)="onItemClick($event)"
5082
5119
  >
5083
5120
  @if (icon()) {
5084
5121
  <i [class]="icon()"></i>
@@ -5087,20 +5124,20 @@ class SidebarItemComponent {
5087
5124
  </a>
5088
5125
  }
5089
5126
  <rlb-collapse [id]="'side-item' + _id">
5090
- <ul class="sub-menu" aria-expanded="false">
5127
+ <ul
5128
+ class="sub-menu"
5129
+ aria-expanded="false"
5130
+ >
5091
5131
  <ng-content select="rlb-sidebar-item"></ng-content>
5092
5132
  </ul>
5093
5133
  </rlb-collapse>
5094
5134
  @if (!children().length) {
5095
5135
  <a
5096
5136
  [routerLink]="link()"
5097
- [badge]="
5098
- badgeCounter() && badgeCounter()! > 0
5099
- ? badgeCounter()
5100
- : undefined
5101
- "
5137
+ [badge]="badgeCounter() && badgeCounter()! > 0 ? badgeCounter() : undefined"
5102
5138
  class="side-nav-link-ref"
5103
5139
  routerLinkActive="active"
5140
+ (click)="onItemClick($event)"
5104
5141
  >
5105
5142
  @if (icon()) {
5106
5143
  <i [class]="icon()"></i>
@@ -5111,7 +5148,7 @@ class SidebarItemComponent {
5111
5148
  </li>
5112
5149
  }
5113
5150
  </ng-template>
5114
- `, isInline: true, dependencies: [{ kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: BadgeDirective, selector: "[badge]", inputs: ["badge", "badge-pill", "badge-border", "badge-top", "badge-start", "badge-color", "hidden-text", "badge-dot"] }, { kind: "component", type: CollapseComponent, selector: "rlb-collapse", inputs: ["id", "orientation"], outputs: ["statusChange"] }, { kind: "directive", type: ToggleDirective, selector: "\n button[toggle],\n a[toggle],\n rlb-navbar-item[toggle],\n rlb-button-toolbar[toggle]", inputs: ["toggle", "toggle-target", "collapsed", "auto-close"] }] }); }
5151
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: BadgeDirective, selector: "[badge]", inputs: ["badge", "badge-pill", "badge-border", "badge-top", "badge-start", "badge-color", "badge-text-color", "hidden-text", "badge-dot"] }, { kind: "component", type: CollapseComponent, selector: "rlb-collapse", inputs: ["id", "orientation"], outputs: ["statusChange"] }, { kind: "directive", type: ToggleDirective, selector: "\n button[toggle],\n a[toggle],\n rlb-navbar-item[toggle],\n rlb-button-toolbar[toggle]", inputs: ["toggle", "toggle-target", "collapsed", "auto-close"] }] }); }
5115
5152
  }
5116
5153
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: SidebarItemComponent, decorators: [{
5117
5154
  type: Component,
@@ -5120,21 +5157,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
5120
5157
  template: `
5121
5158
  <ng-template #template>
5122
5159
  @if (title()) {
5123
- <li (click)="onItemClick($event)" class="menu-title">{{ title() }}</li>
5160
+ <li
5161
+ (click)="onItemClick($event)"
5162
+ class="menu-title"
5163
+ >
5164
+ {{ title() }}
5165
+ </li>
5124
5166
  }
5125
5167
  @if (!title()) {
5126
- <li (click)="onItemClick($event)">
5168
+ <li>
5127
5169
  @if (children().length) {
5128
5170
  <a
5129
5171
  [badge]="
5130
- badgeCounter() && badgeCounter()! > 0
5131
- ? badgeCounter()!.toString()
5132
- : undefined
5172
+ badgeCounter() && badgeCounter()! > 0 ? badgeCounter()!.toString() : undefined
5133
5173
  "
5134
5174
  href="javascript:void(0);"
5135
5175
  class="is-parent has-arrow"
5136
5176
  toggle="collapse"
5137
5177
  [toggle-target]="'side-item' + _id"
5178
+ [collapsed]="!isExpanded()"
5179
+ (click)="onItemClick($event)"
5138
5180
  >
5139
5181
  @if (icon()) {
5140
5182
  <i [class]="icon()"></i>
@@ -5143,20 +5185,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
5143
5185
  </a>
5144
5186
  }
5145
5187
  <rlb-collapse [id]="'side-item' + _id">
5146
- <ul class="sub-menu" aria-expanded="false">
5188
+ <ul
5189
+ class="sub-menu"
5190
+ aria-expanded="false"
5191
+ >
5147
5192
  <ng-content select="rlb-sidebar-item"></ng-content>
5148
5193
  </ul>
5149
5194
  </rlb-collapse>
5150
5195
  @if (!children().length) {
5151
5196
  <a
5152
5197
  [routerLink]="link()"
5153
- [badge]="
5154
- badgeCounter() && badgeCounter()! > 0
5155
- ? badgeCounter()
5156
- : undefined
5157
- "
5198
+ [badge]="badgeCounter() && badgeCounter()! > 0 ? badgeCounter() : undefined"
5158
5199
  class="side-nav-link-ref"
5159
5200
  routerLinkActive="active"
5201
+ (click)="onItemClick($event)"
5160
5202
  >
5161
5203
  @if (icon()) {
5162
5204
  <i [class]="icon()"></i>
@@ -5170,10 +5212,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
5170
5212
  `,
5171
5213
  standalone: false,
5172
5214
  }]
5173
- }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: UniqueIdService }, { type: i2.Router }, { type: SidebarService }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], link: [{ type: i0.Input, args: [{ isSignal: true, alias: "link", required: false }] }], badgeCounter: [{ type: i0.Input, args: [{ isSignal: true, alias: "badgeCounter", required: false }] }], click: [{ type: i0.Output, args: ["click"] }], children: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => SidebarItemComponent), { isSignal: true }] }], template: [{
5174
- type: ViewChild,
5175
- args: ['template', { static: true }]
5176
- }] } });
5215
+ }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: UniqueIdService }, { type: i2.Router }, { type: SidebarService }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], link: [{ type: i0.Input, args: [{ isSignal: true, alias: "link", required: false }] }], badgeCounter: [{ type: i0.Input, args: [{ isSignal: true, alias: "badgeCounter", required: false }] }], click: [{ type: i0.Output, args: ["click"] }], children: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => SidebarItemComponent), { isSignal: true }] }], template: [{ type: i0.ViewChild, args: ['template', { isSignal: true }] }] } });
5177
5216
 
5178
5217
  class TooltipDirective {
5179
5218
  constructor(elementRef) {
@@ -5228,6 +5267,7 @@ class SidebarComponent {
5228
5267
  this.sidebarService = sidebarService;
5229
5268
  this.breakpointService = breakpointService;
5230
5269
  this.isCollapsed = signal(false, ...(ngDevMode ? [{ debugName: "isCollapsed" }] : []));
5270
+ this.dark = input(true, { ...(ngDevMode ? { debugName: "dark" } : {}), alias: 'dark', transform: booleanAttribute });
5231
5271
  this.subscription = new Subscription();
5232
5272
  this.rounded = input(false, { ...(ngDevMode ? { debugName: "rounded" } : {}), alias: 'rounded', transform: booleanAttribute });
5233
5273
  this.isMobile = toSignal(this.breakpointService.isMobile$);
@@ -5259,53 +5299,86 @@ class SidebarComponent {
5259
5299
  sidebar?.classList.toggle('collapsed', collapsed);
5260
5300
  }
5261
5301
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: SidebarComponent, deps: [{ token: SidebarService }, { token: BreakpointService }], target: i0.ɵɵFactoryTarget.Component }); }
5262
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.5", type: SidebarComponent, isStandalone: false, selector: "rlb-sidebar", inputs: { rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "sideMenu", first: true, predicate: ["sideMenu"], descendants: true }], ngImport: i0, template: `
5263
- <div class="vertical-menu" [class.rounded-2]="rounded()">
5264
- <div id="sidebar-menu" class="w-100 h-100 overflow-y-auto">
5265
- <ul class="metismenu list-unstyled" id="side-menu" #sideMenu>
5266
- <ng-content select="rlb-sidebar-item"></ng-content>
5267
- </ul>
5268
- </div>
5269
- </div>
5270
- <div role="button"
5271
- class="sidebar-toggle"
5272
- [tooltip]="!isCollapsed() ? 'Hide' : 'Show'"
5273
- [tooltip-placement]="!isCollapsed() ? 'top' : 'left'"
5274
- [tooltip-class]="'sidebar-toggler-tooltip'"
5275
- (click)="toggleSidebar()">
5276
- <i [class.bi-chevron-double-left]="!isCollapsed()" [class.bi-chevron-double-right]="isCollapsed()"
5277
- class="bi "></i>
5278
- </div>
5279
- `, isInline: true, dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[tooltip]", inputs: ["tooltip", "tooltip-placement", "tooltip-class", "tooltip-html"] }] }); }
5302
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.5", type: SidebarComponent, isStandalone: false, selector: "rlb-sidebar", inputs: { dark: { classPropertyName: "dark", publicName: "dark", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-bs-theme": "dark() ? 'dark' : 'light'" } }, viewQueries: [{ propertyName: "sideMenu", first: true, predicate: ["sideMenu"], descendants: true }], ngImport: i0, template: `
5303
+ <div
5304
+ class="vertical-menu"
5305
+ [class.rounded-2]="rounded()"
5306
+ >
5307
+ <div
5308
+ id="sidebar-menu"
5309
+ class="w-100 h-100 overflow-y-auto"
5310
+ >
5311
+ <ul
5312
+ class="metismenu list-unstyled"
5313
+ id="side-menu"
5314
+ #sideMenu
5315
+ >
5316
+ <ng-content select="rlb-sidebar-item"></ng-content>
5317
+ </ul>
5318
+ </div>
5319
+ </div>
5320
+ <div
5321
+ role="button"
5322
+ class="sidebar-toggle"
5323
+ [tooltip]="!isCollapsed() ? 'Hide' : 'Show'"
5324
+ [tooltip-placement]="!isCollapsed() ? 'top' : 'left'"
5325
+ [tooltip-class]="'sidebar-toggler-tooltip'"
5326
+ (click)="toggleSidebar()"
5327
+ >
5328
+ <i
5329
+ [class.bi-chevron-double-left]="!isCollapsed()"
5330
+ [class.bi-chevron-double-right]="isCollapsed()"
5331
+ class="bi "
5332
+ ></i>
5333
+ </div>
5334
+ `, isInline: true, dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[tooltip]", inputs: ["tooltip", "tooltip-placement", "tooltip-class", "tooltip-html"] }] }); }
5280
5335
  }
5281
5336
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: SidebarComponent, decorators: [{
5282
5337
  type: Component,
5283
5338
  args: [{
5284
5339
  selector: 'rlb-sidebar',
5285
5340
  template: `
5286
- <div class="vertical-menu" [class.rounded-2]="rounded()">
5287
- <div id="sidebar-menu" class="w-100 h-100 overflow-y-auto">
5288
- <ul class="metismenu list-unstyled" id="side-menu" #sideMenu>
5289
- <ng-content select="rlb-sidebar-item"></ng-content>
5290
- </ul>
5291
- </div>
5292
- </div>
5293
- <div role="button"
5294
- class="sidebar-toggle"
5295
- [tooltip]="!isCollapsed() ? 'Hide' : 'Show'"
5296
- [tooltip-placement]="!isCollapsed() ? 'top' : 'left'"
5297
- [tooltip-class]="'sidebar-toggler-tooltip'"
5298
- (click)="toggleSidebar()">
5299
- <i [class.bi-chevron-double-left]="!isCollapsed()" [class.bi-chevron-double-right]="isCollapsed()"
5300
- class="bi "></i>
5301
- </div>
5302
- `,
5303
- standalone: false
5341
+ <div
5342
+ class="vertical-menu"
5343
+ [class.rounded-2]="rounded()"
5344
+ >
5345
+ <div
5346
+ id="sidebar-menu"
5347
+ class="w-100 h-100 overflow-y-auto"
5348
+ >
5349
+ <ul
5350
+ class="metismenu list-unstyled"
5351
+ id="side-menu"
5352
+ #sideMenu
5353
+ >
5354
+ <ng-content select="rlb-sidebar-item"></ng-content>
5355
+ </ul>
5356
+ </div>
5357
+ </div>
5358
+ <div
5359
+ role="button"
5360
+ class="sidebar-toggle"
5361
+ [tooltip]="!isCollapsed() ? 'Hide' : 'Show'"
5362
+ [tooltip-placement]="!isCollapsed() ? 'top' : 'left'"
5363
+ [tooltip-class]="'sidebar-toggler-tooltip'"
5364
+ (click)="toggleSidebar()"
5365
+ >
5366
+ <i
5367
+ [class.bi-chevron-double-left]="!isCollapsed()"
5368
+ [class.bi-chevron-double-right]="isCollapsed()"
5369
+ class="bi "
5370
+ ></i>
5371
+ </div>
5372
+ `,
5373
+ host: {
5374
+ '[attr.data-bs-theme]': "dark() ? 'dark' : 'light'",
5375
+ },
5376
+ standalone: false,
5304
5377
  }]
5305
5378
  }], ctorParameters: () => [{ type: SidebarService }, { type: BreakpointService }], propDecorators: { sideMenu: [{
5306
5379
  type: ViewChild,
5307
5380
  args: ['sideMenu']
5308
- }], rounded: [{ type: i0.Input, args: [{ isSignal: true, alias: "rounded", required: false }] }] } });
5381
+ }], dark: [{ type: i0.Input, args: [{ isSignal: true, alias: "dark", required: false }] }], rounded: [{ type: i0.Input, args: [{ isSignal: true, alias: "rounded", required: false }] }] } });
5309
5382
 
5310
5383
  class TabContentComponent {
5311
5384
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: TabContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
@@ -6256,7 +6329,7 @@ class DataTableComponent {
6256
6329
  this.paginationMode = input('none', { ...(ngDevMode ? { debugName: "paginationMode" } : {}), alias: 'pagination-mode' });
6257
6330
  this.loading = input(false, { ...(ngDevMode ? { debugName: "loading" } : {}), transform: booleanAttribute });
6258
6331
  this.tableHover = input(false, { ...(ngDevMode ? { debugName: "tableHover" } : {}), alias: 'table-hover', transform: booleanAttribute });
6259
- this.tableStriped = input(true, { ...(ngDevMode ? { debugName: "tableStriped" } : {}), alias: 'table-striped', transform: booleanAttribute });
6332
+ this.tableStriped = input(false, { ...(ngDevMode ? { debugName: "tableStriped" } : {}), alias: 'table-striped', transform: booleanAttribute });
6260
6333
  this.tableStripedColumns = input(false, { ...(ngDevMode ? { debugName: "tableStripedColumns" } : {}), alias: 'table-striped-columns',
6261
6334
  transform: booleanAttribute });
6262
6335
  this.tableBordered = input(false, { ...(ngDevMode ? { debugName: "tableBordered" } : {}), alias: 'table-bordered', transform: booleanAttribute });
@@ -6268,6 +6341,7 @@ class DataTableComponent {
6268
6341
  this.pageSize = input(undefined, { ...(ngDevMode ? { debugName: "pageSize" } : {}), alias: 'page-size', transform: numberAttribute });
6269
6342
  this.showActions = input('row', ...(ngDevMode ? [{ debugName: "showActions" }] : []));
6270
6343
  this.loadMoreLabel = input('Load more', ...(ngDevMode ? [{ debugName: "loadMoreLabel" }] : []));
6344
+ this.cardStyle = input(true, { ...(ngDevMode ? { debugName: "cardStyle" } : {}), alias: 'card-style', transform: booleanAttribute });
6271
6345
  this.createItem = output({ alias: 'create-item' });
6272
6346
  this.refreshItem = output({ alias: 'refresh-item' });
6273
6347
  this.loadMore = output({ alias: 'load-more' });
@@ -6423,12 +6497,16 @@ class DataTableComponent {
6423
6497
  });
6424
6498
  }
6425
6499
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: DataTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6426
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.5", type: DataTableComponent, isStandalone: false, selector: "rlb-dt-table", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, creationStrategy: { classPropertyName: "creationStrategy", publicName: "creation-strategy", isSignal: true, isRequired: false, transformFunction: null }, creationUrl: { classPropertyName: "creationUrl", publicName: "creation-url", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, paginationMode: { classPropertyName: "paginationMode", publicName: "pagination-mode", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, tableHover: { classPropertyName: "tableHover", publicName: "table-hover", isSignal: true, isRequired: false, transformFunction: null }, tableStriped: { classPropertyName: "tableStriped", publicName: "table-striped", isSignal: true, isRequired: false, transformFunction: null }, tableStripedColumns: { classPropertyName: "tableStripedColumns", publicName: "table-striped-columns", isSignal: true, isRequired: false, transformFunction: null }, tableBordered: { classPropertyName: "tableBordered", publicName: "table-bordered", isSignal: true, isRequired: false, transformFunction: null }, tableBorderless: { classPropertyName: "tableBorderless", publicName: "table-borderless", isSignal: true, isRequired: false, transformFunction: null }, tableSmall: { classPropertyName: "tableSmall", publicName: "table-small", isSignal: true, isRequired: false, transformFunction: null }, showRefresh: { classPropertyName: "showRefresh", publicName: "show-refresh", isSignal: true, isRequired: false, transformFunction: null }, totalItems: { classPropertyName: "totalItems", publicName: "total-items", isSignal: true, isRequired: false, transformFunction: null }, currentPage: { classPropertyName: "currentPage", publicName: "current-page", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "page-size", isSignal: true, isRequired: false, transformFunction: null }, showActions: { classPropertyName: "showActions", publicName: "showActions", isSignal: true, isRequired: false, transformFunction: null }, loadMoreLabel: { classPropertyName: "loadMoreLabel", publicName: "loadMoreLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { createItem: "create-item", refreshItem: "refresh-item", loadMore: "load-more", currentPageChange: "current-pageChange", pageSizeChange: "page-sizeChange", pagination: "pagination" }, queries: [{ propertyName: "rows", predicate: DataTableRowComponent, isSignal: true }, { propertyName: "columns", predicate: DataTableHeaderComponent, isSignal: true }, { propertyName: "noItemsBlock", predicate: DataTableNoItemsComponent, isSignal: true }, { propertyName: "loadingBlock", predicate: DataTableLoadingComponent, isSignal: true }], viewQueries: [{ propertyName: "_projectedDisplayColumns", first: true, predicate: ["projectedDisplayColumns"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "_projectedNoItems", first: true, predicate: ["projectedNoItems"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "_projectedLoading", first: true, predicate: ["projectedLoading"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "_projectedRows", first: true, predicate: ["projectedRows"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "@if (creationStrategy() !== 'none' || title() || showRefresh()) {\n<div class=\"row\">\n <div class=\"col\">\n @if (title()) {\n <h3 class=\"float-start\">{{ title() }}</h3>\n }\n @if (showRefresh()) {\n <button type=\"button\" class=\"btn btn-outline-primary float-end mb-2 me-3\" (click)=\"refreshItem.emit()\"\n [disabled]=\"loading()\">\n <i class=\"fa-solid fa-arrows-rotate\"></i>\n </button>\n }\n @if (creationStrategy() === 'page') {\n <button type=\"button\" class=\"btn btn-outline-primary float-end mb-2 me-3\" [routerLink]=\"creationUrl()\">\n <i class=\"fa-solid fa-plus\"></i>\n </button>\n }\n @if (creationStrategy() === 'modal') {\n <button type=\"button\" class=\"btn btn-outline-primary float-end mb-2 me-3\" (click)=\"createItem.emit()\">\n <i class=\"fa-solid fa-plus\"></i>\n </button>\n }\n </div>\n</div>\n}\n<div class=\"table-responsive\">\n <table [ngClass]=\"getTableClasses()\">\n <thead>\n <tr>\n <ng-container #projectedDisplayColumns></ng-container>\n @if (hasActions()) {\n <th>\n <span class=\"float-end pe-2\">\n Actions\n </span>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @if (!loading()) {\n <!-- ng-container for standard structural projected rows -->\n <ng-container #projectedRows></ng-container>\n }\n\n <!-- 2. For internal states native HTML tr/td -->\n @if (!loading() && items().length === 0 && rows().length === 0) {\n <tr class=\"text-center\">\n <td [attr.colspan]=\"cols()\" style=\"border: 0\">\n <ng-container #projectedNoItems></ng-container>\n </td>\n </tr>\n }\n\n @if (loading()) {\n <tr class=\"text-center\">\n <td [attr.colspan]=\"cols()\" style=\"border: 0\">\n <ng-container #projectedLoading></ng-container>\n </td>\n </tr>\n }\n </tbody>\n @if (paginationMode() !== 'none') {\n <tfoot>\n <tr>\n <td [attr.colspan]=\"cols()\" style=\"border: 0\">\n @if (paginationMode() === 'load-more') {\n <button type=\"button\" class=\"btn btn-primary float-end btn-sm mt-2\" [disabled]=\"loading()\"\n (click)=\"loadMore.emit()\">\n {{ loadMoreLabel() }}\n </button>\n }\n @if (paginationMode() === 'pages') {\n <nav aria-label=\"Page navigation example\">\n <ul class=\"pagination float-end pagination-sm\">\n <li class=\"page-item\">\n <a class=\"page-link d-block\" [class.disabled]=\"currentPage() === 1\" href=\"#\" aria-label=\"Previous\"\n (click)=\"prev($event)\">\n <span aria-hidden=\"true\">&laquo;</span>\n </a>\n </li>\n @for (page of visiblePages(); track page) {\n <li class=\"page-item\" [class.active]=\"currentPage() === page\" [class.disabled]=\"page === '...'\">\n <a class=\"page-link d-block\" href=\"#\" (click)=\"selectPage($event, page)\">\n {{ page }}\n </a>\n </li>\n }\n <li class=\"page-item\">\n <a class=\"page-link d-block\" [class.disabled]=\"currentPage() === pages()\" href=\"#\" aria-label=\"Next\"\n (click)=\"next($event)\">\n <span aria-hidden=\"true\">&raquo;</span>\n </a>\n </li>\n </ul>\n <ul class=\"ps-0 float-end me-3\">\n <rlb-select size=\"small\" [ngModel]=\"pageSize()\" (ngModelChange)=\"onPageSizeChange($event)\"\n [disabled]=\"items().length === 0\">\n <rlb-option [value]=\"10\">10</rlb-option>\n <rlb-option [value]=\"20\">20</rlb-option>\n <rlb-option [value]=\"50\">50</rlb-option>\n <rlb-option [value]=\"100\">100</rlb-option>\n </rlb-select>\n </ul>\n </nav>\n }\n </td>\n </tr>\n </tfoot>\n }\n </table>\n</div>", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: SelectComponent, selector: "rlb-select", inputs: ["placeholder", "size", "disabled", "readonly", "multiple", "display", "id", "enable-validation"] }, { kind: "component", type: OptionComponent, selector: "rlb-option", inputs: ["value", "disabled"] }] }); }
6500
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.5", type: DataTableComponent, isStandalone: false, selector: "rlb-dt-table", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, creationStrategy: { classPropertyName: "creationStrategy", publicName: "creation-strategy", isSignal: true, isRequired: false, transformFunction: null }, creationUrl: { classPropertyName: "creationUrl", publicName: "creation-url", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, paginationMode: { classPropertyName: "paginationMode", publicName: "pagination-mode", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, tableHover: { classPropertyName: "tableHover", publicName: "table-hover", isSignal: true, isRequired: false, transformFunction: null }, tableStriped: { classPropertyName: "tableStriped", publicName: "table-striped", isSignal: true, isRequired: false, transformFunction: null }, tableStripedColumns: { classPropertyName: "tableStripedColumns", publicName: "table-striped-columns", isSignal: true, isRequired: false, transformFunction: null }, tableBordered: { classPropertyName: "tableBordered", publicName: "table-bordered", isSignal: true, isRequired: false, transformFunction: null }, tableBorderless: { classPropertyName: "tableBorderless", publicName: "table-borderless", isSignal: true, isRequired: false, transformFunction: null }, tableSmall: { classPropertyName: "tableSmall", publicName: "table-small", isSignal: true, isRequired: false, transformFunction: null }, showRefresh: { classPropertyName: "showRefresh", publicName: "show-refresh", isSignal: true, isRequired: false, transformFunction: null }, totalItems: { classPropertyName: "totalItems", publicName: "total-items", isSignal: true, isRequired: false, transformFunction: null }, currentPage: { classPropertyName: "currentPage", publicName: "current-page", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "page-size", isSignal: true, isRequired: false, transformFunction: null }, showActions: { classPropertyName: "showActions", publicName: "showActions", isSignal: true, isRequired: false, transformFunction: null }, loadMoreLabel: { classPropertyName: "loadMoreLabel", publicName: "loadMoreLabel", isSignal: true, isRequired: false, transformFunction: null }, cardStyle: { classPropertyName: "cardStyle", publicName: "card-style", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { createItem: "create-item", refreshItem: "refresh-item", loadMore: "load-more", currentPageChange: "current-pageChange", pageSizeChange: "page-sizeChange", pagination: "pagination" }, host: { properties: { "class.dt-card-style": "cardStyle()" } }, queries: [{ propertyName: "rows", predicate: DataTableRowComponent, isSignal: true }, { propertyName: "columns", predicate: DataTableHeaderComponent, isSignal: true }, { propertyName: "noItemsBlock", predicate: DataTableNoItemsComponent, isSignal: true }, { propertyName: "loadingBlock", predicate: DataTableLoadingComponent, isSignal: true }], viewQueries: [{ propertyName: "_projectedDisplayColumns", first: true, predicate: ["projectedDisplayColumns"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "_projectedNoItems", first: true, predicate: ["projectedNoItems"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "_projectedLoading", first: true, predicate: ["projectedLoading"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "_projectedRows", first: true, predicate: ["projectedRows"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "@if (creationStrategy() !== 'none' || title() || showRefresh()) {\n<div class=\"row mb-3\">\n <div class=\"col\">\n @if (title()) {\n <h3 class=\"float-start\">{{ title() }}</h3>\n }\n @if (showRefresh()) {\n <button type=\"button\" class=\"btn btn-outline-primary float-end mb-2 me-3\" (click)=\"refreshItem.emit()\"\n [disabled]=\"loading()\">\n <i class=\"fa-solid fa-arrows-rotate\"></i>\n </button>\n }\n @if (creationStrategy() === 'page') {\n <button type=\"button\" class=\"btn btn-outline-primary float-end mb-2 me-3\" [routerLink]=\"creationUrl()\">\n <i class=\"fa-solid fa-plus\"></i>\n </button>\n }\n @if (creationStrategy() === 'modal') {\n <button type=\"button\" class=\"btn btn-outline-primary float-end mb-2 me-3\" (click)=\"createItem.emit()\">\n <i class=\"fa-solid fa-plus\"></i>\n </button>\n }\n </div>\n</div>\n}\n<div class=\"table-responsive\">\n <table [ngClass]=\"getTableClasses()\">\n <thead>\n <tr>\n <ng-container #projectedDisplayColumns></ng-container>\n @if (hasActions()) {\n <th>\n <span class=\"float-end pe-2\">\n Actions\n </span>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @if (!loading()) {\n <!-- ng-container for standard structural projected rows -->\n <ng-container #projectedRows></ng-container>\n }\n\n <!-- 2. For internal states native HTML tr/td -->\n @if (!loading() && items().length === 0 && rows().length === 0) {\n <tr class=\"text-center\">\n <td [attr.colspan]=\"cols()\" style=\"border: 0\">\n <ng-container #projectedNoItems></ng-container>\n </td>\n </tr>\n }\n\n @if (loading()) {\n <tr class=\"text-center\">\n <td [attr.colspan]=\"cols()\" style=\"border: 0\">\n <ng-container #projectedLoading></ng-container>\n </td>\n </tr>\n }\n </tbody>\n @if (paginationMode() !== 'none') {\n <tfoot>\n <tr>\n <td [attr.colspan]=\"cols()\" style=\"border: 0\">\n @if (paginationMode() === 'load-more') {\n <button type=\"button\" class=\"btn btn-primary float-end btn-sm mt-2\" [disabled]=\"loading()\"\n (click)=\"loadMore.emit()\">\n {{ loadMoreLabel() }}\n </button>\n }\n @if (paginationMode() === 'pages') {\n <nav aria-label=\"Page navigation example\">\n <ul class=\"pagination float-end pagination-sm\">\n <li class=\"page-item\">\n <a class=\"page-link d-block\" [class.disabled]=\"currentPage() === 1\" href=\"#\" aria-label=\"Previous\"\n (click)=\"prev($event)\">\n <span aria-hidden=\"true\">&laquo;</span>\n </a>\n </li>\n @for (page of visiblePages(); track page) {\n <li class=\"page-item\" [class.active]=\"currentPage() === page\" [class.disabled]=\"page === '...'\">\n <a class=\"page-link d-block\" href=\"#\" (click)=\"selectPage($event, page)\">\n {{ page }}\n </a>\n </li>\n }\n <li class=\"page-item\">\n <a class=\"page-link d-block\" [class.disabled]=\"currentPage() === pages()\" href=\"#\" aria-label=\"Next\"\n (click)=\"next($event)\">\n <span aria-hidden=\"true\">&raquo;</span>\n </a>\n </li>\n </ul>\n <ul class=\"ps-0 float-end me-3\">\n <rlb-select size=\"small\" [ngModel]=\"pageSize()\" (ngModelChange)=\"onPageSizeChange($event)\"\n [disabled]=\"items().length === 0\">\n <rlb-option [value]=\"10\">10</rlb-option>\n <rlb-option [value]=\"20\">20</rlb-option>\n <rlb-option [value]=\"50\">50</rlb-option>\n <rlb-option [value]=\"100\">100</rlb-option>\n </rlb-select>\n </ul>\n </nav>\n }\n </td>\n </tr>\n </tfoot>\n }\n </table>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: SelectComponent, selector: "rlb-select", inputs: ["placeholder", "size", "disabled", "readonly", "multiple", "display", "id", "enable-validation"] }, { kind: "component", type: OptionComponent, selector: "rlb-option", inputs: ["value", "disabled"] }] }); }
6427
6501
  }
6428
6502
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: DataTableComponent, decorators: [{
6429
6503
  type: Component,
6430
- args: [{ selector: 'rlb-dt-table', standalone: false, template: "@if (creationStrategy() !== 'none' || title() || showRefresh()) {\n<div class=\"row\">\n <div class=\"col\">\n @if (title()) {\n <h3 class=\"float-start\">{{ title() }}</h3>\n }\n @if (showRefresh()) {\n <button type=\"button\" class=\"btn btn-outline-primary float-end mb-2 me-3\" (click)=\"refreshItem.emit()\"\n [disabled]=\"loading()\">\n <i class=\"fa-solid fa-arrows-rotate\"></i>\n </button>\n }\n @if (creationStrategy() === 'page') {\n <button type=\"button\" class=\"btn btn-outline-primary float-end mb-2 me-3\" [routerLink]=\"creationUrl()\">\n <i class=\"fa-solid fa-plus\"></i>\n </button>\n }\n @if (creationStrategy() === 'modal') {\n <button type=\"button\" class=\"btn btn-outline-primary float-end mb-2 me-3\" (click)=\"createItem.emit()\">\n <i class=\"fa-solid fa-plus\"></i>\n </button>\n }\n </div>\n</div>\n}\n<div class=\"table-responsive\">\n <table [ngClass]=\"getTableClasses()\">\n <thead>\n <tr>\n <ng-container #projectedDisplayColumns></ng-container>\n @if (hasActions()) {\n <th>\n <span class=\"float-end pe-2\">\n Actions\n </span>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @if (!loading()) {\n <!-- ng-container for standard structural projected rows -->\n <ng-container #projectedRows></ng-container>\n }\n\n <!-- 2. For internal states native HTML tr/td -->\n @if (!loading() && items().length === 0 && rows().length === 0) {\n <tr class=\"text-center\">\n <td [attr.colspan]=\"cols()\" style=\"border: 0\">\n <ng-container #projectedNoItems></ng-container>\n </td>\n </tr>\n }\n\n @if (loading()) {\n <tr class=\"text-center\">\n <td [attr.colspan]=\"cols()\" style=\"border: 0\">\n <ng-container #projectedLoading></ng-container>\n </td>\n </tr>\n }\n </tbody>\n @if (paginationMode() !== 'none') {\n <tfoot>\n <tr>\n <td [attr.colspan]=\"cols()\" style=\"border: 0\">\n @if (paginationMode() === 'load-more') {\n <button type=\"button\" class=\"btn btn-primary float-end btn-sm mt-2\" [disabled]=\"loading()\"\n (click)=\"loadMore.emit()\">\n {{ loadMoreLabel() }}\n </button>\n }\n @if (paginationMode() === 'pages') {\n <nav aria-label=\"Page navigation example\">\n <ul class=\"pagination float-end pagination-sm\">\n <li class=\"page-item\">\n <a class=\"page-link d-block\" [class.disabled]=\"currentPage() === 1\" href=\"#\" aria-label=\"Previous\"\n (click)=\"prev($event)\">\n <span aria-hidden=\"true\">&laquo;</span>\n </a>\n </li>\n @for (page of visiblePages(); track page) {\n <li class=\"page-item\" [class.active]=\"currentPage() === page\" [class.disabled]=\"page === '...'\">\n <a class=\"page-link d-block\" href=\"#\" (click)=\"selectPage($event, page)\">\n {{ page }}\n </a>\n </li>\n }\n <li class=\"page-item\">\n <a class=\"page-link d-block\" [class.disabled]=\"currentPage() === pages()\" href=\"#\" aria-label=\"Next\"\n (click)=\"next($event)\">\n <span aria-hidden=\"true\">&raquo;</span>\n </a>\n </li>\n </ul>\n <ul class=\"ps-0 float-end me-3\">\n <rlb-select size=\"small\" [ngModel]=\"pageSize()\" (ngModelChange)=\"onPageSizeChange($event)\"\n [disabled]=\"items().length === 0\">\n <rlb-option [value]=\"10\">10</rlb-option>\n <rlb-option [value]=\"20\">20</rlb-option>\n <rlb-option [value]=\"50\">50</rlb-option>\n <rlb-option [value]=\"100\">100</rlb-option>\n </rlb-select>\n </ul>\n </nav>\n }\n </td>\n </tr>\n </tfoot>\n }\n </table>\n</div>" }]
6431
- }], ctorParameters: () => [], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], creationStrategy: [{ type: i0.Input, args: [{ isSignal: true, alias: "creation-strategy", required: false }] }], creationUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "creation-url", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], paginationMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "pagination-mode", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], tableHover: [{ type: i0.Input, args: [{ isSignal: true, alias: "table-hover", required: false }] }], tableStriped: [{ type: i0.Input, args: [{ isSignal: true, alias: "table-striped", required: false }] }], tableStripedColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "table-striped-columns", required: false }] }], tableBordered: [{ type: i0.Input, args: [{ isSignal: true, alias: "table-bordered", required: false }] }], tableBorderless: [{ type: i0.Input, args: [{ isSignal: true, alias: "table-borderless", required: false }] }], tableSmall: [{ type: i0.Input, args: [{ isSignal: true, alias: "table-small", required: false }] }], showRefresh: [{ type: i0.Input, args: [{ isSignal: true, alias: "show-refresh", required: false }] }], totalItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "total-items", required: false }] }], currentPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "current-page", required: false }] }], pageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "page-size", required: false }] }], showActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "showActions", required: false }] }], loadMoreLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadMoreLabel", required: false }] }], createItem: [{ type: i0.Output, args: ["create-item"] }], refreshItem: [{ type: i0.Output, args: ["refresh-item"] }], loadMore: [{ type: i0.Output, args: ["load-more"] }], currentPageChange: [{ type: i0.Output, args: ["current-pageChange"] }], pageSizeChange: [{ type: i0.Output, args: ["page-sizeChange"] }], pagination: [{ type: i0.Output, args: ["pagination"] }], _projectedDisplayColumns: [{ type: i0.ViewChild, args: ['projectedDisplayColumns', { ...{
6504
+ args: [{ selector: 'rlb-dt-table', standalone: false, host: {
6505
+ // This automatically adds the 'dt-card-style' class to the <rlb-dt-table>
6506
+ // element in the DOM if cardStyle() is true.
6507
+ '[class.dt-card-style]': 'cardStyle()',
6508
+ }, template: "@if (creationStrategy() !== 'none' || title() || showRefresh()) {\n<div class=\"row mb-3\">\n <div class=\"col\">\n @if (title()) {\n <h3 class=\"float-start\">{{ title() }}</h3>\n }\n @if (showRefresh()) {\n <button type=\"button\" class=\"btn btn-outline-primary float-end mb-2 me-3\" (click)=\"refreshItem.emit()\"\n [disabled]=\"loading()\">\n <i class=\"fa-solid fa-arrows-rotate\"></i>\n </button>\n }\n @if (creationStrategy() === 'page') {\n <button type=\"button\" class=\"btn btn-outline-primary float-end mb-2 me-3\" [routerLink]=\"creationUrl()\">\n <i class=\"fa-solid fa-plus\"></i>\n </button>\n }\n @if (creationStrategy() === 'modal') {\n <button type=\"button\" class=\"btn btn-outline-primary float-end mb-2 me-3\" (click)=\"createItem.emit()\">\n <i class=\"fa-solid fa-plus\"></i>\n </button>\n }\n </div>\n</div>\n}\n<div class=\"table-responsive\">\n <table [ngClass]=\"getTableClasses()\">\n <thead>\n <tr>\n <ng-container #projectedDisplayColumns></ng-container>\n @if (hasActions()) {\n <th>\n <span class=\"float-end pe-2\">\n Actions\n </span>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @if (!loading()) {\n <!-- ng-container for standard structural projected rows -->\n <ng-container #projectedRows></ng-container>\n }\n\n <!-- 2. For internal states native HTML tr/td -->\n @if (!loading() && items().length === 0 && rows().length === 0) {\n <tr class=\"text-center\">\n <td [attr.colspan]=\"cols()\" style=\"border: 0\">\n <ng-container #projectedNoItems></ng-container>\n </td>\n </tr>\n }\n\n @if (loading()) {\n <tr class=\"text-center\">\n <td [attr.colspan]=\"cols()\" style=\"border: 0\">\n <ng-container #projectedLoading></ng-container>\n </td>\n </tr>\n }\n </tbody>\n @if (paginationMode() !== 'none') {\n <tfoot>\n <tr>\n <td [attr.colspan]=\"cols()\" style=\"border: 0\">\n @if (paginationMode() === 'load-more') {\n <button type=\"button\" class=\"btn btn-primary float-end btn-sm mt-2\" [disabled]=\"loading()\"\n (click)=\"loadMore.emit()\">\n {{ loadMoreLabel() }}\n </button>\n }\n @if (paginationMode() === 'pages') {\n <nav aria-label=\"Page navigation example\">\n <ul class=\"pagination float-end pagination-sm\">\n <li class=\"page-item\">\n <a class=\"page-link d-block\" [class.disabled]=\"currentPage() === 1\" href=\"#\" aria-label=\"Previous\"\n (click)=\"prev($event)\">\n <span aria-hidden=\"true\">&laquo;</span>\n </a>\n </li>\n @for (page of visiblePages(); track page) {\n <li class=\"page-item\" [class.active]=\"currentPage() === page\" [class.disabled]=\"page === '...'\">\n <a class=\"page-link d-block\" href=\"#\" (click)=\"selectPage($event, page)\">\n {{ page }}\n </a>\n </li>\n }\n <li class=\"page-item\">\n <a class=\"page-link d-block\" [class.disabled]=\"currentPage() === pages()\" href=\"#\" aria-label=\"Next\"\n (click)=\"next($event)\">\n <span aria-hidden=\"true\">&raquo;</span>\n </a>\n </li>\n </ul>\n <ul class=\"ps-0 float-end me-3\">\n <rlb-select size=\"small\" [ngModel]=\"pageSize()\" (ngModelChange)=\"onPageSizeChange($event)\"\n [disabled]=\"items().length === 0\">\n <rlb-option [value]=\"10\">10</rlb-option>\n <rlb-option [value]=\"20\">20</rlb-option>\n <rlb-option [value]=\"50\">50</rlb-option>\n <rlb-option [value]=\"100\">100</rlb-option>\n </rlb-select>\n </ul>\n </nav>\n }\n </td>\n </tr>\n </tfoot>\n }\n </table>\n</div>\n" }]
6509
+ }], ctorParameters: () => [], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], creationStrategy: [{ type: i0.Input, args: [{ isSignal: true, alias: "creation-strategy", required: false }] }], creationUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "creation-url", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], paginationMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "pagination-mode", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], tableHover: [{ type: i0.Input, args: [{ isSignal: true, alias: "table-hover", required: false }] }], tableStriped: [{ type: i0.Input, args: [{ isSignal: true, alias: "table-striped", required: false }] }], tableStripedColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "table-striped-columns", required: false }] }], tableBordered: [{ type: i0.Input, args: [{ isSignal: true, alias: "table-bordered", required: false }] }], tableBorderless: [{ type: i0.Input, args: [{ isSignal: true, alias: "table-borderless", required: false }] }], tableSmall: [{ type: i0.Input, args: [{ isSignal: true, alias: "table-small", required: false }] }], showRefresh: [{ type: i0.Input, args: [{ isSignal: true, alias: "show-refresh", required: false }] }], totalItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "total-items", required: false }] }], currentPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "current-page", required: false }] }], pageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "page-size", required: false }] }], showActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "showActions", required: false }] }], loadMoreLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadMoreLabel", required: false }] }], cardStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "card-style", required: false }] }], createItem: [{ type: i0.Output, args: ["create-item"] }], refreshItem: [{ type: i0.Output, args: ["refresh-item"] }], loadMore: [{ type: i0.Output, args: ["load-more"] }], currentPageChange: [{ type: i0.Output, args: ["current-pageChange"] }], pageSizeChange: [{ type: i0.Output, args: ["page-sizeChange"] }], pagination: [{ type: i0.Output, args: ["pagination"] }], _projectedDisplayColumns: [{ type: i0.ViewChild, args: ['projectedDisplayColumns', { ...{
6432
6510
  read: ViewContainerRef,
6433
6511
  }, isSignal: true }] }], rows: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => DataTableRowComponent), { isSignal: true }] }], columns: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => DataTableHeaderComponent), { isSignal: true }] }], _projectedNoItems: [{ type: i0.ViewChild, args: ['projectedNoItems', { ...{ read: ViewContainerRef }, isSignal: true }] }], _projectedLoading: [{ type: i0.ViewChild, args: ['projectedLoading', { ...{ read: ViewContainerRef }, isSignal: true }] }], _projectedRows: [{ type: i0.ViewChild, args: ['projectedRows', { ...{ read: ViewContainerRef }, isSignal: true }] }], noItemsBlock: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => DataTableNoItemsComponent), { isSignal: true }] }], loadingBlock: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => DataTableLoadingComponent), { isSignal: true }] }] } });
6434
6512