@angular-bootstrap/ngbootstrap 2.1.1 → 2.2.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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Output, Input, ChangeDetectionStrategy, Component, ViewChild, Directive, inject, Injectable, signal, TemplateRef, HostBinding, input, computed, ElementRef, Renderer2, ChangeDetectorRef, Optional, InjectionToken, Inject, HostListener, QueryList, forwardRef, ContentChildren, ContentChild, ViewEncapsulation, SkipSelf, ViewChildren } from '@angular/core';
2
+ import { EventEmitter, Output, Input, ChangeDetectionStrategy, Component, ViewChild, Directive, inject, Injectable, signal, TemplateRef, HostBinding, input, computed, ElementRef, Renderer2, ChangeDetectorRef, InjectionToken, Optional, Inject, HostListener, QueryList, forwardRef, ContentChildren, ContentChild, ViewEncapsulation, SkipSelf, ViewChildren, model, output, viewChild, effect } from '@angular/core';
3
3
  import * as i1$1 from '@angular/common';
4
4
  import { CommonModule, DOCUMENT } from '@angular/common';
5
5
  import * as i1 from '@angular/forms';
@@ -148,7 +148,7 @@ class NgbPaginationComponent {
148
148
  }
149
149
  </nav>
150
150
  }
151
- `, isInline: true, styles: [".ngb-pagination--responsive .pagination{flex-wrap:wrap;justify-content:center;gap:.15rem}.ngb-pagination .page-link,.ngb-pagination .btn{border-color:var(--dg-pager-control-border, var(--bs-border-color));background-color:var(--dg-pager-control-bg, var(--bs-body-bg));color:var(--dg-pager-link-text, var(--dg-primary, var(--bs-primary)))}.ngb-pagination .page-link:hover,.ngb-pagination .btn:hover{border-color:var(--dg-border-strong, var(--bs-border-color));background-color:var(--dg-pager-control-hover-bg, var(--bs-tertiary-bg));color:var(--dg-primary-hover, var(--bs-link-hover-color))}.ngb-pagination .page-item.active .page-link{border-color:var(--dg-pager-active-border, var(--dg-primary, var(--bs-primary)));background-color:var(--dg-pager-active-bg, var(--dg-primary, var(--bs-primary)));color:var(--dg-pager-active-text, var(--dg-on-primary, #fff))}.ngb-pagination .page-item.disabled .page-link,.ngb-pagination .btn:disabled{border-color:var(--dg-pager-control-border, var(--bs-border-color));background-color:var(--dg-pager-control-bg, var(--bs-body-bg));color:var(--dg-text-subtle, var(--bs-secondary-color));opacity:.55}.ngb-pagination__input-group{display:inline-flex;align-items:center;gap:.35rem;flex-wrap:wrap;justify-content:center}.ngb-pagination__page-input{width:4.25rem;text-align:center;border-color:var(--dg-pager-control-border, var(--bs-border-color));background-color:var(--dg-pager-control-bg, var(--bs-body-bg));color:var(--dg-text, var(--bs-body-color))}.ngb-pagination__input-label{margin:0}.ngb-pagination__input-total{font-size:.875rem;color:var(--dg-pager-text, var(--bs-secondary-color));white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number]:not([ngNoCva])[formControlName],input[type=number]:not([ngNoCva])[formControl],input[type=number]:not([ngNoCva])[ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
151
+ `, isInline: true, styles: [":host{font-family:var(--ngb-font-family, inherit);color:var(--ngb-on-surface, inherit)}.btn{--bs-btn-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-btn-disabled-opacity: var(--ngb-disabled-opacity, .65)}.btn-primary{--bs-btn-bg: var(--ngb-primary, #0d6efd);--bs-btn-border-color: var(--ngb-primary, #0d6efd);--bs-btn-color: var(--ngb-on-primary, #fff);--bs-btn-hover-bg: var(--ngb-primary-hover, #0b5ed7);--bs-btn-hover-border-color: var(--ngb-primary-hover, #0a58ca);--bs-btn-hover-color: var(--ngb-on-primary, #fff);--bs-btn-active-bg: var(--ngb-primary-hover, #0a58ca);--bs-btn-active-border-color: var(--ngb-primary-hover, #0a53be);--bs-btn-active-color: var(--ngb-on-primary, #fff);--bs-btn-disabled-bg: var(--ngb-primary, #0d6efd);--bs-btn-disabled-border-color: var(--ngb-primary, #0d6efd);--bs-btn-disabled-color: var(--ngb-on-primary, #fff)}.btn-outline-secondary{--bs-btn-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-border-color: var(--ngb-border-color, #6c757d);--bs-btn-hover-bg: var(--ngb-hover-bg, #6c757d);--bs-btn-hover-color: var(--ngb-on-surface, #fff);--bs-btn-hover-border-color: var(--ngb-border-color, #6c757d);--bs-btn-active-bg: var(--ngb-selected-bg, #6c757d);--bs-btn-active-color: var(--ngb-on-surface, #fff);--bs-btn-active-border-color: var(--ngb-border-color, #6c757d);--bs-btn-disabled-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-disabled-border-color: var(--ngb-border-color, #6c757d)}.form-control,.form-select{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, var(--bs-border-radius, .375rem))}.form-control::placeholder{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.form-control:disabled,.form-select:disabled{background-color:var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));opacity:var(--ngb-disabled-opacity, 1)}.form-check-input{background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.form-check-input:checked,.form-check-input:indeterminate{background-color:var(--ngb-primary, #0d6efd);border-color:var(--ngb-primary, #0d6efd)}.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--ngb-primary, #86b7fe);box-shadow:0 0 0 .25rem var(--ngb-focus-ring, rgba(13, 110, 253, .25))}.btn:focus-visible,.page-link:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.dropdown-menu{--bs-dropdown-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-bg: var(--ngb-surface, var(--bs-body-bg, #fff));--bs-dropdown-border-color: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0,0,0,.175)));--bs-dropdown-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-dropdown-link-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--bs-dropdown-link-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-active-bg: var(--ngb-primary, #0d6efd);--bs-dropdown-link-active-color: var(--ngb-on-primary, #fff);--bs-dropdown-link-disabled-color: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #adb5bd));box-shadow:var(--ngb-elevation-2, none)}.form-select{background-image:var(--ngb-select-icon, var(--bs-form-select-bg-img))}.form-check-input:disabled{opacity:var(--ngb-disabled-opacity, .5)}.btn-sm{--bs-btn-border-radius: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}.form-control-sm,.form-select-sm{border-radius:var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}\n", ".pagination{--bs-pagination-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem))}.ngb-pagination--responsive .pagination{flex-wrap:wrap;justify-content:center;gap:.15rem}.ngb-pagination .page-link,.ngb-pagination .btn{border-color:var(--dg-pager-control-border, var(--ngb-border-color, var(--bs-border-color)));background-color:var(--dg-pager-control-bg, var(--ngb-surface, var(--bs-body-bg)));color:var(--dg-pager-link-text, var(--dg-primary, var(--ngb-primary, var(--bs-primary))))}.ngb-pagination .page-link:focus,.ngb-pagination .page-link:hover,.ngb-pagination .btn:hover{border-color:var(--dg-border-strong, var(--ngb-border-color, var(--bs-border-color)));background-color:var(--dg-pager-control-hover-bg, var(--ngb-hover-bg, var(--bs-tertiary-bg)));color:var(--dg-primary-hover, var(--ngb-primary-hover, var(--bs-link-hover-color)))}.ngb-pagination .page-link:focus{box-shadow:var(--dg-focus-shadow, 0 0 0 .25rem var(--ngb-focus-ring, rgba(13,110,253,.25)))}.ngb-pagination .page-item.active .page-link{border-color:var(--dg-pager-active-border, var(--dg-primary, var(--ngb-primary, var(--bs-primary))));background-color:var(--dg-pager-active-bg, var(--dg-primary, var(--ngb-primary, var(--bs-primary))));color:var(--dg-pager-active-text, var(--dg-on-primary, var(--ngb-on-primary, #fff)))}.ngb-pagination .page-item.disabled .page-link,.ngb-pagination .btn:disabled{border-color:var(--dg-pager-control-border, var(--ngb-border-color, var(--bs-border-color)));background-color:var(--dg-pager-control-bg, var(--ngb-surface, var(--bs-body-bg)));color:var(--dg-text-subtle, var(--ngb-on-surface-variant, var(--bs-secondary-color)));opacity:var(--ngb-disabled-opacity, .55)}.ngb-pagination__input-group{display:inline-flex;align-items:center;gap:.35rem;flex-wrap:wrap;justify-content:center}.ngb-pagination__page-input{width:4.25rem;text-align:center;border-color:var(--dg-pager-control-border, var(--ngb-border-color, var(--bs-border-color)));background-color:var(--dg-pager-control-bg, var(--ngb-surface, var(--bs-body-bg)));color:var(--dg-text, var(--ngb-on-surface, var(--bs-body-color)))}.ngb-pagination__input-label{margin:0}.ngb-pagination__input-total{font-size:.875rem;color:var(--dg-pager-text, var(--ngb-on-surface-variant, var(--bs-secondary-color)));white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number]:not([ngNoCva])[formControlName],input[type=number]:not([ngNoCva])[formControl],input[type=number]:not([ngNoCva])[ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
152
152
  }
153
153
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbPaginationComponent, decorators: [{
154
154
  type: Component,
@@ -249,7 +249,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
249
249
  }
250
250
  </nav>
251
251
  }
252
- `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".ngb-pagination--responsive .pagination{flex-wrap:wrap;justify-content:center;gap:.15rem}.ngb-pagination .page-link,.ngb-pagination .btn{border-color:var(--dg-pager-control-border, var(--bs-border-color));background-color:var(--dg-pager-control-bg, var(--bs-body-bg));color:var(--dg-pager-link-text, var(--dg-primary, var(--bs-primary)))}.ngb-pagination .page-link:hover,.ngb-pagination .btn:hover{border-color:var(--dg-border-strong, var(--bs-border-color));background-color:var(--dg-pager-control-hover-bg, var(--bs-tertiary-bg));color:var(--dg-primary-hover, var(--bs-link-hover-color))}.ngb-pagination .page-item.active .page-link{border-color:var(--dg-pager-active-border, var(--dg-primary, var(--bs-primary)));background-color:var(--dg-pager-active-bg, var(--dg-primary, var(--bs-primary)));color:var(--dg-pager-active-text, var(--dg-on-primary, #fff))}.ngb-pagination .page-item.disabled .page-link,.ngb-pagination .btn:disabled{border-color:var(--dg-pager-control-border, var(--bs-border-color));background-color:var(--dg-pager-control-bg, var(--bs-body-bg));color:var(--dg-text-subtle, var(--bs-secondary-color));opacity:.55}.ngb-pagination__input-group{display:inline-flex;align-items:center;gap:.35rem;flex-wrap:wrap;justify-content:center}.ngb-pagination__page-input{width:4.25rem;text-align:center;border-color:var(--dg-pager-control-border, var(--bs-border-color));background-color:var(--dg-pager-control-bg, var(--bs-body-bg));color:var(--dg-text, var(--bs-body-color))}.ngb-pagination__input-label{margin:0}.ngb-pagination__input-total{font-size:.875rem;color:var(--dg-pager-text, var(--bs-secondary-color));white-space:nowrap}\n"] }]
252
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{font-family:var(--ngb-font-family, inherit);color:var(--ngb-on-surface, inherit)}.btn{--bs-btn-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-btn-disabled-opacity: var(--ngb-disabled-opacity, .65)}.btn-primary{--bs-btn-bg: var(--ngb-primary, #0d6efd);--bs-btn-border-color: var(--ngb-primary, #0d6efd);--bs-btn-color: var(--ngb-on-primary, #fff);--bs-btn-hover-bg: var(--ngb-primary-hover, #0b5ed7);--bs-btn-hover-border-color: var(--ngb-primary-hover, #0a58ca);--bs-btn-hover-color: var(--ngb-on-primary, #fff);--bs-btn-active-bg: var(--ngb-primary-hover, #0a58ca);--bs-btn-active-border-color: var(--ngb-primary-hover, #0a53be);--bs-btn-active-color: var(--ngb-on-primary, #fff);--bs-btn-disabled-bg: var(--ngb-primary, #0d6efd);--bs-btn-disabled-border-color: var(--ngb-primary, #0d6efd);--bs-btn-disabled-color: var(--ngb-on-primary, #fff)}.btn-outline-secondary{--bs-btn-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-border-color: var(--ngb-border-color, #6c757d);--bs-btn-hover-bg: var(--ngb-hover-bg, #6c757d);--bs-btn-hover-color: var(--ngb-on-surface, #fff);--bs-btn-hover-border-color: var(--ngb-border-color, #6c757d);--bs-btn-active-bg: var(--ngb-selected-bg, #6c757d);--bs-btn-active-color: var(--ngb-on-surface, #fff);--bs-btn-active-border-color: var(--ngb-border-color, #6c757d);--bs-btn-disabled-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-disabled-border-color: var(--ngb-border-color, #6c757d)}.form-control,.form-select{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, var(--bs-border-radius, .375rem))}.form-control::placeholder{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.form-control:disabled,.form-select:disabled{background-color:var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));opacity:var(--ngb-disabled-opacity, 1)}.form-check-input{background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.form-check-input:checked,.form-check-input:indeterminate{background-color:var(--ngb-primary, #0d6efd);border-color:var(--ngb-primary, #0d6efd)}.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--ngb-primary, #86b7fe);box-shadow:0 0 0 .25rem var(--ngb-focus-ring, rgba(13, 110, 253, .25))}.btn:focus-visible,.page-link:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.dropdown-menu{--bs-dropdown-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-bg: var(--ngb-surface, var(--bs-body-bg, #fff));--bs-dropdown-border-color: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0,0,0,.175)));--bs-dropdown-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-dropdown-link-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--bs-dropdown-link-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-active-bg: var(--ngb-primary, #0d6efd);--bs-dropdown-link-active-color: var(--ngb-on-primary, #fff);--bs-dropdown-link-disabled-color: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #adb5bd));box-shadow:var(--ngb-elevation-2, none)}.form-select{background-image:var(--ngb-select-icon, var(--bs-form-select-bg-img))}.form-check-input:disabled{opacity:var(--ngb-disabled-opacity, .5)}.btn-sm{--bs-btn-border-radius: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}.form-control-sm,.form-select-sm{border-radius:var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}\n", ".pagination{--bs-pagination-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem))}.ngb-pagination--responsive .pagination{flex-wrap:wrap;justify-content:center;gap:.15rem}.ngb-pagination .page-link,.ngb-pagination .btn{border-color:var(--dg-pager-control-border, var(--ngb-border-color, var(--bs-border-color)));background-color:var(--dg-pager-control-bg, var(--ngb-surface, var(--bs-body-bg)));color:var(--dg-pager-link-text, var(--dg-primary, var(--ngb-primary, var(--bs-primary))))}.ngb-pagination .page-link:focus,.ngb-pagination .page-link:hover,.ngb-pagination .btn:hover{border-color:var(--dg-border-strong, var(--ngb-border-color, var(--bs-border-color)));background-color:var(--dg-pager-control-hover-bg, var(--ngb-hover-bg, var(--bs-tertiary-bg)));color:var(--dg-primary-hover, var(--ngb-primary-hover, var(--bs-link-hover-color)))}.ngb-pagination .page-link:focus{box-shadow:var(--dg-focus-shadow, 0 0 0 .25rem var(--ngb-focus-ring, rgba(13,110,253,.25)))}.ngb-pagination .page-item.active .page-link{border-color:var(--dg-pager-active-border, var(--dg-primary, var(--ngb-primary, var(--bs-primary))));background-color:var(--dg-pager-active-bg, var(--dg-primary, var(--ngb-primary, var(--bs-primary))));color:var(--dg-pager-active-text, var(--dg-on-primary, var(--ngb-on-primary, #fff)))}.ngb-pagination .page-item.disabled .page-link,.ngb-pagination .btn:disabled{border-color:var(--dg-pager-control-border, var(--ngb-border-color, var(--bs-border-color)));background-color:var(--dg-pager-control-bg, var(--ngb-surface, var(--bs-body-bg)));color:var(--dg-text-subtle, var(--ngb-on-surface-variant, var(--bs-secondary-color)));opacity:var(--ngb-disabled-opacity, .55)}.ngb-pagination__input-group{display:inline-flex;align-items:center;gap:.35rem;flex-wrap:wrap;justify-content:center}.ngb-pagination__page-input{width:4.25rem;text-align:center;border-color:var(--dg-pager-control-border, var(--ngb-border-color, var(--bs-border-color)));background-color:var(--dg-pager-control-bg, var(--ngb-surface, var(--bs-body-bg)));color:var(--dg-text, var(--ngb-on-surface, var(--bs-body-color)))}.ngb-pagination__input-label{margin:0}.ngb-pagination__input-total{font-size:.875rem;color:var(--dg-pager-text, var(--ngb-on-surface-variant, var(--bs-secondary-color)));white-space:nowrap}\n"] }]
253
253
  }], propDecorators: { page: [{
254
254
  type: Input
255
255
  }], pageSize: [{
@@ -484,7 +484,7 @@ class NgbPagerComponent {
484
484
  <div class="ngb-pager__page-size ngb-pager__part--sizes ngb-pager__part--spacer" aria-hidden="true"></div>
485
485
  }
486
486
  </div>
487
- `, isInline: true, styles: [".ngb-pager{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.5rem .75rem;width:100%;color:var(--dg-pager-text, var(--bs-secondary-color))}.ngb-pager__range{justify-self:start;min-width:0;color:var(--dg-pager-text, var(--bs-secondary-color))!important}.ngb-pager__pagination{display:flex;justify-content:center;justify-self:center;min-width:0}.ngb-pager__page-size{display:inline-flex;align-items:center;justify-self:end;gap:.5rem;min-width:0}.ngb-pager__page-size-label{margin:0;white-space:nowrap;font-size:.875rem;line-height:1.25;color:var(--dg-pager-text, var(--bs-secondary-color))}.ngb-pager__page-size-select{width:auto;min-width:4.5rem;flex:0 0 auto;border-color:var(--dg-pager-control-border, var(--bs-border-color));background-color:var(--dg-pager-control-bg, var(--bs-body-bg));background-image:var(--dg-pager-select-icon);background-position:right .75rem center;background-repeat:no-repeat;background-size:16px 12px;color:var(--dg-text, var(--bs-body-color));padding-right:2.25rem;appearance:none}.ngb-pager--wrap{display:flex;flex-wrap:wrap;justify-content:center}.ngb-pager--wrap .ngb-pager__range{flex:1 1 100%;justify-self:auto}.ngb-pager--wrap .ngb-pager__pagination{flex:1 1 100%;justify-content:center;justify-self:auto}.ngb-pager--wrap .ngb-pager__page-size{flex:0 0 auto;justify-self:auto}.ngb-pager--responsive{flex-wrap:nowrap;overflow:hidden}.ngb-pager__part--hidden{visibility:hidden;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple]):not([ngNoCva])[formControlName],select:not([multiple]):not([ngNoCva])[formControl],select:not([multiple]):not([ngNoCva])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: NgbPaginationComponent, selector: "ngb-pagination", inputs: ["page", "pageSize", "collectionSize", "maxSize", "buttonCount", "previousNext", "pagerType", "responsive"], outputs: ["pageChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
487
+ `, isInline: true, styles: [":host{font-family:var(--ngb-font-family, inherit);color:var(--ngb-on-surface, inherit)}.btn{--bs-btn-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-btn-disabled-opacity: var(--ngb-disabled-opacity, .65)}.btn-primary{--bs-btn-bg: var(--ngb-primary, #0d6efd);--bs-btn-border-color: var(--ngb-primary, #0d6efd);--bs-btn-color: var(--ngb-on-primary, #fff);--bs-btn-hover-bg: var(--ngb-primary-hover, #0b5ed7);--bs-btn-hover-border-color: var(--ngb-primary-hover, #0a58ca);--bs-btn-hover-color: var(--ngb-on-primary, #fff);--bs-btn-active-bg: var(--ngb-primary-hover, #0a58ca);--bs-btn-active-border-color: var(--ngb-primary-hover, #0a53be);--bs-btn-active-color: var(--ngb-on-primary, #fff);--bs-btn-disabled-bg: var(--ngb-primary, #0d6efd);--bs-btn-disabled-border-color: var(--ngb-primary, #0d6efd);--bs-btn-disabled-color: var(--ngb-on-primary, #fff)}.btn-outline-secondary{--bs-btn-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-border-color: var(--ngb-border-color, #6c757d);--bs-btn-hover-bg: var(--ngb-hover-bg, #6c757d);--bs-btn-hover-color: var(--ngb-on-surface, #fff);--bs-btn-hover-border-color: var(--ngb-border-color, #6c757d);--bs-btn-active-bg: var(--ngb-selected-bg, #6c757d);--bs-btn-active-color: var(--ngb-on-surface, #fff);--bs-btn-active-border-color: var(--ngb-border-color, #6c757d);--bs-btn-disabled-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-disabled-border-color: var(--ngb-border-color, #6c757d)}.form-control,.form-select{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, var(--bs-border-radius, .375rem))}.form-control::placeholder{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.form-control:disabled,.form-select:disabled{background-color:var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));opacity:var(--ngb-disabled-opacity, 1)}.form-check-input{background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.form-check-input:checked,.form-check-input:indeterminate{background-color:var(--ngb-primary, #0d6efd);border-color:var(--ngb-primary, #0d6efd)}.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--ngb-primary, #86b7fe);box-shadow:0 0 0 .25rem var(--ngb-focus-ring, rgba(13, 110, 253, .25))}.btn:focus-visible,.page-link:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.dropdown-menu{--bs-dropdown-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-bg: var(--ngb-surface, var(--bs-body-bg, #fff));--bs-dropdown-border-color: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0,0,0,.175)));--bs-dropdown-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-dropdown-link-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--bs-dropdown-link-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-active-bg: var(--ngb-primary, #0d6efd);--bs-dropdown-link-active-color: var(--ngb-on-primary, #fff);--bs-dropdown-link-disabled-color: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #adb5bd));box-shadow:var(--ngb-elevation-2, none)}.form-select{background-image:var(--ngb-select-icon, var(--bs-form-select-bg-img))}.form-check-input:disabled{opacity:var(--ngb-disabled-opacity, .5)}.btn-sm{--bs-btn-border-radius: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}.form-control-sm,.form-select-sm{border-radius:var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}\n", ".ngb-pager{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.5rem .75rem;width:100%;color:var(--dg-pager-text, var(--ngb-on-surface-variant, var(--bs-secondary-color)))}.ngb-pager__range{justify-self:start;min-width:0;color:var(--dg-pager-text, var(--ngb-on-surface-variant, var(--bs-secondary-color)))!important}.ngb-pager__pagination{display:flex;justify-content:center;justify-self:center;min-width:0}.ngb-pager__page-size{display:inline-flex;align-items:center;justify-self:end;gap:.5rem;min-width:0}.ngb-pager__page-size-label{margin:0;white-space:nowrap;font-size:.875rem;line-height:1.25;color:var(--dg-pager-text, var(--ngb-on-surface-variant, var(--bs-secondary-color)))}.ngb-pager__page-size-select{width:auto;min-width:4.5rem;flex:0 0 auto;border-color:var(--dg-pager-control-border, var(--ngb-border-color, var(--bs-border-color)));background-color:var(--dg-pager-control-bg, var(--ngb-surface, var(--bs-body-bg)));background-image:var(--dg-pager-select-icon, var(--ngb-select-icon, var(--bs-form-select-bg-img)));background-position:right .75rem center;background-repeat:no-repeat;background-size:16px 12px;color:var(--dg-text, var(--ngb-on-surface, var(--bs-body-color)));padding-right:2.25rem;appearance:none}.ngb-pager--wrap{display:flex;flex-wrap:wrap;justify-content:center}.ngb-pager--wrap .ngb-pager__range{flex:1 1 100%;justify-self:auto}.ngb-pager--wrap .ngb-pager__pagination{flex:1 1 100%;justify-content:center;justify-self:auto}.ngb-pager--wrap .ngb-pager__page-size{flex:0 0 auto;justify-self:auto}.ngb-pager--responsive{flex-wrap:nowrap;overflow:hidden}.ngb-pager__part--hidden{visibility:hidden;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple]):not([ngNoCva])[formControlName],select:not([multiple]):not([ngNoCva])[formControl],select:not([multiple]):not([ngNoCva])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: NgbPaginationComponent, selector: "ngb-pagination", inputs: ["page", "pageSize", "collectionSize", "maxSize", "buttonCount", "previousNext", "pagerType", "responsive"], outputs: ["pageChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
488
488
  }
489
489
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbPagerComponent, decorators: [{
490
490
  type: Component,
@@ -549,7 +549,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
549
549
  <div class="ngb-pager__page-size ngb-pager__part--sizes ngb-pager__part--spacer" aria-hidden="true"></div>
550
550
  }
551
551
  </div>
552
- `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".ngb-pager{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.5rem .75rem;width:100%;color:var(--dg-pager-text, var(--bs-secondary-color))}.ngb-pager__range{justify-self:start;min-width:0;color:var(--dg-pager-text, var(--bs-secondary-color))!important}.ngb-pager__pagination{display:flex;justify-content:center;justify-self:center;min-width:0}.ngb-pager__page-size{display:inline-flex;align-items:center;justify-self:end;gap:.5rem;min-width:0}.ngb-pager__page-size-label{margin:0;white-space:nowrap;font-size:.875rem;line-height:1.25;color:var(--dg-pager-text, var(--bs-secondary-color))}.ngb-pager__page-size-select{width:auto;min-width:4.5rem;flex:0 0 auto;border-color:var(--dg-pager-control-border, var(--bs-border-color));background-color:var(--dg-pager-control-bg, var(--bs-body-bg));background-image:var(--dg-pager-select-icon);background-position:right .75rem center;background-repeat:no-repeat;background-size:16px 12px;color:var(--dg-text, var(--bs-body-color));padding-right:2.25rem;appearance:none}.ngb-pager--wrap{display:flex;flex-wrap:wrap;justify-content:center}.ngb-pager--wrap .ngb-pager__range{flex:1 1 100%;justify-self:auto}.ngb-pager--wrap .ngb-pager__pagination{flex:1 1 100%;justify-content:center;justify-self:auto}.ngb-pager--wrap .ngb-pager__page-size{flex:0 0 auto;justify-self:auto}.ngb-pager--responsive{flex-wrap:nowrap;overflow:hidden}.ngb-pager__part--hidden{visibility:hidden;pointer-events:none}\n"] }]
552
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{font-family:var(--ngb-font-family, inherit);color:var(--ngb-on-surface, inherit)}.btn{--bs-btn-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-btn-disabled-opacity: var(--ngb-disabled-opacity, .65)}.btn-primary{--bs-btn-bg: var(--ngb-primary, #0d6efd);--bs-btn-border-color: var(--ngb-primary, #0d6efd);--bs-btn-color: var(--ngb-on-primary, #fff);--bs-btn-hover-bg: var(--ngb-primary-hover, #0b5ed7);--bs-btn-hover-border-color: var(--ngb-primary-hover, #0a58ca);--bs-btn-hover-color: var(--ngb-on-primary, #fff);--bs-btn-active-bg: var(--ngb-primary-hover, #0a58ca);--bs-btn-active-border-color: var(--ngb-primary-hover, #0a53be);--bs-btn-active-color: var(--ngb-on-primary, #fff);--bs-btn-disabled-bg: var(--ngb-primary, #0d6efd);--bs-btn-disabled-border-color: var(--ngb-primary, #0d6efd);--bs-btn-disabled-color: var(--ngb-on-primary, #fff)}.btn-outline-secondary{--bs-btn-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-border-color: var(--ngb-border-color, #6c757d);--bs-btn-hover-bg: var(--ngb-hover-bg, #6c757d);--bs-btn-hover-color: var(--ngb-on-surface, #fff);--bs-btn-hover-border-color: var(--ngb-border-color, #6c757d);--bs-btn-active-bg: var(--ngb-selected-bg, #6c757d);--bs-btn-active-color: var(--ngb-on-surface, #fff);--bs-btn-active-border-color: var(--ngb-border-color, #6c757d);--bs-btn-disabled-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-disabled-border-color: var(--ngb-border-color, #6c757d)}.form-control,.form-select{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, var(--bs-border-radius, .375rem))}.form-control::placeholder{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.form-control:disabled,.form-select:disabled{background-color:var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));opacity:var(--ngb-disabled-opacity, 1)}.form-check-input{background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.form-check-input:checked,.form-check-input:indeterminate{background-color:var(--ngb-primary, #0d6efd);border-color:var(--ngb-primary, #0d6efd)}.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--ngb-primary, #86b7fe);box-shadow:0 0 0 .25rem var(--ngb-focus-ring, rgba(13, 110, 253, .25))}.btn:focus-visible,.page-link:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.dropdown-menu{--bs-dropdown-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-bg: var(--ngb-surface, var(--bs-body-bg, #fff));--bs-dropdown-border-color: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0,0,0,.175)));--bs-dropdown-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-dropdown-link-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--bs-dropdown-link-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-active-bg: var(--ngb-primary, #0d6efd);--bs-dropdown-link-active-color: var(--ngb-on-primary, #fff);--bs-dropdown-link-disabled-color: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #adb5bd));box-shadow:var(--ngb-elevation-2, none)}.form-select{background-image:var(--ngb-select-icon, var(--bs-form-select-bg-img))}.form-check-input:disabled{opacity:var(--ngb-disabled-opacity, .5)}.btn-sm{--bs-btn-border-radius: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}.form-control-sm,.form-select-sm{border-radius:var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}\n", ".ngb-pager{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.5rem .75rem;width:100%;color:var(--dg-pager-text, var(--ngb-on-surface-variant, var(--bs-secondary-color)))}.ngb-pager__range{justify-self:start;min-width:0;color:var(--dg-pager-text, var(--ngb-on-surface-variant, var(--bs-secondary-color)))!important}.ngb-pager__pagination{display:flex;justify-content:center;justify-self:center;min-width:0}.ngb-pager__page-size{display:inline-flex;align-items:center;justify-self:end;gap:.5rem;min-width:0}.ngb-pager__page-size-label{margin:0;white-space:nowrap;font-size:.875rem;line-height:1.25;color:var(--dg-pager-text, var(--ngb-on-surface-variant, var(--bs-secondary-color)))}.ngb-pager__page-size-select{width:auto;min-width:4.5rem;flex:0 0 auto;border-color:var(--dg-pager-control-border, var(--ngb-border-color, var(--bs-border-color)));background-color:var(--dg-pager-control-bg, var(--ngb-surface, var(--bs-body-bg)));background-image:var(--dg-pager-select-icon, var(--ngb-select-icon, var(--bs-form-select-bg-img)));background-position:right .75rem center;background-repeat:no-repeat;background-size:16px 12px;color:var(--dg-text, var(--ngb-on-surface, var(--bs-body-color)));padding-right:2.25rem;appearance:none}.ngb-pager--wrap{display:flex;flex-wrap:wrap;justify-content:center}.ngb-pager--wrap .ngb-pager__range{flex:1 1 100%;justify-self:auto}.ngb-pager--wrap .ngb-pager__pagination{flex:1 1 100%;justify-content:center;justify-self:auto}.ngb-pager--wrap .ngb-pager__page-size{flex:0 0 auto;justify-self:auto}.ngb-pager--responsive{flex-wrap:nowrap;overflow:hidden}.ngb-pager__part--hidden{visibility:hidden;pointer-events:none}\n"] }]
553
553
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { pagerRoot: [{
554
554
  type: ViewChild,
555
555
  args: ['pagerRoot']
@@ -3680,6 +3680,7 @@ class NgbDatagridFloatingPanelDirective {
3680
3680
  portaled = false;
3681
3681
  originalParent = null;
3682
3682
  originalNextSibling = null;
3683
+ copiedThemeTokens = [];
3683
3684
  scrollListeners = [];
3684
3685
  resizeObserver = null;
3685
3686
  rafId = null;
@@ -3741,6 +3742,9 @@ class NgbDatagridFloatingPanelDirective {
3741
3742
  this.renderer.removeClass(node, 'ngb-datagrid-floating-panel');
3742
3743
  this.renderer.removeClass(node, 'show');
3743
3744
  this.renderer.removeAttribute(node, 'data-theme');
3745
+ for (const token of this.copiedThemeTokens)
3746
+ node.style.removeProperty(token);
3747
+ this.copiedThemeTokens = [];
3744
3748
  this.panelTop = 0;
3745
3749
  this.panelLeft = 0;
3746
3750
  this.clearPositionStyles(node);
@@ -3849,6 +3853,18 @@ class NgbDatagridFloatingPanelDirective {
3849
3853
  else {
3850
3854
  this.renderer.removeAttribute(panel, 'data-theme');
3851
3855
  }
3856
+ // Portaling to body loses ancestor theme variables. Copy resolved tokens,
3857
+ // including custom overrides, so scoped themes and named presets both work.
3858
+ if (grid) {
3859
+ const styles = getComputedStyle(grid);
3860
+ for (let i = 0; i < styles.length; i++) {
3861
+ const token = styles.item(i);
3862
+ if (!token.startsWith('--dg-') && !token.startsWith('--ngb-'))
3863
+ continue;
3864
+ panel.style.setProperty(token, styles.getPropertyValue(token));
3865
+ this.copiedThemeTokens.push(token);
3866
+ }
3867
+ }
3852
3868
  }
3853
3869
  anchorRect(anchor) {
3854
3870
  const rect = anchor.getBoundingClientRect();
@@ -4956,48 +4972,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
4956
4972
  args: [{ required: true }]
4957
4973
  }] } });
4958
4974
 
4959
- class NgbGridHighlightDirective {
4960
- grid;
4961
- rowKey;
4962
- highlightColumnIndex;
4963
- highlightedIndex = [];
4964
- constructor(grid) {
4965
- this.grid = grid;
4966
- }
4967
- ngOnInit() {
4968
- this.apply();
4969
- }
4970
- ngOnChanges(_ch) {
4971
- this.apply();
4972
- }
4973
- apply() {
4974
- if (!this.grid)
4975
- return;
4976
- this.grid.highlightRowKey = this.rowKey ?? null;
4977
- this.grid.highlightColKey = this.highlightColumnIndex ?? null;
4978
- this.grid.highlightedIndex = this.highlightedIndex ?? [];
4979
- this.grid.updateHighlightCache();
4980
- }
4981
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbGridHighlightDirective, deps: [{ token: Datagrid, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
4982
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: NgbGridHighlightDirective, isStandalone: true, selector: "[ngbGridHighlight]", inputs: { rowKey: ["ngbGridHighlight", "rowKey"], highlightColumnIndex: "highlightColumnIndex", highlightedIndex: "highlightedIndex" }, usesOnChanges: true, ngImport: i0 });
4983
- }
4984
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbGridHighlightDirective, decorators: [{
4985
- type: Directive,
4986
- args: [{
4987
- selector: '[ngbGridHighlight]',
4988
- standalone: true
4989
- }]
4990
- }], ctorParameters: () => [{ type: Datagrid, decorators: [{
4991
- type: Optional
4992
- }] }], propDecorators: { rowKey: [{
4993
- type: Input,
4994
- args: ['ngbGridHighlight']
4995
- }], highlightColumnIndex: [{
4996
- type: Input
4997
- }], highlightedIndex: [{
4998
- type: Input
4999
- }] } });
5000
-
5001
4975
  class NgbLiveAnnouncer {
5002
4976
  node = null;
5003
4977
  announce(message) {
@@ -10549,7 +10523,7 @@ class Datagrid {
10549
10523
  { provide: PdfExportAdapter, useClass: JsPdfAdapter },
10550
10524
  { provide: ExcelExportAdapter, useClass: BrowserExcelExportAdapter },
10551
10525
  { provide: NGB_DATAGRID_HOST, useExisting: forwardRef(() => Datagrid) },
10552
- ], queries: [{ propertyName: "exportButtonDir", first: true, predicate: ExportButtonDirective, descendants: true }, { propertyName: "rowDetailTpl", first: true, predicate: NgbRowDetailTemplate, descendants: true }, { propertyName: "pagerTpl", first: true, predicate: NgbPagerTemplate, descendants: true }, { propertyName: "groupHeaderTpl", first: true, predicate: NgbDataGridGroupHeaderTemplateDirective, descendants: true }, { propertyName: "cellTplQ", predicate: NgbCellTemplate }, { propertyName: "editTplQ", predicate: NgbEditorTemplate }, { propertyName: "filterTplQ", predicate: NgbFilterTemplate }, { propertyName: "filterMenuTplQ", predicate: NgbFilterMenuTemplate }, { propertyName: "globalTplQ", predicate: NgbGlobalFilterTemplate }, { propertyName: "groupHeaderColumnTplQ", predicate: NgbDataGridGroupHeaderColumnTemplateDirective }, { propertyName: "groupFooterTplQ", predicate: NgbDataGridGroupFooterTemplateDirective }, { propertyName: "gridColumnQ", predicate: NgbGridColumnDirective }], viewQueries: [{ propertyName: "bodyScroller", first: true, predicate: ["bodyScroller"], descendants: true }, { propertyName: "headerScroller", first: true, predicate: ["headerScroller"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"ngb-grid\"\n [attr.dir]=\"resolvedDir()\"\n [attr.data-theme]=\"theme\"\n [class.ngb-grid--rtl]=\"isRtl()\"\n [class.ngb-responsive]=\"isResponsiveEnabled()\"\n [class.ngb-grid--compact]=\"densityMode === 'compact'\"\n [class.ngb-grid--stacked]=\"isStackedLayout()\"\n [class.ngb-grid--stacked-cards]=\"isStackedCardsLayout()\"\n [class.ngb-grid--menu-open]=\"!!openFilterMenuField || !!openMenuOperatorField || !!openRowFilterField\"\n [class.ngb-grid--row-operator-open]=\"!!openRowFilterField\"\n [class.ngb-grid--zebra]=\"zebraStripesEnabled\"\n [class.ngb-grid--resizable]=\"resizable && !isStackedLayout()\"\n [class.ngb-grid--column-reorderable]=\"isColumnReorderEnabled()\"\n [class.ngb-grid--loading]=\"loading\"\n [attr.aria-busy]=\"loading ? 'true' : null\"\n [style.--ngb-render-tick]=\"renderTick\"\n>\n <div class=\"ngb-grid__layout-toolbar-host\">\n <ng-content select=\"ngb-datagrid-layout-toolbar\"></ng-content>\n </div>\n <ngb-datagrid-toolbar [grid]=\"gridHost\"></ngb-datagrid-toolbar>\n <ngb-datagrid-editing-toolbar\n [grid]=\"gridHost\"\n [selectedCount]=\"getSelectedCount()\"\n [editActive]=\"isToolbarEditActive()\"\n [saveDisabled]=\"isToolbarSaveDisabled()\"\n ></ngb-datagrid-editing-toolbar>\n\n @if (paginationActive && pagerShowsAt('top')) {\n <ngb-datagrid-footer [grid]=\"gridHost\" placement=\"top\"></ngb-datagrid-footer>\n }\n\n <div\n class=\"ngb-grid__status visually-hidden-focusable\"\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >{{ statusMessage }}</div>\n\n @if (isGroupingEnabled()) {\n <div\n class=\"ngb-grid__group-panel\"\n [class.ngb-grid__group-panel--active]=\"groupPanelDragActive && !groupPanelDragDenied\"\n [class.ngb-grid__group-panel--denied]=\"groupPanelDragDenied\"\n (dragover)=\"onGroupPanelDragOver($event)\"\n (dragleave)=\"onGroupPanelDragLeave($event)\"\n (drop)=\"onGroupPanelDrop($event)\"\n >\n <div class=\"ngb-grid__group-panel-label\">{{ groupPanelLabel() }}</div>\n @if (groupedColumns().length) {\n <div class=\"ngb-grid__group-chip-list\">\n @for (descriptor of groupedColumns(); track descriptor.field) {\n <div class=\"ngb-grid__group-chip\">\n <button\n type=\"button\"\n class=\"ngb-grid__group-chip-button\"\n (click)=\"toggleGroupDirection(descriptor.field)\"\n [attr.aria-label]=\"groupDirectionAriaLabel(descriptor)\"\n >\n <span class=\"ngb-grid__group-chip-label\">{{ groupFieldLabel(descriptor) }}</span>\n <span class=\"ngb-grid__group-chip-dir\">{{ descriptor.dir === 'desc' ? '\u2193' : '\u2191' }}</span>\n </button>\n <button\n type=\"button\"\n class=\"ngb-grid__group-chip-remove\"\n (click)=\"removeGroupField(descriptor.field)\"\n [attr.aria-label]=\"groupRemoveAriaLabel(descriptor)\"\n >\n <span class=\"bi bi-x-lg\" aria-hidden=\"true\"></span>\n </button>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <div class=\"table-wrapper\" [ngClass]=\"responsiveWrapperClasses\">\n @if (loading) {\n <div class=\"ngb-grid__loading-overlay\" role=\"presentation\">\n <div class=\"spinner-border spinner-border-sm text-primary\" role=\"status\">\n <span class=\"visually-hidden\">Loading</span>\n </div>\n </div>\n }\n <div class=\"grid-header-shell\" #headerScroller>\n <table class=\"grid-table grid-header mb-0\" [ngClass]=\"tableClassList\" [style.width.px]=\"tablePixelWidth\">\n @if (tableOptions?.caption) {\n <caption\n [class.caption-top]=\"(tableOptions?.captionSide ?? 'top') === 'top'\"\n >\n {{ tableOptions?.caption }}\n </caption>\n }\n\n <colgroup\n ngbDatagridColgroup\n [grid]=\"gridHost\"\n [ngbSyncColgroup]=\"colgroupSyncId\"\n syncRole=\"header\"\n [syncMode]=\"resizable ? 'explicit' : 'auto'\"\n ></colgroup>\n\n <thead\n class=\"table-light\"\n ngbDatagridHeader\n [grid]=\"gridHost\"\n [renderTick]=\"renderTick\"\n ></thead>\n </table>\n </div>\n\n <div [class.table-body-scroll]=\"shouldEnableScroll\" #bodyScroller (scroll)=\"onBodyHorizontalScroll()\">\n @if (hasStickyGroupHeaders()) {\n <div\n class=\"ngb-grid__group-sticky-layer ngb-grid__group-sticky-layer--top\"\n [style.transform]=\"'translateY(' + stickyGroupHeaderTranslateY + 'px)'\"\n >\n <table\n class=\"grid-table grid-group-sticky-table mb-0\"\n [ngClass]=\"tableClassList\"\n [style.width.px]=\"tablePixelWidth\"\n role=\"presentation\"\n >\n <colgroup>\n @for (width of stickyGroupOverlayColumnWidths; track $index) {\n <col [style.width.px]=\"width || null\" />\n }\n </colgroup>\n <tbody>\n @for (item of stickyGroupHeaderRows; track item.key) {\n <tr class=\"grid-group-row grid-group-row--overlay\">\n @if (showSelectionColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (rowDetailTpl) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (stickyRowsEnabled) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @for (col of visibleColumns; track col.field) {\n @if (shouldRenderGroupCell(col, item.group)) {\n <td\n class=\"grid-group-row__cell\"\n [class.grid-group-row__cell--lead]=\"isGroupLeadColumn(col, item.group)\"\n [attr.colspan]=\"groupCellColspan(col, item.group)\"\n >\n @if (isGroupLeadColumn(col, item.group)) {\n <button\n type=\"button\"\n class=\"grid-group-row__toggle\"\n (click)=\"toggleGroupCollapsed(item.group, item.level, item.startIndex)\"\n [attr.aria-expanded]=\"!item.collapsed\"\n >\n <span\n class=\"bi\"\n [ngClass]=\"item.collapsed ? 'bi-chevron-right' : 'bi-chevron-down'\"\n aria-hidden=\"true\"\n ></span>\n <span class=\"grid-group-row__content\" [style.padding-inline-start.rem]=\"groupRowIndent(item.level)\">\n @if (groupHeaderTpl) {\n <ng-container\n [ngTemplateOutlet]=\"groupHeaderTpl.template\"\n [ngTemplateOutletContext]=\"groupHeaderContext(item.group)\"\n ></ng-container>\n } @else {\n <span class=\"grid-group-row__label\">{{ groupRowLabel(item.group) }}</span>\n <span class=\"grid-group-row__count\">{{ groupRowCountLabel(item.group) }}</span>\n }\n </span>\n </button>\n @if (groupHeaderColumnTemplate(groupColumnField(col)); as tpl) {\n <div class=\"grid-group-row__column-slot\">\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"groupColumnContext(item.group, col)\"\n ></ng-container>\n </div>\n }\n } @else if (groupHeaderColumnTemplate(groupColumnField(col)); as tpl) {\n <div class=\"grid-group-row__column-slot\">\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"groupColumnContext(item.group, col)\"\n ></ng-container>\n </div>\n }\n </td>\n }\n }\n @if (showActionsColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n\n <table\n class=\"grid-table grid-body grid-body--main mb-0\"\n [ngClass]=\"tableClassList\"\n [style.width.px]=\"tablePixelWidth\"\n role=\"grid\"\n [attr.aria-rowcount]=\"ariaRowCount()\"\n [attr.aria-colcount]=\"ariaColCount()\"\n [attr.aria-readonly]=\"enableEdit || enableAdd ? 'false' : 'true'\"\n [attr.aria-label]=\"tableOptions?.caption || null\"\n >\n <colgroup\n ngbDatagridColgroup\n [grid]=\"gridHost\"\n [ngbSyncColgroup]=\"colgroupSyncId\"\n syncRole=\"body\"\n [syncMode]=\"resizable ? 'explicit' : 'auto'\"\n ></colgroup>\n\n <tbody\n [ngbDndList]=\"paged\"\n [dndDisabled]=\"!isRowReorderEnabled()\"\n (dndDropped)=\"onRowDrop($event)\"\n >\n @if (!hasRenderableRows()) {\n <tr class=\"ngb-grid__empty-row\">\n <td [attr.colspan]=\"ariaColCount()\" class=\"ngb-grid__empty text-center text-muted py-4\">\n {{ emptyStateLabel() }}\n </td>\n </tr>\n }\n\n @if (addingNew) {\n <tr\n ngbDatagridAddRow\n [grid]=\"gridHost\"\n [formGroup]=\"addForm\"\n ></tr>\n }\n\n @for (item of renderRows; track item.key) {\n @if (item.kind === 'group') {\n <tr\n class=\"grid-group-row\"\n [attr.data-group-key]=\"item.key\"\n [attr.data-group-level]=\"item.level\"\n >\n @if (showSelectionColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (rowDetailTpl) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (stickyRowsEnabled) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @for (col of visibleColumns; track col.field) {\n @if (shouldRenderGroupCell(col, item.group)) {\n <td\n class=\"grid-group-row__cell\"\n [class.grid-group-row__cell--lead]=\"isGroupLeadColumn(col, item.group)\"\n [attr.colspan]=\"groupCellColspan(col, item.group)\"\n >\n @if (isGroupLeadColumn(col, item.group)) {\n <button\n type=\"button\"\n class=\"grid-group-row__toggle\"\n (click)=\"toggleGroupCollapsed(item.group, item.level, item.startIndex)\"\n [attr.aria-expanded]=\"!item.collapsed\"\n >\n <span\n class=\"bi\"\n [ngClass]=\"item.collapsed ? 'bi-chevron-right' : 'bi-chevron-down'\"\n aria-hidden=\"true\"\n ></span>\n <span class=\"grid-group-row__content\" [style.padding-inline-start.rem]=\"groupRowIndent(item.level)\">\n @if (groupHeaderTpl) {\n <ng-container\n [ngTemplateOutlet]=\"groupHeaderTpl.template\"\n [ngTemplateOutletContext]=\"groupHeaderContext(item.group)\"\n ></ng-container>\n } @else {\n <span class=\"grid-group-row__label\">{{ groupRowLabel(item.group) }}</span>\n <span class=\"grid-group-row__count\">{{ groupRowCountLabel(item.group) }}</span>\n }\n </span>\n </button>\n @if (groupHeaderColumnTemplate(groupColumnField(col)); as tpl) {\n <div class=\"grid-group-row__column-slot\">\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"groupColumnContext(item.group, col)\"\n ></ng-container>\n </div>\n }\n } @else if (groupHeaderColumnTemplate(groupColumnField(col)); as tpl) {\n <div class=\"grid-group-row__column-slot\">\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"groupColumnContext(item.group, col)\"\n ></ng-container>\n </div>\n }\n </td>\n }\n }\n @if (showActionsColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n </tr>\n } @else if (item.kind === 'group-footer') {\n <tr\n class=\"grid-group-footer-row\"\n [attr.data-group-key]=\"item.key\"\n [attr.data-group-level]=\"item.level\"\n >\n @if (showSelectionColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (rowDetailTpl) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (stickyRowsEnabled) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @for (col of visibleColumns; track col.field) {\n <td class=\"grid-group-footer-row__cell\">\n @if (groupFooterTemplate(groupColumnField(col)); as tpl) {\n <div class=\"grid-group-row__column-slot\">\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"groupColumnContext(item.group, col)\"\n ></ng-container>\n </div>\n }\n </td>\n }\n @if (showActionsColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n </tr>\n } @else {\n <tr\n class=\"grid-data-row\"\n ngbDatagridDataRow\n [grid]=\"gridHost\"\n [renderTick]=\"renderTick\"\n [row]=\"item.row\"\n [index]=\"item.pagedIndex\"\n [selected]=\"isRowSelected(item.row, item.pagedIndex)\"\n [ngbDndItem]=\"item.row\"\n [dndIndex]=\"item.pagedIndex\"\n [dndDisabled]=\"!isRowReorderEnabled()\"\n (click)=\"onRowSelect($event, item.pagedIndex); onRowClick($event, item.pagedIndex)\"\n [formGroup]=\"editForm\"\n [class.sticky-row]=\"isRowSticky(item.row, item.pagedIndex)\"\n [class.row-selected]=\"isRowSelected(item.row, item.pagedIndex)\"\n [class.row-highlight]=\"isRowHighlighted(item.row, item.pagedIndex)\"\n [class.grid-row--reorderable]=\"isRowReorderEnabled()\"\n [ngClass]=\"resolveRowClass(item.row, item.pagedIndex)\"\n [ngStyle]=\"resolveRowStyle(item.row, item.pagedIndex)\"\n [attr.aria-selected]=\"isRowSelected(item.row, item.pagedIndex) ? 'true' : null\"\n [style.top.px]=\"stickyTop(item.row, item.pagedIndex)\"\n [style.z-index]=\"isRowSticky(item.row, item.pagedIndex) ? 3 : null\"\n ></tr>\n\n @if (rowDetailTpl && isExpanded(item.pagedIndex)) {\n <tr\n ngbDatagridDetailRow\n [grid]=\"gridHost\"\n [row]=\"item.row\"\n [index]=\"item.pagedIndex\"\n [attr.id]=\"'dg-row-detail-' + item.pagedIndex\"\n ></tr>\n }\n }\n }\n </tbody>\n </table>\n\n @if (hasStickyGroupFooters()) {\n <div\n class=\"ngb-grid__group-sticky-layer ngb-grid__group-sticky-layer--bottom\"\n [style.transform]=\"'translateY(' + stickyGroupFooterTranslateY + 'px)'\"\n >\n <table\n class=\"grid-table grid-group-sticky-table mb-0\"\n [ngClass]=\"tableClassList\"\n [style.width.px]=\"tablePixelWidth\"\n role=\"presentation\"\n >\n <colgroup>\n @for (width of stickyGroupOverlayColumnWidths; track $index) {\n <col [style.width.px]=\"width || null\" />\n }\n </colgroup>\n <tbody>\n @for (item of stickyGroupFooterRows; track item.key) {\n <tr class=\"grid-group-footer-row grid-group-footer-row--overlay\">\n @if (showSelectionColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (rowDetailTpl) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (stickyRowsEnabled) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @for (col of visibleColumns; track col.field) {\n <td class=\"grid-group-footer-row__cell\">\n @if (groupFooterTemplate(groupColumnField(col)); as tpl) {\n <div class=\"grid-group-row__column-slot\">\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"groupColumnContext(item.group, col)\"\n ></ng-container>\n </div>\n }\n </td>\n }\n @if (showActionsColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n </div>\n\n <table class=\"table grid-table grid-foot mb-0\" [style.width.px]=\"tablePixelWidth\">\n <colgroup>\n @for (col of visibleColumns; track col.field) {\n <col [style.width.px]=\"col?.width\" />\n }\n </colgroup>\n <tbody>\n <tr>\n <td [attr.colspan]=\"visibleColumns.length\" width=\"100%\">\n @if (paginationActive && pagerShowsAt('bottom')) {\n <ngb-datagrid-footer [grid]=\"gridHost\" placement=\"bottom\"></ngb-datagrid-footer>\n }\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n @if (externalEditOpen) {\n <ngb-datagrid-external-editor [grid]=\"gridHost\"></ngb-datagrid-external-editor>\n }\n\n @if (openFilterMenuField && openFilterMenuColumn && openFilterMenuAnchor) {\n <ngb-datagrid-filter-menu-panel\n [grid]=\"gridHost\"\n [col]=\"openFilterMenuColumn\"\n [anchor]=\"openFilterMenuAnchor\"\n />\n }\n\n @if (openRowFilterField && openRowFilterColumn && openRowFilterOperatorAnchor) {\n <ngb-datagrid-row-filter-operator-panel\n [grid]=\"gridHost\"\n [col]=\"openRowFilterColumn\"\n [anchor]=\"openRowFilterOperatorAnchor\"\n />\n }\n</div>\n", styles: ["@charset \"UTF-8\";.ngb-grid,.ngb-datagrid-floating-panel{--dg-surface: #ffffff;--dg-surface-muted: #f9fafb;--dg-surface-subtle: #f3f4f6;--dg-surface-config: #edf4ff;--dg-surface-filter-row: #fffbeb;--dg-surface-sticky-row: #fefce8;--dg-border: #d7deea;--dg-border-strong: #cfd6e2;--dg-text: #1f2937;--dg-text-muted: #5b6578;--dg-text-subtle: #64748b;--dg-primary: #315efb;--dg-primary-hover: #2749c4;--dg-primary-active: #1d4ed8;--dg-primary-soft: #dbeafe;--dg-primary-border-subtle: #bfdbfe;--dg-accent: #3b82f6;--dg-on-primary: #ffffff;--dg-placeholder: #94a3b8;--dg-success: #39a949;--dg-success-soft: #dcfce7;--dg-success-text: #166534;--dg-success-border-subtle: #bbf7d0;--dg-danger: #ef4444;--dg-danger-soft: #fee2e2;--dg-danger-text: #b91c1c;--dg-danger-border-subtle: #fecaca;--dg-warning-soft: #fef3c7;--dg-warning-border: #fde68a;--dg-warning-text: #854d0e;--dg-filter-multi-icon: #39a949;--dg-filter-multi-icon-soft: #dcfce7;--dg-neutral-pill-bg: #e2e8f0;--dg-locked-bg: #f8fafc;--dg-row-selected-bg: #eef5ff;--dg-row-hover-bg: #f8fbff;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: #f8fbff;--dg-search-highlight-bg: #fef08a;--dg-sticky-border: #facc15;--dg-sticky-badge-bg: #fef08a;--dg-sticky-badge-text: #854d0e;--dg-dropdown-item-active-bg: var(--dg-primary-soft);--dg-dropdown-item-active-color: var(--dg-primary);--dg-focus-ring: #2563eb;--dg-focus-border: rgba(37, 99, 235, .45);--dg-focus-shadow: 0 0 0 .2rem rgba(37, 99, 235, .15);--dg-pin-shadow-start: 1px 0 0 rgba(15, 23, 42, .08);--dg-pin-shadow-end: -1px 0 0 rgba(15, 23, 42, .08);--dg-backdrop: rgba(15, 23, 42, .45);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(37, 99, 235, .18);--dg-filter-divider: rgba(219, 227, 239, .8);--dg-shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--dg-shadow-md: 0 8px 24px rgba(15, 23, 42, .12);--dg-radius-lg: .5rem;--dg-radius-md: .45rem;--dg-radius-sm: .35rem;--dg-control-height: 2.15rem;--dg-nav-height: 2.5rem;--dg-font-size-header: .92rem;--dg-font-size-cell: .84rem;--dg-font-size-label: .94rem;--dg-cell-padding-y: .75rem;--dg-cell-padding-x: .85rem;--dg-header-padding-y: .75rem;--dg-header-padding-x: .85rem;--dg-table-border-width: 1px;--dg-pager-surface: var(--dg-surface);--dg-pager-text: var(--dg-text-muted);--dg-pager-control-bg: var(--dg-surface);--dg-pager-control-hover-bg: var(--dg-surface-subtle);--dg-pager-control-border: var(--dg-border);--dg-pager-link-text: var(--dg-primary);--dg-pager-active-bg: var(--dg-primary);--dg-pager-active-border: var(--dg-primary);--dg-pager-active-text: var(--dg-on-primary);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\")}.ngb-grid[data-theme=bootstrap],.ngb-datagrid-floating-panel[data-theme=bootstrap]{--dg-surface: var(--bs-body-bg, #ffffff);--dg-surface-muted: var(--bs-tertiary-bg, #f8f9fa);--dg-surface-subtle: var(--bs-secondary-bg, #e9ecef);--dg-surface-config: var(--bs-primary-bg-subtle, #cfe2ff);--dg-surface-filter-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-surface-sticky-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-border: var(--bs-border-color, #dee2e6);--dg-border-strong: var(--bs-border-color-translucent, #ced4da);--dg-text: var(--bs-body-color, #212529);--dg-text-muted: var(--bs-secondary-color, #6c757d);--dg-text-subtle: var(--bs-tertiary-color, #6c757d);--dg-primary: var(--bs-primary, #0d6efd);--dg-primary-hover: var(--bs-link-hover-color, #0a58ca);--dg-primary-active: var(--bs-link-hover-color, #0a58ca);--dg-primary-soft: var(--bs-primary-bg-subtle, #cfe2ff);--dg-primary-border-subtle: var(--bs-primary-border-subtle, #9ec5fe);--dg-accent: var(--bs-primary, #0d6efd);--dg-on-primary: var(--bs-btn-color, #fff);--dg-placeholder: var(--bs-secondary-color, #6c757d);--dg-success: var(--bs-success, #198754);--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--bs-danger, #dc3545);--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--bs-success, #198754);--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--bs-secondary-bg, #e9ecef);--dg-locked-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-row-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-dropdown-item-active-color: var(--bs-primary, #0d6efd);--dg-focus-ring: var(--bs-focus-ring-color, var(--bs-primary, #0d6efd));--dg-focus-border: rgba(var(--bs-primary-rgb, 13, 110, 253), .45);--dg-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(var(--bs-primary-rgb, 13, 110, 253), .18);--dg-filter-divider: var(--bs-border-color-translucent, rgba(0, 0, 0, .1));--dg-shadow-sm: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--dg-shadow-md: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--dg-radius-lg: var(--bs-border-radius-lg, .5rem);--dg-radius-md: var(--bs-border-radius, .375rem);--dg-radius-sm: var(--bs-border-radius-sm, .25rem);--dg-pager-surface: var(--bs-body-bg, #ffffff);--dg-pager-text: var(--bs-secondary-color, #6c757d);--dg-pager-control-bg: var(--bs-body-bg, #ffffff);--dg-pager-control-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-pager-control-border: var(--bs-border-color, #dee2e6);--dg-pager-link-text: var(--bs-primary, #0d6efd);--dg-pager-active-bg: var(--bs-primary, #0d6efd);--dg-pager-active-border: var(--bs-primary, #0d6efd);--dg-pager-active-text: var(--bs-btn-color, #fff);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\")}.ngb-grid[data-theme=bootstrap-main],.ngb-datagrid-floating-panel[data-theme=bootstrap-main]{--dg-surface: var(--bs-body-bg, #ffffff);--dg-surface-muted: var(--bs-tertiary-bg, #f8f9fa);--dg-surface-subtle: var(--bs-secondary-bg, #e9ecef);--dg-surface-config: var(--bs-primary-bg-subtle, #cfe2ff);--dg-surface-filter-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-surface-sticky-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-border: var(--bs-border-color, #dee2e6);--dg-border-strong: var(--bs-border-color-translucent, #ced4da);--dg-text: var(--bs-body-color, #212529);--dg-text-muted: var(--bs-secondary-color, #6c757d);--dg-text-subtle: var(--bs-tertiary-color, #6c757d);--dg-primary: var(--bs-primary, #0d6efd);--dg-primary-hover: var(--bs-link-hover-color, #0a58ca);--dg-primary-active: var(--bs-link-hover-color, #0a58ca);--dg-primary-soft: var(--bs-primary-bg-subtle, #cfe2ff);--dg-primary-border-subtle: var(--bs-primary-border-subtle, #9ec5fe);--dg-accent: var(--bs-primary, #0d6efd);--dg-on-primary: var(--bs-btn-color, #fff);--dg-placeholder: var(--bs-secondary-color, #6c757d);--dg-success: var(--bs-success, #198754);--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--bs-danger, #dc3545);--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--bs-success, #198754);--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--bs-secondary-bg, #e9ecef);--dg-locked-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-row-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-dropdown-item-active-color: var(--bs-primary, #0d6efd);--dg-focus-ring: var(--bs-focus-ring-color, var(--bs-primary, #0d6efd));--dg-focus-border: rgba(var(--bs-primary-rgb, 13, 110, 253), .45);--dg-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(var(--bs-primary-rgb, 13, 110, 253), .18);--dg-filter-divider: var(--bs-border-color-translucent, rgba(0, 0, 0, .1));--dg-shadow-sm: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--dg-shadow-md: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--dg-radius-lg: var(--bs-border-radius-lg, .5rem);--dg-radius-md: var(--bs-border-radius, .375rem);--dg-radius-sm: var(--bs-border-radius-sm, .25rem);--dg-pager-surface: var(--bs-body-bg, #ffffff);--dg-pager-text: var(--bs-secondary-color, #6c757d);--dg-pager-control-bg: var(--bs-body-bg, #ffffff);--dg-pager-control-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-pager-control-border: var(--bs-border-color, #dee2e6);--dg-pager-link-text: var(--bs-primary, #0d6efd);--dg-pager-active-bg: var(--bs-primary, #0d6efd);--dg-pager-active-border: var(--bs-primary, #0d6efd);--dg-pager-active-text: var(--bs-btn-color, #fff);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");--dg-surface: #f8fbff;--dg-surface-muted: #eaf3ff;--dg-surface-subtle: #d9eaff;--dg-surface-config: #e0efff;--dg-border: #bfd7f4;--dg-border-strong: #7fb0e3;--dg-text: #172554;--dg-text-muted: #45617f;--dg-primary: #1769e0;--dg-primary-hover: #0f56bd;--dg-primary-active: #0b438f;--dg-primary-soft: #dbeafe;--dg-primary-border-subtle: #93c5fd;--dg-accent: #0f766e;--dg-row-selected-bg: #dcecff;--dg-row-hover-bg: #eef6ff;--dg-detail-row-bg: #edf6ff;--dg-dropdown-item-active-bg: #dcecff;--dg-dropdown-item-active-color: #0f56bd;--dg-focus-ring: #1769e0;--dg-focus-border: rgba(23, 105, 224, .48);--dg-focus-shadow: 0 0 0 .2rem rgba(23, 105, 224, .16)}.ngb-grid[data-theme=bootstrap-main-dark],.ngb-datagrid-floating-panel[data-theme=bootstrap-main-dark]{--dg-surface: var(--bs-body-bg, #ffffff);--dg-surface-muted: var(--bs-tertiary-bg, #f8f9fa);--dg-surface-subtle: var(--bs-secondary-bg, #e9ecef);--dg-surface-config: var(--bs-primary-bg-subtle, #cfe2ff);--dg-surface-filter-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-surface-sticky-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-border: var(--bs-border-color, #dee2e6);--dg-border-strong: var(--bs-border-color-translucent, #ced4da);--dg-text: var(--bs-body-color, #212529);--dg-text-muted: var(--bs-secondary-color, #6c757d);--dg-text-subtle: var(--bs-tertiary-color, #6c757d);--dg-primary: var(--bs-primary, #0d6efd);--dg-primary-hover: var(--bs-link-hover-color, #0a58ca);--dg-primary-active: var(--bs-link-hover-color, #0a58ca);--dg-primary-soft: var(--bs-primary-bg-subtle, #cfe2ff);--dg-primary-border-subtle: var(--bs-primary-border-subtle, #9ec5fe);--dg-accent: var(--bs-primary, #0d6efd);--dg-on-primary: var(--bs-btn-color, #fff);--dg-placeholder: var(--bs-secondary-color, #6c757d);--dg-success: var(--bs-success, #198754);--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--bs-danger, #dc3545);--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--bs-success, #198754);--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--bs-secondary-bg, #e9ecef);--dg-locked-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-row-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-dropdown-item-active-color: var(--bs-primary, #0d6efd);--dg-focus-ring: var(--bs-focus-ring-color, var(--bs-primary, #0d6efd));--dg-focus-border: rgba(var(--bs-primary-rgb, 13, 110, 253), .45);--dg-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(var(--bs-primary-rgb, 13, 110, 253), .18);--dg-filter-divider: var(--bs-border-color-translucent, rgba(0, 0, 0, .1));--dg-shadow-sm: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--dg-shadow-md: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--dg-radius-lg: var(--bs-border-radius-lg, .5rem);--dg-radius-md: var(--bs-border-radius, .375rem);--dg-radius-sm: var(--bs-border-radius-sm, .25rem);--dg-pager-surface: var(--bs-body-bg, #ffffff);--dg-pager-text: var(--bs-secondary-color, #6c757d);--dg-pager-control-bg: var(--bs-body-bg, #ffffff);--dg-pager-control-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-pager-control-border: var(--bs-border-color, #dee2e6);--dg-pager-link-text: var(--bs-primary, #0d6efd);--dg-pager-active-bg: var(--bs-primary, #0d6efd);--dg-pager-active-border: var(--bs-primary, #0d6efd);--dg-pager-active-text: var(--bs-btn-color, #fff);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");--dg-surface: #172033;--dg-surface-muted: #202b42;--dg-surface-subtle: #273653;--dg-surface-config: #172a4f;--dg-surface-filter-row: #2c2714;--dg-surface-sticky-row: #2e2810;--dg-border: #33425f;--dg-border-strong: #4a5d80;--dg-text: #edf2ff;--dg-text-muted: #b8c3d9;--dg-text-subtle: #93a2bd;--dg-primary: #38bdf8;--dg-primary-hover: #7dd3fc;--dg-primary-active: #bae6fd;--dg-primary-soft: #12344f;--dg-primary-border-subtle: #0284c7;--dg-accent: #38bdf8;--dg-on-primary: #ffffff;--dg-placeholder: #93a2bd;--dg-locked-bg: #1e2a40;--dg-row-selected-bg: #153a67;--dg-row-hover-bg: #22304a;--dg-row-odd-bg: #172033;--dg-row-even-bg: #1b263a;--dg-detail-row-bg: #182d4c;--dg-dropdown-item-active-bg: #183b70;--dg-dropdown-item-active-color: #bfdbfe;--dg-focus-ring: #60a5fa;--dg-focus-border: rgba(96, 165, 250, .6);--dg-focus-shadow: 0 0 0 .2rem rgba(96, 165, 250, .2);--dg-shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--dg-shadow-md: 0 14px 32px rgba(0, 0, 0, .36);--dg-pager-surface: #111827;--dg-pager-text: #dbeafe;--dg-pager-control-bg: #172033;--dg-pager-control-hover-bg: #22304a;--dg-pager-control-border: #4a5d80;--dg-pager-link-text: #dbeafe;--dg-pager-active-bg: #38bdf8;--dg-pager-active-border: #38bdf8;--dg-pager-active-text: #0f172a;--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\")}.ngb-grid[data-theme=bootstrap-nordic],.ngb-datagrid-floating-panel[data-theme=bootstrap-nordic]{--dg-surface: var(--bs-body-bg, #ffffff);--dg-surface-muted: var(--bs-tertiary-bg, #f8f9fa);--dg-surface-subtle: var(--bs-secondary-bg, #e9ecef);--dg-surface-config: var(--bs-primary-bg-subtle, #cfe2ff);--dg-surface-filter-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-surface-sticky-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-border: var(--bs-border-color, #dee2e6);--dg-border-strong: var(--bs-border-color-translucent, #ced4da);--dg-text: var(--bs-body-color, #212529);--dg-text-muted: var(--bs-secondary-color, #6c757d);--dg-text-subtle: var(--bs-tertiary-color, #6c757d);--dg-primary: var(--bs-primary, #0d6efd);--dg-primary-hover: var(--bs-link-hover-color, #0a58ca);--dg-primary-active: var(--bs-link-hover-color, #0a58ca);--dg-primary-soft: var(--bs-primary-bg-subtle, #cfe2ff);--dg-primary-border-subtle: var(--bs-primary-border-subtle, #9ec5fe);--dg-accent: var(--bs-primary, #0d6efd);--dg-on-primary: var(--bs-btn-color, #fff);--dg-placeholder: var(--bs-secondary-color, #6c757d);--dg-success: var(--bs-success, #198754);--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--bs-danger, #dc3545);--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--bs-success, #198754);--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--bs-secondary-bg, #e9ecef);--dg-locked-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-row-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-dropdown-item-active-color: var(--bs-primary, #0d6efd);--dg-focus-ring: var(--bs-focus-ring-color, var(--bs-primary, #0d6efd));--dg-focus-border: rgba(var(--bs-primary-rgb, 13, 110, 253), .45);--dg-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(var(--bs-primary-rgb, 13, 110, 253), .18);--dg-filter-divider: var(--bs-border-color-translucent, rgba(0, 0, 0, .1));--dg-shadow-sm: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--dg-shadow-md: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--dg-radius-lg: var(--bs-border-radius-lg, .5rem);--dg-radius-md: var(--bs-border-radius, .375rem);--dg-radius-sm: var(--bs-border-radius-sm, .25rem);--dg-pager-surface: var(--bs-body-bg, #ffffff);--dg-pager-text: var(--bs-secondary-color, #6c757d);--dg-pager-control-bg: var(--bs-body-bg, #ffffff);--dg-pager-control-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-pager-control-border: var(--bs-border-color, #dee2e6);--dg-pager-link-text: var(--bs-primary, #0d6efd);--dg-pager-active-bg: var(--bs-primary, #0d6efd);--dg-pager-active-border: var(--bs-primary, #0d6efd);--dg-pager-active-text: var(--bs-btn-color, #fff);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");--dg-surface: #ffffff;--dg-surface-muted: #f2f7f8;--dg-surface-subtle: #e6f0f2;--dg-surface-config: #e4f8fb;--dg-surface-filter-row: #fff7ed;--dg-border: #d5e4e7;--dg-border-strong: #a9c8cf;--dg-text: #263243;--dg-text-muted: #64748b;--dg-primary: #0ea5b7;--dg-primary-hover: #0b8798;--dg-primary-active: #0f6b7a;--dg-primary-soft: #d7f5f8;--dg-primary-border-subtle: #9be4ec;--dg-accent: #e85d75;--dg-row-selected-bg: #e7f8fb;--dg-row-hover-bg: #f0fbfd;--dg-row-odd-bg: transparent;--dg-row-even-bg: #fbfeff;--dg-detail-row-bg: #f4fbfc;--dg-dropdown-item-active-bg: #e7f8fb;--dg-dropdown-item-active-color: #0b8798;--dg-focus-ring: #0ea5b7;--dg-focus-border: rgba(14, 165, 183, .45);--dg-focus-shadow: 0 0 0 .2rem rgba(14, 165, 183, .15);--dg-font-size-cell: .88rem;--dg-cell-padding-y: .82rem;--dg-pager-surface: #f8ffff;--dg-pager-text: #526173;--dg-pager-control-bg: #ffffff;--dg-pager-control-hover-bg: #e7f8fb;--dg-pager-control-border: #b9dce2;--dg-pager-link-text: #0b8798;--dg-pager-active-bg: #0ea5b7;--dg-pager-active-border: #0ea5b7;--dg-pager-active-text: #ffffff}.ngb-grid[data-theme=bootstrap-urban],.ngb-datagrid-floating-panel[data-theme=bootstrap-urban]{--dg-surface: var(--bs-body-bg, #ffffff);--dg-surface-muted: var(--bs-tertiary-bg, #f8f9fa);--dg-surface-subtle: var(--bs-secondary-bg, #e9ecef);--dg-surface-config: var(--bs-primary-bg-subtle, #cfe2ff);--dg-surface-filter-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-surface-sticky-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-border: var(--bs-border-color, #dee2e6);--dg-border-strong: var(--bs-border-color-translucent, #ced4da);--dg-text: var(--bs-body-color, #212529);--dg-text-muted: var(--bs-secondary-color, #6c757d);--dg-text-subtle: var(--bs-tertiary-color, #6c757d);--dg-primary: var(--bs-primary, #0d6efd);--dg-primary-hover: var(--bs-link-hover-color, #0a58ca);--dg-primary-active: var(--bs-link-hover-color, #0a58ca);--dg-primary-soft: var(--bs-primary-bg-subtle, #cfe2ff);--dg-primary-border-subtle: var(--bs-primary-border-subtle, #9ec5fe);--dg-accent: var(--bs-primary, #0d6efd);--dg-on-primary: var(--bs-btn-color, #fff);--dg-placeholder: var(--bs-secondary-color, #6c757d);--dg-success: var(--bs-success, #198754);--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--bs-danger, #dc3545);--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--bs-success, #198754);--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--bs-secondary-bg, #e9ecef);--dg-locked-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-row-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-detail-row-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-dropdown-item-active-color: var(--bs-primary, #0d6efd);--dg-focus-ring: var(--bs-focus-ring-color, var(--bs-primary, #0d6efd));--dg-focus-border: rgba(var(--bs-primary-rgb, 13, 110, 253), .45);--dg-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(var(--bs-primary-rgb, 13, 110, 253), .18);--dg-filter-divider: var(--bs-border-color-translucent, rgba(0, 0, 0, .1));--dg-shadow-sm: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--dg-shadow-md: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--dg-radius-lg: var(--bs-border-radius-lg, .5rem);--dg-radius-md: var(--bs-border-radius, .375rem);--dg-radius-sm: var(--bs-border-radius-sm, .25rem);--dg-pager-surface: var(--bs-body-bg, #ffffff);--dg-pager-text: var(--bs-secondary-color, #6c757d);--dg-pager-control-bg: var(--bs-body-bg, #ffffff);--dg-pager-control-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-pager-control-border: var(--bs-border-color, #dee2e6);--dg-pager-link-text: var(--bs-primary, #0d6efd);--dg-pager-active-bg: var(--bs-primary, #0d6efd);--dg-pager-active-border: var(--bs-primary, #0d6efd);--dg-pager-active-text: var(--bs-btn-color, #fff);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");--dg-surface: #ffffff;--dg-surface-muted: #f5f8fa;--dg-surface-subtle: #edf4f7;--dg-surface-config: #e8f4f9;--dg-border: #d9e5ea;--dg-border-strong: #adc6d3;--dg-text: #263445;--dg-text-muted: #5f6f84;--dg-primary: #468faf;--dg-primary-hover: #36748f;--dg-primary-active: #285b72;--dg-primary-soft: #e0f0f6;--dg-primary-border-subtle: #b9dbe8;--dg-accent: #ff7f50;--dg-row-selected-bg: #e8f4f9;--dg-row-hover-bg: #fff2eb;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-dropdown-item-active-bg: #e8f4f9;--dg-dropdown-item-active-color: #36748f;--dg-focus-ring: #468faf;--dg-focus-border: rgba(70, 143, 175, .48);--dg-focus-shadow: 0 0 0 .2rem rgba(70, 143, 175, .16);--dg-cell-padding-y: .86rem;--dg-cell-padding-x: .95rem;--dg-pager-surface: #fffaf7;--dg-pager-text: #5f6f84;--dg-pager-control-bg: #ffffff;--dg-pager-control-hover-bg: #fff2eb;--dg-pager-control-border: #d4e1e7;--dg-pager-link-text: #36748f;--dg-pager-active-bg: #468faf;--dg-pager-active-border: #468faf;--dg-pager-active-text: #ffffff}.ngb-grid[data-theme=bootstrap-vintage],.ngb-datagrid-floating-panel[data-theme=bootstrap-vintage]{--dg-surface: var(--bs-body-bg, #ffffff);--dg-surface-muted: var(--bs-tertiary-bg, #f8f9fa);--dg-surface-subtle: var(--bs-secondary-bg, #e9ecef);--dg-surface-config: var(--bs-primary-bg-subtle, #cfe2ff);--dg-surface-filter-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-surface-sticky-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-border: var(--bs-border-color, #dee2e6);--dg-border-strong: var(--bs-border-color-translucent, #ced4da);--dg-text: var(--bs-body-color, #212529);--dg-text-muted: var(--bs-secondary-color, #6c757d);--dg-text-subtle: var(--bs-tertiary-color, #6c757d);--dg-primary: var(--bs-primary, #0d6efd);--dg-primary-hover: var(--bs-link-hover-color, #0a58ca);--dg-primary-active: var(--bs-link-hover-color, #0a58ca);--dg-primary-soft: var(--bs-primary-bg-subtle, #cfe2ff);--dg-primary-border-subtle: var(--bs-primary-border-subtle, #9ec5fe);--dg-accent: var(--bs-primary, #0d6efd);--dg-on-primary: var(--bs-btn-color, #fff);--dg-placeholder: var(--bs-secondary-color, #6c757d);--dg-success: var(--bs-success, #198754);--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--bs-danger, #dc3545);--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--bs-success, #198754);--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--bs-secondary-bg, #e9ecef);--dg-locked-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-row-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-dropdown-item-active-color: var(--bs-primary, #0d6efd);--dg-focus-ring: var(--bs-focus-ring-color, var(--bs-primary, #0d6efd));--dg-focus-border: rgba(var(--bs-primary-rgb, 13, 110, 253), .45);--dg-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(var(--bs-primary-rgb, 13, 110, 253), .18);--dg-filter-divider: var(--bs-border-color-translucent, rgba(0, 0, 0, .1));--dg-shadow-sm: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--dg-shadow-md: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--dg-radius-lg: var(--bs-border-radius-lg, .5rem);--dg-radius-md: var(--bs-border-radius, .375rem);--dg-radius-sm: var(--bs-border-radius-sm, .25rem);--dg-pager-surface: var(--bs-body-bg, #ffffff);--dg-pager-text: var(--bs-secondary-color, #6c757d);--dg-pager-control-bg: var(--bs-body-bg, #ffffff);--dg-pager-control-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-pager-control-border: var(--bs-border-color, #dee2e6);--dg-pager-link-text: var(--bs-primary, #0d6efd);--dg-pager-active-bg: var(--bs-primary, #0d6efd);--dg-pager-active-border: var(--bs-primary, #0d6efd);--dg-pager-active-text: var(--bs-btn-color, #fff);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");--dg-surface: #fffdf8;--dg-surface-muted: #f6f0e7;--dg-surface-subtle: #eee4d8;--dg-surface-config: #f2e7ef;--dg-border: #dfd2c2;--dg-border-strong: #c8b8a5;--dg-text: #3d3440;--dg-text-muted: #766a72;--dg-primary: #7f4f68;--dg-primary-hover: #684057;--dg-primary-active: #523246;--dg-primary-soft: #efdde8;--dg-primary-border-subtle: #d8b9ca;--dg-accent: #88b0b7;--dg-row-selected-bg: #f1e4ec;--dg-row-hover-bg: #fbf1e5;--dg-row-odd-bg: #fffdf8;--dg-row-even-bg: #fbf7ef;--dg-detail-row-bg: #fbf6ef;--dg-dropdown-item-active-bg: #f1e4ec;--dg-dropdown-item-active-color: #684057;--dg-focus-ring: #7f4f68;--dg-focus-border: rgba(127, 79, 104, .5);--dg-focus-shadow: 0 0 0 .2rem rgba(127, 79, 104, .16);--dg-font-size-header: .78rem;--dg-font-size-cell: .86rem;--dg-pager-surface: #fffdf8;--dg-pager-text: #766a72;--dg-pager-control-bg: #fffaf2;--dg-pager-control-hover-bg: #fbf1e5;--dg-pager-control-border: #dfd2c2;--dg-pager-link-text: #684057;--dg-pager-active-bg: #7f4f68;--dg-pager-active-border: #7f4f68;--dg-pager-active-text: #ffffff}.ngb-grid[data-theme=material],.ngb-grid[data-theme=material-main],.ngb-datagrid-floating-panel[data-theme=material],.ngb-datagrid-floating-panel[data-theme=material-main]{--dg-surface: #fffbfe;--dg-surface-muted: #f4eff4;--dg-surface-subtle: #e7e0ec;--dg-surface-config: #eaddff;--dg-border: #cac4d0;--dg-border-strong: #938f99;--dg-text: #1c1b1f;--dg-text-muted: #49454f;--dg-primary: #6750a4;--dg-primary-hover: #59468d;--dg-primary-active: #4f378b;--dg-primary-soft: #eaddff;--dg-primary-border-subtle: #d0bcff;--dg-accent: #7d5260;--dg-row-selected-bg: #eaddff;--dg-row-hover-bg: #f5efff;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: #f7f2fa;--dg-dropdown-item-active-bg: #eaddff;--dg-dropdown-item-active-color: #4f378b;--dg-focus-ring: #6750a4;--dg-focus-border: rgba(103, 80, 164, .5);--dg-focus-shadow: 0 0 0 .18rem rgba(103, 80, 164, .16);--dg-radius-lg: .75rem;--dg-radius-md: .65rem;--dg-radius-sm: .5rem;--dg-font-size-header: .78rem;--dg-font-size-cell: .86rem;--dg-cell-padding-y: .8rem;--dg-table-border-width: 0;--dg-pager-control-bg: #fffbfe;--dg-pager-control-hover-bg: #f4eff4;--dg-pager-control-border: #cac4d0}.ngb-grid[data-theme=material-indigo],.ngb-datagrid-floating-panel[data-theme=material-indigo]{--dg-surface: #fffbfe;--dg-surface-muted: #f4eff4;--dg-surface-subtle: #e7e0ec;--dg-surface-config: #eaddff;--dg-border: #cac4d0;--dg-border-strong: #938f99;--dg-text: #1c1b1f;--dg-text-muted: #49454f;--dg-primary: #6750a4;--dg-primary-hover: #59468d;--dg-primary-active: #4f378b;--dg-primary-soft: #eaddff;--dg-primary-border-subtle: #d0bcff;--dg-accent: #7d5260;--dg-row-selected-bg: #eaddff;--dg-row-hover-bg: #f5efff;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: #f7f2fa;--dg-dropdown-item-active-bg: #eaddff;--dg-dropdown-item-active-color: #4f378b;--dg-focus-ring: #6750a4;--dg-focus-border: rgba(103, 80, 164, .5);--dg-focus-shadow: 0 0 0 .18rem rgba(103, 80, 164, .16);--dg-radius-lg: .75rem;--dg-radius-md: .65rem;--dg-radius-sm: .5rem;--dg-font-size-header: .78rem;--dg-font-size-cell: .86rem;--dg-cell-padding-y: .8rem;--dg-table-border-width: 0;--dg-pager-control-bg: #fffbfe;--dg-pager-control-hover-bg: #f4eff4;--dg-pager-control-border: #cac4d0;--dg-primary: #3f51b5;--dg-primary-hover: #303f9f;--dg-primary-active: #283593;--dg-primary-soft: #e8eaf6;--dg-primary-border-subtle: #c5cae9;--dg-dropdown-item-active-bg: #e8eaf6;--dg-dropdown-item-active-color: #303f9f;--dg-focus-ring: #3f51b5;--dg-focus-border: rgba(63, 81, 181, .48);--dg-focus-shadow: 0 0 0 .18rem rgba(63, 81, 181, .16);--dg-row-hover-bg: #f0f2ff}.ngb-grid[data-theme=material-deep-purple],.ngb-datagrid-floating-panel[data-theme=material-deep-purple]{--dg-surface: #fffbfe;--dg-surface-muted: #f4eff4;--dg-surface-subtle: #e7e0ec;--dg-surface-config: #eaddff;--dg-border: #cac4d0;--dg-border-strong: #938f99;--dg-text: #1c1b1f;--dg-text-muted: #49454f;--dg-primary: #6750a4;--dg-primary-hover: #59468d;--dg-primary-active: #4f378b;--dg-primary-soft: #eaddff;--dg-primary-border-subtle: #d0bcff;--dg-accent: #7d5260;--dg-row-selected-bg: #eaddff;--dg-row-hover-bg: #f5efff;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: #f7f2fa;--dg-dropdown-item-active-bg: #eaddff;--dg-dropdown-item-active-color: #4f378b;--dg-focus-ring: #6750a4;--dg-focus-border: rgba(103, 80, 164, .5);--dg-focus-shadow: 0 0 0 .18rem rgba(103, 80, 164, .16);--dg-radius-lg: .75rem;--dg-radius-md: .65rem;--dg-radius-sm: .5rem;--dg-font-size-header: .78rem;--dg-font-size-cell: .86rem;--dg-cell-padding-y: .8rem;--dg-table-border-width: 0;--dg-pager-control-bg: #fffbfe;--dg-pager-control-hover-bg: #f4eff4;--dg-pager-control-border: #cac4d0;--dg-primary: #7e57c2;--dg-primary-hover: #673ab7;--dg-primary-active: #512da8;--dg-primary-soft: #ede7f6;--dg-primary-border-subtle: #d1c4e9;--dg-accent: #ff7043;--dg-row-selected-bg: #ede7f6;--dg-row-hover-bg: #f5edff;--dg-dropdown-item-active-bg: #ede7f6;--dg-dropdown-item-active-color: #512da8;--dg-focus-ring: #7e57c2;--dg-focus-border: rgba(126, 87, 194, .5);--dg-focus-shadow: 0 0 0 .18rem rgba(126, 87, 194, .16)}.ngb-grid[data-theme=tailwind],.ngb-grid[data-theme=tailwind-main],.ngb-datagrid-floating-panel[data-theme=tailwind],.ngb-datagrid-floating-panel[data-theme=tailwind-main]{--dg-surface: #ffffff;--dg-surface-muted: #f8fafc;--dg-surface-subtle: #f1f5f9;--dg-border: #cbd5e1;--dg-border-strong: #94a3b8;--dg-text: #0f172a;--dg-text-muted: #475569;--dg-primary: #2563eb;--dg-primary-hover: #1d4ed8;--dg-primary-active: #1e40af;--dg-primary-soft: #dbeafe;--dg-primary-border-subtle: #bfdbfe;--dg-dropdown-item-active-bg: #dbeafe;--dg-dropdown-item-active-color: #1d4ed8;--dg-focus-ring: #2563eb;--dg-focus-border: rgba(37, 99, 235, .48);--dg-focus-shadow: 0 0 0 .18rem rgba(37, 99, 235, .16);--dg-row-hover-bg: #eff6ff;--dg-font-size-header: .75rem;--dg-font-size-cell: .85rem;--dg-cell-padding-y: .68rem;--dg-cell-padding-x: .8rem;--dg-table-border-width: 1px;--dg-pager-surface: #ffffff;--dg-pager-text: #475569;--dg-pager-control-bg: #ffffff;--dg-pager-control-hover-bg: #eff6ff;--dg-pager-control-border: #bfdbfe;--dg-pager-link-text: #1d4ed8;--dg-pager-active-bg: #2563eb;--dg-pager-active-border: #2563eb;--dg-pager-active-text: #ffffff}.ngb-grid[data-theme=tailwind-slate],.ngb-datagrid-floating-panel[data-theme=tailwind-slate]{--dg-surface: #f8fafc;--dg-surface-muted: #e2e8f0;--dg-surface-subtle: #cbd5e1;--dg-border: #cbd5e1;--dg-border-strong: #64748b;--dg-text: #0f172a;--dg-text-muted: #475569;--dg-primary: #475569;--dg-primary-hover: #334155;--dg-primary-active: #1e293b;--dg-primary-soft: #e2e8f0;--dg-primary-border-subtle: #94a3b8;--dg-dropdown-item-active-bg: #e2e8f0;--dg-dropdown-item-active-color: #334155;--dg-focus-ring: #475569;--dg-row-hover-bg: #e2e8f0;--dg-row-odd-bg: #f8fafc;--dg-row-even-bg: #f1f5f9;--dg-focus-border: rgba(71, 85, 105, .48);--dg-focus-shadow: 0 0 0 .18rem rgba(71, 85, 105, .16)}.ngb-grid[data-theme=tailwind-emerald],.ngb-datagrid-floating-panel[data-theme=tailwind-emerald]{--dg-surface: #ffffff;--dg-surface-muted: #ecfdf5;--dg-surface-subtle: #d1fae5;--dg-border: #a7f3d0;--dg-border-strong: #34d399;--dg-text: #064e3b;--dg-text-muted: #047857;--dg-primary: #059669;--dg-primary-hover: #047857;--dg-primary-active: #065f46;--dg-primary-soft: #d1fae5;--dg-primary-border-subtle: #6ee7b7;--dg-dropdown-item-active-bg: #d1fae5;--dg-dropdown-item-active-color: #047857;--dg-focus-ring: #059669;--dg-focus-border: rgba(5, 150, 105, .48);--dg-focus-shadow: 0 0 0 .18rem rgba(5, 150, 105, .16)}.ngb-datagrid-floating-panel.grid-filter-menu-popover,.ngb-datagrid-floating-panel.dropdown-menu{position:fixed!important;z-index:1200;display:block;visibility:visible;opacity:1;pointer-events:auto;max-height:min(28rem,100vh - 1.5rem);overflow:auto;margin:0!important;border-radius:var(--dg-radius-md);border:1px solid var(--dg-border);background:var(--dg-surface);box-shadow:var(--dg-shadow-md)}.ngb-datagrid-floating-panel.dropdown-menu{min-width:12rem;padding:.35rem 0}.ngb-datagrid-floating-panel.grid-filter-operator-menu .dropdown-item{display:block;width:100%;padding:.5rem .85rem;border:0;background:transparent;font-size:.8125rem;font-weight:600;color:var(--dg-text);text-align:left}.ngb-datagrid-floating-panel.grid-filter-operator-menu .dropdown-item:hover{background:var(--dg-surface-subtle)}.ngb-datagrid-floating-panel.grid-filter-operator-menu .dropdown-item.active{color:var(--dg-dropdown-item-active-color);background:var(--dg-dropdown-item-active-bg)}.ngb-datagrid-floating-panel.dropdown-menu .dropdown-item{padding:.5rem .85rem;font-size:.8125rem;font-weight:600;color:var(--dg-text)}.ngb-datagrid-floating-panel.dropdown-menu .dropdown-item:hover{background:var(--dg-surface-subtle)}.ngb-datagrid-floating-panel.grid-filter-menu-popover{min-width:18rem;padding:0}.ngb-datagrid-floating-panel .grid-filter-menu-surface{display:block;min-width:18rem;padding:1rem;border-radius:var(--dg-radius-md);background:var(--dg-surface)}.ngb-datagrid-floating-panel .grid-filter-menu-surface__header{margin-bottom:.875rem}.ngb-datagrid-floating-panel .grid-filter-menu-surface__eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--dg-text-muted)}.ngb-datagrid-floating-panel .grid-filter-menu-surface__title{margin-top:.15rem;font-size:.95rem;font-weight:700;color:var(--dg-text)}.ngb-datagrid-floating-panel .grid-filter-stack{display:flex;flex-direction:column;gap:.75rem}.ngb-datagrid-floating-panel .grid-filter-stack__label{font-size:.8125rem;font-weight:600;color:var(--dg-text-muted)}.ngb-datagrid-floating-panel .grid-filter-stack--multi{gap:.65rem}.ngb-datagrid-floating-panel .grid-filter-condition{display:flex;flex-direction:column;gap:.5rem}.ngb-datagrid-floating-panel .grid-filter-operator-select,.ngb-grid .grid-filter-operator-select{width:100%;min-height:var(--dg-control-height);padding:.45rem .65rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface);font-size:.875rem;color:var(--dg-text)}.ngb-datagrid-floating-panel .grid-filter-operator-select--compact,.ngb-grid .grid-filter-operator-select--compact{width:auto;min-width:2.25rem;max-width:2.5rem;padding:.35rem .25rem;font-size:0}.ngb-datagrid-floating-panel .grid-filter-logic-select,.ngb-grid .grid-filter-logic-select{display:flex;justify-content:center;margin:.15rem 0}.ngb-datagrid-floating-panel .grid-filter-logic-select select,.ngb-grid .grid-filter-logic-select select{width:auto;min-width:4.5rem;min-height:1.75rem;padding:.2rem 1.5rem .2rem .65rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface);font-size:.8125rem;font-weight:600;color:var(--dg-text);text-align:center}.ngb-datagrid-floating-panel .grid-filter-menu-surface__actions--split,.ngb-grid .grid-filter-menu-surface__actions--split{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.ngb-datagrid-floating-panel .grid-filter-apply--secondary,.ngb-datagrid-floating-panel .grid-filter-cancel--secondary,.ngb-grid .grid-filter-apply--secondary,.ngb-grid .grid-filter-cancel--secondary{width:100%;border:1px solid var(--dg-border-strong);background:var(--dg-surface-muted);color:var(--dg-text);font-weight:600}.ngb-datagrid-floating-panel .grid-filter-apply--secondary:hover,.ngb-datagrid-floating-panel .grid-filter-cancel--secondary:hover,.ngb-grid .grid-filter-apply--secondary:hover,.ngb-grid .grid-filter-cancel--secondary:hover{background:var(--dg-surface-subtle)}.ngb-datagrid-floating-panel .grid-filter-multi-panel,.ngb-grid .grid-filter-multi-panel{display:flex;flex-direction:column;gap:.5rem;min-width:16.5rem}.ngb-datagrid-floating-panel .grid-filter-join-select,.ngb-grid .grid-filter-join-select{display:inline-block;width:fit-content;max-width:100%;margin:.1rem 0}.ngb-datagrid-floating-panel .grid-filter-join-select__control,.ngb-grid .grid-filter-join-select__control{width:100%;min-height:1.75rem;padding:.2rem 1.25rem .2rem .5rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface);font-size:.8125rem;font-weight:600;text-align:left}.ngb-datagrid-floating-panel .grid-filter-field{position:relative;width:100%;min-width:0}.ngb-datagrid-floating-panel .grid-filter-field--with-icon .grid-filter-control,.ngb-datagrid-floating-panel .grid-filter-field--with-icon .grid-filter-value-input{padding-right:2.25rem}.ngb-datagrid-floating-panel .grid-filter-field__icon{position:absolute;right:.8rem;top:50%;transform:translateY(-50%);color:var(--dg-placeholder);pointer-events:none}.ngb-datagrid-floating-panel .grid-filter-control,.ngb-datagrid-floating-panel .grid-filter-value-input,.ngb-datagrid-floating-panel .grid-filter-value-select,.ngb-grid .grid-filter-value-input,.ngb-grid .grid-filter-value-select{width:100%;min-height:var(--dg-control-height);padding:.45rem .65rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface);color:var(--dg-text);font-size:.875rem}.ngb-datagrid-floating-panel .grid-filter-apply--secondary:disabled,.ngb-datagrid-floating-panel .grid-filter-cancel--secondary:disabled,.ngb-grid .grid-filter-apply--secondary:disabled,.ngb-grid .grid-filter-cancel--secondary:disabled{opacity:.45;cursor:not-allowed}.ngb-datagrid-floating-panel .grid-filter-condition__join{margin:.15rem 0;font-size:.75rem;font-weight:700;color:var(--dg-text-muted);text-align:center}.ngb-datagrid-floating-panel .grid-filter-stack__footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.ngb-datagrid-floating-panel .grid-filter-operator__button{padding:.55rem .8rem;font-size:.8125rem;font-weight:600;color:var(--dg-text-muted);border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface)}.ngb-datagrid-floating-panel .grid-filter-clear,.ngb-datagrid-floating-panel .grid-filter-apply,.ngb-datagrid-floating-panel .grid-filter-cancel{padding:.5rem .85rem;font-size:.8125rem;font-weight:600;border-radius:var(--dg-radius-sm)}.ngb-datagrid-floating-panel .grid-filter-apply{border:1px solid var(--dg-primary);background:var(--dg-primary);color:var(--dg-on-primary)}.ngb-datagrid-floating-panel .grid-filter-cancel,.ngb-datagrid-floating-panel .grid-filter-clear{border:1px solid var(--dg-border-strong);background:var(--dg-surface);color:var(--dg-text)}.ngb-datagrid-floating-panel .grid-filter-menu-surface__actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--dg-border)}.ngb-datagrid-floating-panel .grid-filter-menu-surface__multi{display:flex;flex-direction:column;gap:.5rem;width:100%;min-width:16rem}.ngb-datagrid-floating-panel .grid-filter-menu-surface__search{border:1px solid var(--dg-border);border-radius:var(--dg-radius-md);min-height:2rem;padding:.4rem .65rem;font-size:.8125rem;width:100%}.ngb-datagrid-floating-panel .grid-multi-filter-list{max-height:11.5rem;overflow:auto;border-top:1px solid var(--dg-border);border-bottom:1px solid var(--dg-border)}.ngb-datagrid-floating-panel .grid-multi-filter-option{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:.45rem .75rem;font-size:.8125rem;font-weight:600;color:var(--dg-text);cursor:pointer}.ngb-datagrid-floating-panel .grid-multi-filter-option__main{display:flex;align-items:center;gap:.5rem}.ngb-datagrid-floating-panel .grid-filter-menu-surface__actions--multi{justify-content:space-between}.ngb-datagrid-floating-panel[data-theme=bootstrap].dropdown-menu .dropdown-item{font-weight:400}.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-operator-select,.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-value-input,.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-value-select,.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-menu-surface__search,.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-join-select__control{border-radius:var(--bs-border-radius, var(--dg-radius-sm))}ngb-datagrid{display:block}.ngb-grid{color:var(--dg-text);--dg-group-sticky-row-height: 3rem}.ngb-grid.ngb-grid--compact{--dg-group-sticky-row-height: 2.5rem}.ngb-grid .table{margin-bottom:0}.ngb-grid .datagrid-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.ngb-grid .datagrid-toolbar__search{flex:1 1 20rem;min-width:16rem}.ngb-grid .datagrid-toolbar__search-label{display:block;margin-bottom:.35rem;font-size:.875rem;font-weight:500;color:var(--dg-text-muted)}.ngb-grid .datagrid-toolbar__search-shell{display:flex;align-items:center;gap:.625rem;min-height:calc(var(--dg-control-height) + 4px);padding:0 .875rem;border:1px solid var(--dg-border);border-radius:999px;background:var(--dg-surface);box-shadow:var(--dg-shadow-sm)}.ngb-grid .datagrid-toolbar__search-icon{color:var(--dg-text-muted)}.ngb-grid .datagrid-toolbar__search-input{flex:1 1 auto;width:100%;min-width:0;border:0;background:transparent;color:var(--dg-text);outline:none;font-size:.95rem;padding:.625rem 0}.ngb-grid .datagrid-toolbar__search-input::placeholder{color:var(--dg-placeholder)}.ngb-grid .datagrid-toolbar__actions{display:flex;align-items:center;justify-content:flex-end;gap:.625rem;flex-wrap:wrap}.ngb-grid .datagrid-toolbar__button,.ngb-grid .grid-row-action,.ngb-grid .grid-filter-apply,.ngb-grid .grid-filter-clear,.ngb-grid .grid-filter-cancel,.ngb-grid .grid-filter-operator__button,.ngb-grid .grid-filter-menu-trigger,.ngb-grid .grid-detail-toggle{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:var(--dg-control-height);border-radius:var(--dg-radius-md);border:1px solid var(--dg-border);background:var(--dg-surface);color:var(--dg-text);box-shadow:none;font:inherit;text-decoration:none;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease}.ngb-grid .datagrid-toolbar__button:hover,.ngb-grid .grid-row-action:hover,.ngb-grid .grid-filter-apply:hover,.ngb-grid .grid-filter-clear:hover,.ngb-grid .grid-filter-cancel:hover,.ngb-grid .grid-filter-operator__button:hover,.ngb-grid .grid-filter-menu-trigger:hover,.ngb-grid .grid-detail-toggle:hover{border-color:var(--dg-border-strong);background:var(--dg-surface-subtle);color:var(--dg-text);text-decoration:none}.ngb-grid .datagrid-toolbar__button:focus-visible,.ngb-grid .grid-row-action:focus-visible,.ngb-grid .grid-filter-apply:focus-visible,.ngb-grid .grid-filter-clear:focus-visible,.ngb-grid .grid-filter-cancel:focus-visible,.ngb-grid .grid-filter-operator__button:focus-visible,.ngb-grid .grid-filter-menu-trigger:focus-visible,.ngb-grid .grid-detail-toggle:focus-visible,.ngb-grid .grid-sort-button:focus-visible,.ngb-grid .grid-edit-control:focus-visible,.ngb-grid .grid-filter-control:focus-visible,.ngb-grid .datagrid-toolbar__search-input:focus-visible{outline:none;border-color:var(--dg-focus-border);box-shadow:var(--dg-focus-shadow)}.ngb-grid .datagrid-toolbar__button{padding:.625rem 1rem;font-size:.875rem;font-weight:400}.ngb-grid .datagrid-toolbar__button--primary{border-color:var(--dg-primary);background:var(--dg-primary);color:var(--dg-on-primary)}.ngb-grid .datagrid-toolbar__button--primary:hover{background:var(--dg-primary-hover);border-color:var(--dg-primary-hover);color:var(--dg-on-primary)}.ngb-grid .datagrid-toolbar__button--secondary{background:var(--dg-surface);color:var(--dg-text)}.ngb-grid .ngb-grid__group-panel{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;min-height:3.25rem;margin-bottom:.9rem;padding:.75rem .9rem;border:1px dashed var(--dg-border-strong);border-radius:var(--dg-radius-md);background:color-mix(in srgb,var(--dg-surface-muted) 72%,white);transition:border-color .12s ease,background-color .12s ease,box-shadow .12s ease}.ngb-grid .ngb-grid__group-panel--active{border-color:var(--dg-primary);background:color-mix(in srgb,var(--dg-primary-soft) 45%,white);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--dg-primary) 22%,transparent)}.ngb-grid .ngb-grid__group-panel--denied{border-color:var(--dg-danger, #dc3545);background:color-mix(in srgb,var(--dg-danger, #dc3545) 8%,white)}.ngb-grid .ngb-grid__group-panel-label{font-size:.875rem;font-weight:600;color:var(--dg-text-muted)}.ngb-grid .ngb-grid__group-chip-list{display:inline-flex;align-items:center;gap:.55rem;flex-wrap:wrap}.ngb-grid .ngb-grid__group-chip{display:inline-flex;align-items:center;gap:.25rem;border:1px solid color-mix(in srgb,var(--dg-primary) 26%,var(--dg-border));border-radius:999px;background:var(--dg-surface);box-shadow:var(--dg-shadow-sm)}.ngb-grid .ngb-grid__group-chip-button,.ngb-grid .ngb-grid__group-chip-remove{display:inline-flex;align-items:center;gap:.4rem;min-height:2rem;border:0;background:transparent;color:var(--dg-text)}.ngb-grid .ngb-grid__group-chip-button{padding:.35rem .55rem .35rem .8rem;font-size:.8125rem;font-weight:600}.ngb-grid .ngb-grid__group-chip-remove{padding:.35rem .75rem .35rem .15rem;color:var(--dg-text-muted)}.ngb-grid .ngb-grid__group-chip-button:hover,.ngb-grid .ngb-grid__group-chip-remove:hover{color:var(--dg-primary)}.ngb-grid .ngb-grid__group-chip-button:focus-visible,.ngb-grid .ngb-grid__group-chip-remove:focus-visible,.ngb-grid .grid-column-group-handle:focus-visible,.ngb-grid .grid-group-row__toggle:focus-visible{outline:none;box-shadow:var(--dg-focus-shadow);border-radius:999px}.ngb-grid .ngb-grid__group-chip-dir{font-size:.8rem;color:var(--dg-primary)}.ngb-grid .table-wrapper{position:relative;overflow-x:hidden;overflow-y:clip;border:var(--dg-table-border-width) solid var(--dg-border);border-radius:var(--dg-radius-lg);background:var(--dg-surface);box-shadow:var(--dg-shadow-sm);isolation:isolate}.ngb-grid .table-body-scroll{max-height:24rem;overflow-y:auto;overflow-x:auto;border-top:1px solid var(--dg-border);border-bottom:1px solid var(--dg-border);scrollbar-gutter:stable both-edges;position:relative;z-index:0}.ngb-grid .ngb-grid__group-sticky-layer{position:absolute;inset-inline-start:0;z-index:35;min-width:100%;pointer-events:none}.ngb-grid .ngb-grid__group-sticky-layer--top,.ngb-grid .ngb-grid__group-sticky-layer--bottom{top:0}.ngb-grid .grid-group-sticky-table{min-width:100%;pointer-events:auto}.ngb-grid .grid-table{width:max-content;min-width:100%;table-layout:fixed;margin:0;border-collapse:separate;border-spacing:0}.ngb-grid.ngb-grid--resizable .grid-table{min-width:0;width:max-content}.ngb-grid.ngb-grid--resizable .grid-table th,.ngb-grid.ngb-grid--resizable .grid-table td{box-sizing:border-box}.ngb-grid .grid-header-shell{position:relative;z-index:20;overflow:hidden}.ngb-grid .grid-header{position:relative;z-index:20;overflow:visible}.ngb-grid .grid-header thead tr:first-child th:first-child{border-top-left-radius:var(--dg-radius-lg)}.ngb-grid .grid-header thead tr:first-child th:last-child{border-top-right-radius:var(--dg-radius-lg)}.ngb-grid .grid-header thead th{background:var(--dg-surface-muted);border-bottom:var(--dg-table-border-width) solid var(--dg-border);color:var(--dg-text);font-size:var(--dg-font-size-header);font-weight:600;text-transform:none;letter-spacing:.01em;overflow:visible}.ngb-grid .grid-table th,.ngb-grid .grid-table td{vertical-align:middle;border-bottom:var(--dg-table-border-width) solid var(--dg-border);padding:var(--dg-cell-padding-y) var(--dg-cell-padding-x);font-size:var(--dg-font-size-cell)}.ngb-grid .grid-table th{padding:var(--dg-header-padding-y) var(--dg-header-padding-x)}.ngb-grid .grid-table td{background:var(--dg-surface);color:var(--dg-text);font-weight:400}.ngb-grid .grid-table th{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ngb-grid .grid-header .grid-table th{overflow:visible}.ngb-grid .grid-header thead tr:first-child th.grid-header__column--resizable{position:relative}.ngb-grid .grid-column-resize-handle{position:absolute;top:0;right:0;width:.45rem;height:100%;cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none;z-index:3}.ngb-grid .grid-column-resize-handle:after{content:\"\";position:absolute;top:.35rem;bottom:.35rem;right:.1rem;width:2px;border-radius:1px;background:var(--dg-border-strong);opacity:0;transition:opacity .15s ease}.ngb-grid .grid-header__column--resizable:hover .grid-column-resize-handle:after,.ngb-grid .grid-column-resize-handle:focus-visible:after{opacity:1}body.ngb-datagrid-column-resizing{cursor:col-resize!important;-webkit-user-select:none;user-select:none}.ngb-grid.ngb-grid--column-reorderable .grid-header thead tr:first-child th.grid-header__column--reorderable{position:relative}.ngb-grid .grid-column-reorder-handle{flex:0 0 auto;margin-right:.15rem;padding:.1rem .18rem;border-radius:999px;color:var(--dg-text-muted);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;opacity:.82;line-height:1;font-size:.95rem}.ngb-grid .grid-header__column--reorderable:hover .grid-column-reorder-handle,.ngb-grid .grid-column-reorder-handle:focus-visible{opacity:1;background:color-mix(in srgb,var(--dg-accent) 12%,transparent)}.ngb-grid .grid-column-group-handle{flex:0 0 auto;padding:.15rem .25rem;border-radius:999px;color:var(--dg-text-muted);cursor:grab;-webkit-user-select:none;user-select:none;line-height:1;font-size:.9rem}.ngb-grid .grid-column-group-handle--active,.ngb-grid .grid-column-group-handle:hover{color:var(--dg-primary);background:color-mix(in srgb,var(--dg-primary-soft) 55%,transparent)}.ngb-grid .grid-header__column--drag-over{background:color-mix(in srgb,var(--dg-accent) 12%,transparent);box-shadow:inset 0 -2px 0 var(--dg-accent)}.ngb-grid .grid-header__cell{display:flex;align-items:center;justify-content:space-between;gap:.625rem;width:100%;overflow:visible}.ngb-grid .grid-sort-button{display:inline-flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left}.ngb-grid .grid-sort-button__label{min-width:0;overflow:hidden;text-overflow:ellipsis}.ngb-grid .grid-sort-button__indicator{flex:0 0 auto;font-size:.8rem;color:var(--dg-placeholder)}.ngb-grid .grid-sort-button__indicator--active{color:var(--dg-primary)}.ngb-grid .grid-filter-menu-host{position:relative;display:inline-flex;flex:0 0 auto;z-index:30}.ngb-grid .grid-filter-menu-popover:not(.ngb-datagrid-floating-panel){position:absolute;top:calc(100% + .5rem);right:0;z-index:120}.ngb-grid .grid-filter-menu-popover .grid-filter-menu-surface{position:static;top:auto;right:auto}.ngb-grid .grid-filter-menu-trigger{min-width:var(--dg-control-height);width:var(--dg-control-height);height:var(--dg-control-height);padding:0}.ngb-grid .grid-filter-menu-trigger--active,.ngb-grid .filter-menu-active .grid-filter-menu-trigger{border-color:var(--dg-focus-border);background:var(--dg-primary-soft);color:var(--dg-primary)}.ngb-grid .grid-filter-menu-trigger--check .bi{color:var(--dg-placeholder)}.ngb-grid .grid-filter-menu-trigger--check.grid-filter-menu-trigger--active,.ngb-grid .filter-menu-active .grid-filter-menu-trigger--check{border-color:var(--dg-focus-border);background:var(--dg-primary-soft);color:var(--dg-primary)}.ngb-grid .grid-filter-menu-trigger--check.grid-filter-menu-trigger--active .bi,.ngb-grid .filter-menu-active .grid-filter-menu-trigger--check .bi{color:var(--dg-primary)}.ngb-grid .grid-filter-menu-surface{position:absolute;top:calc(100% + .5rem);right:0;min-width:18rem;padding:1rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-md);background:var(--dg-surface);box-shadow:var(--dg-shadow-md);z-index:120}.ngb-grid .grid-filter-menu-surface__header{margin-bottom:.875rem}.ngb-grid .grid-filter-menu-surface__eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--dg-text-subtle)}.ngb-grid .grid-filter-menu-surface__title{margin-top:.15rem;font-size:.95rem;font-weight:700;color:var(--dg-text)}.ngb-grid .grid-filter-stack{display:flex;flex-direction:column;gap:.75rem}.ngb-grid .grid-filter-stack--multi{gap:.65rem}.ngb-grid .grid-filter-operator-select{width:100%;min-height:var(--dg-control-height);padding:.45rem .65rem;border:1px solid var(--dg-border);border-radius:.375rem;background:var(--dg-surface);font-size:.875rem;color:var(--dg-text)}.ngb-grid .grid-filter-operator-select--compact{width:auto;min-width:2.25rem;max-width:3.5rem;padding:.35rem .25rem;font-size:.6875rem}.ngb-grid .grid-filter-logic-select{display:flex;justify-content:center;margin:.15rem 0}.ngb-grid .grid-filter-logic-select select{width:auto;min-width:4.5rem;min-height:1.75rem;padding:.2rem 1.5rem .2rem .65rem;border:1px solid var(--dg-border);border-radius:.375rem;background:var(--dg-surface);font-size:.8125rem;font-weight:600}.ngb-grid .grid-filter-menu-surface__actions--split{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.ngb-grid .grid-filter-apply--secondary,.ngb-grid .grid-filter-cancel--secondary{width:100%;border:1px solid var(--dg-border-strong);background:var(--dg-surface-muted);color:var(--dg-text);font-weight:600}.ngb-grid .grid-filter-apply--secondary:hover,.ngb-grid .grid-filter-cancel--secondary:hover{background:var(--dg-surface-subtle)}.ngb-grid .grid-filter-multi-panel{display:flex;flex-direction:column;gap:.5rem;min-width:16.5rem}.ngb-grid .grid-filter-join-select{display:inline-block;width:fit-content;max-width:100%;margin:.1rem 0}.ngb-grid .grid-filter-join-select__control{width:100%;min-height:1.75rem;padding:.2rem 1.25rem .2rem .5rem;border:1px solid var(--dg-border);border-radius:.375rem;background:var(--dg-surface);font-size:.8125rem;font-weight:600;text-align:left}.ngb-grid .grid-filter-value-input,.ngb-grid .grid-filter-value-select{width:100%;min-height:var(--dg-control-height);padding:.45rem .65rem;border:1px solid var(--dg-border);border-radius:.375rem;background:var(--dg-surface);font-size:.875rem}.ngb-grid .grid-filter-apply--secondary:disabled,.ngb-grid .grid-filter-cancel--secondary:disabled{opacity:.45;cursor:not-allowed}.ngb-grid .grid-group-row td,.ngb-grid .grid-group-footer-row td{background:color-mix(in srgb,var(--dg-surface-muted) 88%,white);border-bottom:1px solid var(--dg-border)}.ngb-grid .grid-group-row--overlay td{box-shadow:inset 0 -1px 0 var(--dg-border),0 1px color-mix(in srgb,var(--dg-border) 36%,transparent)}.ngb-grid .grid-group-footer-row--overlay td{box-shadow:inset 0 1px 0 var(--dg-border),0 -1px color-mix(in srgb,var(--dg-border) 36%,transparent)}.ngb-grid .grid-group-row__cell{padding:0;vertical-align:top}.ngb-grid .grid-group-footer-row__cell,.ngb-grid .grid-group-row__utility-cell{padding:.7rem .75rem;vertical-align:top}.ngb-grid .grid-group-row__toggle{display:flex;align-items:center;gap:.55rem;width:100%;padding:.7rem 1rem;border:0;background:transparent;color:var(--dg-text);text-align:left;font-size:.875rem;font-weight:600}.ngb-grid .grid-group-row__cell--lead .grid-group-row__toggle{padding-inline-end:.75rem}.ngb-grid .grid-group-row__toggle:hover{background:color-mix(in srgb,var(--dg-primary-soft) 34%,transparent)}.ngb-grid .grid-group-row__content{display:inline-flex;align-items:center;gap:.5rem;min-width:0}.ngb-grid .grid-group-row__label{color:var(--dg-text)}.ngb-grid .grid-group-row__count{font-size:.75rem;font-weight:700;color:var(--dg-text-muted)}.ngb-grid .grid-group-row__column-slot{padding:.25rem .75rem .75rem;font-size:.8125rem;color:var(--dg-text-muted)}.ngb-grid .grid-group-row__cell--lead .grid-group-row__column-slot{padding-inline-start:2.75rem}.ngb-grid .grid-group-footer-row td{background:color-mix(in srgb,var(--dg-surface-muted) 94%,white)}.ngb-grid .grid-filter-menu-popover .grid-filter-menu-surface:has(.grid-filter-menu-surface__multi){width:16.25rem;max-width:min(16.25rem,92vw);padding:.75rem}.ngb-grid .grid-filter-menu-surface__multi{display:flex;flex-direction:column;gap:.5rem;width:100%}.ngb-grid .grid-filter-menu-surface__multi .grid-filter-menu-surface__search{border-radius:.5rem;min-height:2rem;padding:.4rem .65rem;font-size:.8125rem}.ngb-grid .grid-multi-filter-list{max-height:11.5rem;overflow:auto;margin:0 -.75rem;padding:.15rem 0;border-top:1px solid var(--dg-border);border-bottom:1px solid var(--dg-border)}.ngb-grid .grid-multi-filter-option{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:.45rem .75rem;font-size:.8125rem;font-weight:600;color:var(--dg-text);cursor:pointer}.ngb-grid .grid-multi-filter-option+.grid-multi-filter-option{border-top:1px solid var(--dg-filter-divider)}.ngb-grid .grid-multi-filter-option--summary{font-weight:700}.ngb-grid .grid-multi-filter-option__main{display:inline-flex;align-items:center;gap:.75rem;min-width:0}.ngb-grid .grid-multi-filter-option__main input{width:1rem;height:1rem;margin:0;accent-color:var(--dg-primary);flex:0 0 auto}.ngb-grid .grid-multi-filter-option__count{font-size:.75rem;font-weight:700;color:var(--dg-text-muted)}.ngb-grid .grid-filter-stack__label{font-size:.8125rem;font-weight:600;color:var(--dg-text-muted)}.ngb-grid .grid-filter-stack__footer,.ngb-grid .grid-filter-menu-surface__actions{display:flex;align-items:center;justify-content:space-between;gap:.625rem}.ngb-grid .grid-filter-inline{display:flex;align-items:center;gap:.45rem;min-width:0;width:100%}.ngb-grid .grid-filter-field{position:relative;min-width:12rem;flex:1 1 auto}.ngb-grid .grid-filter-field--with-icon .grid-filter-control{padding-right:2.25rem}.ngb-grid .grid-filter-field__icon{position:absolute;right:.8rem;top:50%;transform:translateY(-50%);color:var(--dg-placeholder);pointer-events:none}.ngb-grid .grid-filter-control,.ngb-grid .grid-edit-control{width:100%;min-width:0;min-height:var(--dg-control-height);padding:.5rem .75rem;border:1px solid var(--dg-border);border-radius:.3rem;background:var(--dg-surface);color:var(--dg-text);font-size:.875rem}.ngb-grid .grid-edit-checkbox{width:1rem;height:1rem;margin-top:0}.ngb-grid .grid-filter-operator{position:relative;flex:0 0 auto}.ngb-grid .grid-filter-operator__button{padding:.55rem .8rem;font-size:.8125rem;font-weight:600;color:var(--dg-text-muted)}.ngb-grid .grid-filter-operator__button--compact{min-width:var(--dg-control-height);width:var(--dg-control-height);padding:0}.ngb-grid .grid-filter-operator__button--active{border-color:var(--dg-primary);color:var(--dg-primary)}.ngb-grid .grid-filter-operator .dropdown-menu:not(.ngb-datagrid-floating-panel){position:absolute;inset:calc(100% + .35rem) 0 auto auto;min-width:12rem;margin:0;border-radius:.9rem;border-color:var(--dg-border);box-shadow:var(--dg-shadow-md);z-index:120}.ngb-grid .grid-filter-clear{padding:.55rem .8rem;font-size:.8125rem;color:var(--dg-text-muted)}.ngb-grid .grid-filter-apply{padding:.625rem .95rem;border-color:var(--dg-primary);background:var(--dg-primary);color:var(--dg-on-primary);font-size:.875rem;font-weight:600}.ngb-grid .grid-filter-apply:hover{border-color:var(--dg-primary-active);background:var(--dg-primary-active);color:var(--dg-on-primary)}.ngb-grid .grid-filter-menu-surface__actions--multi{justify-content:space-between;margin-top:.35rem}.ngb-grid .grid-filter-menu-surface__multi .grid-filter-apply{min-width:5.25rem;padding:.5rem 1.15rem;font-size:.8125rem}.ngb-grid .grid-filter-cancel{padding:.5rem .85rem;font-size:.8125rem;font-weight:600;color:var(--dg-text);border:1px solid var(--dg-border-strong);background:var(--dg-surface)}.ngb-grid .grid-filter-cancel:hover{border-color:var(--dg-border-strong);background:var(--dg-surface-subtle);color:var(--dg-text)}.ngb-grid .filter-row th{background:var(--dg-surface-filter-row);padding-top:.625rem;padding-bottom:.625rem;overflow:visible;position:relative;z-index:25}.ngb-grid.ngb-grid--menu-open .filter-row th{z-index:85}.ngb-grid .column-pinned-start,.ngb-grid .column-pinned-end{position:sticky;background:inherit;z-index:2}.ngb-grid .grid-header .column-pinned-start,.ngb-grid .grid-header .column-pinned-end{z-index:6}.ngb-grid .column-pinned-start{box-shadow:var(--dg-pin-shadow-start)}.ngb-grid .column-pinned-start:has(+.column-pinned-start){box-shadow:none}.ngb-grid .column-pinned-end{box-shadow:var(--dg-pin-shadow-end)}.ngb-grid .column-locked{background:var(--dg-locked-bg)}.ngb-grid .sticky-row,.ngb-grid .sticky-row td{background:var(--dg-surface-sticky-row);box-shadow:inset 0 0 0 1px var(--dg-sticky-border)}.ngb-grid .sticky-row{position:sticky;z-index:4}.ngb-grid .grid-sticky-badge{display:inline-flex;align-items:center;margin-left:.45rem;padding:.12rem .4rem;border-radius:.25rem;background:var(--dg-sticky-badge-bg);color:var(--dg-sticky-badge-text);font-size:.62rem;font-weight:800;letter-spacing:.04em;vertical-align:middle}.ngb-grid .grid-row-action--icon{min-width:2.05rem;width:2.05rem;height:2.05rem;min-height:2.05rem;padding:0;border-radius:var(--dg-radius-md)}.ngb-grid .grid-row-action--edit-icon{border-color:var(--dg-primary);background:var(--dg-primary);color:var(--dg-on-primary)}.ngb-grid .grid-row-action--edit-icon:hover{border-color:var(--dg-primary-hover);background:var(--dg-primary-hover);color:var(--dg-on-primary)}.ngb-grid.ngb-grid--zebra .grid-body tbody tr:nth-child(2n):not(.sticky-row):not(.row-selected) td{background:var(--dg-row-even-bg, var(--dg-surface-muted))}.ngb-grid:not(.ngb-grid--zebra) .grid-body tbody tr:nth-child(odd):not(.sticky-row):not(.row-selected):not(.row-highlight) td{background:var(--dg-row-odd-bg)}.ngb-grid:not(.ngb-grid--zebra) .grid-body tbody tr:nth-child(2n):not(.sticky-row):not(.row-selected):not(.row-highlight) td{background:var(--dg-row-even-bg)}.ngb-grid .grid-body tbody tr.grid-data-row:hover:not(.sticky-row):not(.row-selected):not(.row-highlight) td{background:var(--dg-row-hover-bg)}.ngb-grid .row-selected,.ngb-grid .row-selected td{background:var(--dg-row-selected-bg)}.ngb-grid .row-highlight,.ngb-grid .row-highlight td{background:var(--dg-warning-soft)}.ngb-grid .grid-header th.column-pinned-start,.ngb-grid .grid-header th.column-pinned-end,.ngb-grid .grid-body tbody td.column-pinned-start,.ngb-grid .grid-body tbody td.column-pinned-end{background:var(--dg-surface)}.ngb-grid .grid-header th.column-locked,.ngb-grid .grid-body tbody td.column-locked{background:var(--dg-locked-bg)!important}.ngb-grid .grid-body tbody tr.row-selected td.column-locked{background:var(--dg-row-selected-bg)!important}.ngb-grid .cell-highlight{background:var(--dg-primary-soft)}.ngb-grid .grid-search-highlight{padding:0;border-radius:.15rem;background:var(--dg-sticky-badge-bg);color:inherit;font-weight:inherit}.ngb-grid .grid-detail-toggle{min-width:2rem;width:2rem;height:2rem;padding:0;border-radius:999px}.ngb-grid .grid-cell-content{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis}.ngb-grid .grid-cell-content,.ngb-grid .grid-cell-text{font-weight:400}.ngb-grid .grid-cell--emphasis .grid-cell-content,.ngb-grid .grid-cell--emphasis .grid-cell-text{font-weight:700}.ngb-grid .grid-boolean-pill{display:inline-flex;align-items:center;justify-content:center;min-width:3.5rem;padding:.25rem .55rem;border-radius:999px;background:var(--dg-neutral-pill-bg);color:var(--dg-text-muted);font-size:.75rem;font-weight:700}.ngb-grid .grid-boolean-pill--true{background:var(--dg-success-soft);color:var(--dg-success-text)}.ngb-grid .grid-row-action{padding:.55rem .8rem;font-size:.8125rem;font-weight:600;white-space:nowrap}.ngb-grid .grid-actions-cell{overflow:visible;text-overflow:clip;white-space:normal}.ngb-grid .grid-actions-cell__inner{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;flex-wrap:nowrap}.ngb-grid .grid-row-action--secondary{color:var(--dg-primary);background:var(--dg-primary-soft);border-color:var(--dg-primary-border-subtle)}.ngb-grid .grid-row-action--danger{color:var(--dg-danger-text);background:var(--dg-danger-soft);border-color:var(--dg-danger-border-subtle)}.ngb-grid .grid-row-action--success{color:var(--dg-success-text);background:var(--dg-success-soft);border-color:var(--dg-success-border-subtle)}.ngb-grid .grid-row-action--neutral{color:var(--dg-text-muted);background:var(--dg-locked-bg);border-color:var(--dg-border)}.ngb-grid .grid-detail-row__cell{padding:0;background:var(--dg-detail-row-bg)}.ngb-grid .grid-detail-row__content{padding:1rem 1.25rem}.ngb-grid.ngb-grid--compact .grid-table th,.ngb-grid.ngb-grid--compact .grid-table td{padding:.55rem .65rem}.ngb-grid.ngb-grid--compact .datagrid-toolbar__button,.ngb-grid.ngb-grid--compact .grid-row-action,.ngb-grid.ngb-grid--compact .grid-filter-apply,.ngb-grid.ngb-grid--compact .grid-filter-clear,.ngb-grid.ngb-grid--compact .grid-filter-operator__button,.ngb-grid.ngb-grid--compact .grid-filter-menu-trigger,.ngb-grid.ngb-grid--compact .grid-detail-toggle,.ngb-grid.ngb-grid--compact .grid-filter-control,.ngb-grid.ngb-grid--compact .grid-edit-control{min-height:32px;font-size:.8125rem}.ngb-grid .grid-row--reorderable{cursor:grab}.ngb-grid .grid-row--reorderable.ngb-dnd-dragging{cursor:grabbing;opacity:.82}.ngb-grid .ngb-dnd-placeholder{display:table-row;background:transparent}.ngb-grid tbody.ngb-dnd-list,.ngb-grid tbody.ngb-dnd-list.ngb-dnd-over[data-drop-valid=true],.ngb-grid tbody.ngb-dnd-list.ngb-dnd-over[data-drop-valid=false]{border:0;border-radius:0;background:transparent;box-shadow:none}.ngb-grid .ngb-dnd-placeholder>td{padding:0;border:0;background:transparent}.ngb-grid .ngb-dnd-placeholder__bar{display:block;height:.35rem;background:var(--dg-primary-selection-overlay)}.ngb-grid.ngb-grid--stacked .grid-header-shell,.ngb-grid.ngb-grid--stacked .grid-header{display:none}.ngb-grid.ngb-grid--stacked .table-wrapper{width:100%}.ngb-grid.ngb-grid--stacked .table-body-scroll{width:100%;max-height:none;overflow:visible;border-top:0;border-bottom:0}.ngb-grid.ngb-grid--stacked .grid-table.grid-body{width:100%;min-width:0;max-width:100%;table-layout:auto}.ngb-grid.ngb-grid--stacked .grid-table.grid-body colgroup{display:none}.ngb-grid.ngb-grid--stacked .grid-table.grid-body tbody{display:block;width:100%}.ngb-grid.ngb-grid--menu-open .grid-header-shell,.ngb-grid.ngb-grid--row-operator-open .grid-header-shell,.ngb-grid.ngb-grid--row-operator-open .filter-row th{overflow:visible}.ngb-grid.ngb-grid--menu-open .grid-header-shell,.ngb-grid.ngb-grid--menu-open .grid-header{z-index:80}.ngb-grid.ngb-grid--menu-open .grid-header thead th.filter-menu-open{position:relative;z-index:95;overflow:visible}.ngb-grid.ngb-grid--menu-open .grid-filter-menu-host{z-index:90}.ngb-grid__filter-menu-overlay{pointer-events:auto}.ngb-grid__layout-toolbar-host:empty{display:none}.ngb-grid__layout-toolbar-host:not(:empty){border-bottom:1px solid var(--dg-border)}.ngb-grid .table-wrapper{position:relative}.ngb-grid.ngb-grid--loading .table-wrapper{pointer-events:none}.ngb-grid.ngb-grid--loading .table-wrapper .grid-table{opacity:.45}.ngb-grid__loading-overlay{position:absolute;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;background:var(--dg-loading-overlay);pointer-events:none}.ngb-grid.ngb-grid--stacked .grid-table.grid-body tbody tr{display:grid;width:100%;box-sizing:border-box;grid-template-columns:minmax(0,1fr);gap:.65rem;border-bottom:1px solid var(--dg-border);padding:.9rem 1rem}.ngb-grid.ngb-grid--stacked .grid-table.grid-body tbody td{display:grid;width:100%;min-width:0;box-sizing:border-box;white-space:normal;border-bottom:0;padding:.35rem 0;position:static!important;left:auto!important;right:auto!important}.ngb-grid.ngb-grid--stacked .grid-table.grid-body tbody td:not([data-title]){grid-column:1/-1}.ngb-grid.ngb-grid--stacked:not(.ngb-grid--stacked-cards) .grid-table.grid-body tbody td[data-title]{grid-template-columns:minmax(5.5rem,34%) minmax(0,1fr);align-items:baseline;column-gap:.75rem}.ngb-grid.ngb-grid--stacked:not(.ngb-grid--stacked-cards) .grid-table.grid-body tbody td:before{content:attr(data-title);font-size:.8125rem;font-weight:700;color:var(--dg-text-muted);line-height:1.3}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .grid-table.grid-body tbody tr{display:block;width:100%;padding:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .grid-table.grid-body tbody td.ngb-stacked-card-cell{display:block;width:100%;padding:.9rem 1rem;border-bottom:1px solid var(--dg-border)}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card,.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__layout{width:100%;min-width:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__layout{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem}@media(min-width:40rem){.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__layout{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);align-items:start;column-gap:1.5rem}}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__group{display:flex;flex-direction:column;gap:.85rem;min-width:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__field{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;min-width:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__label{font-size:.8125rem;font-weight:700;color:var(--dg-text-muted);line-height:1.3}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__value{width:100%;min-width:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .grid-table.grid-body tbody td:not([data-title]):not(.ngb-stacked-card-cell){display:block;width:100%;padding:.65rem 1rem 0;border-bottom:0}.ngb-grid[data-theme=material] .datagrid-toolbar__button--primary,.ngb-grid[data-theme=tailwind] .datagrid-toolbar__button--primary,.ngb-grid[data-theme=material] .grid-filter-apply,.ngb-grid[data-theme=tailwind] .grid-filter-apply{border-color:var(--dg-primary);background:var(--dg-primary)}.ngb-grid.ngb-responsive .table{width:100%}@media(max-width:992px){.ngb-grid .grid-filter-inline{min-width:11rem}.ngb-grid .grid-filter-field{min-width:10rem}}@media(max-width:768px){.ngb-grid .datagrid-toolbar{align-items:stretch}.ngb-grid .datagrid-toolbar__actions{justify-content:stretch}.ngb-grid .datagrid-toolbar__button{flex:1 1 auto}.ngb-grid .grid-filter-inline{width:100%}.ngb-grid.ngb-responsive thead{display:none}.ngb-grid.ngb-responsive tbody tr{display:grid;grid-template-columns:1fr;gap:.5rem;border:1px solid var(--dg-border);border-radius:.75rem;padding:.75rem;margin-bottom:.75rem}.ngb-grid.ngb-responsive tbody td{display:grid;grid-template-columns:8rem 1fr}.ngb-grid.ngb-responsive tbody td:before{content:attr(data-title);font-weight:600;opacity:.75;padding-right:.5rem}}.ngb-grid .datagrid-editing-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.75rem 1rem;border:1px solid var(--dg-border);border-bottom:0;border-radius:var(--dg-radius-lg) var(--dg-radius-lg) 0 0;background:var(--dg-surface)}.ngb-grid .datagrid-editing-toolbar__start,.ngb-grid .datagrid-editing-toolbar__end{display:inline-flex;align-items:center;gap:.5rem}.ngb-grid .datagrid-editing-toolbar__save[hidden],.ngb-grid .datagrid-editing-toolbar__cancel[hidden]{display:none!important}.ngb-grid .datagrid-editing-toolbar__hint{flex:1 1 auto;text-align:center;font-size:.875rem;font-weight:600;color:var(--dg-text-muted)}.ngb-grid .grid-cell--incell{cursor:cell}.ngb-grid .grid-cell--incell:not(.grid-cell--editing) .grid-cell-content,.ngb-grid .grid-cell--incell:not(.grid-cell--editing) .grid-cell-content *{pointer-events:none}.ngb-grid .grid-cell--editing .grid-edit-control{border-color:var(--dg-primary);box-shadow:var(--dg-focus-shadow)}.ngb-grid .grid-external-editor{position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;padding:1.5rem}.ngb-grid .grid-external-editor__backdrop{position:absolute;inset:0;border:0;background:var(--dg-backdrop);cursor:pointer}.ngb-grid .grid-external-editor__panel{position:relative;z-index:1;width:min(32rem,100%);max-height:min(90vh,40rem);overflow:auto;padding:1.25rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-lg);background:var(--dg-surface);box-shadow:var(--dg-shadow-md)}.ngb-grid .grid-external-editor__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.ngb-grid .grid-external-editor__title{margin:0;font-size:1.125rem;font-weight:700}.ngb-grid .grid-external-editor__close{border:0;background:transparent;color:var(--dg-text-muted);padding:.25rem;cursor:pointer}.ngb-grid .grid-external-editor__form{display:grid;gap:.85rem}.ngb-grid .grid-external-editor__field{display:grid;gap:.35rem}.ngb-grid .grid-external-editor__label{font-size:.8125rem;font-weight:700;color:var(--dg-text-muted);text-transform:uppercase;letter-spacing:.03em}.ngb-grid .grid-external-editor__error{font-size:.75rem;color:var(--dg-danger)}.ngb-grid .grid-external-editor__actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}.ngb-grid__status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ngb-grid .grid-body td[role=gridcell]:focus-visible,.ngb-grid .grid-body td[role=gridcell].grid-cell--focused{outline:2px solid var(--dg-focus-ring);outline-offset:-2px}.ngb-grid--rtl .grid-column-reorder-handle{transform:scaleX(-1)}.ngb-grid--rtl .column-pinned-start{left:auto;right:var(--dg-pin-start, 0)}.ngb-grid--rtl .column-pinned-end{right:auto;left:var(--dg-pin-end, 0)}.ngb-grid .grid-footer{width:100%;color:var(--dg-pager-text)}.ngb-grid .grid-footer--top{margin-bottom:0;border-bottom:var(--dg-table-border-width) solid var(--dg-border)}.ngb-grid .grid-footer--custom{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgbSyncColgroupDirective, selector: "[ngbSyncColgroup]", inputs: ["ngbSyncColgroup", "syncRole", "syncMode"] }, { kind: "component", type: NgbDatagridToolbarComponent, selector: "ngb-datagrid-toolbar", inputs: ["grid"] }, { kind: "component", type: NgbDatagridEditingToolbarComponent, selector: "ngb-datagrid-editing-toolbar", inputs: ["grid", "selectedCount", "editActive", "saveDisabled"] }, { kind: "component", type: NgbDatagridExternalEditorComponent, selector: "ngb-datagrid-external-editor", inputs: ["grid"] }, { kind: "component", type: NgbDatagridColgroupComponent, selector: "colgroup[ngbDatagridColgroup]", inputs: ["grid"] }, { kind: "component", type: NgbDatagridHeaderComponent, selector: "thead[ngbDatagridHeader]", inputs: ["grid", "renderTick"] }, { kind: "component", type: NgbDatagridFilterMenuPanelComponent, selector: "ngb-datagrid-filter-menu-panel", inputs: ["grid", "col", "anchor"] }, { kind: "component", type: NgbDatagridRowFilterOperatorPanelComponent, selector: "ngb-datagrid-row-filter-operator-panel", inputs: ["grid", "col", "anchor"] }, { kind: "component", type: NgbDatagridAddRowComponent, selector: "tr[ngbDatagridAddRow]", inputs: ["grid"] }, { kind: "component", type: NgbDatagridDataRowComponent, selector: "tr[ngbDatagridDataRow]", inputs: ["grid", "renderTick", "row", "index", "selected"] }, { kind: "component", type: NgbDatagridDetailRowComponent, selector: "tr[ngbDatagridDetailRow]", inputs: ["grid", "row", "index"] }, { kind: "component", type: NgbDatagridFooterComponent, selector: "ngb-datagrid-footer", inputs: ["grid", "placement"] }, { kind: "directive", type: NgbDndListDirective, selector: "[ngbDndList]", inputs: ["dndChildrenKey", "ngbDndList", "dndGroup", "dndDisabled", "dndCloneOnDrop", "dndCloneFn", "dndIsPalette", "dndCanDrop", "dndAriaLabel"], outputs: ["dndDropped"] }, { kind: "directive", type: NgbDndItemDirective, selector: "[ngbDndItem]", inputs: ["ngbDndItem", "dndGroup", "dndIndex", "dndSourceList", "dndDisabled"], outputs: ["dndDragStart", "dndDragEnd"] }], encapsulation: i0.ViewEncapsulation.None });
10526
+ ], queries: [{ propertyName: "exportButtonDir", first: true, predicate: ExportButtonDirective, descendants: true }, { propertyName: "rowDetailTpl", first: true, predicate: NgbRowDetailTemplate, descendants: true }, { propertyName: "pagerTpl", first: true, predicate: NgbPagerTemplate, descendants: true }, { propertyName: "groupHeaderTpl", first: true, predicate: NgbDataGridGroupHeaderTemplateDirective, descendants: true }, { propertyName: "cellTplQ", predicate: NgbCellTemplate }, { propertyName: "editTplQ", predicate: NgbEditorTemplate }, { propertyName: "filterTplQ", predicate: NgbFilterTemplate }, { propertyName: "filterMenuTplQ", predicate: NgbFilterMenuTemplate }, { propertyName: "globalTplQ", predicate: NgbGlobalFilterTemplate }, { propertyName: "groupHeaderColumnTplQ", predicate: NgbDataGridGroupHeaderColumnTemplateDirective }, { propertyName: "groupFooterTplQ", predicate: NgbDataGridGroupFooterTemplateDirective }, { propertyName: "gridColumnQ", predicate: NgbGridColumnDirective }], viewQueries: [{ propertyName: "bodyScroller", first: true, predicate: ["bodyScroller"], descendants: true }, { propertyName: "headerScroller", first: true, predicate: ["headerScroller"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"ngb-grid\"\n [attr.dir]=\"resolvedDir()\"\n [attr.data-theme]=\"theme\"\n [class.ngb-grid--rtl]=\"isRtl()\"\n [class.ngb-responsive]=\"isResponsiveEnabled()\"\n [class.ngb-grid--compact]=\"densityMode === 'compact'\"\n [class.ngb-grid--stacked]=\"isStackedLayout()\"\n [class.ngb-grid--stacked-cards]=\"isStackedCardsLayout()\"\n [class.ngb-grid--menu-open]=\"!!openFilterMenuField || !!openMenuOperatorField || !!openRowFilterField\"\n [class.ngb-grid--row-operator-open]=\"!!openRowFilterField\"\n [class.ngb-grid--zebra]=\"zebraStripesEnabled\"\n [class.ngb-grid--resizable]=\"resizable && !isStackedLayout()\"\n [class.ngb-grid--column-reorderable]=\"isColumnReorderEnabled()\"\n [class.ngb-grid--loading]=\"loading\"\n [attr.aria-busy]=\"loading ? 'true' : null\"\n [style.--ngb-render-tick]=\"renderTick\"\n>\n <div class=\"ngb-grid__layout-toolbar-host\">\n <ng-content select=\"ngb-datagrid-layout-toolbar\"></ng-content>\n </div>\n <ngb-datagrid-toolbar [grid]=\"gridHost\"></ngb-datagrid-toolbar>\n <ngb-datagrid-editing-toolbar\n [grid]=\"gridHost\"\n [selectedCount]=\"getSelectedCount()\"\n [editActive]=\"isToolbarEditActive()\"\n [saveDisabled]=\"isToolbarSaveDisabled()\"\n ></ngb-datagrid-editing-toolbar>\n\n @if (paginationActive && pagerShowsAt('top')) {\n <ngb-datagrid-footer [grid]=\"gridHost\" placement=\"top\"></ngb-datagrid-footer>\n }\n\n <div\n class=\"ngb-grid__status visually-hidden-focusable\"\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >{{ statusMessage }}</div>\n\n @if (isGroupingEnabled()) {\n <div\n class=\"ngb-grid__group-panel\"\n [class.ngb-grid__group-panel--active]=\"groupPanelDragActive && !groupPanelDragDenied\"\n [class.ngb-grid__group-panel--denied]=\"groupPanelDragDenied\"\n (dragover)=\"onGroupPanelDragOver($event)\"\n (dragleave)=\"onGroupPanelDragLeave($event)\"\n (drop)=\"onGroupPanelDrop($event)\"\n >\n <div class=\"ngb-grid__group-panel-label\">{{ groupPanelLabel() }}</div>\n @if (groupedColumns().length) {\n <div class=\"ngb-grid__group-chip-list\">\n @for (descriptor of groupedColumns(); track descriptor.field) {\n <div class=\"ngb-grid__group-chip\">\n <button\n type=\"button\"\n class=\"ngb-grid__group-chip-button\"\n (click)=\"toggleGroupDirection(descriptor.field)\"\n [attr.aria-label]=\"groupDirectionAriaLabel(descriptor)\"\n >\n <span class=\"ngb-grid__group-chip-label\">{{ groupFieldLabel(descriptor) }}</span>\n <span class=\"ngb-grid__group-chip-dir\">{{ descriptor.dir === 'desc' ? '\u2193' : '\u2191' }}</span>\n </button>\n <button\n type=\"button\"\n class=\"ngb-grid__group-chip-remove\"\n (click)=\"removeGroupField(descriptor.field)\"\n [attr.aria-label]=\"groupRemoveAriaLabel(descriptor)\"\n >\n <span class=\"bi bi-x-lg\" aria-hidden=\"true\"></span>\n </button>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <div class=\"table-wrapper\" [ngClass]=\"responsiveWrapperClasses\">\n @if (loading) {\n <div class=\"ngb-grid__loading-overlay\" role=\"presentation\">\n <div class=\"spinner-border spinner-border-sm text-primary\" role=\"status\">\n <span class=\"visually-hidden\">Loading</span>\n </div>\n </div>\n }\n <div class=\"grid-header-shell\" #headerScroller>\n <table class=\"grid-table grid-header mb-0\" [ngClass]=\"tableClassList\" [style.width.px]=\"tablePixelWidth\">\n @if (tableOptions?.caption) {\n <caption\n [class.caption-top]=\"(tableOptions?.captionSide ?? 'top') === 'top'\"\n >\n {{ tableOptions?.caption }}\n </caption>\n }\n\n <colgroup\n ngbDatagridColgroup\n [grid]=\"gridHost\"\n [ngbSyncColgroup]=\"colgroupSyncId\"\n syncRole=\"header\"\n [syncMode]=\"resizable ? 'explicit' : 'auto'\"\n ></colgroup>\n\n <thead\n class=\"table-light\"\n ngbDatagridHeader\n [grid]=\"gridHost\"\n [renderTick]=\"renderTick\"\n ></thead>\n </table>\n </div>\n\n <div [class.table-body-scroll]=\"shouldEnableScroll\" #bodyScroller (scroll)=\"onBodyHorizontalScroll()\">\n @if (hasStickyGroupHeaders()) {\n <div\n class=\"ngb-grid__group-sticky-layer ngb-grid__group-sticky-layer--top\"\n [style.transform]=\"'translateY(' + stickyGroupHeaderTranslateY + 'px)'\"\n >\n <table\n class=\"grid-table grid-group-sticky-table mb-0\"\n [ngClass]=\"tableClassList\"\n [style.width.px]=\"tablePixelWidth\"\n role=\"presentation\"\n >\n <colgroup>\n @for (width of stickyGroupOverlayColumnWidths; track $index) {\n <col [style.width.px]=\"width || null\" />\n }\n </colgroup>\n <tbody>\n @for (item of stickyGroupHeaderRows; track item.key) {\n <tr class=\"grid-group-row grid-group-row--overlay\">\n @if (showSelectionColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (rowDetailTpl) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (stickyRowsEnabled) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @for (col of visibleColumns; track col.field) {\n @if (shouldRenderGroupCell(col, item.group)) {\n <td\n class=\"grid-group-row__cell\"\n [class.grid-group-row__cell--lead]=\"isGroupLeadColumn(col, item.group)\"\n [attr.colspan]=\"groupCellColspan(col, item.group)\"\n >\n @if (isGroupLeadColumn(col, item.group)) {\n <button\n type=\"button\"\n class=\"grid-group-row__toggle\"\n (click)=\"toggleGroupCollapsed(item.group, item.level, item.startIndex)\"\n [attr.aria-expanded]=\"!item.collapsed\"\n >\n <span\n class=\"bi\"\n [ngClass]=\"item.collapsed ? 'bi-chevron-right' : 'bi-chevron-down'\"\n aria-hidden=\"true\"\n ></span>\n <span class=\"grid-group-row__content\" [style.padding-inline-start.rem]=\"groupRowIndent(item.level)\">\n @if (groupHeaderTpl) {\n <ng-container\n [ngTemplateOutlet]=\"groupHeaderTpl.template\"\n [ngTemplateOutletContext]=\"groupHeaderContext(item.group)\"\n ></ng-container>\n } @else {\n <span class=\"grid-group-row__label\">{{ groupRowLabel(item.group) }}</span>\n <span class=\"grid-group-row__count\">{{ groupRowCountLabel(item.group) }}</span>\n }\n </span>\n </button>\n @if (groupHeaderColumnTemplate(groupColumnField(col)); as tpl) {\n <div class=\"grid-group-row__column-slot\">\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"groupColumnContext(item.group, col)\"\n ></ng-container>\n </div>\n }\n } @else if (groupHeaderColumnTemplate(groupColumnField(col)); as tpl) {\n <div class=\"grid-group-row__column-slot\">\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"groupColumnContext(item.group, col)\"\n ></ng-container>\n </div>\n }\n </td>\n }\n }\n @if (showActionsColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n\n <table\n class=\"grid-table grid-body grid-body--main mb-0\"\n [ngClass]=\"tableClassList\"\n [style.width.px]=\"tablePixelWidth\"\n role=\"grid\"\n [attr.aria-rowcount]=\"ariaRowCount()\"\n [attr.aria-colcount]=\"ariaColCount()\"\n [attr.aria-readonly]=\"enableEdit || enableAdd ? 'false' : 'true'\"\n [attr.aria-label]=\"tableOptions?.caption || null\"\n >\n <colgroup\n ngbDatagridColgroup\n [grid]=\"gridHost\"\n [ngbSyncColgroup]=\"colgroupSyncId\"\n syncRole=\"body\"\n [syncMode]=\"resizable ? 'explicit' : 'auto'\"\n ></colgroup>\n\n <tbody\n [ngbDndList]=\"paged\"\n [dndDisabled]=\"!isRowReorderEnabled()\"\n (dndDropped)=\"onRowDrop($event)\"\n >\n @if (!hasRenderableRows()) {\n <tr class=\"ngb-grid__empty-row\">\n <td [attr.colspan]=\"ariaColCount()\" class=\"ngb-grid__empty text-center text-muted py-4\">\n {{ emptyStateLabel() }}\n </td>\n </tr>\n }\n\n @if (addingNew) {\n <tr\n ngbDatagridAddRow\n [grid]=\"gridHost\"\n [formGroup]=\"addForm\"\n ></tr>\n }\n\n @for (item of renderRows; track item.key) {\n @if (item.kind === 'group') {\n <tr\n class=\"grid-group-row\"\n [attr.data-group-key]=\"item.key\"\n [attr.data-group-level]=\"item.level\"\n >\n @if (showSelectionColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (rowDetailTpl) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (stickyRowsEnabled) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @for (col of visibleColumns; track col.field) {\n @if (shouldRenderGroupCell(col, item.group)) {\n <td\n class=\"grid-group-row__cell\"\n [class.grid-group-row__cell--lead]=\"isGroupLeadColumn(col, item.group)\"\n [attr.colspan]=\"groupCellColspan(col, item.group)\"\n >\n @if (isGroupLeadColumn(col, item.group)) {\n <button\n type=\"button\"\n class=\"grid-group-row__toggle\"\n (click)=\"toggleGroupCollapsed(item.group, item.level, item.startIndex)\"\n [attr.aria-expanded]=\"!item.collapsed\"\n >\n <span\n class=\"bi\"\n [ngClass]=\"item.collapsed ? 'bi-chevron-right' : 'bi-chevron-down'\"\n aria-hidden=\"true\"\n ></span>\n <span class=\"grid-group-row__content\" [style.padding-inline-start.rem]=\"groupRowIndent(item.level)\">\n @if (groupHeaderTpl) {\n <ng-container\n [ngTemplateOutlet]=\"groupHeaderTpl.template\"\n [ngTemplateOutletContext]=\"groupHeaderContext(item.group)\"\n ></ng-container>\n } @else {\n <span class=\"grid-group-row__label\">{{ groupRowLabel(item.group) }}</span>\n <span class=\"grid-group-row__count\">{{ groupRowCountLabel(item.group) }}</span>\n }\n </span>\n </button>\n @if (groupHeaderColumnTemplate(groupColumnField(col)); as tpl) {\n <div class=\"grid-group-row__column-slot\">\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"groupColumnContext(item.group, col)\"\n ></ng-container>\n </div>\n }\n } @else if (groupHeaderColumnTemplate(groupColumnField(col)); as tpl) {\n <div class=\"grid-group-row__column-slot\">\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"groupColumnContext(item.group, col)\"\n ></ng-container>\n </div>\n }\n </td>\n }\n }\n @if (showActionsColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n </tr>\n } @else if (item.kind === 'group-footer') {\n <tr\n class=\"grid-group-footer-row\"\n [attr.data-group-key]=\"item.key\"\n [attr.data-group-level]=\"item.level\"\n >\n @if (showSelectionColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (rowDetailTpl) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (stickyRowsEnabled) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @for (col of visibleColumns; track col.field) {\n <td class=\"grid-group-footer-row__cell\">\n @if (groupFooterTemplate(groupColumnField(col)); as tpl) {\n <div class=\"grid-group-row__column-slot\">\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"groupColumnContext(item.group, col)\"\n ></ng-container>\n </div>\n }\n </td>\n }\n @if (showActionsColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n </tr>\n } @else {\n <tr\n class=\"grid-data-row\"\n ngbDatagridDataRow\n [grid]=\"gridHost\"\n [renderTick]=\"renderTick\"\n [row]=\"item.row\"\n [index]=\"item.pagedIndex\"\n [selected]=\"isRowSelected(item.row, item.pagedIndex)\"\n [ngbDndItem]=\"item.row\"\n [dndIndex]=\"item.pagedIndex\"\n [dndDisabled]=\"!isRowReorderEnabled()\"\n (click)=\"onRowSelect($event, item.pagedIndex); onRowClick($event, item.pagedIndex)\"\n [formGroup]=\"editForm\"\n [class.sticky-row]=\"isRowSticky(item.row, item.pagedIndex)\"\n [class.row-selected]=\"isRowSelected(item.row, item.pagedIndex)\"\n [class.row-highlight]=\"isRowHighlighted(item.row, item.pagedIndex)\"\n [class.grid-row--reorderable]=\"isRowReorderEnabled()\"\n [ngClass]=\"resolveRowClass(item.row, item.pagedIndex)\"\n [ngStyle]=\"resolveRowStyle(item.row, item.pagedIndex)\"\n [attr.aria-selected]=\"isRowSelected(item.row, item.pagedIndex) ? 'true' : null\"\n [style.top.px]=\"stickyTop(item.row, item.pagedIndex)\"\n [style.z-index]=\"isRowSticky(item.row, item.pagedIndex) ? 3 : null\"\n ></tr>\n\n @if (rowDetailTpl && isExpanded(item.pagedIndex)) {\n <tr\n ngbDatagridDetailRow\n [grid]=\"gridHost\"\n [row]=\"item.row\"\n [index]=\"item.pagedIndex\"\n [attr.id]=\"'dg-row-detail-' + item.pagedIndex\"\n ></tr>\n }\n }\n }\n </tbody>\n </table>\n\n @if (hasStickyGroupFooters()) {\n <div\n class=\"ngb-grid__group-sticky-layer ngb-grid__group-sticky-layer--bottom\"\n [style.transform]=\"'translateY(' + stickyGroupFooterTranslateY + 'px)'\"\n >\n <table\n class=\"grid-table grid-group-sticky-table mb-0\"\n [ngClass]=\"tableClassList\"\n [style.width.px]=\"tablePixelWidth\"\n role=\"presentation\"\n >\n <colgroup>\n @for (width of stickyGroupOverlayColumnWidths; track $index) {\n <col [style.width.px]=\"width || null\" />\n }\n </colgroup>\n <tbody>\n @for (item of stickyGroupFooterRows; track item.key) {\n <tr class=\"grid-group-footer-row grid-group-footer-row--overlay\">\n @if (showSelectionColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (rowDetailTpl) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (stickyRowsEnabled) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @for (col of visibleColumns; track col.field) {\n <td class=\"grid-group-footer-row__cell\">\n @if (groupFooterTemplate(groupColumnField(col)); as tpl) {\n <div class=\"grid-group-row__column-slot\">\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"groupColumnContext(item.group, col)\"\n ></ng-container>\n </div>\n }\n </td>\n }\n @if (showActionsColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n </div>\n\n <table class=\"table grid-table grid-foot mb-0\" [style.width.px]=\"tablePixelWidth\">\n <colgroup>\n @for (col of visibleColumns; track col.field) {\n <col [style.width.px]=\"col?.width\" />\n }\n </colgroup>\n <tbody>\n <tr>\n <td [attr.colspan]=\"visibleColumns.length\" width=\"100%\">\n @if (paginationActive && pagerShowsAt('bottom')) {\n <ngb-datagrid-footer [grid]=\"gridHost\" placement=\"bottom\"></ngb-datagrid-footer>\n }\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n @if (externalEditOpen) {\n <ngb-datagrid-external-editor [grid]=\"gridHost\"></ngb-datagrid-external-editor>\n }\n\n @if (openFilterMenuField && openFilterMenuColumn && openFilterMenuAnchor) {\n <ngb-datagrid-filter-menu-panel\n [grid]=\"gridHost\"\n [col]=\"openFilterMenuColumn\"\n [anchor]=\"openFilterMenuAnchor\"\n />\n }\n\n @if (openRowFilterField && openRowFilterColumn && openRowFilterOperatorAnchor) {\n <ngb-datagrid-row-filter-operator-panel\n [grid]=\"gridHost\"\n [col]=\"openRowFilterColumn\"\n [anchor]=\"openRowFilterOperatorAnchor\"\n />\n }\n</div>\n", styles: ["@charset \"UTF-8\";[data-ngb-theme=bootstrap]{--ngb-select-icon: var(--_ngb-bootstrap-select-icon, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\"));--ngb-primary: var(--bs-primary, #0d6efd);--ngb-on-primary: #ffffff;--ngb-surface: var(--bs-body-bg, #ffffff);--ngb-surface-container: var(--bs-tertiary-bg, #f8f9fa);--ngb-surface-variant: var(--bs-secondary-bg, #e9ecef);--ngb-on-surface: var(--bs-body-color, #212529);--ngb-on-surface-variant: var(--bs-secondary-color, #6c757d);--ngb-border-color: var(--bs-border-color, #dee2e6);--ngb-primary-hover: var(--bs-link-hover-color, #0a58ca);--ngb-primary-container: var(--bs-primary-bg-subtle, #cfe2ff);--ngb-focus-ring: var(--bs-focus-ring-color, rgba(13, 110, 253, .25));--ngb-radius-sm: var(--bs-border-radius-sm, .25rem);--ngb-radius-md: var(--bs-border-radius, .375rem);--ngb-radius-lg: var(--bs-border-radius-lg, .5rem);--ngb-font-family: var(--bs-body-font-family, system-ui, sans-serif);--ngb-font-size-sm: .84rem;--ngb-density-row-height: 40px;--ngb-elevation-1: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--ngb-elevation-2: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--ngb-disabled-opacity: .45;--ngb-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--ngb-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--ngb-success: var(--bs-success, #198754);--ngb-on-success: #ffffff;--ngb-danger: var(--bs-danger, #dc3545);--ngb-on-danger: #ffffff;--ngb-space-1: .25rem;--ngb-space-2: .5rem;--ngb-space-3: .75rem;--ngb-space-4: 1rem}[data-bs-theme=light]{--_ngb-bootstrap-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\")}[data-bs-theme=dark]{--_ngb-bootstrap-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\")}[data-ngb-theme=material]{--ngb-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");--ngb-primary: var(--mat-sys-primary, #6750a4);--ngb-on-primary: var(--mat-sys-on-primary, #ffffff);--ngb-surface: var(--mat-sys-surface, #fffbfe);--ngb-surface-container: var(--mat-sys-surface-container, #f3edf7);--ngb-surface-variant: var(--mat-sys-surface-container-high, #ece6f0);--ngb-on-surface: var(--mat-sys-on-surface, #1d1b20);--ngb-on-surface-variant: var(--mat-sys-on-surface-variant, #49454f);--ngb-border-color: var(--mat-sys-outline-variant, #cac4d0);--ngb-primary-hover: color-mix(in srgb, var(--mat-sys-primary, #6750a4) 88%, var(--mat-sys-on-surface, #1d1b20));--ngb-primary-container: var(--mat-sys-primary-container, #eaddff);--ngb-focus-ring: var(--mat-sys-primary, #6750a4);--ngb-radius-sm: 4px;--ngb-radius-md: 12px;--ngb-radius-lg: 16px;--ngb-font-family: var(--mat-sys-body-medium-font, Roboto, Arial, sans-serif);--ngb-font-size-sm: var(--mat-sys-body-medium-size, .875rem);--ngb-density-row-height: 48px;--ngb-elevation-1: var(--mat-sys-level1, 0 1px 3px rgba(0, 0, 0, .2));--ngb-elevation-2: var(--mat-sys-level2, 0 2px 6px rgba(0, 0, 0, .2));--ngb-disabled-opacity: .38;--ngb-hover-bg: color-mix(in srgb, var(--mat-sys-on-surface, #1d1b20) 8%, var(--mat-sys-surface, #fffbfe));--ngb-selected-bg: var(--mat-sys-secondary-container, #e8def8);--ngb-success: #198754;--ngb-on-success: #ffffff;--ngb-danger: var(--mat-sys-error, #b3261e);--ngb-on-danger: var(--mat-sys-on-error, #ffffff);--ngb-space-1: .25rem;--ngb-space-2: .5rem;--ngb-space-3: .75rem;--ngb-space-4: 1rem}.ngb-grid,.ngb-datagrid-floating-panel{--dg-surface: #ffffff;--dg-surface-muted: #f9fafb;--dg-surface-subtle: #f3f4f6;--dg-surface-config: #edf4ff;--dg-surface-filter-row: #fffbeb;--dg-surface-sticky-row: #fefce8;--dg-border: #d7deea;--dg-border-strong: #cfd6e2;--dg-text: #1f2937;--dg-text-muted: #5b6578;--dg-text-subtle: #64748b;--dg-primary: #315efb;--dg-primary-hover: #2749c4;--dg-primary-active: #1d4ed8;--dg-primary-soft: #dbeafe;--dg-primary-border-subtle: #bfdbfe;--dg-accent: #3b82f6;--dg-on-primary: #ffffff;--dg-placeholder: #94a3b8;--dg-success: #39a949;--dg-success-soft: #dcfce7;--dg-success-text: #166534;--dg-success-border-subtle: #bbf7d0;--dg-danger: #ef4444;--dg-danger-soft: #fee2e2;--dg-danger-text: #b91c1c;--dg-danger-border-subtle: #fecaca;--dg-warning-soft: #fef3c7;--dg-warning-border: #fde68a;--dg-warning-text: #854d0e;--dg-filter-multi-icon: #39a949;--dg-filter-multi-icon-soft: #dcfce7;--dg-neutral-pill-bg: #e2e8f0;--dg-locked-bg: #f8fafc;--dg-row-selected-bg: #eef5ff;--dg-row-hover-bg: #f8fbff;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: #f8fbff;--dg-search-highlight-bg: #fef08a;--dg-sticky-border: #facc15;--dg-sticky-badge-bg: #fef08a;--dg-sticky-badge-text: #854d0e;--dg-dropdown-item-active-bg: var(--dg-primary-soft);--dg-dropdown-item-active-color: var(--dg-primary);--dg-focus-ring: #2563eb;--dg-focus-border: rgba(37, 99, 235, .45);--dg-focus-shadow: 0 0 0 .2rem rgba(37, 99, 235, .15);--dg-pin-shadow-start: 1px 0 0 rgba(15, 23, 42, .08);--dg-pin-shadow-end: -1px 0 0 rgba(15, 23, 42, .08);--dg-backdrop: rgba(15, 23, 42, .45);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(37, 99, 235, .18);--dg-filter-divider: rgba(219, 227, 239, .8);--dg-shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--dg-shadow-md: 0 8px 24px rgba(15, 23, 42, .12);--dg-radius-lg: .5rem;--dg-radius-md: .45rem;--dg-radius-sm: .35rem;--dg-control-height: 2.15rem;--dg-nav-height: 2.5rem;--dg-font-size-header: .92rem;--dg-font-size-cell: .84rem;--dg-font-size-label: .94rem;--dg-cell-padding-y: .75rem;--dg-cell-padding-x: .85rem;--dg-header-padding-y: .75rem;--dg-header-padding-x: .85rem;--dg-table-border-width: 1px;--dg-pager-surface: var(--dg-surface);--dg-pager-text: var(--dg-text-muted);--dg-pager-control-bg: var(--dg-surface);--dg-pager-control-hover-bg: var(--dg-surface-subtle);--dg-pager-control-border: var(--dg-border);--dg-pager-link-text: var(--dg-primary);--dg-pager-active-bg: var(--dg-primary);--dg-pager-active-border: var(--dg-primary);--dg-pager-active-text: var(--dg-on-primary);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\")}.ngb-grid[data-theme=bootstrap],.ngb-datagrid-floating-panel[data-theme=bootstrap]{--dg-surface: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-surface-muted: var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));--dg-surface-subtle: var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));--dg-surface-config: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-surface-filter-row: var(--ngb-surface-container, var(--bs-warning-bg-subtle, #fff3cd));--dg-surface-sticky-row: var(--ngb-surface-container, var(--bs-warning-bg-subtle, #fff3cd));--dg-border: var(--ngb-border-color, var(--bs-border-color, #dee2e6));--dg-border-strong: var(--ngb-border-color, var(--bs-border-color-translucent, #ced4da));--dg-text: var(--ngb-on-surface, var(--bs-body-color, #212529));--dg-text-muted: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-text-subtle: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #6c757d));--dg-primary: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-primary-hover: var(--ngb-primary-hover, var(--bs-link-hover-color, #0a58ca));--dg-primary-active: var(--ngb-primary-hover, var(--bs-link-hover-color, #0a58ca));--dg-primary-soft: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-primary-border-subtle: var(--ngb-border-color, var(--bs-primary-border-subtle, #9ec5fe));--dg-accent: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-on-primary: var(--ngb-on-primary, var(--bs-btn-color, #fff));--dg-placeholder: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-success: var(--ngb-success, var(--bs-success, #198754));--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--ngb-danger, var(--bs-danger, #dc3545));--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--ngb-success, var(--bs-success, #198754));--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));--dg-locked-bg: var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));--dg-row-selected-bg: var(--ngb-selected-bg, var(--bs-primary-bg-subtle, #cfe2ff));--dg-row-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--ngb-surface-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-dropdown-item-active-color: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-focus-ring: var(--ngb-focus-ring, var(--bs-focus-ring-color, var(--bs-primary, #0d6efd)));--dg-focus-border: var(--ngb-focus-ring, rgba(var(--bs-primary-rgb, 13, 110, 253), .45));--dg-font-size-cell: var(--ngb-font-size-sm, .84rem);--dg-focus-shadow: 0 0 0 .25rem var(--ngb-focus-ring, rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25)));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: var(--ngb-selected-bg, rgba(var(--bs-primary-rgb, 13, 110, 253), .18));--dg-filter-divider: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0, 0, 0, .1)));--dg-shadow-sm: var(--ngb-elevation-1, var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075)));--dg-shadow-md: var(--ngb-elevation-2, var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15)));--dg-radius-lg: var(--ngb-radius-lg, var(--bs-border-radius-lg, .5rem));--dg-radius-md: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--dg-radius-sm: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem));--dg-pager-surface: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-pager-text: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-pager-control-bg: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-pager-control-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--dg-pager-control-border: var(--ngb-border-color, var(--bs-border-color, #dee2e6));--dg-pager-link-text: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-bg: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-border: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-text: var(--ngb-on-primary, var(--bs-btn-color, #fff));--dg-pager-select-icon: var(--ngb-select-icon, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\"))}.ngb-grid[data-theme=bootstrap-main],.ngb-datagrid-floating-panel[data-theme=bootstrap-main]{--dg-surface: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-surface-muted: var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));--dg-surface-subtle: var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));--dg-surface-config: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-surface-filter-row: var(--ngb-surface-container, var(--bs-warning-bg-subtle, #fff3cd));--dg-surface-sticky-row: var(--ngb-surface-container, var(--bs-warning-bg-subtle, #fff3cd));--dg-border: var(--ngb-border-color, var(--bs-border-color, #dee2e6));--dg-border-strong: var(--ngb-border-color, var(--bs-border-color-translucent, #ced4da));--dg-text: var(--ngb-on-surface, var(--bs-body-color, #212529));--dg-text-muted: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-text-subtle: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #6c757d));--dg-primary: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-primary-hover: var(--ngb-primary-hover, var(--bs-link-hover-color, #0a58ca));--dg-primary-active: var(--ngb-primary-hover, var(--bs-link-hover-color, #0a58ca));--dg-primary-soft: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-primary-border-subtle: var(--ngb-border-color, var(--bs-primary-border-subtle, #9ec5fe));--dg-accent: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-on-primary: var(--ngb-on-primary, var(--bs-btn-color, #fff));--dg-placeholder: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-success: var(--ngb-success, var(--bs-success, #198754));--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--ngb-danger, var(--bs-danger, #dc3545));--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--ngb-success, var(--bs-success, #198754));--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));--dg-locked-bg: var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));--dg-row-selected-bg: var(--ngb-selected-bg, var(--bs-primary-bg-subtle, #cfe2ff));--dg-row-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--ngb-surface-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-dropdown-item-active-color: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-focus-ring: var(--ngb-focus-ring, var(--bs-focus-ring-color, var(--bs-primary, #0d6efd)));--dg-focus-border: var(--ngb-focus-ring, rgba(var(--bs-primary-rgb, 13, 110, 253), .45));--dg-font-size-cell: var(--ngb-font-size-sm, .84rem);--dg-focus-shadow: 0 0 0 .25rem var(--ngb-focus-ring, rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25)));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: var(--ngb-selected-bg, rgba(var(--bs-primary-rgb, 13, 110, 253), .18));--dg-filter-divider: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0, 0, 0, .1)));--dg-shadow-sm: var(--ngb-elevation-1, var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075)));--dg-shadow-md: var(--ngb-elevation-2, var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15)));--dg-radius-lg: var(--ngb-radius-lg, var(--bs-border-radius-lg, .5rem));--dg-radius-md: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--dg-radius-sm: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem));--dg-pager-surface: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-pager-text: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-pager-control-bg: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-pager-control-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--dg-pager-control-border: var(--ngb-border-color, var(--bs-border-color, #dee2e6));--dg-pager-link-text: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-bg: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-border: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-text: var(--ngb-on-primary, var(--bs-btn-color, #fff));--dg-pager-select-icon: var(--ngb-select-icon, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\"));--dg-surface: #f8fbff;--dg-surface-muted: #eaf3ff;--dg-surface-subtle: #d9eaff;--dg-surface-config: #e0efff;--dg-border: #bfd7f4;--dg-border-strong: #7fb0e3;--dg-text: #172554;--dg-text-muted: #45617f;--dg-primary: #1769e0;--dg-primary-hover: #0f56bd;--dg-primary-active: #0b438f;--dg-primary-soft: #dbeafe;--dg-primary-border-subtle: #93c5fd;--dg-accent: #0f766e;--dg-row-selected-bg: #dcecff;--dg-row-hover-bg: #eef6ff;--dg-detail-row-bg: #edf6ff;--dg-dropdown-item-active-bg: #dcecff;--dg-dropdown-item-active-color: #0f56bd;--dg-focus-ring: #1769e0;--dg-focus-border: rgba(23, 105, 224, .48);--dg-focus-shadow: 0 0 0 .2rem rgba(23, 105, 224, .16)}.ngb-grid[data-theme=bootstrap-main-dark],.ngb-datagrid-floating-panel[data-theme=bootstrap-main-dark]{--dg-surface: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-surface-muted: var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));--dg-surface-subtle: var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));--dg-surface-config: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-surface-filter-row: var(--ngb-surface-container, var(--bs-warning-bg-subtle, #fff3cd));--dg-surface-sticky-row: var(--ngb-surface-container, var(--bs-warning-bg-subtle, #fff3cd));--dg-border: var(--ngb-border-color, var(--bs-border-color, #dee2e6));--dg-border-strong: var(--ngb-border-color, var(--bs-border-color-translucent, #ced4da));--dg-text: var(--ngb-on-surface, var(--bs-body-color, #212529));--dg-text-muted: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-text-subtle: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #6c757d));--dg-primary: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-primary-hover: var(--ngb-primary-hover, var(--bs-link-hover-color, #0a58ca));--dg-primary-active: var(--ngb-primary-hover, var(--bs-link-hover-color, #0a58ca));--dg-primary-soft: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-primary-border-subtle: var(--ngb-border-color, var(--bs-primary-border-subtle, #9ec5fe));--dg-accent: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-on-primary: var(--ngb-on-primary, var(--bs-btn-color, #fff));--dg-placeholder: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-success: var(--ngb-success, var(--bs-success, #198754));--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--ngb-danger, var(--bs-danger, #dc3545));--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--ngb-success, var(--bs-success, #198754));--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));--dg-locked-bg: var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));--dg-row-selected-bg: var(--ngb-selected-bg, var(--bs-primary-bg-subtle, #cfe2ff));--dg-row-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--ngb-surface-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-dropdown-item-active-color: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-focus-ring: var(--ngb-focus-ring, var(--bs-focus-ring-color, var(--bs-primary, #0d6efd)));--dg-focus-border: var(--ngb-focus-ring, rgba(var(--bs-primary-rgb, 13, 110, 253), .45));--dg-font-size-cell: var(--ngb-font-size-sm, .84rem);--dg-focus-shadow: 0 0 0 .25rem var(--ngb-focus-ring, rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25)));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: var(--ngb-selected-bg, rgba(var(--bs-primary-rgb, 13, 110, 253), .18));--dg-filter-divider: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0, 0, 0, .1)));--dg-shadow-sm: var(--ngb-elevation-1, var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075)));--dg-shadow-md: var(--ngb-elevation-2, var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15)));--dg-radius-lg: var(--ngb-radius-lg, var(--bs-border-radius-lg, .5rem));--dg-radius-md: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--dg-radius-sm: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem));--dg-pager-surface: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-pager-text: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-pager-control-bg: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-pager-control-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--dg-pager-control-border: var(--ngb-border-color, var(--bs-border-color, #dee2e6));--dg-pager-link-text: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-bg: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-border: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-text: var(--ngb-on-primary, var(--bs-btn-color, #fff));--dg-pager-select-icon: var(--ngb-select-icon, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\"));--dg-surface: #172033;--dg-surface-muted: #202b42;--dg-surface-subtle: #273653;--dg-surface-config: #172a4f;--dg-surface-filter-row: #2c2714;--dg-surface-sticky-row: #2e2810;--dg-border: #33425f;--dg-border-strong: #4a5d80;--dg-text: #edf2ff;--dg-text-muted: #b8c3d9;--dg-text-subtle: #93a2bd;--dg-primary: #38bdf8;--dg-primary-hover: #7dd3fc;--dg-primary-active: #bae6fd;--dg-primary-soft: #12344f;--dg-primary-border-subtle: #0284c7;--dg-accent: #38bdf8;--dg-on-primary: #ffffff;--dg-placeholder: #93a2bd;--dg-locked-bg: #1e2a40;--dg-row-selected-bg: #153a67;--dg-row-hover-bg: #22304a;--dg-row-odd-bg: #172033;--dg-row-even-bg: #1b263a;--dg-detail-row-bg: #182d4c;--dg-dropdown-item-active-bg: #183b70;--dg-dropdown-item-active-color: #bfdbfe;--dg-focus-ring: #60a5fa;--dg-focus-border: rgba(96, 165, 250, .6);--dg-focus-shadow: 0 0 0 .2rem rgba(96, 165, 250, .2);--dg-shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--dg-shadow-md: 0 14px 32px rgba(0, 0, 0, .36);--dg-pager-surface: #111827;--dg-pager-text: #dbeafe;--dg-pager-control-bg: #172033;--dg-pager-control-hover-bg: #22304a;--dg-pager-control-border: #4a5d80;--dg-pager-link-text: #dbeafe;--dg-pager-active-bg: #38bdf8;--dg-pager-active-border: #38bdf8;--dg-pager-active-text: #0f172a;--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\")}.ngb-grid[data-theme=bootstrap-nordic],.ngb-datagrid-floating-panel[data-theme=bootstrap-nordic]{--dg-surface: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-surface-muted: var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));--dg-surface-subtle: var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));--dg-surface-config: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-surface-filter-row: var(--ngb-surface-container, var(--bs-warning-bg-subtle, #fff3cd));--dg-surface-sticky-row: var(--ngb-surface-container, var(--bs-warning-bg-subtle, #fff3cd));--dg-border: var(--ngb-border-color, var(--bs-border-color, #dee2e6));--dg-border-strong: var(--ngb-border-color, var(--bs-border-color-translucent, #ced4da));--dg-text: var(--ngb-on-surface, var(--bs-body-color, #212529));--dg-text-muted: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-text-subtle: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #6c757d));--dg-primary: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-primary-hover: var(--ngb-primary-hover, var(--bs-link-hover-color, #0a58ca));--dg-primary-active: var(--ngb-primary-hover, var(--bs-link-hover-color, #0a58ca));--dg-primary-soft: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-primary-border-subtle: var(--ngb-border-color, var(--bs-primary-border-subtle, #9ec5fe));--dg-accent: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-on-primary: var(--ngb-on-primary, var(--bs-btn-color, #fff));--dg-placeholder: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-success: var(--ngb-success, var(--bs-success, #198754));--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--ngb-danger, var(--bs-danger, #dc3545));--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--ngb-success, var(--bs-success, #198754));--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));--dg-locked-bg: var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));--dg-row-selected-bg: var(--ngb-selected-bg, var(--bs-primary-bg-subtle, #cfe2ff));--dg-row-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--ngb-surface-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-dropdown-item-active-color: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-focus-ring: var(--ngb-focus-ring, var(--bs-focus-ring-color, var(--bs-primary, #0d6efd)));--dg-focus-border: var(--ngb-focus-ring, rgba(var(--bs-primary-rgb, 13, 110, 253), .45));--dg-font-size-cell: var(--ngb-font-size-sm, .84rem);--dg-focus-shadow: 0 0 0 .25rem var(--ngb-focus-ring, rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25)));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: var(--ngb-selected-bg, rgba(var(--bs-primary-rgb, 13, 110, 253), .18));--dg-filter-divider: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0, 0, 0, .1)));--dg-shadow-sm: var(--ngb-elevation-1, var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075)));--dg-shadow-md: var(--ngb-elevation-2, var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15)));--dg-radius-lg: var(--ngb-radius-lg, var(--bs-border-radius-lg, .5rem));--dg-radius-md: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--dg-radius-sm: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem));--dg-pager-surface: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-pager-text: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-pager-control-bg: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-pager-control-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--dg-pager-control-border: var(--ngb-border-color, var(--bs-border-color, #dee2e6));--dg-pager-link-text: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-bg: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-border: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-text: var(--ngb-on-primary, var(--bs-btn-color, #fff));--dg-pager-select-icon: var(--ngb-select-icon, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\"));--dg-surface: #ffffff;--dg-surface-muted: #f2f7f8;--dg-surface-subtle: #e6f0f2;--dg-surface-config: #e4f8fb;--dg-surface-filter-row: #fff7ed;--dg-border: #d5e4e7;--dg-border-strong: #a9c8cf;--dg-text: #263243;--dg-text-muted: #64748b;--dg-primary: #0ea5b7;--dg-primary-hover: #0b8798;--dg-primary-active: #0f6b7a;--dg-primary-soft: #d7f5f8;--dg-primary-border-subtle: #9be4ec;--dg-accent: #e85d75;--dg-row-selected-bg: #e7f8fb;--dg-row-hover-bg: #f0fbfd;--dg-row-odd-bg: transparent;--dg-row-even-bg: #fbfeff;--dg-detail-row-bg: #f4fbfc;--dg-dropdown-item-active-bg: #e7f8fb;--dg-dropdown-item-active-color: #0b8798;--dg-focus-ring: #0ea5b7;--dg-focus-border: rgba(14, 165, 183, .45);--dg-focus-shadow: 0 0 0 .2rem rgba(14, 165, 183, .15);--dg-font-size-cell: .88rem;--dg-cell-padding-y: .82rem;--dg-pager-surface: #f8ffff;--dg-pager-text: #526173;--dg-pager-control-bg: #ffffff;--dg-pager-control-hover-bg: #e7f8fb;--dg-pager-control-border: #b9dce2;--dg-pager-link-text: #0b8798;--dg-pager-active-bg: #0ea5b7;--dg-pager-active-border: #0ea5b7;--dg-pager-active-text: #ffffff}.ngb-grid[data-theme=bootstrap-urban],.ngb-datagrid-floating-panel[data-theme=bootstrap-urban]{--dg-surface: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-surface-muted: var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));--dg-surface-subtle: var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));--dg-surface-config: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-surface-filter-row: var(--ngb-surface-container, var(--bs-warning-bg-subtle, #fff3cd));--dg-surface-sticky-row: var(--ngb-surface-container, var(--bs-warning-bg-subtle, #fff3cd));--dg-border: var(--ngb-border-color, var(--bs-border-color, #dee2e6));--dg-border-strong: var(--ngb-border-color, var(--bs-border-color-translucent, #ced4da));--dg-text: var(--ngb-on-surface, var(--bs-body-color, #212529));--dg-text-muted: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-text-subtle: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #6c757d));--dg-primary: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-primary-hover: var(--ngb-primary-hover, var(--bs-link-hover-color, #0a58ca));--dg-primary-active: var(--ngb-primary-hover, var(--bs-link-hover-color, #0a58ca));--dg-primary-soft: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-primary-border-subtle: var(--ngb-border-color, var(--bs-primary-border-subtle, #9ec5fe));--dg-accent: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-on-primary: var(--ngb-on-primary, var(--bs-btn-color, #fff));--dg-placeholder: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-success: var(--ngb-success, var(--bs-success, #198754));--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--ngb-danger, var(--bs-danger, #dc3545));--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--ngb-success, var(--bs-success, #198754));--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));--dg-locked-bg: var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));--dg-row-selected-bg: var(--ngb-selected-bg, var(--bs-primary-bg-subtle, #cfe2ff));--dg-row-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--dg-detail-row-bg: var(--ngb-surface-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-dropdown-item-active-color: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-focus-ring: var(--ngb-focus-ring, var(--bs-focus-ring-color, var(--bs-primary, #0d6efd)));--dg-focus-border: var(--ngb-focus-ring, rgba(var(--bs-primary-rgb, 13, 110, 253), .45));--dg-font-size-cell: var(--ngb-font-size-sm, .84rem);--dg-focus-shadow: 0 0 0 .25rem var(--ngb-focus-ring, rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25)));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: var(--ngb-selected-bg, rgba(var(--bs-primary-rgb, 13, 110, 253), .18));--dg-filter-divider: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0, 0, 0, .1)));--dg-shadow-sm: var(--ngb-elevation-1, var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075)));--dg-shadow-md: var(--ngb-elevation-2, var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15)));--dg-radius-lg: var(--ngb-radius-lg, var(--bs-border-radius-lg, .5rem));--dg-radius-md: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--dg-radius-sm: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem));--dg-pager-surface: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-pager-text: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-pager-control-bg: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-pager-control-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--dg-pager-control-border: var(--ngb-border-color, var(--bs-border-color, #dee2e6));--dg-pager-link-text: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-bg: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-border: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-text: var(--ngb-on-primary, var(--bs-btn-color, #fff));--dg-pager-select-icon: var(--ngb-select-icon, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\"));--dg-surface: #ffffff;--dg-surface-muted: #f5f8fa;--dg-surface-subtle: #edf4f7;--dg-surface-config: #e8f4f9;--dg-border: #d9e5ea;--dg-border-strong: #adc6d3;--dg-text: #263445;--dg-text-muted: #5f6f84;--dg-primary: #468faf;--dg-primary-hover: #36748f;--dg-primary-active: #285b72;--dg-primary-soft: #e0f0f6;--dg-primary-border-subtle: #b9dbe8;--dg-accent: #ff7f50;--dg-row-selected-bg: #e8f4f9;--dg-row-hover-bg: #fff2eb;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-dropdown-item-active-bg: #e8f4f9;--dg-dropdown-item-active-color: #36748f;--dg-focus-ring: #468faf;--dg-focus-border: rgba(70, 143, 175, .48);--dg-focus-shadow: 0 0 0 .2rem rgba(70, 143, 175, .16);--dg-cell-padding-y: .86rem;--dg-cell-padding-x: .95rem;--dg-pager-surface: #fffaf7;--dg-pager-text: #5f6f84;--dg-pager-control-bg: #ffffff;--dg-pager-control-hover-bg: #fff2eb;--dg-pager-control-border: #d4e1e7;--dg-pager-link-text: #36748f;--dg-pager-active-bg: #468faf;--dg-pager-active-border: #468faf;--dg-pager-active-text: #ffffff}.ngb-grid[data-theme=bootstrap-vintage],.ngb-datagrid-floating-panel[data-theme=bootstrap-vintage]{--dg-surface: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-surface-muted: var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));--dg-surface-subtle: var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));--dg-surface-config: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-surface-filter-row: var(--ngb-surface-container, var(--bs-warning-bg-subtle, #fff3cd));--dg-surface-sticky-row: var(--ngb-surface-container, var(--bs-warning-bg-subtle, #fff3cd));--dg-border: var(--ngb-border-color, var(--bs-border-color, #dee2e6));--dg-border-strong: var(--ngb-border-color, var(--bs-border-color-translucent, #ced4da));--dg-text: var(--ngb-on-surface, var(--bs-body-color, #212529));--dg-text-muted: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-text-subtle: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #6c757d));--dg-primary: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-primary-hover: var(--ngb-primary-hover, var(--bs-link-hover-color, #0a58ca));--dg-primary-active: var(--ngb-primary-hover, var(--bs-link-hover-color, #0a58ca));--dg-primary-soft: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-primary-border-subtle: var(--ngb-border-color, var(--bs-primary-border-subtle, #9ec5fe));--dg-accent: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-on-primary: var(--ngb-on-primary, var(--bs-btn-color, #fff));--dg-placeholder: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-success: var(--ngb-success, var(--bs-success, #198754));--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--ngb-danger, var(--bs-danger, #dc3545));--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--ngb-success, var(--bs-success, #198754));--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));--dg-locked-bg: var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));--dg-row-selected-bg: var(--ngb-selected-bg, var(--bs-primary-bg-subtle, #cfe2ff));--dg-row-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--ngb-surface-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-dropdown-item-active-color: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-focus-ring: var(--ngb-focus-ring, var(--bs-focus-ring-color, var(--bs-primary, #0d6efd)));--dg-focus-border: var(--ngb-focus-ring, rgba(var(--bs-primary-rgb, 13, 110, 253), .45));--dg-font-size-cell: var(--ngb-font-size-sm, .84rem);--dg-focus-shadow: 0 0 0 .25rem var(--ngb-focus-ring, rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25)));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: var(--ngb-selected-bg, rgba(var(--bs-primary-rgb, 13, 110, 253), .18));--dg-filter-divider: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0, 0, 0, .1)));--dg-shadow-sm: var(--ngb-elevation-1, var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075)));--dg-shadow-md: var(--ngb-elevation-2, var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15)));--dg-radius-lg: var(--ngb-radius-lg, var(--bs-border-radius-lg, .5rem));--dg-radius-md: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--dg-radius-sm: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem));--dg-pager-surface: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-pager-text: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-pager-control-bg: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-pager-control-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--dg-pager-control-border: var(--ngb-border-color, var(--bs-border-color, #dee2e6));--dg-pager-link-text: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-bg: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-border: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-text: var(--ngb-on-primary, var(--bs-btn-color, #fff));--dg-pager-select-icon: var(--ngb-select-icon, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\"));--dg-surface: #fffdf8;--dg-surface-muted: #f6f0e7;--dg-surface-subtle: #eee4d8;--dg-surface-config: #f2e7ef;--dg-border: #dfd2c2;--dg-border-strong: #c8b8a5;--dg-text: #3d3440;--dg-text-muted: #766a72;--dg-primary: #7f4f68;--dg-primary-hover: #684057;--dg-primary-active: #523246;--dg-primary-soft: #efdde8;--dg-primary-border-subtle: #d8b9ca;--dg-accent: #88b0b7;--dg-row-selected-bg: #f1e4ec;--dg-row-hover-bg: #fbf1e5;--dg-row-odd-bg: #fffdf8;--dg-row-even-bg: #fbf7ef;--dg-detail-row-bg: #fbf6ef;--dg-dropdown-item-active-bg: #f1e4ec;--dg-dropdown-item-active-color: #684057;--dg-focus-ring: #7f4f68;--dg-focus-border: rgba(127, 79, 104, .5);--dg-focus-shadow: 0 0 0 .2rem rgba(127, 79, 104, .16);--dg-font-size-header: .78rem;--dg-font-size-cell: .86rem;--dg-pager-surface: #fffdf8;--dg-pager-text: #766a72;--dg-pager-control-bg: #fffaf2;--dg-pager-control-hover-bg: #fbf1e5;--dg-pager-control-border: #dfd2c2;--dg-pager-link-text: #684057;--dg-pager-active-bg: #7f4f68;--dg-pager-active-border: #7f4f68;--dg-pager-active-text: #ffffff}.ngb-grid[data-theme=material],.ngb-grid[data-theme=material-main],.ngb-datagrid-floating-panel[data-theme=material],.ngb-datagrid-floating-panel[data-theme=material-main]{--dg-surface: #fffbfe;--dg-surface-muted: #f4eff4;--dg-surface-subtle: #e7e0ec;--dg-surface-config: #eaddff;--dg-border: #cac4d0;--dg-border-strong: #938f99;--dg-text: #1c1b1f;--dg-text-muted: #49454f;--dg-primary: #6750a4;--dg-primary-hover: #59468d;--dg-primary-active: #4f378b;--dg-primary-soft: #eaddff;--dg-primary-border-subtle: #d0bcff;--dg-accent: #7d5260;--dg-row-selected-bg: #eaddff;--dg-row-hover-bg: #f5efff;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: #f7f2fa;--dg-dropdown-item-active-bg: #eaddff;--dg-dropdown-item-active-color: #4f378b;--dg-focus-ring: #6750a4;--dg-focus-border: rgba(103, 80, 164, .5);--dg-focus-shadow: 0 0 0 .18rem rgba(103, 80, 164, .16);--dg-radius-lg: .75rem;--dg-radius-md: .65rem;--dg-radius-sm: .5rem;--dg-font-size-header: .78rem;--dg-font-size-cell: .86rem;--dg-cell-padding-y: .8rem;--dg-table-border-width: 0;--dg-pager-control-bg: #fffbfe;--dg-pager-control-hover-bg: #f4eff4;--dg-pager-control-border: #cac4d0}.ngb-grid[data-theme=material-indigo],.ngb-datagrid-floating-panel[data-theme=material-indigo]{--dg-surface: #fffbfe;--dg-surface-muted: #f4eff4;--dg-surface-subtle: #e7e0ec;--dg-surface-config: #eaddff;--dg-border: #cac4d0;--dg-border-strong: #938f99;--dg-text: #1c1b1f;--dg-text-muted: #49454f;--dg-primary: #6750a4;--dg-primary-hover: #59468d;--dg-primary-active: #4f378b;--dg-primary-soft: #eaddff;--dg-primary-border-subtle: #d0bcff;--dg-accent: #7d5260;--dg-row-selected-bg: #eaddff;--dg-row-hover-bg: #f5efff;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: #f7f2fa;--dg-dropdown-item-active-bg: #eaddff;--dg-dropdown-item-active-color: #4f378b;--dg-focus-ring: #6750a4;--dg-focus-border: rgba(103, 80, 164, .5);--dg-focus-shadow: 0 0 0 .18rem rgba(103, 80, 164, .16);--dg-radius-lg: .75rem;--dg-radius-md: .65rem;--dg-radius-sm: .5rem;--dg-font-size-header: .78rem;--dg-font-size-cell: .86rem;--dg-cell-padding-y: .8rem;--dg-table-border-width: 0;--dg-pager-control-bg: #fffbfe;--dg-pager-control-hover-bg: #f4eff4;--dg-pager-control-border: #cac4d0;--dg-primary: #3f51b5;--dg-primary-hover: #303f9f;--dg-primary-active: #283593;--dg-primary-soft: #e8eaf6;--dg-primary-border-subtle: #c5cae9;--dg-dropdown-item-active-bg: #e8eaf6;--dg-dropdown-item-active-color: #303f9f;--dg-focus-ring: #3f51b5;--dg-focus-border: rgba(63, 81, 181, .48);--dg-focus-shadow: 0 0 0 .18rem rgba(63, 81, 181, .16);--dg-row-hover-bg: #f0f2ff}.ngb-grid[data-theme=material-deep-purple],.ngb-datagrid-floating-panel[data-theme=material-deep-purple]{--dg-surface: #fffbfe;--dg-surface-muted: #f4eff4;--dg-surface-subtle: #e7e0ec;--dg-surface-config: #eaddff;--dg-border: #cac4d0;--dg-border-strong: #938f99;--dg-text: #1c1b1f;--dg-text-muted: #49454f;--dg-primary: #6750a4;--dg-primary-hover: #59468d;--dg-primary-active: #4f378b;--dg-primary-soft: #eaddff;--dg-primary-border-subtle: #d0bcff;--dg-accent: #7d5260;--dg-row-selected-bg: #eaddff;--dg-row-hover-bg: #f5efff;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: #f7f2fa;--dg-dropdown-item-active-bg: #eaddff;--dg-dropdown-item-active-color: #4f378b;--dg-focus-ring: #6750a4;--dg-focus-border: rgba(103, 80, 164, .5);--dg-focus-shadow: 0 0 0 .18rem rgba(103, 80, 164, .16);--dg-radius-lg: .75rem;--dg-radius-md: .65rem;--dg-radius-sm: .5rem;--dg-font-size-header: .78rem;--dg-font-size-cell: .86rem;--dg-cell-padding-y: .8rem;--dg-table-border-width: 0;--dg-pager-control-bg: #fffbfe;--dg-pager-control-hover-bg: #f4eff4;--dg-pager-control-border: #cac4d0;--dg-primary: #7e57c2;--dg-primary-hover: #673ab7;--dg-primary-active: #512da8;--dg-primary-soft: #ede7f6;--dg-primary-border-subtle: #d1c4e9;--dg-accent: #ff7043;--dg-row-selected-bg: #ede7f6;--dg-row-hover-bg: #f5edff;--dg-dropdown-item-active-bg: #ede7f6;--dg-dropdown-item-active-color: #512da8;--dg-focus-ring: #7e57c2;--dg-focus-border: rgba(126, 87, 194, .5);--dg-focus-shadow: 0 0 0 .18rem rgba(126, 87, 194, .16)}.ngb-grid[data-theme=tailwind],.ngb-grid[data-theme=tailwind-main],.ngb-datagrid-floating-panel[data-theme=tailwind],.ngb-datagrid-floating-panel[data-theme=tailwind-main]{--dg-surface: #ffffff;--dg-surface-muted: #f8fafc;--dg-surface-subtle: #f1f5f9;--dg-border: #cbd5e1;--dg-border-strong: #94a3b8;--dg-text: #0f172a;--dg-text-muted: #475569;--dg-primary: #2563eb;--dg-primary-hover: #1d4ed8;--dg-primary-active: #1e40af;--dg-primary-soft: #dbeafe;--dg-primary-border-subtle: #bfdbfe;--dg-dropdown-item-active-bg: #dbeafe;--dg-dropdown-item-active-color: #1d4ed8;--dg-focus-ring: #2563eb;--dg-focus-border: rgba(37, 99, 235, .48);--dg-focus-shadow: 0 0 0 .18rem rgba(37, 99, 235, .16);--dg-row-hover-bg: #eff6ff;--dg-font-size-header: .75rem;--dg-font-size-cell: .85rem;--dg-cell-padding-y: .68rem;--dg-cell-padding-x: .8rem;--dg-table-border-width: 1px;--dg-pager-surface: #ffffff;--dg-pager-text: #475569;--dg-pager-control-bg: #ffffff;--dg-pager-control-hover-bg: #eff6ff;--dg-pager-control-border: #bfdbfe;--dg-pager-link-text: #1d4ed8;--dg-pager-active-bg: #2563eb;--dg-pager-active-border: #2563eb;--dg-pager-active-text: #ffffff}.ngb-grid[data-theme=tailwind-slate],.ngb-datagrid-floating-panel[data-theme=tailwind-slate]{--dg-surface: #f8fafc;--dg-surface-muted: #e2e8f0;--dg-surface-subtle: #cbd5e1;--dg-border: #cbd5e1;--dg-border-strong: #64748b;--dg-text: #0f172a;--dg-text-muted: #475569;--dg-primary: #475569;--dg-primary-hover: #334155;--dg-primary-active: #1e293b;--dg-primary-soft: #e2e8f0;--dg-primary-border-subtle: #94a3b8;--dg-dropdown-item-active-bg: #e2e8f0;--dg-dropdown-item-active-color: #334155;--dg-focus-ring: #475569;--dg-row-hover-bg: #e2e8f0;--dg-row-odd-bg: #f8fafc;--dg-row-even-bg: #f1f5f9;--dg-focus-border: rgba(71, 85, 105, .48);--dg-focus-shadow: 0 0 0 .18rem rgba(71, 85, 105, .16)}.ngb-grid[data-theme=tailwind-emerald],.ngb-datagrid-floating-panel[data-theme=tailwind-emerald]{--dg-surface: #ffffff;--dg-surface-muted: #ecfdf5;--dg-surface-subtle: #d1fae5;--dg-border: #a7f3d0;--dg-border-strong: #34d399;--dg-text: #064e3b;--dg-text-muted: #047857;--dg-primary: #059669;--dg-primary-hover: #047857;--dg-primary-active: #065f46;--dg-primary-soft: #d1fae5;--dg-primary-border-subtle: #6ee7b7;--dg-dropdown-item-active-bg: #d1fae5;--dg-dropdown-item-active-color: #047857;--dg-focus-ring: #059669;--dg-focus-border: rgba(5, 150, 105, .48);--dg-focus-shadow: 0 0 0 .18rem rgba(5, 150, 105, .16)}.ngb-datagrid-floating-panel{font-family:var(--ngb-font-family, inherit);color:var(--dg-text)}.ngb-datagrid-floating-panel.grid-filter-menu-popover,.ngb-datagrid-floating-panel.dropdown-menu{position:fixed!important;z-index:1200;display:block;visibility:visible;opacity:1;pointer-events:auto;max-height:min(28rem,100vh - 1.5rem);overflow:auto;margin:0!important;border-radius:var(--dg-radius-md);border:1px solid var(--dg-border);background:var(--dg-surface);box-shadow:var(--dg-shadow-md)}.ngb-datagrid-floating-panel.dropdown-menu{min-width:12rem;padding:.35rem 0}.ngb-datagrid-floating-panel.grid-filter-operator-menu .dropdown-item{display:block;width:100%;padding:.5rem .85rem;border:0;background:transparent;font-size:.8125rem;font-weight:600;color:var(--dg-text);text-align:left}.ngb-datagrid-floating-panel.grid-filter-operator-menu .dropdown-item:hover{background:var(--dg-surface-subtle)}.ngb-datagrid-floating-panel.grid-filter-operator-menu .dropdown-item.active{color:var(--dg-dropdown-item-active-color);background:var(--dg-dropdown-item-active-bg)}.ngb-datagrid-floating-panel.dropdown-menu .dropdown-item{padding:.5rem .85rem;font-size:.8125rem;font-weight:600;color:var(--dg-text)}.ngb-datagrid-floating-panel.dropdown-menu .dropdown-item:hover{background:var(--dg-surface-subtle)}.ngb-datagrid-floating-panel.grid-filter-menu-popover{min-width:18rem;padding:0}.ngb-datagrid-floating-panel .grid-filter-menu-surface{display:block;min-width:18rem;padding:1rem;border-radius:var(--dg-radius-md);background:var(--dg-surface)}.ngb-datagrid-floating-panel .grid-filter-menu-surface__header{margin-bottom:.875rem}.ngb-datagrid-floating-panel .grid-filter-menu-surface__eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--dg-text-muted)}.ngb-datagrid-floating-panel .grid-filter-menu-surface__title{margin-top:.15rem;font-size:.95rem;font-weight:700;color:var(--dg-text)}.ngb-datagrid-floating-panel .grid-filter-stack{display:flex;flex-direction:column;gap:.75rem}.ngb-datagrid-floating-panel .grid-filter-stack__label{font-size:.8125rem;font-weight:600;color:var(--dg-text-muted)}.ngb-datagrid-floating-panel .grid-filter-stack--multi{gap:.65rem}.ngb-datagrid-floating-panel .grid-filter-condition{display:flex;flex-direction:column;gap:.5rem}.ngb-datagrid-floating-panel .grid-filter-operator-select,.ngb-grid .grid-filter-operator-select{width:100%;min-height:var(--dg-control-height);padding:.45rem .65rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface);font-size:.875rem;color:var(--dg-text)}.ngb-datagrid-floating-panel .grid-filter-operator-select--compact,.ngb-grid .grid-filter-operator-select--compact{width:auto;min-width:2.25rem;max-width:2.5rem;padding:.35rem .25rem;font-size:0}.ngb-datagrid-floating-panel .grid-filter-logic-select,.ngb-grid .grid-filter-logic-select{display:flex;justify-content:center;margin:.15rem 0}.ngb-datagrid-floating-panel .grid-filter-logic-select select,.ngb-grid .grid-filter-logic-select select{width:auto;min-width:4.5rem;min-height:1.75rem;padding:.2rem 1.5rem .2rem .65rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface);font-size:.8125rem;font-weight:600;color:var(--dg-text);text-align:center}.ngb-datagrid-floating-panel .grid-filter-menu-surface__actions--split,.ngb-grid .grid-filter-menu-surface__actions--split{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.ngb-datagrid-floating-panel .grid-filter-apply--secondary,.ngb-datagrid-floating-panel .grid-filter-cancel--secondary,.ngb-grid .grid-filter-apply--secondary,.ngb-grid .grid-filter-cancel--secondary{width:100%;border:1px solid var(--dg-border-strong);background:var(--dg-surface-muted);color:var(--dg-text);font-weight:600}.ngb-datagrid-floating-panel .grid-filter-apply--secondary:hover,.ngb-datagrid-floating-panel .grid-filter-cancel--secondary:hover,.ngb-grid .grid-filter-apply--secondary:hover,.ngb-grid .grid-filter-cancel--secondary:hover{background:var(--dg-surface-subtle)}.ngb-datagrid-floating-panel .grid-filter-multi-panel,.ngb-grid .grid-filter-multi-panel{display:flex;flex-direction:column;gap:.5rem;min-width:16.5rem}.ngb-datagrid-floating-panel .grid-filter-join-select,.ngb-grid .grid-filter-join-select{display:inline-block;width:fit-content;max-width:100%;margin:.1rem 0}.ngb-datagrid-floating-panel .grid-filter-join-select__control,.ngb-grid .grid-filter-join-select__control{width:100%;min-height:1.75rem;padding:.2rem 1.25rem .2rem .5rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface);font-size:.8125rem;font-weight:600;text-align:left}.ngb-datagrid-floating-panel .grid-filter-field{position:relative;width:100%;min-width:0}.ngb-datagrid-floating-panel .grid-filter-field--with-icon .grid-filter-control,.ngb-datagrid-floating-panel .grid-filter-field--with-icon .grid-filter-value-input{padding-right:2.25rem}.ngb-datagrid-floating-panel .grid-filter-field__icon{position:absolute;right:.8rem;top:50%;transform:translateY(-50%);color:var(--dg-placeholder);pointer-events:none}.ngb-datagrid-floating-panel .grid-filter-control,.ngb-datagrid-floating-panel .grid-filter-value-input,.ngb-datagrid-floating-panel .grid-filter-value-select,.ngb-grid .grid-filter-value-input,.ngb-grid .grid-filter-value-select{width:100%;min-height:var(--dg-control-height);padding:.45rem .65rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface);color:var(--dg-text);font-size:.875rem}.ngb-datagrid-floating-panel .grid-filter-apply--secondary:disabled,.ngb-datagrid-floating-panel .grid-filter-cancel--secondary:disabled,.ngb-grid .grid-filter-apply--secondary:disabled,.ngb-grid .grid-filter-cancel--secondary:disabled{opacity:var(--ngb-disabled-opacity, .45);cursor:not-allowed}.ngb-datagrid-floating-panel .grid-filter-condition__join{margin:.15rem 0;font-size:.75rem;font-weight:700;color:var(--dg-text-muted);text-align:center}.ngb-datagrid-floating-panel .grid-filter-stack__footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.ngb-datagrid-floating-panel .grid-filter-operator__button{padding:.55rem .8rem;font-size:.8125rem;font-weight:600;color:var(--dg-text-muted);border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface)}.ngb-datagrid-floating-panel .grid-filter-clear,.ngb-datagrid-floating-panel .grid-filter-apply,.ngb-datagrid-floating-panel .grid-filter-cancel{padding:.5rem .85rem;font-size:.8125rem;font-weight:600;border-radius:var(--dg-radius-sm)}.ngb-datagrid-floating-panel .grid-filter-apply{border:1px solid var(--dg-primary);background:var(--dg-primary);color:var(--dg-on-primary)}.ngb-datagrid-floating-panel .grid-filter-cancel,.ngb-datagrid-floating-panel .grid-filter-clear{border:1px solid var(--dg-border-strong);background:var(--dg-surface);color:var(--dg-text)}.ngb-datagrid-floating-panel .grid-filter-menu-surface__actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--dg-border)}.ngb-datagrid-floating-panel .grid-filter-menu-surface__multi{display:flex;flex-direction:column;gap:.5rem;width:100%;min-width:16rem}.ngb-datagrid-floating-panel .grid-filter-menu-surface__search{border:1px solid var(--dg-border);border-radius:var(--dg-radius-md);min-height:2rem;padding:.4rem .65rem;font-size:.8125rem;width:100%}.ngb-datagrid-floating-panel .grid-multi-filter-list{max-height:11.5rem;overflow:auto;border-top:1px solid var(--dg-border);border-bottom:1px solid var(--dg-border)}.ngb-datagrid-floating-panel .grid-multi-filter-option{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:.45rem .75rem;font-size:.8125rem;font-weight:600;color:var(--dg-text);cursor:pointer}.ngb-datagrid-floating-panel .grid-multi-filter-option__main{display:flex;align-items:center;gap:.5rem}.ngb-datagrid-floating-panel .grid-filter-menu-surface__actions--multi{justify-content:space-between}.ngb-datagrid-floating-panel[data-theme=bootstrap].dropdown-menu .dropdown-item{font-weight:400}.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-operator-select,.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-value-input,.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-value-select,.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-menu-surface__search,.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-join-select__control{border-radius:var(--ngb-radius-md, var(--bs-border-radius, var(--dg-radius-sm)))}ngb-datagrid{display:block}.ngb-grid{color:var(--dg-text);font-family:var(--ngb-font-family, inherit);--dg-group-sticky-row-height: 3rem}.ngb-grid.ngb-grid--compact{--dg-group-sticky-row-height: 2.5rem}.ngb-grid .table{margin-bottom:0}.ngb-grid .datagrid-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.ngb-grid .datagrid-toolbar__search{flex:1 1 20rem;min-width:16rem}.ngb-grid .datagrid-toolbar__search-label{display:block;margin-bottom:.35rem;font-size:.875rem;font-weight:500;color:var(--dg-text-muted)}.ngb-grid .datagrid-toolbar__search-shell{display:flex;align-items:center;gap:.625rem;min-height:calc(var(--dg-control-height) + 4px);padding:0 .875rem;border:1px solid var(--dg-border);border-radius:999px;background:var(--dg-surface);box-shadow:var(--dg-shadow-sm)}.ngb-grid .datagrid-toolbar__search-icon{color:var(--dg-text-muted)}.ngb-grid .datagrid-toolbar__search-input{flex:1 1 auto;width:100%;min-width:0;border:0;background:transparent;color:var(--dg-text);outline:none;font-size:.95rem;padding:.625rem 0}.ngb-grid .datagrid-toolbar__search-input::placeholder{color:var(--dg-placeholder)}.ngb-grid .datagrid-toolbar__actions{display:flex;align-items:center;justify-content:flex-end;gap:.625rem;flex-wrap:wrap}.ngb-grid .datagrid-toolbar__button,.ngb-grid .grid-row-action,.ngb-grid .grid-filter-apply,.ngb-grid .grid-filter-clear,.ngb-grid .grid-filter-cancel,.ngb-grid .grid-filter-operator__button,.ngb-grid .grid-filter-menu-trigger,.ngb-grid .grid-detail-toggle{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:var(--dg-control-height);border-radius:var(--dg-radius-md);border:1px solid var(--dg-border);background:var(--dg-surface);color:var(--dg-text);box-shadow:none;font:inherit;text-decoration:none;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease}.ngb-grid .datagrid-toolbar__button:hover,.ngb-grid .grid-row-action:hover,.ngb-grid .grid-filter-apply:hover,.ngb-grid .grid-filter-clear:hover,.ngb-grid .grid-filter-cancel:hover,.ngb-grid .grid-filter-operator__button:hover,.ngb-grid .grid-filter-menu-trigger:hover,.ngb-grid .grid-detail-toggle:hover{border-color:var(--dg-border-strong);background:var(--dg-surface-subtle);color:var(--dg-text);text-decoration:none}.ngb-grid .datagrid-toolbar__button:focus-visible,.ngb-grid .grid-row-action:focus-visible,.ngb-grid .grid-filter-apply:focus-visible,.ngb-grid .grid-filter-clear:focus-visible,.ngb-grid .grid-filter-cancel:focus-visible,.ngb-grid .grid-filter-operator__button:focus-visible,.ngb-grid .grid-filter-menu-trigger:focus-visible,.ngb-grid .grid-detail-toggle:focus-visible,.ngb-grid .grid-sort-button:focus-visible,.ngb-grid .grid-edit-control:focus-visible,.ngb-grid .grid-filter-control:focus-visible,.ngb-grid .datagrid-toolbar__search-input:focus-visible{outline:none;border-color:var(--dg-focus-border);box-shadow:var(--dg-focus-shadow)}.ngb-grid .datagrid-toolbar__button{padding:.625rem 1rem;font-size:.875rem;font-weight:400}.ngb-grid .datagrid-toolbar__button--primary{border-color:var(--dg-primary);background:var(--dg-primary);color:var(--dg-on-primary)}.ngb-grid .datagrid-toolbar__button--primary:hover{background:var(--dg-primary-hover);border-color:var(--dg-primary-hover);color:var(--dg-on-primary)}.ngb-grid .datagrid-toolbar__button--secondary{background:var(--dg-surface);color:var(--dg-text)}.ngb-grid .ngb-grid__group-panel{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;min-height:3.25rem;margin-bottom:.9rem;padding:.75rem .9rem;border:1px dashed var(--dg-border-strong);border-radius:var(--dg-radius-md);background:color-mix(in srgb,var(--dg-surface-muted) 72%,white);transition:border-color .12s ease,background-color .12s ease,box-shadow .12s ease}.ngb-grid .ngb-grid__group-panel--active{border-color:var(--dg-primary);background:color-mix(in srgb,var(--dg-primary-soft) 45%,white);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--dg-primary) 22%,transparent)}.ngb-grid .ngb-grid__group-panel--denied{border-color:var(--dg-danger, #dc3545);background:color-mix(in srgb,var(--dg-danger, #dc3545) 8%,var(--dg-surface))}.ngb-grid .ngb-grid__group-panel-label{font-size:.875rem;font-weight:600;color:var(--dg-text-muted)}.ngb-grid .ngb-grid__group-chip-list{display:inline-flex;align-items:center;gap:.55rem;flex-wrap:wrap}.ngb-grid .ngb-grid__group-chip{display:inline-flex;align-items:center;gap:.25rem;border:1px solid color-mix(in srgb,var(--dg-primary) 26%,var(--dg-border));border-radius:999px;background:var(--dg-surface);box-shadow:var(--dg-shadow-sm)}.ngb-grid .ngb-grid__group-chip-button,.ngb-grid .ngb-grid__group-chip-remove{display:inline-flex;align-items:center;gap:.4rem;min-height:2rem;border:0;background:transparent;color:var(--dg-text)}.ngb-grid .ngb-grid__group-chip-button{padding:.35rem .55rem .35rem .8rem;font-size:.8125rem;font-weight:600}.ngb-grid .ngb-grid__group-chip-remove{padding:.35rem .75rem .35rem .15rem;color:var(--dg-text-muted)}.ngb-grid .ngb-grid__group-chip-button:hover,.ngb-grid .ngb-grid__group-chip-remove:hover{color:var(--dg-primary)}.ngb-grid .ngb-grid__group-chip-button:focus-visible,.ngb-grid .ngb-grid__group-chip-remove:focus-visible,.ngb-grid .grid-column-group-handle:focus-visible,.ngb-grid .grid-group-row__toggle:focus-visible{outline:none;box-shadow:var(--dg-focus-shadow);border-radius:999px}.ngb-grid .ngb-grid__group-chip-dir{font-size:.8rem;color:var(--dg-primary)}.ngb-grid .table-wrapper{position:relative;overflow-x:hidden;overflow-y:clip;border:var(--dg-table-border-width) solid var(--dg-border);border-radius:var(--dg-radius-lg);background:var(--dg-surface);box-shadow:var(--dg-shadow-sm);isolation:isolate}.ngb-grid .table-body-scroll{max-height:24rem;overflow-y:auto;overflow-x:auto;border-top:1px solid var(--dg-border);border-bottom:1px solid var(--dg-border);scrollbar-gutter:stable both-edges;position:relative;z-index:0}.ngb-grid .ngb-grid__group-sticky-layer{position:absolute;inset-inline-start:0;z-index:35;min-width:100%;pointer-events:none}.ngb-grid .ngb-grid__group-sticky-layer--top,.ngb-grid .ngb-grid__group-sticky-layer--bottom{top:0}.ngb-grid .grid-group-sticky-table{min-width:100%;pointer-events:auto}.ngb-grid .grid-table{width:max-content;min-width:100%;table-layout:fixed;margin:0;border-collapse:separate;border-spacing:0}.ngb-grid.ngb-grid--resizable .grid-table{min-width:0;width:max-content}.ngb-grid.ngb-grid--resizable .grid-table th,.ngb-grid.ngb-grid--resizable .grid-table td{box-sizing:border-box}.ngb-grid .grid-header-shell{position:relative;z-index:20;overflow:hidden}.ngb-grid .grid-header{position:relative;z-index:20;overflow:visible}.ngb-grid .grid-header thead tr:first-child th:first-child{border-top-left-radius:var(--dg-radius-lg)}.ngb-grid .grid-header thead tr:first-child th:last-child{border-top-right-radius:var(--dg-radius-lg)}.ngb-grid .grid-header thead th{background:var(--dg-surface-muted);border-bottom:var(--dg-table-border-width) solid var(--dg-border);color:var(--dg-text);font-size:var(--dg-font-size-header);font-weight:600;text-transform:none;letter-spacing:.01em;overflow:visible}.ngb-grid .grid-table th,.ngb-grid .grid-table td{vertical-align:middle;border-bottom:var(--dg-table-border-width) solid var(--dg-border);padding:var(--dg-cell-padding-y) var(--dg-cell-padding-x);font-size:var(--dg-font-size-cell)}.ngb-grid .grid-table th{padding:var(--dg-header-padding-y) var(--dg-header-padding-x)}.ngb-grid .grid-table td{height:var(--ngb-density-row-height, auto);background:var(--dg-surface);color:var(--dg-text);font-weight:400}.ngb-grid .grid-table th{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ngb-grid .grid-header .grid-table th{overflow:visible}.ngb-grid .grid-header thead tr:first-child th.grid-header__column--resizable{position:relative}.ngb-grid .grid-column-resize-handle{position:absolute;top:0;right:0;width:.45rem;height:100%;cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none;z-index:3}.ngb-grid .grid-column-resize-handle:after{content:\"\";position:absolute;top:.35rem;bottom:.35rem;right:.1rem;width:2px;border-radius:1px;background:var(--dg-border-strong);opacity:0;transition:opacity .15s ease}.ngb-grid .grid-header__column--resizable:hover .grid-column-resize-handle:after,.ngb-grid .grid-column-resize-handle:focus-visible:after{opacity:1}body.ngb-datagrid-column-resizing{cursor:col-resize!important;-webkit-user-select:none;user-select:none}.ngb-grid.ngb-grid--column-reorderable .grid-header thead tr:first-child th.grid-header__column--reorderable{position:relative}.ngb-grid .grid-column-reorder-handle{flex:0 0 auto;margin-right:.15rem;padding:.1rem .18rem;border-radius:999px;color:var(--dg-text-muted);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;opacity:.82;line-height:1;font-size:.95rem}.ngb-grid .grid-header__column--reorderable:hover .grid-column-reorder-handle,.ngb-grid .grid-column-reorder-handle:focus-visible{opacity:1;background:color-mix(in srgb,var(--dg-accent) 12%,transparent)}.ngb-grid .grid-column-group-handle{flex:0 0 auto;padding:.15rem .25rem;border-radius:999px;color:var(--dg-text-muted);cursor:grab;-webkit-user-select:none;user-select:none;line-height:1;font-size:.9rem}.ngb-grid .grid-column-group-handle--active,.ngb-grid .grid-column-group-handle:hover{color:var(--dg-primary);background:color-mix(in srgb,var(--dg-primary-soft) 55%,transparent)}.ngb-grid .grid-header__column--drag-over{background:color-mix(in srgb,var(--dg-accent) 12%,transparent);box-shadow:inset 0 -2px 0 var(--dg-accent)}.ngb-grid .grid-header__cell{display:flex;align-items:center;justify-content:space-between;gap:.625rem;width:100%;overflow:visible}.ngb-grid .grid-sort-button{display:inline-flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left}.ngb-grid .grid-sort-button__label{min-width:0;overflow:hidden;text-overflow:ellipsis}.ngb-grid .grid-sort-button__indicator{flex:0 0 auto;font-size:.8rem;color:var(--dg-placeholder)}.ngb-grid .grid-sort-button__indicator--active{color:var(--dg-primary)}.ngb-grid .grid-filter-menu-host{position:relative;display:inline-flex;flex:0 0 auto;z-index:30}.ngb-grid .grid-filter-menu-popover:not(.ngb-datagrid-floating-panel){position:absolute;top:calc(100% + .5rem);right:0;z-index:120}.ngb-grid .grid-filter-menu-popover .grid-filter-menu-surface{position:static;top:auto;right:auto}.ngb-grid .grid-filter-menu-trigger{min-width:var(--dg-control-height);width:var(--dg-control-height);height:var(--dg-control-height);padding:0}.ngb-grid .grid-filter-menu-trigger--active,.ngb-grid .filter-menu-active .grid-filter-menu-trigger{border-color:var(--dg-focus-border);background:var(--dg-primary-soft);color:var(--dg-primary)}.ngb-grid .grid-filter-menu-trigger--check .bi{color:var(--dg-placeholder)}.ngb-grid .grid-filter-menu-trigger--check.grid-filter-menu-trigger--active,.ngb-grid .filter-menu-active .grid-filter-menu-trigger--check{border-color:var(--dg-focus-border);background:var(--dg-primary-soft);color:var(--dg-primary)}.ngb-grid .grid-filter-menu-trigger--check.grid-filter-menu-trigger--active .bi,.ngb-grid .filter-menu-active .grid-filter-menu-trigger--check .bi{color:var(--dg-primary)}.ngb-grid .grid-filter-menu-surface{position:absolute;top:calc(100% + .5rem);right:0;min-width:18rem;padding:1rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-md);background:var(--dg-surface);box-shadow:var(--dg-shadow-md);z-index:120}.ngb-grid .grid-filter-menu-surface__header{margin-bottom:.875rem}.ngb-grid .grid-filter-menu-surface__eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--dg-text-subtle)}.ngb-grid .grid-filter-menu-surface__title{margin-top:.15rem;font-size:.95rem;font-weight:700;color:var(--dg-text)}.ngb-grid .grid-filter-stack{display:flex;flex-direction:column;gap:.75rem}.ngb-grid .grid-filter-stack--multi{gap:.65rem}.ngb-grid .grid-filter-operator-select{width:100%;min-height:var(--dg-control-height);padding:.45rem .65rem;border:1px solid var(--dg-border);border-radius:var(--ngb-radius-md, .375rem);background:var(--dg-surface);font-size:.875rem;color:var(--dg-text)}.ngb-grid .grid-filter-operator-select--compact{width:auto;min-width:2.25rem;max-width:3.5rem;padding:.35rem .25rem;font-size:.6875rem}.ngb-grid .grid-filter-logic-select{display:flex;justify-content:center;margin:.15rem 0}.ngb-grid .grid-filter-logic-select select{width:auto;min-width:4.5rem;min-height:1.75rem;padding:.2rem 1.5rem .2rem .65rem;border:1px solid var(--dg-border);border-radius:var(--ngb-radius-md, .375rem);background:var(--dg-surface);font-size:.8125rem;font-weight:600}.ngb-grid .grid-filter-menu-surface__actions--split{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.ngb-grid .grid-filter-apply--secondary,.ngb-grid .grid-filter-cancel--secondary{width:100%;border:1px solid var(--dg-border-strong);background:var(--dg-surface-muted);color:var(--dg-text);font-weight:600}.ngb-grid .grid-filter-apply--secondary:hover,.ngb-grid .grid-filter-cancel--secondary:hover{background:var(--dg-surface-subtle)}.ngb-grid .grid-filter-multi-panel{display:flex;flex-direction:column;gap:.5rem;min-width:16.5rem}.ngb-grid .grid-filter-join-select{display:inline-block;width:fit-content;max-width:100%;margin:.1rem 0}.ngb-grid .grid-filter-join-select__control{width:100%;min-height:1.75rem;padding:.2rem 1.25rem .2rem .5rem;border:1px solid var(--dg-border);border-radius:var(--ngb-radius-md, .375rem);background:var(--dg-surface);font-size:.8125rem;font-weight:600;text-align:left}.ngb-grid .grid-filter-value-input,.ngb-grid .grid-filter-value-select{width:100%;min-height:var(--dg-control-height);padding:.45rem .65rem;border:1px solid var(--dg-border);border-radius:var(--ngb-radius-md, .375rem);background:var(--dg-surface);font-size:.875rem}.ngb-grid .grid-filter-apply--secondary:disabled,.ngb-grid .grid-filter-cancel--secondary:disabled{opacity:var(--ngb-disabled-opacity, .45);cursor:not-allowed}.ngb-grid .grid-group-row td,.ngb-grid .grid-group-footer-row td{background:color-mix(in srgb,var(--dg-surface-muted) 88%,white);border-bottom:1px solid var(--dg-border)}.ngb-grid .grid-group-row--overlay td{box-shadow:inset 0 -1px 0 var(--dg-border),0 1px color-mix(in srgb,var(--dg-border) 36%,transparent)}.ngb-grid .grid-group-footer-row--overlay td{box-shadow:inset 0 1px 0 var(--dg-border),0 -1px color-mix(in srgb,var(--dg-border) 36%,transparent)}.ngb-grid .grid-group-row__cell{padding:0;vertical-align:top}.ngb-grid .grid-group-footer-row__cell,.ngb-grid .grid-group-row__utility-cell{padding:.7rem .75rem;vertical-align:top}.ngb-grid .grid-group-row__toggle{display:flex;align-items:center;gap:.55rem;width:100%;padding:.7rem 1rem;border:0;background:transparent;color:var(--dg-text);text-align:left;font-size:.875rem;font-weight:600}.ngb-grid .grid-group-row__cell--lead .grid-group-row__toggle{padding-inline-end:.75rem}.ngb-grid .grid-group-row__toggle:hover{background:color-mix(in srgb,var(--dg-primary-soft) 34%,transparent)}.ngb-grid .grid-group-row__content{display:inline-flex;align-items:center;gap:.5rem;min-width:0}.ngb-grid .grid-group-row__label{color:var(--dg-text)}.ngb-grid .grid-group-row__count{font-size:.75rem;font-weight:700;color:var(--dg-text-muted)}.ngb-grid .grid-group-row__column-slot{padding:.25rem .75rem .75rem;font-size:.8125rem;color:var(--dg-text-muted)}.ngb-grid .grid-group-row__cell--lead .grid-group-row__column-slot{padding-inline-start:2.75rem}.ngb-grid .grid-group-footer-row td{background:color-mix(in srgb,var(--dg-surface-muted) 94%,white)}.ngb-grid .grid-filter-menu-popover .grid-filter-menu-surface:has(.grid-filter-menu-surface__multi){width:16.25rem;max-width:min(16.25rem,92vw);padding:.75rem}.ngb-grid .grid-filter-menu-surface__multi{display:flex;flex-direction:column;gap:.5rem;width:100%}.ngb-grid .grid-filter-menu-surface__multi .grid-filter-menu-surface__search{border-radius:.5rem;min-height:2rem;padding:.4rem .65rem;font-size:.8125rem}.ngb-grid .grid-multi-filter-list{max-height:11.5rem;overflow:auto;margin:0 -.75rem;padding:.15rem 0;border-top:1px solid var(--dg-border);border-bottom:1px solid var(--dg-border)}.ngb-grid .grid-multi-filter-option{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:.45rem .75rem;font-size:.8125rem;font-weight:600;color:var(--dg-text);cursor:pointer}.ngb-grid .grid-multi-filter-option+.grid-multi-filter-option{border-top:1px solid var(--dg-filter-divider)}.ngb-grid .grid-multi-filter-option--summary{font-weight:700}.ngb-grid .grid-multi-filter-option__main{display:inline-flex;align-items:center;gap:.75rem;min-width:0}.ngb-grid .grid-multi-filter-option__main input{width:1rem;height:1rem;margin:0;accent-color:var(--dg-primary);flex:0 0 auto}.ngb-grid .grid-multi-filter-option__count{font-size:.75rem;font-weight:700;color:var(--dg-text-muted)}.ngb-grid .grid-filter-stack__label{font-size:.8125rem;font-weight:600;color:var(--dg-text-muted)}.ngb-grid .grid-filter-stack__footer,.ngb-grid .grid-filter-menu-surface__actions{display:flex;align-items:center;justify-content:space-between;gap:.625rem}.ngb-grid .grid-filter-inline{display:flex;align-items:center;gap:.45rem;min-width:0;width:100%}.ngb-grid .grid-filter-field{position:relative;min-width:12rem;flex:1 1 auto}.ngb-grid .grid-filter-field--with-icon .grid-filter-control{padding-right:2.25rem}.ngb-grid .grid-filter-field__icon{position:absolute;right:.8rem;top:50%;transform:translateY(-50%);color:var(--dg-placeholder);pointer-events:none}.ngb-grid .grid-filter-control,.ngb-grid .grid-edit-control{width:100%;min-width:0;min-height:var(--dg-control-height);padding:.5rem .75rem;border:1px solid var(--dg-border);border-radius:var(--ngb-radius-md, .3rem);background:var(--dg-surface);color:var(--dg-text);font-size:.875rem}.ngb-grid .grid-edit-checkbox{width:1rem;height:1rem;margin-top:0}.ngb-grid .grid-filter-operator{position:relative;flex:0 0 auto}.ngb-grid .grid-filter-operator__button{padding:.55rem .8rem;font-size:.8125rem;font-weight:600;color:var(--dg-text-muted)}.ngb-grid .grid-filter-operator__button--compact{min-width:var(--dg-control-height);width:var(--dg-control-height);padding:0}.ngb-grid .grid-filter-operator__button--active{border-color:var(--dg-primary);color:var(--dg-primary)}.ngb-grid .grid-filter-operator .dropdown-menu:not(.ngb-datagrid-floating-panel){position:absolute;inset:calc(100% + .35rem) 0 auto auto;min-width:12rem;margin:0;border-radius:.9rem;border-color:var(--dg-border);box-shadow:var(--dg-shadow-md);z-index:120}.ngb-grid .grid-filter-clear{padding:.55rem .8rem;font-size:.8125rem;color:var(--dg-text-muted)}.ngb-grid .grid-filter-apply{padding:.625rem .95rem;border-color:var(--dg-primary);background:var(--dg-primary);color:var(--dg-on-primary);font-size:.875rem;font-weight:600}.ngb-grid .grid-filter-apply:hover{border-color:var(--dg-primary-active);background:var(--dg-primary-active);color:var(--dg-on-primary)}.ngb-grid .grid-filter-menu-surface__actions--multi{justify-content:space-between;margin-top:.35rem}.ngb-grid .grid-filter-menu-surface__multi .grid-filter-apply{min-width:5.25rem;padding:.5rem 1.15rem;font-size:.8125rem}.ngb-grid .grid-filter-cancel{padding:.5rem .85rem;font-size:.8125rem;font-weight:600;color:var(--dg-text);border:1px solid var(--dg-border-strong);background:var(--dg-surface)}.ngb-grid .grid-filter-cancel:hover{border-color:var(--dg-border-strong);background:var(--dg-surface-subtle);color:var(--dg-text)}.ngb-grid .filter-row th{background:var(--dg-surface-filter-row);padding-top:.625rem;padding-bottom:.625rem;overflow:visible;position:relative;z-index:25}.ngb-grid.ngb-grid--menu-open .filter-row th{z-index:85}.ngb-grid .column-pinned-start,.ngb-grid .column-pinned-end{position:sticky;background:inherit;z-index:2}.ngb-grid .grid-header .column-pinned-start,.ngb-grid .grid-header .column-pinned-end{z-index:6}.ngb-grid .column-pinned-start{box-shadow:var(--dg-pin-shadow-start)}.ngb-grid .column-pinned-start:has(+.column-pinned-start){box-shadow:none}.ngb-grid .column-pinned-end{box-shadow:var(--dg-pin-shadow-end)}.ngb-grid .column-locked{background:var(--dg-locked-bg)}.ngb-grid .sticky-row,.ngb-grid .sticky-row td{background:var(--dg-surface-sticky-row);box-shadow:inset 0 0 0 1px var(--dg-sticky-border)}.ngb-grid .sticky-row{position:sticky;z-index:4}.ngb-grid .grid-sticky-badge{display:inline-flex;align-items:center;margin-left:.45rem;padding:.12rem .4rem;border-radius:.25rem;background:var(--dg-sticky-badge-bg);color:var(--dg-sticky-badge-text);font-size:.62rem;font-weight:800;letter-spacing:.04em;vertical-align:middle}.ngb-grid .grid-row-action--icon{min-width:2.05rem;width:2.05rem;height:2.05rem;min-height:2.05rem;padding:0;border-radius:var(--dg-radius-md)}.ngb-grid .grid-row-action--edit-icon{border-color:var(--dg-primary);background:var(--dg-primary);color:var(--dg-on-primary)}.ngb-grid .grid-row-action--edit-icon:hover{border-color:var(--dg-primary-hover);background:var(--dg-primary-hover);color:var(--dg-on-primary)}.ngb-grid.ngb-grid--zebra .grid-body tbody tr:nth-child(2n):not(.sticky-row):not(.row-selected) td{background:var(--dg-row-even-bg, var(--dg-surface-muted))}.ngb-grid:not(.ngb-grid--zebra) .grid-body tbody tr:nth-child(odd):not(.sticky-row):not(.row-selected):not(.row-highlight) td{background:var(--dg-row-odd-bg)}.ngb-grid:not(.ngb-grid--zebra) .grid-body tbody tr:nth-child(2n):not(.sticky-row):not(.row-selected):not(.row-highlight) td{background:var(--dg-row-even-bg)}.ngb-grid .grid-body tbody tr.grid-data-row:hover:not(.sticky-row):not(.row-selected):not(.row-highlight) td{background:var(--dg-row-hover-bg)}.ngb-grid .row-selected,.ngb-grid .row-selected td{background:var(--dg-row-selected-bg)}.ngb-grid .row-highlight,.ngb-grid .row-highlight td{background:var(--dg-warning-soft)}.ngb-grid .grid-header th.column-pinned-start,.ngb-grid .grid-header th.column-pinned-end,.ngb-grid .grid-body tbody td.column-pinned-start,.ngb-grid .grid-body tbody td.column-pinned-end{background:var(--dg-surface)}.ngb-grid .grid-header th.column-locked,.ngb-grid .grid-body tbody td.column-locked{background:var(--dg-locked-bg)!important}.ngb-grid .grid-body tbody tr.row-selected td.column-locked{background:var(--dg-row-selected-bg)!important}.ngb-grid .cell-highlight{background:var(--dg-primary-soft)}.ngb-grid .grid-search-highlight{padding:0;border-radius:.15rem;background:var(--dg-sticky-badge-bg);color:inherit;font-weight:inherit}.ngb-grid .grid-detail-toggle{min-width:2rem;width:2rem;height:2rem;padding:0;border-radius:999px}.ngb-grid .grid-cell-content{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis}.ngb-grid .grid-cell-content,.ngb-grid .grid-cell-text{font-weight:400}.ngb-grid .grid-cell--emphasis .grid-cell-content,.ngb-grid .grid-cell--emphasis .grid-cell-text{font-weight:700}.ngb-grid .grid-boolean-pill{display:inline-flex;align-items:center;justify-content:center;min-width:3.5rem;padding:.25rem .55rem;border-radius:999px;background:var(--dg-neutral-pill-bg);color:var(--dg-text-muted);font-size:.75rem;font-weight:700}.ngb-grid .grid-boolean-pill--true{background:var(--dg-success-soft);color:var(--dg-success-text)}.ngb-grid .grid-row-action{padding:.55rem .8rem;font-size:.8125rem;font-weight:600;white-space:nowrap}.ngb-grid .grid-actions-cell{overflow:visible;text-overflow:clip;white-space:normal}.ngb-grid .grid-actions-cell__inner{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;flex-wrap:nowrap}.ngb-grid .grid-row-action--secondary{color:var(--dg-primary);background:var(--dg-primary-soft);border-color:var(--dg-primary-border-subtle)}.ngb-grid .grid-row-action--danger{color:var(--dg-danger-text);background:var(--dg-danger-soft);border-color:var(--dg-danger-border-subtle)}.ngb-grid .grid-row-action--success{color:var(--dg-success-text);background:var(--dg-success-soft);border-color:var(--dg-success-border-subtle)}.ngb-grid .grid-row-action--neutral{color:var(--dg-text-muted);background:var(--dg-locked-bg);border-color:var(--dg-border)}.ngb-grid .grid-detail-row__cell{padding:0;background:var(--dg-detail-row-bg)}.ngb-grid .grid-detail-row__content{padding:1rem 1.25rem}.ngb-grid.ngb-grid--compact .grid-table th,.ngb-grid.ngb-grid--compact .grid-table td{padding:.55rem .65rem}.ngb-grid.ngb-grid--compact .datagrid-toolbar__button,.ngb-grid.ngb-grid--compact .grid-row-action,.ngb-grid.ngb-grid--compact .grid-filter-apply,.ngb-grid.ngb-grid--compact .grid-filter-clear,.ngb-grid.ngb-grid--compact .grid-filter-operator__button,.ngb-grid.ngb-grid--compact .grid-filter-menu-trigger,.ngb-grid.ngb-grid--compact .grid-detail-toggle,.ngb-grid.ngb-grid--compact .grid-filter-control,.ngb-grid.ngb-grid--compact .grid-edit-control{min-height:32px;font-size:.8125rem}.ngb-grid .grid-row--reorderable{cursor:grab}.ngb-grid .grid-row--reorderable.ngb-dnd-dragging{cursor:grabbing;opacity:.82}.ngb-grid .ngb-dnd-placeholder{display:table-row;background:transparent}.ngb-grid tbody.ngb-dnd-list,.ngb-grid tbody.ngb-dnd-list.ngb-dnd-over[data-drop-valid=true],.ngb-grid tbody.ngb-dnd-list.ngb-dnd-over[data-drop-valid=false]{border:0;border-radius:0;background:transparent;box-shadow:none}.ngb-grid .ngb-dnd-placeholder>td{padding:0;border:0;background:transparent}.ngb-grid .ngb-dnd-placeholder__bar{display:block;height:.35rem;background:var(--dg-primary-selection-overlay)}.ngb-grid.ngb-grid--stacked .grid-header-shell,.ngb-grid.ngb-grid--stacked .grid-header{display:none}.ngb-grid.ngb-grid--stacked .table-wrapper{width:100%}.ngb-grid.ngb-grid--stacked .table-body-scroll{width:100%;max-height:none;overflow:visible;border-top:0;border-bottom:0}.ngb-grid.ngb-grid--stacked .grid-table.grid-body{width:100%;min-width:0;max-width:100%;table-layout:auto}.ngb-grid.ngb-grid--stacked .grid-table.grid-body colgroup{display:none}.ngb-grid.ngb-grid--stacked .grid-table.grid-body tbody{display:block;width:100%}.ngb-grid.ngb-grid--menu-open .grid-header-shell,.ngb-grid.ngb-grid--row-operator-open .grid-header-shell,.ngb-grid.ngb-grid--row-operator-open .filter-row th{overflow:visible}.ngb-grid.ngb-grid--menu-open .grid-header-shell,.ngb-grid.ngb-grid--menu-open .grid-header{z-index:80}.ngb-grid.ngb-grid--menu-open .grid-header thead th.filter-menu-open{position:relative;z-index:95;overflow:visible}.ngb-grid.ngb-grid--menu-open .grid-filter-menu-host{z-index:90}.ngb-grid__filter-menu-overlay{pointer-events:auto}.ngb-grid__layout-toolbar-host:empty{display:none}.ngb-grid__layout-toolbar-host:not(:empty){border-bottom:1px solid var(--dg-border)}.ngb-grid .table-wrapper{position:relative}.ngb-grid.ngb-grid--loading .table-wrapper{pointer-events:none}.ngb-grid.ngb-grid--loading .table-wrapper .grid-table{opacity:var(--ngb-disabled-opacity, .45)}.ngb-grid__loading-overlay{position:absolute;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;background:var(--dg-loading-overlay);pointer-events:none}.ngb-grid.ngb-grid--stacked .grid-table.grid-body tbody tr{display:grid;width:100%;box-sizing:border-box;grid-template-columns:minmax(0,1fr);gap:.65rem;border-bottom:1px solid var(--dg-border);padding:.9rem 1rem}.ngb-grid.ngb-grid--stacked .grid-table.grid-body tbody td{display:grid;width:100%;min-width:0;box-sizing:border-box;white-space:normal;border-bottom:0;padding:.35rem 0;position:static!important;left:auto!important;right:auto!important}.ngb-grid.ngb-grid--stacked .grid-table.grid-body tbody td:not([data-title]){grid-column:1/-1}.ngb-grid.ngb-grid--stacked:not(.ngb-grid--stacked-cards) .grid-table.grid-body tbody td[data-title]{grid-template-columns:minmax(5.5rem,34%) minmax(0,1fr);align-items:baseline;column-gap:.75rem}.ngb-grid.ngb-grid--stacked:not(.ngb-grid--stacked-cards) .grid-table.grid-body tbody td:before{content:attr(data-title);font-size:.8125rem;font-weight:700;color:var(--dg-text-muted);line-height:1.3}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .grid-table.grid-body tbody tr{display:block;width:100%;padding:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .grid-table.grid-body tbody td.ngb-stacked-card-cell{display:block;width:100%;padding:.9rem 1rem;border-bottom:1px solid var(--dg-border)}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card,.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__layout{width:100%;min-width:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__layout{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem}@media(min-width:40rem){.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__layout{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);align-items:start;column-gap:1.5rem}}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__group{display:flex;flex-direction:column;gap:.85rem;min-width:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__field{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;min-width:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__label{font-size:.8125rem;font-weight:700;color:var(--dg-text-muted);line-height:1.3}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__value{width:100%;min-width:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .grid-table.grid-body tbody td:not([data-title]):not(.ngb-stacked-card-cell){display:block;width:100%;padding:.65rem 1rem 0;border-bottom:0}.ngb-grid[data-theme=material] .datagrid-toolbar__button--primary,.ngb-grid[data-theme=tailwind] .datagrid-toolbar__button--primary,.ngb-grid[data-theme=material] .grid-filter-apply,.ngb-grid[data-theme=tailwind] .grid-filter-apply{border-color:var(--dg-primary);background:var(--dg-primary)}.ngb-grid.ngb-responsive .table{width:100%}@media(max-width:992px){.ngb-grid .grid-filter-inline{min-width:11rem}.ngb-grid .grid-filter-field{min-width:10rem}}@media(max-width:768px){.ngb-grid .datagrid-toolbar{align-items:stretch}.ngb-grid .datagrid-toolbar__actions{justify-content:stretch}.ngb-grid .datagrid-toolbar__button{flex:1 1 auto}.ngb-grid .grid-filter-inline{width:100%}.ngb-grid.ngb-responsive thead{display:none}.ngb-grid.ngb-responsive tbody tr{display:grid;grid-template-columns:1fr;gap:.5rem;border:1px solid var(--dg-border);border-radius:.75rem;padding:.75rem;margin-bottom:.75rem}.ngb-grid.ngb-responsive tbody td{display:grid;grid-template-columns:8rem 1fr}.ngb-grid.ngb-responsive tbody td:before{content:attr(data-title);font-weight:600;opacity:.75;padding-right:.5rem}}.ngb-grid .datagrid-editing-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.75rem 1rem;border:1px solid var(--dg-border);border-bottom:0;border-radius:var(--dg-radius-lg) var(--dg-radius-lg) 0 0;background:var(--dg-surface)}.ngb-grid .datagrid-editing-toolbar__start,.ngb-grid .datagrid-editing-toolbar__end{display:inline-flex;align-items:center;gap:.5rem}.ngb-grid .datagrid-editing-toolbar__save[hidden],.ngb-grid .datagrid-editing-toolbar__cancel[hidden]{display:none!important}.ngb-grid .datagrid-editing-toolbar__hint{flex:1 1 auto;text-align:center;font-size:.875rem;font-weight:600;color:var(--dg-text-muted)}.ngb-grid .grid-cell--incell{cursor:cell}.ngb-grid .grid-cell--incell:not(.grid-cell--editing) .grid-cell-content,.ngb-grid .grid-cell--incell:not(.grid-cell--editing) .grid-cell-content *{pointer-events:none}.ngb-grid .grid-cell--editing .grid-edit-control{border-color:var(--dg-primary);box-shadow:var(--dg-focus-shadow)}.ngb-grid .grid-external-editor{position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;padding:1.5rem}.ngb-grid .grid-external-editor__backdrop{position:absolute;inset:0;border:0;background:var(--dg-backdrop);cursor:pointer}.ngb-grid .grid-external-editor__panel{position:relative;z-index:1;width:min(32rem,100%);max-height:min(90vh,40rem);overflow:auto;padding:1.25rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-lg);background:var(--dg-surface);box-shadow:var(--dg-shadow-md)}.ngb-grid .grid-external-editor__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.ngb-grid .grid-external-editor__title{margin:0;font-size:1.125rem;font-weight:700}.ngb-grid .grid-external-editor__close{border:0;background:transparent;color:var(--dg-text-muted);padding:.25rem;cursor:pointer}.ngb-grid .grid-external-editor__form{display:grid;gap:.85rem}.ngb-grid .grid-external-editor__field{display:grid;gap:.35rem}.ngb-grid .grid-external-editor__label{font-size:.8125rem;font-weight:700;color:var(--dg-text-muted);text-transform:uppercase;letter-spacing:.03em}.ngb-grid .grid-external-editor__error{font-size:.75rem;color:var(--dg-danger)}.ngb-grid .grid-external-editor__actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}.ngb-grid__status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ngb-grid .grid-body td[role=gridcell]:focus-visible,.ngb-grid .grid-body td[role=gridcell].grid-cell--focused{outline:2px solid var(--dg-focus-ring);outline-offset:-2px}.ngb-grid--rtl .grid-column-reorder-handle{transform:scaleX(-1)}.ngb-grid--rtl .column-pinned-start{left:auto;right:var(--dg-pin-start, 0)}.ngb-grid--rtl .column-pinned-end{right:auto;left:var(--dg-pin-end, 0)}.ngb-grid .grid-footer{width:100%;color:var(--dg-pager-text)}.ngb-grid .grid-footer--top{margin-bottom:0;border-bottom:var(--dg-table-border-width) solid var(--dg-border)}.ngb-grid .grid-footer--custom{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgbSyncColgroupDirective, selector: "[ngbSyncColgroup]", inputs: ["ngbSyncColgroup", "syncRole", "syncMode"] }, { kind: "component", type: NgbDatagridToolbarComponent, selector: "ngb-datagrid-toolbar", inputs: ["grid"] }, { kind: "component", type: NgbDatagridEditingToolbarComponent, selector: "ngb-datagrid-editing-toolbar", inputs: ["grid", "selectedCount", "editActive", "saveDisabled"] }, { kind: "component", type: NgbDatagridExternalEditorComponent, selector: "ngb-datagrid-external-editor", inputs: ["grid"] }, { kind: "component", type: NgbDatagridColgroupComponent, selector: "colgroup[ngbDatagridColgroup]", inputs: ["grid"] }, { kind: "component", type: NgbDatagridHeaderComponent, selector: "thead[ngbDatagridHeader]", inputs: ["grid", "renderTick"] }, { kind: "component", type: NgbDatagridFilterMenuPanelComponent, selector: "ngb-datagrid-filter-menu-panel", inputs: ["grid", "col", "anchor"] }, { kind: "component", type: NgbDatagridRowFilterOperatorPanelComponent, selector: "ngb-datagrid-row-filter-operator-panel", inputs: ["grid", "col", "anchor"] }, { kind: "component", type: NgbDatagridAddRowComponent, selector: "tr[ngbDatagridAddRow]", inputs: ["grid"] }, { kind: "component", type: NgbDatagridDataRowComponent, selector: "tr[ngbDatagridDataRow]", inputs: ["grid", "renderTick", "row", "index", "selected"] }, { kind: "component", type: NgbDatagridDetailRowComponent, selector: "tr[ngbDatagridDetailRow]", inputs: ["grid", "row", "index"] }, { kind: "component", type: NgbDatagridFooterComponent, selector: "ngb-datagrid-footer", inputs: ["grid", "placement"] }, { kind: "directive", type: NgbDndListDirective, selector: "[ngbDndList]", inputs: ["dndChildrenKey", "ngbDndList", "dndGroup", "dndDisabled", "dndCloneOnDrop", "dndCloneFn", "dndIsPalette", "dndCanDrop", "dndAriaLabel"], outputs: ["dndDropped"] }, { kind: "directive", type: NgbDndItemDirective, selector: "[ngbDndItem]", inputs: ["ngbDndItem", "dndGroup", "dndIndex", "dndSourceList", "dndDisabled"], outputs: ["dndDragStart", "dndDragEnd"] }], encapsulation: i0.ViewEncapsulation.None });
10553
10527
  }
10554
10528
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: Datagrid, decorators: [{
10555
10529
  type: Component,
@@ -10558,7 +10532,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
10558
10532
  FormsModule,
10559
10533
  ReactiveFormsModule,
10560
10534
  NgbSyncColgroupDirective,
10561
- NgbGridHighlightDirective,
10562
10535
  NgbDatagridToolbarComponent,
10563
10536
  NgbDatagridEditingToolbarComponent,
10564
10537
  NgbDatagridExternalEditorComponent,
@@ -10576,7 +10549,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
10576
10549
  { provide: PdfExportAdapter, useClass: JsPdfAdapter },
10577
10550
  { provide: ExcelExportAdapter, useClass: BrowserExcelExportAdapter },
10578
10551
  { provide: NGB_DATAGRID_HOST, useExisting: forwardRef(() => Datagrid) },
10579
- ], standalone: true, template: "<div\n class=\"ngb-grid\"\n [attr.dir]=\"resolvedDir()\"\n [attr.data-theme]=\"theme\"\n [class.ngb-grid--rtl]=\"isRtl()\"\n [class.ngb-responsive]=\"isResponsiveEnabled()\"\n [class.ngb-grid--compact]=\"densityMode === 'compact'\"\n [class.ngb-grid--stacked]=\"isStackedLayout()\"\n [class.ngb-grid--stacked-cards]=\"isStackedCardsLayout()\"\n [class.ngb-grid--menu-open]=\"!!openFilterMenuField || !!openMenuOperatorField || !!openRowFilterField\"\n [class.ngb-grid--row-operator-open]=\"!!openRowFilterField\"\n [class.ngb-grid--zebra]=\"zebraStripesEnabled\"\n [class.ngb-grid--resizable]=\"resizable && !isStackedLayout()\"\n [class.ngb-grid--column-reorderable]=\"isColumnReorderEnabled()\"\n [class.ngb-grid--loading]=\"loading\"\n [attr.aria-busy]=\"loading ? 'true' : null\"\n [style.--ngb-render-tick]=\"renderTick\"\n>\n <div class=\"ngb-grid__layout-toolbar-host\">\n <ng-content select=\"ngb-datagrid-layout-toolbar\"></ng-content>\n </div>\n <ngb-datagrid-toolbar [grid]=\"gridHost\"></ngb-datagrid-toolbar>\n <ngb-datagrid-editing-toolbar\n [grid]=\"gridHost\"\n [selectedCount]=\"getSelectedCount()\"\n [editActive]=\"isToolbarEditActive()\"\n [saveDisabled]=\"isToolbarSaveDisabled()\"\n ></ngb-datagrid-editing-toolbar>\n\n @if (paginationActive && pagerShowsAt('top')) {\n <ngb-datagrid-footer [grid]=\"gridHost\" placement=\"top\"></ngb-datagrid-footer>\n }\n\n <div\n class=\"ngb-grid__status visually-hidden-focusable\"\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >{{ statusMessage }}</div>\n\n @if (isGroupingEnabled()) {\n <div\n class=\"ngb-grid__group-panel\"\n [class.ngb-grid__group-panel--active]=\"groupPanelDragActive && !groupPanelDragDenied\"\n [class.ngb-grid__group-panel--denied]=\"groupPanelDragDenied\"\n (dragover)=\"onGroupPanelDragOver($event)\"\n (dragleave)=\"onGroupPanelDragLeave($event)\"\n (drop)=\"onGroupPanelDrop($event)\"\n >\n <div class=\"ngb-grid__group-panel-label\">{{ groupPanelLabel() }}</div>\n @if (groupedColumns().length) {\n <div class=\"ngb-grid__group-chip-list\">\n @for (descriptor of groupedColumns(); track descriptor.field) {\n <div class=\"ngb-grid__group-chip\">\n <button\n type=\"button\"\n class=\"ngb-grid__group-chip-button\"\n (click)=\"toggleGroupDirection(descriptor.field)\"\n [attr.aria-label]=\"groupDirectionAriaLabel(descriptor)\"\n >\n <span class=\"ngb-grid__group-chip-label\">{{ groupFieldLabel(descriptor) }}</span>\n <span class=\"ngb-grid__group-chip-dir\">{{ descriptor.dir === 'desc' ? '\u2193' : '\u2191' }}</span>\n </button>\n <button\n type=\"button\"\n class=\"ngb-grid__group-chip-remove\"\n (click)=\"removeGroupField(descriptor.field)\"\n [attr.aria-label]=\"groupRemoveAriaLabel(descriptor)\"\n >\n <span class=\"bi bi-x-lg\" aria-hidden=\"true\"></span>\n </button>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <div class=\"table-wrapper\" [ngClass]=\"responsiveWrapperClasses\">\n @if (loading) {\n <div class=\"ngb-grid__loading-overlay\" role=\"presentation\">\n <div class=\"spinner-border spinner-border-sm text-primary\" role=\"status\">\n <span class=\"visually-hidden\">Loading</span>\n </div>\n </div>\n }\n <div class=\"grid-header-shell\" #headerScroller>\n <table class=\"grid-table grid-header mb-0\" [ngClass]=\"tableClassList\" [style.width.px]=\"tablePixelWidth\">\n @if (tableOptions?.caption) {\n <caption\n [class.caption-top]=\"(tableOptions?.captionSide ?? 'top') === 'top'\"\n >\n {{ tableOptions?.caption }}\n </caption>\n }\n\n <colgroup\n ngbDatagridColgroup\n [grid]=\"gridHost\"\n [ngbSyncColgroup]=\"colgroupSyncId\"\n syncRole=\"header\"\n [syncMode]=\"resizable ? 'explicit' : 'auto'\"\n ></colgroup>\n\n <thead\n class=\"table-light\"\n ngbDatagridHeader\n [grid]=\"gridHost\"\n [renderTick]=\"renderTick\"\n ></thead>\n </table>\n </div>\n\n <div [class.table-body-scroll]=\"shouldEnableScroll\" #bodyScroller (scroll)=\"onBodyHorizontalScroll()\">\n @if (hasStickyGroupHeaders()) {\n <div\n class=\"ngb-grid__group-sticky-layer ngb-grid__group-sticky-layer--top\"\n [style.transform]=\"'translateY(' + stickyGroupHeaderTranslateY + 'px)'\"\n >\n <table\n class=\"grid-table grid-group-sticky-table mb-0\"\n [ngClass]=\"tableClassList\"\n [style.width.px]=\"tablePixelWidth\"\n role=\"presentation\"\n >\n <colgroup>\n @for (width of stickyGroupOverlayColumnWidths; track $index) {\n <col [style.width.px]=\"width || null\" />\n }\n </colgroup>\n <tbody>\n @for (item of stickyGroupHeaderRows; track item.key) {\n <tr class=\"grid-group-row grid-group-row--overlay\">\n @if (showSelectionColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (rowDetailTpl) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (stickyRowsEnabled) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @for (col of visibleColumns; track col.field) {\n @if (shouldRenderGroupCell(col, item.group)) {\n <td\n class=\"grid-group-row__cell\"\n [class.grid-group-row__cell--lead]=\"isGroupLeadColumn(col, item.group)\"\n [attr.colspan]=\"groupCellColspan(col, item.group)\"\n >\n @if (isGroupLeadColumn(col, item.group)) {\n <button\n type=\"button\"\n class=\"grid-group-row__toggle\"\n (click)=\"toggleGroupCollapsed(item.group, item.level, item.startIndex)\"\n [attr.aria-expanded]=\"!item.collapsed\"\n >\n <span\n class=\"bi\"\n [ngClass]=\"item.collapsed ? 'bi-chevron-right' : 'bi-chevron-down'\"\n aria-hidden=\"true\"\n ></span>\n <span class=\"grid-group-row__content\" [style.padding-inline-start.rem]=\"groupRowIndent(item.level)\">\n @if (groupHeaderTpl) {\n <ng-container\n [ngTemplateOutlet]=\"groupHeaderTpl.template\"\n [ngTemplateOutletContext]=\"groupHeaderContext(item.group)\"\n ></ng-container>\n } @else {\n <span class=\"grid-group-row__label\">{{ groupRowLabel(item.group) }}</span>\n <span class=\"grid-group-row__count\">{{ groupRowCountLabel(item.group) }}</span>\n }\n </span>\n </button>\n @if (groupHeaderColumnTemplate(groupColumnField(col)); as tpl) {\n <div class=\"grid-group-row__column-slot\">\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"groupColumnContext(item.group, col)\"\n ></ng-container>\n </div>\n }\n } @else if (groupHeaderColumnTemplate(groupColumnField(col)); as tpl) {\n <div class=\"grid-group-row__column-slot\">\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"groupColumnContext(item.group, col)\"\n ></ng-container>\n </div>\n }\n </td>\n }\n }\n @if (showActionsColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n\n <table\n class=\"grid-table grid-body grid-body--main mb-0\"\n [ngClass]=\"tableClassList\"\n [style.width.px]=\"tablePixelWidth\"\n role=\"grid\"\n [attr.aria-rowcount]=\"ariaRowCount()\"\n [attr.aria-colcount]=\"ariaColCount()\"\n [attr.aria-readonly]=\"enableEdit || enableAdd ? 'false' : 'true'\"\n [attr.aria-label]=\"tableOptions?.caption || null\"\n >\n <colgroup\n ngbDatagridColgroup\n [grid]=\"gridHost\"\n [ngbSyncColgroup]=\"colgroupSyncId\"\n syncRole=\"body\"\n [syncMode]=\"resizable ? 'explicit' : 'auto'\"\n ></colgroup>\n\n <tbody\n [ngbDndList]=\"paged\"\n [dndDisabled]=\"!isRowReorderEnabled()\"\n (dndDropped)=\"onRowDrop($event)\"\n >\n @if (!hasRenderableRows()) {\n <tr class=\"ngb-grid__empty-row\">\n <td [attr.colspan]=\"ariaColCount()\" class=\"ngb-grid__empty text-center text-muted py-4\">\n {{ emptyStateLabel() }}\n </td>\n </tr>\n }\n\n @if (addingNew) {\n <tr\n ngbDatagridAddRow\n [grid]=\"gridHost\"\n [formGroup]=\"addForm\"\n ></tr>\n }\n\n @for (item of renderRows; track item.key) {\n @if (item.kind === 'group') {\n <tr\n class=\"grid-group-row\"\n [attr.data-group-key]=\"item.key\"\n [attr.data-group-level]=\"item.level\"\n >\n @if (showSelectionColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (rowDetailTpl) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (stickyRowsEnabled) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @for (col of visibleColumns; track col.field) {\n @if (shouldRenderGroupCell(col, item.group)) {\n <td\n class=\"grid-group-row__cell\"\n [class.grid-group-row__cell--lead]=\"isGroupLeadColumn(col, item.group)\"\n [attr.colspan]=\"groupCellColspan(col, item.group)\"\n >\n @if (isGroupLeadColumn(col, item.group)) {\n <button\n type=\"button\"\n class=\"grid-group-row__toggle\"\n (click)=\"toggleGroupCollapsed(item.group, item.level, item.startIndex)\"\n [attr.aria-expanded]=\"!item.collapsed\"\n >\n <span\n class=\"bi\"\n [ngClass]=\"item.collapsed ? 'bi-chevron-right' : 'bi-chevron-down'\"\n aria-hidden=\"true\"\n ></span>\n <span class=\"grid-group-row__content\" [style.padding-inline-start.rem]=\"groupRowIndent(item.level)\">\n @if (groupHeaderTpl) {\n <ng-container\n [ngTemplateOutlet]=\"groupHeaderTpl.template\"\n [ngTemplateOutletContext]=\"groupHeaderContext(item.group)\"\n ></ng-container>\n } @else {\n <span class=\"grid-group-row__label\">{{ groupRowLabel(item.group) }}</span>\n <span class=\"grid-group-row__count\">{{ groupRowCountLabel(item.group) }}</span>\n }\n </span>\n </button>\n @if (groupHeaderColumnTemplate(groupColumnField(col)); as tpl) {\n <div class=\"grid-group-row__column-slot\">\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"groupColumnContext(item.group, col)\"\n ></ng-container>\n </div>\n }\n } @else if (groupHeaderColumnTemplate(groupColumnField(col)); as tpl) {\n <div class=\"grid-group-row__column-slot\">\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"groupColumnContext(item.group, col)\"\n ></ng-container>\n </div>\n }\n </td>\n }\n }\n @if (showActionsColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n </tr>\n } @else if (item.kind === 'group-footer') {\n <tr\n class=\"grid-group-footer-row\"\n [attr.data-group-key]=\"item.key\"\n [attr.data-group-level]=\"item.level\"\n >\n @if (showSelectionColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (rowDetailTpl) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (stickyRowsEnabled) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @for (col of visibleColumns; track col.field) {\n <td class=\"grid-group-footer-row__cell\">\n @if (groupFooterTemplate(groupColumnField(col)); as tpl) {\n <div class=\"grid-group-row__column-slot\">\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"groupColumnContext(item.group, col)\"\n ></ng-container>\n </div>\n }\n </td>\n }\n @if (showActionsColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n </tr>\n } @else {\n <tr\n class=\"grid-data-row\"\n ngbDatagridDataRow\n [grid]=\"gridHost\"\n [renderTick]=\"renderTick\"\n [row]=\"item.row\"\n [index]=\"item.pagedIndex\"\n [selected]=\"isRowSelected(item.row, item.pagedIndex)\"\n [ngbDndItem]=\"item.row\"\n [dndIndex]=\"item.pagedIndex\"\n [dndDisabled]=\"!isRowReorderEnabled()\"\n (click)=\"onRowSelect($event, item.pagedIndex); onRowClick($event, item.pagedIndex)\"\n [formGroup]=\"editForm\"\n [class.sticky-row]=\"isRowSticky(item.row, item.pagedIndex)\"\n [class.row-selected]=\"isRowSelected(item.row, item.pagedIndex)\"\n [class.row-highlight]=\"isRowHighlighted(item.row, item.pagedIndex)\"\n [class.grid-row--reorderable]=\"isRowReorderEnabled()\"\n [ngClass]=\"resolveRowClass(item.row, item.pagedIndex)\"\n [ngStyle]=\"resolveRowStyle(item.row, item.pagedIndex)\"\n [attr.aria-selected]=\"isRowSelected(item.row, item.pagedIndex) ? 'true' : null\"\n [style.top.px]=\"stickyTop(item.row, item.pagedIndex)\"\n [style.z-index]=\"isRowSticky(item.row, item.pagedIndex) ? 3 : null\"\n ></tr>\n\n @if (rowDetailTpl && isExpanded(item.pagedIndex)) {\n <tr\n ngbDatagridDetailRow\n [grid]=\"gridHost\"\n [row]=\"item.row\"\n [index]=\"item.pagedIndex\"\n [attr.id]=\"'dg-row-detail-' + item.pagedIndex\"\n ></tr>\n }\n }\n }\n </tbody>\n </table>\n\n @if (hasStickyGroupFooters()) {\n <div\n class=\"ngb-grid__group-sticky-layer ngb-grid__group-sticky-layer--bottom\"\n [style.transform]=\"'translateY(' + stickyGroupFooterTranslateY + 'px)'\"\n >\n <table\n class=\"grid-table grid-group-sticky-table mb-0\"\n [ngClass]=\"tableClassList\"\n [style.width.px]=\"tablePixelWidth\"\n role=\"presentation\"\n >\n <colgroup>\n @for (width of stickyGroupOverlayColumnWidths; track $index) {\n <col [style.width.px]=\"width || null\" />\n }\n </colgroup>\n <tbody>\n @for (item of stickyGroupFooterRows; track item.key) {\n <tr class=\"grid-group-footer-row grid-group-footer-row--overlay\">\n @if (showSelectionColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (rowDetailTpl) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (stickyRowsEnabled) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @for (col of visibleColumns; track col.field) {\n <td class=\"grid-group-footer-row__cell\">\n @if (groupFooterTemplate(groupColumnField(col)); as tpl) {\n <div class=\"grid-group-row__column-slot\">\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"groupColumnContext(item.group, col)\"\n ></ng-container>\n </div>\n }\n </td>\n }\n @if (showActionsColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n </div>\n\n <table class=\"table grid-table grid-foot mb-0\" [style.width.px]=\"tablePixelWidth\">\n <colgroup>\n @for (col of visibleColumns; track col.field) {\n <col [style.width.px]=\"col?.width\" />\n }\n </colgroup>\n <tbody>\n <tr>\n <td [attr.colspan]=\"visibleColumns.length\" width=\"100%\">\n @if (paginationActive && pagerShowsAt('bottom')) {\n <ngb-datagrid-footer [grid]=\"gridHost\" placement=\"bottom\"></ngb-datagrid-footer>\n }\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n @if (externalEditOpen) {\n <ngb-datagrid-external-editor [grid]=\"gridHost\"></ngb-datagrid-external-editor>\n }\n\n @if (openFilterMenuField && openFilterMenuColumn && openFilterMenuAnchor) {\n <ngb-datagrid-filter-menu-panel\n [grid]=\"gridHost\"\n [col]=\"openFilterMenuColumn\"\n [anchor]=\"openFilterMenuAnchor\"\n />\n }\n\n @if (openRowFilterField && openRowFilterColumn && openRowFilterOperatorAnchor) {\n <ngb-datagrid-row-filter-operator-panel\n [grid]=\"gridHost\"\n [col]=\"openRowFilterColumn\"\n [anchor]=\"openRowFilterOperatorAnchor\"\n />\n }\n</div>\n", styles: ["@charset \"UTF-8\";.ngb-grid,.ngb-datagrid-floating-panel{--dg-surface: #ffffff;--dg-surface-muted: #f9fafb;--dg-surface-subtle: #f3f4f6;--dg-surface-config: #edf4ff;--dg-surface-filter-row: #fffbeb;--dg-surface-sticky-row: #fefce8;--dg-border: #d7deea;--dg-border-strong: #cfd6e2;--dg-text: #1f2937;--dg-text-muted: #5b6578;--dg-text-subtle: #64748b;--dg-primary: #315efb;--dg-primary-hover: #2749c4;--dg-primary-active: #1d4ed8;--dg-primary-soft: #dbeafe;--dg-primary-border-subtle: #bfdbfe;--dg-accent: #3b82f6;--dg-on-primary: #ffffff;--dg-placeholder: #94a3b8;--dg-success: #39a949;--dg-success-soft: #dcfce7;--dg-success-text: #166534;--dg-success-border-subtle: #bbf7d0;--dg-danger: #ef4444;--dg-danger-soft: #fee2e2;--dg-danger-text: #b91c1c;--dg-danger-border-subtle: #fecaca;--dg-warning-soft: #fef3c7;--dg-warning-border: #fde68a;--dg-warning-text: #854d0e;--dg-filter-multi-icon: #39a949;--dg-filter-multi-icon-soft: #dcfce7;--dg-neutral-pill-bg: #e2e8f0;--dg-locked-bg: #f8fafc;--dg-row-selected-bg: #eef5ff;--dg-row-hover-bg: #f8fbff;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: #f8fbff;--dg-search-highlight-bg: #fef08a;--dg-sticky-border: #facc15;--dg-sticky-badge-bg: #fef08a;--dg-sticky-badge-text: #854d0e;--dg-dropdown-item-active-bg: var(--dg-primary-soft);--dg-dropdown-item-active-color: var(--dg-primary);--dg-focus-ring: #2563eb;--dg-focus-border: rgba(37, 99, 235, .45);--dg-focus-shadow: 0 0 0 .2rem rgba(37, 99, 235, .15);--dg-pin-shadow-start: 1px 0 0 rgba(15, 23, 42, .08);--dg-pin-shadow-end: -1px 0 0 rgba(15, 23, 42, .08);--dg-backdrop: rgba(15, 23, 42, .45);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(37, 99, 235, .18);--dg-filter-divider: rgba(219, 227, 239, .8);--dg-shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--dg-shadow-md: 0 8px 24px rgba(15, 23, 42, .12);--dg-radius-lg: .5rem;--dg-radius-md: .45rem;--dg-radius-sm: .35rem;--dg-control-height: 2.15rem;--dg-nav-height: 2.5rem;--dg-font-size-header: .92rem;--dg-font-size-cell: .84rem;--dg-font-size-label: .94rem;--dg-cell-padding-y: .75rem;--dg-cell-padding-x: .85rem;--dg-header-padding-y: .75rem;--dg-header-padding-x: .85rem;--dg-table-border-width: 1px;--dg-pager-surface: var(--dg-surface);--dg-pager-text: var(--dg-text-muted);--dg-pager-control-bg: var(--dg-surface);--dg-pager-control-hover-bg: var(--dg-surface-subtle);--dg-pager-control-border: var(--dg-border);--dg-pager-link-text: var(--dg-primary);--dg-pager-active-bg: var(--dg-primary);--dg-pager-active-border: var(--dg-primary);--dg-pager-active-text: var(--dg-on-primary);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\")}.ngb-grid[data-theme=bootstrap],.ngb-datagrid-floating-panel[data-theme=bootstrap]{--dg-surface: var(--bs-body-bg, #ffffff);--dg-surface-muted: var(--bs-tertiary-bg, #f8f9fa);--dg-surface-subtle: var(--bs-secondary-bg, #e9ecef);--dg-surface-config: var(--bs-primary-bg-subtle, #cfe2ff);--dg-surface-filter-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-surface-sticky-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-border: var(--bs-border-color, #dee2e6);--dg-border-strong: var(--bs-border-color-translucent, #ced4da);--dg-text: var(--bs-body-color, #212529);--dg-text-muted: var(--bs-secondary-color, #6c757d);--dg-text-subtle: var(--bs-tertiary-color, #6c757d);--dg-primary: var(--bs-primary, #0d6efd);--dg-primary-hover: var(--bs-link-hover-color, #0a58ca);--dg-primary-active: var(--bs-link-hover-color, #0a58ca);--dg-primary-soft: var(--bs-primary-bg-subtle, #cfe2ff);--dg-primary-border-subtle: var(--bs-primary-border-subtle, #9ec5fe);--dg-accent: var(--bs-primary, #0d6efd);--dg-on-primary: var(--bs-btn-color, #fff);--dg-placeholder: var(--bs-secondary-color, #6c757d);--dg-success: var(--bs-success, #198754);--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--bs-danger, #dc3545);--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--bs-success, #198754);--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--bs-secondary-bg, #e9ecef);--dg-locked-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-row-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-dropdown-item-active-color: var(--bs-primary, #0d6efd);--dg-focus-ring: var(--bs-focus-ring-color, var(--bs-primary, #0d6efd));--dg-focus-border: rgba(var(--bs-primary-rgb, 13, 110, 253), .45);--dg-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(var(--bs-primary-rgb, 13, 110, 253), .18);--dg-filter-divider: var(--bs-border-color-translucent, rgba(0, 0, 0, .1));--dg-shadow-sm: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--dg-shadow-md: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--dg-radius-lg: var(--bs-border-radius-lg, .5rem);--dg-radius-md: var(--bs-border-radius, .375rem);--dg-radius-sm: var(--bs-border-radius-sm, .25rem);--dg-pager-surface: var(--bs-body-bg, #ffffff);--dg-pager-text: var(--bs-secondary-color, #6c757d);--dg-pager-control-bg: var(--bs-body-bg, #ffffff);--dg-pager-control-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-pager-control-border: var(--bs-border-color, #dee2e6);--dg-pager-link-text: var(--bs-primary, #0d6efd);--dg-pager-active-bg: var(--bs-primary, #0d6efd);--dg-pager-active-border: var(--bs-primary, #0d6efd);--dg-pager-active-text: var(--bs-btn-color, #fff);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\")}.ngb-grid[data-theme=bootstrap-main],.ngb-datagrid-floating-panel[data-theme=bootstrap-main]{--dg-surface: var(--bs-body-bg, #ffffff);--dg-surface-muted: var(--bs-tertiary-bg, #f8f9fa);--dg-surface-subtle: var(--bs-secondary-bg, #e9ecef);--dg-surface-config: var(--bs-primary-bg-subtle, #cfe2ff);--dg-surface-filter-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-surface-sticky-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-border: var(--bs-border-color, #dee2e6);--dg-border-strong: var(--bs-border-color-translucent, #ced4da);--dg-text: var(--bs-body-color, #212529);--dg-text-muted: var(--bs-secondary-color, #6c757d);--dg-text-subtle: var(--bs-tertiary-color, #6c757d);--dg-primary: var(--bs-primary, #0d6efd);--dg-primary-hover: var(--bs-link-hover-color, #0a58ca);--dg-primary-active: var(--bs-link-hover-color, #0a58ca);--dg-primary-soft: var(--bs-primary-bg-subtle, #cfe2ff);--dg-primary-border-subtle: var(--bs-primary-border-subtle, #9ec5fe);--dg-accent: var(--bs-primary, #0d6efd);--dg-on-primary: var(--bs-btn-color, #fff);--dg-placeholder: var(--bs-secondary-color, #6c757d);--dg-success: var(--bs-success, #198754);--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--bs-danger, #dc3545);--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--bs-success, #198754);--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--bs-secondary-bg, #e9ecef);--dg-locked-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-row-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-dropdown-item-active-color: var(--bs-primary, #0d6efd);--dg-focus-ring: var(--bs-focus-ring-color, var(--bs-primary, #0d6efd));--dg-focus-border: rgba(var(--bs-primary-rgb, 13, 110, 253), .45);--dg-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(var(--bs-primary-rgb, 13, 110, 253), .18);--dg-filter-divider: var(--bs-border-color-translucent, rgba(0, 0, 0, .1));--dg-shadow-sm: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--dg-shadow-md: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--dg-radius-lg: var(--bs-border-radius-lg, .5rem);--dg-radius-md: var(--bs-border-radius, .375rem);--dg-radius-sm: var(--bs-border-radius-sm, .25rem);--dg-pager-surface: var(--bs-body-bg, #ffffff);--dg-pager-text: var(--bs-secondary-color, #6c757d);--dg-pager-control-bg: var(--bs-body-bg, #ffffff);--dg-pager-control-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-pager-control-border: var(--bs-border-color, #dee2e6);--dg-pager-link-text: var(--bs-primary, #0d6efd);--dg-pager-active-bg: var(--bs-primary, #0d6efd);--dg-pager-active-border: var(--bs-primary, #0d6efd);--dg-pager-active-text: var(--bs-btn-color, #fff);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");--dg-surface: #f8fbff;--dg-surface-muted: #eaf3ff;--dg-surface-subtle: #d9eaff;--dg-surface-config: #e0efff;--dg-border: #bfd7f4;--dg-border-strong: #7fb0e3;--dg-text: #172554;--dg-text-muted: #45617f;--dg-primary: #1769e0;--dg-primary-hover: #0f56bd;--dg-primary-active: #0b438f;--dg-primary-soft: #dbeafe;--dg-primary-border-subtle: #93c5fd;--dg-accent: #0f766e;--dg-row-selected-bg: #dcecff;--dg-row-hover-bg: #eef6ff;--dg-detail-row-bg: #edf6ff;--dg-dropdown-item-active-bg: #dcecff;--dg-dropdown-item-active-color: #0f56bd;--dg-focus-ring: #1769e0;--dg-focus-border: rgba(23, 105, 224, .48);--dg-focus-shadow: 0 0 0 .2rem rgba(23, 105, 224, .16)}.ngb-grid[data-theme=bootstrap-main-dark],.ngb-datagrid-floating-panel[data-theme=bootstrap-main-dark]{--dg-surface: var(--bs-body-bg, #ffffff);--dg-surface-muted: var(--bs-tertiary-bg, #f8f9fa);--dg-surface-subtle: var(--bs-secondary-bg, #e9ecef);--dg-surface-config: var(--bs-primary-bg-subtle, #cfe2ff);--dg-surface-filter-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-surface-sticky-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-border: var(--bs-border-color, #dee2e6);--dg-border-strong: var(--bs-border-color-translucent, #ced4da);--dg-text: var(--bs-body-color, #212529);--dg-text-muted: var(--bs-secondary-color, #6c757d);--dg-text-subtle: var(--bs-tertiary-color, #6c757d);--dg-primary: var(--bs-primary, #0d6efd);--dg-primary-hover: var(--bs-link-hover-color, #0a58ca);--dg-primary-active: var(--bs-link-hover-color, #0a58ca);--dg-primary-soft: var(--bs-primary-bg-subtle, #cfe2ff);--dg-primary-border-subtle: var(--bs-primary-border-subtle, #9ec5fe);--dg-accent: var(--bs-primary, #0d6efd);--dg-on-primary: var(--bs-btn-color, #fff);--dg-placeholder: var(--bs-secondary-color, #6c757d);--dg-success: var(--bs-success, #198754);--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--bs-danger, #dc3545);--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--bs-success, #198754);--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--bs-secondary-bg, #e9ecef);--dg-locked-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-row-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-dropdown-item-active-color: var(--bs-primary, #0d6efd);--dg-focus-ring: var(--bs-focus-ring-color, var(--bs-primary, #0d6efd));--dg-focus-border: rgba(var(--bs-primary-rgb, 13, 110, 253), .45);--dg-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(var(--bs-primary-rgb, 13, 110, 253), .18);--dg-filter-divider: var(--bs-border-color-translucent, rgba(0, 0, 0, .1));--dg-shadow-sm: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--dg-shadow-md: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--dg-radius-lg: var(--bs-border-radius-lg, .5rem);--dg-radius-md: var(--bs-border-radius, .375rem);--dg-radius-sm: var(--bs-border-radius-sm, .25rem);--dg-pager-surface: var(--bs-body-bg, #ffffff);--dg-pager-text: var(--bs-secondary-color, #6c757d);--dg-pager-control-bg: var(--bs-body-bg, #ffffff);--dg-pager-control-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-pager-control-border: var(--bs-border-color, #dee2e6);--dg-pager-link-text: var(--bs-primary, #0d6efd);--dg-pager-active-bg: var(--bs-primary, #0d6efd);--dg-pager-active-border: var(--bs-primary, #0d6efd);--dg-pager-active-text: var(--bs-btn-color, #fff);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");--dg-surface: #172033;--dg-surface-muted: #202b42;--dg-surface-subtle: #273653;--dg-surface-config: #172a4f;--dg-surface-filter-row: #2c2714;--dg-surface-sticky-row: #2e2810;--dg-border: #33425f;--dg-border-strong: #4a5d80;--dg-text: #edf2ff;--dg-text-muted: #b8c3d9;--dg-text-subtle: #93a2bd;--dg-primary: #38bdf8;--dg-primary-hover: #7dd3fc;--dg-primary-active: #bae6fd;--dg-primary-soft: #12344f;--dg-primary-border-subtle: #0284c7;--dg-accent: #38bdf8;--dg-on-primary: #ffffff;--dg-placeholder: #93a2bd;--dg-locked-bg: #1e2a40;--dg-row-selected-bg: #153a67;--dg-row-hover-bg: #22304a;--dg-row-odd-bg: #172033;--dg-row-even-bg: #1b263a;--dg-detail-row-bg: #182d4c;--dg-dropdown-item-active-bg: #183b70;--dg-dropdown-item-active-color: #bfdbfe;--dg-focus-ring: #60a5fa;--dg-focus-border: rgba(96, 165, 250, .6);--dg-focus-shadow: 0 0 0 .2rem rgba(96, 165, 250, .2);--dg-shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--dg-shadow-md: 0 14px 32px rgba(0, 0, 0, .36);--dg-pager-surface: #111827;--dg-pager-text: #dbeafe;--dg-pager-control-bg: #172033;--dg-pager-control-hover-bg: #22304a;--dg-pager-control-border: #4a5d80;--dg-pager-link-text: #dbeafe;--dg-pager-active-bg: #38bdf8;--dg-pager-active-border: #38bdf8;--dg-pager-active-text: #0f172a;--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\")}.ngb-grid[data-theme=bootstrap-nordic],.ngb-datagrid-floating-panel[data-theme=bootstrap-nordic]{--dg-surface: var(--bs-body-bg, #ffffff);--dg-surface-muted: var(--bs-tertiary-bg, #f8f9fa);--dg-surface-subtle: var(--bs-secondary-bg, #e9ecef);--dg-surface-config: var(--bs-primary-bg-subtle, #cfe2ff);--dg-surface-filter-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-surface-sticky-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-border: var(--bs-border-color, #dee2e6);--dg-border-strong: var(--bs-border-color-translucent, #ced4da);--dg-text: var(--bs-body-color, #212529);--dg-text-muted: var(--bs-secondary-color, #6c757d);--dg-text-subtle: var(--bs-tertiary-color, #6c757d);--dg-primary: var(--bs-primary, #0d6efd);--dg-primary-hover: var(--bs-link-hover-color, #0a58ca);--dg-primary-active: var(--bs-link-hover-color, #0a58ca);--dg-primary-soft: var(--bs-primary-bg-subtle, #cfe2ff);--dg-primary-border-subtle: var(--bs-primary-border-subtle, #9ec5fe);--dg-accent: var(--bs-primary, #0d6efd);--dg-on-primary: var(--bs-btn-color, #fff);--dg-placeholder: var(--bs-secondary-color, #6c757d);--dg-success: var(--bs-success, #198754);--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--bs-danger, #dc3545);--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--bs-success, #198754);--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--bs-secondary-bg, #e9ecef);--dg-locked-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-row-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-dropdown-item-active-color: var(--bs-primary, #0d6efd);--dg-focus-ring: var(--bs-focus-ring-color, var(--bs-primary, #0d6efd));--dg-focus-border: rgba(var(--bs-primary-rgb, 13, 110, 253), .45);--dg-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(var(--bs-primary-rgb, 13, 110, 253), .18);--dg-filter-divider: var(--bs-border-color-translucent, rgba(0, 0, 0, .1));--dg-shadow-sm: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--dg-shadow-md: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--dg-radius-lg: var(--bs-border-radius-lg, .5rem);--dg-radius-md: var(--bs-border-radius, .375rem);--dg-radius-sm: var(--bs-border-radius-sm, .25rem);--dg-pager-surface: var(--bs-body-bg, #ffffff);--dg-pager-text: var(--bs-secondary-color, #6c757d);--dg-pager-control-bg: var(--bs-body-bg, #ffffff);--dg-pager-control-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-pager-control-border: var(--bs-border-color, #dee2e6);--dg-pager-link-text: var(--bs-primary, #0d6efd);--dg-pager-active-bg: var(--bs-primary, #0d6efd);--dg-pager-active-border: var(--bs-primary, #0d6efd);--dg-pager-active-text: var(--bs-btn-color, #fff);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");--dg-surface: #ffffff;--dg-surface-muted: #f2f7f8;--dg-surface-subtle: #e6f0f2;--dg-surface-config: #e4f8fb;--dg-surface-filter-row: #fff7ed;--dg-border: #d5e4e7;--dg-border-strong: #a9c8cf;--dg-text: #263243;--dg-text-muted: #64748b;--dg-primary: #0ea5b7;--dg-primary-hover: #0b8798;--dg-primary-active: #0f6b7a;--dg-primary-soft: #d7f5f8;--dg-primary-border-subtle: #9be4ec;--dg-accent: #e85d75;--dg-row-selected-bg: #e7f8fb;--dg-row-hover-bg: #f0fbfd;--dg-row-odd-bg: transparent;--dg-row-even-bg: #fbfeff;--dg-detail-row-bg: #f4fbfc;--dg-dropdown-item-active-bg: #e7f8fb;--dg-dropdown-item-active-color: #0b8798;--dg-focus-ring: #0ea5b7;--dg-focus-border: rgba(14, 165, 183, .45);--dg-focus-shadow: 0 0 0 .2rem rgba(14, 165, 183, .15);--dg-font-size-cell: .88rem;--dg-cell-padding-y: .82rem;--dg-pager-surface: #f8ffff;--dg-pager-text: #526173;--dg-pager-control-bg: #ffffff;--dg-pager-control-hover-bg: #e7f8fb;--dg-pager-control-border: #b9dce2;--dg-pager-link-text: #0b8798;--dg-pager-active-bg: #0ea5b7;--dg-pager-active-border: #0ea5b7;--dg-pager-active-text: #ffffff}.ngb-grid[data-theme=bootstrap-urban],.ngb-datagrid-floating-panel[data-theme=bootstrap-urban]{--dg-surface: var(--bs-body-bg, #ffffff);--dg-surface-muted: var(--bs-tertiary-bg, #f8f9fa);--dg-surface-subtle: var(--bs-secondary-bg, #e9ecef);--dg-surface-config: var(--bs-primary-bg-subtle, #cfe2ff);--dg-surface-filter-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-surface-sticky-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-border: var(--bs-border-color, #dee2e6);--dg-border-strong: var(--bs-border-color-translucent, #ced4da);--dg-text: var(--bs-body-color, #212529);--dg-text-muted: var(--bs-secondary-color, #6c757d);--dg-text-subtle: var(--bs-tertiary-color, #6c757d);--dg-primary: var(--bs-primary, #0d6efd);--dg-primary-hover: var(--bs-link-hover-color, #0a58ca);--dg-primary-active: var(--bs-link-hover-color, #0a58ca);--dg-primary-soft: var(--bs-primary-bg-subtle, #cfe2ff);--dg-primary-border-subtle: var(--bs-primary-border-subtle, #9ec5fe);--dg-accent: var(--bs-primary, #0d6efd);--dg-on-primary: var(--bs-btn-color, #fff);--dg-placeholder: var(--bs-secondary-color, #6c757d);--dg-success: var(--bs-success, #198754);--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--bs-danger, #dc3545);--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--bs-success, #198754);--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--bs-secondary-bg, #e9ecef);--dg-locked-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-row-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-detail-row-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-dropdown-item-active-color: var(--bs-primary, #0d6efd);--dg-focus-ring: var(--bs-focus-ring-color, var(--bs-primary, #0d6efd));--dg-focus-border: rgba(var(--bs-primary-rgb, 13, 110, 253), .45);--dg-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(var(--bs-primary-rgb, 13, 110, 253), .18);--dg-filter-divider: var(--bs-border-color-translucent, rgba(0, 0, 0, .1));--dg-shadow-sm: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--dg-shadow-md: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--dg-radius-lg: var(--bs-border-radius-lg, .5rem);--dg-radius-md: var(--bs-border-radius, .375rem);--dg-radius-sm: var(--bs-border-radius-sm, .25rem);--dg-pager-surface: var(--bs-body-bg, #ffffff);--dg-pager-text: var(--bs-secondary-color, #6c757d);--dg-pager-control-bg: var(--bs-body-bg, #ffffff);--dg-pager-control-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-pager-control-border: var(--bs-border-color, #dee2e6);--dg-pager-link-text: var(--bs-primary, #0d6efd);--dg-pager-active-bg: var(--bs-primary, #0d6efd);--dg-pager-active-border: var(--bs-primary, #0d6efd);--dg-pager-active-text: var(--bs-btn-color, #fff);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");--dg-surface: #ffffff;--dg-surface-muted: #f5f8fa;--dg-surface-subtle: #edf4f7;--dg-surface-config: #e8f4f9;--dg-border: #d9e5ea;--dg-border-strong: #adc6d3;--dg-text: #263445;--dg-text-muted: #5f6f84;--dg-primary: #468faf;--dg-primary-hover: #36748f;--dg-primary-active: #285b72;--dg-primary-soft: #e0f0f6;--dg-primary-border-subtle: #b9dbe8;--dg-accent: #ff7f50;--dg-row-selected-bg: #e8f4f9;--dg-row-hover-bg: #fff2eb;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-dropdown-item-active-bg: #e8f4f9;--dg-dropdown-item-active-color: #36748f;--dg-focus-ring: #468faf;--dg-focus-border: rgba(70, 143, 175, .48);--dg-focus-shadow: 0 0 0 .2rem rgba(70, 143, 175, .16);--dg-cell-padding-y: .86rem;--dg-cell-padding-x: .95rem;--dg-pager-surface: #fffaf7;--dg-pager-text: #5f6f84;--dg-pager-control-bg: #ffffff;--dg-pager-control-hover-bg: #fff2eb;--dg-pager-control-border: #d4e1e7;--dg-pager-link-text: #36748f;--dg-pager-active-bg: #468faf;--dg-pager-active-border: #468faf;--dg-pager-active-text: #ffffff}.ngb-grid[data-theme=bootstrap-vintage],.ngb-datagrid-floating-panel[data-theme=bootstrap-vintage]{--dg-surface: var(--bs-body-bg, #ffffff);--dg-surface-muted: var(--bs-tertiary-bg, #f8f9fa);--dg-surface-subtle: var(--bs-secondary-bg, #e9ecef);--dg-surface-config: var(--bs-primary-bg-subtle, #cfe2ff);--dg-surface-filter-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-surface-sticky-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-border: var(--bs-border-color, #dee2e6);--dg-border-strong: var(--bs-border-color-translucent, #ced4da);--dg-text: var(--bs-body-color, #212529);--dg-text-muted: var(--bs-secondary-color, #6c757d);--dg-text-subtle: var(--bs-tertiary-color, #6c757d);--dg-primary: var(--bs-primary, #0d6efd);--dg-primary-hover: var(--bs-link-hover-color, #0a58ca);--dg-primary-active: var(--bs-link-hover-color, #0a58ca);--dg-primary-soft: var(--bs-primary-bg-subtle, #cfe2ff);--dg-primary-border-subtle: var(--bs-primary-border-subtle, #9ec5fe);--dg-accent: var(--bs-primary, #0d6efd);--dg-on-primary: var(--bs-btn-color, #fff);--dg-placeholder: var(--bs-secondary-color, #6c757d);--dg-success: var(--bs-success, #198754);--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--bs-danger, #dc3545);--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--bs-success, #198754);--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--bs-secondary-bg, #e9ecef);--dg-locked-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-row-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-dropdown-item-active-color: var(--bs-primary, #0d6efd);--dg-focus-ring: var(--bs-focus-ring-color, var(--bs-primary, #0d6efd));--dg-focus-border: rgba(var(--bs-primary-rgb, 13, 110, 253), .45);--dg-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(var(--bs-primary-rgb, 13, 110, 253), .18);--dg-filter-divider: var(--bs-border-color-translucent, rgba(0, 0, 0, .1));--dg-shadow-sm: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--dg-shadow-md: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--dg-radius-lg: var(--bs-border-radius-lg, .5rem);--dg-radius-md: var(--bs-border-radius, .375rem);--dg-radius-sm: var(--bs-border-radius-sm, .25rem);--dg-pager-surface: var(--bs-body-bg, #ffffff);--dg-pager-text: var(--bs-secondary-color, #6c757d);--dg-pager-control-bg: var(--bs-body-bg, #ffffff);--dg-pager-control-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-pager-control-border: var(--bs-border-color, #dee2e6);--dg-pager-link-text: var(--bs-primary, #0d6efd);--dg-pager-active-bg: var(--bs-primary, #0d6efd);--dg-pager-active-border: var(--bs-primary, #0d6efd);--dg-pager-active-text: var(--bs-btn-color, #fff);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");--dg-surface: #fffdf8;--dg-surface-muted: #f6f0e7;--dg-surface-subtle: #eee4d8;--dg-surface-config: #f2e7ef;--dg-border: #dfd2c2;--dg-border-strong: #c8b8a5;--dg-text: #3d3440;--dg-text-muted: #766a72;--dg-primary: #7f4f68;--dg-primary-hover: #684057;--dg-primary-active: #523246;--dg-primary-soft: #efdde8;--dg-primary-border-subtle: #d8b9ca;--dg-accent: #88b0b7;--dg-row-selected-bg: #f1e4ec;--dg-row-hover-bg: #fbf1e5;--dg-row-odd-bg: #fffdf8;--dg-row-even-bg: #fbf7ef;--dg-detail-row-bg: #fbf6ef;--dg-dropdown-item-active-bg: #f1e4ec;--dg-dropdown-item-active-color: #684057;--dg-focus-ring: #7f4f68;--dg-focus-border: rgba(127, 79, 104, .5);--dg-focus-shadow: 0 0 0 .2rem rgba(127, 79, 104, .16);--dg-font-size-header: .78rem;--dg-font-size-cell: .86rem;--dg-pager-surface: #fffdf8;--dg-pager-text: #766a72;--dg-pager-control-bg: #fffaf2;--dg-pager-control-hover-bg: #fbf1e5;--dg-pager-control-border: #dfd2c2;--dg-pager-link-text: #684057;--dg-pager-active-bg: #7f4f68;--dg-pager-active-border: #7f4f68;--dg-pager-active-text: #ffffff}.ngb-grid[data-theme=material],.ngb-grid[data-theme=material-main],.ngb-datagrid-floating-panel[data-theme=material],.ngb-datagrid-floating-panel[data-theme=material-main]{--dg-surface: #fffbfe;--dg-surface-muted: #f4eff4;--dg-surface-subtle: #e7e0ec;--dg-surface-config: #eaddff;--dg-border: #cac4d0;--dg-border-strong: #938f99;--dg-text: #1c1b1f;--dg-text-muted: #49454f;--dg-primary: #6750a4;--dg-primary-hover: #59468d;--dg-primary-active: #4f378b;--dg-primary-soft: #eaddff;--dg-primary-border-subtle: #d0bcff;--dg-accent: #7d5260;--dg-row-selected-bg: #eaddff;--dg-row-hover-bg: #f5efff;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: #f7f2fa;--dg-dropdown-item-active-bg: #eaddff;--dg-dropdown-item-active-color: #4f378b;--dg-focus-ring: #6750a4;--dg-focus-border: rgba(103, 80, 164, .5);--dg-focus-shadow: 0 0 0 .18rem rgba(103, 80, 164, .16);--dg-radius-lg: .75rem;--dg-radius-md: .65rem;--dg-radius-sm: .5rem;--dg-font-size-header: .78rem;--dg-font-size-cell: .86rem;--dg-cell-padding-y: .8rem;--dg-table-border-width: 0;--dg-pager-control-bg: #fffbfe;--dg-pager-control-hover-bg: #f4eff4;--dg-pager-control-border: #cac4d0}.ngb-grid[data-theme=material-indigo],.ngb-datagrid-floating-panel[data-theme=material-indigo]{--dg-surface: #fffbfe;--dg-surface-muted: #f4eff4;--dg-surface-subtle: #e7e0ec;--dg-surface-config: #eaddff;--dg-border: #cac4d0;--dg-border-strong: #938f99;--dg-text: #1c1b1f;--dg-text-muted: #49454f;--dg-primary: #6750a4;--dg-primary-hover: #59468d;--dg-primary-active: #4f378b;--dg-primary-soft: #eaddff;--dg-primary-border-subtle: #d0bcff;--dg-accent: #7d5260;--dg-row-selected-bg: #eaddff;--dg-row-hover-bg: #f5efff;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: #f7f2fa;--dg-dropdown-item-active-bg: #eaddff;--dg-dropdown-item-active-color: #4f378b;--dg-focus-ring: #6750a4;--dg-focus-border: rgba(103, 80, 164, .5);--dg-focus-shadow: 0 0 0 .18rem rgba(103, 80, 164, .16);--dg-radius-lg: .75rem;--dg-radius-md: .65rem;--dg-radius-sm: .5rem;--dg-font-size-header: .78rem;--dg-font-size-cell: .86rem;--dg-cell-padding-y: .8rem;--dg-table-border-width: 0;--dg-pager-control-bg: #fffbfe;--dg-pager-control-hover-bg: #f4eff4;--dg-pager-control-border: #cac4d0;--dg-primary: #3f51b5;--dg-primary-hover: #303f9f;--dg-primary-active: #283593;--dg-primary-soft: #e8eaf6;--dg-primary-border-subtle: #c5cae9;--dg-dropdown-item-active-bg: #e8eaf6;--dg-dropdown-item-active-color: #303f9f;--dg-focus-ring: #3f51b5;--dg-focus-border: rgba(63, 81, 181, .48);--dg-focus-shadow: 0 0 0 .18rem rgba(63, 81, 181, .16);--dg-row-hover-bg: #f0f2ff}.ngb-grid[data-theme=material-deep-purple],.ngb-datagrid-floating-panel[data-theme=material-deep-purple]{--dg-surface: #fffbfe;--dg-surface-muted: #f4eff4;--dg-surface-subtle: #e7e0ec;--dg-surface-config: #eaddff;--dg-border: #cac4d0;--dg-border-strong: #938f99;--dg-text: #1c1b1f;--dg-text-muted: #49454f;--dg-primary: #6750a4;--dg-primary-hover: #59468d;--dg-primary-active: #4f378b;--dg-primary-soft: #eaddff;--dg-primary-border-subtle: #d0bcff;--dg-accent: #7d5260;--dg-row-selected-bg: #eaddff;--dg-row-hover-bg: #f5efff;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: #f7f2fa;--dg-dropdown-item-active-bg: #eaddff;--dg-dropdown-item-active-color: #4f378b;--dg-focus-ring: #6750a4;--dg-focus-border: rgba(103, 80, 164, .5);--dg-focus-shadow: 0 0 0 .18rem rgba(103, 80, 164, .16);--dg-radius-lg: .75rem;--dg-radius-md: .65rem;--dg-radius-sm: .5rem;--dg-font-size-header: .78rem;--dg-font-size-cell: .86rem;--dg-cell-padding-y: .8rem;--dg-table-border-width: 0;--dg-pager-control-bg: #fffbfe;--dg-pager-control-hover-bg: #f4eff4;--dg-pager-control-border: #cac4d0;--dg-primary: #7e57c2;--dg-primary-hover: #673ab7;--dg-primary-active: #512da8;--dg-primary-soft: #ede7f6;--dg-primary-border-subtle: #d1c4e9;--dg-accent: #ff7043;--dg-row-selected-bg: #ede7f6;--dg-row-hover-bg: #f5edff;--dg-dropdown-item-active-bg: #ede7f6;--dg-dropdown-item-active-color: #512da8;--dg-focus-ring: #7e57c2;--dg-focus-border: rgba(126, 87, 194, .5);--dg-focus-shadow: 0 0 0 .18rem rgba(126, 87, 194, .16)}.ngb-grid[data-theme=tailwind],.ngb-grid[data-theme=tailwind-main],.ngb-datagrid-floating-panel[data-theme=tailwind],.ngb-datagrid-floating-panel[data-theme=tailwind-main]{--dg-surface: #ffffff;--dg-surface-muted: #f8fafc;--dg-surface-subtle: #f1f5f9;--dg-border: #cbd5e1;--dg-border-strong: #94a3b8;--dg-text: #0f172a;--dg-text-muted: #475569;--dg-primary: #2563eb;--dg-primary-hover: #1d4ed8;--dg-primary-active: #1e40af;--dg-primary-soft: #dbeafe;--dg-primary-border-subtle: #bfdbfe;--dg-dropdown-item-active-bg: #dbeafe;--dg-dropdown-item-active-color: #1d4ed8;--dg-focus-ring: #2563eb;--dg-focus-border: rgba(37, 99, 235, .48);--dg-focus-shadow: 0 0 0 .18rem rgba(37, 99, 235, .16);--dg-row-hover-bg: #eff6ff;--dg-font-size-header: .75rem;--dg-font-size-cell: .85rem;--dg-cell-padding-y: .68rem;--dg-cell-padding-x: .8rem;--dg-table-border-width: 1px;--dg-pager-surface: #ffffff;--dg-pager-text: #475569;--dg-pager-control-bg: #ffffff;--dg-pager-control-hover-bg: #eff6ff;--dg-pager-control-border: #bfdbfe;--dg-pager-link-text: #1d4ed8;--dg-pager-active-bg: #2563eb;--dg-pager-active-border: #2563eb;--dg-pager-active-text: #ffffff}.ngb-grid[data-theme=tailwind-slate],.ngb-datagrid-floating-panel[data-theme=tailwind-slate]{--dg-surface: #f8fafc;--dg-surface-muted: #e2e8f0;--dg-surface-subtle: #cbd5e1;--dg-border: #cbd5e1;--dg-border-strong: #64748b;--dg-text: #0f172a;--dg-text-muted: #475569;--dg-primary: #475569;--dg-primary-hover: #334155;--dg-primary-active: #1e293b;--dg-primary-soft: #e2e8f0;--dg-primary-border-subtle: #94a3b8;--dg-dropdown-item-active-bg: #e2e8f0;--dg-dropdown-item-active-color: #334155;--dg-focus-ring: #475569;--dg-row-hover-bg: #e2e8f0;--dg-row-odd-bg: #f8fafc;--dg-row-even-bg: #f1f5f9;--dg-focus-border: rgba(71, 85, 105, .48);--dg-focus-shadow: 0 0 0 .18rem rgba(71, 85, 105, .16)}.ngb-grid[data-theme=tailwind-emerald],.ngb-datagrid-floating-panel[data-theme=tailwind-emerald]{--dg-surface: #ffffff;--dg-surface-muted: #ecfdf5;--dg-surface-subtle: #d1fae5;--dg-border: #a7f3d0;--dg-border-strong: #34d399;--dg-text: #064e3b;--dg-text-muted: #047857;--dg-primary: #059669;--dg-primary-hover: #047857;--dg-primary-active: #065f46;--dg-primary-soft: #d1fae5;--dg-primary-border-subtle: #6ee7b7;--dg-dropdown-item-active-bg: #d1fae5;--dg-dropdown-item-active-color: #047857;--dg-focus-ring: #059669;--dg-focus-border: rgba(5, 150, 105, .48);--dg-focus-shadow: 0 0 0 .18rem rgba(5, 150, 105, .16)}.ngb-datagrid-floating-panel.grid-filter-menu-popover,.ngb-datagrid-floating-panel.dropdown-menu{position:fixed!important;z-index:1200;display:block;visibility:visible;opacity:1;pointer-events:auto;max-height:min(28rem,100vh - 1.5rem);overflow:auto;margin:0!important;border-radius:var(--dg-radius-md);border:1px solid var(--dg-border);background:var(--dg-surface);box-shadow:var(--dg-shadow-md)}.ngb-datagrid-floating-panel.dropdown-menu{min-width:12rem;padding:.35rem 0}.ngb-datagrid-floating-panel.grid-filter-operator-menu .dropdown-item{display:block;width:100%;padding:.5rem .85rem;border:0;background:transparent;font-size:.8125rem;font-weight:600;color:var(--dg-text);text-align:left}.ngb-datagrid-floating-panel.grid-filter-operator-menu .dropdown-item:hover{background:var(--dg-surface-subtle)}.ngb-datagrid-floating-panel.grid-filter-operator-menu .dropdown-item.active{color:var(--dg-dropdown-item-active-color);background:var(--dg-dropdown-item-active-bg)}.ngb-datagrid-floating-panel.dropdown-menu .dropdown-item{padding:.5rem .85rem;font-size:.8125rem;font-weight:600;color:var(--dg-text)}.ngb-datagrid-floating-panel.dropdown-menu .dropdown-item:hover{background:var(--dg-surface-subtle)}.ngb-datagrid-floating-panel.grid-filter-menu-popover{min-width:18rem;padding:0}.ngb-datagrid-floating-panel .grid-filter-menu-surface{display:block;min-width:18rem;padding:1rem;border-radius:var(--dg-radius-md);background:var(--dg-surface)}.ngb-datagrid-floating-panel .grid-filter-menu-surface__header{margin-bottom:.875rem}.ngb-datagrid-floating-panel .grid-filter-menu-surface__eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--dg-text-muted)}.ngb-datagrid-floating-panel .grid-filter-menu-surface__title{margin-top:.15rem;font-size:.95rem;font-weight:700;color:var(--dg-text)}.ngb-datagrid-floating-panel .grid-filter-stack{display:flex;flex-direction:column;gap:.75rem}.ngb-datagrid-floating-panel .grid-filter-stack__label{font-size:.8125rem;font-weight:600;color:var(--dg-text-muted)}.ngb-datagrid-floating-panel .grid-filter-stack--multi{gap:.65rem}.ngb-datagrid-floating-panel .grid-filter-condition{display:flex;flex-direction:column;gap:.5rem}.ngb-datagrid-floating-panel .grid-filter-operator-select,.ngb-grid .grid-filter-operator-select{width:100%;min-height:var(--dg-control-height);padding:.45rem .65rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface);font-size:.875rem;color:var(--dg-text)}.ngb-datagrid-floating-panel .grid-filter-operator-select--compact,.ngb-grid .grid-filter-operator-select--compact{width:auto;min-width:2.25rem;max-width:2.5rem;padding:.35rem .25rem;font-size:0}.ngb-datagrid-floating-panel .grid-filter-logic-select,.ngb-grid .grid-filter-logic-select{display:flex;justify-content:center;margin:.15rem 0}.ngb-datagrid-floating-panel .grid-filter-logic-select select,.ngb-grid .grid-filter-logic-select select{width:auto;min-width:4.5rem;min-height:1.75rem;padding:.2rem 1.5rem .2rem .65rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface);font-size:.8125rem;font-weight:600;color:var(--dg-text);text-align:center}.ngb-datagrid-floating-panel .grid-filter-menu-surface__actions--split,.ngb-grid .grid-filter-menu-surface__actions--split{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.ngb-datagrid-floating-panel .grid-filter-apply--secondary,.ngb-datagrid-floating-panel .grid-filter-cancel--secondary,.ngb-grid .grid-filter-apply--secondary,.ngb-grid .grid-filter-cancel--secondary{width:100%;border:1px solid var(--dg-border-strong);background:var(--dg-surface-muted);color:var(--dg-text);font-weight:600}.ngb-datagrid-floating-panel .grid-filter-apply--secondary:hover,.ngb-datagrid-floating-panel .grid-filter-cancel--secondary:hover,.ngb-grid .grid-filter-apply--secondary:hover,.ngb-grid .grid-filter-cancel--secondary:hover{background:var(--dg-surface-subtle)}.ngb-datagrid-floating-panel .grid-filter-multi-panel,.ngb-grid .grid-filter-multi-panel{display:flex;flex-direction:column;gap:.5rem;min-width:16.5rem}.ngb-datagrid-floating-panel .grid-filter-join-select,.ngb-grid .grid-filter-join-select{display:inline-block;width:fit-content;max-width:100%;margin:.1rem 0}.ngb-datagrid-floating-panel .grid-filter-join-select__control,.ngb-grid .grid-filter-join-select__control{width:100%;min-height:1.75rem;padding:.2rem 1.25rem .2rem .5rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface);font-size:.8125rem;font-weight:600;text-align:left}.ngb-datagrid-floating-panel .grid-filter-field{position:relative;width:100%;min-width:0}.ngb-datagrid-floating-panel .grid-filter-field--with-icon .grid-filter-control,.ngb-datagrid-floating-panel .grid-filter-field--with-icon .grid-filter-value-input{padding-right:2.25rem}.ngb-datagrid-floating-panel .grid-filter-field__icon{position:absolute;right:.8rem;top:50%;transform:translateY(-50%);color:var(--dg-placeholder);pointer-events:none}.ngb-datagrid-floating-panel .grid-filter-control,.ngb-datagrid-floating-panel .grid-filter-value-input,.ngb-datagrid-floating-panel .grid-filter-value-select,.ngb-grid .grid-filter-value-input,.ngb-grid .grid-filter-value-select{width:100%;min-height:var(--dg-control-height);padding:.45rem .65rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface);color:var(--dg-text);font-size:.875rem}.ngb-datagrid-floating-panel .grid-filter-apply--secondary:disabled,.ngb-datagrid-floating-panel .grid-filter-cancel--secondary:disabled,.ngb-grid .grid-filter-apply--secondary:disabled,.ngb-grid .grid-filter-cancel--secondary:disabled{opacity:.45;cursor:not-allowed}.ngb-datagrid-floating-panel .grid-filter-condition__join{margin:.15rem 0;font-size:.75rem;font-weight:700;color:var(--dg-text-muted);text-align:center}.ngb-datagrid-floating-panel .grid-filter-stack__footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.ngb-datagrid-floating-panel .grid-filter-operator__button{padding:.55rem .8rem;font-size:.8125rem;font-weight:600;color:var(--dg-text-muted);border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface)}.ngb-datagrid-floating-panel .grid-filter-clear,.ngb-datagrid-floating-panel .grid-filter-apply,.ngb-datagrid-floating-panel .grid-filter-cancel{padding:.5rem .85rem;font-size:.8125rem;font-weight:600;border-radius:var(--dg-radius-sm)}.ngb-datagrid-floating-panel .grid-filter-apply{border:1px solid var(--dg-primary);background:var(--dg-primary);color:var(--dg-on-primary)}.ngb-datagrid-floating-panel .grid-filter-cancel,.ngb-datagrid-floating-panel .grid-filter-clear{border:1px solid var(--dg-border-strong);background:var(--dg-surface);color:var(--dg-text)}.ngb-datagrid-floating-panel .grid-filter-menu-surface__actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--dg-border)}.ngb-datagrid-floating-panel .grid-filter-menu-surface__multi{display:flex;flex-direction:column;gap:.5rem;width:100%;min-width:16rem}.ngb-datagrid-floating-panel .grid-filter-menu-surface__search{border:1px solid var(--dg-border);border-radius:var(--dg-radius-md);min-height:2rem;padding:.4rem .65rem;font-size:.8125rem;width:100%}.ngb-datagrid-floating-panel .grid-multi-filter-list{max-height:11.5rem;overflow:auto;border-top:1px solid var(--dg-border);border-bottom:1px solid var(--dg-border)}.ngb-datagrid-floating-panel .grid-multi-filter-option{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:.45rem .75rem;font-size:.8125rem;font-weight:600;color:var(--dg-text);cursor:pointer}.ngb-datagrid-floating-panel .grid-multi-filter-option__main{display:flex;align-items:center;gap:.5rem}.ngb-datagrid-floating-panel .grid-filter-menu-surface__actions--multi{justify-content:space-between}.ngb-datagrid-floating-panel[data-theme=bootstrap].dropdown-menu .dropdown-item{font-weight:400}.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-operator-select,.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-value-input,.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-value-select,.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-menu-surface__search,.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-join-select__control{border-radius:var(--bs-border-radius, var(--dg-radius-sm))}ngb-datagrid{display:block}.ngb-grid{color:var(--dg-text);--dg-group-sticky-row-height: 3rem}.ngb-grid.ngb-grid--compact{--dg-group-sticky-row-height: 2.5rem}.ngb-grid .table{margin-bottom:0}.ngb-grid .datagrid-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.ngb-grid .datagrid-toolbar__search{flex:1 1 20rem;min-width:16rem}.ngb-grid .datagrid-toolbar__search-label{display:block;margin-bottom:.35rem;font-size:.875rem;font-weight:500;color:var(--dg-text-muted)}.ngb-grid .datagrid-toolbar__search-shell{display:flex;align-items:center;gap:.625rem;min-height:calc(var(--dg-control-height) + 4px);padding:0 .875rem;border:1px solid var(--dg-border);border-radius:999px;background:var(--dg-surface);box-shadow:var(--dg-shadow-sm)}.ngb-grid .datagrid-toolbar__search-icon{color:var(--dg-text-muted)}.ngb-grid .datagrid-toolbar__search-input{flex:1 1 auto;width:100%;min-width:0;border:0;background:transparent;color:var(--dg-text);outline:none;font-size:.95rem;padding:.625rem 0}.ngb-grid .datagrid-toolbar__search-input::placeholder{color:var(--dg-placeholder)}.ngb-grid .datagrid-toolbar__actions{display:flex;align-items:center;justify-content:flex-end;gap:.625rem;flex-wrap:wrap}.ngb-grid .datagrid-toolbar__button,.ngb-grid .grid-row-action,.ngb-grid .grid-filter-apply,.ngb-grid .grid-filter-clear,.ngb-grid .grid-filter-cancel,.ngb-grid .grid-filter-operator__button,.ngb-grid .grid-filter-menu-trigger,.ngb-grid .grid-detail-toggle{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:var(--dg-control-height);border-radius:var(--dg-radius-md);border:1px solid var(--dg-border);background:var(--dg-surface);color:var(--dg-text);box-shadow:none;font:inherit;text-decoration:none;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease}.ngb-grid .datagrid-toolbar__button:hover,.ngb-grid .grid-row-action:hover,.ngb-grid .grid-filter-apply:hover,.ngb-grid .grid-filter-clear:hover,.ngb-grid .grid-filter-cancel:hover,.ngb-grid .grid-filter-operator__button:hover,.ngb-grid .grid-filter-menu-trigger:hover,.ngb-grid .grid-detail-toggle:hover{border-color:var(--dg-border-strong);background:var(--dg-surface-subtle);color:var(--dg-text);text-decoration:none}.ngb-grid .datagrid-toolbar__button:focus-visible,.ngb-grid .grid-row-action:focus-visible,.ngb-grid .grid-filter-apply:focus-visible,.ngb-grid .grid-filter-clear:focus-visible,.ngb-grid .grid-filter-cancel:focus-visible,.ngb-grid .grid-filter-operator__button:focus-visible,.ngb-grid .grid-filter-menu-trigger:focus-visible,.ngb-grid .grid-detail-toggle:focus-visible,.ngb-grid .grid-sort-button:focus-visible,.ngb-grid .grid-edit-control:focus-visible,.ngb-grid .grid-filter-control:focus-visible,.ngb-grid .datagrid-toolbar__search-input:focus-visible{outline:none;border-color:var(--dg-focus-border);box-shadow:var(--dg-focus-shadow)}.ngb-grid .datagrid-toolbar__button{padding:.625rem 1rem;font-size:.875rem;font-weight:400}.ngb-grid .datagrid-toolbar__button--primary{border-color:var(--dg-primary);background:var(--dg-primary);color:var(--dg-on-primary)}.ngb-grid .datagrid-toolbar__button--primary:hover{background:var(--dg-primary-hover);border-color:var(--dg-primary-hover);color:var(--dg-on-primary)}.ngb-grid .datagrid-toolbar__button--secondary{background:var(--dg-surface);color:var(--dg-text)}.ngb-grid .ngb-grid__group-panel{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;min-height:3.25rem;margin-bottom:.9rem;padding:.75rem .9rem;border:1px dashed var(--dg-border-strong);border-radius:var(--dg-radius-md);background:color-mix(in srgb,var(--dg-surface-muted) 72%,white);transition:border-color .12s ease,background-color .12s ease,box-shadow .12s ease}.ngb-grid .ngb-grid__group-panel--active{border-color:var(--dg-primary);background:color-mix(in srgb,var(--dg-primary-soft) 45%,white);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--dg-primary) 22%,transparent)}.ngb-grid .ngb-grid__group-panel--denied{border-color:var(--dg-danger, #dc3545);background:color-mix(in srgb,var(--dg-danger, #dc3545) 8%,white)}.ngb-grid .ngb-grid__group-panel-label{font-size:.875rem;font-weight:600;color:var(--dg-text-muted)}.ngb-grid .ngb-grid__group-chip-list{display:inline-flex;align-items:center;gap:.55rem;flex-wrap:wrap}.ngb-grid .ngb-grid__group-chip{display:inline-flex;align-items:center;gap:.25rem;border:1px solid color-mix(in srgb,var(--dg-primary) 26%,var(--dg-border));border-radius:999px;background:var(--dg-surface);box-shadow:var(--dg-shadow-sm)}.ngb-grid .ngb-grid__group-chip-button,.ngb-grid .ngb-grid__group-chip-remove{display:inline-flex;align-items:center;gap:.4rem;min-height:2rem;border:0;background:transparent;color:var(--dg-text)}.ngb-grid .ngb-grid__group-chip-button{padding:.35rem .55rem .35rem .8rem;font-size:.8125rem;font-weight:600}.ngb-grid .ngb-grid__group-chip-remove{padding:.35rem .75rem .35rem .15rem;color:var(--dg-text-muted)}.ngb-grid .ngb-grid__group-chip-button:hover,.ngb-grid .ngb-grid__group-chip-remove:hover{color:var(--dg-primary)}.ngb-grid .ngb-grid__group-chip-button:focus-visible,.ngb-grid .ngb-grid__group-chip-remove:focus-visible,.ngb-grid .grid-column-group-handle:focus-visible,.ngb-grid .grid-group-row__toggle:focus-visible{outline:none;box-shadow:var(--dg-focus-shadow);border-radius:999px}.ngb-grid .ngb-grid__group-chip-dir{font-size:.8rem;color:var(--dg-primary)}.ngb-grid .table-wrapper{position:relative;overflow-x:hidden;overflow-y:clip;border:var(--dg-table-border-width) solid var(--dg-border);border-radius:var(--dg-radius-lg);background:var(--dg-surface);box-shadow:var(--dg-shadow-sm);isolation:isolate}.ngb-grid .table-body-scroll{max-height:24rem;overflow-y:auto;overflow-x:auto;border-top:1px solid var(--dg-border);border-bottom:1px solid var(--dg-border);scrollbar-gutter:stable both-edges;position:relative;z-index:0}.ngb-grid .ngb-grid__group-sticky-layer{position:absolute;inset-inline-start:0;z-index:35;min-width:100%;pointer-events:none}.ngb-grid .ngb-grid__group-sticky-layer--top,.ngb-grid .ngb-grid__group-sticky-layer--bottom{top:0}.ngb-grid .grid-group-sticky-table{min-width:100%;pointer-events:auto}.ngb-grid .grid-table{width:max-content;min-width:100%;table-layout:fixed;margin:0;border-collapse:separate;border-spacing:0}.ngb-grid.ngb-grid--resizable .grid-table{min-width:0;width:max-content}.ngb-grid.ngb-grid--resizable .grid-table th,.ngb-grid.ngb-grid--resizable .grid-table td{box-sizing:border-box}.ngb-grid .grid-header-shell{position:relative;z-index:20;overflow:hidden}.ngb-grid .grid-header{position:relative;z-index:20;overflow:visible}.ngb-grid .grid-header thead tr:first-child th:first-child{border-top-left-radius:var(--dg-radius-lg)}.ngb-grid .grid-header thead tr:first-child th:last-child{border-top-right-radius:var(--dg-radius-lg)}.ngb-grid .grid-header thead th{background:var(--dg-surface-muted);border-bottom:var(--dg-table-border-width) solid var(--dg-border);color:var(--dg-text);font-size:var(--dg-font-size-header);font-weight:600;text-transform:none;letter-spacing:.01em;overflow:visible}.ngb-grid .grid-table th,.ngb-grid .grid-table td{vertical-align:middle;border-bottom:var(--dg-table-border-width) solid var(--dg-border);padding:var(--dg-cell-padding-y) var(--dg-cell-padding-x);font-size:var(--dg-font-size-cell)}.ngb-grid .grid-table th{padding:var(--dg-header-padding-y) var(--dg-header-padding-x)}.ngb-grid .grid-table td{background:var(--dg-surface);color:var(--dg-text);font-weight:400}.ngb-grid .grid-table th{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ngb-grid .grid-header .grid-table th{overflow:visible}.ngb-grid .grid-header thead tr:first-child th.grid-header__column--resizable{position:relative}.ngb-grid .grid-column-resize-handle{position:absolute;top:0;right:0;width:.45rem;height:100%;cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none;z-index:3}.ngb-grid .grid-column-resize-handle:after{content:\"\";position:absolute;top:.35rem;bottom:.35rem;right:.1rem;width:2px;border-radius:1px;background:var(--dg-border-strong);opacity:0;transition:opacity .15s ease}.ngb-grid .grid-header__column--resizable:hover .grid-column-resize-handle:after,.ngb-grid .grid-column-resize-handle:focus-visible:after{opacity:1}body.ngb-datagrid-column-resizing{cursor:col-resize!important;-webkit-user-select:none;user-select:none}.ngb-grid.ngb-grid--column-reorderable .grid-header thead tr:first-child th.grid-header__column--reorderable{position:relative}.ngb-grid .grid-column-reorder-handle{flex:0 0 auto;margin-right:.15rem;padding:.1rem .18rem;border-radius:999px;color:var(--dg-text-muted);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;opacity:.82;line-height:1;font-size:.95rem}.ngb-grid .grid-header__column--reorderable:hover .grid-column-reorder-handle,.ngb-grid .grid-column-reorder-handle:focus-visible{opacity:1;background:color-mix(in srgb,var(--dg-accent) 12%,transparent)}.ngb-grid .grid-column-group-handle{flex:0 0 auto;padding:.15rem .25rem;border-radius:999px;color:var(--dg-text-muted);cursor:grab;-webkit-user-select:none;user-select:none;line-height:1;font-size:.9rem}.ngb-grid .grid-column-group-handle--active,.ngb-grid .grid-column-group-handle:hover{color:var(--dg-primary);background:color-mix(in srgb,var(--dg-primary-soft) 55%,transparent)}.ngb-grid .grid-header__column--drag-over{background:color-mix(in srgb,var(--dg-accent) 12%,transparent);box-shadow:inset 0 -2px 0 var(--dg-accent)}.ngb-grid .grid-header__cell{display:flex;align-items:center;justify-content:space-between;gap:.625rem;width:100%;overflow:visible}.ngb-grid .grid-sort-button{display:inline-flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left}.ngb-grid .grid-sort-button__label{min-width:0;overflow:hidden;text-overflow:ellipsis}.ngb-grid .grid-sort-button__indicator{flex:0 0 auto;font-size:.8rem;color:var(--dg-placeholder)}.ngb-grid .grid-sort-button__indicator--active{color:var(--dg-primary)}.ngb-grid .grid-filter-menu-host{position:relative;display:inline-flex;flex:0 0 auto;z-index:30}.ngb-grid .grid-filter-menu-popover:not(.ngb-datagrid-floating-panel){position:absolute;top:calc(100% + .5rem);right:0;z-index:120}.ngb-grid .grid-filter-menu-popover .grid-filter-menu-surface{position:static;top:auto;right:auto}.ngb-grid .grid-filter-menu-trigger{min-width:var(--dg-control-height);width:var(--dg-control-height);height:var(--dg-control-height);padding:0}.ngb-grid .grid-filter-menu-trigger--active,.ngb-grid .filter-menu-active .grid-filter-menu-trigger{border-color:var(--dg-focus-border);background:var(--dg-primary-soft);color:var(--dg-primary)}.ngb-grid .grid-filter-menu-trigger--check .bi{color:var(--dg-placeholder)}.ngb-grid .grid-filter-menu-trigger--check.grid-filter-menu-trigger--active,.ngb-grid .filter-menu-active .grid-filter-menu-trigger--check{border-color:var(--dg-focus-border);background:var(--dg-primary-soft);color:var(--dg-primary)}.ngb-grid .grid-filter-menu-trigger--check.grid-filter-menu-trigger--active .bi,.ngb-grid .filter-menu-active .grid-filter-menu-trigger--check .bi{color:var(--dg-primary)}.ngb-grid .grid-filter-menu-surface{position:absolute;top:calc(100% + .5rem);right:0;min-width:18rem;padding:1rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-md);background:var(--dg-surface);box-shadow:var(--dg-shadow-md);z-index:120}.ngb-grid .grid-filter-menu-surface__header{margin-bottom:.875rem}.ngb-grid .grid-filter-menu-surface__eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--dg-text-subtle)}.ngb-grid .grid-filter-menu-surface__title{margin-top:.15rem;font-size:.95rem;font-weight:700;color:var(--dg-text)}.ngb-grid .grid-filter-stack{display:flex;flex-direction:column;gap:.75rem}.ngb-grid .grid-filter-stack--multi{gap:.65rem}.ngb-grid .grid-filter-operator-select{width:100%;min-height:var(--dg-control-height);padding:.45rem .65rem;border:1px solid var(--dg-border);border-radius:.375rem;background:var(--dg-surface);font-size:.875rem;color:var(--dg-text)}.ngb-grid .grid-filter-operator-select--compact{width:auto;min-width:2.25rem;max-width:3.5rem;padding:.35rem .25rem;font-size:.6875rem}.ngb-grid .grid-filter-logic-select{display:flex;justify-content:center;margin:.15rem 0}.ngb-grid .grid-filter-logic-select select{width:auto;min-width:4.5rem;min-height:1.75rem;padding:.2rem 1.5rem .2rem .65rem;border:1px solid var(--dg-border);border-radius:.375rem;background:var(--dg-surface);font-size:.8125rem;font-weight:600}.ngb-grid .grid-filter-menu-surface__actions--split{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.ngb-grid .grid-filter-apply--secondary,.ngb-grid .grid-filter-cancel--secondary{width:100%;border:1px solid var(--dg-border-strong);background:var(--dg-surface-muted);color:var(--dg-text);font-weight:600}.ngb-grid .grid-filter-apply--secondary:hover,.ngb-grid .grid-filter-cancel--secondary:hover{background:var(--dg-surface-subtle)}.ngb-grid .grid-filter-multi-panel{display:flex;flex-direction:column;gap:.5rem;min-width:16.5rem}.ngb-grid .grid-filter-join-select{display:inline-block;width:fit-content;max-width:100%;margin:.1rem 0}.ngb-grid .grid-filter-join-select__control{width:100%;min-height:1.75rem;padding:.2rem 1.25rem .2rem .5rem;border:1px solid var(--dg-border);border-radius:.375rem;background:var(--dg-surface);font-size:.8125rem;font-weight:600;text-align:left}.ngb-grid .grid-filter-value-input,.ngb-grid .grid-filter-value-select{width:100%;min-height:var(--dg-control-height);padding:.45rem .65rem;border:1px solid var(--dg-border);border-radius:.375rem;background:var(--dg-surface);font-size:.875rem}.ngb-grid .grid-filter-apply--secondary:disabled,.ngb-grid .grid-filter-cancel--secondary:disabled{opacity:.45;cursor:not-allowed}.ngb-grid .grid-group-row td,.ngb-grid .grid-group-footer-row td{background:color-mix(in srgb,var(--dg-surface-muted) 88%,white);border-bottom:1px solid var(--dg-border)}.ngb-grid .grid-group-row--overlay td{box-shadow:inset 0 -1px 0 var(--dg-border),0 1px color-mix(in srgb,var(--dg-border) 36%,transparent)}.ngb-grid .grid-group-footer-row--overlay td{box-shadow:inset 0 1px 0 var(--dg-border),0 -1px color-mix(in srgb,var(--dg-border) 36%,transparent)}.ngb-grid .grid-group-row__cell{padding:0;vertical-align:top}.ngb-grid .grid-group-footer-row__cell,.ngb-grid .grid-group-row__utility-cell{padding:.7rem .75rem;vertical-align:top}.ngb-grid .grid-group-row__toggle{display:flex;align-items:center;gap:.55rem;width:100%;padding:.7rem 1rem;border:0;background:transparent;color:var(--dg-text);text-align:left;font-size:.875rem;font-weight:600}.ngb-grid .grid-group-row__cell--lead .grid-group-row__toggle{padding-inline-end:.75rem}.ngb-grid .grid-group-row__toggle:hover{background:color-mix(in srgb,var(--dg-primary-soft) 34%,transparent)}.ngb-grid .grid-group-row__content{display:inline-flex;align-items:center;gap:.5rem;min-width:0}.ngb-grid .grid-group-row__label{color:var(--dg-text)}.ngb-grid .grid-group-row__count{font-size:.75rem;font-weight:700;color:var(--dg-text-muted)}.ngb-grid .grid-group-row__column-slot{padding:.25rem .75rem .75rem;font-size:.8125rem;color:var(--dg-text-muted)}.ngb-grid .grid-group-row__cell--lead .grid-group-row__column-slot{padding-inline-start:2.75rem}.ngb-grid .grid-group-footer-row td{background:color-mix(in srgb,var(--dg-surface-muted) 94%,white)}.ngb-grid .grid-filter-menu-popover .grid-filter-menu-surface:has(.grid-filter-menu-surface__multi){width:16.25rem;max-width:min(16.25rem,92vw);padding:.75rem}.ngb-grid .grid-filter-menu-surface__multi{display:flex;flex-direction:column;gap:.5rem;width:100%}.ngb-grid .grid-filter-menu-surface__multi .grid-filter-menu-surface__search{border-radius:.5rem;min-height:2rem;padding:.4rem .65rem;font-size:.8125rem}.ngb-grid .grid-multi-filter-list{max-height:11.5rem;overflow:auto;margin:0 -.75rem;padding:.15rem 0;border-top:1px solid var(--dg-border);border-bottom:1px solid var(--dg-border)}.ngb-grid .grid-multi-filter-option{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:.45rem .75rem;font-size:.8125rem;font-weight:600;color:var(--dg-text);cursor:pointer}.ngb-grid .grid-multi-filter-option+.grid-multi-filter-option{border-top:1px solid var(--dg-filter-divider)}.ngb-grid .grid-multi-filter-option--summary{font-weight:700}.ngb-grid .grid-multi-filter-option__main{display:inline-flex;align-items:center;gap:.75rem;min-width:0}.ngb-grid .grid-multi-filter-option__main input{width:1rem;height:1rem;margin:0;accent-color:var(--dg-primary);flex:0 0 auto}.ngb-grid .grid-multi-filter-option__count{font-size:.75rem;font-weight:700;color:var(--dg-text-muted)}.ngb-grid .grid-filter-stack__label{font-size:.8125rem;font-weight:600;color:var(--dg-text-muted)}.ngb-grid .grid-filter-stack__footer,.ngb-grid .grid-filter-menu-surface__actions{display:flex;align-items:center;justify-content:space-between;gap:.625rem}.ngb-grid .grid-filter-inline{display:flex;align-items:center;gap:.45rem;min-width:0;width:100%}.ngb-grid .grid-filter-field{position:relative;min-width:12rem;flex:1 1 auto}.ngb-grid .grid-filter-field--with-icon .grid-filter-control{padding-right:2.25rem}.ngb-grid .grid-filter-field__icon{position:absolute;right:.8rem;top:50%;transform:translateY(-50%);color:var(--dg-placeholder);pointer-events:none}.ngb-grid .grid-filter-control,.ngb-grid .grid-edit-control{width:100%;min-width:0;min-height:var(--dg-control-height);padding:.5rem .75rem;border:1px solid var(--dg-border);border-radius:.3rem;background:var(--dg-surface);color:var(--dg-text);font-size:.875rem}.ngb-grid .grid-edit-checkbox{width:1rem;height:1rem;margin-top:0}.ngb-grid .grid-filter-operator{position:relative;flex:0 0 auto}.ngb-grid .grid-filter-operator__button{padding:.55rem .8rem;font-size:.8125rem;font-weight:600;color:var(--dg-text-muted)}.ngb-grid .grid-filter-operator__button--compact{min-width:var(--dg-control-height);width:var(--dg-control-height);padding:0}.ngb-grid .grid-filter-operator__button--active{border-color:var(--dg-primary);color:var(--dg-primary)}.ngb-grid .grid-filter-operator .dropdown-menu:not(.ngb-datagrid-floating-panel){position:absolute;inset:calc(100% + .35rem) 0 auto auto;min-width:12rem;margin:0;border-radius:.9rem;border-color:var(--dg-border);box-shadow:var(--dg-shadow-md);z-index:120}.ngb-grid .grid-filter-clear{padding:.55rem .8rem;font-size:.8125rem;color:var(--dg-text-muted)}.ngb-grid .grid-filter-apply{padding:.625rem .95rem;border-color:var(--dg-primary);background:var(--dg-primary);color:var(--dg-on-primary);font-size:.875rem;font-weight:600}.ngb-grid .grid-filter-apply:hover{border-color:var(--dg-primary-active);background:var(--dg-primary-active);color:var(--dg-on-primary)}.ngb-grid .grid-filter-menu-surface__actions--multi{justify-content:space-between;margin-top:.35rem}.ngb-grid .grid-filter-menu-surface__multi .grid-filter-apply{min-width:5.25rem;padding:.5rem 1.15rem;font-size:.8125rem}.ngb-grid .grid-filter-cancel{padding:.5rem .85rem;font-size:.8125rem;font-weight:600;color:var(--dg-text);border:1px solid var(--dg-border-strong);background:var(--dg-surface)}.ngb-grid .grid-filter-cancel:hover{border-color:var(--dg-border-strong);background:var(--dg-surface-subtle);color:var(--dg-text)}.ngb-grid .filter-row th{background:var(--dg-surface-filter-row);padding-top:.625rem;padding-bottom:.625rem;overflow:visible;position:relative;z-index:25}.ngb-grid.ngb-grid--menu-open .filter-row th{z-index:85}.ngb-grid .column-pinned-start,.ngb-grid .column-pinned-end{position:sticky;background:inherit;z-index:2}.ngb-grid .grid-header .column-pinned-start,.ngb-grid .grid-header .column-pinned-end{z-index:6}.ngb-grid .column-pinned-start{box-shadow:var(--dg-pin-shadow-start)}.ngb-grid .column-pinned-start:has(+.column-pinned-start){box-shadow:none}.ngb-grid .column-pinned-end{box-shadow:var(--dg-pin-shadow-end)}.ngb-grid .column-locked{background:var(--dg-locked-bg)}.ngb-grid .sticky-row,.ngb-grid .sticky-row td{background:var(--dg-surface-sticky-row);box-shadow:inset 0 0 0 1px var(--dg-sticky-border)}.ngb-grid .sticky-row{position:sticky;z-index:4}.ngb-grid .grid-sticky-badge{display:inline-flex;align-items:center;margin-left:.45rem;padding:.12rem .4rem;border-radius:.25rem;background:var(--dg-sticky-badge-bg);color:var(--dg-sticky-badge-text);font-size:.62rem;font-weight:800;letter-spacing:.04em;vertical-align:middle}.ngb-grid .grid-row-action--icon{min-width:2.05rem;width:2.05rem;height:2.05rem;min-height:2.05rem;padding:0;border-radius:var(--dg-radius-md)}.ngb-grid .grid-row-action--edit-icon{border-color:var(--dg-primary);background:var(--dg-primary);color:var(--dg-on-primary)}.ngb-grid .grid-row-action--edit-icon:hover{border-color:var(--dg-primary-hover);background:var(--dg-primary-hover);color:var(--dg-on-primary)}.ngb-grid.ngb-grid--zebra .grid-body tbody tr:nth-child(2n):not(.sticky-row):not(.row-selected) td{background:var(--dg-row-even-bg, var(--dg-surface-muted))}.ngb-grid:not(.ngb-grid--zebra) .grid-body tbody tr:nth-child(odd):not(.sticky-row):not(.row-selected):not(.row-highlight) td{background:var(--dg-row-odd-bg)}.ngb-grid:not(.ngb-grid--zebra) .grid-body tbody tr:nth-child(2n):not(.sticky-row):not(.row-selected):not(.row-highlight) td{background:var(--dg-row-even-bg)}.ngb-grid .grid-body tbody tr.grid-data-row:hover:not(.sticky-row):not(.row-selected):not(.row-highlight) td{background:var(--dg-row-hover-bg)}.ngb-grid .row-selected,.ngb-grid .row-selected td{background:var(--dg-row-selected-bg)}.ngb-grid .row-highlight,.ngb-grid .row-highlight td{background:var(--dg-warning-soft)}.ngb-grid .grid-header th.column-pinned-start,.ngb-grid .grid-header th.column-pinned-end,.ngb-grid .grid-body tbody td.column-pinned-start,.ngb-grid .grid-body tbody td.column-pinned-end{background:var(--dg-surface)}.ngb-grid .grid-header th.column-locked,.ngb-grid .grid-body tbody td.column-locked{background:var(--dg-locked-bg)!important}.ngb-grid .grid-body tbody tr.row-selected td.column-locked{background:var(--dg-row-selected-bg)!important}.ngb-grid .cell-highlight{background:var(--dg-primary-soft)}.ngb-grid .grid-search-highlight{padding:0;border-radius:.15rem;background:var(--dg-sticky-badge-bg);color:inherit;font-weight:inherit}.ngb-grid .grid-detail-toggle{min-width:2rem;width:2rem;height:2rem;padding:0;border-radius:999px}.ngb-grid .grid-cell-content{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis}.ngb-grid .grid-cell-content,.ngb-grid .grid-cell-text{font-weight:400}.ngb-grid .grid-cell--emphasis .grid-cell-content,.ngb-grid .grid-cell--emphasis .grid-cell-text{font-weight:700}.ngb-grid .grid-boolean-pill{display:inline-flex;align-items:center;justify-content:center;min-width:3.5rem;padding:.25rem .55rem;border-radius:999px;background:var(--dg-neutral-pill-bg);color:var(--dg-text-muted);font-size:.75rem;font-weight:700}.ngb-grid .grid-boolean-pill--true{background:var(--dg-success-soft);color:var(--dg-success-text)}.ngb-grid .grid-row-action{padding:.55rem .8rem;font-size:.8125rem;font-weight:600;white-space:nowrap}.ngb-grid .grid-actions-cell{overflow:visible;text-overflow:clip;white-space:normal}.ngb-grid .grid-actions-cell__inner{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;flex-wrap:nowrap}.ngb-grid .grid-row-action--secondary{color:var(--dg-primary);background:var(--dg-primary-soft);border-color:var(--dg-primary-border-subtle)}.ngb-grid .grid-row-action--danger{color:var(--dg-danger-text);background:var(--dg-danger-soft);border-color:var(--dg-danger-border-subtle)}.ngb-grid .grid-row-action--success{color:var(--dg-success-text);background:var(--dg-success-soft);border-color:var(--dg-success-border-subtle)}.ngb-grid .grid-row-action--neutral{color:var(--dg-text-muted);background:var(--dg-locked-bg);border-color:var(--dg-border)}.ngb-grid .grid-detail-row__cell{padding:0;background:var(--dg-detail-row-bg)}.ngb-grid .grid-detail-row__content{padding:1rem 1.25rem}.ngb-grid.ngb-grid--compact .grid-table th,.ngb-grid.ngb-grid--compact .grid-table td{padding:.55rem .65rem}.ngb-grid.ngb-grid--compact .datagrid-toolbar__button,.ngb-grid.ngb-grid--compact .grid-row-action,.ngb-grid.ngb-grid--compact .grid-filter-apply,.ngb-grid.ngb-grid--compact .grid-filter-clear,.ngb-grid.ngb-grid--compact .grid-filter-operator__button,.ngb-grid.ngb-grid--compact .grid-filter-menu-trigger,.ngb-grid.ngb-grid--compact .grid-detail-toggle,.ngb-grid.ngb-grid--compact .grid-filter-control,.ngb-grid.ngb-grid--compact .grid-edit-control{min-height:32px;font-size:.8125rem}.ngb-grid .grid-row--reorderable{cursor:grab}.ngb-grid .grid-row--reorderable.ngb-dnd-dragging{cursor:grabbing;opacity:.82}.ngb-grid .ngb-dnd-placeholder{display:table-row;background:transparent}.ngb-grid tbody.ngb-dnd-list,.ngb-grid tbody.ngb-dnd-list.ngb-dnd-over[data-drop-valid=true],.ngb-grid tbody.ngb-dnd-list.ngb-dnd-over[data-drop-valid=false]{border:0;border-radius:0;background:transparent;box-shadow:none}.ngb-grid .ngb-dnd-placeholder>td{padding:0;border:0;background:transparent}.ngb-grid .ngb-dnd-placeholder__bar{display:block;height:.35rem;background:var(--dg-primary-selection-overlay)}.ngb-grid.ngb-grid--stacked .grid-header-shell,.ngb-grid.ngb-grid--stacked .grid-header{display:none}.ngb-grid.ngb-grid--stacked .table-wrapper{width:100%}.ngb-grid.ngb-grid--stacked .table-body-scroll{width:100%;max-height:none;overflow:visible;border-top:0;border-bottom:0}.ngb-grid.ngb-grid--stacked .grid-table.grid-body{width:100%;min-width:0;max-width:100%;table-layout:auto}.ngb-grid.ngb-grid--stacked .grid-table.grid-body colgroup{display:none}.ngb-grid.ngb-grid--stacked .grid-table.grid-body tbody{display:block;width:100%}.ngb-grid.ngb-grid--menu-open .grid-header-shell,.ngb-grid.ngb-grid--row-operator-open .grid-header-shell,.ngb-grid.ngb-grid--row-operator-open .filter-row th{overflow:visible}.ngb-grid.ngb-grid--menu-open .grid-header-shell,.ngb-grid.ngb-grid--menu-open .grid-header{z-index:80}.ngb-grid.ngb-grid--menu-open .grid-header thead th.filter-menu-open{position:relative;z-index:95;overflow:visible}.ngb-grid.ngb-grid--menu-open .grid-filter-menu-host{z-index:90}.ngb-grid__filter-menu-overlay{pointer-events:auto}.ngb-grid__layout-toolbar-host:empty{display:none}.ngb-grid__layout-toolbar-host:not(:empty){border-bottom:1px solid var(--dg-border)}.ngb-grid .table-wrapper{position:relative}.ngb-grid.ngb-grid--loading .table-wrapper{pointer-events:none}.ngb-grid.ngb-grid--loading .table-wrapper .grid-table{opacity:.45}.ngb-grid__loading-overlay{position:absolute;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;background:var(--dg-loading-overlay);pointer-events:none}.ngb-grid.ngb-grid--stacked .grid-table.grid-body tbody tr{display:grid;width:100%;box-sizing:border-box;grid-template-columns:minmax(0,1fr);gap:.65rem;border-bottom:1px solid var(--dg-border);padding:.9rem 1rem}.ngb-grid.ngb-grid--stacked .grid-table.grid-body tbody td{display:grid;width:100%;min-width:0;box-sizing:border-box;white-space:normal;border-bottom:0;padding:.35rem 0;position:static!important;left:auto!important;right:auto!important}.ngb-grid.ngb-grid--stacked .grid-table.grid-body tbody td:not([data-title]){grid-column:1/-1}.ngb-grid.ngb-grid--stacked:not(.ngb-grid--stacked-cards) .grid-table.grid-body tbody td[data-title]{grid-template-columns:minmax(5.5rem,34%) minmax(0,1fr);align-items:baseline;column-gap:.75rem}.ngb-grid.ngb-grid--stacked:not(.ngb-grid--stacked-cards) .grid-table.grid-body tbody td:before{content:attr(data-title);font-size:.8125rem;font-weight:700;color:var(--dg-text-muted);line-height:1.3}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .grid-table.grid-body tbody tr{display:block;width:100%;padding:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .grid-table.grid-body tbody td.ngb-stacked-card-cell{display:block;width:100%;padding:.9rem 1rem;border-bottom:1px solid var(--dg-border)}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card,.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__layout{width:100%;min-width:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__layout{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem}@media(min-width:40rem){.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__layout{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);align-items:start;column-gap:1.5rem}}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__group{display:flex;flex-direction:column;gap:.85rem;min-width:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__field{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;min-width:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__label{font-size:.8125rem;font-weight:700;color:var(--dg-text-muted);line-height:1.3}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__value{width:100%;min-width:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .grid-table.grid-body tbody td:not([data-title]):not(.ngb-stacked-card-cell){display:block;width:100%;padding:.65rem 1rem 0;border-bottom:0}.ngb-grid[data-theme=material] .datagrid-toolbar__button--primary,.ngb-grid[data-theme=tailwind] .datagrid-toolbar__button--primary,.ngb-grid[data-theme=material] .grid-filter-apply,.ngb-grid[data-theme=tailwind] .grid-filter-apply{border-color:var(--dg-primary);background:var(--dg-primary)}.ngb-grid.ngb-responsive .table{width:100%}@media(max-width:992px){.ngb-grid .grid-filter-inline{min-width:11rem}.ngb-grid .grid-filter-field{min-width:10rem}}@media(max-width:768px){.ngb-grid .datagrid-toolbar{align-items:stretch}.ngb-grid .datagrid-toolbar__actions{justify-content:stretch}.ngb-grid .datagrid-toolbar__button{flex:1 1 auto}.ngb-grid .grid-filter-inline{width:100%}.ngb-grid.ngb-responsive thead{display:none}.ngb-grid.ngb-responsive tbody tr{display:grid;grid-template-columns:1fr;gap:.5rem;border:1px solid var(--dg-border);border-radius:.75rem;padding:.75rem;margin-bottom:.75rem}.ngb-grid.ngb-responsive tbody td{display:grid;grid-template-columns:8rem 1fr}.ngb-grid.ngb-responsive tbody td:before{content:attr(data-title);font-weight:600;opacity:.75;padding-right:.5rem}}.ngb-grid .datagrid-editing-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.75rem 1rem;border:1px solid var(--dg-border);border-bottom:0;border-radius:var(--dg-radius-lg) var(--dg-radius-lg) 0 0;background:var(--dg-surface)}.ngb-grid .datagrid-editing-toolbar__start,.ngb-grid .datagrid-editing-toolbar__end{display:inline-flex;align-items:center;gap:.5rem}.ngb-grid .datagrid-editing-toolbar__save[hidden],.ngb-grid .datagrid-editing-toolbar__cancel[hidden]{display:none!important}.ngb-grid .datagrid-editing-toolbar__hint{flex:1 1 auto;text-align:center;font-size:.875rem;font-weight:600;color:var(--dg-text-muted)}.ngb-grid .grid-cell--incell{cursor:cell}.ngb-grid .grid-cell--incell:not(.grid-cell--editing) .grid-cell-content,.ngb-grid .grid-cell--incell:not(.grid-cell--editing) .grid-cell-content *{pointer-events:none}.ngb-grid .grid-cell--editing .grid-edit-control{border-color:var(--dg-primary);box-shadow:var(--dg-focus-shadow)}.ngb-grid .grid-external-editor{position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;padding:1.5rem}.ngb-grid .grid-external-editor__backdrop{position:absolute;inset:0;border:0;background:var(--dg-backdrop);cursor:pointer}.ngb-grid .grid-external-editor__panel{position:relative;z-index:1;width:min(32rem,100%);max-height:min(90vh,40rem);overflow:auto;padding:1.25rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-lg);background:var(--dg-surface);box-shadow:var(--dg-shadow-md)}.ngb-grid .grid-external-editor__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.ngb-grid .grid-external-editor__title{margin:0;font-size:1.125rem;font-weight:700}.ngb-grid .grid-external-editor__close{border:0;background:transparent;color:var(--dg-text-muted);padding:.25rem;cursor:pointer}.ngb-grid .grid-external-editor__form{display:grid;gap:.85rem}.ngb-grid .grid-external-editor__field{display:grid;gap:.35rem}.ngb-grid .grid-external-editor__label{font-size:.8125rem;font-weight:700;color:var(--dg-text-muted);text-transform:uppercase;letter-spacing:.03em}.ngb-grid .grid-external-editor__error{font-size:.75rem;color:var(--dg-danger)}.ngb-grid .grid-external-editor__actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}.ngb-grid__status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ngb-grid .grid-body td[role=gridcell]:focus-visible,.ngb-grid .grid-body td[role=gridcell].grid-cell--focused{outline:2px solid var(--dg-focus-ring);outline-offset:-2px}.ngb-grid--rtl .grid-column-reorder-handle{transform:scaleX(-1)}.ngb-grid--rtl .column-pinned-start{left:auto;right:var(--dg-pin-start, 0)}.ngb-grid--rtl .column-pinned-end{right:auto;left:var(--dg-pin-end, 0)}.ngb-grid .grid-footer{width:100%;color:var(--dg-pager-text)}.ngb-grid .grid-footer--top{margin-bottom:0;border-bottom:var(--dg-table-border-width) solid var(--dg-border)}.ngb-grid .grid-footer--custom{width:100%}\n"] }]
10552
+ ], standalone: true, template: "<div\n class=\"ngb-grid\"\n [attr.dir]=\"resolvedDir()\"\n [attr.data-theme]=\"theme\"\n [class.ngb-grid--rtl]=\"isRtl()\"\n [class.ngb-responsive]=\"isResponsiveEnabled()\"\n [class.ngb-grid--compact]=\"densityMode === 'compact'\"\n [class.ngb-grid--stacked]=\"isStackedLayout()\"\n [class.ngb-grid--stacked-cards]=\"isStackedCardsLayout()\"\n [class.ngb-grid--menu-open]=\"!!openFilterMenuField || !!openMenuOperatorField || !!openRowFilterField\"\n [class.ngb-grid--row-operator-open]=\"!!openRowFilterField\"\n [class.ngb-grid--zebra]=\"zebraStripesEnabled\"\n [class.ngb-grid--resizable]=\"resizable && !isStackedLayout()\"\n [class.ngb-grid--column-reorderable]=\"isColumnReorderEnabled()\"\n [class.ngb-grid--loading]=\"loading\"\n [attr.aria-busy]=\"loading ? 'true' : null\"\n [style.--ngb-render-tick]=\"renderTick\"\n>\n <div class=\"ngb-grid__layout-toolbar-host\">\n <ng-content select=\"ngb-datagrid-layout-toolbar\"></ng-content>\n </div>\n <ngb-datagrid-toolbar [grid]=\"gridHost\"></ngb-datagrid-toolbar>\n <ngb-datagrid-editing-toolbar\n [grid]=\"gridHost\"\n [selectedCount]=\"getSelectedCount()\"\n [editActive]=\"isToolbarEditActive()\"\n [saveDisabled]=\"isToolbarSaveDisabled()\"\n ></ngb-datagrid-editing-toolbar>\n\n @if (paginationActive && pagerShowsAt('top')) {\n <ngb-datagrid-footer [grid]=\"gridHost\" placement=\"top\"></ngb-datagrid-footer>\n }\n\n <div\n class=\"ngb-grid__status visually-hidden-focusable\"\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >{{ statusMessage }}</div>\n\n @if (isGroupingEnabled()) {\n <div\n class=\"ngb-grid__group-panel\"\n [class.ngb-grid__group-panel--active]=\"groupPanelDragActive && !groupPanelDragDenied\"\n [class.ngb-grid__group-panel--denied]=\"groupPanelDragDenied\"\n (dragover)=\"onGroupPanelDragOver($event)\"\n (dragleave)=\"onGroupPanelDragLeave($event)\"\n (drop)=\"onGroupPanelDrop($event)\"\n >\n <div class=\"ngb-grid__group-panel-label\">{{ groupPanelLabel() }}</div>\n @if (groupedColumns().length) {\n <div class=\"ngb-grid__group-chip-list\">\n @for (descriptor of groupedColumns(); track descriptor.field) {\n <div class=\"ngb-grid__group-chip\">\n <button\n type=\"button\"\n class=\"ngb-grid__group-chip-button\"\n (click)=\"toggleGroupDirection(descriptor.field)\"\n [attr.aria-label]=\"groupDirectionAriaLabel(descriptor)\"\n >\n <span class=\"ngb-grid__group-chip-label\">{{ groupFieldLabel(descriptor) }}</span>\n <span class=\"ngb-grid__group-chip-dir\">{{ descriptor.dir === 'desc' ? '\u2193' : '\u2191' }}</span>\n </button>\n <button\n type=\"button\"\n class=\"ngb-grid__group-chip-remove\"\n (click)=\"removeGroupField(descriptor.field)\"\n [attr.aria-label]=\"groupRemoveAriaLabel(descriptor)\"\n >\n <span class=\"bi bi-x-lg\" aria-hidden=\"true\"></span>\n </button>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <div class=\"table-wrapper\" [ngClass]=\"responsiveWrapperClasses\">\n @if (loading) {\n <div class=\"ngb-grid__loading-overlay\" role=\"presentation\">\n <div class=\"spinner-border spinner-border-sm text-primary\" role=\"status\">\n <span class=\"visually-hidden\">Loading</span>\n </div>\n </div>\n }\n <div class=\"grid-header-shell\" #headerScroller>\n <table class=\"grid-table grid-header mb-0\" [ngClass]=\"tableClassList\" [style.width.px]=\"tablePixelWidth\">\n @if (tableOptions?.caption) {\n <caption\n [class.caption-top]=\"(tableOptions?.captionSide ?? 'top') === 'top'\"\n >\n {{ tableOptions?.caption }}\n </caption>\n }\n\n <colgroup\n ngbDatagridColgroup\n [grid]=\"gridHost\"\n [ngbSyncColgroup]=\"colgroupSyncId\"\n syncRole=\"header\"\n [syncMode]=\"resizable ? 'explicit' : 'auto'\"\n ></colgroup>\n\n <thead\n class=\"table-light\"\n ngbDatagridHeader\n [grid]=\"gridHost\"\n [renderTick]=\"renderTick\"\n ></thead>\n </table>\n </div>\n\n <div [class.table-body-scroll]=\"shouldEnableScroll\" #bodyScroller (scroll)=\"onBodyHorizontalScroll()\">\n @if (hasStickyGroupHeaders()) {\n <div\n class=\"ngb-grid__group-sticky-layer ngb-grid__group-sticky-layer--top\"\n [style.transform]=\"'translateY(' + stickyGroupHeaderTranslateY + 'px)'\"\n >\n <table\n class=\"grid-table grid-group-sticky-table mb-0\"\n [ngClass]=\"tableClassList\"\n [style.width.px]=\"tablePixelWidth\"\n role=\"presentation\"\n >\n <colgroup>\n @for (width of stickyGroupOverlayColumnWidths; track $index) {\n <col [style.width.px]=\"width || null\" />\n }\n </colgroup>\n <tbody>\n @for (item of stickyGroupHeaderRows; track item.key) {\n <tr class=\"grid-group-row grid-group-row--overlay\">\n @if (showSelectionColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (rowDetailTpl) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (stickyRowsEnabled) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @for (col of visibleColumns; track col.field) {\n @if (shouldRenderGroupCell(col, item.group)) {\n <td\n class=\"grid-group-row__cell\"\n [class.grid-group-row__cell--lead]=\"isGroupLeadColumn(col, item.group)\"\n [attr.colspan]=\"groupCellColspan(col, item.group)\"\n >\n @if (isGroupLeadColumn(col, item.group)) {\n <button\n type=\"button\"\n class=\"grid-group-row__toggle\"\n (click)=\"toggleGroupCollapsed(item.group, item.level, item.startIndex)\"\n [attr.aria-expanded]=\"!item.collapsed\"\n >\n <span\n class=\"bi\"\n [ngClass]=\"item.collapsed ? 'bi-chevron-right' : 'bi-chevron-down'\"\n aria-hidden=\"true\"\n ></span>\n <span class=\"grid-group-row__content\" [style.padding-inline-start.rem]=\"groupRowIndent(item.level)\">\n @if (groupHeaderTpl) {\n <ng-container\n [ngTemplateOutlet]=\"groupHeaderTpl.template\"\n [ngTemplateOutletContext]=\"groupHeaderContext(item.group)\"\n ></ng-container>\n } @else {\n <span class=\"grid-group-row__label\">{{ groupRowLabel(item.group) }}</span>\n <span class=\"grid-group-row__count\">{{ groupRowCountLabel(item.group) }}</span>\n }\n </span>\n </button>\n @if (groupHeaderColumnTemplate(groupColumnField(col)); as tpl) {\n <div class=\"grid-group-row__column-slot\">\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"groupColumnContext(item.group, col)\"\n ></ng-container>\n </div>\n }\n } @else if (groupHeaderColumnTemplate(groupColumnField(col)); as tpl) {\n <div class=\"grid-group-row__column-slot\">\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"groupColumnContext(item.group, col)\"\n ></ng-container>\n </div>\n }\n </td>\n }\n }\n @if (showActionsColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n\n <table\n class=\"grid-table grid-body grid-body--main mb-0\"\n [ngClass]=\"tableClassList\"\n [style.width.px]=\"tablePixelWidth\"\n role=\"grid\"\n [attr.aria-rowcount]=\"ariaRowCount()\"\n [attr.aria-colcount]=\"ariaColCount()\"\n [attr.aria-readonly]=\"enableEdit || enableAdd ? 'false' : 'true'\"\n [attr.aria-label]=\"tableOptions?.caption || null\"\n >\n <colgroup\n ngbDatagridColgroup\n [grid]=\"gridHost\"\n [ngbSyncColgroup]=\"colgroupSyncId\"\n syncRole=\"body\"\n [syncMode]=\"resizable ? 'explicit' : 'auto'\"\n ></colgroup>\n\n <tbody\n [ngbDndList]=\"paged\"\n [dndDisabled]=\"!isRowReorderEnabled()\"\n (dndDropped)=\"onRowDrop($event)\"\n >\n @if (!hasRenderableRows()) {\n <tr class=\"ngb-grid__empty-row\">\n <td [attr.colspan]=\"ariaColCount()\" class=\"ngb-grid__empty text-center text-muted py-4\">\n {{ emptyStateLabel() }}\n </td>\n </tr>\n }\n\n @if (addingNew) {\n <tr\n ngbDatagridAddRow\n [grid]=\"gridHost\"\n [formGroup]=\"addForm\"\n ></tr>\n }\n\n @for (item of renderRows; track item.key) {\n @if (item.kind === 'group') {\n <tr\n class=\"grid-group-row\"\n [attr.data-group-key]=\"item.key\"\n [attr.data-group-level]=\"item.level\"\n >\n @if (showSelectionColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (rowDetailTpl) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (stickyRowsEnabled) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @for (col of visibleColumns; track col.field) {\n @if (shouldRenderGroupCell(col, item.group)) {\n <td\n class=\"grid-group-row__cell\"\n [class.grid-group-row__cell--lead]=\"isGroupLeadColumn(col, item.group)\"\n [attr.colspan]=\"groupCellColspan(col, item.group)\"\n >\n @if (isGroupLeadColumn(col, item.group)) {\n <button\n type=\"button\"\n class=\"grid-group-row__toggle\"\n (click)=\"toggleGroupCollapsed(item.group, item.level, item.startIndex)\"\n [attr.aria-expanded]=\"!item.collapsed\"\n >\n <span\n class=\"bi\"\n [ngClass]=\"item.collapsed ? 'bi-chevron-right' : 'bi-chevron-down'\"\n aria-hidden=\"true\"\n ></span>\n <span class=\"grid-group-row__content\" [style.padding-inline-start.rem]=\"groupRowIndent(item.level)\">\n @if (groupHeaderTpl) {\n <ng-container\n [ngTemplateOutlet]=\"groupHeaderTpl.template\"\n [ngTemplateOutletContext]=\"groupHeaderContext(item.group)\"\n ></ng-container>\n } @else {\n <span class=\"grid-group-row__label\">{{ groupRowLabel(item.group) }}</span>\n <span class=\"grid-group-row__count\">{{ groupRowCountLabel(item.group) }}</span>\n }\n </span>\n </button>\n @if (groupHeaderColumnTemplate(groupColumnField(col)); as tpl) {\n <div class=\"grid-group-row__column-slot\">\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"groupColumnContext(item.group, col)\"\n ></ng-container>\n </div>\n }\n } @else if (groupHeaderColumnTemplate(groupColumnField(col)); as tpl) {\n <div class=\"grid-group-row__column-slot\">\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"groupColumnContext(item.group, col)\"\n ></ng-container>\n </div>\n }\n </td>\n }\n }\n @if (showActionsColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n </tr>\n } @else if (item.kind === 'group-footer') {\n <tr\n class=\"grid-group-footer-row\"\n [attr.data-group-key]=\"item.key\"\n [attr.data-group-level]=\"item.level\"\n >\n @if (showSelectionColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (rowDetailTpl) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (stickyRowsEnabled) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @for (col of visibleColumns; track col.field) {\n <td class=\"grid-group-footer-row__cell\">\n @if (groupFooterTemplate(groupColumnField(col)); as tpl) {\n <div class=\"grid-group-row__column-slot\">\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"groupColumnContext(item.group, col)\"\n ></ng-container>\n </div>\n }\n </td>\n }\n @if (showActionsColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n </tr>\n } @else {\n <tr\n class=\"grid-data-row\"\n ngbDatagridDataRow\n [grid]=\"gridHost\"\n [renderTick]=\"renderTick\"\n [row]=\"item.row\"\n [index]=\"item.pagedIndex\"\n [selected]=\"isRowSelected(item.row, item.pagedIndex)\"\n [ngbDndItem]=\"item.row\"\n [dndIndex]=\"item.pagedIndex\"\n [dndDisabled]=\"!isRowReorderEnabled()\"\n (click)=\"onRowSelect($event, item.pagedIndex); onRowClick($event, item.pagedIndex)\"\n [formGroup]=\"editForm\"\n [class.sticky-row]=\"isRowSticky(item.row, item.pagedIndex)\"\n [class.row-selected]=\"isRowSelected(item.row, item.pagedIndex)\"\n [class.row-highlight]=\"isRowHighlighted(item.row, item.pagedIndex)\"\n [class.grid-row--reorderable]=\"isRowReorderEnabled()\"\n [ngClass]=\"resolveRowClass(item.row, item.pagedIndex)\"\n [ngStyle]=\"resolveRowStyle(item.row, item.pagedIndex)\"\n [attr.aria-selected]=\"isRowSelected(item.row, item.pagedIndex) ? 'true' : null\"\n [style.top.px]=\"stickyTop(item.row, item.pagedIndex)\"\n [style.z-index]=\"isRowSticky(item.row, item.pagedIndex) ? 3 : null\"\n ></tr>\n\n @if (rowDetailTpl && isExpanded(item.pagedIndex)) {\n <tr\n ngbDatagridDetailRow\n [grid]=\"gridHost\"\n [row]=\"item.row\"\n [index]=\"item.pagedIndex\"\n [attr.id]=\"'dg-row-detail-' + item.pagedIndex\"\n ></tr>\n }\n }\n }\n </tbody>\n </table>\n\n @if (hasStickyGroupFooters()) {\n <div\n class=\"ngb-grid__group-sticky-layer ngb-grid__group-sticky-layer--bottom\"\n [style.transform]=\"'translateY(' + stickyGroupFooterTranslateY + 'px)'\"\n >\n <table\n class=\"grid-table grid-group-sticky-table mb-0\"\n [ngClass]=\"tableClassList\"\n [style.width.px]=\"tablePixelWidth\"\n role=\"presentation\"\n >\n <colgroup>\n @for (width of stickyGroupOverlayColumnWidths; track $index) {\n <col [style.width.px]=\"width || null\" />\n }\n </colgroup>\n <tbody>\n @for (item of stickyGroupFooterRows; track item.key) {\n <tr class=\"grid-group-footer-row grid-group-footer-row--overlay\">\n @if (showSelectionColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (rowDetailTpl) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @if (stickyRowsEnabled) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n @for (col of visibleColumns; track col.field) {\n <td class=\"grid-group-footer-row__cell\">\n @if (groupFooterTemplate(groupColumnField(col)); as tpl) {\n <div class=\"grid-group-row__column-slot\">\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"groupColumnContext(item.group, col)\"\n ></ng-container>\n </div>\n }\n </td>\n }\n @if (showActionsColumn()) {\n <td class=\"grid-group-row__utility-cell\"></td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n </div>\n\n <table class=\"table grid-table grid-foot mb-0\" [style.width.px]=\"tablePixelWidth\">\n <colgroup>\n @for (col of visibleColumns; track col.field) {\n <col [style.width.px]=\"col?.width\" />\n }\n </colgroup>\n <tbody>\n <tr>\n <td [attr.colspan]=\"visibleColumns.length\" width=\"100%\">\n @if (paginationActive && pagerShowsAt('bottom')) {\n <ngb-datagrid-footer [grid]=\"gridHost\" placement=\"bottom\"></ngb-datagrid-footer>\n }\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n @if (externalEditOpen) {\n <ngb-datagrid-external-editor [grid]=\"gridHost\"></ngb-datagrid-external-editor>\n }\n\n @if (openFilterMenuField && openFilterMenuColumn && openFilterMenuAnchor) {\n <ngb-datagrid-filter-menu-panel\n [grid]=\"gridHost\"\n [col]=\"openFilterMenuColumn\"\n [anchor]=\"openFilterMenuAnchor\"\n />\n }\n\n @if (openRowFilterField && openRowFilterColumn && openRowFilterOperatorAnchor) {\n <ngb-datagrid-row-filter-operator-panel\n [grid]=\"gridHost\"\n [col]=\"openRowFilterColumn\"\n [anchor]=\"openRowFilterOperatorAnchor\"\n />\n }\n</div>\n", styles: ["@charset \"UTF-8\";[data-ngb-theme=bootstrap]{--ngb-select-icon: var(--_ngb-bootstrap-select-icon, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\"));--ngb-primary: var(--bs-primary, #0d6efd);--ngb-on-primary: #ffffff;--ngb-surface: var(--bs-body-bg, #ffffff);--ngb-surface-container: var(--bs-tertiary-bg, #f8f9fa);--ngb-surface-variant: var(--bs-secondary-bg, #e9ecef);--ngb-on-surface: var(--bs-body-color, #212529);--ngb-on-surface-variant: var(--bs-secondary-color, #6c757d);--ngb-border-color: var(--bs-border-color, #dee2e6);--ngb-primary-hover: var(--bs-link-hover-color, #0a58ca);--ngb-primary-container: var(--bs-primary-bg-subtle, #cfe2ff);--ngb-focus-ring: var(--bs-focus-ring-color, rgba(13, 110, 253, .25));--ngb-radius-sm: var(--bs-border-radius-sm, .25rem);--ngb-radius-md: var(--bs-border-radius, .375rem);--ngb-radius-lg: var(--bs-border-radius-lg, .5rem);--ngb-font-family: var(--bs-body-font-family, system-ui, sans-serif);--ngb-font-size-sm: .84rem;--ngb-density-row-height: 40px;--ngb-elevation-1: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--ngb-elevation-2: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--ngb-disabled-opacity: .45;--ngb-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--ngb-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--ngb-success: var(--bs-success, #198754);--ngb-on-success: #ffffff;--ngb-danger: var(--bs-danger, #dc3545);--ngb-on-danger: #ffffff;--ngb-space-1: .25rem;--ngb-space-2: .5rem;--ngb-space-3: .75rem;--ngb-space-4: 1rem}[data-bs-theme=light]{--_ngb-bootstrap-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\")}[data-bs-theme=dark]{--_ngb-bootstrap-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\")}[data-ngb-theme=material]{--ngb-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");--ngb-primary: var(--mat-sys-primary, #6750a4);--ngb-on-primary: var(--mat-sys-on-primary, #ffffff);--ngb-surface: var(--mat-sys-surface, #fffbfe);--ngb-surface-container: var(--mat-sys-surface-container, #f3edf7);--ngb-surface-variant: var(--mat-sys-surface-container-high, #ece6f0);--ngb-on-surface: var(--mat-sys-on-surface, #1d1b20);--ngb-on-surface-variant: var(--mat-sys-on-surface-variant, #49454f);--ngb-border-color: var(--mat-sys-outline-variant, #cac4d0);--ngb-primary-hover: color-mix(in srgb, var(--mat-sys-primary, #6750a4) 88%, var(--mat-sys-on-surface, #1d1b20));--ngb-primary-container: var(--mat-sys-primary-container, #eaddff);--ngb-focus-ring: var(--mat-sys-primary, #6750a4);--ngb-radius-sm: 4px;--ngb-radius-md: 12px;--ngb-radius-lg: 16px;--ngb-font-family: var(--mat-sys-body-medium-font, Roboto, Arial, sans-serif);--ngb-font-size-sm: var(--mat-sys-body-medium-size, .875rem);--ngb-density-row-height: 48px;--ngb-elevation-1: var(--mat-sys-level1, 0 1px 3px rgba(0, 0, 0, .2));--ngb-elevation-2: var(--mat-sys-level2, 0 2px 6px rgba(0, 0, 0, .2));--ngb-disabled-opacity: .38;--ngb-hover-bg: color-mix(in srgb, var(--mat-sys-on-surface, #1d1b20) 8%, var(--mat-sys-surface, #fffbfe));--ngb-selected-bg: var(--mat-sys-secondary-container, #e8def8);--ngb-success: #198754;--ngb-on-success: #ffffff;--ngb-danger: var(--mat-sys-error, #b3261e);--ngb-on-danger: var(--mat-sys-on-error, #ffffff);--ngb-space-1: .25rem;--ngb-space-2: .5rem;--ngb-space-3: .75rem;--ngb-space-4: 1rem}.ngb-grid,.ngb-datagrid-floating-panel{--dg-surface: #ffffff;--dg-surface-muted: #f9fafb;--dg-surface-subtle: #f3f4f6;--dg-surface-config: #edf4ff;--dg-surface-filter-row: #fffbeb;--dg-surface-sticky-row: #fefce8;--dg-border: #d7deea;--dg-border-strong: #cfd6e2;--dg-text: #1f2937;--dg-text-muted: #5b6578;--dg-text-subtle: #64748b;--dg-primary: #315efb;--dg-primary-hover: #2749c4;--dg-primary-active: #1d4ed8;--dg-primary-soft: #dbeafe;--dg-primary-border-subtle: #bfdbfe;--dg-accent: #3b82f6;--dg-on-primary: #ffffff;--dg-placeholder: #94a3b8;--dg-success: #39a949;--dg-success-soft: #dcfce7;--dg-success-text: #166534;--dg-success-border-subtle: #bbf7d0;--dg-danger: #ef4444;--dg-danger-soft: #fee2e2;--dg-danger-text: #b91c1c;--dg-danger-border-subtle: #fecaca;--dg-warning-soft: #fef3c7;--dg-warning-border: #fde68a;--dg-warning-text: #854d0e;--dg-filter-multi-icon: #39a949;--dg-filter-multi-icon-soft: #dcfce7;--dg-neutral-pill-bg: #e2e8f0;--dg-locked-bg: #f8fafc;--dg-row-selected-bg: #eef5ff;--dg-row-hover-bg: #f8fbff;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: #f8fbff;--dg-search-highlight-bg: #fef08a;--dg-sticky-border: #facc15;--dg-sticky-badge-bg: #fef08a;--dg-sticky-badge-text: #854d0e;--dg-dropdown-item-active-bg: var(--dg-primary-soft);--dg-dropdown-item-active-color: var(--dg-primary);--dg-focus-ring: #2563eb;--dg-focus-border: rgba(37, 99, 235, .45);--dg-focus-shadow: 0 0 0 .2rem rgba(37, 99, 235, .15);--dg-pin-shadow-start: 1px 0 0 rgba(15, 23, 42, .08);--dg-pin-shadow-end: -1px 0 0 rgba(15, 23, 42, .08);--dg-backdrop: rgba(15, 23, 42, .45);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(37, 99, 235, .18);--dg-filter-divider: rgba(219, 227, 239, .8);--dg-shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--dg-shadow-md: 0 8px 24px rgba(15, 23, 42, .12);--dg-radius-lg: .5rem;--dg-radius-md: .45rem;--dg-radius-sm: .35rem;--dg-control-height: 2.15rem;--dg-nav-height: 2.5rem;--dg-font-size-header: .92rem;--dg-font-size-cell: .84rem;--dg-font-size-label: .94rem;--dg-cell-padding-y: .75rem;--dg-cell-padding-x: .85rem;--dg-header-padding-y: .75rem;--dg-header-padding-x: .85rem;--dg-table-border-width: 1px;--dg-pager-surface: var(--dg-surface);--dg-pager-text: var(--dg-text-muted);--dg-pager-control-bg: var(--dg-surface);--dg-pager-control-hover-bg: var(--dg-surface-subtle);--dg-pager-control-border: var(--dg-border);--dg-pager-link-text: var(--dg-primary);--dg-pager-active-bg: var(--dg-primary);--dg-pager-active-border: var(--dg-primary);--dg-pager-active-text: var(--dg-on-primary);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\")}.ngb-grid[data-theme=bootstrap],.ngb-datagrid-floating-panel[data-theme=bootstrap]{--dg-surface: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-surface-muted: var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));--dg-surface-subtle: var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));--dg-surface-config: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-surface-filter-row: var(--ngb-surface-container, var(--bs-warning-bg-subtle, #fff3cd));--dg-surface-sticky-row: var(--ngb-surface-container, var(--bs-warning-bg-subtle, #fff3cd));--dg-border: var(--ngb-border-color, var(--bs-border-color, #dee2e6));--dg-border-strong: var(--ngb-border-color, var(--bs-border-color-translucent, #ced4da));--dg-text: var(--ngb-on-surface, var(--bs-body-color, #212529));--dg-text-muted: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-text-subtle: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #6c757d));--dg-primary: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-primary-hover: var(--ngb-primary-hover, var(--bs-link-hover-color, #0a58ca));--dg-primary-active: var(--ngb-primary-hover, var(--bs-link-hover-color, #0a58ca));--dg-primary-soft: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-primary-border-subtle: var(--ngb-border-color, var(--bs-primary-border-subtle, #9ec5fe));--dg-accent: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-on-primary: var(--ngb-on-primary, var(--bs-btn-color, #fff));--dg-placeholder: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-success: var(--ngb-success, var(--bs-success, #198754));--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--ngb-danger, var(--bs-danger, #dc3545));--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--ngb-success, var(--bs-success, #198754));--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));--dg-locked-bg: var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));--dg-row-selected-bg: var(--ngb-selected-bg, var(--bs-primary-bg-subtle, #cfe2ff));--dg-row-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--ngb-surface-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-dropdown-item-active-color: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-focus-ring: var(--ngb-focus-ring, var(--bs-focus-ring-color, var(--bs-primary, #0d6efd)));--dg-focus-border: var(--ngb-focus-ring, rgba(var(--bs-primary-rgb, 13, 110, 253), .45));--dg-font-size-cell: var(--ngb-font-size-sm, .84rem);--dg-focus-shadow: 0 0 0 .25rem var(--ngb-focus-ring, rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25)));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: var(--ngb-selected-bg, rgba(var(--bs-primary-rgb, 13, 110, 253), .18));--dg-filter-divider: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0, 0, 0, .1)));--dg-shadow-sm: var(--ngb-elevation-1, var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075)));--dg-shadow-md: var(--ngb-elevation-2, var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15)));--dg-radius-lg: var(--ngb-radius-lg, var(--bs-border-radius-lg, .5rem));--dg-radius-md: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--dg-radius-sm: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem));--dg-pager-surface: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-pager-text: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-pager-control-bg: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-pager-control-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--dg-pager-control-border: var(--ngb-border-color, var(--bs-border-color, #dee2e6));--dg-pager-link-text: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-bg: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-border: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-text: var(--ngb-on-primary, var(--bs-btn-color, #fff));--dg-pager-select-icon: var(--ngb-select-icon, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\"))}.ngb-grid[data-theme=bootstrap-main],.ngb-datagrid-floating-panel[data-theme=bootstrap-main]{--dg-surface: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-surface-muted: var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));--dg-surface-subtle: var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));--dg-surface-config: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-surface-filter-row: var(--ngb-surface-container, var(--bs-warning-bg-subtle, #fff3cd));--dg-surface-sticky-row: var(--ngb-surface-container, var(--bs-warning-bg-subtle, #fff3cd));--dg-border: var(--ngb-border-color, var(--bs-border-color, #dee2e6));--dg-border-strong: var(--ngb-border-color, var(--bs-border-color-translucent, #ced4da));--dg-text: var(--ngb-on-surface, var(--bs-body-color, #212529));--dg-text-muted: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-text-subtle: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #6c757d));--dg-primary: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-primary-hover: var(--ngb-primary-hover, var(--bs-link-hover-color, #0a58ca));--dg-primary-active: var(--ngb-primary-hover, var(--bs-link-hover-color, #0a58ca));--dg-primary-soft: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-primary-border-subtle: var(--ngb-border-color, var(--bs-primary-border-subtle, #9ec5fe));--dg-accent: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-on-primary: var(--ngb-on-primary, var(--bs-btn-color, #fff));--dg-placeholder: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-success: var(--ngb-success, var(--bs-success, #198754));--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--ngb-danger, var(--bs-danger, #dc3545));--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--ngb-success, var(--bs-success, #198754));--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));--dg-locked-bg: var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));--dg-row-selected-bg: var(--ngb-selected-bg, var(--bs-primary-bg-subtle, #cfe2ff));--dg-row-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--ngb-surface-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-dropdown-item-active-color: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-focus-ring: var(--ngb-focus-ring, var(--bs-focus-ring-color, var(--bs-primary, #0d6efd)));--dg-focus-border: var(--ngb-focus-ring, rgba(var(--bs-primary-rgb, 13, 110, 253), .45));--dg-font-size-cell: var(--ngb-font-size-sm, .84rem);--dg-focus-shadow: 0 0 0 .25rem var(--ngb-focus-ring, rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25)));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: var(--ngb-selected-bg, rgba(var(--bs-primary-rgb, 13, 110, 253), .18));--dg-filter-divider: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0, 0, 0, .1)));--dg-shadow-sm: var(--ngb-elevation-1, var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075)));--dg-shadow-md: var(--ngb-elevation-2, var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15)));--dg-radius-lg: var(--ngb-radius-lg, var(--bs-border-radius-lg, .5rem));--dg-radius-md: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--dg-radius-sm: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem));--dg-pager-surface: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-pager-text: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-pager-control-bg: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-pager-control-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--dg-pager-control-border: var(--ngb-border-color, var(--bs-border-color, #dee2e6));--dg-pager-link-text: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-bg: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-border: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-text: var(--ngb-on-primary, var(--bs-btn-color, #fff));--dg-pager-select-icon: var(--ngb-select-icon, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\"));--dg-surface: #f8fbff;--dg-surface-muted: #eaf3ff;--dg-surface-subtle: #d9eaff;--dg-surface-config: #e0efff;--dg-border: #bfd7f4;--dg-border-strong: #7fb0e3;--dg-text: #172554;--dg-text-muted: #45617f;--dg-primary: #1769e0;--dg-primary-hover: #0f56bd;--dg-primary-active: #0b438f;--dg-primary-soft: #dbeafe;--dg-primary-border-subtle: #93c5fd;--dg-accent: #0f766e;--dg-row-selected-bg: #dcecff;--dg-row-hover-bg: #eef6ff;--dg-detail-row-bg: #edf6ff;--dg-dropdown-item-active-bg: #dcecff;--dg-dropdown-item-active-color: #0f56bd;--dg-focus-ring: #1769e0;--dg-focus-border: rgba(23, 105, 224, .48);--dg-focus-shadow: 0 0 0 .2rem rgba(23, 105, 224, .16)}.ngb-grid[data-theme=bootstrap-main-dark],.ngb-datagrid-floating-panel[data-theme=bootstrap-main-dark]{--dg-surface: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-surface-muted: var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));--dg-surface-subtle: var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));--dg-surface-config: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-surface-filter-row: var(--ngb-surface-container, var(--bs-warning-bg-subtle, #fff3cd));--dg-surface-sticky-row: var(--ngb-surface-container, var(--bs-warning-bg-subtle, #fff3cd));--dg-border: var(--ngb-border-color, var(--bs-border-color, #dee2e6));--dg-border-strong: var(--ngb-border-color, var(--bs-border-color-translucent, #ced4da));--dg-text: var(--ngb-on-surface, var(--bs-body-color, #212529));--dg-text-muted: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-text-subtle: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #6c757d));--dg-primary: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-primary-hover: var(--ngb-primary-hover, var(--bs-link-hover-color, #0a58ca));--dg-primary-active: var(--ngb-primary-hover, var(--bs-link-hover-color, #0a58ca));--dg-primary-soft: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-primary-border-subtle: var(--ngb-border-color, var(--bs-primary-border-subtle, #9ec5fe));--dg-accent: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-on-primary: var(--ngb-on-primary, var(--bs-btn-color, #fff));--dg-placeholder: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-success: var(--ngb-success, var(--bs-success, #198754));--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--ngb-danger, var(--bs-danger, #dc3545));--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--ngb-success, var(--bs-success, #198754));--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));--dg-locked-bg: var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));--dg-row-selected-bg: var(--ngb-selected-bg, var(--bs-primary-bg-subtle, #cfe2ff));--dg-row-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--ngb-surface-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-dropdown-item-active-color: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-focus-ring: var(--ngb-focus-ring, var(--bs-focus-ring-color, var(--bs-primary, #0d6efd)));--dg-focus-border: var(--ngb-focus-ring, rgba(var(--bs-primary-rgb, 13, 110, 253), .45));--dg-font-size-cell: var(--ngb-font-size-sm, .84rem);--dg-focus-shadow: 0 0 0 .25rem var(--ngb-focus-ring, rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25)));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: var(--ngb-selected-bg, rgba(var(--bs-primary-rgb, 13, 110, 253), .18));--dg-filter-divider: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0, 0, 0, .1)));--dg-shadow-sm: var(--ngb-elevation-1, var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075)));--dg-shadow-md: var(--ngb-elevation-2, var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15)));--dg-radius-lg: var(--ngb-radius-lg, var(--bs-border-radius-lg, .5rem));--dg-radius-md: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--dg-radius-sm: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem));--dg-pager-surface: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-pager-text: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-pager-control-bg: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-pager-control-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--dg-pager-control-border: var(--ngb-border-color, var(--bs-border-color, #dee2e6));--dg-pager-link-text: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-bg: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-border: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-text: var(--ngb-on-primary, var(--bs-btn-color, #fff));--dg-pager-select-icon: var(--ngb-select-icon, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\"));--dg-surface: #172033;--dg-surface-muted: #202b42;--dg-surface-subtle: #273653;--dg-surface-config: #172a4f;--dg-surface-filter-row: #2c2714;--dg-surface-sticky-row: #2e2810;--dg-border: #33425f;--dg-border-strong: #4a5d80;--dg-text: #edf2ff;--dg-text-muted: #b8c3d9;--dg-text-subtle: #93a2bd;--dg-primary: #38bdf8;--dg-primary-hover: #7dd3fc;--dg-primary-active: #bae6fd;--dg-primary-soft: #12344f;--dg-primary-border-subtle: #0284c7;--dg-accent: #38bdf8;--dg-on-primary: #ffffff;--dg-placeholder: #93a2bd;--dg-locked-bg: #1e2a40;--dg-row-selected-bg: #153a67;--dg-row-hover-bg: #22304a;--dg-row-odd-bg: #172033;--dg-row-even-bg: #1b263a;--dg-detail-row-bg: #182d4c;--dg-dropdown-item-active-bg: #183b70;--dg-dropdown-item-active-color: #bfdbfe;--dg-focus-ring: #60a5fa;--dg-focus-border: rgba(96, 165, 250, .6);--dg-focus-shadow: 0 0 0 .2rem rgba(96, 165, 250, .2);--dg-shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--dg-shadow-md: 0 14px 32px rgba(0, 0, 0, .36);--dg-pager-surface: #111827;--dg-pager-text: #dbeafe;--dg-pager-control-bg: #172033;--dg-pager-control-hover-bg: #22304a;--dg-pager-control-border: #4a5d80;--dg-pager-link-text: #dbeafe;--dg-pager-active-bg: #38bdf8;--dg-pager-active-border: #38bdf8;--dg-pager-active-text: #0f172a;--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\")}.ngb-grid[data-theme=bootstrap-nordic],.ngb-datagrid-floating-panel[data-theme=bootstrap-nordic]{--dg-surface: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-surface-muted: var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));--dg-surface-subtle: var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));--dg-surface-config: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-surface-filter-row: var(--ngb-surface-container, var(--bs-warning-bg-subtle, #fff3cd));--dg-surface-sticky-row: var(--ngb-surface-container, var(--bs-warning-bg-subtle, #fff3cd));--dg-border: var(--ngb-border-color, var(--bs-border-color, #dee2e6));--dg-border-strong: var(--ngb-border-color, var(--bs-border-color-translucent, #ced4da));--dg-text: var(--ngb-on-surface, var(--bs-body-color, #212529));--dg-text-muted: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-text-subtle: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #6c757d));--dg-primary: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-primary-hover: var(--ngb-primary-hover, var(--bs-link-hover-color, #0a58ca));--dg-primary-active: var(--ngb-primary-hover, var(--bs-link-hover-color, #0a58ca));--dg-primary-soft: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-primary-border-subtle: var(--ngb-border-color, var(--bs-primary-border-subtle, #9ec5fe));--dg-accent: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-on-primary: var(--ngb-on-primary, var(--bs-btn-color, #fff));--dg-placeholder: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-success: var(--ngb-success, var(--bs-success, #198754));--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--ngb-danger, var(--bs-danger, #dc3545));--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--ngb-success, var(--bs-success, #198754));--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));--dg-locked-bg: var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));--dg-row-selected-bg: var(--ngb-selected-bg, var(--bs-primary-bg-subtle, #cfe2ff));--dg-row-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--ngb-surface-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-dropdown-item-active-color: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-focus-ring: var(--ngb-focus-ring, var(--bs-focus-ring-color, var(--bs-primary, #0d6efd)));--dg-focus-border: var(--ngb-focus-ring, rgba(var(--bs-primary-rgb, 13, 110, 253), .45));--dg-font-size-cell: var(--ngb-font-size-sm, .84rem);--dg-focus-shadow: 0 0 0 .25rem var(--ngb-focus-ring, rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25)));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: var(--ngb-selected-bg, rgba(var(--bs-primary-rgb, 13, 110, 253), .18));--dg-filter-divider: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0, 0, 0, .1)));--dg-shadow-sm: var(--ngb-elevation-1, var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075)));--dg-shadow-md: var(--ngb-elevation-2, var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15)));--dg-radius-lg: var(--ngb-radius-lg, var(--bs-border-radius-lg, .5rem));--dg-radius-md: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--dg-radius-sm: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem));--dg-pager-surface: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-pager-text: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-pager-control-bg: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-pager-control-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--dg-pager-control-border: var(--ngb-border-color, var(--bs-border-color, #dee2e6));--dg-pager-link-text: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-bg: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-border: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-text: var(--ngb-on-primary, var(--bs-btn-color, #fff));--dg-pager-select-icon: var(--ngb-select-icon, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\"));--dg-surface: #ffffff;--dg-surface-muted: #f2f7f8;--dg-surface-subtle: #e6f0f2;--dg-surface-config: #e4f8fb;--dg-surface-filter-row: #fff7ed;--dg-border: #d5e4e7;--dg-border-strong: #a9c8cf;--dg-text: #263243;--dg-text-muted: #64748b;--dg-primary: #0ea5b7;--dg-primary-hover: #0b8798;--dg-primary-active: #0f6b7a;--dg-primary-soft: #d7f5f8;--dg-primary-border-subtle: #9be4ec;--dg-accent: #e85d75;--dg-row-selected-bg: #e7f8fb;--dg-row-hover-bg: #f0fbfd;--dg-row-odd-bg: transparent;--dg-row-even-bg: #fbfeff;--dg-detail-row-bg: #f4fbfc;--dg-dropdown-item-active-bg: #e7f8fb;--dg-dropdown-item-active-color: #0b8798;--dg-focus-ring: #0ea5b7;--dg-focus-border: rgba(14, 165, 183, .45);--dg-focus-shadow: 0 0 0 .2rem rgba(14, 165, 183, .15);--dg-font-size-cell: .88rem;--dg-cell-padding-y: .82rem;--dg-pager-surface: #f8ffff;--dg-pager-text: #526173;--dg-pager-control-bg: #ffffff;--dg-pager-control-hover-bg: #e7f8fb;--dg-pager-control-border: #b9dce2;--dg-pager-link-text: #0b8798;--dg-pager-active-bg: #0ea5b7;--dg-pager-active-border: #0ea5b7;--dg-pager-active-text: #ffffff}.ngb-grid[data-theme=bootstrap-urban],.ngb-datagrid-floating-panel[data-theme=bootstrap-urban]{--dg-surface: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-surface-muted: var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));--dg-surface-subtle: var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));--dg-surface-config: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-surface-filter-row: var(--ngb-surface-container, var(--bs-warning-bg-subtle, #fff3cd));--dg-surface-sticky-row: var(--ngb-surface-container, var(--bs-warning-bg-subtle, #fff3cd));--dg-border: var(--ngb-border-color, var(--bs-border-color, #dee2e6));--dg-border-strong: var(--ngb-border-color, var(--bs-border-color-translucent, #ced4da));--dg-text: var(--ngb-on-surface, var(--bs-body-color, #212529));--dg-text-muted: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-text-subtle: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #6c757d));--dg-primary: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-primary-hover: var(--ngb-primary-hover, var(--bs-link-hover-color, #0a58ca));--dg-primary-active: var(--ngb-primary-hover, var(--bs-link-hover-color, #0a58ca));--dg-primary-soft: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-primary-border-subtle: var(--ngb-border-color, var(--bs-primary-border-subtle, #9ec5fe));--dg-accent: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-on-primary: var(--ngb-on-primary, var(--bs-btn-color, #fff));--dg-placeholder: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-success: var(--ngb-success, var(--bs-success, #198754));--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--ngb-danger, var(--bs-danger, #dc3545));--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--ngb-success, var(--bs-success, #198754));--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));--dg-locked-bg: var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));--dg-row-selected-bg: var(--ngb-selected-bg, var(--bs-primary-bg-subtle, #cfe2ff));--dg-row-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--dg-detail-row-bg: var(--ngb-surface-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-dropdown-item-active-color: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-focus-ring: var(--ngb-focus-ring, var(--bs-focus-ring-color, var(--bs-primary, #0d6efd)));--dg-focus-border: var(--ngb-focus-ring, rgba(var(--bs-primary-rgb, 13, 110, 253), .45));--dg-font-size-cell: var(--ngb-font-size-sm, .84rem);--dg-focus-shadow: 0 0 0 .25rem var(--ngb-focus-ring, rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25)));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: var(--ngb-selected-bg, rgba(var(--bs-primary-rgb, 13, 110, 253), .18));--dg-filter-divider: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0, 0, 0, .1)));--dg-shadow-sm: var(--ngb-elevation-1, var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075)));--dg-shadow-md: var(--ngb-elevation-2, var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15)));--dg-radius-lg: var(--ngb-radius-lg, var(--bs-border-radius-lg, .5rem));--dg-radius-md: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--dg-radius-sm: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem));--dg-pager-surface: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-pager-text: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-pager-control-bg: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-pager-control-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--dg-pager-control-border: var(--ngb-border-color, var(--bs-border-color, #dee2e6));--dg-pager-link-text: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-bg: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-border: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-text: var(--ngb-on-primary, var(--bs-btn-color, #fff));--dg-pager-select-icon: var(--ngb-select-icon, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\"));--dg-surface: #ffffff;--dg-surface-muted: #f5f8fa;--dg-surface-subtle: #edf4f7;--dg-surface-config: #e8f4f9;--dg-border: #d9e5ea;--dg-border-strong: #adc6d3;--dg-text: #263445;--dg-text-muted: #5f6f84;--dg-primary: #468faf;--dg-primary-hover: #36748f;--dg-primary-active: #285b72;--dg-primary-soft: #e0f0f6;--dg-primary-border-subtle: #b9dbe8;--dg-accent: #ff7f50;--dg-row-selected-bg: #e8f4f9;--dg-row-hover-bg: #fff2eb;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-dropdown-item-active-bg: #e8f4f9;--dg-dropdown-item-active-color: #36748f;--dg-focus-ring: #468faf;--dg-focus-border: rgba(70, 143, 175, .48);--dg-focus-shadow: 0 0 0 .2rem rgba(70, 143, 175, .16);--dg-cell-padding-y: .86rem;--dg-cell-padding-x: .95rem;--dg-pager-surface: #fffaf7;--dg-pager-text: #5f6f84;--dg-pager-control-bg: #ffffff;--dg-pager-control-hover-bg: #fff2eb;--dg-pager-control-border: #d4e1e7;--dg-pager-link-text: #36748f;--dg-pager-active-bg: #468faf;--dg-pager-active-border: #468faf;--dg-pager-active-text: #ffffff}.ngb-grid[data-theme=bootstrap-vintage],.ngb-datagrid-floating-panel[data-theme=bootstrap-vintage]{--dg-surface: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-surface-muted: var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));--dg-surface-subtle: var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));--dg-surface-config: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-surface-filter-row: var(--ngb-surface-container, var(--bs-warning-bg-subtle, #fff3cd));--dg-surface-sticky-row: var(--ngb-surface-container, var(--bs-warning-bg-subtle, #fff3cd));--dg-border: var(--ngb-border-color, var(--bs-border-color, #dee2e6));--dg-border-strong: var(--ngb-border-color, var(--bs-border-color-translucent, #ced4da));--dg-text: var(--ngb-on-surface, var(--bs-body-color, #212529));--dg-text-muted: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-text-subtle: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #6c757d));--dg-primary: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-primary-hover: var(--ngb-primary-hover, var(--bs-link-hover-color, #0a58ca));--dg-primary-active: var(--ngb-primary-hover, var(--bs-link-hover-color, #0a58ca));--dg-primary-soft: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-primary-border-subtle: var(--ngb-border-color, var(--bs-primary-border-subtle, #9ec5fe));--dg-accent: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-on-primary: var(--ngb-on-primary, var(--bs-btn-color, #fff));--dg-placeholder: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-success: var(--ngb-success, var(--bs-success, #198754));--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--ngb-danger, var(--bs-danger, #dc3545));--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--ngb-success, var(--bs-success, #198754));--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));--dg-locked-bg: var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));--dg-row-selected-bg: var(--ngb-selected-bg, var(--bs-primary-bg-subtle, #cfe2ff));--dg-row-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--ngb-surface-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--ngb-primary-container, var(--bs-primary-bg-subtle, #cfe2ff));--dg-dropdown-item-active-color: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-focus-ring: var(--ngb-focus-ring, var(--bs-focus-ring-color, var(--bs-primary, #0d6efd)));--dg-focus-border: var(--ngb-focus-ring, rgba(var(--bs-primary-rgb, 13, 110, 253), .45));--dg-font-size-cell: var(--ngb-font-size-sm, .84rem);--dg-focus-shadow: 0 0 0 .25rem var(--ngb-focus-ring, rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25)));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: var(--ngb-selected-bg, rgba(var(--bs-primary-rgb, 13, 110, 253), .18));--dg-filter-divider: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0, 0, 0, .1)));--dg-shadow-sm: var(--ngb-elevation-1, var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075)));--dg-shadow-md: var(--ngb-elevation-2, var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15)));--dg-radius-lg: var(--ngb-radius-lg, var(--bs-border-radius-lg, .5rem));--dg-radius-md: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--dg-radius-sm: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem));--dg-pager-surface: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-pager-text: var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d));--dg-pager-control-bg: var(--ngb-surface, var(--bs-body-bg, #ffffff));--dg-pager-control-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--dg-pager-control-border: var(--ngb-border-color, var(--bs-border-color, #dee2e6));--dg-pager-link-text: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-bg: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-border: var(--ngb-primary, var(--bs-primary, #0d6efd));--dg-pager-active-text: var(--ngb-on-primary, var(--bs-btn-color, #fff));--dg-pager-select-icon: var(--ngb-select-icon, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\"));--dg-surface: #fffdf8;--dg-surface-muted: #f6f0e7;--dg-surface-subtle: #eee4d8;--dg-surface-config: #f2e7ef;--dg-border: #dfd2c2;--dg-border-strong: #c8b8a5;--dg-text: #3d3440;--dg-text-muted: #766a72;--dg-primary: #7f4f68;--dg-primary-hover: #684057;--dg-primary-active: #523246;--dg-primary-soft: #efdde8;--dg-primary-border-subtle: #d8b9ca;--dg-accent: #88b0b7;--dg-row-selected-bg: #f1e4ec;--dg-row-hover-bg: #fbf1e5;--dg-row-odd-bg: #fffdf8;--dg-row-even-bg: #fbf7ef;--dg-detail-row-bg: #fbf6ef;--dg-dropdown-item-active-bg: #f1e4ec;--dg-dropdown-item-active-color: #684057;--dg-focus-ring: #7f4f68;--dg-focus-border: rgba(127, 79, 104, .5);--dg-focus-shadow: 0 0 0 .2rem rgba(127, 79, 104, .16);--dg-font-size-header: .78rem;--dg-font-size-cell: .86rem;--dg-pager-surface: #fffdf8;--dg-pager-text: #766a72;--dg-pager-control-bg: #fffaf2;--dg-pager-control-hover-bg: #fbf1e5;--dg-pager-control-border: #dfd2c2;--dg-pager-link-text: #684057;--dg-pager-active-bg: #7f4f68;--dg-pager-active-border: #7f4f68;--dg-pager-active-text: #ffffff}.ngb-grid[data-theme=material],.ngb-grid[data-theme=material-main],.ngb-datagrid-floating-panel[data-theme=material],.ngb-datagrid-floating-panel[data-theme=material-main]{--dg-surface: #fffbfe;--dg-surface-muted: #f4eff4;--dg-surface-subtle: #e7e0ec;--dg-surface-config: #eaddff;--dg-border: #cac4d0;--dg-border-strong: #938f99;--dg-text: #1c1b1f;--dg-text-muted: #49454f;--dg-primary: #6750a4;--dg-primary-hover: #59468d;--dg-primary-active: #4f378b;--dg-primary-soft: #eaddff;--dg-primary-border-subtle: #d0bcff;--dg-accent: #7d5260;--dg-row-selected-bg: #eaddff;--dg-row-hover-bg: #f5efff;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: #f7f2fa;--dg-dropdown-item-active-bg: #eaddff;--dg-dropdown-item-active-color: #4f378b;--dg-focus-ring: #6750a4;--dg-focus-border: rgba(103, 80, 164, .5);--dg-focus-shadow: 0 0 0 .18rem rgba(103, 80, 164, .16);--dg-radius-lg: .75rem;--dg-radius-md: .65rem;--dg-radius-sm: .5rem;--dg-font-size-header: .78rem;--dg-font-size-cell: .86rem;--dg-cell-padding-y: .8rem;--dg-table-border-width: 0;--dg-pager-control-bg: #fffbfe;--dg-pager-control-hover-bg: #f4eff4;--dg-pager-control-border: #cac4d0}.ngb-grid[data-theme=material-indigo],.ngb-datagrid-floating-panel[data-theme=material-indigo]{--dg-surface: #fffbfe;--dg-surface-muted: #f4eff4;--dg-surface-subtle: #e7e0ec;--dg-surface-config: #eaddff;--dg-border: #cac4d0;--dg-border-strong: #938f99;--dg-text: #1c1b1f;--dg-text-muted: #49454f;--dg-primary: #6750a4;--dg-primary-hover: #59468d;--dg-primary-active: #4f378b;--dg-primary-soft: #eaddff;--dg-primary-border-subtle: #d0bcff;--dg-accent: #7d5260;--dg-row-selected-bg: #eaddff;--dg-row-hover-bg: #f5efff;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: #f7f2fa;--dg-dropdown-item-active-bg: #eaddff;--dg-dropdown-item-active-color: #4f378b;--dg-focus-ring: #6750a4;--dg-focus-border: rgba(103, 80, 164, .5);--dg-focus-shadow: 0 0 0 .18rem rgba(103, 80, 164, .16);--dg-radius-lg: .75rem;--dg-radius-md: .65rem;--dg-radius-sm: .5rem;--dg-font-size-header: .78rem;--dg-font-size-cell: .86rem;--dg-cell-padding-y: .8rem;--dg-table-border-width: 0;--dg-pager-control-bg: #fffbfe;--dg-pager-control-hover-bg: #f4eff4;--dg-pager-control-border: #cac4d0;--dg-primary: #3f51b5;--dg-primary-hover: #303f9f;--dg-primary-active: #283593;--dg-primary-soft: #e8eaf6;--dg-primary-border-subtle: #c5cae9;--dg-dropdown-item-active-bg: #e8eaf6;--dg-dropdown-item-active-color: #303f9f;--dg-focus-ring: #3f51b5;--dg-focus-border: rgba(63, 81, 181, .48);--dg-focus-shadow: 0 0 0 .18rem rgba(63, 81, 181, .16);--dg-row-hover-bg: #f0f2ff}.ngb-grid[data-theme=material-deep-purple],.ngb-datagrid-floating-panel[data-theme=material-deep-purple]{--dg-surface: #fffbfe;--dg-surface-muted: #f4eff4;--dg-surface-subtle: #e7e0ec;--dg-surface-config: #eaddff;--dg-border: #cac4d0;--dg-border-strong: #938f99;--dg-text: #1c1b1f;--dg-text-muted: #49454f;--dg-primary: #6750a4;--dg-primary-hover: #59468d;--dg-primary-active: #4f378b;--dg-primary-soft: #eaddff;--dg-primary-border-subtle: #d0bcff;--dg-accent: #7d5260;--dg-row-selected-bg: #eaddff;--dg-row-hover-bg: #f5efff;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: #f7f2fa;--dg-dropdown-item-active-bg: #eaddff;--dg-dropdown-item-active-color: #4f378b;--dg-focus-ring: #6750a4;--dg-focus-border: rgba(103, 80, 164, .5);--dg-focus-shadow: 0 0 0 .18rem rgba(103, 80, 164, .16);--dg-radius-lg: .75rem;--dg-radius-md: .65rem;--dg-radius-sm: .5rem;--dg-font-size-header: .78rem;--dg-font-size-cell: .86rem;--dg-cell-padding-y: .8rem;--dg-table-border-width: 0;--dg-pager-control-bg: #fffbfe;--dg-pager-control-hover-bg: #f4eff4;--dg-pager-control-border: #cac4d0;--dg-primary: #7e57c2;--dg-primary-hover: #673ab7;--dg-primary-active: #512da8;--dg-primary-soft: #ede7f6;--dg-primary-border-subtle: #d1c4e9;--dg-accent: #ff7043;--dg-row-selected-bg: #ede7f6;--dg-row-hover-bg: #f5edff;--dg-dropdown-item-active-bg: #ede7f6;--dg-dropdown-item-active-color: #512da8;--dg-focus-ring: #7e57c2;--dg-focus-border: rgba(126, 87, 194, .5);--dg-focus-shadow: 0 0 0 .18rem rgba(126, 87, 194, .16)}.ngb-grid[data-theme=tailwind],.ngb-grid[data-theme=tailwind-main],.ngb-datagrid-floating-panel[data-theme=tailwind],.ngb-datagrid-floating-panel[data-theme=tailwind-main]{--dg-surface: #ffffff;--dg-surface-muted: #f8fafc;--dg-surface-subtle: #f1f5f9;--dg-border: #cbd5e1;--dg-border-strong: #94a3b8;--dg-text: #0f172a;--dg-text-muted: #475569;--dg-primary: #2563eb;--dg-primary-hover: #1d4ed8;--dg-primary-active: #1e40af;--dg-primary-soft: #dbeafe;--dg-primary-border-subtle: #bfdbfe;--dg-dropdown-item-active-bg: #dbeafe;--dg-dropdown-item-active-color: #1d4ed8;--dg-focus-ring: #2563eb;--dg-focus-border: rgba(37, 99, 235, .48);--dg-focus-shadow: 0 0 0 .18rem rgba(37, 99, 235, .16);--dg-row-hover-bg: #eff6ff;--dg-font-size-header: .75rem;--dg-font-size-cell: .85rem;--dg-cell-padding-y: .68rem;--dg-cell-padding-x: .8rem;--dg-table-border-width: 1px;--dg-pager-surface: #ffffff;--dg-pager-text: #475569;--dg-pager-control-bg: #ffffff;--dg-pager-control-hover-bg: #eff6ff;--dg-pager-control-border: #bfdbfe;--dg-pager-link-text: #1d4ed8;--dg-pager-active-bg: #2563eb;--dg-pager-active-border: #2563eb;--dg-pager-active-text: #ffffff}.ngb-grid[data-theme=tailwind-slate],.ngb-datagrid-floating-panel[data-theme=tailwind-slate]{--dg-surface: #f8fafc;--dg-surface-muted: #e2e8f0;--dg-surface-subtle: #cbd5e1;--dg-border: #cbd5e1;--dg-border-strong: #64748b;--dg-text: #0f172a;--dg-text-muted: #475569;--dg-primary: #475569;--dg-primary-hover: #334155;--dg-primary-active: #1e293b;--dg-primary-soft: #e2e8f0;--dg-primary-border-subtle: #94a3b8;--dg-dropdown-item-active-bg: #e2e8f0;--dg-dropdown-item-active-color: #334155;--dg-focus-ring: #475569;--dg-row-hover-bg: #e2e8f0;--dg-row-odd-bg: #f8fafc;--dg-row-even-bg: #f1f5f9;--dg-focus-border: rgba(71, 85, 105, .48);--dg-focus-shadow: 0 0 0 .18rem rgba(71, 85, 105, .16)}.ngb-grid[data-theme=tailwind-emerald],.ngb-datagrid-floating-panel[data-theme=tailwind-emerald]{--dg-surface: #ffffff;--dg-surface-muted: #ecfdf5;--dg-surface-subtle: #d1fae5;--dg-border: #a7f3d0;--dg-border-strong: #34d399;--dg-text: #064e3b;--dg-text-muted: #047857;--dg-primary: #059669;--dg-primary-hover: #047857;--dg-primary-active: #065f46;--dg-primary-soft: #d1fae5;--dg-primary-border-subtle: #6ee7b7;--dg-dropdown-item-active-bg: #d1fae5;--dg-dropdown-item-active-color: #047857;--dg-focus-ring: #059669;--dg-focus-border: rgba(5, 150, 105, .48);--dg-focus-shadow: 0 0 0 .18rem rgba(5, 150, 105, .16)}.ngb-datagrid-floating-panel{font-family:var(--ngb-font-family, inherit);color:var(--dg-text)}.ngb-datagrid-floating-panel.grid-filter-menu-popover,.ngb-datagrid-floating-panel.dropdown-menu{position:fixed!important;z-index:1200;display:block;visibility:visible;opacity:1;pointer-events:auto;max-height:min(28rem,100vh - 1.5rem);overflow:auto;margin:0!important;border-radius:var(--dg-radius-md);border:1px solid var(--dg-border);background:var(--dg-surface);box-shadow:var(--dg-shadow-md)}.ngb-datagrid-floating-panel.dropdown-menu{min-width:12rem;padding:.35rem 0}.ngb-datagrid-floating-panel.grid-filter-operator-menu .dropdown-item{display:block;width:100%;padding:.5rem .85rem;border:0;background:transparent;font-size:.8125rem;font-weight:600;color:var(--dg-text);text-align:left}.ngb-datagrid-floating-panel.grid-filter-operator-menu .dropdown-item:hover{background:var(--dg-surface-subtle)}.ngb-datagrid-floating-panel.grid-filter-operator-menu .dropdown-item.active{color:var(--dg-dropdown-item-active-color);background:var(--dg-dropdown-item-active-bg)}.ngb-datagrid-floating-panel.dropdown-menu .dropdown-item{padding:.5rem .85rem;font-size:.8125rem;font-weight:600;color:var(--dg-text)}.ngb-datagrid-floating-panel.dropdown-menu .dropdown-item:hover{background:var(--dg-surface-subtle)}.ngb-datagrid-floating-panel.grid-filter-menu-popover{min-width:18rem;padding:0}.ngb-datagrid-floating-panel .grid-filter-menu-surface{display:block;min-width:18rem;padding:1rem;border-radius:var(--dg-radius-md);background:var(--dg-surface)}.ngb-datagrid-floating-panel .grid-filter-menu-surface__header{margin-bottom:.875rem}.ngb-datagrid-floating-panel .grid-filter-menu-surface__eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--dg-text-muted)}.ngb-datagrid-floating-panel .grid-filter-menu-surface__title{margin-top:.15rem;font-size:.95rem;font-weight:700;color:var(--dg-text)}.ngb-datagrid-floating-panel .grid-filter-stack{display:flex;flex-direction:column;gap:.75rem}.ngb-datagrid-floating-panel .grid-filter-stack__label{font-size:.8125rem;font-weight:600;color:var(--dg-text-muted)}.ngb-datagrid-floating-panel .grid-filter-stack--multi{gap:.65rem}.ngb-datagrid-floating-panel .grid-filter-condition{display:flex;flex-direction:column;gap:.5rem}.ngb-datagrid-floating-panel .grid-filter-operator-select,.ngb-grid .grid-filter-operator-select{width:100%;min-height:var(--dg-control-height);padding:.45rem .65rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface);font-size:.875rem;color:var(--dg-text)}.ngb-datagrid-floating-panel .grid-filter-operator-select--compact,.ngb-grid .grid-filter-operator-select--compact{width:auto;min-width:2.25rem;max-width:2.5rem;padding:.35rem .25rem;font-size:0}.ngb-datagrid-floating-panel .grid-filter-logic-select,.ngb-grid .grid-filter-logic-select{display:flex;justify-content:center;margin:.15rem 0}.ngb-datagrid-floating-panel .grid-filter-logic-select select,.ngb-grid .grid-filter-logic-select select{width:auto;min-width:4.5rem;min-height:1.75rem;padding:.2rem 1.5rem .2rem .65rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface);font-size:.8125rem;font-weight:600;color:var(--dg-text);text-align:center}.ngb-datagrid-floating-panel .grid-filter-menu-surface__actions--split,.ngb-grid .grid-filter-menu-surface__actions--split{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.ngb-datagrid-floating-panel .grid-filter-apply--secondary,.ngb-datagrid-floating-panel .grid-filter-cancel--secondary,.ngb-grid .grid-filter-apply--secondary,.ngb-grid .grid-filter-cancel--secondary{width:100%;border:1px solid var(--dg-border-strong);background:var(--dg-surface-muted);color:var(--dg-text);font-weight:600}.ngb-datagrid-floating-panel .grid-filter-apply--secondary:hover,.ngb-datagrid-floating-panel .grid-filter-cancel--secondary:hover,.ngb-grid .grid-filter-apply--secondary:hover,.ngb-grid .grid-filter-cancel--secondary:hover{background:var(--dg-surface-subtle)}.ngb-datagrid-floating-panel .grid-filter-multi-panel,.ngb-grid .grid-filter-multi-panel{display:flex;flex-direction:column;gap:.5rem;min-width:16.5rem}.ngb-datagrid-floating-panel .grid-filter-join-select,.ngb-grid .grid-filter-join-select{display:inline-block;width:fit-content;max-width:100%;margin:.1rem 0}.ngb-datagrid-floating-panel .grid-filter-join-select__control,.ngb-grid .grid-filter-join-select__control{width:100%;min-height:1.75rem;padding:.2rem 1.25rem .2rem .5rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface);font-size:.8125rem;font-weight:600;text-align:left}.ngb-datagrid-floating-panel .grid-filter-field{position:relative;width:100%;min-width:0}.ngb-datagrid-floating-panel .grid-filter-field--with-icon .grid-filter-control,.ngb-datagrid-floating-panel .grid-filter-field--with-icon .grid-filter-value-input{padding-right:2.25rem}.ngb-datagrid-floating-panel .grid-filter-field__icon{position:absolute;right:.8rem;top:50%;transform:translateY(-50%);color:var(--dg-placeholder);pointer-events:none}.ngb-datagrid-floating-panel .grid-filter-control,.ngb-datagrid-floating-panel .grid-filter-value-input,.ngb-datagrid-floating-panel .grid-filter-value-select,.ngb-grid .grid-filter-value-input,.ngb-grid .grid-filter-value-select{width:100%;min-height:var(--dg-control-height);padding:.45rem .65rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface);color:var(--dg-text);font-size:.875rem}.ngb-datagrid-floating-panel .grid-filter-apply--secondary:disabled,.ngb-datagrid-floating-panel .grid-filter-cancel--secondary:disabled,.ngb-grid .grid-filter-apply--secondary:disabled,.ngb-grid .grid-filter-cancel--secondary:disabled{opacity:var(--ngb-disabled-opacity, .45);cursor:not-allowed}.ngb-datagrid-floating-panel .grid-filter-condition__join{margin:.15rem 0;font-size:.75rem;font-weight:700;color:var(--dg-text-muted);text-align:center}.ngb-datagrid-floating-panel .grid-filter-stack__footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.ngb-datagrid-floating-panel .grid-filter-operator__button{padding:.55rem .8rem;font-size:.8125rem;font-weight:600;color:var(--dg-text-muted);border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface)}.ngb-datagrid-floating-panel .grid-filter-clear,.ngb-datagrid-floating-panel .grid-filter-apply,.ngb-datagrid-floating-panel .grid-filter-cancel{padding:.5rem .85rem;font-size:.8125rem;font-weight:600;border-radius:var(--dg-radius-sm)}.ngb-datagrid-floating-panel .grid-filter-apply{border:1px solid var(--dg-primary);background:var(--dg-primary);color:var(--dg-on-primary)}.ngb-datagrid-floating-panel .grid-filter-cancel,.ngb-datagrid-floating-panel .grid-filter-clear{border:1px solid var(--dg-border-strong);background:var(--dg-surface);color:var(--dg-text)}.ngb-datagrid-floating-panel .grid-filter-menu-surface__actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--dg-border)}.ngb-datagrid-floating-panel .grid-filter-menu-surface__multi{display:flex;flex-direction:column;gap:.5rem;width:100%;min-width:16rem}.ngb-datagrid-floating-panel .grid-filter-menu-surface__search{border:1px solid var(--dg-border);border-radius:var(--dg-radius-md);min-height:2rem;padding:.4rem .65rem;font-size:.8125rem;width:100%}.ngb-datagrid-floating-panel .grid-multi-filter-list{max-height:11.5rem;overflow:auto;border-top:1px solid var(--dg-border);border-bottom:1px solid var(--dg-border)}.ngb-datagrid-floating-panel .grid-multi-filter-option{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:.45rem .75rem;font-size:.8125rem;font-weight:600;color:var(--dg-text);cursor:pointer}.ngb-datagrid-floating-panel .grid-multi-filter-option__main{display:flex;align-items:center;gap:.5rem}.ngb-datagrid-floating-panel .grid-filter-menu-surface__actions--multi{justify-content:space-between}.ngb-datagrid-floating-panel[data-theme=bootstrap].dropdown-menu .dropdown-item{font-weight:400}.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-operator-select,.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-value-input,.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-value-select,.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-menu-surface__search,.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-join-select__control{border-radius:var(--ngb-radius-md, var(--bs-border-radius, var(--dg-radius-sm)))}ngb-datagrid{display:block}.ngb-grid{color:var(--dg-text);font-family:var(--ngb-font-family, inherit);--dg-group-sticky-row-height: 3rem}.ngb-grid.ngb-grid--compact{--dg-group-sticky-row-height: 2.5rem}.ngb-grid .table{margin-bottom:0}.ngb-grid .datagrid-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.ngb-grid .datagrid-toolbar__search{flex:1 1 20rem;min-width:16rem}.ngb-grid .datagrid-toolbar__search-label{display:block;margin-bottom:.35rem;font-size:.875rem;font-weight:500;color:var(--dg-text-muted)}.ngb-grid .datagrid-toolbar__search-shell{display:flex;align-items:center;gap:.625rem;min-height:calc(var(--dg-control-height) + 4px);padding:0 .875rem;border:1px solid var(--dg-border);border-radius:999px;background:var(--dg-surface);box-shadow:var(--dg-shadow-sm)}.ngb-grid .datagrid-toolbar__search-icon{color:var(--dg-text-muted)}.ngb-grid .datagrid-toolbar__search-input{flex:1 1 auto;width:100%;min-width:0;border:0;background:transparent;color:var(--dg-text);outline:none;font-size:.95rem;padding:.625rem 0}.ngb-grid .datagrid-toolbar__search-input::placeholder{color:var(--dg-placeholder)}.ngb-grid .datagrid-toolbar__actions{display:flex;align-items:center;justify-content:flex-end;gap:.625rem;flex-wrap:wrap}.ngb-grid .datagrid-toolbar__button,.ngb-grid .grid-row-action,.ngb-grid .grid-filter-apply,.ngb-grid .grid-filter-clear,.ngb-grid .grid-filter-cancel,.ngb-grid .grid-filter-operator__button,.ngb-grid .grid-filter-menu-trigger,.ngb-grid .grid-detail-toggle{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:var(--dg-control-height);border-radius:var(--dg-radius-md);border:1px solid var(--dg-border);background:var(--dg-surface);color:var(--dg-text);box-shadow:none;font:inherit;text-decoration:none;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease}.ngb-grid .datagrid-toolbar__button:hover,.ngb-grid .grid-row-action:hover,.ngb-grid .grid-filter-apply:hover,.ngb-grid .grid-filter-clear:hover,.ngb-grid .grid-filter-cancel:hover,.ngb-grid .grid-filter-operator__button:hover,.ngb-grid .grid-filter-menu-trigger:hover,.ngb-grid .grid-detail-toggle:hover{border-color:var(--dg-border-strong);background:var(--dg-surface-subtle);color:var(--dg-text);text-decoration:none}.ngb-grid .datagrid-toolbar__button:focus-visible,.ngb-grid .grid-row-action:focus-visible,.ngb-grid .grid-filter-apply:focus-visible,.ngb-grid .grid-filter-clear:focus-visible,.ngb-grid .grid-filter-cancel:focus-visible,.ngb-grid .grid-filter-operator__button:focus-visible,.ngb-grid .grid-filter-menu-trigger:focus-visible,.ngb-grid .grid-detail-toggle:focus-visible,.ngb-grid .grid-sort-button:focus-visible,.ngb-grid .grid-edit-control:focus-visible,.ngb-grid .grid-filter-control:focus-visible,.ngb-grid .datagrid-toolbar__search-input:focus-visible{outline:none;border-color:var(--dg-focus-border);box-shadow:var(--dg-focus-shadow)}.ngb-grid .datagrid-toolbar__button{padding:.625rem 1rem;font-size:.875rem;font-weight:400}.ngb-grid .datagrid-toolbar__button--primary{border-color:var(--dg-primary);background:var(--dg-primary);color:var(--dg-on-primary)}.ngb-grid .datagrid-toolbar__button--primary:hover{background:var(--dg-primary-hover);border-color:var(--dg-primary-hover);color:var(--dg-on-primary)}.ngb-grid .datagrid-toolbar__button--secondary{background:var(--dg-surface);color:var(--dg-text)}.ngb-grid .ngb-grid__group-panel{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;min-height:3.25rem;margin-bottom:.9rem;padding:.75rem .9rem;border:1px dashed var(--dg-border-strong);border-radius:var(--dg-radius-md);background:color-mix(in srgb,var(--dg-surface-muted) 72%,white);transition:border-color .12s ease,background-color .12s ease,box-shadow .12s ease}.ngb-grid .ngb-grid__group-panel--active{border-color:var(--dg-primary);background:color-mix(in srgb,var(--dg-primary-soft) 45%,white);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--dg-primary) 22%,transparent)}.ngb-grid .ngb-grid__group-panel--denied{border-color:var(--dg-danger, #dc3545);background:color-mix(in srgb,var(--dg-danger, #dc3545) 8%,var(--dg-surface))}.ngb-grid .ngb-grid__group-panel-label{font-size:.875rem;font-weight:600;color:var(--dg-text-muted)}.ngb-grid .ngb-grid__group-chip-list{display:inline-flex;align-items:center;gap:.55rem;flex-wrap:wrap}.ngb-grid .ngb-grid__group-chip{display:inline-flex;align-items:center;gap:.25rem;border:1px solid color-mix(in srgb,var(--dg-primary) 26%,var(--dg-border));border-radius:999px;background:var(--dg-surface);box-shadow:var(--dg-shadow-sm)}.ngb-grid .ngb-grid__group-chip-button,.ngb-grid .ngb-grid__group-chip-remove{display:inline-flex;align-items:center;gap:.4rem;min-height:2rem;border:0;background:transparent;color:var(--dg-text)}.ngb-grid .ngb-grid__group-chip-button{padding:.35rem .55rem .35rem .8rem;font-size:.8125rem;font-weight:600}.ngb-grid .ngb-grid__group-chip-remove{padding:.35rem .75rem .35rem .15rem;color:var(--dg-text-muted)}.ngb-grid .ngb-grid__group-chip-button:hover,.ngb-grid .ngb-grid__group-chip-remove:hover{color:var(--dg-primary)}.ngb-grid .ngb-grid__group-chip-button:focus-visible,.ngb-grid .ngb-grid__group-chip-remove:focus-visible,.ngb-grid .grid-column-group-handle:focus-visible,.ngb-grid .grid-group-row__toggle:focus-visible{outline:none;box-shadow:var(--dg-focus-shadow);border-radius:999px}.ngb-grid .ngb-grid__group-chip-dir{font-size:.8rem;color:var(--dg-primary)}.ngb-grid .table-wrapper{position:relative;overflow-x:hidden;overflow-y:clip;border:var(--dg-table-border-width) solid var(--dg-border);border-radius:var(--dg-radius-lg);background:var(--dg-surface);box-shadow:var(--dg-shadow-sm);isolation:isolate}.ngb-grid .table-body-scroll{max-height:24rem;overflow-y:auto;overflow-x:auto;border-top:1px solid var(--dg-border);border-bottom:1px solid var(--dg-border);scrollbar-gutter:stable both-edges;position:relative;z-index:0}.ngb-grid .ngb-grid__group-sticky-layer{position:absolute;inset-inline-start:0;z-index:35;min-width:100%;pointer-events:none}.ngb-grid .ngb-grid__group-sticky-layer--top,.ngb-grid .ngb-grid__group-sticky-layer--bottom{top:0}.ngb-grid .grid-group-sticky-table{min-width:100%;pointer-events:auto}.ngb-grid .grid-table{width:max-content;min-width:100%;table-layout:fixed;margin:0;border-collapse:separate;border-spacing:0}.ngb-grid.ngb-grid--resizable .grid-table{min-width:0;width:max-content}.ngb-grid.ngb-grid--resizable .grid-table th,.ngb-grid.ngb-grid--resizable .grid-table td{box-sizing:border-box}.ngb-grid .grid-header-shell{position:relative;z-index:20;overflow:hidden}.ngb-grid .grid-header{position:relative;z-index:20;overflow:visible}.ngb-grid .grid-header thead tr:first-child th:first-child{border-top-left-radius:var(--dg-radius-lg)}.ngb-grid .grid-header thead tr:first-child th:last-child{border-top-right-radius:var(--dg-radius-lg)}.ngb-grid .grid-header thead th{background:var(--dg-surface-muted);border-bottom:var(--dg-table-border-width) solid var(--dg-border);color:var(--dg-text);font-size:var(--dg-font-size-header);font-weight:600;text-transform:none;letter-spacing:.01em;overflow:visible}.ngb-grid .grid-table th,.ngb-grid .grid-table td{vertical-align:middle;border-bottom:var(--dg-table-border-width) solid var(--dg-border);padding:var(--dg-cell-padding-y) var(--dg-cell-padding-x);font-size:var(--dg-font-size-cell)}.ngb-grid .grid-table th{padding:var(--dg-header-padding-y) var(--dg-header-padding-x)}.ngb-grid .grid-table td{height:var(--ngb-density-row-height, auto);background:var(--dg-surface);color:var(--dg-text);font-weight:400}.ngb-grid .grid-table th{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ngb-grid .grid-header .grid-table th{overflow:visible}.ngb-grid .grid-header thead tr:first-child th.grid-header__column--resizable{position:relative}.ngb-grid .grid-column-resize-handle{position:absolute;top:0;right:0;width:.45rem;height:100%;cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none;z-index:3}.ngb-grid .grid-column-resize-handle:after{content:\"\";position:absolute;top:.35rem;bottom:.35rem;right:.1rem;width:2px;border-radius:1px;background:var(--dg-border-strong);opacity:0;transition:opacity .15s ease}.ngb-grid .grid-header__column--resizable:hover .grid-column-resize-handle:after,.ngb-grid .grid-column-resize-handle:focus-visible:after{opacity:1}body.ngb-datagrid-column-resizing{cursor:col-resize!important;-webkit-user-select:none;user-select:none}.ngb-grid.ngb-grid--column-reorderable .grid-header thead tr:first-child th.grid-header__column--reorderable{position:relative}.ngb-grid .grid-column-reorder-handle{flex:0 0 auto;margin-right:.15rem;padding:.1rem .18rem;border-radius:999px;color:var(--dg-text-muted);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;opacity:.82;line-height:1;font-size:.95rem}.ngb-grid .grid-header__column--reorderable:hover .grid-column-reorder-handle,.ngb-grid .grid-column-reorder-handle:focus-visible{opacity:1;background:color-mix(in srgb,var(--dg-accent) 12%,transparent)}.ngb-grid .grid-column-group-handle{flex:0 0 auto;padding:.15rem .25rem;border-radius:999px;color:var(--dg-text-muted);cursor:grab;-webkit-user-select:none;user-select:none;line-height:1;font-size:.9rem}.ngb-grid .grid-column-group-handle--active,.ngb-grid .grid-column-group-handle:hover{color:var(--dg-primary);background:color-mix(in srgb,var(--dg-primary-soft) 55%,transparent)}.ngb-grid .grid-header__column--drag-over{background:color-mix(in srgb,var(--dg-accent) 12%,transparent);box-shadow:inset 0 -2px 0 var(--dg-accent)}.ngb-grid .grid-header__cell{display:flex;align-items:center;justify-content:space-between;gap:.625rem;width:100%;overflow:visible}.ngb-grid .grid-sort-button{display:inline-flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left}.ngb-grid .grid-sort-button__label{min-width:0;overflow:hidden;text-overflow:ellipsis}.ngb-grid .grid-sort-button__indicator{flex:0 0 auto;font-size:.8rem;color:var(--dg-placeholder)}.ngb-grid .grid-sort-button__indicator--active{color:var(--dg-primary)}.ngb-grid .grid-filter-menu-host{position:relative;display:inline-flex;flex:0 0 auto;z-index:30}.ngb-grid .grid-filter-menu-popover:not(.ngb-datagrid-floating-panel){position:absolute;top:calc(100% + .5rem);right:0;z-index:120}.ngb-grid .grid-filter-menu-popover .grid-filter-menu-surface{position:static;top:auto;right:auto}.ngb-grid .grid-filter-menu-trigger{min-width:var(--dg-control-height);width:var(--dg-control-height);height:var(--dg-control-height);padding:0}.ngb-grid .grid-filter-menu-trigger--active,.ngb-grid .filter-menu-active .grid-filter-menu-trigger{border-color:var(--dg-focus-border);background:var(--dg-primary-soft);color:var(--dg-primary)}.ngb-grid .grid-filter-menu-trigger--check .bi{color:var(--dg-placeholder)}.ngb-grid .grid-filter-menu-trigger--check.grid-filter-menu-trigger--active,.ngb-grid .filter-menu-active .grid-filter-menu-trigger--check{border-color:var(--dg-focus-border);background:var(--dg-primary-soft);color:var(--dg-primary)}.ngb-grid .grid-filter-menu-trigger--check.grid-filter-menu-trigger--active .bi,.ngb-grid .filter-menu-active .grid-filter-menu-trigger--check .bi{color:var(--dg-primary)}.ngb-grid .grid-filter-menu-surface{position:absolute;top:calc(100% + .5rem);right:0;min-width:18rem;padding:1rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-md);background:var(--dg-surface);box-shadow:var(--dg-shadow-md);z-index:120}.ngb-grid .grid-filter-menu-surface__header{margin-bottom:.875rem}.ngb-grid .grid-filter-menu-surface__eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--dg-text-subtle)}.ngb-grid .grid-filter-menu-surface__title{margin-top:.15rem;font-size:.95rem;font-weight:700;color:var(--dg-text)}.ngb-grid .grid-filter-stack{display:flex;flex-direction:column;gap:.75rem}.ngb-grid .grid-filter-stack--multi{gap:.65rem}.ngb-grid .grid-filter-operator-select{width:100%;min-height:var(--dg-control-height);padding:.45rem .65rem;border:1px solid var(--dg-border);border-radius:var(--ngb-radius-md, .375rem);background:var(--dg-surface);font-size:.875rem;color:var(--dg-text)}.ngb-grid .grid-filter-operator-select--compact{width:auto;min-width:2.25rem;max-width:3.5rem;padding:.35rem .25rem;font-size:.6875rem}.ngb-grid .grid-filter-logic-select{display:flex;justify-content:center;margin:.15rem 0}.ngb-grid .grid-filter-logic-select select{width:auto;min-width:4.5rem;min-height:1.75rem;padding:.2rem 1.5rem .2rem .65rem;border:1px solid var(--dg-border);border-radius:var(--ngb-radius-md, .375rem);background:var(--dg-surface);font-size:.8125rem;font-weight:600}.ngb-grid .grid-filter-menu-surface__actions--split{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.ngb-grid .grid-filter-apply--secondary,.ngb-grid .grid-filter-cancel--secondary{width:100%;border:1px solid var(--dg-border-strong);background:var(--dg-surface-muted);color:var(--dg-text);font-weight:600}.ngb-grid .grid-filter-apply--secondary:hover,.ngb-grid .grid-filter-cancel--secondary:hover{background:var(--dg-surface-subtle)}.ngb-grid .grid-filter-multi-panel{display:flex;flex-direction:column;gap:.5rem;min-width:16.5rem}.ngb-grid .grid-filter-join-select{display:inline-block;width:fit-content;max-width:100%;margin:.1rem 0}.ngb-grid .grid-filter-join-select__control{width:100%;min-height:1.75rem;padding:.2rem 1.25rem .2rem .5rem;border:1px solid var(--dg-border);border-radius:var(--ngb-radius-md, .375rem);background:var(--dg-surface);font-size:.8125rem;font-weight:600;text-align:left}.ngb-grid .grid-filter-value-input,.ngb-grid .grid-filter-value-select{width:100%;min-height:var(--dg-control-height);padding:.45rem .65rem;border:1px solid var(--dg-border);border-radius:var(--ngb-radius-md, .375rem);background:var(--dg-surface);font-size:.875rem}.ngb-grid .grid-filter-apply--secondary:disabled,.ngb-grid .grid-filter-cancel--secondary:disabled{opacity:var(--ngb-disabled-opacity, .45);cursor:not-allowed}.ngb-grid .grid-group-row td,.ngb-grid .grid-group-footer-row td{background:color-mix(in srgb,var(--dg-surface-muted) 88%,white);border-bottom:1px solid var(--dg-border)}.ngb-grid .grid-group-row--overlay td{box-shadow:inset 0 -1px 0 var(--dg-border),0 1px color-mix(in srgb,var(--dg-border) 36%,transparent)}.ngb-grid .grid-group-footer-row--overlay td{box-shadow:inset 0 1px 0 var(--dg-border),0 -1px color-mix(in srgb,var(--dg-border) 36%,transparent)}.ngb-grid .grid-group-row__cell{padding:0;vertical-align:top}.ngb-grid .grid-group-footer-row__cell,.ngb-grid .grid-group-row__utility-cell{padding:.7rem .75rem;vertical-align:top}.ngb-grid .grid-group-row__toggle{display:flex;align-items:center;gap:.55rem;width:100%;padding:.7rem 1rem;border:0;background:transparent;color:var(--dg-text);text-align:left;font-size:.875rem;font-weight:600}.ngb-grid .grid-group-row__cell--lead .grid-group-row__toggle{padding-inline-end:.75rem}.ngb-grid .grid-group-row__toggle:hover{background:color-mix(in srgb,var(--dg-primary-soft) 34%,transparent)}.ngb-grid .grid-group-row__content{display:inline-flex;align-items:center;gap:.5rem;min-width:0}.ngb-grid .grid-group-row__label{color:var(--dg-text)}.ngb-grid .grid-group-row__count{font-size:.75rem;font-weight:700;color:var(--dg-text-muted)}.ngb-grid .grid-group-row__column-slot{padding:.25rem .75rem .75rem;font-size:.8125rem;color:var(--dg-text-muted)}.ngb-grid .grid-group-row__cell--lead .grid-group-row__column-slot{padding-inline-start:2.75rem}.ngb-grid .grid-group-footer-row td{background:color-mix(in srgb,var(--dg-surface-muted) 94%,white)}.ngb-grid .grid-filter-menu-popover .grid-filter-menu-surface:has(.grid-filter-menu-surface__multi){width:16.25rem;max-width:min(16.25rem,92vw);padding:.75rem}.ngb-grid .grid-filter-menu-surface__multi{display:flex;flex-direction:column;gap:.5rem;width:100%}.ngb-grid .grid-filter-menu-surface__multi .grid-filter-menu-surface__search{border-radius:.5rem;min-height:2rem;padding:.4rem .65rem;font-size:.8125rem}.ngb-grid .grid-multi-filter-list{max-height:11.5rem;overflow:auto;margin:0 -.75rem;padding:.15rem 0;border-top:1px solid var(--dg-border);border-bottom:1px solid var(--dg-border)}.ngb-grid .grid-multi-filter-option{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:.45rem .75rem;font-size:.8125rem;font-weight:600;color:var(--dg-text);cursor:pointer}.ngb-grid .grid-multi-filter-option+.grid-multi-filter-option{border-top:1px solid var(--dg-filter-divider)}.ngb-grid .grid-multi-filter-option--summary{font-weight:700}.ngb-grid .grid-multi-filter-option__main{display:inline-flex;align-items:center;gap:.75rem;min-width:0}.ngb-grid .grid-multi-filter-option__main input{width:1rem;height:1rem;margin:0;accent-color:var(--dg-primary);flex:0 0 auto}.ngb-grid .grid-multi-filter-option__count{font-size:.75rem;font-weight:700;color:var(--dg-text-muted)}.ngb-grid .grid-filter-stack__label{font-size:.8125rem;font-weight:600;color:var(--dg-text-muted)}.ngb-grid .grid-filter-stack__footer,.ngb-grid .grid-filter-menu-surface__actions{display:flex;align-items:center;justify-content:space-between;gap:.625rem}.ngb-grid .grid-filter-inline{display:flex;align-items:center;gap:.45rem;min-width:0;width:100%}.ngb-grid .grid-filter-field{position:relative;min-width:12rem;flex:1 1 auto}.ngb-grid .grid-filter-field--with-icon .grid-filter-control{padding-right:2.25rem}.ngb-grid .grid-filter-field__icon{position:absolute;right:.8rem;top:50%;transform:translateY(-50%);color:var(--dg-placeholder);pointer-events:none}.ngb-grid .grid-filter-control,.ngb-grid .grid-edit-control{width:100%;min-width:0;min-height:var(--dg-control-height);padding:.5rem .75rem;border:1px solid var(--dg-border);border-radius:var(--ngb-radius-md, .3rem);background:var(--dg-surface);color:var(--dg-text);font-size:.875rem}.ngb-grid .grid-edit-checkbox{width:1rem;height:1rem;margin-top:0}.ngb-grid .grid-filter-operator{position:relative;flex:0 0 auto}.ngb-grid .grid-filter-operator__button{padding:.55rem .8rem;font-size:.8125rem;font-weight:600;color:var(--dg-text-muted)}.ngb-grid .grid-filter-operator__button--compact{min-width:var(--dg-control-height);width:var(--dg-control-height);padding:0}.ngb-grid .grid-filter-operator__button--active{border-color:var(--dg-primary);color:var(--dg-primary)}.ngb-grid .grid-filter-operator .dropdown-menu:not(.ngb-datagrid-floating-panel){position:absolute;inset:calc(100% + .35rem) 0 auto auto;min-width:12rem;margin:0;border-radius:.9rem;border-color:var(--dg-border);box-shadow:var(--dg-shadow-md);z-index:120}.ngb-grid .grid-filter-clear{padding:.55rem .8rem;font-size:.8125rem;color:var(--dg-text-muted)}.ngb-grid .grid-filter-apply{padding:.625rem .95rem;border-color:var(--dg-primary);background:var(--dg-primary);color:var(--dg-on-primary);font-size:.875rem;font-weight:600}.ngb-grid .grid-filter-apply:hover{border-color:var(--dg-primary-active);background:var(--dg-primary-active);color:var(--dg-on-primary)}.ngb-grid .grid-filter-menu-surface__actions--multi{justify-content:space-between;margin-top:.35rem}.ngb-grid .grid-filter-menu-surface__multi .grid-filter-apply{min-width:5.25rem;padding:.5rem 1.15rem;font-size:.8125rem}.ngb-grid .grid-filter-cancel{padding:.5rem .85rem;font-size:.8125rem;font-weight:600;color:var(--dg-text);border:1px solid var(--dg-border-strong);background:var(--dg-surface)}.ngb-grid .grid-filter-cancel:hover{border-color:var(--dg-border-strong);background:var(--dg-surface-subtle);color:var(--dg-text)}.ngb-grid .filter-row th{background:var(--dg-surface-filter-row);padding-top:.625rem;padding-bottom:.625rem;overflow:visible;position:relative;z-index:25}.ngb-grid.ngb-grid--menu-open .filter-row th{z-index:85}.ngb-grid .column-pinned-start,.ngb-grid .column-pinned-end{position:sticky;background:inherit;z-index:2}.ngb-grid .grid-header .column-pinned-start,.ngb-grid .grid-header .column-pinned-end{z-index:6}.ngb-grid .column-pinned-start{box-shadow:var(--dg-pin-shadow-start)}.ngb-grid .column-pinned-start:has(+.column-pinned-start){box-shadow:none}.ngb-grid .column-pinned-end{box-shadow:var(--dg-pin-shadow-end)}.ngb-grid .column-locked{background:var(--dg-locked-bg)}.ngb-grid .sticky-row,.ngb-grid .sticky-row td{background:var(--dg-surface-sticky-row);box-shadow:inset 0 0 0 1px var(--dg-sticky-border)}.ngb-grid .sticky-row{position:sticky;z-index:4}.ngb-grid .grid-sticky-badge{display:inline-flex;align-items:center;margin-left:.45rem;padding:.12rem .4rem;border-radius:.25rem;background:var(--dg-sticky-badge-bg);color:var(--dg-sticky-badge-text);font-size:.62rem;font-weight:800;letter-spacing:.04em;vertical-align:middle}.ngb-grid .grid-row-action--icon{min-width:2.05rem;width:2.05rem;height:2.05rem;min-height:2.05rem;padding:0;border-radius:var(--dg-radius-md)}.ngb-grid .grid-row-action--edit-icon{border-color:var(--dg-primary);background:var(--dg-primary);color:var(--dg-on-primary)}.ngb-grid .grid-row-action--edit-icon:hover{border-color:var(--dg-primary-hover);background:var(--dg-primary-hover);color:var(--dg-on-primary)}.ngb-grid.ngb-grid--zebra .grid-body tbody tr:nth-child(2n):not(.sticky-row):not(.row-selected) td{background:var(--dg-row-even-bg, var(--dg-surface-muted))}.ngb-grid:not(.ngb-grid--zebra) .grid-body tbody tr:nth-child(odd):not(.sticky-row):not(.row-selected):not(.row-highlight) td{background:var(--dg-row-odd-bg)}.ngb-grid:not(.ngb-grid--zebra) .grid-body tbody tr:nth-child(2n):not(.sticky-row):not(.row-selected):not(.row-highlight) td{background:var(--dg-row-even-bg)}.ngb-grid .grid-body tbody tr.grid-data-row:hover:not(.sticky-row):not(.row-selected):not(.row-highlight) td{background:var(--dg-row-hover-bg)}.ngb-grid .row-selected,.ngb-grid .row-selected td{background:var(--dg-row-selected-bg)}.ngb-grid .row-highlight,.ngb-grid .row-highlight td{background:var(--dg-warning-soft)}.ngb-grid .grid-header th.column-pinned-start,.ngb-grid .grid-header th.column-pinned-end,.ngb-grid .grid-body tbody td.column-pinned-start,.ngb-grid .grid-body tbody td.column-pinned-end{background:var(--dg-surface)}.ngb-grid .grid-header th.column-locked,.ngb-grid .grid-body tbody td.column-locked{background:var(--dg-locked-bg)!important}.ngb-grid .grid-body tbody tr.row-selected td.column-locked{background:var(--dg-row-selected-bg)!important}.ngb-grid .cell-highlight{background:var(--dg-primary-soft)}.ngb-grid .grid-search-highlight{padding:0;border-radius:.15rem;background:var(--dg-sticky-badge-bg);color:inherit;font-weight:inherit}.ngb-grid .grid-detail-toggle{min-width:2rem;width:2rem;height:2rem;padding:0;border-radius:999px}.ngb-grid .grid-cell-content{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis}.ngb-grid .grid-cell-content,.ngb-grid .grid-cell-text{font-weight:400}.ngb-grid .grid-cell--emphasis .grid-cell-content,.ngb-grid .grid-cell--emphasis .grid-cell-text{font-weight:700}.ngb-grid .grid-boolean-pill{display:inline-flex;align-items:center;justify-content:center;min-width:3.5rem;padding:.25rem .55rem;border-radius:999px;background:var(--dg-neutral-pill-bg);color:var(--dg-text-muted);font-size:.75rem;font-weight:700}.ngb-grid .grid-boolean-pill--true{background:var(--dg-success-soft);color:var(--dg-success-text)}.ngb-grid .grid-row-action{padding:.55rem .8rem;font-size:.8125rem;font-weight:600;white-space:nowrap}.ngb-grid .grid-actions-cell{overflow:visible;text-overflow:clip;white-space:normal}.ngb-grid .grid-actions-cell__inner{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;flex-wrap:nowrap}.ngb-grid .grid-row-action--secondary{color:var(--dg-primary);background:var(--dg-primary-soft);border-color:var(--dg-primary-border-subtle)}.ngb-grid .grid-row-action--danger{color:var(--dg-danger-text);background:var(--dg-danger-soft);border-color:var(--dg-danger-border-subtle)}.ngb-grid .grid-row-action--success{color:var(--dg-success-text);background:var(--dg-success-soft);border-color:var(--dg-success-border-subtle)}.ngb-grid .grid-row-action--neutral{color:var(--dg-text-muted);background:var(--dg-locked-bg);border-color:var(--dg-border)}.ngb-grid .grid-detail-row__cell{padding:0;background:var(--dg-detail-row-bg)}.ngb-grid .grid-detail-row__content{padding:1rem 1.25rem}.ngb-grid.ngb-grid--compact .grid-table th,.ngb-grid.ngb-grid--compact .grid-table td{padding:.55rem .65rem}.ngb-grid.ngb-grid--compact .datagrid-toolbar__button,.ngb-grid.ngb-grid--compact .grid-row-action,.ngb-grid.ngb-grid--compact .grid-filter-apply,.ngb-grid.ngb-grid--compact .grid-filter-clear,.ngb-grid.ngb-grid--compact .grid-filter-operator__button,.ngb-grid.ngb-grid--compact .grid-filter-menu-trigger,.ngb-grid.ngb-grid--compact .grid-detail-toggle,.ngb-grid.ngb-grid--compact .grid-filter-control,.ngb-grid.ngb-grid--compact .grid-edit-control{min-height:32px;font-size:.8125rem}.ngb-grid .grid-row--reorderable{cursor:grab}.ngb-grid .grid-row--reorderable.ngb-dnd-dragging{cursor:grabbing;opacity:.82}.ngb-grid .ngb-dnd-placeholder{display:table-row;background:transparent}.ngb-grid tbody.ngb-dnd-list,.ngb-grid tbody.ngb-dnd-list.ngb-dnd-over[data-drop-valid=true],.ngb-grid tbody.ngb-dnd-list.ngb-dnd-over[data-drop-valid=false]{border:0;border-radius:0;background:transparent;box-shadow:none}.ngb-grid .ngb-dnd-placeholder>td{padding:0;border:0;background:transparent}.ngb-grid .ngb-dnd-placeholder__bar{display:block;height:.35rem;background:var(--dg-primary-selection-overlay)}.ngb-grid.ngb-grid--stacked .grid-header-shell,.ngb-grid.ngb-grid--stacked .grid-header{display:none}.ngb-grid.ngb-grid--stacked .table-wrapper{width:100%}.ngb-grid.ngb-grid--stacked .table-body-scroll{width:100%;max-height:none;overflow:visible;border-top:0;border-bottom:0}.ngb-grid.ngb-grid--stacked .grid-table.grid-body{width:100%;min-width:0;max-width:100%;table-layout:auto}.ngb-grid.ngb-grid--stacked .grid-table.grid-body colgroup{display:none}.ngb-grid.ngb-grid--stacked .grid-table.grid-body tbody{display:block;width:100%}.ngb-grid.ngb-grid--menu-open .grid-header-shell,.ngb-grid.ngb-grid--row-operator-open .grid-header-shell,.ngb-grid.ngb-grid--row-operator-open .filter-row th{overflow:visible}.ngb-grid.ngb-grid--menu-open .grid-header-shell,.ngb-grid.ngb-grid--menu-open .grid-header{z-index:80}.ngb-grid.ngb-grid--menu-open .grid-header thead th.filter-menu-open{position:relative;z-index:95;overflow:visible}.ngb-grid.ngb-grid--menu-open .grid-filter-menu-host{z-index:90}.ngb-grid__filter-menu-overlay{pointer-events:auto}.ngb-grid__layout-toolbar-host:empty{display:none}.ngb-grid__layout-toolbar-host:not(:empty){border-bottom:1px solid var(--dg-border)}.ngb-grid .table-wrapper{position:relative}.ngb-grid.ngb-grid--loading .table-wrapper{pointer-events:none}.ngb-grid.ngb-grid--loading .table-wrapper .grid-table{opacity:var(--ngb-disabled-opacity, .45)}.ngb-grid__loading-overlay{position:absolute;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;background:var(--dg-loading-overlay);pointer-events:none}.ngb-grid.ngb-grid--stacked .grid-table.grid-body tbody tr{display:grid;width:100%;box-sizing:border-box;grid-template-columns:minmax(0,1fr);gap:.65rem;border-bottom:1px solid var(--dg-border);padding:.9rem 1rem}.ngb-grid.ngb-grid--stacked .grid-table.grid-body tbody td{display:grid;width:100%;min-width:0;box-sizing:border-box;white-space:normal;border-bottom:0;padding:.35rem 0;position:static!important;left:auto!important;right:auto!important}.ngb-grid.ngb-grid--stacked .grid-table.grid-body tbody td:not([data-title]){grid-column:1/-1}.ngb-grid.ngb-grid--stacked:not(.ngb-grid--stacked-cards) .grid-table.grid-body tbody td[data-title]{grid-template-columns:minmax(5.5rem,34%) minmax(0,1fr);align-items:baseline;column-gap:.75rem}.ngb-grid.ngb-grid--stacked:not(.ngb-grid--stacked-cards) .grid-table.grid-body tbody td:before{content:attr(data-title);font-size:.8125rem;font-weight:700;color:var(--dg-text-muted);line-height:1.3}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .grid-table.grid-body tbody tr{display:block;width:100%;padding:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .grid-table.grid-body tbody td.ngb-stacked-card-cell{display:block;width:100%;padding:.9rem 1rem;border-bottom:1px solid var(--dg-border)}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card,.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__layout{width:100%;min-width:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__layout{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem}@media(min-width:40rem){.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__layout{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);align-items:start;column-gap:1.5rem}}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__group{display:flex;flex-direction:column;gap:.85rem;min-width:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__field{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;min-width:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__label{font-size:.8125rem;font-weight:700;color:var(--dg-text-muted);line-height:1.3}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__value{width:100%;min-width:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .grid-table.grid-body tbody td:not([data-title]):not(.ngb-stacked-card-cell){display:block;width:100%;padding:.65rem 1rem 0;border-bottom:0}.ngb-grid[data-theme=material] .datagrid-toolbar__button--primary,.ngb-grid[data-theme=tailwind] .datagrid-toolbar__button--primary,.ngb-grid[data-theme=material] .grid-filter-apply,.ngb-grid[data-theme=tailwind] .grid-filter-apply{border-color:var(--dg-primary);background:var(--dg-primary)}.ngb-grid.ngb-responsive .table{width:100%}@media(max-width:992px){.ngb-grid .grid-filter-inline{min-width:11rem}.ngb-grid .grid-filter-field{min-width:10rem}}@media(max-width:768px){.ngb-grid .datagrid-toolbar{align-items:stretch}.ngb-grid .datagrid-toolbar__actions{justify-content:stretch}.ngb-grid .datagrid-toolbar__button{flex:1 1 auto}.ngb-grid .grid-filter-inline{width:100%}.ngb-grid.ngb-responsive thead{display:none}.ngb-grid.ngb-responsive tbody tr{display:grid;grid-template-columns:1fr;gap:.5rem;border:1px solid var(--dg-border);border-radius:.75rem;padding:.75rem;margin-bottom:.75rem}.ngb-grid.ngb-responsive tbody td{display:grid;grid-template-columns:8rem 1fr}.ngb-grid.ngb-responsive tbody td:before{content:attr(data-title);font-weight:600;opacity:.75;padding-right:.5rem}}.ngb-grid .datagrid-editing-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.75rem 1rem;border:1px solid var(--dg-border);border-bottom:0;border-radius:var(--dg-radius-lg) var(--dg-radius-lg) 0 0;background:var(--dg-surface)}.ngb-grid .datagrid-editing-toolbar__start,.ngb-grid .datagrid-editing-toolbar__end{display:inline-flex;align-items:center;gap:.5rem}.ngb-grid .datagrid-editing-toolbar__save[hidden],.ngb-grid .datagrid-editing-toolbar__cancel[hidden]{display:none!important}.ngb-grid .datagrid-editing-toolbar__hint{flex:1 1 auto;text-align:center;font-size:.875rem;font-weight:600;color:var(--dg-text-muted)}.ngb-grid .grid-cell--incell{cursor:cell}.ngb-grid .grid-cell--incell:not(.grid-cell--editing) .grid-cell-content,.ngb-grid .grid-cell--incell:not(.grid-cell--editing) .grid-cell-content *{pointer-events:none}.ngb-grid .grid-cell--editing .grid-edit-control{border-color:var(--dg-primary);box-shadow:var(--dg-focus-shadow)}.ngb-grid .grid-external-editor{position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;padding:1.5rem}.ngb-grid .grid-external-editor__backdrop{position:absolute;inset:0;border:0;background:var(--dg-backdrop);cursor:pointer}.ngb-grid .grid-external-editor__panel{position:relative;z-index:1;width:min(32rem,100%);max-height:min(90vh,40rem);overflow:auto;padding:1.25rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-lg);background:var(--dg-surface);box-shadow:var(--dg-shadow-md)}.ngb-grid .grid-external-editor__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.ngb-grid .grid-external-editor__title{margin:0;font-size:1.125rem;font-weight:700}.ngb-grid .grid-external-editor__close{border:0;background:transparent;color:var(--dg-text-muted);padding:.25rem;cursor:pointer}.ngb-grid .grid-external-editor__form{display:grid;gap:.85rem}.ngb-grid .grid-external-editor__field{display:grid;gap:.35rem}.ngb-grid .grid-external-editor__label{font-size:.8125rem;font-weight:700;color:var(--dg-text-muted);text-transform:uppercase;letter-spacing:.03em}.ngb-grid .grid-external-editor__error{font-size:.75rem;color:var(--dg-danger)}.ngb-grid .grid-external-editor__actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}.ngb-grid__status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ngb-grid .grid-body td[role=gridcell]:focus-visible,.ngb-grid .grid-body td[role=gridcell].grid-cell--focused{outline:2px solid var(--dg-focus-ring);outline-offset:-2px}.ngb-grid--rtl .grid-column-reorder-handle{transform:scaleX(-1)}.ngb-grid--rtl .column-pinned-start{left:auto;right:var(--dg-pin-start, 0)}.ngb-grid--rtl .column-pinned-end{right:auto;left:var(--dg-pin-end, 0)}.ngb-grid .grid-footer{width:100%;color:var(--dg-pager-text)}.ngb-grid .grid-footer--top{margin-bottom:0;border-bottom:var(--dg-table-border-width) solid var(--dg-border)}.ngb-grid .grid-footer--custom{width:100%}\n"] }]
10580
10553
  }], propDecorators: { columns: [{
10581
10554
  type: Input
10582
10555
  }], data: [{
@@ -13157,18 +13130,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
13157
13130
  }] } });
13158
13131
 
13159
13132
  const NGB_DATAGRID_THEME_OPTIONS = [
13160
- { value: 'bootstrap', label: 'Classic', group: 'Bootstrap', swatches: ['#ffffff', '#0d6efd', '#6c757d'] },
13133
+ { value: 'bootstrap', label: 'Classic', group: 'Bootstrap', swatches: ['var(--bs-body-bg, #ffffff)', 'var(--bs-primary, #0d6efd)', 'var(--bs-body-color, #212529)'] },
13161
13134
  { value: 'bootstrap-main', label: 'Ocean', group: 'Bootstrap', swatches: ['#f8fbff', '#1769e0', '#172554'] },
13162
- { value: 'bootstrap-main-dark', label: 'Midnight', group: 'Bootstrap', swatches: ['#111827', '#38bdf8', '#e5e7eb'], dark: true },
13163
- { value: 'bootstrap-nordic', label: 'Aqua Rose', group: 'Bootstrap', swatches: ['#f8ffff', '#0891b2', '#fb7185'] },
13164
- { value: 'bootstrap-urban', label: 'Clay', group: 'Bootstrap', swatches: ['#fffaf7', '#c05621', '#256d85'] },
13165
- { value: 'bootstrap-vintage', label: 'Sage', group: 'Bootstrap', swatches: ['#fffdf7', '#6b705c', '#b08968'] },
13166
- { value: 'material-main', label: 'Orchid', group: 'Material', swatches: ['#fffbfe', '#9c27b0', '#2d1b33'] },
13167
- { value: 'material-indigo', label: 'Indigo', group: 'Material', swatches: ['#f7f8ff', '#3f51b5', '#263238'] },
13168
- { value: 'material-deep-purple', label: 'Plum', group: 'Material', swatches: ['#fdf8ff', '#7e57c2', '#4a148c'] },
13169
- { value: 'tailwind-main', label: 'Sky', group: 'Tailwind', swatches: ['#ffffff', '#0284c7', '#0f172a'] },
13170
- { value: 'tailwind-slate', label: 'Graphite', group: 'Tailwind', swatches: ['#f8fafc', '#334155', '#020617'] },
13171
- { value: 'tailwind-emerald', label: 'Mint', group: 'Tailwind', swatches: ['#f0fdfa', '#0f766e', '#064e3b'] },
13135
+ { value: 'bootstrap-main-dark', label: 'Midnight', group: 'Bootstrap', swatches: ['#172033', '#38bdf8', '#edf2ff'], dark: true },
13136
+ { value: 'bootstrap-nordic', label: 'Aqua Rose', group: 'Bootstrap', swatches: ['#ffffff', '#0ea5b7', '#263243'] },
13137
+ { value: 'bootstrap-urban', label: 'Clay', group: 'Bootstrap', swatches: ['#ffffff', '#468faf', '#263445'] },
13138
+ { value: 'bootstrap-vintage', label: 'Sage', group: 'Bootstrap', swatches: ['#fffdf8', '#7f4f68', '#3d3440'] },
13139
+ { value: 'material-main', label: 'Orchid', group: 'Material', swatches: ['#fffbfe', '#6750a4', '#1c1b1f'] },
13140
+ { value: 'material-indigo', label: 'Indigo', group: 'Material', swatches: ['#fffbfe', '#3f51b5', '#1c1b1f'] },
13141
+ { value: 'material-deep-purple', label: 'Plum', group: 'Material', swatches: ['#fffbfe', '#7e57c2', '#1c1b1f'] },
13142
+ { value: 'tailwind-main', label: 'Sky', group: 'Tailwind', swatches: ['#ffffff', '#2563eb', '#0f172a'] },
13143
+ { value: 'tailwind-slate', label: 'Graphite', group: 'Tailwind', swatches: ['#f8fafc', '#475569', '#0f172a'] },
13144
+ { value: 'tailwind-emerald', label: 'Mint', group: 'Tailwind', swatches: ['#ffffff', '#059669', '#064e3b'] },
13172
13145
  ];
13173
13146
 
13174
13147
  class NgbDatagridThemePickerComponent {
@@ -13238,7 +13211,7 @@ class NgbDatagridThemePickerComponent {
13238
13211
  (click)="toggle()"
13239
13212
  >
13240
13213
  <span class="ngb-datagrid-theme-picker__swatches" aria-hidden="true">
13241
- @for (color of selectedTheme.swatches; track color) {
13214
+ @for (color of selectedTheme.swatches; track $index) {
13242
13215
  <span
13243
13216
  class="ngb-datagrid-theme-picker__swatch"
13244
13217
  [style.background]="color"
@@ -13263,7 +13236,7 @@ class NgbDatagridThemePickerComponent {
13263
13236
  (click)="select(theme)"
13264
13237
  >
13265
13238
  <span class="ngb-datagrid-theme-picker__swatches" aria-hidden="true">
13266
- @for (color of theme.swatches; track color) {
13239
+ @for (color of theme.swatches; track $index) {
13267
13240
  <span
13268
13241
  class="ngb-datagrid-theme-picker__swatch"
13269
13242
  [style.background]="color"
@@ -13300,7 +13273,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
13300
13273
  (click)="toggle()"
13301
13274
  >
13302
13275
  <span class="ngb-datagrid-theme-picker__swatches" aria-hidden="true">
13303
- @for (color of selectedTheme.swatches; track color) {
13276
+ @for (color of selectedTheme.swatches; track $index) {
13304
13277
  <span
13305
13278
  class="ngb-datagrid-theme-picker__swatch"
13306
13279
  [style.background]="color"
@@ -13325,7 +13298,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
13325
13298
  (click)="select(theme)"
13326
13299
  >
13327
13300
  <span class="ngb-datagrid-theme-picker__swatches" aria-hidden="true">
13328
- @for (color of theme.swatches; track color) {
13301
+ @for (color of theme.swatches; track $index) {
13329
13302
  <span
13330
13303
  class="ngb-datagrid-theme-picker__swatch"
13331
13304
  [style.background]="color"
@@ -13360,6 +13333,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
13360
13333
  args: ['keydown.escape']
13361
13334
  }] } });
13362
13335
 
13336
+ class NgbGridHighlightDirective {
13337
+ grid;
13338
+ rowKey;
13339
+ highlightColumnIndex;
13340
+ highlightedIndex = [];
13341
+ constructor(grid) {
13342
+ this.grid = grid;
13343
+ }
13344
+ ngOnInit() {
13345
+ this.apply();
13346
+ }
13347
+ ngOnChanges(_ch) {
13348
+ this.apply();
13349
+ }
13350
+ apply() {
13351
+ if (!this.grid)
13352
+ return;
13353
+ this.grid.highlightRowKey = this.rowKey ?? null;
13354
+ this.grid.highlightColKey = this.highlightColumnIndex ?? null;
13355
+ this.grid.highlightedIndex = this.highlightedIndex ?? [];
13356
+ this.grid.updateHighlightCache();
13357
+ }
13358
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbGridHighlightDirective, deps: [{ token: Datagrid, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
13359
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: NgbGridHighlightDirective, isStandalone: true, selector: "[ngbGridHighlight]", inputs: { rowKey: ["ngbGridHighlight", "rowKey"], highlightColumnIndex: "highlightColumnIndex", highlightedIndex: "highlightedIndex" }, usesOnChanges: true, ngImport: i0 });
13360
+ }
13361
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbGridHighlightDirective, decorators: [{
13362
+ type: Directive,
13363
+ args: [{
13364
+ selector: '[ngbGridHighlight]',
13365
+ standalone: true
13366
+ }]
13367
+ }], ctorParameters: () => [{ type: Datagrid, decorators: [{
13368
+ type: Optional
13369
+ }] }], propDecorators: { rowKey: [{
13370
+ type: Input,
13371
+ args: ['ngbGridHighlight']
13372
+ }], highlightColumnIndex: [{
13373
+ type: Input
13374
+ }], highlightedIndex: [{
13375
+ type: Input
13376
+ }] } });
13377
+
13363
13378
  class NgbDndHandleDirective {
13364
13379
  item;
13365
13380
  constructor(item) {
@@ -13419,13 +13434,13 @@ class NgbJsonPreviewComponent {
13419
13434
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbJsonPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13420
13435
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: NgbJsonPreviewComponent, isStandalone: true, selector: "ngb-json-preview", inputs: { value: "value", indent: "indent", fallback: "fallback", maxHeight: "maxHeight" }, ngImport: i0, template: `
13421
13436
  <pre class="ngb-json-preview" [style.max-height.px]="maxHeight"><code>{{ formattedJson }}</code></pre>
13422
- `, isInline: true, styles: [":host{display:block}.ngb-json-preview{margin:0;overflow:auto;padding:.75rem 1rem;border:0;background:var(--bs-body-bg, #fff);color:var(--bs-body-color, #212529);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.875rem;line-height:1.4;white-space:pre}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13437
+ `, isInline: true, styles: [":host{display:block}.ngb-json-preview{margin:0;overflow:auto;padding:var(--ngb-space-3, .75rem) var(--ngb-space-4, 1rem);border:0;background:var(--ngb-surface, var(--bs-body-bg, #fff));color:var(--ngb-on-surface, var(--bs-body-color, #212529));font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:var(--ngb-font-size-sm, .875rem);line-height:1.4;white-space:pre}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13423
13438
  }
13424
13439
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbJsonPreviewComponent, decorators: [{
13425
13440
  type: Component,
13426
13441
  args: [{ selector: 'ngb-json-preview', standalone: true, template: `
13427
13442
  <pre class="ngb-json-preview" [style.max-height.px]="maxHeight"><code>{{ formattedJson }}</code></pre>
13428
- `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}.ngb-json-preview{margin:0;overflow:auto;padding:.75rem 1rem;border:0;background:var(--bs-body-bg, #fff);color:var(--bs-body-color, #212529);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.875rem;line-height:1.4;white-space:pre}\n"] }]
13443
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}.ngb-json-preview{margin:0;overflow:auto;padding:var(--ngb-space-3, .75rem) var(--ngb-space-4, 1rem);border:0;background:var(--ngb-surface, var(--bs-body-bg, #fff));color:var(--ngb-on-surface, var(--bs-body-color, #212529));font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:var(--ngb-font-size-sm, .875rem);line-height:1.4;white-space:pre}\n"] }]
13429
13444
  }], propDecorators: { value: [{
13430
13445
  type: Input
13431
13446
  }], indent: [{
@@ -13641,11 +13656,11 @@ class NgbStepperComponent {
13641
13656
  });
13642
13657
  }
13643
13658
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbStepperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13644
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: NgbStepperComponent, isStandalone: true, selector: "ngb-stepper", inputs: { steps: "steps", orientation: "orientation", labelPosition: "labelPosition", contentPosition: "contentPosition", allowRevisit: "allowRevisit", lazy: "lazy", theme: "theme", responsive: "responsive", disableAnimation: "disableAnimation", animationDuration: "animationDuration", nextLabel: "nextLabel", previousLabel: "previousLabel", resetLabel: "resetLabel", cancelLabel: "cancelLabel", optionalLabel: "optionalLabel", stateIcons: "stateIcons", selectedIndex: "selectedIndex" }, outputs: { selectedIndexChange: "selectedIndexChange", selectionChange: "selectionChange", nextClicked: "nextClicked", prevClicked: "prevClicked", resetClicked: "resetClicked", cancelClicked: "cancelClicked" }, queries: [{ propertyName: "stepLabelTplDir", first: true, predicate: NgbStepLabelDirective, descendants: true }, { propertyName: "customIconTpl", first: true, predicate: ["ngbStepperIcon"], descendants: true, read: TemplateRef }, { propertyName: "stepContentTpl", first: true, predicate: ["stepContent"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<div\n class=\"ngb-stepper\"\n [class.horizontal]=\"orientation === 'horizontal'\"\n [class.vertical]=\"orientation === 'vertical'\"\n [class.ngb-responsive]=\"responsive\"\n [class.bootstrap]=\"theme === 'bootstrap'\"\n [class.material]=\"theme === 'material'\"\n [class.tailwind]=\"theme === 'tailwind'\"\n role=\"tablist\"\n [attr.aria-orientation]=\"orientation\"\n>\n <!-- HEADER / LABELS -->\n <div class=\"ngb-stepper-header\">\n <ol class=\"ngb-stepper-steps\" role=\"presentation\">\n @for (step of steps; track step; let i = $index) {\n <li\n class=\"ngb-stepper-step\"\n [class.active]=\"i === selectedIndex\"\n [class.done]=\"i < selectedIndex && !isStepInError(i)\"\n [class.error]=\"isStepInError(i)\"\n [class.disabled]=\"step.disabled\"\n role=\"tab\"\n [attr.id]=\"stepId(i)\"\n [attr.aria-controls]=\"contentId(i)\"\n [attr.aria-selected]=\"i === selectedIndex\"\n [attr.aria-disabled]=\"step.disabled || (!allowRevisit && i < visitedFrom && i !== selectedIndex)\"\n tabindex=\"{{ i === selectedIndex ? 0 : -1 }}\"\n (click)=\"onHeaderClick(i)\"\n (keydown.enter)=\"onHeaderKeydown($event, i)\"\n (keydown.space)=\"onHeaderKeydown($event, i)\"\n >\n <div\n class=\"ngb-stepper-indicator\"\n [ngClass]=\"indicatorClass(i)\"\n aria-hidden=\"true\"\n >\n @if (customIconTpl) {\n <ng-container\n [ngTemplateOutlet]=\"customIconTpl\"\n [ngTemplateOutletContext]=\"{ index: i, state: stepState(i) }\"\n ></ng-container>\n } @else {\n {{ defaultIconForState(stepState(i), i) }}\n }\n </div>\n\n <div\n class=\"ngb-stepper-label-container\"\n [ngClass]=\"labelPositionClass\"\n >\n @if (stepLabelTpl) {\n <div class=\"ngb-stepper-label\">\n <ng-container\n [ngTemplateOutlet]=\"stepLabelTpl\"\n [ngTemplateOutletContext]=\"{ index: i, step: step }\"\n ></ng-container>\n </div>\n } @else {\n <div class=\"ngb-stepper-label-text\">\n {{ step.label || ('Step ' + (i + 1)) }}\n </div>\n }\n @if (step.optional) {\n <div class=\"ngb-stepper-optional\">\n {{ optionalLabel }}\n </div>\n }\n </div>\n </li>\n }\n </ol>\n </div>\n\n <!-- CONTENT -->\n <div class=\"ngb-stepper-content\" [class.ngb-stepper-content-top]=\"contentPosition === 'top'\">\n @if (lazy) {\n <div\n class=\"fade-step\"\n [style.--ngb-stepper-animation-duration]=\"(disableAnimation ? 0 : animationDuration) + 'ms'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"stepId(selectedIndex)\"\n [attr.id]=\"contentId(selectedIndex)\"\n >\n <ng-container *ngTemplateOutlet=\"stepContentTpl; context: { index: selectedIndex }\"></ng-container>\n @if (currentErrorMessage) {\n <div class=\"ngb-stepper-error\" role=\"alert\">\n {{ currentErrorMessage }}\n </div>\n }\n </div>\n } @else {\n <div\n class=\"fade-step\"\n [style.--ngb-stepper-animation-duration]=\"(disableAnimation ? 0 : animationDuration) + 'ms'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"stepId(selectedIndex)\"\n [attr.id]=\"contentId(selectedIndex)\"\n >\n <ng-container *ngTemplateOutlet=\"stepContentTpl; context: { index: selectedIndex }\"></ng-container>\n @if (currentErrorMessage) {\n <div class=\"ngb-stepper-error\" role=\"alert\">\n {{ currentErrorMessage }}\n </div>\n }\n </div>\n }\n </div>\n\n <!-- ACTIONS -->\n <div class=\"ngb-stepper-buttons\">\n <button\n type=\"button\"\n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"onCancel()\"\n >\n {{ cancelLabel }}\n </button>\n\n <button\n type=\"button\"\n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"onReset()\"\n >\n {{ resetLabel }}\n </button>\n\n <button\n type=\"button\"\n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"prev()\"\n [disabled]=\"selectedIndex <= 0 || !allowRevisit\"\n >\n {{ previousLabel }}\n </button>\n\n <button\n type=\"button\"\n class=\"btn btn-sm btn-primary\"\n (click)=\"next()\"\n [disabled]=\"selectedIndex >= steps.length - 1 || steps[selectedIndex]?.disabled\"\n >\n {{ nextLabel }}\n </button>\n </div>\n</div>\n", styles: [".ngb-stepper{display:flex;flex-direction:column}.ngb-stepper.horizontal .ngb-stepper-header{display:flex;overflow-x:auto}.ngb-stepper.vertical .ngb-stepper-header{display:block}.ngb-stepper-header{margin-bottom:1rem}.ngb-stepper-steps{list-style:none;padding:0;margin:0;display:flex;flex-wrap:nowrap}.ngb-stepper.vertical .ngb-stepper-steps{flex-direction:column}.ngb-stepper-step{position:relative;display:flex;align-items:center;cursor:pointer}.ngb-stepper.horizontal .ngb-stepper-step{padding:.5rem .75rem}.ngb-stepper.vertical .ngb-stepper-step{padding:.5rem 0}.ngb-stepper-step.disabled{cursor:default;opacity:.6}.ngb-stepper-indicator{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;margin-right:.5rem;flex-shrink:0}.ngb-stepper.bootstrap .ngb-stepper-indicator{border:1px solid var(--bs-border-color, #dee2e6);background-color:var(--bs-body-bg, #fff)}.ngb-stepper.bootstrap .ngb-stepper-step.active .ngb-stepper-indicator{background-color:var(--bs-primary, #0d6efd);color:#fff}.ngb-stepper.bootstrap .ngb-stepper-step.done .ngb-stepper-indicator{background-color:var(--bs-success, #198754);color:#fff}.ngb-stepper.bootstrap .ngb-stepper-step.error .ngb-stepper-indicator{background-color:var(--bs-danger, #dc3545);color:#fff}.ngb-stepper-label-container{display:flex;flex-direction:column}.ngb-stepper-label-top{flex-direction:column-reverse}.ngb-stepper-label-bottom{flex-direction:column}.ngb-stepper-label-left{flex-direction:row-reverse}.ngb-stepper-label-right{flex-direction:row}.ngb-stepper-content{position:relative}.ngb-stepper-content-top{order:-1}.ngb-stepper-buttons{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.ngb-stepper-error{color:var(--bs-danger, #dc3545);font-size:.875rem;margin-top:.25rem}.ngb-stepper-optional{font-size:.75rem;opacity:.7}.ngb-stepper .fade-step{animation:ngb-stepper-fade var(--ngb-stepper-animation-duration, .15s) ease-in-out;animation-fill-mode:both}@keyframes ngb-stepper-fade{0%{opacity:0;transform:translateY(.35rem)}to{opacity:1;transform:translateY(0)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13659
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: NgbStepperComponent, isStandalone: true, selector: "ngb-stepper", inputs: { steps: "steps", orientation: "orientation", labelPosition: "labelPosition", contentPosition: "contentPosition", allowRevisit: "allowRevisit", lazy: "lazy", theme: "theme", responsive: "responsive", disableAnimation: "disableAnimation", animationDuration: "animationDuration", nextLabel: "nextLabel", previousLabel: "previousLabel", resetLabel: "resetLabel", cancelLabel: "cancelLabel", optionalLabel: "optionalLabel", stateIcons: "stateIcons", selectedIndex: "selectedIndex" }, outputs: { selectedIndexChange: "selectedIndexChange", selectionChange: "selectionChange", nextClicked: "nextClicked", prevClicked: "prevClicked", resetClicked: "resetClicked", cancelClicked: "cancelClicked" }, queries: [{ propertyName: "stepLabelTplDir", first: true, predicate: NgbStepLabelDirective, descendants: true }, { propertyName: "customIconTpl", first: true, predicate: ["ngbStepperIcon"], descendants: true, read: TemplateRef }, { propertyName: "stepContentTpl", first: true, predicate: ["stepContent"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<div\n class=\"ngb-stepper\"\n [attr.data-ngb-theme]=\"theme === 'bootstrap' ? null : theme\"\n [class.horizontal]=\"orientation === 'horizontal'\"\n [class.vertical]=\"orientation === 'vertical'\"\n [class.ngb-responsive]=\"responsive\"\n [class.bootstrap]=\"theme === 'bootstrap'\"\n [class.material]=\"theme === 'material'\"\n [class.tailwind]=\"theme === 'tailwind'\"\n role=\"tablist\"\n [attr.aria-orientation]=\"orientation\"\n>\n <!-- HEADER / LABELS -->\n <div class=\"ngb-stepper-header\">\n <ol class=\"ngb-stepper-steps\" role=\"presentation\">\n @for (step of steps; track step; let i = $index) {\n <li\n class=\"ngb-stepper-step\"\n [class.active]=\"i === selectedIndex\"\n [class.done]=\"i < selectedIndex && !isStepInError(i)\"\n [class.error]=\"isStepInError(i)\"\n [class.disabled]=\"step.disabled\"\n role=\"tab\"\n [attr.id]=\"stepId(i)\"\n [attr.aria-controls]=\"contentId(i)\"\n [attr.aria-selected]=\"i === selectedIndex\"\n [attr.aria-disabled]=\"step.disabled || (!allowRevisit && i < visitedFrom && i !== selectedIndex)\"\n tabindex=\"{{ i === selectedIndex ? 0 : -1 }}\"\n (click)=\"onHeaderClick(i)\"\n (keydown.enter)=\"onHeaderKeydown($event, i)\"\n (keydown.space)=\"onHeaderKeydown($event, i)\"\n >\n <div\n class=\"ngb-stepper-indicator\"\n [ngClass]=\"indicatorClass(i)\"\n aria-hidden=\"true\"\n >\n @if (customIconTpl) {\n <ng-container\n [ngTemplateOutlet]=\"customIconTpl\"\n [ngTemplateOutletContext]=\"{ index: i, state: stepState(i) }\"\n ></ng-container>\n } @else {\n {{ defaultIconForState(stepState(i), i) }}\n }\n </div>\n\n <div\n class=\"ngb-stepper-label-container\"\n [ngClass]=\"labelPositionClass\"\n >\n @if (stepLabelTpl) {\n <div class=\"ngb-stepper-label\">\n <ng-container\n [ngTemplateOutlet]=\"stepLabelTpl\"\n [ngTemplateOutletContext]=\"{ index: i, step: step }\"\n ></ng-container>\n </div>\n } @else {\n <div class=\"ngb-stepper-label-text\">\n {{ step.label || ('Step ' + (i + 1)) }}\n </div>\n }\n @if (step.optional) {\n <div class=\"ngb-stepper-optional\">\n {{ optionalLabel }}\n </div>\n }\n </div>\n </li>\n }\n </ol>\n </div>\n\n <!-- CONTENT -->\n <div class=\"ngb-stepper-content\" [class.ngb-stepper-content-top]=\"contentPosition === 'top'\">\n @if (lazy) {\n <div\n class=\"fade-step\"\n [style.--ngb-stepper-animation-duration]=\"(disableAnimation ? 0 : animationDuration) + 'ms'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"stepId(selectedIndex)\"\n [attr.id]=\"contentId(selectedIndex)\"\n >\n <ng-container *ngTemplateOutlet=\"stepContentTpl; context: { index: selectedIndex }\"></ng-container>\n @if (currentErrorMessage) {\n <div class=\"ngb-stepper-error\" role=\"alert\">\n {{ currentErrorMessage }}\n </div>\n }\n </div>\n } @else {\n <div\n class=\"fade-step\"\n [style.--ngb-stepper-animation-duration]=\"(disableAnimation ? 0 : animationDuration) + 'ms'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"stepId(selectedIndex)\"\n [attr.id]=\"contentId(selectedIndex)\"\n >\n <ng-container *ngTemplateOutlet=\"stepContentTpl; context: { index: selectedIndex }\"></ng-container>\n @if (currentErrorMessage) {\n <div class=\"ngb-stepper-error\" role=\"alert\">\n {{ currentErrorMessage }}\n </div>\n }\n </div>\n }\n </div>\n\n <!-- ACTIONS -->\n <div class=\"ngb-stepper-buttons\">\n <button\n type=\"button\"\n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"onCancel()\"\n >\n {{ cancelLabel }}\n </button>\n\n <button\n type=\"button\"\n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"onReset()\"\n >\n {{ resetLabel }}\n </button>\n\n <button\n type=\"button\"\n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"prev()\"\n [disabled]=\"selectedIndex <= 0 || !allowRevisit\"\n >\n {{ previousLabel }}\n </button>\n\n <button\n type=\"button\"\n class=\"btn btn-sm btn-primary\"\n (click)=\"next()\"\n [disabled]=\"selectedIndex >= steps.length - 1 || steps[selectedIndex]?.disabled\"\n >\n {{ nextLabel }}\n </button>\n </div>\n</div>\n", styles: [":host{font-family:var(--ngb-font-family, inherit);color:var(--ngb-on-surface, inherit)}.btn{--bs-btn-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-btn-disabled-opacity: var(--ngb-disabled-opacity, .65)}.btn-primary{--bs-btn-bg: var(--ngb-primary, #0d6efd);--bs-btn-border-color: var(--ngb-primary, #0d6efd);--bs-btn-color: var(--ngb-on-primary, #fff);--bs-btn-hover-bg: var(--ngb-primary-hover, #0b5ed7);--bs-btn-hover-border-color: var(--ngb-primary-hover, #0a58ca);--bs-btn-hover-color: var(--ngb-on-primary, #fff);--bs-btn-active-bg: var(--ngb-primary-hover, #0a58ca);--bs-btn-active-border-color: var(--ngb-primary-hover, #0a53be);--bs-btn-active-color: var(--ngb-on-primary, #fff);--bs-btn-disabled-bg: var(--ngb-primary, #0d6efd);--bs-btn-disabled-border-color: var(--ngb-primary, #0d6efd);--bs-btn-disabled-color: var(--ngb-on-primary, #fff)}.btn-outline-secondary{--bs-btn-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-border-color: var(--ngb-border-color, #6c757d);--bs-btn-hover-bg: var(--ngb-hover-bg, #6c757d);--bs-btn-hover-color: var(--ngb-on-surface, #fff);--bs-btn-hover-border-color: var(--ngb-border-color, #6c757d);--bs-btn-active-bg: var(--ngb-selected-bg, #6c757d);--bs-btn-active-color: var(--ngb-on-surface, #fff);--bs-btn-active-border-color: var(--ngb-border-color, #6c757d);--bs-btn-disabled-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-disabled-border-color: var(--ngb-border-color, #6c757d)}.form-control,.form-select{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, var(--bs-border-radius, .375rem))}.form-control::placeholder{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.form-control:disabled,.form-select:disabled{background-color:var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));opacity:var(--ngb-disabled-opacity, 1)}.form-check-input{background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.form-check-input:checked,.form-check-input:indeterminate{background-color:var(--ngb-primary, #0d6efd);border-color:var(--ngb-primary, #0d6efd)}.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--ngb-primary, #86b7fe);box-shadow:0 0 0 .25rem var(--ngb-focus-ring, rgba(13, 110, 253, .25))}.btn:focus-visible,.page-link:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.dropdown-menu{--bs-dropdown-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-bg: var(--ngb-surface, var(--bs-body-bg, #fff));--bs-dropdown-border-color: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0,0,0,.175)));--bs-dropdown-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-dropdown-link-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--bs-dropdown-link-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-active-bg: var(--ngb-primary, #0d6efd);--bs-dropdown-link-active-color: var(--ngb-on-primary, #fff);--bs-dropdown-link-disabled-color: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #adb5bd));box-shadow:var(--ngb-elevation-2, none)}.form-select{background-image:var(--ngb-select-icon, var(--bs-form-select-bg-img))}.form-check-input:disabled{opacity:var(--ngb-disabled-opacity, .5)}.btn-sm{--bs-btn-border-radius: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}.form-control-sm,.form-select-sm{border-radius:var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}.ngb-stepper{display:flex;flex-direction:column}.ngb-stepper.horizontal .ngb-stepper-header{display:flex;overflow-x:auto}.ngb-stepper.vertical .ngb-stepper-header{display:block}.ngb-stepper-header{margin-bottom:1rem}.ngb-stepper-steps{list-style:none;padding:0;margin:0;display:flex;flex-wrap:nowrap}.ngb-stepper.vertical .ngb-stepper-steps{flex-direction:column}.ngb-stepper-step{position:relative;display:flex;align-items:center;cursor:pointer}.ngb-stepper.horizontal .ngb-stepper-step{padding:.5rem .75rem}.ngb-stepper.vertical .ngb-stepper-step{padding:.5rem 0}.ngb-stepper-step.disabled{cursor:default;opacity:var(--ngb-disabled-opacity, .6)}.ngb-stepper-indicator{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;margin-right:.5rem;flex-shrink:0}.ngb-stepper .ngb-stepper-indicator{border:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6));background-color:var(--ngb-surface, var(--bs-body-bg, #fff))}.ngb-stepper .ngb-stepper-step.active .ngb-stepper-indicator{background-color:var(--ngb-primary, var(--bs-primary, #0d6efd));color:var(--ngb-on-primary, #fff)}.ngb-stepper .ngb-stepper-step.done .ngb-stepper-indicator{background-color:var(--ngb-success, var(--bs-success, #198754));color:var(--ngb-on-success, #fff)}.ngb-stepper .ngb-stepper-step.error .ngb-stepper-indicator{background-color:var(--ngb-danger, var(--bs-danger, #dc3545));color:var(--ngb-on-danger, #fff)}.ngb-stepper-label-container{display:flex;flex-direction:column}.ngb-stepper-label-top{flex-direction:column-reverse}.ngb-stepper-label-bottom{flex-direction:column}.ngb-stepper-label-left{flex-direction:row-reverse}.ngb-stepper-label-right{flex-direction:row}.ngb-stepper-content{position:relative}.ngb-stepper-content-top{order:-1}.ngb-stepper-buttons{display:flex;justify-content:flex-end;gap:var(--ngb-space-2, .5rem);margin-top:var(--ngb-space-4, 1rem)}.ngb-stepper-error{color:var(--ngb-danger, var(--bs-danger, #dc3545));font-size:.875rem;margin-top:.25rem}.ngb-stepper-optional{font-size:.75rem;opacity:.7}.ngb-stepper .fade-step{animation:ngb-stepper-fade var(--ngb-stepper-animation-duration, .15s) ease-in-out;animation-fill-mode:both}@keyframes ngb-stepper-fade{0%{opacity:0;transform:translateY(.35rem)}to{opacity:1;transform:translateY(0)}}.ngb-stepper-step:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13645
13660
  }
13646
13661
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbStepperComponent, decorators: [{
13647
13662
  type: Component,
13648
- args: [{ selector: 'ngb-stepper', standalone: true, imports: [CommonModule, NgbStepLabelDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"ngb-stepper\"\n [class.horizontal]=\"orientation === 'horizontal'\"\n [class.vertical]=\"orientation === 'vertical'\"\n [class.ngb-responsive]=\"responsive\"\n [class.bootstrap]=\"theme === 'bootstrap'\"\n [class.material]=\"theme === 'material'\"\n [class.tailwind]=\"theme === 'tailwind'\"\n role=\"tablist\"\n [attr.aria-orientation]=\"orientation\"\n>\n <!-- HEADER / LABELS -->\n <div class=\"ngb-stepper-header\">\n <ol class=\"ngb-stepper-steps\" role=\"presentation\">\n @for (step of steps; track step; let i = $index) {\n <li\n class=\"ngb-stepper-step\"\n [class.active]=\"i === selectedIndex\"\n [class.done]=\"i < selectedIndex && !isStepInError(i)\"\n [class.error]=\"isStepInError(i)\"\n [class.disabled]=\"step.disabled\"\n role=\"tab\"\n [attr.id]=\"stepId(i)\"\n [attr.aria-controls]=\"contentId(i)\"\n [attr.aria-selected]=\"i === selectedIndex\"\n [attr.aria-disabled]=\"step.disabled || (!allowRevisit && i < visitedFrom && i !== selectedIndex)\"\n tabindex=\"{{ i === selectedIndex ? 0 : -1 }}\"\n (click)=\"onHeaderClick(i)\"\n (keydown.enter)=\"onHeaderKeydown($event, i)\"\n (keydown.space)=\"onHeaderKeydown($event, i)\"\n >\n <div\n class=\"ngb-stepper-indicator\"\n [ngClass]=\"indicatorClass(i)\"\n aria-hidden=\"true\"\n >\n @if (customIconTpl) {\n <ng-container\n [ngTemplateOutlet]=\"customIconTpl\"\n [ngTemplateOutletContext]=\"{ index: i, state: stepState(i) }\"\n ></ng-container>\n } @else {\n {{ defaultIconForState(stepState(i), i) }}\n }\n </div>\n\n <div\n class=\"ngb-stepper-label-container\"\n [ngClass]=\"labelPositionClass\"\n >\n @if (stepLabelTpl) {\n <div class=\"ngb-stepper-label\">\n <ng-container\n [ngTemplateOutlet]=\"stepLabelTpl\"\n [ngTemplateOutletContext]=\"{ index: i, step: step }\"\n ></ng-container>\n </div>\n } @else {\n <div class=\"ngb-stepper-label-text\">\n {{ step.label || ('Step ' + (i + 1)) }}\n </div>\n }\n @if (step.optional) {\n <div class=\"ngb-stepper-optional\">\n {{ optionalLabel }}\n </div>\n }\n </div>\n </li>\n }\n </ol>\n </div>\n\n <!-- CONTENT -->\n <div class=\"ngb-stepper-content\" [class.ngb-stepper-content-top]=\"contentPosition === 'top'\">\n @if (lazy) {\n <div\n class=\"fade-step\"\n [style.--ngb-stepper-animation-duration]=\"(disableAnimation ? 0 : animationDuration) + 'ms'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"stepId(selectedIndex)\"\n [attr.id]=\"contentId(selectedIndex)\"\n >\n <ng-container *ngTemplateOutlet=\"stepContentTpl; context: { index: selectedIndex }\"></ng-container>\n @if (currentErrorMessage) {\n <div class=\"ngb-stepper-error\" role=\"alert\">\n {{ currentErrorMessage }}\n </div>\n }\n </div>\n } @else {\n <div\n class=\"fade-step\"\n [style.--ngb-stepper-animation-duration]=\"(disableAnimation ? 0 : animationDuration) + 'ms'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"stepId(selectedIndex)\"\n [attr.id]=\"contentId(selectedIndex)\"\n >\n <ng-container *ngTemplateOutlet=\"stepContentTpl; context: { index: selectedIndex }\"></ng-container>\n @if (currentErrorMessage) {\n <div class=\"ngb-stepper-error\" role=\"alert\">\n {{ currentErrorMessage }}\n </div>\n }\n </div>\n }\n </div>\n\n <!-- ACTIONS -->\n <div class=\"ngb-stepper-buttons\">\n <button\n type=\"button\"\n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"onCancel()\"\n >\n {{ cancelLabel }}\n </button>\n\n <button\n type=\"button\"\n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"onReset()\"\n >\n {{ resetLabel }}\n </button>\n\n <button\n type=\"button\"\n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"prev()\"\n [disabled]=\"selectedIndex <= 0 || !allowRevisit\"\n >\n {{ previousLabel }}\n </button>\n\n <button\n type=\"button\"\n class=\"btn btn-sm btn-primary\"\n (click)=\"next()\"\n [disabled]=\"selectedIndex >= steps.length - 1 || steps[selectedIndex]?.disabled\"\n >\n {{ nextLabel }}\n </button>\n </div>\n</div>\n", styles: [".ngb-stepper{display:flex;flex-direction:column}.ngb-stepper.horizontal .ngb-stepper-header{display:flex;overflow-x:auto}.ngb-stepper.vertical .ngb-stepper-header{display:block}.ngb-stepper-header{margin-bottom:1rem}.ngb-stepper-steps{list-style:none;padding:0;margin:0;display:flex;flex-wrap:nowrap}.ngb-stepper.vertical .ngb-stepper-steps{flex-direction:column}.ngb-stepper-step{position:relative;display:flex;align-items:center;cursor:pointer}.ngb-stepper.horizontal .ngb-stepper-step{padding:.5rem .75rem}.ngb-stepper.vertical .ngb-stepper-step{padding:.5rem 0}.ngb-stepper-step.disabled{cursor:default;opacity:.6}.ngb-stepper-indicator{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;margin-right:.5rem;flex-shrink:0}.ngb-stepper.bootstrap .ngb-stepper-indicator{border:1px solid var(--bs-border-color, #dee2e6);background-color:var(--bs-body-bg, #fff)}.ngb-stepper.bootstrap .ngb-stepper-step.active .ngb-stepper-indicator{background-color:var(--bs-primary, #0d6efd);color:#fff}.ngb-stepper.bootstrap .ngb-stepper-step.done .ngb-stepper-indicator{background-color:var(--bs-success, #198754);color:#fff}.ngb-stepper.bootstrap .ngb-stepper-step.error .ngb-stepper-indicator{background-color:var(--bs-danger, #dc3545);color:#fff}.ngb-stepper-label-container{display:flex;flex-direction:column}.ngb-stepper-label-top{flex-direction:column-reverse}.ngb-stepper-label-bottom{flex-direction:column}.ngb-stepper-label-left{flex-direction:row-reverse}.ngb-stepper-label-right{flex-direction:row}.ngb-stepper-content{position:relative}.ngb-stepper-content-top{order:-1}.ngb-stepper-buttons{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.ngb-stepper-error{color:var(--bs-danger, #dc3545);font-size:.875rem;margin-top:.25rem}.ngb-stepper-optional{font-size:.75rem;opacity:.7}.ngb-stepper .fade-step{animation:ngb-stepper-fade var(--ngb-stepper-animation-duration, .15s) ease-in-out;animation-fill-mode:both}@keyframes ngb-stepper-fade{0%{opacity:0;transform:translateY(.35rem)}to{opacity:1;transform:translateY(0)}}\n"] }]
13663
+ args: [{ selector: 'ngb-stepper', standalone: true, imports: [CommonModule, NgbStepLabelDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"ngb-stepper\"\n [attr.data-ngb-theme]=\"theme === 'bootstrap' ? null : theme\"\n [class.horizontal]=\"orientation === 'horizontal'\"\n [class.vertical]=\"orientation === 'vertical'\"\n [class.ngb-responsive]=\"responsive\"\n [class.bootstrap]=\"theme === 'bootstrap'\"\n [class.material]=\"theme === 'material'\"\n [class.tailwind]=\"theme === 'tailwind'\"\n role=\"tablist\"\n [attr.aria-orientation]=\"orientation\"\n>\n <!-- HEADER / LABELS -->\n <div class=\"ngb-stepper-header\">\n <ol class=\"ngb-stepper-steps\" role=\"presentation\">\n @for (step of steps; track step; let i = $index) {\n <li\n class=\"ngb-stepper-step\"\n [class.active]=\"i === selectedIndex\"\n [class.done]=\"i < selectedIndex && !isStepInError(i)\"\n [class.error]=\"isStepInError(i)\"\n [class.disabled]=\"step.disabled\"\n role=\"tab\"\n [attr.id]=\"stepId(i)\"\n [attr.aria-controls]=\"contentId(i)\"\n [attr.aria-selected]=\"i === selectedIndex\"\n [attr.aria-disabled]=\"step.disabled || (!allowRevisit && i < visitedFrom && i !== selectedIndex)\"\n tabindex=\"{{ i === selectedIndex ? 0 : -1 }}\"\n (click)=\"onHeaderClick(i)\"\n (keydown.enter)=\"onHeaderKeydown($event, i)\"\n (keydown.space)=\"onHeaderKeydown($event, i)\"\n >\n <div\n class=\"ngb-stepper-indicator\"\n [ngClass]=\"indicatorClass(i)\"\n aria-hidden=\"true\"\n >\n @if (customIconTpl) {\n <ng-container\n [ngTemplateOutlet]=\"customIconTpl\"\n [ngTemplateOutletContext]=\"{ index: i, state: stepState(i) }\"\n ></ng-container>\n } @else {\n {{ defaultIconForState(stepState(i), i) }}\n }\n </div>\n\n <div\n class=\"ngb-stepper-label-container\"\n [ngClass]=\"labelPositionClass\"\n >\n @if (stepLabelTpl) {\n <div class=\"ngb-stepper-label\">\n <ng-container\n [ngTemplateOutlet]=\"stepLabelTpl\"\n [ngTemplateOutletContext]=\"{ index: i, step: step }\"\n ></ng-container>\n </div>\n } @else {\n <div class=\"ngb-stepper-label-text\">\n {{ step.label || ('Step ' + (i + 1)) }}\n </div>\n }\n @if (step.optional) {\n <div class=\"ngb-stepper-optional\">\n {{ optionalLabel }}\n </div>\n }\n </div>\n </li>\n }\n </ol>\n </div>\n\n <!-- CONTENT -->\n <div class=\"ngb-stepper-content\" [class.ngb-stepper-content-top]=\"contentPosition === 'top'\">\n @if (lazy) {\n <div\n class=\"fade-step\"\n [style.--ngb-stepper-animation-duration]=\"(disableAnimation ? 0 : animationDuration) + 'ms'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"stepId(selectedIndex)\"\n [attr.id]=\"contentId(selectedIndex)\"\n >\n <ng-container *ngTemplateOutlet=\"stepContentTpl; context: { index: selectedIndex }\"></ng-container>\n @if (currentErrorMessage) {\n <div class=\"ngb-stepper-error\" role=\"alert\">\n {{ currentErrorMessage }}\n </div>\n }\n </div>\n } @else {\n <div\n class=\"fade-step\"\n [style.--ngb-stepper-animation-duration]=\"(disableAnimation ? 0 : animationDuration) + 'ms'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"stepId(selectedIndex)\"\n [attr.id]=\"contentId(selectedIndex)\"\n >\n <ng-container *ngTemplateOutlet=\"stepContentTpl; context: { index: selectedIndex }\"></ng-container>\n @if (currentErrorMessage) {\n <div class=\"ngb-stepper-error\" role=\"alert\">\n {{ currentErrorMessage }}\n </div>\n }\n </div>\n }\n </div>\n\n <!-- ACTIONS -->\n <div class=\"ngb-stepper-buttons\">\n <button\n type=\"button\"\n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"onCancel()\"\n >\n {{ cancelLabel }}\n </button>\n\n <button\n type=\"button\"\n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"onReset()\"\n >\n {{ resetLabel }}\n </button>\n\n <button\n type=\"button\"\n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"prev()\"\n [disabled]=\"selectedIndex <= 0 || !allowRevisit\"\n >\n {{ previousLabel }}\n </button>\n\n <button\n type=\"button\"\n class=\"btn btn-sm btn-primary\"\n (click)=\"next()\"\n [disabled]=\"selectedIndex >= steps.length - 1 || steps[selectedIndex]?.disabled\"\n >\n {{ nextLabel }}\n </button>\n </div>\n</div>\n", styles: [":host{font-family:var(--ngb-font-family, inherit);color:var(--ngb-on-surface, inherit)}.btn{--bs-btn-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-btn-disabled-opacity: var(--ngb-disabled-opacity, .65)}.btn-primary{--bs-btn-bg: var(--ngb-primary, #0d6efd);--bs-btn-border-color: var(--ngb-primary, #0d6efd);--bs-btn-color: var(--ngb-on-primary, #fff);--bs-btn-hover-bg: var(--ngb-primary-hover, #0b5ed7);--bs-btn-hover-border-color: var(--ngb-primary-hover, #0a58ca);--bs-btn-hover-color: var(--ngb-on-primary, #fff);--bs-btn-active-bg: var(--ngb-primary-hover, #0a58ca);--bs-btn-active-border-color: var(--ngb-primary-hover, #0a53be);--bs-btn-active-color: var(--ngb-on-primary, #fff);--bs-btn-disabled-bg: var(--ngb-primary, #0d6efd);--bs-btn-disabled-border-color: var(--ngb-primary, #0d6efd);--bs-btn-disabled-color: var(--ngb-on-primary, #fff)}.btn-outline-secondary{--bs-btn-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-border-color: var(--ngb-border-color, #6c757d);--bs-btn-hover-bg: var(--ngb-hover-bg, #6c757d);--bs-btn-hover-color: var(--ngb-on-surface, #fff);--bs-btn-hover-border-color: var(--ngb-border-color, #6c757d);--bs-btn-active-bg: var(--ngb-selected-bg, #6c757d);--bs-btn-active-color: var(--ngb-on-surface, #fff);--bs-btn-active-border-color: var(--ngb-border-color, #6c757d);--bs-btn-disabled-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-disabled-border-color: var(--ngb-border-color, #6c757d)}.form-control,.form-select{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, var(--bs-border-radius, .375rem))}.form-control::placeholder{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.form-control:disabled,.form-select:disabled{background-color:var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));opacity:var(--ngb-disabled-opacity, 1)}.form-check-input{background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.form-check-input:checked,.form-check-input:indeterminate{background-color:var(--ngb-primary, #0d6efd);border-color:var(--ngb-primary, #0d6efd)}.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--ngb-primary, #86b7fe);box-shadow:0 0 0 .25rem var(--ngb-focus-ring, rgba(13, 110, 253, .25))}.btn:focus-visible,.page-link:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.dropdown-menu{--bs-dropdown-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-bg: var(--ngb-surface, var(--bs-body-bg, #fff));--bs-dropdown-border-color: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0,0,0,.175)));--bs-dropdown-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-dropdown-link-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--bs-dropdown-link-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-active-bg: var(--ngb-primary, #0d6efd);--bs-dropdown-link-active-color: var(--ngb-on-primary, #fff);--bs-dropdown-link-disabled-color: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #adb5bd));box-shadow:var(--ngb-elevation-2, none)}.form-select{background-image:var(--ngb-select-icon, var(--bs-form-select-bg-img))}.form-check-input:disabled{opacity:var(--ngb-disabled-opacity, .5)}.btn-sm{--bs-btn-border-radius: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}.form-control-sm,.form-select-sm{border-radius:var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}.ngb-stepper{display:flex;flex-direction:column}.ngb-stepper.horizontal .ngb-stepper-header{display:flex;overflow-x:auto}.ngb-stepper.vertical .ngb-stepper-header{display:block}.ngb-stepper-header{margin-bottom:1rem}.ngb-stepper-steps{list-style:none;padding:0;margin:0;display:flex;flex-wrap:nowrap}.ngb-stepper.vertical .ngb-stepper-steps{flex-direction:column}.ngb-stepper-step{position:relative;display:flex;align-items:center;cursor:pointer}.ngb-stepper.horizontal .ngb-stepper-step{padding:.5rem .75rem}.ngb-stepper.vertical .ngb-stepper-step{padding:.5rem 0}.ngb-stepper-step.disabled{cursor:default;opacity:var(--ngb-disabled-opacity, .6)}.ngb-stepper-indicator{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;margin-right:.5rem;flex-shrink:0}.ngb-stepper .ngb-stepper-indicator{border:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6));background-color:var(--ngb-surface, var(--bs-body-bg, #fff))}.ngb-stepper .ngb-stepper-step.active .ngb-stepper-indicator{background-color:var(--ngb-primary, var(--bs-primary, #0d6efd));color:var(--ngb-on-primary, #fff)}.ngb-stepper .ngb-stepper-step.done .ngb-stepper-indicator{background-color:var(--ngb-success, var(--bs-success, #198754));color:var(--ngb-on-success, #fff)}.ngb-stepper .ngb-stepper-step.error .ngb-stepper-indicator{background-color:var(--ngb-danger, var(--bs-danger, #dc3545));color:var(--ngb-on-danger, #fff)}.ngb-stepper-label-container{display:flex;flex-direction:column}.ngb-stepper-label-top{flex-direction:column-reverse}.ngb-stepper-label-bottom{flex-direction:column}.ngb-stepper-label-left{flex-direction:row-reverse}.ngb-stepper-label-right{flex-direction:row}.ngb-stepper-content{position:relative}.ngb-stepper-content-top{order:-1}.ngb-stepper-buttons{display:flex;justify-content:flex-end;gap:var(--ngb-space-2, .5rem);margin-top:var(--ngb-space-4, 1rem)}.ngb-stepper-error{color:var(--ngb-danger, var(--bs-danger, #dc3545));font-size:.875rem;margin-top:.25rem}.ngb-stepper-optional{font-size:.75rem;opacity:.7}.ngb-stepper .fade-step{animation:ngb-stepper-fade var(--ngb-stepper-animation-duration, .15s) ease-in-out;animation-fill-mode:both}@keyframes ngb-stepper-fade{0%{opacity:0;transform:translateY(.35rem)}to{opacity:1;transform:translateY(0)}}.ngb-stepper-step:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}\n"] }]
13649
13664
  }], propDecorators: { steps: [{
13650
13665
  type: Input
13651
13666
  }], orientation: [{
@@ -13750,11 +13765,11 @@ class NgbSplitterComponent {
13750
13765
  panes;
13751
13766
  orientation = 'horizontal';
13752
13767
  handleThickness = 12;
13753
- handleIconColor = '#000';
13768
+ handleIconColor = 'var(--ngb-on-surface, #000)';
13754
13769
  verticalMinHeight = '280px';
13755
13770
  resizable = true; // New Resize Input
13756
- barColor = '#ccc'; // Custom Bar Color
13757
- lineColor = '#000'; // Custom Line Color
13771
+ barColor = 'var(--ngb-border-color, #ccc)'; // Custom Bar Color
13772
+ lineColor = 'var(--ngb-on-surface, #000)'; // Custom Line Color
13758
13773
  isDragging = false;
13759
13774
  currentHandleIndex = -1;
13760
13775
  constructor(el) {
@@ -13997,7 +14012,7 @@ class NgbSplitterComponent {
13997
14012
  }
13998
14013
  }
13999
14014
  </div>
14000
- `, isInline: true, styles: [":host{display:block;width:100%}.splitter-container{display:flex;height:100%;width:100%}.splitter-container.vertical{flex-direction:column}.splitbar{background:#ccc;width:5px;position:relative;align-items:center;justify-content:center;flex:0 0 auto;z-index:10}.splitbar.resizable{cursor:col-resize}.splitbar:hover{filter:brightness(90%)}.handle-line{border-radius:2px;opacity:.8;left:45%;position:absolute;top:45%;display:flex;align-items:center;justify-content:center}.splitter-container:not(.vertical) .handle-line{width:2px;height:10px}.pane-wrapper{position:relative;min-width:0;min-height:0;overflow:hidden;flex-shrink:1}.vertical .handle-line{height:2px;width:10px}.vertical .splitbar.resizable{cursor:row-resize}.splitter-container.vertical .splitter-container .splitbar.resizable{cursor:col-resize}.vertical .splitbar{width:100%}.collapse-btn{cursor:pointer;background:#666;width:10px;height:10px;position:absolute;top:50%}.collapse-arrow{font-size:.95rem;-webkit-user-select:none;user-select:none;cursor:pointer;line-height:1;display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;position:absolute;top:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14015
+ `, isInline: true, styles: [":host{font-family:var(--ngb-font-family, inherit);color:var(--ngb-on-surface, inherit);display:block;width:100%}.splitter-container{display:flex;height:100%;width:100%}.splitbar:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:-2px}.splitter-container.vertical{flex-direction:column}.splitbar{background:var(--ngb-border-color, #ccc);width:5px;position:relative;align-items:center;justify-content:center;flex:0 0 auto;z-index:10}.splitbar.resizable{cursor:col-resize}.splitbar:hover{filter:brightness(90%)}.handle-line{border-radius:2px;opacity:.8;left:45%;position:absolute;top:45%;display:flex;align-items:center;justify-content:center}.splitter-container:not(.vertical) .handle-line{width:2px;height:10px}.pane-wrapper{position:relative;min-width:0;min-height:0;overflow:hidden;flex-shrink:1}.vertical .handle-line{height:2px;width:10px}.vertical .splitbar.resizable{cursor:row-resize}.splitter-container.vertical .splitter-container .splitbar.resizable{cursor:col-resize}.vertical .splitbar{width:100%}.collapse-btn{cursor:pointer;background:var(--ngb-on-surface-variant, #666);width:10px;height:10px;position:absolute;top:50%}.collapse-arrow{font-size:.95rem;-webkit-user-select:none;user-select:none;cursor:pointer;line-height:1;display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;position:absolute;top:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14001
14016
  }
14002
14017
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbSplitterComponent, decorators: [{
14003
14018
  type: Component,
@@ -14046,7 +14061,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
14046
14061
  }
14047
14062
  }
14048
14063
  </div>
14049
- `, styles: [":host{display:block;width:100%}.splitter-container{display:flex;height:100%;width:100%}.splitter-container.vertical{flex-direction:column}.splitbar{background:#ccc;width:5px;position:relative;align-items:center;justify-content:center;flex:0 0 auto;z-index:10}.splitbar.resizable{cursor:col-resize}.splitbar:hover{filter:brightness(90%)}.handle-line{border-radius:2px;opacity:.8;left:45%;position:absolute;top:45%;display:flex;align-items:center;justify-content:center}.splitter-container:not(.vertical) .handle-line{width:2px;height:10px}.pane-wrapper{position:relative;min-width:0;min-height:0;overflow:hidden;flex-shrink:1}.vertical .handle-line{height:2px;width:10px}.vertical .splitbar.resizable{cursor:row-resize}.splitter-container.vertical .splitter-container .splitbar.resizable{cursor:col-resize}.vertical .splitbar{width:100%}.collapse-btn{cursor:pointer;background:#666;width:10px;height:10px;position:absolute;top:50%}.collapse-arrow{font-size:.95rem;-webkit-user-select:none;user-select:none;cursor:pointer;line-height:1;display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;position:absolute;top:100%}\n"] }]
14064
+ `, styles: [":host{font-family:var(--ngb-font-family, inherit);color:var(--ngb-on-surface, inherit);display:block;width:100%}.splitter-container{display:flex;height:100%;width:100%}.splitbar:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:-2px}.splitter-container.vertical{flex-direction:column}.splitbar{background:var(--ngb-border-color, #ccc);width:5px;position:relative;align-items:center;justify-content:center;flex:0 0 auto;z-index:10}.splitbar.resizable{cursor:col-resize}.splitbar:hover{filter:brightness(90%)}.handle-line{border-radius:2px;opacity:.8;left:45%;position:absolute;top:45%;display:flex;align-items:center;justify-content:center}.splitter-container:not(.vertical) .handle-line{width:2px;height:10px}.pane-wrapper{position:relative;min-width:0;min-height:0;overflow:hidden;flex-shrink:1}.vertical .handle-line{height:2px;width:10px}.vertical .splitbar.resizable{cursor:row-resize}.splitter-container.vertical .splitter-container .splitbar.resizable{cursor:col-resize}.vertical .splitbar{width:100%}.collapse-btn{cursor:pointer;background:var(--ngb-on-surface-variant, #666);width:10px;height:10px;position:absolute;top:50%}.collapse-arrow{font-size:.95rem;-webkit-user-select:none;user-select:none;cursor:pointer;line-height:1;display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;position:absolute;top:100%}\n"] }]
14050
14065
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { panes: [{
14051
14066
  type: ContentChildren,
14052
14067
  args: [NgbSplitterPaneComponent]
@@ -14083,7 +14098,7 @@ class NgbChipsComponent {
14083
14098
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: NgbChipsComponent, isStandalone: true, selector: "ngb-chips", inputs: { items: "items", removable: "removable", ariaLabel: "ariaLabel", removeLabel: "removeLabel" }, outputs: { remove: "remove" }, ngImport: i0, template: `
14084
14099
  <div class="ngb-chips" [attr.aria-label]="ariaLabel">
14085
14100
  @for (item of items; track trackById($index, item)) {
14086
- <span class="badge rounded-pill bg-secondary ngb-chip" [class.opacity-50]="!!item.disabled">
14101
+ <span class="badge rounded-pill ngb-chip" [class.ngb-chip-disabled]="!!item.disabled">
14087
14102
  <span class="ngb-chip-label">{{ item.label }}</span>
14088
14103
  @if (removable) {
14089
14104
  <button
@@ -14099,14 +14114,14 @@ class NgbChipsComponent {
14099
14114
  </span>
14100
14115
  }
14101
14116
  </div>
14102
- `, isInline: true, styles: [":host{display:block}.ngb-chips{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.ngb-chip{display:inline-flex;align-items:center;gap:.25rem;max-width:100%}.ngb-chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ngb-chip-remove{border:0;background:transparent;padding:0;line-height:1;cursor:pointer;font-size:1rem;opacity:.85}.ngb-chip-remove:disabled{cursor:default;opacity:.4}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14117
+ `, isInline: true, styles: [":host{font-family:var(--ngb-font-family, inherit);color:var(--ngb-on-surface, inherit);display:block}.ngb-chips{display:flex;flex-wrap:wrap;gap:var(--ngb-space-1, .35rem);align-items:center}.ngb-chip{background-color:var(--ngb-selected-bg, var(--bs-secondary, #6c757d));color:var(--ngb-on-surface, #fff);display:inline-flex;align-items:center;gap:.25rem;max-width:100%}.ngb-chip-disabled{opacity:var(--ngb-disabled-opacity, .5)}.ngb-chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ngb-chip-remove{border:0;background:transparent;color:inherit;padding:0;line-height:1;cursor:pointer;font-size:1rem;opacity:.85}.ngb-chip-remove:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.ngb-chip-remove:disabled{cursor:default;opacity:var(--ngb-disabled-opacity, .4)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14103
14118
  }
14104
14119
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbChipsComponent, decorators: [{
14105
14120
  type: Component,
14106
14121
  args: [{ selector: 'ngb-chips', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
14107
14122
  <div class="ngb-chips" [attr.aria-label]="ariaLabel">
14108
14123
  @for (item of items; track trackById($index, item)) {
14109
- <span class="badge rounded-pill bg-secondary ngb-chip" [class.opacity-50]="!!item.disabled">
14124
+ <span class="badge rounded-pill ngb-chip" [class.ngb-chip-disabled]="!!item.disabled">
14110
14125
  <span class="ngb-chip-label">{{ item.label }}</span>
14111
14126
  @if (removable) {
14112
14127
  <button
@@ -14122,7 +14137,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
14122
14137
  </span>
14123
14138
  }
14124
14139
  </div>
14125
- `, styles: [":host{display:block}.ngb-chips{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.ngb-chip{display:inline-flex;align-items:center;gap:.25rem;max-width:100%}.ngb-chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ngb-chip-remove{border:0;background:transparent;padding:0;line-height:1;cursor:pointer;font-size:1rem;opacity:.85}.ngb-chip-remove:disabled{cursor:default;opacity:.4}\n"] }]
14140
+ `, styles: [":host{font-family:var(--ngb-font-family, inherit);color:var(--ngb-on-surface, inherit);display:block}.ngb-chips{display:flex;flex-wrap:wrap;gap:var(--ngb-space-1, .35rem);align-items:center}.ngb-chip{background-color:var(--ngb-selected-bg, var(--bs-secondary, #6c757d));color:var(--ngb-on-surface, #fff);display:inline-flex;align-items:center;gap:.25rem;max-width:100%}.ngb-chip-disabled{opacity:var(--ngb-disabled-opacity, .5)}.ngb-chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ngb-chip-remove{border:0;background:transparent;color:inherit;padding:0;line-height:1;cursor:pointer;font-size:1rem;opacity:.85}.ngb-chip-remove:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.ngb-chip-remove:disabled{cursor:default;opacity:var(--ngb-disabled-opacity, .4)}\n"] }]
14126
14141
  }], propDecorators: { items: [{
14127
14142
  type: Input
14128
14143
  }], removable: [{
@@ -14991,7 +15006,7 @@ class NgbTypeaheadComponent {
14991
15006
  </div>
14992
15007
  }
14993
15008
  </div>
14994
- `, isInline: true, styles: [":host{display:block}.typeahead-root{position:relative}.typeahead-chips-control{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;min-height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem}.typeahead-chips-control input{border:0;outline:0;flex:1 1 9rem;min-width:6rem;padding:0;margin:0;background:transparent}.typeahead-chips-control input:focus{outline:0;box-shadow:none}.typeahead-panel{position:absolute;top:calc(100% + .25rem);left:0;right:0;z-index:1050;max-height:240px;overflow:auto;opacity:0;transform:translateY(-.25rem);pointer-events:none;transition:opacity .12s ease,transform .12s ease}.typeahead-panel.show{opacity:1;transform:translateY(0);pointer-events:auto}.typeahead-item{display:flex;align-items:center;gap:.5rem}.typeahead-item-checkbox{display:inline-flex;align-items:center;justify-content:center;width:1.15rem;height:1.15rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: NgbChipsComponent, selector: "ngb-chips", inputs: ["items", "removable", "ariaLabel", "removeLabel"], outputs: ["remove"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15009
+ `, isInline: true, styles: [":host{font-family:var(--ngb-font-family, inherit);color:var(--ngb-on-surface, inherit)}.btn{--bs-btn-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-btn-disabled-opacity: var(--ngb-disabled-opacity, .65)}.btn-primary{--bs-btn-bg: var(--ngb-primary, #0d6efd);--bs-btn-border-color: var(--ngb-primary, #0d6efd);--bs-btn-color: var(--ngb-on-primary, #fff);--bs-btn-hover-bg: var(--ngb-primary-hover, #0b5ed7);--bs-btn-hover-border-color: var(--ngb-primary-hover, #0a58ca);--bs-btn-hover-color: var(--ngb-on-primary, #fff);--bs-btn-active-bg: var(--ngb-primary-hover, #0a58ca);--bs-btn-active-border-color: var(--ngb-primary-hover, #0a53be);--bs-btn-active-color: var(--ngb-on-primary, #fff);--bs-btn-disabled-bg: var(--ngb-primary, #0d6efd);--bs-btn-disabled-border-color: var(--ngb-primary, #0d6efd);--bs-btn-disabled-color: var(--ngb-on-primary, #fff)}.btn-outline-secondary{--bs-btn-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-border-color: var(--ngb-border-color, #6c757d);--bs-btn-hover-bg: var(--ngb-hover-bg, #6c757d);--bs-btn-hover-color: var(--ngb-on-surface, #fff);--bs-btn-hover-border-color: var(--ngb-border-color, #6c757d);--bs-btn-active-bg: var(--ngb-selected-bg, #6c757d);--bs-btn-active-color: var(--ngb-on-surface, #fff);--bs-btn-active-border-color: var(--ngb-border-color, #6c757d);--bs-btn-disabled-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-disabled-border-color: var(--ngb-border-color, #6c757d)}.form-control,.form-select{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, var(--bs-border-radius, .375rem))}.form-control::placeholder{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.form-control:disabled,.form-select:disabled{background-color:var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));opacity:var(--ngb-disabled-opacity, 1)}.form-check-input{background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.form-check-input:checked,.form-check-input:indeterminate{background-color:var(--ngb-primary, #0d6efd);border-color:var(--ngb-primary, #0d6efd)}.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--ngb-primary, #86b7fe);box-shadow:0 0 0 .25rem var(--ngb-focus-ring, rgba(13, 110, 253, .25))}.btn:focus-visible,.page-link:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.dropdown-menu{--bs-dropdown-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-bg: var(--ngb-surface, var(--bs-body-bg, #fff));--bs-dropdown-border-color: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0,0,0,.175)));--bs-dropdown-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-dropdown-link-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--bs-dropdown-link-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-active-bg: var(--ngb-primary, #0d6efd);--bs-dropdown-link-active-color: var(--ngb-on-primary, #fff);--bs-dropdown-link-disabled-color: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #adb5bd));box-shadow:var(--ngb-elevation-2, none)}.form-select{background-image:var(--ngb-select-icon, var(--bs-form-select-bg-img))}.form-check-input:disabled{opacity:var(--ngb-disabled-opacity, .5)}.btn-sm{--bs-btn-border-radius: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}.form-control-sm,.form-select-sm{border-radius:var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}\n", ":host{display:block}.typeahead-root{position:relative}.typeahead-chips-control{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;min-height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem}.typeahead-chips-control input{border:0;outline:0;flex:1 1 9rem;min-width:6rem;padding:0;margin:0;background:transparent;color:inherit}.typeahead-chips-control input:focus{outline:0;box-shadow:none}.typeahead-panel{position:absolute;top:calc(100% + .25rem);left:0;right:0;z-index:1050;max-height:240px;overflow:auto;opacity:0;transform:translateY(-.25rem);pointer-events:none;transition:opacity .12s ease,transform .12s ease}.typeahead-panel.show{opacity:1;transform:translateY(0);pointer-events:auto}.typeahead-item{display:flex;align-items:center;gap:.5rem}.typeahead-item-checkbox{display:inline-flex;align-items:center;justify-content:center;width:1.15rem;height:1.15rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: NgbChipsComponent, selector: "ngb-chips", inputs: ["items", "removable", "ariaLabel", "removeLabel"], outputs: ["remove"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14995
15010
  }
14996
15011
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbTypeaheadComponent, decorators: [{
14997
15012
  type: Component,
@@ -15150,7 +15165,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
15150
15165
  </div>
15151
15166
  }
15152
15167
  </div>
15153
- `, styles: [":host{display:block}.typeahead-root{position:relative}.typeahead-chips-control{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;min-height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem}.typeahead-chips-control input{border:0;outline:0;flex:1 1 9rem;min-width:6rem;padding:0;margin:0;background:transparent}.typeahead-chips-control input:focus{outline:0;box-shadow:none}.typeahead-panel{position:absolute;top:calc(100% + .25rem);left:0;right:0;z-index:1050;max-height:240px;overflow:auto;opacity:0;transform:translateY(-.25rem);pointer-events:none;transition:opacity .12s ease,transform .12s ease}.typeahead-panel.show{opacity:1;transform:translateY(0);pointer-events:auto}.typeahead-item{display:flex;align-items:center;gap:.5rem}.typeahead-item-checkbox{display:inline-flex;align-items:center;justify-content:center;width:1.15rem;height:1.15rem}\n"] }]
15168
+ `, styles: [":host{font-family:var(--ngb-font-family, inherit);color:var(--ngb-on-surface, inherit)}.btn{--bs-btn-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-btn-disabled-opacity: var(--ngb-disabled-opacity, .65)}.btn-primary{--bs-btn-bg: var(--ngb-primary, #0d6efd);--bs-btn-border-color: var(--ngb-primary, #0d6efd);--bs-btn-color: var(--ngb-on-primary, #fff);--bs-btn-hover-bg: var(--ngb-primary-hover, #0b5ed7);--bs-btn-hover-border-color: var(--ngb-primary-hover, #0a58ca);--bs-btn-hover-color: var(--ngb-on-primary, #fff);--bs-btn-active-bg: var(--ngb-primary-hover, #0a58ca);--bs-btn-active-border-color: var(--ngb-primary-hover, #0a53be);--bs-btn-active-color: var(--ngb-on-primary, #fff);--bs-btn-disabled-bg: var(--ngb-primary, #0d6efd);--bs-btn-disabled-border-color: var(--ngb-primary, #0d6efd);--bs-btn-disabled-color: var(--ngb-on-primary, #fff)}.btn-outline-secondary{--bs-btn-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-border-color: var(--ngb-border-color, #6c757d);--bs-btn-hover-bg: var(--ngb-hover-bg, #6c757d);--bs-btn-hover-color: var(--ngb-on-surface, #fff);--bs-btn-hover-border-color: var(--ngb-border-color, #6c757d);--bs-btn-active-bg: var(--ngb-selected-bg, #6c757d);--bs-btn-active-color: var(--ngb-on-surface, #fff);--bs-btn-active-border-color: var(--ngb-border-color, #6c757d);--bs-btn-disabled-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-disabled-border-color: var(--ngb-border-color, #6c757d)}.form-control,.form-select{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, var(--bs-border-radius, .375rem))}.form-control::placeholder{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.form-control:disabled,.form-select:disabled{background-color:var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));opacity:var(--ngb-disabled-opacity, 1)}.form-check-input{background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.form-check-input:checked,.form-check-input:indeterminate{background-color:var(--ngb-primary, #0d6efd);border-color:var(--ngb-primary, #0d6efd)}.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--ngb-primary, #86b7fe);box-shadow:0 0 0 .25rem var(--ngb-focus-ring, rgba(13, 110, 253, .25))}.btn:focus-visible,.page-link:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.dropdown-menu{--bs-dropdown-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-bg: var(--ngb-surface, var(--bs-body-bg, #fff));--bs-dropdown-border-color: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0,0,0,.175)));--bs-dropdown-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-dropdown-link-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--bs-dropdown-link-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-active-bg: var(--ngb-primary, #0d6efd);--bs-dropdown-link-active-color: var(--ngb-on-primary, #fff);--bs-dropdown-link-disabled-color: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #adb5bd));box-shadow:var(--ngb-elevation-2, none)}.form-select{background-image:var(--ngb-select-icon, var(--bs-form-select-bg-img))}.form-check-input:disabled{opacity:var(--ngb-disabled-opacity, .5)}.btn-sm{--bs-btn-border-radius: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}.form-control-sm,.form-select-sm{border-radius:var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}\n", ":host{display:block}.typeahead-root{position:relative}.typeahead-chips-control{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;min-height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem}.typeahead-chips-control input{border:0;outline:0;flex:1 1 9rem;min-width:6rem;padding:0;margin:0;background:transparent;color:inherit}.typeahead-chips-control input:focus{outline:0;box-shadow:none}.typeahead-panel{position:absolute;top:calc(100% + .25rem);left:0;right:0;z-index:1050;max-height:240px;overflow:auto;opacity:0;transform:translateY(-.25rem);pointer-events:none;transition:opacity .12s ease,transform .12s ease}.typeahead-panel.show{opacity:1;transform:translateY(0);pointer-events:auto}.typeahead-item{display:flex;align-items:center;gap:.5rem}.typeahead-item-checkbox{display:inline-flex;align-items:center;justify-content:center;width:1.15rem;height:1.15rem}\n"] }]
15154
15169
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { data: [{
15155
15170
  type: Input
15156
15171
  }], debounceTime: [{
@@ -15396,16 +15411,11 @@ class NgbTreeComponent {
15396
15411
  </ul>
15397
15412
  }
15398
15413
  </ng-template>
15399
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15414
+ `, isInline: true, styles: [":host{font-family:var(--ngb-font-family, inherit);color:var(--ngb-on-surface, inherit)}.btn{--bs-btn-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-btn-disabled-opacity: var(--ngb-disabled-opacity, .65)}.btn-primary{--bs-btn-bg: var(--ngb-primary, #0d6efd);--bs-btn-border-color: var(--ngb-primary, #0d6efd);--bs-btn-color: var(--ngb-on-primary, #fff);--bs-btn-hover-bg: var(--ngb-primary-hover, #0b5ed7);--bs-btn-hover-border-color: var(--ngb-primary-hover, #0a58ca);--bs-btn-hover-color: var(--ngb-on-primary, #fff);--bs-btn-active-bg: var(--ngb-primary-hover, #0a58ca);--bs-btn-active-border-color: var(--ngb-primary-hover, #0a53be);--bs-btn-active-color: var(--ngb-on-primary, #fff);--bs-btn-disabled-bg: var(--ngb-primary, #0d6efd);--bs-btn-disabled-border-color: var(--ngb-primary, #0d6efd);--bs-btn-disabled-color: var(--ngb-on-primary, #fff)}.btn-outline-secondary{--bs-btn-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-border-color: var(--ngb-border-color, #6c757d);--bs-btn-hover-bg: var(--ngb-hover-bg, #6c757d);--bs-btn-hover-color: var(--ngb-on-surface, #fff);--bs-btn-hover-border-color: var(--ngb-border-color, #6c757d);--bs-btn-active-bg: var(--ngb-selected-bg, #6c757d);--bs-btn-active-color: var(--ngb-on-surface, #fff);--bs-btn-active-border-color: var(--ngb-border-color, #6c757d);--bs-btn-disabled-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-disabled-border-color: var(--ngb-border-color, #6c757d)}.form-control,.form-select{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, var(--bs-border-radius, .375rem))}.form-control::placeholder{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.form-control:disabled,.form-select:disabled{background-color:var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));opacity:var(--ngb-disabled-opacity, 1)}.form-check-input{background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.form-check-input:checked,.form-check-input:indeterminate{background-color:var(--ngb-primary, #0d6efd);border-color:var(--ngb-primary, #0d6efd)}.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--ngb-primary, #86b7fe);box-shadow:0 0 0 .25rem var(--ngb-focus-ring, rgba(13, 110, 253, .25))}.btn:focus-visible,.page-link:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.dropdown-menu{--bs-dropdown-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-bg: var(--ngb-surface, var(--bs-body-bg, #fff));--bs-dropdown-border-color: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0,0,0,.175)));--bs-dropdown-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-dropdown-link-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--bs-dropdown-link-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-active-bg: var(--ngb-primary, #0d6efd);--bs-dropdown-link-active-color: var(--ngb-on-primary, #fff);--bs-dropdown-link-disabled-color: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #adb5bd));box-shadow:var(--ngb-elevation-2, none)}.form-select{background-image:var(--ngb-select-icon, var(--bs-form-select-bg-img))}.form-check-input:disabled{opacity:var(--ngb-disabled-opacity, .5)}.btn-sm{--bs-btn-border-radius: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}.form-control-sm,.form-select-sm{border-radius:var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15400
15415
  }
15401
15416
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbTreeComponent, decorators: [{
15402
15417
  type: Component,
15403
- args: [{
15404
- selector: 'ngb-tree',
15405
- standalone: true,
15406
- imports: [CommonModule],
15407
- changeDetection: ChangeDetectionStrategy.OnPush,
15408
- template: `
15418
+ args: [{ selector: 'ngb-tree', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
15409
15419
  <div class="d-flex gap-2 mb-2">
15410
15420
  <button type="button" class="btn btn-sm btn-outline-secondary" (click)="expandAllNodes()" [attr.aria-label]="i18n?.expandAll || 'Expand all'">
15411
15421
  {{ i18n?.expandAll || 'Expand all' }}
@@ -15473,8 +15483,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
15473
15483
  </ul>
15474
15484
  }
15475
15485
  </ng-template>
15476
- `,
15477
- }]
15486
+ `, styles: [":host{font-family:var(--ngb-font-family, inherit);color:var(--ngb-on-surface, inherit)}.btn{--bs-btn-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-btn-disabled-opacity: var(--ngb-disabled-opacity, .65)}.btn-primary{--bs-btn-bg: var(--ngb-primary, #0d6efd);--bs-btn-border-color: var(--ngb-primary, #0d6efd);--bs-btn-color: var(--ngb-on-primary, #fff);--bs-btn-hover-bg: var(--ngb-primary-hover, #0b5ed7);--bs-btn-hover-border-color: var(--ngb-primary-hover, #0a58ca);--bs-btn-hover-color: var(--ngb-on-primary, #fff);--bs-btn-active-bg: var(--ngb-primary-hover, #0a58ca);--bs-btn-active-border-color: var(--ngb-primary-hover, #0a53be);--bs-btn-active-color: var(--ngb-on-primary, #fff);--bs-btn-disabled-bg: var(--ngb-primary, #0d6efd);--bs-btn-disabled-border-color: var(--ngb-primary, #0d6efd);--bs-btn-disabled-color: var(--ngb-on-primary, #fff)}.btn-outline-secondary{--bs-btn-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-border-color: var(--ngb-border-color, #6c757d);--bs-btn-hover-bg: var(--ngb-hover-bg, #6c757d);--bs-btn-hover-color: var(--ngb-on-surface, #fff);--bs-btn-hover-border-color: var(--ngb-border-color, #6c757d);--bs-btn-active-bg: var(--ngb-selected-bg, #6c757d);--bs-btn-active-color: var(--ngb-on-surface, #fff);--bs-btn-active-border-color: var(--ngb-border-color, #6c757d);--bs-btn-disabled-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-disabled-border-color: var(--ngb-border-color, #6c757d)}.form-control,.form-select{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, var(--bs-border-radius, .375rem))}.form-control::placeholder{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.form-control:disabled,.form-select:disabled{background-color:var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));opacity:var(--ngb-disabled-opacity, 1)}.form-check-input{background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.form-check-input:checked,.form-check-input:indeterminate{background-color:var(--ngb-primary, #0d6efd);border-color:var(--ngb-primary, #0d6efd)}.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--ngb-primary, #86b7fe);box-shadow:0 0 0 .25rem var(--ngb-focus-ring, rgba(13, 110, 253, .25))}.btn:focus-visible,.page-link:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.dropdown-menu{--bs-dropdown-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-bg: var(--ngb-surface, var(--bs-body-bg, #fff));--bs-dropdown-border-color: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0,0,0,.175)));--bs-dropdown-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-dropdown-link-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--bs-dropdown-link-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-active-bg: var(--ngb-primary, #0d6efd);--bs-dropdown-link-active-color: var(--ngb-on-primary, #fff);--bs-dropdown-link-disabled-color: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #adb5bd));box-shadow:var(--ngb-elevation-2, none)}.form-select{background-image:var(--ngb-select-icon, var(--bs-form-select-bg-img))}.form-check-input:disabled{opacity:var(--ngb-disabled-opacity, .5)}.btn-sm{--bs-btn-border-radius: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}.form-control-sm,.form-select-sm{border-radius:var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}\n"] }]
15478
15487
  }], propDecorators: { nodes: [{
15479
15488
  type: Input
15480
15489
  }], type: [{
@@ -15506,9 +15515,515 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
15506
15515
  args: ['nodeBtn', { read: ElementRef }]
15507
15516
  }] } });
15508
15517
 
15518
+ let nextPromptId = 0;
15519
+ class NgbPromptBoxComponent {
15520
+ descriptionId = `ngb-ai-prompt-help-${nextPromptId++}`;
15521
+ value = model("", /* @ts-ignore */
15522
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
15523
+ label = input("Your request", /* @ts-ignore */
15524
+ ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
15525
+ placeholder = input("Describe what you need…", /* @ts-ignore */
15526
+ ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
15527
+ submitLabel = input("Send", /* @ts-ignore */
15528
+ ...(ngDevMode ? [{ debugName: "submitLabel" }] : /* istanbul ignore next */ []));
15529
+ stopLabel = input("Stop", /* @ts-ignore */
15530
+ ...(ngDevMode ? [{ debugName: "stopLabel" }] : /* istanbul ignore next */ []));
15531
+ suggestions = input([], /* @ts-ignore */
15532
+ ...(ngDevMode ? [{ debugName: "suggestions" }] : /* istanbul ignore next */ []));
15533
+ disabled = input(false, /* @ts-ignore */
15534
+ ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
15535
+ busy = input(false, /* @ts-ignore */
15536
+ ...(ngDevMode ? [{ debugName: "busy" }] : /* istanbul ignore next */ []));
15537
+ maxLength = input(4000, /* @ts-ignore */
15538
+ ...(ngDevMode ? [{ debugName: "maxLength" }] : /* istanbul ignore next */ []));
15539
+ submitOnEnter = input(true, /* @ts-ignore */
15540
+ ...(ngDevMode ? [{ debugName: "submitOnEnter" }] : /* istanbul ignore next */ []));
15541
+ clearOnSubmit = input(true, /* @ts-ignore */
15542
+ ...(ngDevMode ? [{ debugName: "clearOnSubmit" }] : /* istanbul ignore next */ []));
15543
+ promptSubmit = output();
15544
+ stop = output();
15545
+ limit = computed(() => Number.isFinite(this.maxLength())
15546
+ ? Math.max(1, Math.floor(this.maxLength()))
15547
+ : 4000, /* @ts-ignore */
15548
+ ...(ngDevMode ? [{ debugName: "limit" }] : /* istanbul ignore next */ []));
15549
+ canSubmit = computed(() => !this.disabled() &&
15550
+ !this.busy() &&
15551
+ !!this.value().trim() &&
15552
+ this.value().length <= this.limit(), /* @ts-ignore */
15553
+ ...(ngDevMode ? [{ debugName: "canSubmit" }] : /* istanbul ignore next */ []));
15554
+ updateValue(event) {
15555
+ this.value.set(event.target.value);
15556
+ }
15557
+ choose(value) {
15558
+ if (!this.disabled() && !this.busy())
15559
+ this.value.set(value.slice(0, this.limit()));
15560
+ }
15561
+ submit() {
15562
+ if (!this.canSubmit())
15563
+ return;
15564
+ const value = this.value().trim();
15565
+ if (this.clearOnSubmit())
15566
+ this.value.set("");
15567
+ this.promptSubmit.emit(value);
15568
+ }
15569
+ onKeydown(event) {
15570
+ if (event.key === "Enter" &&
15571
+ !event.shiftKey &&
15572
+ !event.isComposing &&
15573
+ this.submitOnEnter()) {
15574
+ event.preventDefault();
15575
+ this.submit();
15576
+ }
15577
+ }
15578
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbPromptBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15579
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: NgbPromptBoxComponent, isStandalone: true, selector: "ngb-prompt-box", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, submitLabel: { classPropertyName: "submitLabel", publicName: "submitLabel", isSignal: true, isRequired: false, transformFunction: null }, stopLabel: { classPropertyName: "stopLabel", publicName: "stopLabel", isSignal: true, isRequired: false, transformFunction: null }, suggestions: { classPropertyName: "suggestions", publicName: "suggestions", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, busy: { classPropertyName: "busy", publicName: "busy", isSignal: true, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null }, submitOnEnter: { classPropertyName: "submitOnEnter", publicName: "submitOnEnter", isSignal: true, isRequired: false, transformFunction: null }, clearOnSubmit: { classPropertyName: "clearOnSubmit", publicName: "clearOnSubmit", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", promptSubmit: "promptSubmit", stop: "stop" }, ngImport: i0, template: `
15580
+ <div class="ngb-ai-composer" [attr.aria-busy]="busy()">
15581
+ <label class="ngb-ai-label">
15582
+ {{ label() }}
15583
+ <textarea class="form-control" rows="3" [value]="value()"
15584
+ [placeholder]="placeholder()" [disabled]="disabled()" [readOnly]="busy()" [attr.aria-describedby]="descriptionId"
15585
+ [attr.maxlength]="limit()" (input)="updateValue($event)"
15586
+ (keydown)="onKeydown($event)"></textarea>
15587
+ </label>
15588
+ @if (suggestions().length) {
15589
+ <div class="ngb-ai-actions" role="group" aria-label="Suggested prompts">
15590
+ @for (suggestion of suggestions(); track $index) {
15591
+ <button type="button" class="btn btn-sm btn-outline-secondary"
15592
+ [disabled]="disabled() || busy()" (click)="choose(suggestion)">{{ suggestion }}</button>
15593
+ }
15594
+ </div>
15595
+ }
15596
+ <div class="ngb-ai-composer-footer">
15597
+ <span class="ngb-ai-muted small">{{ value().length }} / {{ limit() }}</span>
15598
+ <button type="button" class="btn btn-sm" [class.btn-outline-secondary]="busy()" [class.btn-primary]="!busy()" [disabled]="disabled() || (!busy() && !canSubmit())" (click)="busy() ? stop.emit() : submit()">{{ busy() ? stopLabel() : submitLabel() }}</button>
15599
+ </div>
15600
+ <span class="visually-hidden" [id]="descriptionId">{{ submitOnEnter() ? 'Enter sends. Shift+Enter adds a new line.' : 'Enter adds a new line. Use the submit button to send.' }} Maximum {{ limit() }} characters.</span>
15601
+ </div>
15602
+ <span class="visually-hidden" role="status" aria-live="polite">{{ busy() ? 'Request in progress. Use Stop to cancel.' : '' }}</span>
15603
+ `, isInline: true, styles: [":host{font-family:var(--ngb-font-family, inherit);color:var(--ngb-on-surface, inherit)}.btn{--bs-btn-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-btn-disabled-opacity: var(--ngb-disabled-opacity, .65)}.btn-primary{--bs-btn-bg: var(--ngb-primary, #0d6efd);--bs-btn-border-color: var(--ngb-primary, #0d6efd);--bs-btn-color: var(--ngb-on-primary, #fff);--bs-btn-hover-bg: var(--ngb-primary-hover, #0b5ed7);--bs-btn-hover-border-color: var(--ngb-primary-hover, #0a58ca);--bs-btn-hover-color: var(--ngb-on-primary, #fff);--bs-btn-active-bg: var(--ngb-primary-hover, #0a58ca);--bs-btn-active-border-color: var(--ngb-primary-hover, #0a53be);--bs-btn-active-color: var(--ngb-on-primary, #fff);--bs-btn-disabled-bg: var(--ngb-primary, #0d6efd);--bs-btn-disabled-border-color: var(--ngb-primary, #0d6efd);--bs-btn-disabled-color: var(--ngb-on-primary, #fff)}.btn-outline-secondary{--bs-btn-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-border-color: var(--ngb-border-color, #6c757d);--bs-btn-hover-bg: var(--ngb-hover-bg, #6c757d);--bs-btn-hover-color: var(--ngb-on-surface, #fff);--bs-btn-hover-border-color: var(--ngb-border-color, #6c757d);--bs-btn-active-bg: var(--ngb-selected-bg, #6c757d);--bs-btn-active-color: var(--ngb-on-surface, #fff);--bs-btn-active-border-color: var(--ngb-border-color, #6c757d);--bs-btn-disabled-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-disabled-border-color: var(--ngb-border-color, #6c757d)}.form-control,.form-select{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, var(--bs-border-radius, .375rem))}.form-control::placeholder{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.form-control:disabled,.form-select:disabled{background-color:var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));opacity:var(--ngb-disabled-opacity, 1)}.form-check-input{background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.form-check-input:checked,.form-check-input:indeterminate{background-color:var(--ngb-primary, #0d6efd);border-color:var(--ngb-primary, #0d6efd)}.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--ngb-primary, #86b7fe);box-shadow:0 0 0 .25rem var(--ngb-focus-ring, rgba(13, 110, 253, .25))}.btn:focus-visible,.page-link:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.dropdown-menu{--bs-dropdown-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-bg: var(--ngb-surface, var(--bs-body-bg, #fff));--bs-dropdown-border-color: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0,0,0,.175)));--bs-dropdown-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-dropdown-link-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--bs-dropdown-link-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-active-bg: var(--ngb-primary, #0d6efd);--bs-dropdown-link-active-color: var(--ngb-on-primary, #fff);--bs-dropdown-link-disabled-color: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #adb5bd));box-shadow:var(--ngb-elevation-2, none)}.form-select{background-image:var(--ngb-select-icon, var(--bs-form-select-bg-img))}.form-check-input:disabled{opacity:var(--ngb-disabled-opacity, .5)}.btn-sm{--bs-btn-border-radius: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}.form-control-sm,.form-select-sm{border-radius:var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}:host{display:block;min-width:0}.ngb-ai-panel{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background:var(--ngb-surface, var(--bs-body-bg, #fff));border:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-lg, .5rem);padding:var(--ngb-space-4, 1rem)}.ngb-ai-composer{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background:var(--ngb-surface, var(--bs-body-bg, #fff));border-radius:var(--ngb-radius-md, .375rem);padding:var(--ngb-space-3, .75rem)}.ngb-ai-header,.ngb-ai-composer-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.ngb-ai-composer-footer{margin-top:.75rem;margin-bottom:0}.ngb-ai-label{display:flex;flex-direction:column;gap:.4rem;width:100%;font-weight:500}textarea{resize:vertical;min-height:6rem}.ngb-ai-actions{display:flex;gap:var(--ngb-space-2, .5rem);flex-wrap:wrap;margin-top:.75rem}.ngb-ai-actions [aria-pressed=true]{background:var(--ngb-selected-bg, var(--bs-primary-bg-subtle, #cfe2ff));color:var(--ngb-on-surface, var(--bs-body-color, #212529))}.ngb-ai-muted{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.ngb-ai-transcript{max-height:28rem;overflow:auto;padding:.25rem;margin-bottom:1rem}.ngb-ai-transcript:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.ngb-ai-message{padding:.85rem;margin-bottom:.75rem;border-inline-start:3px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.ngb-ai-message-user{background:var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));border-color:var(--ngb-primary, var(--bs-primary, #0d6efd));border-radius:var(--ngb-radius-sm, .25rem)}.ngb-ai-text,.ngb-ai-context{white-space:pre-wrap;overflow-wrap:anywhere;margin:.5rem 0}.ngb-ai-error{color:var(--ngb-danger, var(--bs-danger, #dc3545));margin-block:.75rem}.ngb-ai-result{margin-top:1rem;padding:1rem;border:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, .375rem)}.ngb-ai-inline{margin-top:.75rem;box-shadow:var(--ngb-elevation-1, 0 1px 3px rgba(0, 0, 0, .0666666667))}.ngb-ai-context{border-inline-start:3px solid var(--ngb-border-color, #dee2e6);padding-inline-start:.75rem;max-height:12rem;overflow:auto}.ngb-ai-review{margin-block:1rem}.ngb-ai-field{display:grid;gap:.35rem;padding-block:.75rem;border-bottom:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.ngb-ai-check{display:flex;gap:.5rem;align-items:center}.ngb-ai-composer{border:1px solid var(--ngb-border-color, #dee2e6);box-shadow:var(--ngb-elevation-1, 0 1px 3px rgba(0, 0, 0, .0666666667))}.ngb-ai-chat .ngb-ai-transcript{min-height:16rem}.ngb-ai-chat .ngb-ai-message{border:0;max-width:90%;padding:.8rem 1rem}.ngb-ai-chat .ngb-ai-message-user{margin-inline-start:auto;max-width:80%;border-radius:var(--ngb-radius-lg, .5rem);background:var(--ngb-selected-bg, #cfe2ff)}.ngb-ai-chat .ngb-ai-message:not(.ngb-ai-message-user)>strong{color:var(--ngb-primary, #0d6efd)}.ngb-ai-workspace-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:1.25rem}.ngb-ai-brief,.ngb-ai-drafts{min-width:0}.ngb-ai-drafts{max-height:38rem;overflow:auto;padding:.25rem}.ngb-ai-section-label{display:block;margin-bottom:.8rem;color:var(--ngb-on-surface-variant, #6c757d);font-size:var(--ngb-font-size-sm, .875rem);font-weight:600}.ngb-ai-workspace .ngb-ai-result{background:var(--ngb-surface-container, #f8f9fa)}.ngb-ai-inline{border-inline-start:3px solid var(--ngb-primary, #0d6efd)}.ngb-ai-inline .ngb-ai-result{background:var(--ngb-selected-bg, #cfe2ff)}@media(max-width:640px){.ngb-ai-workspace-grid{grid-template-columns:minmax(0,1fr)}.ngb-ai-chat .ngb-ai-message,.ngb-ai-chat .ngb-ai-message-user{max-width:100%}}.ngb-ai-panel h2,.ngb-ai-panel h3{color:var(--ngb-on-surface, var(--bs-body-color, #212529))}.ngb-ai-drafts:focus-visible{outline:2px solid var(--ngb-primary, #0d6efd);outline-offset:2px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15604
+ }
15605
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbPromptBoxComponent, decorators: [{
15606
+ type: Component,
15607
+ args: [{ selector: "ngb-prompt-box", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
15608
+ <div class="ngb-ai-composer" [attr.aria-busy]="busy()">
15609
+ <label class="ngb-ai-label">
15610
+ {{ label() }}
15611
+ <textarea class="form-control" rows="3" [value]="value()"
15612
+ [placeholder]="placeholder()" [disabled]="disabled()" [readOnly]="busy()" [attr.aria-describedby]="descriptionId"
15613
+ [attr.maxlength]="limit()" (input)="updateValue($event)"
15614
+ (keydown)="onKeydown($event)"></textarea>
15615
+ </label>
15616
+ @if (suggestions().length) {
15617
+ <div class="ngb-ai-actions" role="group" aria-label="Suggested prompts">
15618
+ @for (suggestion of suggestions(); track $index) {
15619
+ <button type="button" class="btn btn-sm btn-outline-secondary"
15620
+ [disabled]="disabled() || busy()" (click)="choose(suggestion)">{{ suggestion }}</button>
15621
+ }
15622
+ </div>
15623
+ }
15624
+ <div class="ngb-ai-composer-footer">
15625
+ <span class="ngb-ai-muted small">{{ value().length }} / {{ limit() }}</span>
15626
+ <button type="button" class="btn btn-sm" [class.btn-outline-secondary]="busy()" [class.btn-primary]="!busy()" [disabled]="disabled() || (!busy() && !canSubmit())" (click)="busy() ? stop.emit() : submit()">{{ busy() ? stopLabel() : submitLabel() }}</button>
15627
+ </div>
15628
+ <span class="visually-hidden" [id]="descriptionId">{{ submitOnEnter() ? 'Enter sends. Shift+Enter adds a new line.' : 'Enter adds a new line. Use the submit button to send.' }} Maximum {{ limit() }} characters.</span>
15629
+ </div>
15630
+ <span class="visually-hidden" role="status" aria-live="polite">{{ busy() ? 'Request in progress. Use Stop to cancel.' : '' }}</span>
15631
+ `, styles: [":host{font-family:var(--ngb-font-family, inherit);color:var(--ngb-on-surface, inherit)}.btn{--bs-btn-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-btn-disabled-opacity: var(--ngb-disabled-opacity, .65)}.btn-primary{--bs-btn-bg: var(--ngb-primary, #0d6efd);--bs-btn-border-color: var(--ngb-primary, #0d6efd);--bs-btn-color: var(--ngb-on-primary, #fff);--bs-btn-hover-bg: var(--ngb-primary-hover, #0b5ed7);--bs-btn-hover-border-color: var(--ngb-primary-hover, #0a58ca);--bs-btn-hover-color: var(--ngb-on-primary, #fff);--bs-btn-active-bg: var(--ngb-primary-hover, #0a58ca);--bs-btn-active-border-color: var(--ngb-primary-hover, #0a53be);--bs-btn-active-color: var(--ngb-on-primary, #fff);--bs-btn-disabled-bg: var(--ngb-primary, #0d6efd);--bs-btn-disabled-border-color: var(--ngb-primary, #0d6efd);--bs-btn-disabled-color: var(--ngb-on-primary, #fff)}.btn-outline-secondary{--bs-btn-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-border-color: var(--ngb-border-color, #6c757d);--bs-btn-hover-bg: var(--ngb-hover-bg, #6c757d);--bs-btn-hover-color: var(--ngb-on-surface, #fff);--bs-btn-hover-border-color: var(--ngb-border-color, #6c757d);--bs-btn-active-bg: var(--ngb-selected-bg, #6c757d);--bs-btn-active-color: var(--ngb-on-surface, #fff);--bs-btn-active-border-color: var(--ngb-border-color, #6c757d);--bs-btn-disabled-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-disabled-border-color: var(--ngb-border-color, #6c757d)}.form-control,.form-select{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, var(--bs-border-radius, .375rem))}.form-control::placeholder{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.form-control:disabled,.form-select:disabled{background-color:var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));opacity:var(--ngb-disabled-opacity, 1)}.form-check-input{background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.form-check-input:checked,.form-check-input:indeterminate{background-color:var(--ngb-primary, #0d6efd);border-color:var(--ngb-primary, #0d6efd)}.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--ngb-primary, #86b7fe);box-shadow:0 0 0 .25rem var(--ngb-focus-ring, rgba(13, 110, 253, .25))}.btn:focus-visible,.page-link:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.dropdown-menu{--bs-dropdown-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-bg: var(--ngb-surface, var(--bs-body-bg, #fff));--bs-dropdown-border-color: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0,0,0,.175)));--bs-dropdown-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-dropdown-link-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--bs-dropdown-link-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-active-bg: var(--ngb-primary, #0d6efd);--bs-dropdown-link-active-color: var(--ngb-on-primary, #fff);--bs-dropdown-link-disabled-color: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #adb5bd));box-shadow:var(--ngb-elevation-2, none)}.form-select{background-image:var(--ngb-select-icon, var(--bs-form-select-bg-img))}.form-check-input:disabled{opacity:var(--ngb-disabled-opacity, .5)}.btn-sm{--bs-btn-border-radius: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}.form-control-sm,.form-select-sm{border-radius:var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}:host{display:block;min-width:0}.ngb-ai-panel{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background:var(--ngb-surface, var(--bs-body-bg, #fff));border:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-lg, .5rem);padding:var(--ngb-space-4, 1rem)}.ngb-ai-composer{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background:var(--ngb-surface, var(--bs-body-bg, #fff));border-radius:var(--ngb-radius-md, .375rem);padding:var(--ngb-space-3, .75rem)}.ngb-ai-header,.ngb-ai-composer-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.ngb-ai-composer-footer{margin-top:.75rem;margin-bottom:0}.ngb-ai-label{display:flex;flex-direction:column;gap:.4rem;width:100%;font-weight:500}textarea{resize:vertical;min-height:6rem}.ngb-ai-actions{display:flex;gap:var(--ngb-space-2, .5rem);flex-wrap:wrap;margin-top:.75rem}.ngb-ai-actions [aria-pressed=true]{background:var(--ngb-selected-bg, var(--bs-primary-bg-subtle, #cfe2ff));color:var(--ngb-on-surface, var(--bs-body-color, #212529))}.ngb-ai-muted{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.ngb-ai-transcript{max-height:28rem;overflow:auto;padding:.25rem;margin-bottom:1rem}.ngb-ai-transcript:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.ngb-ai-message{padding:.85rem;margin-bottom:.75rem;border-inline-start:3px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.ngb-ai-message-user{background:var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));border-color:var(--ngb-primary, var(--bs-primary, #0d6efd));border-radius:var(--ngb-radius-sm, .25rem)}.ngb-ai-text,.ngb-ai-context{white-space:pre-wrap;overflow-wrap:anywhere;margin:.5rem 0}.ngb-ai-error{color:var(--ngb-danger, var(--bs-danger, #dc3545));margin-block:.75rem}.ngb-ai-result{margin-top:1rem;padding:1rem;border:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, .375rem)}.ngb-ai-inline{margin-top:.75rem;box-shadow:var(--ngb-elevation-1, 0 1px 3px rgba(0, 0, 0, .0666666667))}.ngb-ai-context{border-inline-start:3px solid var(--ngb-border-color, #dee2e6);padding-inline-start:.75rem;max-height:12rem;overflow:auto}.ngb-ai-review{margin-block:1rem}.ngb-ai-field{display:grid;gap:.35rem;padding-block:.75rem;border-bottom:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.ngb-ai-check{display:flex;gap:.5rem;align-items:center}.ngb-ai-composer{border:1px solid var(--ngb-border-color, #dee2e6);box-shadow:var(--ngb-elevation-1, 0 1px 3px rgba(0, 0, 0, .0666666667))}.ngb-ai-chat .ngb-ai-transcript{min-height:16rem}.ngb-ai-chat .ngb-ai-message{border:0;max-width:90%;padding:.8rem 1rem}.ngb-ai-chat .ngb-ai-message-user{margin-inline-start:auto;max-width:80%;border-radius:var(--ngb-radius-lg, .5rem);background:var(--ngb-selected-bg, #cfe2ff)}.ngb-ai-chat .ngb-ai-message:not(.ngb-ai-message-user)>strong{color:var(--ngb-primary, #0d6efd)}.ngb-ai-workspace-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:1.25rem}.ngb-ai-brief,.ngb-ai-drafts{min-width:0}.ngb-ai-drafts{max-height:38rem;overflow:auto;padding:.25rem}.ngb-ai-section-label{display:block;margin-bottom:.8rem;color:var(--ngb-on-surface-variant, #6c757d);font-size:var(--ngb-font-size-sm, .875rem);font-weight:600}.ngb-ai-workspace .ngb-ai-result{background:var(--ngb-surface-container, #f8f9fa)}.ngb-ai-inline{border-inline-start:3px solid var(--ngb-primary, #0d6efd)}.ngb-ai-inline .ngb-ai-result{background:var(--ngb-selected-bg, #cfe2ff)}@media(max-width:640px){.ngb-ai-workspace-grid{grid-template-columns:minmax(0,1fr)}.ngb-ai-chat .ngb-ai-message,.ngb-ai-chat .ngb-ai-message-user{max-width:100%}}.ngb-ai-panel h2,.ngb-ai-panel h3{color:var(--ngb-on-surface, var(--bs-body-color, #212529))}.ngb-ai-drafts:focus-visible{outline:2px solid var(--ngb-primary, #0d6efd);outline-offset:2px}\n"] }]
15632
+ }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], submitLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "submitLabel", required: false }] }], stopLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "stopLabel", required: false }] }], suggestions: [{ type: i0.Input, args: [{ isSignal: true, alias: "suggestions", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], busy: [{ type: i0.Input, args: [{ isSignal: true, alias: "busy", required: false }] }], maxLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxLength", required: false }] }], submitOnEnter: [{ type: i0.Input, args: [{ isSignal: true, alias: "submitOnEnter", required: false }] }], clearOnSubmit: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearOnSubmit", required: false }] }], promptSubmit: [{ type: i0.Output, args: ["promptSubmit"] }], stop: [{ type: i0.Output, args: ["stop"] }] } });
15633
+
15634
+ class NgbAiChatComponent {
15635
+ label = input("Workspace assistant", /* @ts-ignore */
15636
+ ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
15637
+ userLabel = input("You", /* @ts-ignore */
15638
+ ...(ngDevMode ? [{ debugName: "userLabel" }] : /* istanbul ignore next */ []));
15639
+ assistantLabel = input("Assistant", /* @ts-ignore */
15640
+ ...(ngDevMode ? [{ debugName: "assistantLabel" }] : /* istanbul ignore next */ []));
15641
+ emptyText = input("Start a conversation about your work.", /* @ts-ignore */
15642
+ ...(ngDevMode ? [{ debugName: "emptyText" }] : /* istanbul ignore next */ []));
15643
+ messages = input([], /* @ts-ignore */
15644
+ ...(ngDevMode ? [{ debugName: "messages" }] : /* istanbul ignore next */ []));
15645
+ suggestions = input([], /* @ts-ignore */
15646
+ ...(ngDevMode ? [{ debugName: "suggestions" }] : /* istanbul ignore next */ []));
15647
+ busy = input(false, /* @ts-ignore */
15648
+ ...(ngDevMode ? [{ debugName: "busy" }] : /* istanbul ignore next */ []));
15649
+ disabled = input(false, /* @ts-ignore */
15650
+ ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
15651
+ error = input("", /* @ts-ignore */
15652
+ ...(ngDevMode ? [{ debugName: "error" }] : /* istanbul ignore next */ []));
15653
+ promptSubmit = output();
15654
+ stop = output();
15655
+ retry = output();
15656
+ feedback = output();
15657
+ ratings = signal({}, /* @ts-ignore */
15658
+ ...(ngDevMode ? [{ debugName: "ratings" }] : /* istanbul ignore next */ []));
15659
+ rate(id, value) {
15660
+ if (this.disabled())
15661
+ return;
15662
+ const next = this.ratings()[id] === value ? null : value;
15663
+ this.ratings.update((current) => ({ ...current, [id]: next }));
15664
+ this.feedback.emit({ id, value: next });
15665
+ }
15666
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbAiChatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15667
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: NgbAiChatComponent, isStandalone: true, selector: "ngb-ai-chat", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, userLabel: { classPropertyName: "userLabel", publicName: "userLabel", isSignal: true, isRequired: false, transformFunction: null }, assistantLabel: { classPropertyName: "assistantLabel", publicName: "assistantLabel", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, suggestions: { classPropertyName: "suggestions", publicName: "suggestions", isSignal: true, isRequired: false, transformFunction: null }, busy: { classPropertyName: "busy", publicName: "busy", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { promptSubmit: "promptSubmit", stop: "stop", retry: "retry", feedback: "feedback" }, ngImport: i0, template: `
15668
+ <section class="ngb-ai-panel ngb-ai-chat" [attr.aria-label]="label()">
15669
+ <header class="ngb-ai-header"><h2 class="h6 mb-0">{{ label() }}</h2><span class="ngb-ai-muted small">{{ busy() ? 'Responding…' : 'Ready' }}</span></header>
15670
+ <div class="ngb-ai-transcript" role="log" aria-live="polite" aria-relevant="additions text" [attr.aria-busy]="busy()" tabindex="0" [attr.aria-label]="label() + ' messages'">
15671
+ @for (message of messages(); track message.id) {
15672
+ <article class="ngb-ai-message" [class.ngb-ai-message-user]="message.role === 'user'">
15673
+ <strong class="small">{{ message.role === 'user' ? userLabel() : message.role === 'assistant' ? assistantLabel() : 'Notice' }}</strong>
15674
+ <p class="ngb-ai-text">{{ message.content }}</p>
15675
+ @if (message.status === 'streaming') { <span class="ngb-ai-muted small">Receiving response…</span> }
15676
+ @if (message.status === 'error') {
15677
+ <p class="ngb-ai-error" role="alert">{{ message.error || 'The response could not be completed.' }}</p>
15678
+ <button type="button" class="btn btn-sm btn-outline-secondary" [disabled]="busy() || disabled()" (click)="retry.emit(message.id)">Retry</button>
15679
+ }
15680
+ @if (message.role === 'assistant' && message.status !== 'streaming' && message.status !== 'error') {
15681
+ <div class="ngb-ai-actions" role="group" aria-label="Response feedback">
15682
+ <button type="button" class="btn btn-sm btn-outline-secondary" [disabled]="disabled()" [attr.aria-pressed]="ratings()[message.id] === 'helpful'" (click)="rate(message.id, 'helpful')">Helpful</button>
15683
+ <button type="button" class="btn btn-sm btn-outline-secondary" [disabled]="disabled()" [attr.aria-pressed]="ratings()[message.id] === 'unhelpful'" (click)="rate(message.id, 'unhelpful')">Needs work</button>
15684
+ </div>
15685
+ }
15686
+ </article>
15687
+ } @empty { <p class="ngb-ai-muted">{{ emptyText() }}</p> }
15688
+ </div>
15689
+ @if (error()) { <p class="ngb-ai-error" role="alert">{{ error() }}</p> }
15690
+ <ngb-prompt-box [busy]="busy()" [disabled]="disabled()" [suggestions]="suggestions()" (promptSubmit)="promptSubmit.emit($event)" (stop)="stop.emit()" />
15691
+ </section>
15692
+ `, isInline: true, styles: [":host{font-family:var(--ngb-font-family, inherit);color:var(--ngb-on-surface, inherit)}.btn{--bs-btn-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-btn-disabled-opacity: var(--ngb-disabled-opacity, .65)}.btn-primary{--bs-btn-bg: var(--ngb-primary, #0d6efd);--bs-btn-border-color: var(--ngb-primary, #0d6efd);--bs-btn-color: var(--ngb-on-primary, #fff);--bs-btn-hover-bg: var(--ngb-primary-hover, #0b5ed7);--bs-btn-hover-border-color: var(--ngb-primary-hover, #0a58ca);--bs-btn-hover-color: var(--ngb-on-primary, #fff);--bs-btn-active-bg: var(--ngb-primary-hover, #0a58ca);--bs-btn-active-border-color: var(--ngb-primary-hover, #0a53be);--bs-btn-active-color: var(--ngb-on-primary, #fff);--bs-btn-disabled-bg: var(--ngb-primary, #0d6efd);--bs-btn-disabled-border-color: var(--ngb-primary, #0d6efd);--bs-btn-disabled-color: var(--ngb-on-primary, #fff)}.btn-outline-secondary{--bs-btn-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-border-color: var(--ngb-border-color, #6c757d);--bs-btn-hover-bg: var(--ngb-hover-bg, #6c757d);--bs-btn-hover-color: var(--ngb-on-surface, #fff);--bs-btn-hover-border-color: var(--ngb-border-color, #6c757d);--bs-btn-active-bg: var(--ngb-selected-bg, #6c757d);--bs-btn-active-color: var(--ngb-on-surface, #fff);--bs-btn-active-border-color: var(--ngb-border-color, #6c757d);--bs-btn-disabled-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-disabled-border-color: var(--ngb-border-color, #6c757d)}.form-control,.form-select{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, var(--bs-border-radius, .375rem))}.form-control::placeholder{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.form-control:disabled,.form-select:disabled{background-color:var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));opacity:var(--ngb-disabled-opacity, 1)}.form-check-input{background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.form-check-input:checked,.form-check-input:indeterminate{background-color:var(--ngb-primary, #0d6efd);border-color:var(--ngb-primary, #0d6efd)}.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--ngb-primary, #86b7fe);box-shadow:0 0 0 .25rem var(--ngb-focus-ring, rgba(13, 110, 253, .25))}.btn:focus-visible,.page-link:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.dropdown-menu{--bs-dropdown-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-bg: var(--ngb-surface, var(--bs-body-bg, #fff));--bs-dropdown-border-color: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0,0,0,.175)));--bs-dropdown-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-dropdown-link-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--bs-dropdown-link-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-active-bg: var(--ngb-primary, #0d6efd);--bs-dropdown-link-active-color: var(--ngb-on-primary, #fff);--bs-dropdown-link-disabled-color: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #adb5bd));box-shadow:var(--ngb-elevation-2, none)}.form-select{background-image:var(--ngb-select-icon, var(--bs-form-select-bg-img))}.form-check-input:disabled{opacity:var(--ngb-disabled-opacity, .5)}.btn-sm{--bs-btn-border-radius: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}.form-control-sm,.form-select-sm{border-radius:var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}:host{display:block;min-width:0}.ngb-ai-panel{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background:var(--ngb-surface, var(--bs-body-bg, #fff));border:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-lg, .5rem);padding:var(--ngb-space-4, 1rem)}.ngb-ai-composer{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background:var(--ngb-surface, var(--bs-body-bg, #fff));border-radius:var(--ngb-radius-md, .375rem);padding:var(--ngb-space-3, .75rem)}.ngb-ai-header,.ngb-ai-composer-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.ngb-ai-composer-footer{margin-top:.75rem;margin-bottom:0}.ngb-ai-label{display:flex;flex-direction:column;gap:.4rem;width:100%;font-weight:500}textarea{resize:vertical;min-height:6rem}.ngb-ai-actions{display:flex;gap:var(--ngb-space-2, .5rem);flex-wrap:wrap;margin-top:.75rem}.ngb-ai-actions [aria-pressed=true]{background:var(--ngb-selected-bg, var(--bs-primary-bg-subtle, #cfe2ff));color:var(--ngb-on-surface, var(--bs-body-color, #212529))}.ngb-ai-muted{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.ngb-ai-transcript{max-height:28rem;overflow:auto;padding:.25rem;margin-bottom:1rem}.ngb-ai-transcript:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.ngb-ai-message{padding:.85rem;margin-bottom:.75rem;border-inline-start:3px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.ngb-ai-message-user{background:var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));border-color:var(--ngb-primary, var(--bs-primary, #0d6efd));border-radius:var(--ngb-radius-sm, .25rem)}.ngb-ai-text,.ngb-ai-context{white-space:pre-wrap;overflow-wrap:anywhere;margin:.5rem 0}.ngb-ai-error{color:var(--ngb-danger, var(--bs-danger, #dc3545));margin-block:.75rem}.ngb-ai-result{margin-top:1rem;padding:1rem;border:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, .375rem)}.ngb-ai-inline{margin-top:.75rem;box-shadow:var(--ngb-elevation-1, 0 1px 3px rgba(0, 0, 0, .0666666667))}.ngb-ai-context{border-inline-start:3px solid var(--ngb-border-color, #dee2e6);padding-inline-start:.75rem;max-height:12rem;overflow:auto}.ngb-ai-review{margin-block:1rem}.ngb-ai-field{display:grid;gap:.35rem;padding-block:.75rem;border-bottom:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.ngb-ai-check{display:flex;gap:.5rem;align-items:center}.ngb-ai-composer{border:1px solid var(--ngb-border-color, #dee2e6);box-shadow:var(--ngb-elevation-1, 0 1px 3px rgba(0, 0, 0, .0666666667))}.ngb-ai-chat .ngb-ai-transcript{min-height:16rem}.ngb-ai-chat .ngb-ai-message{border:0;max-width:90%;padding:.8rem 1rem}.ngb-ai-chat .ngb-ai-message-user{margin-inline-start:auto;max-width:80%;border-radius:var(--ngb-radius-lg, .5rem);background:var(--ngb-selected-bg, #cfe2ff)}.ngb-ai-chat .ngb-ai-message:not(.ngb-ai-message-user)>strong{color:var(--ngb-primary, #0d6efd)}.ngb-ai-workspace-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:1.25rem}.ngb-ai-brief,.ngb-ai-drafts{min-width:0}.ngb-ai-drafts{max-height:38rem;overflow:auto;padding:.25rem}.ngb-ai-section-label{display:block;margin-bottom:.8rem;color:var(--ngb-on-surface-variant, #6c757d);font-size:var(--ngb-font-size-sm, .875rem);font-weight:600}.ngb-ai-workspace .ngb-ai-result{background:var(--ngb-surface-container, #f8f9fa)}.ngb-ai-inline{border-inline-start:3px solid var(--ngb-primary, #0d6efd)}.ngb-ai-inline .ngb-ai-result{background:var(--ngb-selected-bg, #cfe2ff)}@media(max-width:640px){.ngb-ai-workspace-grid{grid-template-columns:minmax(0,1fr)}.ngb-ai-chat .ngb-ai-message,.ngb-ai-chat .ngb-ai-message-user{max-width:100%}}.ngb-ai-panel h2,.ngb-ai-panel h3{color:var(--ngb-on-surface, var(--bs-body-color, #212529))}.ngb-ai-drafts:focus-visible{outline:2px solid var(--ngb-primary, #0d6efd);outline-offset:2px}\n"], dependencies: [{ kind: "component", type: NgbPromptBoxComponent, selector: "ngb-prompt-box", inputs: ["value", "label", "placeholder", "submitLabel", "stopLabel", "suggestions", "disabled", "busy", "maxLength", "submitOnEnter", "clearOnSubmit"], outputs: ["valueChange", "promptSubmit", "stop"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15693
+ }
15694
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbAiChatComponent, decorators: [{
15695
+ type: Component,
15696
+ args: [{ selector: "ngb-ai-chat", standalone: true, imports: [NgbPromptBoxComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
15697
+ <section class="ngb-ai-panel ngb-ai-chat" [attr.aria-label]="label()">
15698
+ <header class="ngb-ai-header"><h2 class="h6 mb-0">{{ label() }}</h2><span class="ngb-ai-muted small">{{ busy() ? 'Responding…' : 'Ready' }}</span></header>
15699
+ <div class="ngb-ai-transcript" role="log" aria-live="polite" aria-relevant="additions text" [attr.aria-busy]="busy()" tabindex="0" [attr.aria-label]="label() + ' messages'">
15700
+ @for (message of messages(); track message.id) {
15701
+ <article class="ngb-ai-message" [class.ngb-ai-message-user]="message.role === 'user'">
15702
+ <strong class="small">{{ message.role === 'user' ? userLabel() : message.role === 'assistant' ? assistantLabel() : 'Notice' }}</strong>
15703
+ <p class="ngb-ai-text">{{ message.content }}</p>
15704
+ @if (message.status === 'streaming') { <span class="ngb-ai-muted small">Receiving response…</span> }
15705
+ @if (message.status === 'error') {
15706
+ <p class="ngb-ai-error" role="alert">{{ message.error || 'The response could not be completed.' }}</p>
15707
+ <button type="button" class="btn btn-sm btn-outline-secondary" [disabled]="busy() || disabled()" (click)="retry.emit(message.id)">Retry</button>
15708
+ }
15709
+ @if (message.role === 'assistant' && message.status !== 'streaming' && message.status !== 'error') {
15710
+ <div class="ngb-ai-actions" role="group" aria-label="Response feedback">
15711
+ <button type="button" class="btn btn-sm btn-outline-secondary" [disabled]="disabled()" [attr.aria-pressed]="ratings()[message.id] === 'helpful'" (click)="rate(message.id, 'helpful')">Helpful</button>
15712
+ <button type="button" class="btn btn-sm btn-outline-secondary" [disabled]="disabled()" [attr.aria-pressed]="ratings()[message.id] === 'unhelpful'" (click)="rate(message.id, 'unhelpful')">Needs work</button>
15713
+ </div>
15714
+ }
15715
+ </article>
15716
+ } @empty { <p class="ngb-ai-muted">{{ emptyText() }}</p> }
15717
+ </div>
15718
+ @if (error()) { <p class="ngb-ai-error" role="alert">{{ error() }}</p> }
15719
+ <ngb-prompt-box [busy]="busy()" [disabled]="disabled()" [suggestions]="suggestions()" (promptSubmit)="promptSubmit.emit($event)" (stop)="stop.emit()" />
15720
+ </section>
15721
+ `, styles: [":host{font-family:var(--ngb-font-family, inherit);color:var(--ngb-on-surface, inherit)}.btn{--bs-btn-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-btn-disabled-opacity: var(--ngb-disabled-opacity, .65)}.btn-primary{--bs-btn-bg: var(--ngb-primary, #0d6efd);--bs-btn-border-color: var(--ngb-primary, #0d6efd);--bs-btn-color: var(--ngb-on-primary, #fff);--bs-btn-hover-bg: var(--ngb-primary-hover, #0b5ed7);--bs-btn-hover-border-color: var(--ngb-primary-hover, #0a58ca);--bs-btn-hover-color: var(--ngb-on-primary, #fff);--bs-btn-active-bg: var(--ngb-primary-hover, #0a58ca);--bs-btn-active-border-color: var(--ngb-primary-hover, #0a53be);--bs-btn-active-color: var(--ngb-on-primary, #fff);--bs-btn-disabled-bg: var(--ngb-primary, #0d6efd);--bs-btn-disabled-border-color: var(--ngb-primary, #0d6efd);--bs-btn-disabled-color: var(--ngb-on-primary, #fff)}.btn-outline-secondary{--bs-btn-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-border-color: var(--ngb-border-color, #6c757d);--bs-btn-hover-bg: var(--ngb-hover-bg, #6c757d);--bs-btn-hover-color: var(--ngb-on-surface, #fff);--bs-btn-hover-border-color: var(--ngb-border-color, #6c757d);--bs-btn-active-bg: var(--ngb-selected-bg, #6c757d);--bs-btn-active-color: var(--ngb-on-surface, #fff);--bs-btn-active-border-color: var(--ngb-border-color, #6c757d);--bs-btn-disabled-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-disabled-border-color: var(--ngb-border-color, #6c757d)}.form-control,.form-select{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, var(--bs-border-radius, .375rem))}.form-control::placeholder{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.form-control:disabled,.form-select:disabled{background-color:var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));opacity:var(--ngb-disabled-opacity, 1)}.form-check-input{background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.form-check-input:checked,.form-check-input:indeterminate{background-color:var(--ngb-primary, #0d6efd);border-color:var(--ngb-primary, #0d6efd)}.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--ngb-primary, #86b7fe);box-shadow:0 0 0 .25rem var(--ngb-focus-ring, rgba(13, 110, 253, .25))}.btn:focus-visible,.page-link:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.dropdown-menu{--bs-dropdown-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-bg: var(--ngb-surface, var(--bs-body-bg, #fff));--bs-dropdown-border-color: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0,0,0,.175)));--bs-dropdown-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-dropdown-link-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--bs-dropdown-link-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-active-bg: var(--ngb-primary, #0d6efd);--bs-dropdown-link-active-color: var(--ngb-on-primary, #fff);--bs-dropdown-link-disabled-color: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #adb5bd));box-shadow:var(--ngb-elevation-2, none)}.form-select{background-image:var(--ngb-select-icon, var(--bs-form-select-bg-img))}.form-check-input:disabled{opacity:var(--ngb-disabled-opacity, .5)}.btn-sm{--bs-btn-border-radius: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}.form-control-sm,.form-select-sm{border-radius:var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}:host{display:block;min-width:0}.ngb-ai-panel{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background:var(--ngb-surface, var(--bs-body-bg, #fff));border:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-lg, .5rem);padding:var(--ngb-space-4, 1rem)}.ngb-ai-composer{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background:var(--ngb-surface, var(--bs-body-bg, #fff));border-radius:var(--ngb-radius-md, .375rem);padding:var(--ngb-space-3, .75rem)}.ngb-ai-header,.ngb-ai-composer-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.ngb-ai-composer-footer{margin-top:.75rem;margin-bottom:0}.ngb-ai-label{display:flex;flex-direction:column;gap:.4rem;width:100%;font-weight:500}textarea{resize:vertical;min-height:6rem}.ngb-ai-actions{display:flex;gap:var(--ngb-space-2, .5rem);flex-wrap:wrap;margin-top:.75rem}.ngb-ai-actions [aria-pressed=true]{background:var(--ngb-selected-bg, var(--bs-primary-bg-subtle, #cfe2ff));color:var(--ngb-on-surface, var(--bs-body-color, #212529))}.ngb-ai-muted{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.ngb-ai-transcript{max-height:28rem;overflow:auto;padding:.25rem;margin-bottom:1rem}.ngb-ai-transcript:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.ngb-ai-message{padding:.85rem;margin-bottom:.75rem;border-inline-start:3px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.ngb-ai-message-user{background:var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));border-color:var(--ngb-primary, var(--bs-primary, #0d6efd));border-radius:var(--ngb-radius-sm, .25rem)}.ngb-ai-text,.ngb-ai-context{white-space:pre-wrap;overflow-wrap:anywhere;margin:.5rem 0}.ngb-ai-error{color:var(--ngb-danger, var(--bs-danger, #dc3545));margin-block:.75rem}.ngb-ai-result{margin-top:1rem;padding:1rem;border:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, .375rem)}.ngb-ai-inline{margin-top:.75rem;box-shadow:var(--ngb-elevation-1, 0 1px 3px rgba(0, 0, 0, .0666666667))}.ngb-ai-context{border-inline-start:3px solid var(--ngb-border-color, #dee2e6);padding-inline-start:.75rem;max-height:12rem;overflow:auto}.ngb-ai-review{margin-block:1rem}.ngb-ai-field{display:grid;gap:.35rem;padding-block:.75rem;border-bottom:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.ngb-ai-check{display:flex;gap:.5rem;align-items:center}.ngb-ai-composer{border:1px solid var(--ngb-border-color, #dee2e6);box-shadow:var(--ngb-elevation-1, 0 1px 3px rgba(0, 0, 0, .0666666667))}.ngb-ai-chat .ngb-ai-transcript{min-height:16rem}.ngb-ai-chat .ngb-ai-message{border:0;max-width:90%;padding:.8rem 1rem}.ngb-ai-chat .ngb-ai-message-user{margin-inline-start:auto;max-width:80%;border-radius:var(--ngb-radius-lg, .5rem);background:var(--ngb-selected-bg, #cfe2ff)}.ngb-ai-chat .ngb-ai-message:not(.ngb-ai-message-user)>strong{color:var(--ngb-primary, #0d6efd)}.ngb-ai-workspace-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:1.25rem}.ngb-ai-brief,.ngb-ai-drafts{min-width:0}.ngb-ai-drafts{max-height:38rem;overflow:auto;padding:.25rem}.ngb-ai-section-label{display:block;margin-bottom:.8rem;color:var(--ngb-on-surface-variant, #6c757d);font-size:var(--ngb-font-size-sm, .875rem);font-weight:600}.ngb-ai-workspace .ngb-ai-result{background:var(--ngb-surface-container, #f8f9fa)}.ngb-ai-inline{border-inline-start:3px solid var(--ngb-primary, #0d6efd)}.ngb-ai-inline .ngb-ai-result{background:var(--ngb-selected-bg, #cfe2ff)}@media(max-width:640px){.ngb-ai-workspace-grid{grid-template-columns:minmax(0,1fr)}.ngb-ai-chat .ngb-ai-message,.ngb-ai-chat .ngb-ai-message-user{max-width:100%}}.ngb-ai-panel h2,.ngb-ai-panel h3{color:var(--ngb-on-surface, var(--bs-body-color, #212529))}.ngb-ai-drafts:focus-visible{outline:2px solid var(--ngb-primary, #0d6efd);outline-offset:2px}\n"] }]
15722
+ }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], userLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "userLabel", required: false }] }], assistantLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "assistantLabel", required: false }] }], emptyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyText", required: false }] }], messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }], suggestions: [{ type: i0.Input, args: [{ isSignal: true, alias: "suggestions", required: false }] }], busy: [{ type: i0.Input, args: [{ isSignal: true, alias: "busy", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], error: [{ type: i0.Input, args: [{ isSignal: true, alias: "error", required: false }] }], promptSubmit: [{ type: i0.Output, args: ["promptSubmit"] }], stop: [{ type: i0.Output, args: ["stop"] }], retry: [{ type: i0.Output, args: ["retry"] }], feedback: [{ type: i0.Output, args: ["feedback"] }] } });
15723
+
15724
+ class NgbAiPromptComponent {
15725
+ label = input("Draft workspace", /* @ts-ignore */
15726
+ ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
15727
+ promptLabel = input("Describe the draft", /* @ts-ignore */
15728
+ ...(ngDevMode ? [{ debugName: "promptLabel" }] : /* istanbul ignore next */ []));
15729
+ emptyText = input("Generated drafts appear here for review.", /* @ts-ignore */
15730
+ ...(ngDevMode ? [{ debugName: "emptyText" }] : /* istanbul ignore next */ []));
15731
+ responses = input([], /* @ts-ignore */
15732
+ ...(ngDevMode ? [{ debugName: "responses" }] : /* istanbul ignore next */ []));
15733
+ suggestions = input([], /* @ts-ignore */
15734
+ ...(ngDevMode ? [{ debugName: "suggestions" }] : /* istanbul ignore next */ []));
15735
+ busy = input(false, /* @ts-ignore */
15736
+ ...(ngDevMode ? [{ debugName: "busy" }] : /* istanbul ignore next */ []));
15737
+ disabled = input(false, /* @ts-ignore */
15738
+ ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
15739
+ error = input("", /* @ts-ignore */
15740
+ ...(ngDevMode ? [{ debugName: "error" }] : /* istanbul ignore next */ []));
15741
+ promptSubmit = output();
15742
+ stop = output();
15743
+ responseApply = output();
15744
+ regenerate = output();
15745
+ responseDismiss = output();
15746
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbAiPromptComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15747
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: NgbAiPromptComponent, isStandalone: true, selector: "ngb-ai-prompt", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, promptLabel: { classPropertyName: "promptLabel", publicName: "promptLabel", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, responses: { classPropertyName: "responses", publicName: "responses", isSignal: true, isRequired: false, transformFunction: null }, suggestions: { classPropertyName: "suggestions", publicName: "suggestions", isSignal: true, isRequired: false, transformFunction: null }, busy: { classPropertyName: "busy", publicName: "busy", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { promptSubmit: "promptSubmit", stop: "stop", responseApply: "responseApply", regenerate: "regenerate", responseDismiss: "responseDismiss" }, ngImport: i0, template: `
15748
+ <section class="ngb-ai-panel ngb-ai-workspace" [attr.aria-label]="label()">
15749
+ <header class="ngb-ai-header"><h2 class="h6 mb-0">{{ label() }}</h2><span class="ngb-ai-muted small">{{ responses().length }} {{ responses().length === 1 ? 'draft' : 'drafts' }}</span></header>
15750
+ <div class="ngb-ai-workspace-grid">
15751
+ <div class="ngb-ai-brief"><span class="ngb-ai-section-label">01 · Brief</span>
15752
+ <ngb-prompt-box [label]="promptLabel()" submitLabel="Create draft" [clearOnSubmit]="false" [busy]="busy()" [disabled]="disabled()" [suggestions]="suggestions()" (promptSubmit)="promptSubmit.emit($event)" (stop)="stop.emit()" />
15753
+ @if (error()) { <p class="ngb-ai-error" role="alert">{{ error() }}</p> }
15754
+ </div>
15755
+ <div class="ngb-ai-drafts" role="region" aria-label="Generated drafts" tabindex="0" aria-live="polite" [attr.aria-busy]="busy()">
15756
+ <span class="ngb-ai-section-label">02 · Review drafts</span>
15757
+ @for (response of responses(); track response.id) {
15758
+ <article class="ngb-ai-result">
15759
+ <h3 class="h6">{{ response.prompt }}</h3><p class="ngb-ai-text">{{ response.text }}</p>
15760
+ <div class="ngb-ai-actions">
15761
+ <button type="button" class="btn btn-sm btn-primary" [disabled]="busy() || disabled()" (click)="responseApply.emit(response)">Use draft</button>
15762
+ <button type="button" class="btn btn-sm btn-outline-secondary" [disabled]="busy() || disabled()" (click)="regenerate.emit(response)">Try again</button>
15763
+ <button type="button" class="btn btn-sm btn-outline-secondary" [disabled]="busy() || disabled()" (click)="responseDismiss.emit(response.id)">Dismiss</button>
15764
+ </div>
15765
+ </article>
15766
+ } @empty { <p class="ngb-ai-muted mt-3">{{ emptyText() }}</p> }
15767
+ </div>
15768
+ </div>
15769
+ </section>
15770
+ `, isInline: true, styles: [":host{font-family:var(--ngb-font-family, inherit);color:var(--ngb-on-surface, inherit)}.btn{--bs-btn-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-btn-disabled-opacity: var(--ngb-disabled-opacity, .65)}.btn-primary{--bs-btn-bg: var(--ngb-primary, #0d6efd);--bs-btn-border-color: var(--ngb-primary, #0d6efd);--bs-btn-color: var(--ngb-on-primary, #fff);--bs-btn-hover-bg: var(--ngb-primary-hover, #0b5ed7);--bs-btn-hover-border-color: var(--ngb-primary-hover, #0a58ca);--bs-btn-hover-color: var(--ngb-on-primary, #fff);--bs-btn-active-bg: var(--ngb-primary-hover, #0a58ca);--bs-btn-active-border-color: var(--ngb-primary-hover, #0a53be);--bs-btn-active-color: var(--ngb-on-primary, #fff);--bs-btn-disabled-bg: var(--ngb-primary, #0d6efd);--bs-btn-disabled-border-color: var(--ngb-primary, #0d6efd);--bs-btn-disabled-color: var(--ngb-on-primary, #fff)}.btn-outline-secondary{--bs-btn-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-border-color: var(--ngb-border-color, #6c757d);--bs-btn-hover-bg: var(--ngb-hover-bg, #6c757d);--bs-btn-hover-color: var(--ngb-on-surface, #fff);--bs-btn-hover-border-color: var(--ngb-border-color, #6c757d);--bs-btn-active-bg: var(--ngb-selected-bg, #6c757d);--bs-btn-active-color: var(--ngb-on-surface, #fff);--bs-btn-active-border-color: var(--ngb-border-color, #6c757d);--bs-btn-disabled-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-disabled-border-color: var(--ngb-border-color, #6c757d)}.form-control,.form-select{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, var(--bs-border-radius, .375rem))}.form-control::placeholder{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.form-control:disabled,.form-select:disabled{background-color:var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));opacity:var(--ngb-disabled-opacity, 1)}.form-check-input{background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.form-check-input:checked,.form-check-input:indeterminate{background-color:var(--ngb-primary, #0d6efd);border-color:var(--ngb-primary, #0d6efd)}.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--ngb-primary, #86b7fe);box-shadow:0 0 0 .25rem var(--ngb-focus-ring, rgba(13, 110, 253, .25))}.btn:focus-visible,.page-link:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.dropdown-menu{--bs-dropdown-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-bg: var(--ngb-surface, var(--bs-body-bg, #fff));--bs-dropdown-border-color: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0,0,0,.175)));--bs-dropdown-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-dropdown-link-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--bs-dropdown-link-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-active-bg: var(--ngb-primary, #0d6efd);--bs-dropdown-link-active-color: var(--ngb-on-primary, #fff);--bs-dropdown-link-disabled-color: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #adb5bd));box-shadow:var(--ngb-elevation-2, none)}.form-select{background-image:var(--ngb-select-icon, var(--bs-form-select-bg-img))}.form-check-input:disabled{opacity:var(--ngb-disabled-opacity, .5)}.btn-sm{--bs-btn-border-radius: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}.form-control-sm,.form-select-sm{border-radius:var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}:host{display:block;min-width:0}.ngb-ai-panel{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background:var(--ngb-surface, var(--bs-body-bg, #fff));border:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-lg, .5rem);padding:var(--ngb-space-4, 1rem)}.ngb-ai-composer{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background:var(--ngb-surface, var(--bs-body-bg, #fff));border-radius:var(--ngb-radius-md, .375rem);padding:var(--ngb-space-3, .75rem)}.ngb-ai-header,.ngb-ai-composer-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.ngb-ai-composer-footer{margin-top:.75rem;margin-bottom:0}.ngb-ai-label{display:flex;flex-direction:column;gap:.4rem;width:100%;font-weight:500}textarea{resize:vertical;min-height:6rem}.ngb-ai-actions{display:flex;gap:var(--ngb-space-2, .5rem);flex-wrap:wrap;margin-top:.75rem}.ngb-ai-actions [aria-pressed=true]{background:var(--ngb-selected-bg, var(--bs-primary-bg-subtle, #cfe2ff));color:var(--ngb-on-surface, var(--bs-body-color, #212529))}.ngb-ai-muted{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.ngb-ai-transcript{max-height:28rem;overflow:auto;padding:.25rem;margin-bottom:1rem}.ngb-ai-transcript:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.ngb-ai-message{padding:.85rem;margin-bottom:.75rem;border-inline-start:3px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.ngb-ai-message-user{background:var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));border-color:var(--ngb-primary, var(--bs-primary, #0d6efd));border-radius:var(--ngb-radius-sm, .25rem)}.ngb-ai-text,.ngb-ai-context{white-space:pre-wrap;overflow-wrap:anywhere;margin:.5rem 0}.ngb-ai-error{color:var(--ngb-danger, var(--bs-danger, #dc3545));margin-block:.75rem}.ngb-ai-result{margin-top:1rem;padding:1rem;border:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, .375rem)}.ngb-ai-inline{margin-top:.75rem;box-shadow:var(--ngb-elevation-1, 0 1px 3px rgba(0, 0, 0, .0666666667))}.ngb-ai-context{border-inline-start:3px solid var(--ngb-border-color, #dee2e6);padding-inline-start:.75rem;max-height:12rem;overflow:auto}.ngb-ai-review{margin-block:1rem}.ngb-ai-field{display:grid;gap:.35rem;padding-block:.75rem;border-bottom:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.ngb-ai-check{display:flex;gap:.5rem;align-items:center}.ngb-ai-composer{border:1px solid var(--ngb-border-color, #dee2e6);box-shadow:var(--ngb-elevation-1, 0 1px 3px rgba(0, 0, 0, .0666666667))}.ngb-ai-chat .ngb-ai-transcript{min-height:16rem}.ngb-ai-chat .ngb-ai-message{border:0;max-width:90%;padding:.8rem 1rem}.ngb-ai-chat .ngb-ai-message-user{margin-inline-start:auto;max-width:80%;border-radius:var(--ngb-radius-lg, .5rem);background:var(--ngb-selected-bg, #cfe2ff)}.ngb-ai-chat .ngb-ai-message:not(.ngb-ai-message-user)>strong{color:var(--ngb-primary, #0d6efd)}.ngb-ai-workspace-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:1.25rem}.ngb-ai-brief,.ngb-ai-drafts{min-width:0}.ngb-ai-drafts{max-height:38rem;overflow:auto;padding:.25rem}.ngb-ai-section-label{display:block;margin-bottom:.8rem;color:var(--ngb-on-surface-variant, #6c757d);font-size:var(--ngb-font-size-sm, .875rem);font-weight:600}.ngb-ai-workspace .ngb-ai-result{background:var(--ngb-surface-container, #f8f9fa)}.ngb-ai-inline{border-inline-start:3px solid var(--ngb-primary, #0d6efd)}.ngb-ai-inline .ngb-ai-result{background:var(--ngb-selected-bg, #cfe2ff)}@media(max-width:640px){.ngb-ai-workspace-grid{grid-template-columns:minmax(0,1fr)}.ngb-ai-chat .ngb-ai-message,.ngb-ai-chat .ngb-ai-message-user{max-width:100%}}.ngb-ai-panel h2,.ngb-ai-panel h3{color:var(--ngb-on-surface, var(--bs-body-color, #212529))}.ngb-ai-drafts:focus-visible{outline:2px solid var(--ngb-primary, #0d6efd);outline-offset:2px}\n"], dependencies: [{ kind: "component", type: NgbPromptBoxComponent, selector: "ngb-prompt-box", inputs: ["value", "label", "placeholder", "submitLabel", "stopLabel", "suggestions", "disabled", "busy", "maxLength", "submitOnEnter", "clearOnSubmit"], outputs: ["valueChange", "promptSubmit", "stop"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15771
+ }
15772
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbAiPromptComponent, decorators: [{
15773
+ type: Component,
15774
+ args: [{ selector: "ngb-ai-prompt", standalone: true, imports: [NgbPromptBoxComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
15775
+ <section class="ngb-ai-panel ngb-ai-workspace" [attr.aria-label]="label()">
15776
+ <header class="ngb-ai-header"><h2 class="h6 mb-0">{{ label() }}</h2><span class="ngb-ai-muted small">{{ responses().length }} {{ responses().length === 1 ? 'draft' : 'drafts' }}</span></header>
15777
+ <div class="ngb-ai-workspace-grid">
15778
+ <div class="ngb-ai-brief"><span class="ngb-ai-section-label">01 · Brief</span>
15779
+ <ngb-prompt-box [label]="promptLabel()" submitLabel="Create draft" [clearOnSubmit]="false" [busy]="busy()" [disabled]="disabled()" [suggestions]="suggestions()" (promptSubmit)="promptSubmit.emit($event)" (stop)="stop.emit()" />
15780
+ @if (error()) { <p class="ngb-ai-error" role="alert">{{ error() }}</p> }
15781
+ </div>
15782
+ <div class="ngb-ai-drafts" role="region" aria-label="Generated drafts" tabindex="0" aria-live="polite" [attr.aria-busy]="busy()">
15783
+ <span class="ngb-ai-section-label">02 · Review drafts</span>
15784
+ @for (response of responses(); track response.id) {
15785
+ <article class="ngb-ai-result">
15786
+ <h3 class="h6">{{ response.prompt }}</h3><p class="ngb-ai-text">{{ response.text }}</p>
15787
+ <div class="ngb-ai-actions">
15788
+ <button type="button" class="btn btn-sm btn-primary" [disabled]="busy() || disabled()" (click)="responseApply.emit(response)">Use draft</button>
15789
+ <button type="button" class="btn btn-sm btn-outline-secondary" [disabled]="busy() || disabled()" (click)="regenerate.emit(response)">Try again</button>
15790
+ <button type="button" class="btn btn-sm btn-outline-secondary" [disabled]="busy() || disabled()" (click)="responseDismiss.emit(response.id)">Dismiss</button>
15791
+ </div>
15792
+ </article>
15793
+ } @empty { <p class="ngb-ai-muted mt-3">{{ emptyText() }}</p> }
15794
+ </div>
15795
+ </div>
15796
+ </section>
15797
+ `, styles: [":host{font-family:var(--ngb-font-family, inherit);color:var(--ngb-on-surface, inherit)}.btn{--bs-btn-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-btn-disabled-opacity: var(--ngb-disabled-opacity, .65)}.btn-primary{--bs-btn-bg: var(--ngb-primary, #0d6efd);--bs-btn-border-color: var(--ngb-primary, #0d6efd);--bs-btn-color: var(--ngb-on-primary, #fff);--bs-btn-hover-bg: var(--ngb-primary-hover, #0b5ed7);--bs-btn-hover-border-color: var(--ngb-primary-hover, #0a58ca);--bs-btn-hover-color: var(--ngb-on-primary, #fff);--bs-btn-active-bg: var(--ngb-primary-hover, #0a58ca);--bs-btn-active-border-color: var(--ngb-primary-hover, #0a53be);--bs-btn-active-color: var(--ngb-on-primary, #fff);--bs-btn-disabled-bg: var(--ngb-primary, #0d6efd);--bs-btn-disabled-border-color: var(--ngb-primary, #0d6efd);--bs-btn-disabled-color: var(--ngb-on-primary, #fff)}.btn-outline-secondary{--bs-btn-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-border-color: var(--ngb-border-color, #6c757d);--bs-btn-hover-bg: var(--ngb-hover-bg, #6c757d);--bs-btn-hover-color: var(--ngb-on-surface, #fff);--bs-btn-hover-border-color: var(--ngb-border-color, #6c757d);--bs-btn-active-bg: var(--ngb-selected-bg, #6c757d);--bs-btn-active-color: var(--ngb-on-surface, #fff);--bs-btn-active-border-color: var(--ngb-border-color, #6c757d);--bs-btn-disabled-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-disabled-border-color: var(--ngb-border-color, #6c757d)}.form-control,.form-select{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, var(--bs-border-radius, .375rem))}.form-control::placeholder{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.form-control:disabled,.form-select:disabled{background-color:var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));opacity:var(--ngb-disabled-opacity, 1)}.form-check-input{background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.form-check-input:checked,.form-check-input:indeterminate{background-color:var(--ngb-primary, #0d6efd);border-color:var(--ngb-primary, #0d6efd)}.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--ngb-primary, #86b7fe);box-shadow:0 0 0 .25rem var(--ngb-focus-ring, rgba(13, 110, 253, .25))}.btn:focus-visible,.page-link:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.dropdown-menu{--bs-dropdown-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-bg: var(--ngb-surface, var(--bs-body-bg, #fff));--bs-dropdown-border-color: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0,0,0,.175)));--bs-dropdown-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-dropdown-link-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--bs-dropdown-link-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-active-bg: var(--ngb-primary, #0d6efd);--bs-dropdown-link-active-color: var(--ngb-on-primary, #fff);--bs-dropdown-link-disabled-color: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #adb5bd));box-shadow:var(--ngb-elevation-2, none)}.form-select{background-image:var(--ngb-select-icon, var(--bs-form-select-bg-img))}.form-check-input:disabled{opacity:var(--ngb-disabled-opacity, .5)}.btn-sm{--bs-btn-border-radius: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}.form-control-sm,.form-select-sm{border-radius:var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}:host{display:block;min-width:0}.ngb-ai-panel{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background:var(--ngb-surface, var(--bs-body-bg, #fff));border:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-lg, .5rem);padding:var(--ngb-space-4, 1rem)}.ngb-ai-composer{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background:var(--ngb-surface, var(--bs-body-bg, #fff));border-radius:var(--ngb-radius-md, .375rem);padding:var(--ngb-space-3, .75rem)}.ngb-ai-header,.ngb-ai-composer-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.ngb-ai-composer-footer{margin-top:.75rem;margin-bottom:0}.ngb-ai-label{display:flex;flex-direction:column;gap:.4rem;width:100%;font-weight:500}textarea{resize:vertical;min-height:6rem}.ngb-ai-actions{display:flex;gap:var(--ngb-space-2, .5rem);flex-wrap:wrap;margin-top:.75rem}.ngb-ai-actions [aria-pressed=true]{background:var(--ngb-selected-bg, var(--bs-primary-bg-subtle, #cfe2ff));color:var(--ngb-on-surface, var(--bs-body-color, #212529))}.ngb-ai-muted{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.ngb-ai-transcript{max-height:28rem;overflow:auto;padding:.25rem;margin-bottom:1rem}.ngb-ai-transcript:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.ngb-ai-message{padding:.85rem;margin-bottom:.75rem;border-inline-start:3px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.ngb-ai-message-user{background:var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));border-color:var(--ngb-primary, var(--bs-primary, #0d6efd));border-radius:var(--ngb-radius-sm, .25rem)}.ngb-ai-text,.ngb-ai-context{white-space:pre-wrap;overflow-wrap:anywhere;margin:.5rem 0}.ngb-ai-error{color:var(--ngb-danger, var(--bs-danger, #dc3545));margin-block:.75rem}.ngb-ai-result{margin-top:1rem;padding:1rem;border:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, .375rem)}.ngb-ai-inline{margin-top:.75rem;box-shadow:var(--ngb-elevation-1, 0 1px 3px rgba(0, 0, 0, .0666666667))}.ngb-ai-context{border-inline-start:3px solid var(--ngb-border-color, #dee2e6);padding-inline-start:.75rem;max-height:12rem;overflow:auto}.ngb-ai-review{margin-block:1rem}.ngb-ai-field{display:grid;gap:.35rem;padding-block:.75rem;border-bottom:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.ngb-ai-check{display:flex;gap:.5rem;align-items:center}.ngb-ai-composer{border:1px solid var(--ngb-border-color, #dee2e6);box-shadow:var(--ngb-elevation-1, 0 1px 3px rgba(0, 0, 0, .0666666667))}.ngb-ai-chat .ngb-ai-transcript{min-height:16rem}.ngb-ai-chat .ngb-ai-message{border:0;max-width:90%;padding:.8rem 1rem}.ngb-ai-chat .ngb-ai-message-user{margin-inline-start:auto;max-width:80%;border-radius:var(--ngb-radius-lg, .5rem);background:var(--ngb-selected-bg, #cfe2ff)}.ngb-ai-chat .ngb-ai-message:not(.ngb-ai-message-user)>strong{color:var(--ngb-primary, #0d6efd)}.ngb-ai-workspace-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:1.25rem}.ngb-ai-brief,.ngb-ai-drafts{min-width:0}.ngb-ai-drafts{max-height:38rem;overflow:auto;padding:.25rem}.ngb-ai-section-label{display:block;margin-bottom:.8rem;color:var(--ngb-on-surface-variant, #6c757d);font-size:var(--ngb-font-size-sm, .875rem);font-weight:600}.ngb-ai-workspace .ngb-ai-result{background:var(--ngb-surface-container, #f8f9fa)}.ngb-ai-inline{border-inline-start:3px solid var(--ngb-primary, #0d6efd)}.ngb-ai-inline .ngb-ai-result{background:var(--ngb-selected-bg, #cfe2ff)}@media(max-width:640px){.ngb-ai-workspace-grid{grid-template-columns:minmax(0,1fr)}.ngb-ai-chat .ngb-ai-message,.ngb-ai-chat .ngb-ai-message-user{max-width:100%}}.ngb-ai-panel h2,.ngb-ai-panel h3{color:var(--ngb-on-surface, var(--bs-body-color, #212529))}.ngb-ai-drafts:focus-visible{outline:2px solid var(--ngb-primary, #0d6efd);outline-offset:2px}\n"] }]
15798
+ }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], promptLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "promptLabel", required: false }] }], emptyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyText", required: false }] }], responses: [{ type: i0.Input, args: [{ isSignal: true, alias: "responses", required: false }] }], suggestions: [{ type: i0.Input, args: [{ isSignal: true, alias: "suggestions", required: false }] }], busy: [{ type: i0.Input, args: [{ isSignal: true, alias: "busy", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], error: [{ type: i0.Input, args: [{ isSignal: true, alias: "error", required: false }] }], promptSubmit: [{ type: i0.Output, args: ["promptSubmit"] }], stop: [{ type: i0.Output, args: ["stop"] }], responseApply: [{ type: i0.Output, args: ["responseApply"] }], regenerate: [{ type: i0.Output, args: ["regenerate"] }], responseDismiss: [{ type: i0.Output, args: ["responseDismiss"] }] } });
15799
+
15800
+ let nextInlineId = 0;
15801
+ class NgbInlineAiPromptComponent {
15802
+ panelId = `ngb-ai-inline-${nextInlineId++}`;
15803
+ label = input("Assist with this text", /* @ts-ignore */
15804
+ ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
15805
+ context = input("", /* @ts-ignore */
15806
+ ...(ngDevMode ? [{ debugName: "context" }] : /* istanbul ignore next */ []));
15807
+ suggestions = input([
15808
+ "Make it shorter",
15809
+ "Make the next action clear",
15810
+ ], /* @ts-ignore */
15811
+ ...(ngDevMode ? [{ debugName: "suggestions" }] : /* istanbul ignore next */ []));
15812
+ response = input("", /* @ts-ignore */
15813
+ ...(ngDevMode ? [{ debugName: "response" }] : /* istanbul ignore next */ []));
15814
+ error = input("", /* @ts-ignore */
15815
+ ...(ngDevMode ? [{ debugName: "error" }] : /* istanbul ignore next */ []));
15816
+ busy = input(false, /* @ts-ignore */
15817
+ ...(ngDevMode ? [{ debugName: "busy" }] : /* istanbul ignore next */ []));
15818
+ disabled = input(false, /* @ts-ignore */
15819
+ ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
15820
+ promptSubmit = output();
15821
+ responseApply = output();
15822
+ stop = output();
15823
+ closed = output();
15824
+ open = signal(false, /* @ts-ignore */
15825
+ ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
15826
+ trigger = viewChild("trigger", /* @ts-ignore */
15827
+ ...(ngDevMode ? [{ debugName: "trigger" }] : /* istanbul ignore next */ []));
15828
+ toggle() {
15829
+ if (this.disabled())
15830
+ return;
15831
+ if (this.open())
15832
+ this.close();
15833
+ else
15834
+ this.open.set(true);
15835
+ }
15836
+ request(instruction) {
15837
+ if (!this.busy() && !this.disabled() && instruction.trim())
15838
+ this.promptSubmit.emit({
15839
+ instruction: instruction.trim(),
15840
+ context: this.context(),
15841
+ });
15842
+ }
15843
+ apply() {
15844
+ if (this.disabled() || this.busy() || !this.response().trim())
15845
+ return;
15846
+ this.responseApply.emit(this.response());
15847
+ this.close();
15848
+ }
15849
+ close(event) {
15850
+ event?.stopPropagation();
15851
+ if (this.busy())
15852
+ this.stop.emit();
15853
+ this.open.set(false);
15854
+ this.closed.emit();
15855
+ this.trigger()?.nativeElement.focus();
15856
+ }
15857
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbInlineAiPromptComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15858
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: NgbInlineAiPromptComponent, isStandalone: true, selector: "ngb-inline-ai-prompt", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, context: { classPropertyName: "context", publicName: "context", isSignal: true, isRequired: false, transformFunction: null }, suggestions: { classPropertyName: "suggestions", publicName: "suggestions", isSignal: true, isRequired: false, transformFunction: null }, response: { classPropertyName: "response", publicName: "response", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, busy: { classPropertyName: "busy", publicName: "busy", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { promptSubmit: "promptSubmit", responseApply: "responseApply", stop: "stop", closed: "closed" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true, isSignal: true }], ngImport: i0, template: `
15859
+ <button #trigger type="button" class="btn btn-sm btn-outline-secondary" [disabled]="disabled()" [attr.aria-expanded]="open()" [attr.aria-controls]="open() ? panelId : null" (click)="toggle()">{{ label() }}</button>
15860
+ @if (open()) {
15861
+ <section [id]="panelId" class="ngb-ai-panel ngb-ai-inline" [attr.aria-label]="label()" (keydown.escape)="close($event)">
15862
+ <div class="ngb-ai-header"><strong class="small">Selected context</strong><button type="button" class="btn btn-sm btn-outline-secondary" (click)="close()">Close</button></div>
15863
+ <blockquote class="ngb-ai-context">{{ context() }}</blockquote>
15864
+ <ngb-prompt-box label="How should this change?" submitLabel="Suggest edit" [suggestions]="suggestions()" [busy]="busy()" [disabled]="disabled()" (promptSubmit)="request($event)" (stop)="stop.emit()" />
15865
+ @if (error()) { <p class="ngb-ai-error" role="alert">{{ error() }}</p> }
15866
+ <span class="visually-hidden" role="status">{{ response() ? 'Proposed edit ready for review.' : '' }}</span>
15867
+ @if (response()) {
15868
+ <div class="ngb-ai-result"><strong class="small">Proposed edit</strong><p class="ngb-ai-text">{{ response() }}</p>
15869
+ <button type="button" class="btn btn-sm btn-primary" [disabled]="busy() || disabled()" (click)="apply()">Apply edit</button>
15870
+ </div>
15871
+ }
15872
+ </section>
15873
+ }
15874
+ `, isInline: true, styles: [":host{font-family:var(--ngb-font-family, inherit);color:var(--ngb-on-surface, inherit)}.btn{--bs-btn-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-btn-disabled-opacity: var(--ngb-disabled-opacity, .65)}.btn-primary{--bs-btn-bg: var(--ngb-primary, #0d6efd);--bs-btn-border-color: var(--ngb-primary, #0d6efd);--bs-btn-color: var(--ngb-on-primary, #fff);--bs-btn-hover-bg: var(--ngb-primary-hover, #0b5ed7);--bs-btn-hover-border-color: var(--ngb-primary-hover, #0a58ca);--bs-btn-hover-color: var(--ngb-on-primary, #fff);--bs-btn-active-bg: var(--ngb-primary-hover, #0a58ca);--bs-btn-active-border-color: var(--ngb-primary-hover, #0a53be);--bs-btn-active-color: var(--ngb-on-primary, #fff);--bs-btn-disabled-bg: var(--ngb-primary, #0d6efd);--bs-btn-disabled-border-color: var(--ngb-primary, #0d6efd);--bs-btn-disabled-color: var(--ngb-on-primary, #fff)}.btn-outline-secondary{--bs-btn-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-border-color: var(--ngb-border-color, #6c757d);--bs-btn-hover-bg: var(--ngb-hover-bg, #6c757d);--bs-btn-hover-color: var(--ngb-on-surface, #fff);--bs-btn-hover-border-color: var(--ngb-border-color, #6c757d);--bs-btn-active-bg: var(--ngb-selected-bg, #6c757d);--bs-btn-active-color: var(--ngb-on-surface, #fff);--bs-btn-active-border-color: var(--ngb-border-color, #6c757d);--bs-btn-disabled-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-disabled-border-color: var(--ngb-border-color, #6c757d)}.form-control,.form-select{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, var(--bs-border-radius, .375rem))}.form-control::placeholder{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.form-control:disabled,.form-select:disabled{background-color:var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));opacity:var(--ngb-disabled-opacity, 1)}.form-check-input{background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.form-check-input:checked,.form-check-input:indeterminate{background-color:var(--ngb-primary, #0d6efd);border-color:var(--ngb-primary, #0d6efd)}.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--ngb-primary, #86b7fe);box-shadow:0 0 0 .25rem var(--ngb-focus-ring, rgba(13, 110, 253, .25))}.btn:focus-visible,.page-link:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.dropdown-menu{--bs-dropdown-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-bg: var(--ngb-surface, var(--bs-body-bg, #fff));--bs-dropdown-border-color: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0,0,0,.175)));--bs-dropdown-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-dropdown-link-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--bs-dropdown-link-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-active-bg: var(--ngb-primary, #0d6efd);--bs-dropdown-link-active-color: var(--ngb-on-primary, #fff);--bs-dropdown-link-disabled-color: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #adb5bd));box-shadow:var(--ngb-elevation-2, none)}.form-select{background-image:var(--ngb-select-icon, var(--bs-form-select-bg-img))}.form-check-input:disabled{opacity:var(--ngb-disabled-opacity, .5)}.btn-sm{--bs-btn-border-radius: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}.form-control-sm,.form-select-sm{border-radius:var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}:host{display:block;min-width:0}.ngb-ai-panel{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background:var(--ngb-surface, var(--bs-body-bg, #fff));border:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-lg, .5rem);padding:var(--ngb-space-4, 1rem)}.ngb-ai-composer{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background:var(--ngb-surface, var(--bs-body-bg, #fff));border-radius:var(--ngb-radius-md, .375rem);padding:var(--ngb-space-3, .75rem)}.ngb-ai-header,.ngb-ai-composer-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.ngb-ai-composer-footer{margin-top:.75rem;margin-bottom:0}.ngb-ai-label{display:flex;flex-direction:column;gap:.4rem;width:100%;font-weight:500}textarea{resize:vertical;min-height:6rem}.ngb-ai-actions{display:flex;gap:var(--ngb-space-2, .5rem);flex-wrap:wrap;margin-top:.75rem}.ngb-ai-actions [aria-pressed=true]{background:var(--ngb-selected-bg, var(--bs-primary-bg-subtle, #cfe2ff));color:var(--ngb-on-surface, var(--bs-body-color, #212529))}.ngb-ai-muted{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.ngb-ai-transcript{max-height:28rem;overflow:auto;padding:.25rem;margin-bottom:1rem}.ngb-ai-transcript:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.ngb-ai-message{padding:.85rem;margin-bottom:.75rem;border-inline-start:3px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.ngb-ai-message-user{background:var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));border-color:var(--ngb-primary, var(--bs-primary, #0d6efd));border-radius:var(--ngb-radius-sm, .25rem)}.ngb-ai-text,.ngb-ai-context{white-space:pre-wrap;overflow-wrap:anywhere;margin:.5rem 0}.ngb-ai-error{color:var(--ngb-danger, var(--bs-danger, #dc3545));margin-block:.75rem}.ngb-ai-result{margin-top:1rem;padding:1rem;border:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, .375rem)}.ngb-ai-inline{margin-top:.75rem;box-shadow:var(--ngb-elevation-1, 0 1px 3px rgba(0, 0, 0, .0666666667))}.ngb-ai-context{border-inline-start:3px solid var(--ngb-border-color, #dee2e6);padding-inline-start:.75rem;max-height:12rem;overflow:auto}.ngb-ai-review{margin-block:1rem}.ngb-ai-field{display:grid;gap:.35rem;padding-block:.75rem;border-bottom:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.ngb-ai-check{display:flex;gap:.5rem;align-items:center}.ngb-ai-composer{border:1px solid var(--ngb-border-color, #dee2e6);box-shadow:var(--ngb-elevation-1, 0 1px 3px rgba(0, 0, 0, .0666666667))}.ngb-ai-chat .ngb-ai-transcript{min-height:16rem}.ngb-ai-chat .ngb-ai-message{border:0;max-width:90%;padding:.8rem 1rem}.ngb-ai-chat .ngb-ai-message-user{margin-inline-start:auto;max-width:80%;border-radius:var(--ngb-radius-lg, .5rem);background:var(--ngb-selected-bg, #cfe2ff)}.ngb-ai-chat .ngb-ai-message:not(.ngb-ai-message-user)>strong{color:var(--ngb-primary, #0d6efd)}.ngb-ai-workspace-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:1.25rem}.ngb-ai-brief,.ngb-ai-drafts{min-width:0}.ngb-ai-drafts{max-height:38rem;overflow:auto;padding:.25rem}.ngb-ai-section-label{display:block;margin-bottom:.8rem;color:var(--ngb-on-surface-variant, #6c757d);font-size:var(--ngb-font-size-sm, .875rem);font-weight:600}.ngb-ai-workspace .ngb-ai-result{background:var(--ngb-surface-container, #f8f9fa)}.ngb-ai-inline{border-inline-start:3px solid var(--ngb-primary, #0d6efd)}.ngb-ai-inline .ngb-ai-result{background:var(--ngb-selected-bg, #cfe2ff)}@media(max-width:640px){.ngb-ai-workspace-grid{grid-template-columns:minmax(0,1fr)}.ngb-ai-chat .ngb-ai-message,.ngb-ai-chat .ngb-ai-message-user{max-width:100%}}.ngb-ai-panel h2,.ngb-ai-panel h3{color:var(--ngb-on-surface, var(--bs-body-color, #212529))}.ngb-ai-drafts:focus-visible{outline:2px solid var(--ngb-primary, #0d6efd);outline-offset:2px}\n"], dependencies: [{ kind: "component", type: NgbPromptBoxComponent, selector: "ngb-prompt-box", inputs: ["value", "label", "placeholder", "submitLabel", "stopLabel", "suggestions", "disabled", "busy", "maxLength", "submitOnEnter", "clearOnSubmit"], outputs: ["valueChange", "promptSubmit", "stop"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15875
+ }
15876
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbInlineAiPromptComponent, decorators: [{
15877
+ type: Component,
15878
+ args: [{ selector: "ngb-inline-ai-prompt", standalone: true, imports: [NgbPromptBoxComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
15879
+ <button #trigger type="button" class="btn btn-sm btn-outline-secondary" [disabled]="disabled()" [attr.aria-expanded]="open()" [attr.aria-controls]="open() ? panelId : null" (click)="toggle()">{{ label() }}</button>
15880
+ @if (open()) {
15881
+ <section [id]="panelId" class="ngb-ai-panel ngb-ai-inline" [attr.aria-label]="label()" (keydown.escape)="close($event)">
15882
+ <div class="ngb-ai-header"><strong class="small">Selected context</strong><button type="button" class="btn btn-sm btn-outline-secondary" (click)="close()">Close</button></div>
15883
+ <blockquote class="ngb-ai-context">{{ context() }}</blockquote>
15884
+ <ngb-prompt-box label="How should this change?" submitLabel="Suggest edit" [suggestions]="suggestions()" [busy]="busy()" [disabled]="disabled()" (promptSubmit)="request($event)" (stop)="stop.emit()" />
15885
+ @if (error()) { <p class="ngb-ai-error" role="alert">{{ error() }}</p> }
15886
+ <span class="visually-hidden" role="status">{{ response() ? 'Proposed edit ready for review.' : '' }}</span>
15887
+ @if (response()) {
15888
+ <div class="ngb-ai-result"><strong class="small">Proposed edit</strong><p class="ngb-ai-text">{{ response() }}</p>
15889
+ <button type="button" class="btn btn-sm btn-primary" [disabled]="busy() || disabled()" (click)="apply()">Apply edit</button>
15890
+ </div>
15891
+ }
15892
+ </section>
15893
+ }
15894
+ `, styles: [":host{font-family:var(--ngb-font-family, inherit);color:var(--ngb-on-surface, inherit)}.btn{--bs-btn-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-btn-disabled-opacity: var(--ngb-disabled-opacity, .65)}.btn-primary{--bs-btn-bg: var(--ngb-primary, #0d6efd);--bs-btn-border-color: var(--ngb-primary, #0d6efd);--bs-btn-color: var(--ngb-on-primary, #fff);--bs-btn-hover-bg: var(--ngb-primary-hover, #0b5ed7);--bs-btn-hover-border-color: var(--ngb-primary-hover, #0a58ca);--bs-btn-hover-color: var(--ngb-on-primary, #fff);--bs-btn-active-bg: var(--ngb-primary-hover, #0a58ca);--bs-btn-active-border-color: var(--ngb-primary-hover, #0a53be);--bs-btn-active-color: var(--ngb-on-primary, #fff);--bs-btn-disabled-bg: var(--ngb-primary, #0d6efd);--bs-btn-disabled-border-color: var(--ngb-primary, #0d6efd);--bs-btn-disabled-color: var(--ngb-on-primary, #fff)}.btn-outline-secondary{--bs-btn-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-border-color: var(--ngb-border-color, #6c757d);--bs-btn-hover-bg: var(--ngb-hover-bg, #6c757d);--bs-btn-hover-color: var(--ngb-on-surface, #fff);--bs-btn-hover-border-color: var(--ngb-border-color, #6c757d);--bs-btn-active-bg: var(--ngb-selected-bg, #6c757d);--bs-btn-active-color: var(--ngb-on-surface, #fff);--bs-btn-active-border-color: var(--ngb-border-color, #6c757d);--bs-btn-disabled-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-disabled-border-color: var(--ngb-border-color, #6c757d)}.form-control,.form-select{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, var(--bs-border-radius, .375rem))}.form-control::placeholder{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.form-control:disabled,.form-select:disabled{background-color:var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));opacity:var(--ngb-disabled-opacity, 1)}.form-check-input{background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.form-check-input:checked,.form-check-input:indeterminate{background-color:var(--ngb-primary, #0d6efd);border-color:var(--ngb-primary, #0d6efd)}.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--ngb-primary, #86b7fe);box-shadow:0 0 0 .25rem var(--ngb-focus-ring, rgba(13, 110, 253, .25))}.btn:focus-visible,.page-link:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.dropdown-menu{--bs-dropdown-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-bg: var(--ngb-surface, var(--bs-body-bg, #fff));--bs-dropdown-border-color: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0,0,0,.175)));--bs-dropdown-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-dropdown-link-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--bs-dropdown-link-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-active-bg: var(--ngb-primary, #0d6efd);--bs-dropdown-link-active-color: var(--ngb-on-primary, #fff);--bs-dropdown-link-disabled-color: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #adb5bd));box-shadow:var(--ngb-elevation-2, none)}.form-select{background-image:var(--ngb-select-icon, var(--bs-form-select-bg-img))}.form-check-input:disabled{opacity:var(--ngb-disabled-opacity, .5)}.btn-sm{--bs-btn-border-radius: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}.form-control-sm,.form-select-sm{border-radius:var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}:host{display:block;min-width:0}.ngb-ai-panel{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background:var(--ngb-surface, var(--bs-body-bg, #fff));border:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-lg, .5rem);padding:var(--ngb-space-4, 1rem)}.ngb-ai-composer{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background:var(--ngb-surface, var(--bs-body-bg, #fff));border-radius:var(--ngb-radius-md, .375rem);padding:var(--ngb-space-3, .75rem)}.ngb-ai-header,.ngb-ai-composer-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.ngb-ai-composer-footer{margin-top:.75rem;margin-bottom:0}.ngb-ai-label{display:flex;flex-direction:column;gap:.4rem;width:100%;font-weight:500}textarea{resize:vertical;min-height:6rem}.ngb-ai-actions{display:flex;gap:var(--ngb-space-2, .5rem);flex-wrap:wrap;margin-top:.75rem}.ngb-ai-actions [aria-pressed=true]{background:var(--ngb-selected-bg, var(--bs-primary-bg-subtle, #cfe2ff));color:var(--ngb-on-surface, var(--bs-body-color, #212529))}.ngb-ai-muted{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.ngb-ai-transcript{max-height:28rem;overflow:auto;padding:.25rem;margin-bottom:1rem}.ngb-ai-transcript:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.ngb-ai-message{padding:.85rem;margin-bottom:.75rem;border-inline-start:3px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.ngb-ai-message-user{background:var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));border-color:var(--ngb-primary, var(--bs-primary, #0d6efd));border-radius:var(--ngb-radius-sm, .25rem)}.ngb-ai-text,.ngb-ai-context{white-space:pre-wrap;overflow-wrap:anywhere;margin:.5rem 0}.ngb-ai-error{color:var(--ngb-danger, var(--bs-danger, #dc3545));margin-block:.75rem}.ngb-ai-result{margin-top:1rem;padding:1rem;border:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, .375rem)}.ngb-ai-inline{margin-top:.75rem;box-shadow:var(--ngb-elevation-1, 0 1px 3px rgba(0, 0, 0, .0666666667))}.ngb-ai-context{border-inline-start:3px solid var(--ngb-border-color, #dee2e6);padding-inline-start:.75rem;max-height:12rem;overflow:auto}.ngb-ai-review{margin-block:1rem}.ngb-ai-field{display:grid;gap:.35rem;padding-block:.75rem;border-bottom:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.ngb-ai-check{display:flex;gap:.5rem;align-items:center}.ngb-ai-composer{border:1px solid var(--ngb-border-color, #dee2e6);box-shadow:var(--ngb-elevation-1, 0 1px 3px rgba(0, 0, 0, .0666666667))}.ngb-ai-chat .ngb-ai-transcript{min-height:16rem}.ngb-ai-chat .ngb-ai-message{border:0;max-width:90%;padding:.8rem 1rem}.ngb-ai-chat .ngb-ai-message-user{margin-inline-start:auto;max-width:80%;border-radius:var(--ngb-radius-lg, .5rem);background:var(--ngb-selected-bg, #cfe2ff)}.ngb-ai-chat .ngb-ai-message:not(.ngb-ai-message-user)>strong{color:var(--ngb-primary, #0d6efd)}.ngb-ai-workspace-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:1.25rem}.ngb-ai-brief,.ngb-ai-drafts{min-width:0}.ngb-ai-drafts{max-height:38rem;overflow:auto;padding:.25rem}.ngb-ai-section-label{display:block;margin-bottom:.8rem;color:var(--ngb-on-surface-variant, #6c757d);font-size:var(--ngb-font-size-sm, .875rem);font-weight:600}.ngb-ai-workspace .ngb-ai-result{background:var(--ngb-surface-container, #f8f9fa)}.ngb-ai-inline{border-inline-start:3px solid var(--ngb-primary, #0d6efd)}.ngb-ai-inline .ngb-ai-result{background:var(--ngb-selected-bg, #cfe2ff)}@media(max-width:640px){.ngb-ai-workspace-grid{grid-template-columns:minmax(0,1fr)}.ngb-ai-chat .ngb-ai-message,.ngb-ai-chat .ngb-ai-message-user{max-width:100%}}.ngb-ai-panel h2,.ngb-ai-panel h3{color:var(--ngb-on-surface, var(--bs-body-color, #212529))}.ngb-ai-drafts:focus-visible{outline:2px solid var(--ngb-primary, #0d6efd);outline-offset:2px}\n"] }]
15895
+ }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], context: [{ type: i0.Input, args: [{ isSignal: true, alias: "context", required: false }] }], suggestions: [{ type: i0.Input, args: [{ isSignal: true, alias: "suggestions", required: false }] }], response: [{ type: i0.Input, args: [{ isSignal: true, alias: "response", required: false }] }], error: [{ type: i0.Input, args: [{ isSignal: true, alias: "error", required: false }] }], busy: [{ type: i0.Input, args: [{ isSignal: true, alias: "busy", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], promptSubmit: [{ type: i0.Output, args: ["promptSubmit"] }], responseApply: [{ type: i0.Output, args: ["responseApply"] }], stop: [{ type: i0.Output, args: ["stop"] }], closed: [{ type: i0.Output, args: ["closed"] }], trigger: [{ type: i0.ViewChild, args: ["trigger", { isSignal: true }] }] } });
15896
+
15897
+ class NgbSmartPasteComponent {
15898
+ label = input("Fill from a note", /* @ts-ignore */
15899
+ ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
15900
+ emptyText = input("Paste a note, then review the proposed field values here.", /* @ts-ignore */
15901
+ ...(ngDevMode ? [{ debugName: "emptyText" }] : /* istanbul ignore next */ []));
15902
+ fields = input([], /* @ts-ignore */
15903
+ ...(ngDevMode ? [{ debugName: "fields" }] : /* istanbul ignore next */ []));
15904
+ suggestions = input([], /* @ts-ignore */
15905
+ ...(ngDevMode ? [{ debugName: "suggestions" }] : /* istanbul ignore next */ []));
15906
+ disabled = input(false, /* @ts-ignore */
15907
+ ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
15908
+ busy = input(false, /* @ts-ignore */
15909
+ ...(ngDevMode ? [{ debugName: "busy" }] : /* istanbul ignore next */ []));
15910
+ error = input("", /* @ts-ignore */
15911
+ ...(ngDevMode ? [{ debugName: "error" }] : /* istanbul ignore next */ []));
15912
+ mappingRequest = output();
15913
+ valuesApply = output();
15914
+ stop = output();
15915
+ source = model("", /* @ts-ignore */
15916
+ ...(ngDevMode ? [{ debugName: "source" }] : /* istanbul ignore next */ []));
15917
+ excluded = signal(new Set(), /* @ts-ignore */
15918
+ ...(ngDevMode ? [{ debugName: "excluded" }] : /* istanbul ignore next */ []));
15919
+ edits = signal(new Map(), /* @ts-ignore */
15920
+ ...(ngDevMode ? [{ debugName: "edits" }] : /* istanbul ignore next */ []));
15921
+ candidates = computed(() => {
15922
+ const seen = new Set();
15923
+ const result = [];
15924
+ for (const field of this.fields()) {
15925
+ if (seen.has(field.key))
15926
+ continue;
15927
+ seen.add(field.key);
15928
+ const candidate = this.suggestions().find((s) => s.field === field.key && typeof s.value === "string");
15929
+ if (candidate)
15930
+ result.push({ field, value: candidate.value });
15931
+ }
15932
+ return result;
15933
+ }, /* @ts-ignore */
15934
+ ...(ngDevMode ? [{ debugName: "candidates" }] : /* istanbul ignore next */ []));
15935
+ selected = computed(() => this.candidates()
15936
+ .filter((c) => !this.excluded().has(c.field.key))
15937
+ .map((c) => ({
15938
+ field: c.field.key,
15939
+ value: this.edits().get(c.field.key) ?? c.value,
15940
+ })), /* @ts-ignore */
15941
+ ...(ngDevMode ? [{ debugName: "selected" }] : /* istanbul ignore next */ []));
15942
+ constructor() {
15943
+ effect(() => {
15944
+ this.suggestions();
15945
+ this.fields();
15946
+ this.excluded.set(new Set());
15947
+ this.edits.set(new Map());
15948
+ });
15949
+ }
15950
+ request(text) {
15951
+ if (this.disabled() || this.busy() || !text.trim() || !this.fields().length)
15952
+ return;
15953
+ this.mappingRequest.emit({
15954
+ text: text.trim(),
15955
+ fields: this.fields().map((field) => ({ ...field })),
15956
+ });
15957
+ }
15958
+ toggle(key) {
15959
+ this.excluded.update((current) => {
15960
+ const next = new Set(current);
15961
+ next.has(key) ? next.delete(key) : next.add(key);
15962
+ return next;
15963
+ });
15964
+ }
15965
+ edit(key, event) {
15966
+ this.edits.update((current) => new Map(current).set(key, event.target.value));
15967
+ }
15968
+ apply() {
15969
+ if (!this.disabled() && !this.busy() && this.selected().length)
15970
+ this.valuesApply.emit(this.selected());
15971
+ }
15972
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbSmartPasteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15973
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: NgbSmartPasteComponent, isStandalone: true, selector: "ngb-smart-paste", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, fields: { classPropertyName: "fields", publicName: "fields", isSignal: true, isRequired: false, transformFunction: null }, suggestions: { classPropertyName: "suggestions", publicName: "suggestions", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, busy: { classPropertyName: "busy", publicName: "busy", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, source: { classPropertyName: "source", publicName: "source", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { mappingRequest: "mappingRequest", valuesApply: "valuesApply", stop: "stop", source: "sourceChange" }, ngImport: i0, template: `
15974
+ <section class="ngb-ai-panel" [attr.aria-label]="label()">
15975
+ <header class="ngb-ai-header"><h2 class="h6 mb-0">{{ label() }}</h2><span class="ngb-ai-muted small">Review before applying</span></header>
15976
+ <ngb-prompt-box label="Paste source text" submitLabel="Find field values" [submitOnEnter]="false" [clearOnSubmit]="false" [value]="source()" (valueChange)="source.set($event)" [busy]="busy()" [disabled]="disabled() || !fields().length" (promptSubmit)="request($event)" (stop)="stop.emit()" />
15977
+ @if (error()) { <p class="ngb-ai-error" role="alert">{{ error() }}</p> }
15978
+ <span class="visually-hidden" role="status" aria-live="polite">{{ candidates().length ? candidates().length + ' proposed fields ready for review.' : '' }}</span>
15979
+ @if (candidates().length) {
15980
+ <fieldset class="ngb-ai-review" [disabled]="busy() || disabled()">
15981
+ <legend class="h6">Choose values to apply</legend>
15982
+ @for (candidate of candidates(); track candidate.field.key) {
15983
+ <div class="ngb-ai-field">
15984
+ <label class="ngb-ai-check"><input type="checkbox" class="form-check-input" [checked]="!excluded().has(candidate.field.key)" (change)="toggle(candidate.field.key)" /> {{ candidate.field.label }}</label>
15985
+ <span class="ngb-ai-muted small">Current: {{ candidate.field.value || 'Empty' }}</span>
15986
+ <label class="ngb-ai-label small">Proposed {{ candidate.field.label }}
15987
+ <input type="text" class="form-control form-control-sm" [value]="edits().get(candidate.field.key) ?? candidate.value" (input)="edit(candidate.field.key, $event)" />
15988
+ </label>
15989
+ </div>
15990
+ }
15991
+ </fieldset>
15992
+ <button type="button" class="btn btn-sm btn-primary" [disabled]="busy() || disabled() || !selected().length" (click)="apply()">Apply {{ selected().length }} values</button>
15993
+ } @else { <p class="ngb-ai-muted mt-3">{{ emptyText() }}</p> }
15994
+ </section>
15995
+ `, isInline: true, styles: [":host{font-family:var(--ngb-font-family, inherit);color:var(--ngb-on-surface, inherit)}.btn{--bs-btn-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-btn-disabled-opacity: var(--ngb-disabled-opacity, .65)}.btn-primary{--bs-btn-bg: var(--ngb-primary, #0d6efd);--bs-btn-border-color: var(--ngb-primary, #0d6efd);--bs-btn-color: var(--ngb-on-primary, #fff);--bs-btn-hover-bg: var(--ngb-primary-hover, #0b5ed7);--bs-btn-hover-border-color: var(--ngb-primary-hover, #0a58ca);--bs-btn-hover-color: var(--ngb-on-primary, #fff);--bs-btn-active-bg: var(--ngb-primary-hover, #0a58ca);--bs-btn-active-border-color: var(--ngb-primary-hover, #0a53be);--bs-btn-active-color: var(--ngb-on-primary, #fff);--bs-btn-disabled-bg: var(--ngb-primary, #0d6efd);--bs-btn-disabled-border-color: var(--ngb-primary, #0d6efd);--bs-btn-disabled-color: var(--ngb-on-primary, #fff)}.btn-outline-secondary{--bs-btn-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-border-color: var(--ngb-border-color, #6c757d);--bs-btn-hover-bg: var(--ngb-hover-bg, #6c757d);--bs-btn-hover-color: var(--ngb-on-surface, #fff);--bs-btn-hover-border-color: var(--ngb-border-color, #6c757d);--bs-btn-active-bg: var(--ngb-selected-bg, #6c757d);--bs-btn-active-color: var(--ngb-on-surface, #fff);--bs-btn-active-border-color: var(--ngb-border-color, #6c757d);--bs-btn-disabled-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-disabled-border-color: var(--ngb-border-color, #6c757d)}.form-control,.form-select{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, var(--bs-border-radius, .375rem))}.form-control::placeholder{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.form-control:disabled,.form-select:disabled{background-color:var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));opacity:var(--ngb-disabled-opacity, 1)}.form-check-input{background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.form-check-input:checked,.form-check-input:indeterminate{background-color:var(--ngb-primary, #0d6efd);border-color:var(--ngb-primary, #0d6efd)}.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--ngb-primary, #86b7fe);box-shadow:0 0 0 .25rem var(--ngb-focus-ring, rgba(13, 110, 253, .25))}.btn:focus-visible,.page-link:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.dropdown-menu{--bs-dropdown-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-bg: var(--ngb-surface, var(--bs-body-bg, #fff));--bs-dropdown-border-color: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0,0,0,.175)));--bs-dropdown-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-dropdown-link-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--bs-dropdown-link-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-active-bg: var(--ngb-primary, #0d6efd);--bs-dropdown-link-active-color: var(--ngb-on-primary, #fff);--bs-dropdown-link-disabled-color: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #adb5bd));box-shadow:var(--ngb-elevation-2, none)}.form-select{background-image:var(--ngb-select-icon, var(--bs-form-select-bg-img))}.form-check-input:disabled{opacity:var(--ngb-disabled-opacity, .5)}.btn-sm{--bs-btn-border-radius: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}.form-control-sm,.form-select-sm{border-radius:var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}:host{display:block;min-width:0}.ngb-ai-panel{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background:var(--ngb-surface, var(--bs-body-bg, #fff));border:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-lg, .5rem);padding:var(--ngb-space-4, 1rem)}.ngb-ai-composer{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background:var(--ngb-surface, var(--bs-body-bg, #fff));border-radius:var(--ngb-radius-md, .375rem);padding:var(--ngb-space-3, .75rem)}.ngb-ai-header,.ngb-ai-composer-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.ngb-ai-composer-footer{margin-top:.75rem;margin-bottom:0}.ngb-ai-label{display:flex;flex-direction:column;gap:.4rem;width:100%;font-weight:500}textarea{resize:vertical;min-height:6rem}.ngb-ai-actions{display:flex;gap:var(--ngb-space-2, .5rem);flex-wrap:wrap;margin-top:.75rem}.ngb-ai-actions [aria-pressed=true]{background:var(--ngb-selected-bg, var(--bs-primary-bg-subtle, #cfe2ff));color:var(--ngb-on-surface, var(--bs-body-color, #212529))}.ngb-ai-muted{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.ngb-ai-transcript{max-height:28rem;overflow:auto;padding:.25rem;margin-bottom:1rem}.ngb-ai-transcript:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.ngb-ai-message{padding:.85rem;margin-bottom:.75rem;border-inline-start:3px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.ngb-ai-message-user{background:var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));border-color:var(--ngb-primary, var(--bs-primary, #0d6efd));border-radius:var(--ngb-radius-sm, .25rem)}.ngb-ai-text,.ngb-ai-context{white-space:pre-wrap;overflow-wrap:anywhere;margin:.5rem 0}.ngb-ai-error{color:var(--ngb-danger, var(--bs-danger, #dc3545));margin-block:.75rem}.ngb-ai-result{margin-top:1rem;padding:1rem;border:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, .375rem)}.ngb-ai-inline{margin-top:.75rem;box-shadow:var(--ngb-elevation-1, 0 1px 3px rgba(0, 0, 0, .0666666667))}.ngb-ai-context{border-inline-start:3px solid var(--ngb-border-color, #dee2e6);padding-inline-start:.75rem;max-height:12rem;overflow:auto}.ngb-ai-review{margin-block:1rem}.ngb-ai-field{display:grid;gap:.35rem;padding-block:.75rem;border-bottom:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.ngb-ai-check{display:flex;gap:.5rem;align-items:center}.ngb-ai-composer{border:1px solid var(--ngb-border-color, #dee2e6);box-shadow:var(--ngb-elevation-1, 0 1px 3px rgba(0, 0, 0, .0666666667))}.ngb-ai-chat .ngb-ai-transcript{min-height:16rem}.ngb-ai-chat .ngb-ai-message{border:0;max-width:90%;padding:.8rem 1rem}.ngb-ai-chat .ngb-ai-message-user{margin-inline-start:auto;max-width:80%;border-radius:var(--ngb-radius-lg, .5rem);background:var(--ngb-selected-bg, #cfe2ff)}.ngb-ai-chat .ngb-ai-message:not(.ngb-ai-message-user)>strong{color:var(--ngb-primary, #0d6efd)}.ngb-ai-workspace-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:1.25rem}.ngb-ai-brief,.ngb-ai-drafts{min-width:0}.ngb-ai-drafts{max-height:38rem;overflow:auto;padding:.25rem}.ngb-ai-section-label{display:block;margin-bottom:.8rem;color:var(--ngb-on-surface-variant, #6c757d);font-size:var(--ngb-font-size-sm, .875rem);font-weight:600}.ngb-ai-workspace .ngb-ai-result{background:var(--ngb-surface-container, #f8f9fa)}.ngb-ai-inline{border-inline-start:3px solid var(--ngb-primary, #0d6efd)}.ngb-ai-inline .ngb-ai-result{background:var(--ngb-selected-bg, #cfe2ff)}@media(max-width:640px){.ngb-ai-workspace-grid{grid-template-columns:minmax(0,1fr)}.ngb-ai-chat .ngb-ai-message,.ngb-ai-chat .ngb-ai-message-user{max-width:100%}}.ngb-ai-panel h2,.ngb-ai-panel h3{color:var(--ngb-on-surface, var(--bs-body-color, #212529))}.ngb-ai-drafts:focus-visible{outline:2px solid var(--ngb-primary, #0d6efd);outline-offset:2px}\n"], dependencies: [{ kind: "component", type: NgbPromptBoxComponent, selector: "ngb-prompt-box", inputs: ["value", "label", "placeholder", "submitLabel", "stopLabel", "suggestions", "disabled", "busy", "maxLength", "submitOnEnter", "clearOnSubmit"], outputs: ["valueChange", "promptSubmit", "stop"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15996
+ }
15997
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbSmartPasteComponent, decorators: [{
15998
+ type: Component,
15999
+ args: [{ selector: "ngb-smart-paste", standalone: true, imports: [NgbPromptBoxComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
16000
+ <section class="ngb-ai-panel" [attr.aria-label]="label()">
16001
+ <header class="ngb-ai-header"><h2 class="h6 mb-0">{{ label() }}</h2><span class="ngb-ai-muted small">Review before applying</span></header>
16002
+ <ngb-prompt-box label="Paste source text" submitLabel="Find field values" [submitOnEnter]="false" [clearOnSubmit]="false" [value]="source()" (valueChange)="source.set($event)" [busy]="busy()" [disabled]="disabled() || !fields().length" (promptSubmit)="request($event)" (stop)="stop.emit()" />
16003
+ @if (error()) { <p class="ngb-ai-error" role="alert">{{ error() }}</p> }
16004
+ <span class="visually-hidden" role="status" aria-live="polite">{{ candidates().length ? candidates().length + ' proposed fields ready for review.' : '' }}</span>
16005
+ @if (candidates().length) {
16006
+ <fieldset class="ngb-ai-review" [disabled]="busy() || disabled()">
16007
+ <legend class="h6">Choose values to apply</legend>
16008
+ @for (candidate of candidates(); track candidate.field.key) {
16009
+ <div class="ngb-ai-field">
16010
+ <label class="ngb-ai-check"><input type="checkbox" class="form-check-input" [checked]="!excluded().has(candidate.field.key)" (change)="toggle(candidate.field.key)" /> {{ candidate.field.label }}</label>
16011
+ <span class="ngb-ai-muted small">Current: {{ candidate.field.value || 'Empty' }}</span>
16012
+ <label class="ngb-ai-label small">Proposed {{ candidate.field.label }}
16013
+ <input type="text" class="form-control form-control-sm" [value]="edits().get(candidate.field.key) ?? candidate.value" (input)="edit(candidate.field.key, $event)" />
16014
+ </label>
16015
+ </div>
16016
+ }
16017
+ </fieldset>
16018
+ <button type="button" class="btn btn-sm btn-primary" [disabled]="busy() || disabled() || !selected().length" (click)="apply()">Apply {{ selected().length }} values</button>
16019
+ } @else { <p class="ngb-ai-muted mt-3">{{ emptyText() }}</p> }
16020
+ </section>
16021
+ `, styles: [":host{font-family:var(--ngb-font-family, inherit);color:var(--ngb-on-surface, inherit)}.btn{--bs-btn-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-btn-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-btn-disabled-opacity: var(--ngb-disabled-opacity, .65)}.btn-primary{--bs-btn-bg: var(--ngb-primary, #0d6efd);--bs-btn-border-color: var(--ngb-primary, #0d6efd);--bs-btn-color: var(--ngb-on-primary, #fff);--bs-btn-hover-bg: var(--ngb-primary-hover, #0b5ed7);--bs-btn-hover-border-color: var(--ngb-primary-hover, #0a58ca);--bs-btn-hover-color: var(--ngb-on-primary, #fff);--bs-btn-active-bg: var(--ngb-primary-hover, #0a58ca);--bs-btn-active-border-color: var(--ngb-primary-hover, #0a53be);--bs-btn-active-color: var(--ngb-on-primary, #fff);--bs-btn-disabled-bg: var(--ngb-primary, #0d6efd);--bs-btn-disabled-border-color: var(--ngb-primary, #0d6efd);--bs-btn-disabled-color: var(--ngb-on-primary, #fff)}.btn-outline-secondary{--bs-btn-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-border-color: var(--ngb-border-color, #6c757d);--bs-btn-hover-bg: var(--ngb-hover-bg, #6c757d);--bs-btn-hover-color: var(--ngb-on-surface, #fff);--bs-btn-hover-border-color: var(--ngb-border-color, #6c757d);--bs-btn-active-bg: var(--ngb-selected-bg, #6c757d);--bs-btn-active-color: var(--ngb-on-surface, #fff);--bs-btn-active-border-color: var(--ngb-border-color, #6c757d);--bs-btn-disabled-color: var(--ngb-on-surface-variant, #6c757d);--bs-btn-disabled-border-color: var(--ngb-border-color, #6c757d)}.form-control,.form-select{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, var(--bs-border-radius, .375rem))}.form-control::placeholder{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.form-control:disabled,.form-select:disabled{background-color:var(--ngb-surface-variant, var(--bs-secondary-bg, #e9ecef));opacity:var(--ngb-disabled-opacity, 1)}.form-check-input{background-color:var(--ngb-surface, var(--bs-body-bg, #fff));border-color:var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.form-check-input:checked,.form-check-input:indeterminate{background-color:var(--ngb-primary, #0d6efd);border-color:var(--ngb-primary, #0d6efd)}.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--ngb-primary, #86b7fe);box-shadow:0 0 0 .25rem var(--ngb-focus-ring, rgba(13, 110, 253, .25))}.btn:focus-visible,.page-link:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.dropdown-menu{--bs-dropdown-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-bg: var(--ngb-surface, var(--bs-body-bg, #fff));--bs-dropdown-border-color: var(--ngb-border-color, var(--bs-border-color-translucent, rgba(0,0,0,.175)));--bs-dropdown-border-radius: var(--ngb-radius-md, var(--bs-border-radius, .375rem));--bs-dropdown-link-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-hover-bg: var(--ngb-hover-bg, var(--bs-tertiary-bg, #f8f9fa));--bs-dropdown-link-hover-color: var(--ngb-on-surface, var(--bs-body-color, #212529));--bs-dropdown-link-active-bg: var(--ngb-primary, #0d6efd);--bs-dropdown-link-active-color: var(--ngb-on-primary, #fff);--bs-dropdown-link-disabled-color: var(--ngb-on-surface-variant, var(--bs-tertiary-color, #adb5bd));box-shadow:var(--ngb-elevation-2, none)}.form-select{background-image:var(--ngb-select-icon, var(--bs-form-select-bg-img))}.form-check-input:disabled{opacity:var(--ngb-disabled-opacity, .5)}.btn-sm{--bs-btn-border-radius: var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}.form-control-sm,.form-select-sm{border-radius:var(--ngb-radius-sm, var(--bs-border-radius-sm, .25rem))}:host{display:block;min-width:0}.ngb-ai-panel{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background:var(--ngb-surface, var(--bs-body-bg, #fff));border:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-lg, .5rem);padding:var(--ngb-space-4, 1rem)}.ngb-ai-composer{color:var(--ngb-on-surface, var(--bs-body-color, #212529));background:var(--ngb-surface, var(--bs-body-bg, #fff));border-radius:var(--ngb-radius-md, .375rem);padding:var(--ngb-space-3, .75rem)}.ngb-ai-header,.ngb-ai-composer-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.ngb-ai-composer-footer{margin-top:.75rem;margin-bottom:0}.ngb-ai-label{display:flex;flex-direction:column;gap:.4rem;width:100%;font-weight:500}textarea{resize:vertical;min-height:6rem}.ngb-ai-actions{display:flex;gap:var(--ngb-space-2, .5rem);flex-wrap:wrap;margin-top:.75rem}.ngb-ai-actions [aria-pressed=true]{background:var(--ngb-selected-bg, var(--bs-primary-bg-subtle, #cfe2ff));color:var(--ngb-on-surface, var(--bs-body-color, #212529))}.ngb-ai-muted{color:var(--ngb-on-surface-variant, var(--bs-secondary-color, #6c757d))}.ngb-ai-transcript{max-height:28rem;overflow:auto;padding:.25rem;margin-bottom:1rem}.ngb-ai-transcript:focus-visible{outline:2px solid var(--ngb-focus-ring, #86b7fe);outline-offset:2px}.ngb-ai-message{padding:.85rem;margin-bottom:.75rem;border-inline-start:3px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.ngb-ai-message-user{background:var(--ngb-surface-container, var(--bs-tertiary-bg, #f8f9fa));border-color:var(--ngb-primary, var(--bs-primary, #0d6efd));border-radius:var(--ngb-radius-sm, .25rem)}.ngb-ai-text,.ngb-ai-context{white-space:pre-wrap;overflow-wrap:anywhere;margin:.5rem 0}.ngb-ai-error{color:var(--ngb-danger, var(--bs-danger, #dc3545));margin-block:.75rem}.ngb-ai-result{margin-top:1rem;padding:1rem;border:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6));border-radius:var(--ngb-radius-md, .375rem)}.ngb-ai-inline{margin-top:.75rem;box-shadow:var(--ngb-elevation-1, 0 1px 3px rgba(0, 0, 0, .0666666667))}.ngb-ai-context{border-inline-start:3px solid var(--ngb-border-color, #dee2e6);padding-inline-start:.75rem;max-height:12rem;overflow:auto}.ngb-ai-review{margin-block:1rem}.ngb-ai-field{display:grid;gap:.35rem;padding-block:.75rem;border-bottom:1px solid var(--ngb-border-color, var(--bs-border-color, #dee2e6))}.ngb-ai-check{display:flex;gap:.5rem;align-items:center}.ngb-ai-composer{border:1px solid var(--ngb-border-color, #dee2e6);box-shadow:var(--ngb-elevation-1, 0 1px 3px rgba(0, 0, 0, .0666666667))}.ngb-ai-chat .ngb-ai-transcript{min-height:16rem}.ngb-ai-chat .ngb-ai-message{border:0;max-width:90%;padding:.8rem 1rem}.ngb-ai-chat .ngb-ai-message-user{margin-inline-start:auto;max-width:80%;border-radius:var(--ngb-radius-lg, .5rem);background:var(--ngb-selected-bg, #cfe2ff)}.ngb-ai-chat .ngb-ai-message:not(.ngb-ai-message-user)>strong{color:var(--ngb-primary, #0d6efd)}.ngb-ai-workspace-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:1.25rem}.ngb-ai-brief,.ngb-ai-drafts{min-width:0}.ngb-ai-drafts{max-height:38rem;overflow:auto;padding:.25rem}.ngb-ai-section-label{display:block;margin-bottom:.8rem;color:var(--ngb-on-surface-variant, #6c757d);font-size:var(--ngb-font-size-sm, .875rem);font-weight:600}.ngb-ai-workspace .ngb-ai-result{background:var(--ngb-surface-container, #f8f9fa)}.ngb-ai-inline{border-inline-start:3px solid var(--ngb-primary, #0d6efd)}.ngb-ai-inline .ngb-ai-result{background:var(--ngb-selected-bg, #cfe2ff)}@media(max-width:640px){.ngb-ai-workspace-grid{grid-template-columns:minmax(0,1fr)}.ngb-ai-chat .ngb-ai-message,.ngb-ai-chat .ngb-ai-message-user{max-width:100%}}.ngb-ai-panel h2,.ngb-ai-panel h3{color:var(--ngb-on-surface, var(--bs-body-color, #212529))}.ngb-ai-drafts:focus-visible{outline:2px solid var(--ngb-primary, #0d6efd);outline-offset:2px}\n"] }]
16022
+ }], ctorParameters: () => [], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], emptyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyText", required: false }] }], fields: [{ type: i0.Input, args: [{ isSignal: true, alias: "fields", required: false }] }], suggestions: [{ type: i0.Input, args: [{ isSignal: true, alias: "suggestions", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], busy: [{ type: i0.Input, args: [{ isSignal: true, alias: "busy", required: false }] }], error: [{ type: i0.Input, args: [{ isSignal: true, alias: "error", required: false }] }], mappingRequest: [{ type: i0.Output, args: ["mappingRequest"] }], valuesApply: [{ type: i0.Output, args: ["valuesApply"] }], stop: [{ type: i0.Output, args: ["stop"] }], source: [{ type: i0.Input, args: [{ isSignal: true, alias: "source", required: false }] }, { type: i0.Output, args: ["sourceChange"] }] } });
16023
+
15509
16024
  /**
15510
16025
  * Generated bundle index. Do not edit.
15511
16026
  */
15512
16027
 
15513
- export { BrowserExcelExportAdapter, DATAGRID_COLUMN_DIRECTIVES, DATAGRID_TEMPLATE_DIRECTIVES, DND_I18N, DND_LIVE_ANNOUNCE, Datagrid, ExcelExportAdapter, ExportButtonDirective, JsPdfAdapter, NGB_BOOLEAN_FILTER_OPERATORS, NGB_DATAGRID_DEFAULT_LABELS, NGB_DATAGRID_DEFAULT_PAGEABLE, NGB_DATAGRID_HOST, NGB_DATAGRID_KEYBOARD_SHORTCUTS, NGB_DATAGRID_PAGER_BREAKPOINTS, NGB_DATAGRID_THEME_OPTIONS, NGB_DATE_FILTER_OPERATORS, NGB_NUMERIC_FILTER_OPERATORS, NGB_PAGER_BREAKPOINTS, NGB_PAGER_DEFAULT_SETTINGS, NGB_SELECT_FILTER_OPERATORS, NGB_TEXT_FILTER_OPERATORS, NgbAdvancedSearchComponent, NgbCellTemplate, NgbChipsComponent, NgbDataChartComponent, NgbDataGridGroupFooterTemplateDirective, NgbDataGridGroupHeaderColumnTemplateDirective, NgbDataGridGroupHeaderTemplateDirective, NgbDataSparklineComponent, NgbDatagridButtonDirective, NgbDatagridColumnChooserToolComponent, NgbDatagridControlDirective, NgbDatagridDefaultEditService, NgbDatagridFieldShellComponent, NgbDatagridFilterToolComponent, NgbDatagridFloatingPanelDirective, NgbDatagridLayoutToolbarComponent, NgbDatagridLayoutToolbarSpacerComponent, NgbDatagridSortToolComponent, NgbDatagridSurfaceCardComponent, NgbDatagridThemePickerComponent, NgbDndHandleDirective, NgbDndItemDirective, NgbDndListDirective, NgbDndState, NgbEditorTemplate, NgbExportService, NgbFilterMenuTemplate, NgbFilterTemplate, NgbGlobalFilterTemplate, NgbGridChartComponent, NgbGridColumnDirective, NgbGridHighlightDirective, NgbJsonPreviewComponent, NgbLiveAnnouncer, NgbPagerComponent, NgbPagerTemplate, NgbPaginationComponent, NgbRowDetailTemplate, NgbSearchHighlightComponent, NgbSplitterComponent, NgbSplitterPaneComponent, NgbStepLabelDirective, NgbStepperComponent, NgbTreeComponent, NgbTypeaheadComponent, PdfExportAdapter, defaultDndI18n, ngbAggregateValues, ngbAllowedFilterOperators, ngbApplyDataGridOperations, ngbBuildChartJsConfig, ngbBuildColumnSelectionChartData, ngbBuildFullGridChartData, ngbBuildRowSelectionChartData, ngbBuildSparklinePoints, ngbCalculateDataGridAggregates, ngbChartPalette, ngbColumnTypeToFilterType, ngbDatagridPagerSettings, ngbDefaultFilterOperator, ngbFilterOperatorLabel, ngbFindFieldFilterDescriptor, ngbFlattenFilterDescriptors, ngbFormatDatagridLabel, ngbFormatPagerRangeLabel, ngbGroupData, ngbIsCompositeFilter, ngbOperatorRequiresFilterValue, ngbPagerButtonCountForDensity, ngbResolveDatagridPagerSettings, ngbResolvePageableSettings, ngbResolvePagerDensity, ngbResolvePagerPageSizeOptions, ngbResolvePagerSettings, ngbSetFieldFilter };
16028
+ export { BrowserExcelExportAdapter, DATAGRID_COLUMN_DIRECTIVES, DATAGRID_TEMPLATE_DIRECTIVES, DND_I18N, DND_LIVE_ANNOUNCE, Datagrid, ExcelExportAdapter, ExportButtonDirective, JsPdfAdapter, NGB_BOOLEAN_FILTER_OPERATORS, NGB_DATAGRID_DEFAULT_LABELS, NGB_DATAGRID_DEFAULT_PAGEABLE, NGB_DATAGRID_HOST, NGB_DATAGRID_KEYBOARD_SHORTCUTS, NGB_DATAGRID_PAGER_BREAKPOINTS, NGB_DATAGRID_THEME_OPTIONS, NGB_DATE_FILTER_OPERATORS, NGB_NUMERIC_FILTER_OPERATORS, NGB_PAGER_BREAKPOINTS, NGB_PAGER_DEFAULT_SETTINGS, NGB_SELECT_FILTER_OPERATORS, NGB_TEXT_FILTER_OPERATORS, NgbAdvancedSearchComponent, NgbAiChatComponent, NgbAiPromptComponent, NgbCellTemplate, NgbChipsComponent, NgbDataChartComponent, NgbDataGridGroupFooterTemplateDirective, NgbDataGridGroupHeaderColumnTemplateDirective, NgbDataGridGroupHeaderTemplateDirective, NgbDataSparklineComponent, NgbDatagridButtonDirective, NgbDatagridColumnChooserToolComponent, NgbDatagridControlDirective, NgbDatagridDefaultEditService, NgbDatagridFieldShellComponent, NgbDatagridFilterToolComponent, NgbDatagridFloatingPanelDirective, NgbDatagridLayoutToolbarComponent, NgbDatagridLayoutToolbarSpacerComponent, NgbDatagridSortToolComponent, NgbDatagridSurfaceCardComponent, NgbDatagridThemePickerComponent, NgbDndHandleDirective, NgbDndItemDirective, NgbDndListDirective, NgbDndState, NgbEditorTemplate, NgbExportService, NgbFilterMenuTemplate, NgbFilterTemplate, NgbGlobalFilterTemplate, NgbGridChartComponent, NgbGridColumnDirective, NgbGridHighlightDirective, NgbInlineAiPromptComponent, NgbJsonPreviewComponent, NgbLiveAnnouncer, NgbPagerComponent, NgbPagerTemplate, NgbPaginationComponent, NgbPromptBoxComponent, NgbRowDetailTemplate, NgbSearchHighlightComponent, NgbSmartPasteComponent, NgbSplitterComponent, NgbSplitterPaneComponent, NgbStepLabelDirective, NgbStepperComponent, NgbTreeComponent, NgbTypeaheadComponent, PdfExportAdapter, defaultDndI18n, ngbAggregateValues, ngbAllowedFilterOperators, ngbApplyDataGridOperations, ngbBuildChartJsConfig, ngbBuildColumnSelectionChartData, ngbBuildFullGridChartData, ngbBuildRowSelectionChartData, ngbBuildSparklinePoints, ngbCalculateDataGridAggregates, ngbChartPalette, ngbColumnTypeToFilterType, ngbDatagridPagerSettings, ngbDefaultFilterOperator, ngbFilterOperatorLabel, ngbFindFieldFilterDescriptor, ngbFlattenFilterDescriptors, ngbFormatDatagridLabel, ngbFormatPagerRangeLabel, ngbGroupData, ngbIsCompositeFilter, ngbOperatorRequiresFilterValue, ngbPagerButtonCountForDensity, ngbResolveDatagridPagerSettings, ngbResolvePageableSettings, ngbResolvePagerDensity, ngbResolvePagerPageSizeOptions, ngbResolvePagerSettings, ngbSetFieldFilter };
15514
16029
  //# sourceMappingURL=angular-bootstrap-ngbootstrap.mjs.map