@elderbyte/ngx-starter 19.6.1 → 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';
@@ -3483,7 +3484,7 @@ class TokenChunkRequest {
3483
3484
  }
3484
3485
  static nextIfAvailable(listing, filters, sorts) {
3485
3486
  if (listing.hasMore && listing.nextContinuationToken) {
3486
- return new TokenChunkRequest(listing.nextContinuationToken, filters, sorts, listing.chunkSize);
3487
+ return new TokenChunkRequest(listing.nextContinuationToken, filters, sorts, listing.chunkSize ?? listing.maxChunkSize);
3487
3488
  }
3488
3489
  else {
3489
3490
  return undefined;
@@ -4240,18 +4241,20 @@ class DataContextContinuableBase extends DataContextBase {
4240
4241
  return this._chunkSize$.value;
4241
4242
  }
4242
4243
  set chunkSize(size) {
4243
- if (this._chunkSize$.value !== size) {
4244
- this._chunkSize$.next(size);
4245
- this.onChunkSizeChanged(size);
4246
- }
4244
+ this.updateChunkSize(size, true);
4247
4245
  }
4248
4246
  /***************************************************************************
4249
4247
  * *
4250
4248
  * Private Methods *
4251
4249
  * *
4252
4250
  **************************************************************************/
4253
- onChunkSizeChanged(newSize) {
4254
- this.reload('ChunkSizeChanged:' + newSize);
4251
+ updateChunkSize(newSize, reloadOnChange) {
4252
+ if (this._chunkSize$.value !== newSize) {
4253
+ this._chunkSize$.next(newSize);
4254
+ if (reloadOnChange) {
4255
+ this.reload('ChunkSizeChanged:' + newSize);
4256
+ }
4257
+ }
4255
4258
  }
4256
4259
  loadAllRec() {
4257
4260
  this.loadMore().subscribe({
@@ -4504,7 +4507,7 @@ class DataContextContinuableToken extends DataContextContinuableBase {
4504
4507
  onChunkFetched(chunk) {
4505
4508
  this.logger.debug(this.id + ': Got next chunk data:', chunk);
4506
4509
  this._hasMoreData.next(chunk.hasMore);
4507
- this.chunkSize = chunk.chunkSize;
4510
+ this.updateChunkSize(chunk.chunkSize ?? chunk.maxChunkSize, false);
4508
4511
  this.populateChunkData(chunk);
4509
4512
  this.onIdle();
4510
4513
  }
@@ -5498,10 +5501,10 @@ function isListDataSource(object) {
5498
5501
  return object.findAllFiltered !== undefined;
5499
5502
  }
5500
5503
  function isLocalListDataSource(object) {
5501
- return isListDataSource(object) &&
5504
+ return (isListDataSource(object) &&
5502
5505
  object.delete !== undefined &&
5503
5506
  object.save !== undefined &&
5504
- object.replaceAll !== undefined;
5507
+ object.replaceAll !== undefined);
5505
5508
  }
5506
5509
  function isPagedDataSource(object) {
5507
5510
  return object.findAllPaged !== undefined;
@@ -10041,7 +10044,7 @@ class ElderLabelInputComponent extends FormFieldBaseComponent {
10041
10044
  * *
10042
10045
  **************************************************************************/
10043
10046
  labelSelected(event) {
10044
- console.log('labelSelected:', event);
10047
+ this.logger.debug('labelSelected:', event);
10045
10048
  const selection = event.option.value;
10046
10049
  if (selection) {
10047
10050
  this.resetInput();
@@ -13501,8 +13504,6 @@ class ElderCompositeSortComponent {
13501
13504
  this.selectedSort.set(best);
13502
13505
  this.selectedSortDirection.set(sorts[0]?.dir ?? 'asc');
13503
13506
  }
13504
- }, {
13505
- allowSignalWrites: true,
13506
13507
  });
13507
13508
  }
13508
13509
  /***************************************************************************
@@ -15339,8 +15340,8 @@ class ElderDataViewItemDragDirective {
15339
15340
  * user defined this or if we should fall back to a superior predicate fn.
15340
15341
  * */
15341
15342
  this.canDragItem = input(null); // this is on purpose
15342
- const canDragItemPredicate = this.dndController ?
15343
- toSignal(dndController.canDragItemPredicate$)
15343
+ const canDragItemPredicate = this.dndController
15344
+ ? toSignal(dndController.canDragItemPredicate$)
15344
15345
  : signal(null);
15345
15346
  effect(() => {
15346
15347
  this.bindCanDragItem(this.cdkDrag, this.canDragItem(), canDragItemPredicate());
@@ -15381,7 +15382,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImpor
15381
15382
  type: Directive,
15382
15383
  args: [{
15383
15384
  selector: '[elderElderDataViewItemDrag]',
15384
- hostDirectives: [CdkDrag] // adds cdkDrag to host
15385
+ hostDirectives: [CdkDrag], // adds cdkDrag to host
15385
15386
  }]
15386
15387
  }], ctorParameters: () => [{ type: DataViewDndControllerService, decorators: [{
15387
15388
  type: Optional
@@ -16039,7 +16040,7 @@ class ElderContinuatorComponent {
16039
16040
  }
16040
16041
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ElderContinuatorComponent, decorators: [{
16041
16042
  type: Component,
16042
- 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"] }]
16043
16044
  }] });
16044
16045
 
16045
16046
  class ElderTableRowDirective {
@@ -18399,7 +18400,7 @@ var TripleCheckboxState;
18399
18400
  TripleCheckboxState[TripleCheckboxState["CHECKED"] = 1] = "CHECKED";
18400
18401
  TripleCheckboxState[TripleCheckboxState["INDETERMINATE"] = 2] = "INDETERMINATE";
18401
18402
  })(TripleCheckboxState || (TripleCheckboxState = {}));
18402
- class ElderTripleStateCheckboxController {
18403
+ let ElderTripleStateCheckboxController = class ElderTripleStateCheckboxController {
18403
18404
  /***************************************************************************
18404
18405
  * *
18405
18406
  * Constructor *
@@ -18408,8 +18409,14 @@ class ElderTripleStateCheckboxController {
18408
18409
  constructor(checkbox, ngModel) {
18409
18410
  this.checkbox = checkbox;
18410
18411
  this.ngModel = ngModel;
18411
- this._stateChange = this.ngModel.valueChanges.pipe(takeUntilDestroyed(), map((value) => this.controlValueToState(value)));
18412
- 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
+ }
18413
18420
  }
18414
18421
  /***************************************************************************
18415
18422
  * *
@@ -18419,6 +18426,9 @@ class ElderTripleStateCheckboxController {
18419
18426
  get stateChange() {
18420
18427
  return this._stateChange;
18421
18428
  }
18429
+ get valueChange() {
18430
+ return this._valueChange.asObservable();
18431
+ }
18422
18432
  /***************************************************************************
18423
18433
  * *
18424
18434
  * Public API *
@@ -18477,6 +18487,7 @@ class ElderTripleStateCheckboxController {
18477
18487
  this.checkbox.value = isDefined ? String(value) : undefined;
18478
18488
  this.checkbox.checked = !!value;
18479
18489
  this.checkbox.indeterminate = !isDefined;
18490
+ this._valueChange.next(value);
18480
18491
  this.updateModelIfPresent(value);
18481
18492
  }
18482
18493
  updateModelIfPresent(val) {
@@ -18489,7 +18500,10 @@ class ElderTripleStateCheckboxController {
18489
18500
  });
18490
18501
  }
18491
18502
  }
18492
- }
18503
+ };
18504
+ ElderTripleStateCheckboxController = __decorate([
18505
+ __param(1, Optional())
18506
+ ], ElderTripleStateCheckboxController);
18493
18507
 
18494
18508
  class ElderTripleStateCheckboxDirective {
18495
18509
  /***************************************************************************
@@ -18505,6 +18519,12 @@ class ElderTripleStateCheckboxDirective {
18505
18519
  * *
18506
18520
  **************************************************************************/
18507
18521
  this.log = LoggerFactory.getLogger(this.constructor.name);
18522
+ /***************************************************************************
18523
+ * *
18524
+ * Properties *
18525
+ * *
18526
+ **************************************************************************/
18527
+ this.valueChange = new EventEmitter();
18508
18528
  this.controller = new ElderTripleStateCheckboxController(checkbox, ngModel);
18509
18529
  }
18510
18530
  /***************************************************************************
@@ -18515,6 +18535,10 @@ class ElderTripleStateCheckboxDirective {
18515
18535
  ngOnInit() {
18516
18536
  this.controller.writeState(this.controller.readState());
18517
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
+ });
18518
18542
  }
18519
18543
  /***************************************************************************
18520
18544
  * *
@@ -18524,8 +18548,8 @@ class ElderTripleStateCheckboxDirective {
18524
18548
  toggleNextState() {
18525
18549
  this.controller.toggleNextState();
18526
18550
  }
18527
- 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 }); }
18528
- 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 }); }
18529
18553
  }
18530
18554
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ElderTripleStateCheckboxDirective, decorators: [{
18531
18555
  type: Directive,
@@ -18533,7 +18557,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImpor
18533
18557
  selector: 'mat-checkbox[elderTripleStateCheckbox]',
18534
18558
  standalone: true,
18535
18559
  }]
18536
- }], 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
+ }] } });
18537
18565
 
18538
18566
  /**
18539
18567
  * Traps tab focus inside the host elements children.
@@ -19701,9 +19729,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImpor
19701
19729
  }] });
19702
19730
 
19703
19731
  class ElderSimpleSelectionViewComponent {
19704
- constructor(selectionModel) {
19705
- console.log('Received selection model:', selectionModel);
19706
- }
19732
+ constructor(selectionModel) { }
19707
19733
  ngOnInit() { }
19708
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 }); }
19709
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: [""] }); }
@@ -21330,7 +21356,7 @@ class ElderMasterDetailComponent {
21330
21356
  panelClass: 'custom-dialog-container',
21331
21357
  });
21332
21358
  this.dialogRef.afterClosed().subscribe((result) => {
21333
- console.log('The dialog was closed');
21359
+ this.log.debug('The dialog was closed');
21334
21360
  });
21335
21361
  }
21336
21362
  onCurrentItemChange(active) {
@@ -31126,10 +31152,10 @@ class ElderIntervalPickerComponent {
31126
31152
  }
31127
31153
  const elderInterval = IntervalPickerUtil.createElderInterval(srcInterval);
31128
31154
  if (this.emitType() === 'iso') {
31129
- console.log('emitting type iso', coerceIntervalIsoStr(elderInterval));
31155
+ this.log.debug('emitting type iso', coerceIntervalIsoStr(elderInterval));
31130
31156
  return coerceIntervalIsoStr(elderInterval);
31131
31157
  }
31132
- console.log('emitting type elder interval', elderInterval);
31158
+ this.log.debug('emitting type elder interval', elderInterval);
31133
31159
  return elderInterval;
31134
31160
  }));
31135
31161
  this.manager.anchor$.pipe(takeUntilDestroyed()).subscribe((anchor) => {
@@ -31159,7 +31185,7 @@ class ElderIntervalPickerComponent {
31159
31185
  setTimeout(() => {
31160
31186
  // this prevents ngmodel issue
31161
31187
  this.manager.isInitialized = true;
31162
- console.log('externalInterval', this.externalInterval());
31188
+ this.log.debug('externalInterval', this.externalInterval());
31163
31189
  }, 0);
31164
31190
  }
31165
31191
  ngOnDestroy() {
@@ -31209,7 +31235,7 @@ class ElderIntervalPickerComponent {
31209
31235
  IntervalPickerUtil.updateMatCalendarActiveDate(this.calendarStart, this.calendarEnd, interval.startDate, interval.endDate);
31210
31236
  }
31211
31237
  catch (e) {
31212
- console.debug('Failed to update calendar active date', e);
31238
+ this.log.debug('Failed to update calendar active date', e);
31213
31239
  }
31214
31240
  }
31215
31241
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ElderIntervalPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
@@ -32788,16 +32814,13 @@ class ElderSearchBoxComponent {
32788
32814
  this.queryKey = 'query';
32789
32815
  this._dense = false;
32790
32816
  this.autocomplete = 'off';
32791
- this.touchedSearchInputs$ = searchContextDirective.touchedSearchInputs$
32792
- .pipe();
32817
+ this.touchedSearchInputs$ = searchContextDirective.touchedSearchInputs$;
32793
32818
  effect(() => {
32794
32819
  const customSearchPanel = this.customSearchPanel();
32795
32820
  const overlay = this.overlayComponent();
32796
32821
  if (customSearchPanel) {
32797
32822
  customSearchPanel.overlay.set(overlay);
32798
32823
  }
32799
- }, {
32800
- allowSignalWrites: true,
32801
32824
  });
32802
32825
  }
32803
32826
  /***************************************************************************
@@ -32826,7 +32849,7 @@ class ElderSearchBoxComponent {
32826
32849
  this.searchContextDirective.reset();
32827
32850
  }
32828
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 }); }
32829
- 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 }); }
32830
32853
  }
32831
32854
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ElderSearchBoxComponent, decorators: [{
32832
32855
  type: Component,
@@ -32849,7 +32872,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImpor
32849
32872
  MatButton,
32850
32873
  AsyncPipe,
32851
32874
  TranslateModule,
32852
- ], 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"] }]
32853
32876
  }], ctorParameters: () => [{ type: ElderSearchContextDirective }], propDecorators: { autoPanel: [{
32854
32877
  type: Input
32855
32878
  }], name: [{
@@ -35021,8 +35044,6 @@ class ElderUrlFragmentSwitcherComponent {
35021
35044
  **************************************************************************/
35022
35045
  ngOnInit() {
35023
35046
  if (!this.disable) {
35024
- console.log('URL FRAGMEENTS');
35025
- console.log(this.urlFragments);
35026
35047
  const urlFragment = this.urlFragments.find((c) => {
35027
35048
  try {
35028
35049
  return c.fragment === this.urlRegex.exec(window.location.href)[this.regexArrayIndex];
@@ -35031,8 +35052,6 @@ class ElderUrlFragmentSwitcherComponent {
35031
35052
  return false;
35032
35053
  }
35033
35054
  });
35034
- console.log('URL FRAGMENT');
35035
- console.log(urlFragment);
35036
35055
  if (urlFragment) {
35037
35056
  this.activeUrlFragment$.next(urlFragment);
35038
35057
  }