@elderbyte/ngx-starter 19.6.2 → 19.6.3

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.
@@ -63,6 +63,7 @@ import * as i1$9 from '@angular/cdk/table';
63
63
  import { CdkTableModule } from '@angular/cdk/table';
64
64
  import * as i2$4 from '@angular/material/sort';
65
65
  import { MatSortModule, MatSort, MatSortHeader } from '@angular/material/sort';
66
+ import { __decorate, __param } from 'tslib';
66
67
  import { CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, CdkVirtualForOf, ScrollingModule } from '@angular/cdk/scrolling';
67
68
  import * as i3 from '@angular/cdk/layout';
68
69
  import { Breakpoints } from '@angular/cdk/layout';
@@ -5500,10 +5501,10 @@ function isListDataSource(object) {
5500
5501
  return object.findAllFiltered !== undefined;
5501
5502
  }
5502
5503
  function isLocalListDataSource(object) {
5503
- return isListDataSource(object) &&
5504
+ return (isListDataSource(object) &&
5504
5505
  object.delete !== undefined &&
5505
5506
  object.save !== undefined &&
5506
- object.replaceAll !== undefined;
5507
+ object.replaceAll !== undefined);
5507
5508
  }
5508
5509
  function isPagedDataSource(object) {
5509
5510
  return object.findAllPaged !== undefined;
@@ -10043,7 +10044,7 @@ class ElderLabelInputComponent extends FormFieldBaseComponent {
10043
10044
  * *
10044
10045
  **************************************************************************/
10045
10046
  labelSelected(event) {
10046
- console.log('labelSelected:', event);
10047
+ this.logger.debug('labelSelected:', event);
10047
10048
  const selection = event.option.value;
10048
10049
  if (selection) {
10049
10050
  this.resetInput();
@@ -13503,8 +13504,6 @@ class ElderCompositeSortComponent {
13503
13504
  this.selectedSort.set(best);
13504
13505
  this.selectedSortDirection.set(sorts[0]?.dir ?? 'asc');
13505
13506
  }
13506
- }, {
13507
- allowSignalWrites: true,
13508
13507
  });
13509
13508
  }
13510
13509
  /***************************************************************************
@@ -15341,8 +15340,8 @@ class ElderDataViewItemDragDirective {
15341
15340
  * user defined this or if we should fall back to a superior predicate fn.
15342
15341
  * */
15343
15342
  this.canDragItem = input(null); // this is on purpose
15344
- const canDragItemPredicate = this.dndController ?
15345
- toSignal(dndController.canDragItemPredicate$)
15343
+ const canDragItemPredicate = this.dndController
15344
+ ? toSignal(dndController.canDragItemPredicate$)
15346
15345
  : signal(null);
15347
15346
  effect(() => {
15348
15347
  this.bindCanDragItem(this.cdkDrag, this.canDragItem(), canDragItemPredicate());
@@ -15383,7 +15382,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImpor
15383
15382
  type: Directive,
15384
15383
  args: [{
15385
15384
  selector: '[elderElderDataViewItemDrag]',
15386
- hostDirectives: [CdkDrag] // adds cdkDrag to host
15385
+ hostDirectives: [CdkDrag], // adds cdkDrag to host
15387
15386
  }]
15388
15387
  }], ctorParameters: () => [{ type: DataViewDndControllerService, decorators: [{
15389
15388
  type: Optional
@@ -16041,7 +16040,7 @@ class ElderContinuatorComponent {
16041
16040
  }
16042
16041
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ElderContinuatorComponent, decorators: [{
16043
16042
  type: Component,
16044
- args: [{ selector: 'elder-continuator', imports: [MatFormField, MatIcon, MatIconButton, MatSelect, MatOption$1, MatTooltip], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"layout-row place-end-center gap-md flex-none\">\n <mat-form-field class=\"elder-chunk-size-select\" subscriptSizing=\"dynamic\">\n <mat-select\n [value]=\"chunkSize()\"\n [placeholder]=\"chunkSize() + ''\"\n [disabled]=\"!canModifyChunkSize()\"\n (valueChange)=\"onChunkSizeChange($event)\"\n >\n @for (sizeOption of chunkSizeOptions(); track sizeOption) {\n <mat-option [value]=\"sizeOption\">{{ sizeOption }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <span class=\"mat-caption noselect loaded-info-text\"> {{ loadedCount() }} / {{ total() }} </span>\n\n <button\n mat-icon-button\n type=\"button\"\n color=\"primary\"\n [disabled]=\"!canLoadMore()\"\n (click)=\"loadMoreRequested.emit()\"\n >\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n</div>\n", styles: [".loaded-info-text{color:var(--md-sys-color-outline)}.elder-chunk-size-select.mat-mdc-form-field{width:84px}.elder-chunk-size-select.mat-mdc-form-field{--mat-form-field-container-height: 36px;--mat-form-field-filled-label-display: none;--mat-form-field-container-vertical-padding: 6px;--mat-form-field-filled-with-label-container-padding-top: 6px;--mat-form-field-filled-with-label-container-padding-bottom: 6px}.elder-chunk-size-select.mat-mdc-form-field .mat-mdc-select{--mat-select-trigger-text-size: var( --mat-paginator-container-text-size, var(--mat-sys-body-small-size) )}\n"] }]
16043
+ args: [{ selector: 'elder-continuator', imports: [MatFormField, MatIcon, MatIconButton, MatSelect, MatOption$1], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"layout-row place-end-center gap-md flex-none\">\n <mat-form-field class=\"elder-chunk-size-select\" subscriptSizing=\"dynamic\">\n <mat-select\n [value]=\"chunkSize()\"\n [placeholder]=\"chunkSize() + ''\"\n [disabled]=\"!canModifyChunkSize()\"\n (valueChange)=\"onChunkSizeChange($event)\"\n >\n @for (sizeOption of chunkSizeOptions(); track sizeOption) {\n <mat-option [value]=\"sizeOption\">{{ sizeOption }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <span class=\"mat-caption noselect loaded-info-text\"> {{ loadedCount() }} / {{ total() }} </span>\n\n <button\n mat-icon-button\n type=\"button\"\n color=\"primary\"\n [disabled]=\"!canLoadMore()\"\n (click)=\"loadMoreRequested.emit()\"\n >\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n</div>\n", styles: [".loaded-info-text{color:var(--md-sys-color-outline)}.elder-chunk-size-select.mat-mdc-form-field{width:84px}.elder-chunk-size-select.mat-mdc-form-field{--mat-form-field-container-height: 36px;--mat-form-field-filled-label-display: none;--mat-form-field-container-vertical-padding: 6px;--mat-form-field-filled-with-label-container-padding-top: 6px;--mat-form-field-filled-with-label-container-padding-bottom: 6px}.elder-chunk-size-select.mat-mdc-form-field .mat-mdc-select{--mat-select-trigger-text-size: var( --mat-paginator-container-text-size, var(--mat-sys-body-small-size) )}\n"] }]
16045
16044
  }] });
16046
16045
 
16047
16046
  class ElderTableRowDirective {
@@ -18401,7 +18400,7 @@ var TripleCheckboxState;
18401
18400
  TripleCheckboxState[TripleCheckboxState["CHECKED"] = 1] = "CHECKED";
18402
18401
  TripleCheckboxState[TripleCheckboxState["INDETERMINATE"] = 2] = "INDETERMINATE";
18403
18402
  })(TripleCheckboxState || (TripleCheckboxState = {}));
18404
- class ElderTripleStateCheckboxController {
18403
+ let ElderTripleStateCheckboxController = class ElderTripleStateCheckboxController {
18405
18404
  /***************************************************************************
18406
18405
  * *
18407
18406
  * Constructor *
@@ -18410,8 +18409,14 @@ class ElderTripleStateCheckboxController {
18410
18409
  constructor(checkbox, ngModel) {
18411
18410
  this.checkbox = checkbox;
18412
18411
  this.ngModel = ngModel;
18413
- this._stateChange = this.ngModel.valueChanges.pipe(takeUntilDestroyed(), map((value) => this.controlValueToState(value)));
18414
- this.stateChange.subscribe((value) => this.writeState(value));
18412
+ this._valueChange = new BehaviorSubject(undefined);
18413
+ if (this.ngModel) {
18414
+ this._stateChange = this.ngModel.valueChanges.pipe(takeUntilDestroyed(), map((value) => this.controlValueToState(value)));
18415
+ this.stateChange.subscribe((value) => this.writeState(value));
18416
+ }
18417
+ else {
18418
+ this._stateChange = this._valueChange.pipe(takeUntilDestroyed(), map((value) => this.controlValueToState(value)));
18419
+ }
18415
18420
  }
18416
18421
  /***************************************************************************
18417
18422
  * *
@@ -18421,6 +18426,9 @@ class ElderTripleStateCheckboxController {
18421
18426
  get stateChange() {
18422
18427
  return this._stateChange;
18423
18428
  }
18429
+ get valueChange() {
18430
+ return this._valueChange.asObservable();
18431
+ }
18424
18432
  /***************************************************************************
18425
18433
  * *
18426
18434
  * Public API *
@@ -18479,6 +18487,7 @@ class ElderTripleStateCheckboxController {
18479
18487
  this.checkbox.value = isDefined ? String(value) : undefined;
18480
18488
  this.checkbox.checked = !!value;
18481
18489
  this.checkbox.indeterminate = !isDefined;
18490
+ this._valueChange.next(value);
18482
18491
  this.updateModelIfPresent(value);
18483
18492
  }
18484
18493
  updateModelIfPresent(val) {
@@ -18491,7 +18500,10 @@ class ElderTripleStateCheckboxController {
18491
18500
  });
18492
18501
  }
18493
18502
  }
18494
- }
18503
+ };
18504
+ ElderTripleStateCheckboxController = __decorate([
18505
+ __param(1, Optional())
18506
+ ], ElderTripleStateCheckboxController);
18495
18507
 
18496
18508
  class ElderTripleStateCheckboxDirective {
18497
18509
  /***************************************************************************
@@ -18507,6 +18519,12 @@ class ElderTripleStateCheckboxDirective {
18507
18519
  * *
18508
18520
  **************************************************************************/
18509
18521
  this.log = LoggerFactory.getLogger(this.constructor.name);
18522
+ /***************************************************************************
18523
+ * *
18524
+ * Properties *
18525
+ * *
18526
+ **************************************************************************/
18527
+ this.valueChange = new EventEmitter();
18510
18528
  this.controller = new ElderTripleStateCheckboxController(checkbox, ngModel);
18511
18529
  }
18512
18530
  /***************************************************************************
@@ -18517,6 +18535,10 @@ class ElderTripleStateCheckboxDirective {
18517
18535
  ngOnInit() {
18518
18536
  this.controller.writeState(this.controller.readState());
18519
18537
  this.checkbox.registerOnChange(() => this.toggleNextState());
18538
+ // Subscribe to value changes from the controller
18539
+ this.controller.valueChange.subscribe((value) => {
18540
+ this.valueChange.emit(value);
18541
+ });
18520
18542
  }
18521
18543
  /***************************************************************************
18522
18544
  * *
@@ -18526,8 +18548,8 @@ class ElderTripleStateCheckboxDirective {
18526
18548
  toggleNextState() {
18527
18549
  this.controller.toggleNextState();
18528
18550
  }
18529
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ElderTripleStateCheckboxDirective, deps: [{ token: i1$c.MatCheckbox }, { token: i1$4.NgModel }], target: i0.ɵɵFactoryTarget.Directive }); }
18530
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.4", type: ElderTripleStateCheckboxDirective, isStandalone: true, selector: "mat-checkbox[elderTripleStateCheckbox]", ngImport: i0 }); }
18551
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ElderTripleStateCheckboxDirective, deps: [{ token: i1$c.MatCheckbox }, { token: i1$4.NgModel, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
18552
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.4", type: ElderTripleStateCheckboxDirective, isStandalone: true, selector: "mat-checkbox[elderTripleStateCheckbox]", outputs: { valueChange: "valueChange" }, ngImport: i0 }); }
18531
18553
  }
18532
18554
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ElderTripleStateCheckboxDirective, decorators: [{
18533
18555
  type: Directive,
@@ -18535,7 +18557,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImpor
18535
18557
  selector: 'mat-checkbox[elderTripleStateCheckbox]',
18536
18558
  standalone: true,
18537
18559
  }]
18538
- }], ctorParameters: () => [{ type: i1$c.MatCheckbox }, { type: i1$4.NgModel }] });
18560
+ }], ctorParameters: () => [{ type: i1$c.MatCheckbox }, { type: i1$4.NgModel, decorators: [{
18561
+ type: Optional
18562
+ }] }], propDecorators: { valueChange: [{
18563
+ type: Output
18564
+ }] } });
18539
18565
 
18540
18566
  /**
18541
18567
  * Traps tab focus inside the host elements children.
@@ -19703,9 +19729,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImpor
19703
19729
  }] });
19704
19730
 
19705
19731
  class ElderSimpleSelectionViewComponent {
19706
- constructor(selectionModel) {
19707
- console.log('Received selection model:', selectionModel);
19708
- }
19732
+ constructor(selectionModel) { }
19709
19733
  ngOnInit() { }
19710
19734
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ElderSimpleSelectionViewComponent, deps: [{ token: SelectionModel, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
19711
19735
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.4", type: ElderSimpleSelectionViewComponent, isStandalone: true, selector: "elder-simple-selection-view", ngImport: i0, template: "<p>elder-simple-selection-view works!</p>\n", styles: [""] }); }
@@ -21332,7 +21356,7 @@ class ElderMasterDetailComponent {
21332
21356
  panelClass: 'custom-dialog-container',
21333
21357
  });
21334
21358
  this.dialogRef.afterClosed().subscribe((result) => {
21335
- console.log('The dialog was closed');
21359
+ this.log.debug('The dialog was closed');
21336
21360
  });
21337
21361
  }
21338
21362
  onCurrentItemChange(active) {
@@ -31128,10 +31152,10 @@ class ElderIntervalPickerComponent {
31128
31152
  }
31129
31153
  const elderInterval = IntervalPickerUtil.createElderInterval(srcInterval);
31130
31154
  if (this.emitType() === 'iso') {
31131
- console.log('emitting type iso', coerceIntervalIsoStr(elderInterval));
31155
+ this.log.debug('emitting type iso', coerceIntervalIsoStr(elderInterval));
31132
31156
  return coerceIntervalIsoStr(elderInterval);
31133
31157
  }
31134
- console.log('emitting type elder interval', elderInterval);
31158
+ this.log.debug('emitting type elder interval', elderInterval);
31135
31159
  return elderInterval;
31136
31160
  }));
31137
31161
  this.manager.anchor$.pipe(takeUntilDestroyed()).subscribe((anchor) => {
@@ -31161,7 +31185,7 @@ class ElderIntervalPickerComponent {
31161
31185
  setTimeout(() => {
31162
31186
  // this prevents ngmodel issue
31163
31187
  this.manager.isInitialized = true;
31164
- console.log('externalInterval', this.externalInterval());
31188
+ this.log.debug('externalInterval', this.externalInterval());
31165
31189
  }, 0);
31166
31190
  }
31167
31191
  ngOnDestroy() {
@@ -31211,7 +31235,7 @@ class ElderIntervalPickerComponent {
31211
31235
  IntervalPickerUtil.updateMatCalendarActiveDate(this.calendarStart, this.calendarEnd, interval.startDate, interval.endDate);
31212
31236
  }
31213
31237
  catch (e) {
31214
- console.debug('Failed to update calendar active date', e);
31238
+ this.log.debug('Failed to update calendar active date', e);
31215
31239
  }
31216
31240
  }
31217
31241
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ElderIntervalPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
@@ -32790,16 +32814,13 @@ class ElderSearchBoxComponent {
32790
32814
  this.queryKey = 'query';
32791
32815
  this._dense = false;
32792
32816
  this.autocomplete = 'off';
32793
- this.touchedSearchInputs$ = searchContextDirective.touchedSearchInputs$
32794
- .pipe();
32817
+ this.touchedSearchInputs$ = searchContextDirective.touchedSearchInputs$;
32795
32818
  effect(() => {
32796
32819
  const customSearchPanel = this.customSearchPanel();
32797
32820
  const overlay = this.overlayComponent();
32798
32821
  if (customSearchPanel) {
32799
32822
  customSearchPanel.overlay.set(overlay);
32800
32823
  }
32801
- }, {
32802
- allowSignalWrites: true,
32803
32824
  });
32804
32825
  }
32805
32826
  /***************************************************************************
@@ -32828,7 +32849,7 @@ class ElderSearchBoxComponent {
32828
32849
  this.searchContextDirective.reset();
32829
32850
  }
32830
32851
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ElderSearchBoxComponent, deps: [{ token: ElderSearchContextDirective }], target: i0.ɵɵFactoryTarget.Component }); }
32831
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.4", type: ElderSearchBoxComponent, isStandalone: true, selector: "elder-search-box", inputs: { autoPanel: "autoPanel", name: "name", queryKey: "queryKey", placeholder: "placeholder", label: "label", hint: "hint", autocomplete: "autocomplete", appearance: "appearance", dense: "dense" }, host: { classAttribute: "elder-form-field-host" }, queries: [{ propertyName: "customSearchPanel", first: true, predicate: ElderSearchPanelComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "search", first: true, predicate: ["search"], descendants: true, isSignal: true }, { propertyName: "overlayComponent", first: true, predicate: ElderOverlayComponent, descendants: true, isSignal: true }], exportAs: ["elderSearchBox"], ngImport: i0, template: "<div class=\"layout-row place-stretch-center full flex\">\n <mat-form-field\n [appearance]=\"appearance\"\n class=\"elder-search-box-field flex-auto my-xs\"\n [class]=\"'elder-round-form-field'\"\n subscriptSizing=\"dynamic\"\n [elderDense]=\"dense\"\n >\n <button\n matPrefix\n mat-icon-button\n type=\"button\"\n [elderOverlayTrigger]=\"searchPanel\"\n (click)=\"blurFocus($event)\"\n >\n <mat-icon>search</mat-icon>\n </button>\n\n <input\n matInput\n type=\"text\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n #search\n cdkFocusInitial\n ngModel\n elderSearchInput\n [elderSearchInputKey]=\"queryKey\"\n #searchInput=\"elderSearchInput\"\n [autocomplete]=\"autoPanel && customSearchPanel() ? 'off' : autocomplete\"\n [elderOverlayOrigin]=\"searchPanel\"\n [elderOverlayTrigger]=\"searchPanel\"\n [elderOverlayTriggerType]=\"'focus'\"\n [elderOverlayTriggerEnabled]=\"\n autoPanel && customSearchPanel() && (searchInput?.state$ | async)?.pristine\n \"\n />\n\n @if (hint) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n\n <div class=\"layout-row\" matSuffix>\n @if (touchedSearchInputs$ | async; as touchedInputs) {\n @if (touchedInputs.length > 0) {\n <button\n mat-icon-button\n type=\"button\"\n (click)=\"clearSearch($event)\"\n name=\"clear\"\n aria-label=\"Clear\"\n >\n <mat-icon>close</mat-icon>\n </button>\n }\n\n @if (customSearchPanel()) {\n <button\n mat-icon-button\n type=\"button\"\n name=\"openPanel\"\n [elderOverlayTrigger]=\"searchPanel\"\n (click)=\"blurFocus($event)\"\n >\n <mat-icon\n [matBadge]=\"touchedInputs.length\"\n matBadgeSize=\"small\"\n [matBadgeOverlap]=\"true\"\n [matBadgeHidden]=\"touchedInputs.length === 0\"\n matBadgeColor=\"accent\"\n [color]=\"touchedInputs.length > 0 ? 'accent' : undefined\"\n >\n filter_list\n </mat-icon>\n </button>\n }\n }\n </div>\n </mat-form-field>\n</div>\n\n<!-- Overlay Panel for advanced search -->\n<elder-overlay #searchPanel=\"elderOverlay\">\n <elder-dialog-panel class=\"elder-search-panel-container\">\n <!-- Project the users custom search panel here -->\n <ng-content select=\"elder-search-panel\"></ng-content>\n\n <div class=\"layout-row place-between-center\">\n <button mat-button type=\"button\" name=\"clear\" (click)=\"clearSearch($event)\">\n {{ 'context.reset' | translate }}\n </button>\n\n <button\n mat-flat-button\n type=\"button\"\n name=\"ok\"\n color=\"primary\"\n (click)=\"searchPanel.closeOverlay()\"\n >\n Ok\n </button>\n </div>\n </elder-dialog-panel>\n</elder-overlay>\n", styles: [".elder-search-panel-container{min-width:250px;border-radius:var(--elder-pane-border-radius)}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: ElderFormFieldDenseDirective, selector: "mat-form-field[elderDense]", inputs: ["elderDense", "subscriptSizing", "floatLabel"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: ElderOverlayTriggerDirective, selector: "[elderOverlayTrigger]", inputs: ["elderOverlayTrigger", "elderOverlayTriggerType", "elderOverlayTriggerEnabled"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ElderSearchInputDirective, selector: "[elderSearchInput]", inputs: ["elderSearchInputTransform", "elderSearchInput", "elderSearchInputFallback", "valueAsId", "elderSearchInputKey"], exportAs: ["elderSearchInput"] }, { kind: "directive", type: ElderOverlayOriginDirective, selector: "[elderOverlayOrigin]", inputs: ["elderOverlayOrigin"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: ElderOverlayComponent, selector: "elder-overlay", inputs: ["originX", "originY", "overlayX", "overlayY", "offsetY", "offsetX", "backdrop", "backdropVisible", "origin", "positionStrategy", "overlaySize"], outputs: ["keydownEvents", "attachedChange"], exportAs: ["elderOverlay"] }, { kind: "component", type: ElderDialogPanelComponent, selector: "elder-dialog-panel" }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
32852
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.4", type: ElderSearchBoxComponent, isStandalone: true, selector: "elder-search-box", inputs: { autoPanel: "autoPanel", name: "name", queryKey: "queryKey", placeholder: "placeholder", label: "label", hint: "hint", autocomplete: "autocomplete", appearance: "appearance", dense: "dense" }, host: { classAttribute: "elder-form-field-host" }, queries: [{ propertyName: "customSearchPanel", first: true, predicate: ElderSearchPanelComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "search", first: true, predicate: ["search"], descendants: true, isSignal: true }, { propertyName: "overlayComponent", first: true, predicate: ElderOverlayComponent, descendants: true, isSignal: true }], exportAs: ["elderSearchBox"], ngImport: i0, template: "<div class=\"layout-row place-stretch-center full flex\">\n <mat-form-field\n [appearance]=\"appearance\"\n class=\"elder-search-box-field flex-auto my-xs\"\n [class]=\"'elder-round-form-field'\"\n subscriptSizing=\"dynamic\"\n [elderDense]=\"dense\"\n >\n <button\n matPrefix\n mat-icon-button\n type=\"button\"\n [elderOverlayTrigger]=\"searchPanel\"\n (click)=\"blurFocus($event)\"\n >\n <mat-icon>search</mat-icon>\n </button>\n\n <input\n matInput\n type=\"text\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n #search\n cdkFocusInitial\n ngModel\n elderSearchInput\n [elderSearchInputKey]=\"queryKey\"\n #searchInput=\"elderSearchInput\"\n [autocomplete]=\"autoPanel && customSearchPanel() ? 'off' : autocomplete\"\n [elderOverlayOrigin]=\"searchPanel\"\n [elderOverlayTrigger]=\"searchPanel\"\n [elderOverlayTriggerType]=\"'focus'\"\n [elderOverlayTriggerEnabled]=\"\n autoPanel && customSearchPanel() && (searchInput?.state$ | async)?.pristine\n \"\n />\n\n @if (hint) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n\n <div class=\"layout-row\" matSuffix>\n @if (touchedSearchInputs$ | async; as touchedInputs) {\n @if (touchedInputs.length > 0) {\n <button\n mat-icon-button\n type=\"button\"\n (click)=\"clearSearch($event)\"\n name=\"clear\"\n aria-label=\"Clear\"\n >\n <mat-icon>close</mat-icon>\n </button>\n }\n\n @if (customSearchPanel()) {\n <button\n mat-icon-button\n type=\"button\"\n name=\"openPanel\"\n [elderOverlayTrigger]=\"searchPanel\"\n (click)=\"blurFocus($event)\"\n >\n <mat-icon\n [matBadge]=\"touchedInputs.length\"\n matBadgeSize=\"small\"\n [matBadgeOverlap]=\"true\"\n [matBadgeHidden]=\"touchedInputs.length === 0\"\n matBadgeColor=\"accent\"\n [color]=\"touchedInputs.length > 0 ? 'accent' : undefined\"\n aria-hidden=\"false\"\n >\n filter_list\n </mat-icon>\n </button>\n }\n }\n </div>\n </mat-form-field>\n</div>\n\n<!-- Overlay Panel for advanced search -->\n<elder-overlay #searchPanel=\"elderOverlay\">\n <elder-dialog-panel class=\"elder-search-panel-container\">\n <!-- Project the users custom search panel here -->\n <ng-content select=\"elder-search-panel\"></ng-content>\n\n <div class=\"layout-row place-between-center\">\n <button mat-button type=\"button\" name=\"clear\" (click)=\"clearSearch($event)\">\n {{ 'context.reset' | translate }}\n </button>\n\n <button\n mat-flat-button\n type=\"button\"\n name=\"ok\"\n color=\"primary\"\n (click)=\"searchPanel.closeOverlay()\"\n >\n Ok\n </button>\n </div>\n </elder-dialog-panel>\n</elder-overlay>\n", styles: [".elder-search-panel-container{min-width:250px;border-radius:var(--elder-pane-border-radius)}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: ElderFormFieldDenseDirective, selector: "mat-form-field[elderDense]", inputs: ["elderDense", "subscriptSizing", "floatLabel"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: ElderOverlayTriggerDirective, selector: "[elderOverlayTrigger]", inputs: ["elderOverlayTrigger", "elderOverlayTriggerType", "elderOverlayTriggerEnabled"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ElderSearchInputDirective, selector: "[elderSearchInput]", inputs: ["elderSearchInputTransform", "elderSearchInput", "elderSearchInputFallback", "valueAsId", "elderSearchInputKey"], exportAs: ["elderSearchInput"] }, { kind: "directive", type: ElderOverlayOriginDirective, selector: "[elderOverlayOrigin]", inputs: ["elderOverlayOrigin"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: ElderOverlayComponent, selector: "elder-overlay", inputs: ["originX", "originY", "overlayX", "overlayY", "offsetY", "offsetX", "backdrop", "backdropVisible", "origin", "positionStrategy", "overlaySize"], outputs: ["keydownEvents", "attachedChange"], exportAs: ["elderOverlay"] }, { kind: "component", type: ElderDialogPanelComponent, selector: "elder-dialog-panel" }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
32832
32853
  }
32833
32854
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ElderSearchBoxComponent, decorators: [{
32834
32855
  type: Component,
@@ -32851,7 +32872,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImpor
32851
32872
  MatButton,
32852
32873
  AsyncPipe,
32853
32874
  TranslateModule,
32854
- ], template: "<div class=\"layout-row place-stretch-center full flex\">\n <mat-form-field\n [appearance]=\"appearance\"\n class=\"elder-search-box-field flex-auto my-xs\"\n [class]=\"'elder-round-form-field'\"\n subscriptSizing=\"dynamic\"\n [elderDense]=\"dense\"\n >\n <button\n matPrefix\n mat-icon-button\n type=\"button\"\n [elderOverlayTrigger]=\"searchPanel\"\n (click)=\"blurFocus($event)\"\n >\n <mat-icon>search</mat-icon>\n </button>\n\n <input\n matInput\n type=\"text\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n #search\n cdkFocusInitial\n ngModel\n elderSearchInput\n [elderSearchInputKey]=\"queryKey\"\n #searchInput=\"elderSearchInput\"\n [autocomplete]=\"autoPanel && customSearchPanel() ? 'off' : autocomplete\"\n [elderOverlayOrigin]=\"searchPanel\"\n [elderOverlayTrigger]=\"searchPanel\"\n [elderOverlayTriggerType]=\"'focus'\"\n [elderOverlayTriggerEnabled]=\"\n autoPanel && customSearchPanel() && (searchInput?.state$ | async)?.pristine\n \"\n />\n\n @if (hint) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n\n <div class=\"layout-row\" matSuffix>\n @if (touchedSearchInputs$ | async; as touchedInputs) {\n @if (touchedInputs.length > 0) {\n <button\n mat-icon-button\n type=\"button\"\n (click)=\"clearSearch($event)\"\n name=\"clear\"\n aria-label=\"Clear\"\n >\n <mat-icon>close</mat-icon>\n </button>\n }\n\n @if (customSearchPanel()) {\n <button\n mat-icon-button\n type=\"button\"\n name=\"openPanel\"\n [elderOverlayTrigger]=\"searchPanel\"\n (click)=\"blurFocus($event)\"\n >\n <mat-icon\n [matBadge]=\"touchedInputs.length\"\n matBadgeSize=\"small\"\n [matBadgeOverlap]=\"true\"\n [matBadgeHidden]=\"touchedInputs.length === 0\"\n matBadgeColor=\"accent\"\n [color]=\"touchedInputs.length > 0 ? 'accent' : undefined\"\n >\n filter_list\n </mat-icon>\n </button>\n }\n }\n </div>\n </mat-form-field>\n</div>\n\n<!-- Overlay Panel for advanced search -->\n<elder-overlay #searchPanel=\"elderOverlay\">\n <elder-dialog-panel class=\"elder-search-panel-container\">\n <!-- Project the users custom search panel here -->\n <ng-content select=\"elder-search-panel\"></ng-content>\n\n <div class=\"layout-row place-between-center\">\n <button mat-button type=\"button\" name=\"clear\" (click)=\"clearSearch($event)\">\n {{ 'context.reset' | translate }}\n </button>\n\n <button\n mat-flat-button\n type=\"button\"\n name=\"ok\"\n color=\"primary\"\n (click)=\"searchPanel.closeOverlay()\"\n >\n Ok\n </button>\n </div>\n </elder-dialog-panel>\n</elder-overlay>\n", styles: [".elder-search-panel-container{min-width:250px;border-radius:var(--elder-pane-border-radius)}\n"] }]
32875
+ ], template: "<div class=\"layout-row place-stretch-center full flex\">\n <mat-form-field\n [appearance]=\"appearance\"\n class=\"elder-search-box-field flex-auto my-xs\"\n [class]=\"'elder-round-form-field'\"\n subscriptSizing=\"dynamic\"\n [elderDense]=\"dense\"\n >\n <button\n matPrefix\n mat-icon-button\n type=\"button\"\n [elderOverlayTrigger]=\"searchPanel\"\n (click)=\"blurFocus($event)\"\n >\n <mat-icon>search</mat-icon>\n </button>\n\n <input\n matInput\n type=\"text\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n #search\n cdkFocusInitial\n ngModel\n elderSearchInput\n [elderSearchInputKey]=\"queryKey\"\n #searchInput=\"elderSearchInput\"\n [autocomplete]=\"autoPanel && customSearchPanel() ? 'off' : autocomplete\"\n [elderOverlayOrigin]=\"searchPanel\"\n [elderOverlayTrigger]=\"searchPanel\"\n [elderOverlayTriggerType]=\"'focus'\"\n [elderOverlayTriggerEnabled]=\"\n autoPanel && customSearchPanel() && (searchInput?.state$ | async)?.pristine\n \"\n />\n\n @if (hint) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n\n <div class=\"layout-row\" matSuffix>\n @if (touchedSearchInputs$ | async; as touchedInputs) {\n @if (touchedInputs.length > 0) {\n <button\n mat-icon-button\n type=\"button\"\n (click)=\"clearSearch($event)\"\n name=\"clear\"\n aria-label=\"Clear\"\n >\n <mat-icon>close</mat-icon>\n </button>\n }\n\n @if (customSearchPanel()) {\n <button\n mat-icon-button\n type=\"button\"\n name=\"openPanel\"\n [elderOverlayTrigger]=\"searchPanel\"\n (click)=\"blurFocus($event)\"\n >\n <mat-icon\n [matBadge]=\"touchedInputs.length\"\n matBadgeSize=\"small\"\n [matBadgeOverlap]=\"true\"\n [matBadgeHidden]=\"touchedInputs.length === 0\"\n matBadgeColor=\"accent\"\n [color]=\"touchedInputs.length > 0 ? 'accent' : undefined\"\n aria-hidden=\"false\"\n >\n filter_list\n </mat-icon>\n </button>\n }\n }\n </div>\n </mat-form-field>\n</div>\n\n<!-- Overlay Panel for advanced search -->\n<elder-overlay #searchPanel=\"elderOverlay\">\n <elder-dialog-panel class=\"elder-search-panel-container\">\n <!-- Project the users custom search panel here -->\n <ng-content select=\"elder-search-panel\"></ng-content>\n\n <div class=\"layout-row place-between-center\">\n <button mat-button type=\"button\" name=\"clear\" (click)=\"clearSearch($event)\">\n {{ 'context.reset' | translate }}\n </button>\n\n <button\n mat-flat-button\n type=\"button\"\n name=\"ok\"\n color=\"primary\"\n (click)=\"searchPanel.closeOverlay()\"\n >\n Ok\n </button>\n </div>\n </elder-dialog-panel>\n</elder-overlay>\n", styles: [".elder-search-panel-container{min-width:250px;border-radius:var(--elder-pane-border-radius)}\n"] }]
32855
32876
  }], ctorParameters: () => [{ type: ElderSearchContextDirective }], propDecorators: { autoPanel: [{
32856
32877
  type: Input
32857
32878
  }], name: [{
@@ -35023,8 +35044,6 @@ class ElderUrlFragmentSwitcherComponent {
35023
35044
  **************************************************************************/
35024
35045
  ngOnInit() {
35025
35046
  if (!this.disable) {
35026
- console.log('URL FRAGMEENTS');
35027
- console.log(this.urlFragments);
35028
35047
  const urlFragment = this.urlFragments.find((c) => {
35029
35048
  try {
35030
35049
  return c.fragment === this.urlRegex.exec(window.location.href)[this.regexArrayIndex];
@@ -35033,8 +35052,6 @@ class ElderUrlFragmentSwitcherComponent {
35033
35052
  return false;
35034
35053
  }
35035
35054
  });
35036
- console.log('URL FRAGMENT');
35037
- console.log(urlFragment);
35038
35055
  if (urlFragment) {
35039
35056
  this.activeUrlFragment$.next(urlFragment);
35040
35057
  }