@elderbyte/ngx-starter 18.0.0 → 18.1.0-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +2 -2
  2. package/esm2022/lib/components/files/elder-file-select-input.mjs +119 -0
  3. package/esm2022/lib/components/files/elder-file-select.directive.mjs +86 -85
  4. package/esm2022/lib/components/files/file-system-api.mjs +88 -0
  5. package/esm2022/lib/components/files/listing/file-entry.mjs +30 -15
  6. package/esm2022/lib/components/files/listing/file-listing-rx.mjs +27 -70
  7. package/esm2022/lib/components/files/listing/file-listing-system-handle.mjs +35 -0
  8. package/esm2022/lib/components/files/listing/file-listing-webkit.mjs +77 -0
  9. package/esm2022/lib/components/forms/public_api.mjs +5 -1
  10. package/esm2022/lib/components/forms/search/domain/input/simple-search-input.mjs +50 -0
  11. package/fesm2022/elderbyte-ngx-starter.mjs +423 -109
  12. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  13. package/lib/components/files/elder-file-select-input.d.ts +59 -0
  14. package/lib/components/files/elder-file-select.directive.d.ts +15 -23
  15. package/lib/components/files/file-system-api.d.ts +82 -0
  16. package/lib/components/files/listing/file-entry.d.ts +10 -1
  17. package/lib/components/files/listing/file-listing-rx.d.ts +2 -6
  18. package/lib/components/files/listing/file-listing-system-handle.d.ts +21 -0
  19. package/lib/components/files/listing/file-listing-webkit.d.ts +26 -0
  20. package/lib/components/forms/public_api.d.ts +4 -0
  21. package/lib/components/forms/search/domain/input/simple-search-input.d.ts +39 -0
  22. package/package.json +1 -1
@@ -5,7 +5,7 @@ import { Pipe, LOCALE_ID, Inject, NgModule, Optional, SkipSelf, Directive, Outpu
5
5
  import * as i1 from '@angular/platform-browser';
6
6
  import { Duration, Period, TemporalQueries, LocalTime, Instant, LocalDate, nativeJs, ZoneId, DateTimeFormatter, convert, ZonedDateTime, Temporal } from '@js-joda/core';
7
7
  import { LoggerFactory } from '@elderbyte/ts-logger';
8
- import { timer, defer, ReplaySubject, concat, finalize, exhaustMap, BehaviorSubject, Subject, switchMap, of, combineLatest, EMPTY, merge, throwError, forkJoin, mergeWith, Observable, zip, mergeMap as mergeMap$1, fromEvent, skipUntil, combineLatestWith as combineLatestWith$1, NEVER } from 'rxjs';
8
+ import { timer, defer, ReplaySubject, concat, finalize, exhaustMap, BehaviorSubject, Subject, switchMap, of, combineLatest, EMPTY, merge, throwError, forkJoin, mergeWith, Observable, from, toArray, zip, mergeMap as mergeMap$1, fromEvent, skipUntil, combineLatestWith as combineLatestWith$1, NEVER } from 'rxjs';
9
9
  import { tap, takeUntil, takeWhile, map, filter, distinctUntilChanged, debounceTime, catchError, first, take, switchMap as switchMap$1, mergeMap, expand, reduce, startWith, skip, delay, share, combineLatestWith, skipWhile, timeout } from 'rxjs/operators';
10
10
  import * as i1$2 from '@angular/common/http';
11
11
  import { HttpParams, HttpEventType, HttpRequest, HttpClient, HttpErrorResponse, HTTP_INTERCEPTORS } from '@angular/common/http';
@@ -36,6 +36,7 @@ import { MatAutocompleteTrigger, MatAutocomplete, MatAutocompleteModule } from '
36
36
  import * as i1$7 from '@angular/material/chips';
37
37
  import { MatChipGrid, MatChipRow, MatChipRemove, MatChipInput, MatChipsModule, MatChip, MatChipAvatar, MatChipSet, MatChipTrailingIcon, MatChipListbox, MatChipOption } from '@angular/material/chips';
38
38
  import { MatInput, MatInputModule } from '@angular/material/input';
39
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
39
40
  import { MatList, MatListSubheaderCssMatStyler, MatListItem, MatListModule } from '@angular/material/list';
40
41
  import { MatProgressBar, MatProgressBarModule } from '@angular/material/progress-bar';
41
42
  import * as i1$5 from '@angular/material/snack-bar';
@@ -50,7 +51,6 @@ import * as i1$6 from '@angular/material/dialog';
50
51
  import { MatDialogClose, MAT_DIALOG_DATA, MatDialogConfig, MatDialogModule } from '@angular/material/dialog';
51
52
  import { MatMenuTrigger, MatMenu, MatMenuItem, MatMenuModule } from '@angular/material/menu';
52
53
  import { MatTooltipModule, MatTooltip } from '@angular/material/tooltip';
53
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
54
54
  import { MatPaginator, MatPaginatorIntl, MatPaginatorModule } from '@angular/material/paginator';
55
55
  import { MatColumnDef, MatRowDef, MatTable, MatHeaderCellDef, MatHeaderCell, MatCellDef, MatCell, MatFooterCellDef, MatFooterCell, MatHeaderRowDef, MatHeaderRow, MatRow, MatFooterRowDef, MatFooterRow, MatTableModule } from '@angular/material/table';
56
56
  import * as i1$8 from '@angular/cdk/table';
@@ -9715,6 +9715,92 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
9715
9715
  }]
9716
9716
  }] });
9717
9717
 
9718
+ /***************************************************************************
9719
+ * *
9720
+ * FileSystem API *
9721
+ * *
9722
+ **************************************************************************/
9723
+ /**
9724
+ * Holds experimental features of the browser `File System API`. No typescript lint checks
9725
+ * are performed here!
9726
+ */
9727
+ class FileSystemApi {
9728
+ /***************************************************************************
9729
+ * *
9730
+ * DataTransferItem *
9731
+ * *
9732
+ **************************************************************************/
9733
+ static isGetAsFileSystemHandleSupported(transferItem) {
9734
+ // @ts-ignore
9735
+ return transferItem.getAsFileSystemHandle !== undefined;
9736
+ }
9737
+ static getAsFileSystemHandle(transferItem) {
9738
+ // @ts-ignore
9739
+ return from(transferItem.getAsFileSystemHandle());
9740
+ }
9741
+ /***************************************************************************
9742
+ * *
9743
+ * File Picker *
9744
+ * *
9745
+ **************************************************************************/
9746
+ static isFileSystemSupported() {
9747
+ return 'showOpenFilePicker' in window;
9748
+ }
9749
+ static openFilePicker(pickerOpts) {
9750
+ try {
9751
+ // @ts-ignore
9752
+ return from(window.showOpenFilePicker(pickerOpts));
9753
+ }
9754
+ catch (e) {
9755
+ return throwError(() => new Error(e));
9756
+ }
9757
+ }
9758
+ /***************************************************************************
9759
+ * *
9760
+ * Directory Picker *
9761
+ * *
9762
+ **************************************************************************/
9763
+ static isDirectoryPickerSupported() {
9764
+ return 'showDirectoryPicker' in window;
9765
+ }
9766
+ static openDirectoryPicker(pickerOpts) {
9767
+ try {
9768
+ // @ts-ignore
9769
+ return from(window.showDirectoryPicker(pickerOpts));
9770
+ }
9771
+ catch (e) {
9772
+ return throwError(() => new Error(e));
9773
+ }
9774
+ }
9775
+ /***************************************************************************
9776
+ * *
9777
+ * FileSystemDirectoryHandle *
9778
+ * *
9779
+ **************************************************************************/
9780
+ static getHandlesFromDirectory(dirHandle) {
9781
+ return from(FileSystemApi.getHandlesFromDirectoryAsync(dirHandle));
9782
+ }
9783
+ static buildRelativeParent(fileOrDirHandle, rootDirectory) {
9784
+ if (rootDirectory == null) {
9785
+ return of(undefined);
9786
+ }
9787
+ const relativeParents$ = from(rootDirectory.resolve(fileOrDirHandle));
9788
+ return relativeParents$.pipe(map(parents => {
9789
+ const path = parents;
9790
+ path.pop();
9791
+ return path.join('/');
9792
+ }));
9793
+ }
9794
+ static async getHandlesFromDirectoryAsync(dirHandle) {
9795
+ const handles = [];
9796
+ // @ts-ignore
9797
+ for await (const handle of dirHandle.values()) {
9798
+ handles.push(handle);
9799
+ }
9800
+ return handles;
9801
+ }
9802
+ }
9803
+
9718
9804
  /**
9719
9805
  * Represents a file and the relative path where the user has selected it.
9720
9806
  * This is useful if the user has selected a folder and files
@@ -9729,26 +9815,24 @@ class FileEntry {
9729
9815
  * which is also supported by this method.
9730
9816
  */
9731
9817
  static ofFile(file) {
9732
- let relativeParent = null;
9733
- if (file.webkitRelativePath) {
9734
- if (file.webkitRelativePath.endsWith(file.name)) {
9735
- const nameStart = file.webkitRelativePath.length - file.name.length;
9736
- relativeParent = file.webkitRelativePath.substring(0, nameStart);
9737
- }
9738
- else {
9739
- relativeParent = file.webkitRelativePath;
9740
- }
9741
- }
9742
- return FileEntry.relativeFile(file, relativeParent);
9818
+ return FileEntry.relativeFile(file, this.buildRelativeParent(file));
9819
+ }
9820
+ /**
9821
+ * Creates an Observable of a File Entry by resolving its FileSystemFileHandle.
9822
+ * @param fileHandle
9823
+ * @param rootDirectory is needed to build a relative parent
9824
+ */
9825
+ static ofFileHandle(fileHandle, rootDirectory) {
9826
+ return from(fileHandle.getFile()).pipe(combineLatestWith(FileSystemApi.buildRelativeParent(fileHandle, rootDirectory)), map(([file, relativeParent]) => FileEntry.relativeFile(file, relativeParent, fileHandle)));
9743
9827
  }
9744
9828
  /**
9745
9829
  * Creates a file Entry with a relative parent path
9746
9830
  */
9747
- static relativeFile(file, relativeParent) {
9831
+ static relativeFile(file, relativeParent, fileHandle) {
9748
9832
  if (relativeParent && relativeParent.endsWith('/')) {
9749
9833
  relativeParent = relativeParent.substring(0, relativeParent.length - 1);
9750
9834
  }
9751
- return new FileEntry(file, relativeParent);
9835
+ return new FileEntry(file, relativeParent, fileHandle);
9752
9836
  }
9753
9837
  static toFileMap(entries) {
9754
9838
  const map = new Map();
@@ -9768,9 +9852,10 @@ class FileEntry {
9768
9852
  * Contains the relative path from the selected folder
9769
9853
  * to this file. Only relevant if the user has selected a folder.
9770
9854
  */
9771
- relativeParent) {
9855
+ relativeParent, fileHandle) {
9772
9856
  this.file = file;
9773
9857
  this.relativeParent = relativeParent;
9858
+ this.fileHandle = fileHandle;
9774
9859
  this.relativePath = FileEntry.buildRelativePath(relativeParent, file);
9775
9860
  }
9776
9861
  /***************************************************************************
@@ -9789,42 +9874,46 @@ class FileEntry {
9789
9874
  return file.name;
9790
9875
  }
9791
9876
  }
9877
+ static buildRelativeParent(file) {
9878
+ let relativeParent = null;
9879
+ if (file.webkitRelativePath) {
9880
+ if (file.webkitRelativePath.endsWith(file.name)) {
9881
+ const nameStart = file.webkitRelativePath.length - file.name.length;
9882
+ relativeParent = file.webkitRelativePath.substring(0, nameStart);
9883
+ }
9884
+ else {
9885
+ relativeParent = file.webkitRelativePath;
9886
+ }
9887
+ }
9888
+ return relativeParent;
9889
+ }
9792
9890
  }
9793
9891
 
9794
- class ElderFileSelectDirective {
9892
+ class ElderFileSelectInput {
9795
9893
  /***************************************************************************
9796
9894
  * *
9797
9895
  * Constructor *
9798
9896
  * *
9799
9897
  **************************************************************************/
9800
- constructor(el, renderer) {
9801
- this.el = el;
9898
+ constructor(renderer, el) {
9802
9899
  this.renderer = renderer;
9900
+ this.el = el;
9803
9901
  /***************************************************************************
9804
9902
  * *
9805
9903
  * Fields *
9806
9904
  * *
9807
9905
  **************************************************************************/
9808
9906
  this.logger = LoggerFactory.getLogger(this.constructor.name);
9809
- this.elderFileSelectChange = new EventEmitter();
9810
- this.elderSingleFileSelectChange = new EventEmitter();
9811
- }
9812
- /***************************************************************************
9813
- * *
9814
- * Life Cycle *
9815
- * *
9816
- **************************************************************************/
9817
- ngOnInit() {
9818
- this.createFileSelect();
9819
- }
9820
- ngOnDestroy() {
9821
- this.removeFileSelect();
9907
+ this._filesSelected = new Subject;
9822
9908
  }
9823
9909
  /***************************************************************************
9824
9910
  * *
9825
9911
  * Properties *
9826
9912
  * *
9827
9913
  **************************************************************************/
9914
+ get filesSelected() {
9915
+ return this._filesSelected;
9916
+ }
9828
9917
  set elderFileSelect(value) {
9829
9918
  this._accept = value;
9830
9919
  if (this._fileInput) {
@@ -9837,11 +9926,6 @@ class ElderFileSelectDirective {
9837
9926
  this.renderer.setProperty(this._fileInput, 'multiple', value);
9838
9927
  }
9839
9928
  }
9840
- /**
9841
- * Allow the user to select a directory. All files that are recursively contained are selected.
9842
- * However, the user will no longer be able to select individual files if this is enabled.
9843
- * @param value
9844
- */
9845
9929
  set elderFileSelectDirectory(value) {
9846
9930
  this._directory = coerceBooleanProperty(value);
9847
9931
  if (this._fileInput) {
@@ -9854,17 +9938,6 @@ class ElderFileSelectDirective {
9854
9938
  * Public API *
9855
9939
  * *
9856
9940
  **************************************************************************/
9857
- onClick(event) {
9858
- this.openFileSelectDialog();
9859
- }
9860
- openFileSelectDialog() {
9861
- this._fileInput.click();
9862
- }
9863
- /***************************************************************************
9864
- * *
9865
- * Private methods *
9866
- * *
9867
- **************************************************************************/
9868
9941
  /**
9869
9942
  * <input type="file"
9870
9943
  * hidden #fileInput
@@ -9888,7 +9961,9 @@ class ElderFileSelectDirective {
9888
9961
  this.renderer.setAttribute(this._fileInput, 'webkitdirectory', 'true');
9889
9962
  this.renderer.setAttribute(this._fileInput, 'directory', 'true');
9890
9963
  }
9891
- this._unlisten = this.renderer.listen(this._fileInput, 'change', event => this.fileInputChanged(event));
9964
+ this._unlisten = this.renderer.listen(this._fileInput, 'change', event => {
9965
+ this.fileInputChanged(this._fileInput.files);
9966
+ });
9892
9967
  }
9893
9968
  removeFileSelect() {
9894
9969
  if (this._unlisten) {
@@ -9900,26 +9975,24 @@ class ElderFileSelectDirective {
9900
9975
  this._fileInput = null;
9901
9976
  }
9902
9977
  }
9903
- fileInputChanged(event) {
9904
- const fileList = this._fileInput.files;
9978
+ openFileSelectDialog() {
9979
+ this._fileInput.click();
9980
+ }
9981
+ /***************************************************************************
9982
+ * *
9983
+ * Private methods *
9984
+ * *
9985
+ **************************************************************************/
9986
+ fileInputChanged(fileList) {
9905
9987
  const files = this.toFileEntries(fileList);
9906
9988
  this.logger.debug('fileInputChanged, files:', files);
9907
- this.emitFileList(files);
9908
9989
  this.clearFileList();
9990
+ this._filesSelected.next(files);
9909
9991
  }
9910
9992
  clearFileList() {
9911
9993
  // not nice but works
9912
9994
  this._fileInput.value = null;
9913
9995
  }
9914
- emitFileList(files) {
9915
- if (files.length > 0) {
9916
- this.elderFileSelectChange.next(files);
9917
- this.elderSingleFileSelectChange.emit(files[0].file);
9918
- }
9919
- else {
9920
- this.logger.warn('User did not select any File or the Folder was empty.');
9921
- }
9922
- }
9923
9996
  toFileEntries(fileList) {
9924
9997
  const files = [];
9925
9998
  for (const key in fileList) {
@@ -9929,7 +10002,174 @@ class ElderFileSelectDirective {
9929
10002
  }
9930
10003
  return files;
9931
10004
  }
9932
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderFileSelectDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
10005
+ }
10006
+
10007
+ class FileListingSystemHandle {
10008
+ /***************************************************************************
10009
+ * *
10010
+ * Public methods *
10011
+ * *
10012
+ **************************************************************************/
10013
+ /**
10014
+ * Creates a File Entry Array Observable by resolving its FileSystemHandle.
10015
+ * @returns An `Observable<FileEntry[]>` with the FileSystemFileHandle included
10016
+ */
10017
+ static listFiles(handle, rootDirectory) {
10018
+ switch (handle.kind) {
10019
+ case 'file':
10020
+ return FileEntry.ofFileHandle(handle, rootDirectory).pipe(toArray());
10021
+ case 'directory':
10022
+ return FileListingSystemHandle.listFilesRecursive(handle, rootDirectory);
10023
+ }
10024
+ }
10025
+ /***************************************************************************
10026
+ * *
10027
+ * Private methods *
10028
+ * *
10029
+ **************************************************************************/
10030
+ static listFilesRecursive(dirHandle, rootDirectory) {
10031
+ return FileSystemApi.getHandlesFromDirectory(dirHandle).pipe(map(handles => FileListingSystemHandle.listFilesOfEach(handles, rootDirectory ? rootDirectory : dirHandle)), switchMap(fileEntriesArray$ => zip(fileEntriesArray$)), map(fileEntriesArray => fileEntriesArray.flat()));
10032
+ }
10033
+ static listFilesOfEach(handles, rootDirectory) {
10034
+ return handles.map(fileOrDirHandle => FileListingSystemHandle.listFiles(fileOrDirHandle, rootDirectory));
10035
+ }
10036
+ }
10037
+
10038
+ class ElderFileSelectDirective {
10039
+ /***************************************************************************
10040
+ * *
10041
+ * Constructor *
10042
+ * *
10043
+ **************************************************************************/
10044
+ constructor(renderer, el, destroyRef) {
10045
+ this.renderer = renderer;
10046
+ this.el = el;
10047
+ this.destroyRef = destroyRef;
10048
+ /***************************************************************************
10049
+ * *
10050
+ * Fields *
10051
+ * *
10052
+ **************************************************************************/
10053
+ this.logger = LoggerFactory.getLogger(this.constructor.name);
10054
+ this.elderFileSelectChange = new EventEmitter();
10055
+ this.elderSingleFileSelectChange = new EventEmitter();
10056
+ this._useDirectoryPicker = false;
10057
+ this._legacyInput = new ElderFileSelectInput(this.renderer, this.el);
10058
+ }
10059
+ /***************************************************************************
10060
+ * *
10061
+ * Life Cycle *
10062
+ * *
10063
+ **************************************************************************/
10064
+ ngOnInit() {
10065
+ if (!FileSystemApi.isFileSystemSupported() || !FileSystemApi.isDirectoryPickerSupported()) {
10066
+ this.logger.warn('showOpenFilePicker or showDirectoryPicker is not supported for this browser, falling back to legacy file picker');
10067
+ this._legacyInput.createFileSelect();
10068
+ this._legacyInput.filesSelected.pipe(takeUntilDestroyed(this.destroyRef)).subscribe({
10069
+ next: multiFileChange => {
10070
+ this.elderFileSelectChange.next(multiFileChange);
10071
+ const file = multiFileChange[0]?.file;
10072
+ if (file) {
10073
+ this.elderSingleFileSelectChange.next(file);
10074
+ }
10075
+ }
10076
+ });
10077
+ }
10078
+ }
10079
+ ngOnDestroy() {
10080
+ this._legacyInput.removeFileSelect();
10081
+ }
10082
+ /***************************************************************************
10083
+ * *
10084
+ * Properties *
10085
+ * *
10086
+ **************************************************************************/
10087
+ set elderFileSelect(value) {
10088
+ this._filePickerOptions = {
10089
+ excludeAcceptAllOptions: true,
10090
+ id: this._filePickerOptions?.id,
10091
+ multiple: this._filePickerOptions?.multiple,
10092
+ startIn: this._filePickerOptions?.startIn,
10093
+ types: [this.buildTypeOption(value)]
10094
+ };
10095
+ this._legacyInput.elderFileSelect = value;
10096
+ }
10097
+ buildTypeOption(value) {
10098
+ if (this.isFileExtension(value)) {
10099
+ return {
10100
+ accept: {
10101
+ '*/*': value.trim()
10102
+ .replace(/\s+/g, '')
10103
+ .split(',')
10104
+ }
10105
+ };
10106
+ }
10107
+ else if (this.isMimeType(value)) {
10108
+ return {
10109
+ accept: { [value]: [] }
10110
+ };
10111
+ }
10112
+ return null;
10113
+ }
10114
+ isFileExtension(input) {
10115
+ const regex = new RegExp(/^(\.\w+)(, ?\.\w+)*$/);
10116
+ return regex.test(input);
10117
+ }
10118
+ isMimeType(input) {
10119
+ const regex = new RegExp(/^.+\/.+$/);
10120
+ return regex.test(input);
10121
+ }
10122
+ set elderFileSelectMultiple(value) {
10123
+ this._filePickerOptions = {
10124
+ excludeAcceptAllOptions: this._filePickerOptions?.excludeAcceptAllOptions,
10125
+ id: this._filePickerOptions?.id,
10126
+ multiple: coerceBooleanProperty(value),
10127
+ startIn: this._filePickerOptions?.startIn,
10128
+ types: this._filePickerOptions?.types
10129
+ };
10130
+ this._legacyInput.elderFileSelectMultiple = value;
10131
+ }
10132
+ /**
10133
+ * Allow the user to select a directory. All files that are recursively contained are selected.
10134
+ * However, the user will no longer be able to select individual files if this is enabled.
10135
+ * @param value
10136
+ */
10137
+ set elderFileSelectDirectory(value) {
10138
+ this._useDirectoryPicker = coerceBooleanProperty(value);
10139
+ this._legacyInput.elderFileSelectDirectory = value;
10140
+ }
10141
+ /***************************************************************************
10142
+ * *
10143
+ * Public API *
10144
+ * *
10145
+ **************************************************************************/
10146
+ onClick(event) {
10147
+ if (!this._useDirectoryPicker && FileSystemApi.isFileSystemSupported()) {
10148
+ this.openFilePicker(this._filePickerOptions).subscribe({
10149
+ next: fileList => this.elderFileSelectChange.next(fileList)
10150
+ });
10151
+ }
10152
+ else if (this._useDirectoryPicker && FileSystemApi.isDirectoryPickerSupported()) {
10153
+ this.openDirectoryPicker(this._directoryPickerOptions).subscribe({
10154
+ next: fileList => this.elderFileSelectChange.next(fileList)
10155
+ });
10156
+ }
10157
+ else {
10158
+ this._legacyInput.openFileSelectDialog();
10159
+ }
10160
+ }
10161
+ /***************************************************************************
10162
+ * *
10163
+ * Private methods *
10164
+ * *
10165
+ **************************************************************************/
10166
+ openFilePicker(pickerOpts) {
10167
+ return FileSystemApi.openFilePicker(pickerOpts).pipe(switchMap(files => combineLatest(files.map(file => FileEntry.ofFileHandle(file)))));
10168
+ }
10169
+ openDirectoryPicker(pickerOpts) {
10170
+ return FileSystemApi.openDirectoryPicker(pickerOpts).pipe(switchMap(dir => FileListingSystemHandle.listFiles(dir)));
10171
+ }
10172
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderFileSelectDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Directive }); }
9933
10173
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: ElderFileSelectDirective, isStandalone: true, selector: "[elderFileSelect]", inputs: { elderFileSelect: "elderFileSelect", elderFileSelectMultiple: "elderFileSelectMultiple", elderFileSelectDirectory: "elderFileSelectDirectory" }, outputs: { elderFileSelectChange: "elderFileSelectChange", elderSingleFileSelectChange: "elderSingleFileSelectChange" }, host: { listeners: { "click": "onClick($event)" } }, ngImport: i0 }); }
9934
10174
  }
9935
10175
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderFileSelectDirective, decorators: [{
@@ -9938,7 +10178,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
9938
10178
  selector: '[elderFileSelect]',
9939
10179
  standalone: true
9940
10180
  }]
9941
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { elderFileSelectChange: [{
10181
+ }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.DestroyRef }], propDecorators: { elderFileSelectChange: [{
9942
10182
  type: Output
9943
10183
  }], elderSingleFileSelectChange: [{
9944
10184
  type: Output
@@ -10058,70 +10298,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
10058
10298
  type: Input
10059
10299
  }] } });
10060
10300
 
10061
- class FileListingRx {
10301
+ class FileListingWebkit {
10302
+ /***************************************************************************
10303
+ * *
10304
+ * Constructor *
10305
+ * *
10306
+ **************************************************************************/
10062
10307
  constructor() {
10063
- this.log = LoggerFactory.getLogger(this.constructor.name);
10064
10308
  }
10065
- static { this.INSTANCE = new FileListingRx(); }
10066
10309
  /***************************************************************************
10067
10310
  * *
10068
- * Public API *
10311
+ * Public methods *
10069
10312
  * *
10070
10313
  **************************************************************************/
10071
- toFileList(transferItemList) {
10072
- const obs = [];
10073
- for (let i = 0; i < transferItemList.length; i++) {
10074
- const transferItem = transferItemList[i];
10075
- const entry = transferItem.webkitGetAsEntry();
10076
- if (entry) {
10077
- obs.push(this.listFilesRecursive(entry));
10078
- }
10079
- else {
10080
- const itemAsFile = transferItem.getAsFile();
10081
- if (itemAsFile) {
10082
- obs.push(of([FileEntry.ofFile(itemAsFile)]));
10083
- }
10084
- else {
10085
- if (transferItem.kind == 'file') {
10086
- obs.push(of([
10087
- FileEntry.ofFile(new File([], '', {
10088
- type: transferItem.type
10089
- }))
10090
- ]));
10091
- }
10092
- else {
10093
- this.log.warn('Could not handle DataTransferItem!', transferItem);
10094
- }
10095
- }
10096
- }
10097
- }
10098
- return zip(obs).pipe(map(files => files.flat()));
10099
- }
10100
- listFilesRecursive(entry) {
10101
- return this.listFilesRecursiveAsync(entry, null);
10314
+ static listFilesRecursive(entry) {
10315
+ return FileListingWebkit.listFilesRecursiveAsync(entry, null);
10102
10316
  }
10103
10317
  /***************************************************************************
10104
10318
  * *
10105
10319
  * Private methods *
10106
10320
  * *
10107
10321
  **************************************************************************/
10108
- listFilesRecursiveAsync(entry, parent) {
10322
+ static listFilesRecursiveAsync(entry, parent) {
10109
10323
  if (entry.isDirectory) {
10110
10324
  const directoryEntry = entry;
10111
- return this.readEntries(directoryEntry).pipe(mergeMap$1(entries => zip(entries.map(entry => this.listFilesRecursiveAsync(entry, directoryEntry)))), map(files => files.flat()));
10325
+ return FileListingWebkit.readEntries(directoryEntry).pipe(mergeMap$1(entries => zip(entries.map(entry => this.listFilesRecursiveAsync(entry, directoryEntry)))), map(files => files.flat()));
10112
10326
  }
10113
10327
  else if (entry.isFile) {
10114
10328
  const fileEntry = entry;
10115
- return this.observableFile(fileEntry, parent).pipe(map(file => [file]));
10329
+ return FileListingWebkit.observableFile(fileEntry, parent).pipe(map(file => [file]));
10116
10330
  }
10117
10331
  else {
10118
10332
  return EMPTY;
10119
10333
  }
10120
10334
  }
10121
- observableFile(fileEntry, parent) {
10335
+ static observableFile(fileEntry, parent) {
10122
10336
  return new Observable(observer => {
10123
10337
  fileEntry.file(file => {
10124
- observer.next(FileEntry.relativeFile(file, this.trimStaringSlash(parent?.fullPath)));
10338
+ observer.next(FileEntry.relativeFile(file, FileListingWebkit.trimStaringSlash(parent?.fullPath)));
10125
10339
  observer.complete();
10126
10340
  }, err => {
10127
10341
  observer.error(err);
@@ -10129,7 +10343,7 @@ class FileListingRx {
10129
10343
  });
10130
10344
  });
10131
10345
  }
10132
- trimStaringSlash(path) {
10346
+ static trimStaringSlash(path) {
10133
10347
  if (path) {
10134
10348
  if (path.startsWith('/')) {
10135
10349
  path = path.substring(1);
@@ -10137,12 +10351,12 @@ class FileListingRx {
10137
10351
  }
10138
10352
  return path;
10139
10353
  }
10140
- readEntries(directoryEntry) {
10354
+ static readEntries(directoryEntry) {
10141
10355
  return new Observable(observer => {
10142
- this.consumeReaderToCompletion(observer, directoryEntry.createReader());
10356
+ FileListingWebkit.consumeReaderToCompletion(observer, directoryEntry.createReader());
10143
10357
  });
10144
10358
  }
10145
- consumeReaderToCompletion(observer, directoryReader) {
10359
+ static consumeReaderToCompletion(observer, directoryReader) {
10146
10360
  directoryReader.readEntries(entries => {
10147
10361
  if (entries && entries.length > 0) {
10148
10362
  observer.next(entries);
@@ -10158,6 +10372,60 @@ class FileListingRx {
10158
10372
  }
10159
10373
  }
10160
10374
 
10375
+ class FileListingRx {
10376
+ constructor() {
10377
+ this.log = LoggerFactory.getLogger(this.constructor.name);
10378
+ }
10379
+ static { this.INSTANCE = new FileListingRx(); }
10380
+ /***************************************************************************
10381
+ * *
10382
+ * Public API *
10383
+ * *
10384
+ **************************************************************************/
10385
+ toFileList(transferItemList) {
10386
+ const obs = [];
10387
+ for (let i = 0; i < transferItemList.length; i++) {
10388
+ const transferItem = transferItemList[i];
10389
+ obs.push(this.resolveTransferItem(transferItem));
10390
+ }
10391
+ return zip(obs).pipe(map(files => files.flat()));
10392
+ }
10393
+ /***************************************************************************
10394
+ * *
10395
+ * Private methods *
10396
+ * *
10397
+ **************************************************************************/
10398
+ resolveTransferItem(transferItem) {
10399
+ if (FileSystemApi.isGetAsFileSystemHandleSupported(transferItem)) {
10400
+ return FileSystemApi.getAsFileSystemHandle(transferItem).pipe(switchMap(handle => FileListingSystemHandle.listFiles(handle)));
10401
+ }
10402
+ const entry = transferItem.webkitGetAsEntry();
10403
+ if (entry) {
10404
+ return FileListingWebkit.listFilesRecursive(entry);
10405
+ }
10406
+ return this.legacyFileListing(transferItem);
10407
+ }
10408
+ legacyFileListing(transferItem) {
10409
+ const itemAsFile = transferItem.getAsFile();
10410
+ if (itemAsFile) {
10411
+ return of([FileEntry.ofFile(itemAsFile)]);
10412
+ }
10413
+ else {
10414
+ if (transferItem.kind == 'file') {
10415
+ return of([
10416
+ FileEntry.ofFile(new File([], '', {
10417
+ type: transferItem.type
10418
+ }))
10419
+ ]);
10420
+ }
10421
+ else {
10422
+ this.log.warn('Could not handle DataTransferItem!', transferItem);
10423
+ return of([]);
10424
+ }
10425
+ }
10426
+ }
10427
+ }
10428
+
10161
10429
  class ElderFileDropZoneDirective {
10162
10430
  /***************************************************************************
10163
10431
  * *
@@ -16645,7 +16913,7 @@ class ElderTableActivationDirective {
16645
16913
  ngAfterViewInit() {
16646
16914
  const rows$ = this.elderTable.rows$;
16647
16915
  const data$ = this.elderTable.dataContext$.pipe(switchMap$1(dc => dc.data), tap(data => this._data = data));
16648
- +combineLatest([rows$, data$]).pipe(takeUntil(this.destroy$)).subscribe(([rows, data]) => {
16916
+ combineLatest([rows$, data$]).pipe(takeUntil(this.destroy$)).subscribe(([rows, data]) => {
16649
16917
  this.rows$.next(this.rowDataUpdated(rows, data));
16650
16918
  this.handleAutoActivations();
16651
16919
  });
@@ -30068,6 +30336,52 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
30068
30336
  }]
30069
30337
  }] });
30070
30338
 
30339
+ class SimpleSearchInput {
30340
+ /***************************************************************************
30341
+ * *
30342
+ * Constructor *
30343
+ * *
30344
+ **************************************************************************/
30345
+ constructor(queryKey, _readonly) {
30346
+ this.queryKey = queryKey;
30347
+ this._readonly = _readonly;
30348
+ this._resetRequest = new Subject();
30349
+ this._state = new BehaviorSubject(SearchInputState.of(queryKey, [new Filter(queryKey, null)], true, false));
30350
+ this._inputConverter = DefaultInputFilterConverter.of(() => queryKey);
30351
+ }
30352
+ /***************************************************************************
30353
+ * *
30354
+ * Public API *
30355
+ * *
30356
+ **************************************************************************/
30357
+ applyFilters(filters) {
30358
+ this.value = this._inputConverter.convertToValue(filters);
30359
+ }
30360
+ /***************************************************************************
30361
+ * *
30362
+ * Properties *
30363
+ * *
30364
+ **************************************************************************/
30365
+ set value(value) {
30366
+ this._state.next(this.stateSnapshot.withFilter(new Filter(this.queryKey, value ? value : null)));
30367
+ }
30368
+ get state$() {
30369
+ return this._state.asObservable();
30370
+ }
30371
+ get stateSnapshot() {
30372
+ return this._state.getValue();
30373
+ }
30374
+ get resetRequest() {
30375
+ return this._resetRequest;
30376
+ }
30377
+ get readonly() {
30378
+ return this._readonly;
30379
+ }
30380
+ reset() {
30381
+ this._resetRequest.next();
30382
+ }
30383
+ }
30384
+
30071
30385
  /**
30072
30386
  * @deprecated Please switch to the RestClient*s (RestClientList, RestClientPaged etc)
30073
30387
  */
@@ -33384,5 +33698,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
33384
33698
  * Generated bundle index. Do not edit.
33385
33699
  */
33386
33700
 
33387
- export { ActivationEventSource, Arrays, AuditedEntity, AutoStartSpec, BlobUrl, BytesFormat, BytesPerSecondFormat, BytesPipe, CardDropEvent, CardOrganizerData, CardStack, CollectionUtil, ComparatorBuilder, ConfirmDialogConfig, ContinuableListing, CsvColumnSpec, CsvSerializer, CsvSpec, CsvStreamExporter, CsvStreamExporterBuilder, CsvStreamExporterBuilderService, Currency, CurrencyCode, CurrencyFormatUtil, CurrencyUnit, CurrencyUnitRegistry, CustomDateAdapter, DataContextActivePage, DataContextAutoStarter, DataContextBase, DataContextBuilder, DataContextContinuableBase, DataContextContinuablePaged, DataContextContinuableToken, DataContextLifeCycleBinding, DataContextSelectionDirective, DataContextSimple, DataContextSnapshot, DataContextSourceEventBinding, DataContextStateIndicatorComponent, DataContextStatus, DataSourceAdapter, DataSourceBase, DataSourceChangeEvent, DataSourceChangeType, DataSourceProcessor, DataTransferFactory, DataTransferProgress, DataTransferProgressAggregate, DataTransferState, DataTransferStatus, DataViewIframeAdapterDirective, DataViewIframeComponent, DataViewMessage, DataViewMessageTypeValues, DataViewOptionsProviderBinding, DataViewSelection, DataViewSelectionInit, DateUtil, DelegateContinuableDataSource, DelegateDataSource, DelegateListDataSource, DelegatePagedDataSource, Dimensions, DrawerOutletBinding, DurationBucket, DurationFormat, DurationFormatUtil, ELDER_DATA_VIEW, ELDER_SELECT_BASE, ElderAccessDeniedComponent, ElderAccessDeniedModule, ElderAppHeaderComponent, ElderAuditModule, ElderAuditedEntityComponent, ElderAutoSelectFirstDirective, ElderAutoSelectSuggestFirstDirective, ElderAutocompleteDirective, ElderAutocompleteManyDirective, ElderAutocompleteModule, ElderBadgeChipAvatarDirective, ElderBadgeChipDirective, ElderBadgeComponent, ElderBadgeDirective, ElderBadgeModule, ElderBlobViewerComponent, ElderBreadCrumbsComponent, ElderBreadCrumbsModule, ElderButtonGroupComponent, ElderButtonGroupModule, ElderCardComponent, ElderCardContentDirective, ElderCardHeaderActionsDirective, ElderCardHeaderComponent, ElderCardModule, ElderCardOrganizerComponent, ElderCardOrganizerModule, ElderCardPanelComponent, ElderCardStackComponent, ElderCardSubtitleDirective, ElderCardTitleDirective, ElderCheckboxState, ElderChipLabelDirective, ElderChipListSelectComponent, ElderChipListSelectModule, ElderChipsIncludeExcludeDirective, ElderChipsModule, ElderClearSelectDirective, ElderClipboardPutDirective, ElderClipboardService, ElderConfirmDialogComponent, ElderConnectivityModule, ElderConnectivityService, ElderContainersModule, ElderCsvExportBtnComponent, ElderCsvModule, ElderCurrencyModule, ElderCurrencyPipe, ElderDataCommonModule, ElderDataToolbarComponent, ElderDataTransferModule, ElderDataTransferService, ElderDataViewBaseComponent, ElderDataViewOptions, ElderDataViewOptionsProvider, ElderDateSwitcherComponent, ElderDateTimeInputComponent, ElderDelayedFocusDirective, ElderDeleteActiveDirective, ElderDetailDialogComponent, ElderDetailDirective, ElderDialogConfig, ElderDialogModule, ElderDialogPanelComponent, ElderDialogService, ElderDimensionsInputComponent, ElderDropZoneComponent, ElderDurationInputComponent, ElderEntityValueAccessorUtil, ElderEnumTranslationService, ElderErrorModule, ElderEventSourceService, ElderExceptionDetailComponent, ElderExpandToggleButtonComponent, ElderExpandToggleButtonModule, ElderFileDropZoneDirective, ElderFileModule, ElderFileSelectComponent, ElderFileSelectDirective, ElderFileUploadComponent, ElderFilterChipTemplateComponent, ElderFormFieldControlBase, ElderFormFieldDenseDirective, ElderFormFieldLabelDirective, ElderFormFieldNoHintDirective, ElderFormFieldNoSpinnerDirective, ElderFormsDirectivesModule, ElderFormsModule, ElderFromFieldBase, ElderFromFieldEntityBase, ElderFromFieldMultiEntityBase, ElderGlobalSearchComponent, ElderGlobalSearchModule, ElderGlobalSearchService, ElderGridComponent, ElderGridModule, ElderGridTileDirective, ElderGridToolbarDirective, ElderHeaderComponent, ElderHeaderModule, ElderHttpClient, ElderI18nEntitiesModule, ElderIFrameModule, ElderInfiniteAutocompleteDirective, ElderInfiniteScrollDirective, ElderInfiniteScrollModule, ElderInputPatternDirective, ElderIntervalInputComponent, ElderKeyEventDirective, ElderLabelInputComponent, ElderLabelsModule, ElderLanguageConfig, ElderLanguageInterceptor, ElderLanguageModule, ElderLanguageService, ElderLanguageSwitcherComponent, ElderLocalDateInputComponent, ElderLocalTimeInputComponent, ElderLocalesDeChModule, ElderLocalizedInputComponent, ElderLocalizedInputDialogComponent, ElderLocalizedInputDialogService, ElderLocalizedInputTableComponent, ElderLocalizedTextColumnDirective, ElderLocalizedTextsDirective, ElderMasterActivationDirective, ElderMasterDetailComponent, ElderMasterDetailModule, ElderMasterDetailService, ElderMasterDirective, ElderMaxValidator, ElderMeasuresModule, ElderMinValidator, ElderMultiEntityValueAccessorUtil, ElderMultiSelectAllInitialDirective, ElderMultiSelectBase, ElderMultiSelectChipOptionsComponent, ElderMultiSelectChipsComponent, ElderMultiSelectFormField, ElderMultipleOfUtil, ElderMultipleOfValidator, ElderNavGroupComponent, ElderNavLinkComponent, ElderNavListComponent, ElderNavModule, ElderNextFocusableDirective, ElderNumberCellDirective, ElderOfflineIndicatorComponent, ElderOverlayComponent, ElderOverlayModule, ElderOverlayOriginDirective, ElderOverlayRef, ElderOverlayTriggerDirective, ElderPaddingDirective, ElderPanelComponent, ElderPanelModule, ElderPeriodInputComponent, ElderPipesModule, ElderPlugParentFormDirective, ElderProgressBarComponent, ElderProgressBarModule, ElderQuantityFormFieldComponent, ElderQuantityInputControlComponent, ElderQuantityModule, ElderQuantityPipe, ElderQuantityRangeValidator, ElderQuantityService, ElderQuantityTransformPipe, ElderQuestionDialogComponent, ElderRepeatPipe, ElderRepeatPipeLegacy, ElderRequiredDimensionsValidator, ElderRequiredIgnoreZeroValidator, ElderRequiredQuantityValidator, ElderRoundPipe, ElderRouteOutletDrawerService, ElderRouterOutletService, ElderRouterService, ElderSafeUrlPipe, ElderScrollContainerComponent, ElderScrollbarDirective, ElderScrollbarModule, ElderSearchBoxComponent, ElderSearchContextDirective, ElderSearchIncludeExcludeDirective, ElderSearchInputDirective, ElderSearchModule, ElderSearchPanelComponent, ElderSearchUrlDirective, ElderSelectBase, ElderSelectChipAvatarDirective, ElderSelectChipDirective, ElderSelectComponent, ElderSelectComponentState, ElderSelectCustomInputDirective, ElderSelectFormField, ElderSelectModule, ElderSelectOnTabDirective, ElderSelectOptionComponent, ElderSelectValueDirective, ElderSelectionDialogComponent, ElderSelectionDialogDirective, ElderSelectionMasterCheckboxComponent, ElderSelectionPopupTriggerAdapterDirective, ElderShellCenterDirective, ElderShellComponent, ElderShellModule, ElderShellNavigationToggleComponent, ElderShellService, ElderShellSideLeftDirective, ElderShellSideRightDirective, ElderShellSlotDirective, ElderSimpleSelectionViewComponent, ElderSimpleSelectionViewModule, ElderSingleSortComponent, ElderStackCardDirective, ElderStopEventPropagationDirective, ElderSuggestionPanelComponent, ElderSvgViewerComponent, ElderTabDirective, ElderTabFocusTrapDirective, ElderTabGroupRoutingDirective, ElderTabModule, ElderTableActivationDirective, ElderTableComponent, ElderTableExtensionDirective, ElderTableGroup, ElderTableModel, ElderTableModelCdkTableBinding, ElderTableModelQueryGroup, ElderTableModule, ElderTableProviders, ElderTableRootDirective, ElderTableSortDirective, ElderTableToolbarDirective, ElderThemeApplierDirective, ElderThemeDirective, ElderThemeModule, ElderThemePreferenceService, ElderThemeService, ElderThemeToggleComponent, ElderTimeModule, ElderToastModule, ElderToastService, ElderTogglePanelComponent, ElderTogglePanelPrimaryDirective, ElderTogglePanelSecondaryDirective, ElderTogglePanelTriggerDirective, ElderToolbarColumnDirective, ElderToolbarComponent, ElderToolbarContentDirective, ElderToolbarModule, ElderToolbarService, ElderToolbarTitleComponent, ElderToolbarTitleService, ElderTouchedDirective, ElderTrimPipe, ElderTripleStateCheckboxDirective, ElderTruncatePipe, ElderUnitSelectDirective, ElderUnitService, ElderUrlFragment, ElderUrlFragmentModule, ElderUrlFragmentParamsService, ElderUrlFragmentSwitcherComponent, ElderValidationErrorDirective, ElderViewersModule, EntitySetPatch, ErrorUtil, ExceptionDetailCtx, FileEntry, FileListingRx, FileUploadClient, Filter, FilterContext, FilterUtil, FocusUtil, FormFieldBaseComponent, GlobalDragDropService, HttpClientBuilder, HttpClientPristine, HttpDataTransfer, HttpDataTransferAggregateComponent, HttpDataTransferComponent, HttpDataTransferIndicatorComponent, HttpDataTransferOverviewComponent, HttpParamsBuilder, I18nBase, I18nPickAsyncPipe, I18nPickPipe, I18nText, IFrameState, IframeCloseDirective, IframeDialogComponent, IframeHostComponent, IframeService, IframeSideContentComponent, IncludeExcludeSelectionModel, IncludeExcludeState, IncludeExcludeValue, IndexedEntities, InternalRestClientConfig, Interval, IsoDurationPipe, IsoIntervalFormatUtil, IsoIntervalParsePipe, IsoIntervalPipe, ItemActivationEvent, ItemActivationOptions, JsonMapUtil, KafentConfig, KafentEvent, KafentEventService, KafentEventStream, KafentEventStreamDisabled, KafentEventStreamSse, KafentEventTransport, KafentModule, KafentSseEventChannel, KafentTokenProvider, KafentTokenProviderSessionStorage, KafentTopicSse, KnownElderThemes, KnownLocaleTags, LocalListDataSource, LocalPagedDataSource, LocalisationPickerService, MasterDetailActivationEvent, MasterSelectionState, MatTableDataContextBinding, MatTableDataContextBindingBuilder, MultiModelBaseComponent, NextNumberUtil, Objects, OnlineStatus, Page, PageRequest, Pageable, ParseUtil, Path, PathNode, PeriodBucket, PeriodDuration, PeriodFormat, ProcessIterationContext, ProcessState, PropertyPathUtil, Quantity, QueryListBinding, QuestionDialogConfig, ReactiveEventSource, ReactiveEventSourceState, ReactiveFetchEventSource, ReactiveFetchEventSourceService, ReactiveMap, ReactiveSSeMessage, RefreshingEntity, RestClient, RestClientConfig, RestClientContinuable, RestClientList, RestClientPaged, SearchQuery, SelectChipSpecUtil, SelectOptionChipSpecUtil, SelectionModel, SelectionModelPopupDirective, Sets, SimpleLocalisationPicker, Sort, SortOption, SortUtil, StandardToastComponent, SubBar, SuggestionProvider, TemplateCompositeControl, TemplatedSelectionDialogComponent, ThemeSpec, TimeAgoPipe, TimeDurationPipe, TimeUtil, ToIsoDateStringPipe, ToastType, TokenChunkRequest, ToolbarHeader, Translated, TranslatedConverter, TranslatedEnumValue, TranslatedText, TypedEventMessage, Unit, UnitDimension, UnitDimensionInfo, UnitInfo, UnitRegistry, UrlBuilder, UrlQueryParams, UuidUtil, ValueAccessorBase, ValueWrapper, ViewProviders, WeightPipe, alphaNumStringComparator, buildFormIntegrationProviders, coerceInterval, coerceIntervalIsoStr, createDataOptionsProvider, createSelectionModel, existingOrNewElderTableModel, initSearchUrlService, isActivePagedDataContext, isContinuableDataContext, isContinuableDataSource, isDataContext, isDataSource, isDataViewMessageType, isElderEntityValueAccessor, isElderMultiEntityValueAccessor, isListDataSource, isPagedDataSource, lazySample, lazySampleTime, naturalValueComparator, newElderTableModel, proxyControlContainer, registerLocale, runInZone, themeInit };
33701
+ export { ActivationEventSource, Arrays, AuditedEntity, AutoStartSpec, BlobUrl, BytesFormat, BytesPerSecondFormat, BytesPipe, CardDropEvent, CardOrganizerData, CardStack, CollectionUtil, ComparatorBuilder, ConfirmDialogConfig, ContinuableListing, CsvColumnSpec, CsvSerializer, CsvSpec, CsvStreamExporter, CsvStreamExporterBuilder, CsvStreamExporterBuilderService, Currency, CurrencyCode, CurrencyFormatUtil, CurrencyUnit, CurrencyUnitRegistry, CustomDateAdapter, DataContextActivePage, DataContextAutoStarter, DataContextBase, DataContextBuilder, DataContextContinuableBase, DataContextContinuablePaged, DataContextContinuableToken, DataContextLifeCycleBinding, DataContextSelectionDirective, DataContextSimple, DataContextSnapshot, DataContextSourceEventBinding, DataContextStateIndicatorComponent, DataContextStatus, DataSourceAdapter, DataSourceBase, DataSourceChangeEvent, DataSourceChangeType, DataSourceProcessor, DataTransferFactory, DataTransferProgress, DataTransferProgressAggregate, DataTransferState, DataTransferStatus, DataViewIframeAdapterDirective, DataViewIframeComponent, DataViewMessage, DataViewMessageTypeValues, DataViewOptionsProviderBinding, DataViewSelection, DataViewSelectionInit, DateUtil, DelegateContinuableDataSource, DelegateDataSource, DelegateListDataSource, DelegatePagedDataSource, Dimensions, DrawerOutletBinding, DurationBucket, DurationFormat, DurationFormatUtil, ELDER_DATA_VIEW, ELDER_SELECT_BASE, ElderAccessDeniedComponent, ElderAccessDeniedModule, ElderAppHeaderComponent, ElderAuditModule, ElderAuditedEntityComponent, ElderAutoSelectFirstDirective, ElderAutoSelectSuggestFirstDirective, ElderAutocompleteDirective, ElderAutocompleteManyDirective, ElderAutocompleteModule, ElderBadgeChipAvatarDirective, ElderBadgeChipDirective, ElderBadgeComponent, ElderBadgeDirective, ElderBadgeModule, ElderBlobViewerComponent, ElderBreadCrumbsComponent, ElderBreadCrumbsModule, ElderButtonGroupComponent, ElderButtonGroupModule, ElderCardComponent, ElderCardContentDirective, ElderCardHeaderActionsDirective, ElderCardHeaderComponent, ElderCardModule, ElderCardOrganizerComponent, ElderCardOrganizerModule, ElderCardPanelComponent, ElderCardStackComponent, ElderCardSubtitleDirective, ElderCardTitleDirective, ElderCheckboxState, ElderChipLabelDirective, ElderChipListSelectComponent, ElderChipListSelectModule, ElderChipsIncludeExcludeDirective, ElderChipsModule, ElderClearSelectDirective, ElderClipboardPutDirective, ElderClipboardService, ElderConfirmDialogComponent, ElderConnectivityModule, ElderConnectivityService, ElderContainersModule, ElderCsvExportBtnComponent, ElderCsvModule, ElderCurrencyModule, ElderCurrencyPipe, ElderDataCommonModule, ElderDataToolbarComponent, ElderDataTransferModule, ElderDataTransferService, ElderDataViewBaseComponent, ElderDataViewOptions, ElderDataViewOptionsProvider, ElderDateSwitcherComponent, ElderDateTimeInputComponent, ElderDelayedFocusDirective, ElderDeleteActiveDirective, ElderDetailDialogComponent, ElderDetailDirective, ElderDialogConfig, ElderDialogModule, ElderDialogPanelComponent, ElderDialogService, ElderDimensionsInputComponent, ElderDropZoneComponent, ElderDurationInputComponent, ElderEntityValueAccessorUtil, ElderEnumTranslationService, ElderErrorModule, ElderEventSourceService, ElderExceptionDetailComponent, ElderExpandToggleButtonComponent, ElderExpandToggleButtonModule, ElderFileDropZoneDirective, ElderFileModule, ElderFileSelectComponent, ElderFileSelectDirective, ElderFileUploadComponent, ElderFilterChipTemplateComponent, ElderFormFieldControlBase, ElderFormFieldDenseDirective, ElderFormFieldLabelDirective, ElderFormFieldNoHintDirective, ElderFormFieldNoSpinnerDirective, ElderFormsDirectivesModule, ElderFormsModule, ElderFromFieldBase, ElderFromFieldEntityBase, ElderFromFieldMultiEntityBase, ElderGlobalSearchComponent, ElderGlobalSearchModule, ElderGlobalSearchService, ElderGridComponent, ElderGridModule, ElderGridTileDirective, ElderGridToolbarDirective, ElderHeaderComponent, ElderHeaderModule, ElderHttpClient, ElderI18nEntitiesModule, ElderIFrameModule, ElderInfiniteAutocompleteDirective, ElderInfiniteScrollDirective, ElderInfiniteScrollModule, ElderInputPatternDirective, ElderIntervalInputComponent, ElderKeyEventDirective, ElderLabelInputComponent, ElderLabelsModule, ElderLanguageConfig, ElderLanguageInterceptor, ElderLanguageModule, ElderLanguageService, ElderLanguageSwitcherComponent, ElderLocalDateInputComponent, ElderLocalTimeInputComponent, ElderLocalesDeChModule, ElderLocalizedInputComponent, ElderLocalizedInputDialogComponent, ElderLocalizedInputDialogService, ElderLocalizedInputTableComponent, ElderLocalizedTextColumnDirective, ElderLocalizedTextsDirective, ElderMasterActivationDirective, ElderMasterDetailComponent, ElderMasterDetailModule, ElderMasterDetailService, ElderMasterDirective, ElderMaxValidator, ElderMeasuresModule, ElderMinValidator, ElderMultiEntityValueAccessorUtil, ElderMultiSelectAllInitialDirective, ElderMultiSelectBase, ElderMultiSelectChipOptionsComponent, ElderMultiSelectChipsComponent, ElderMultiSelectFormField, ElderMultipleOfUtil, ElderMultipleOfValidator, ElderNavGroupComponent, ElderNavLinkComponent, ElderNavListComponent, ElderNavModule, ElderNextFocusableDirective, ElderNumberCellDirective, ElderOfflineIndicatorComponent, ElderOverlayComponent, ElderOverlayModule, ElderOverlayOriginDirective, ElderOverlayRef, ElderOverlayTriggerDirective, ElderPaddingDirective, ElderPanelComponent, ElderPanelModule, ElderPeriodInputComponent, ElderPipesModule, ElderPlugParentFormDirective, ElderProgressBarComponent, ElderProgressBarModule, ElderQuantityFormFieldComponent, ElderQuantityInputControlComponent, ElderQuantityModule, ElderQuantityPipe, ElderQuantityRangeValidator, ElderQuantityService, ElderQuantityTransformPipe, ElderQuestionDialogComponent, ElderRepeatPipe, ElderRepeatPipeLegacy, ElderRequiredDimensionsValidator, ElderRequiredIgnoreZeroValidator, ElderRequiredQuantityValidator, ElderRoundPipe, ElderRouteOutletDrawerService, ElderRouterOutletService, ElderRouterService, ElderSafeUrlPipe, ElderScrollContainerComponent, ElderScrollbarDirective, ElderScrollbarModule, ElderSearchBoxComponent, ElderSearchContextDirective, ElderSearchIncludeExcludeDirective, ElderSearchInputDirective, ElderSearchModule, ElderSearchPanelComponent, ElderSearchUrlDirective, ElderSelectBase, ElderSelectChipAvatarDirective, ElderSelectChipDirective, ElderSelectComponent, ElderSelectComponentState, ElderSelectCustomInputDirective, ElderSelectFormField, ElderSelectModule, ElderSelectOnTabDirective, ElderSelectOptionComponent, ElderSelectValueDirective, ElderSelectionDialogComponent, ElderSelectionDialogDirective, ElderSelectionMasterCheckboxComponent, ElderSelectionPopupTriggerAdapterDirective, ElderShellCenterDirective, ElderShellComponent, ElderShellModule, ElderShellNavigationToggleComponent, ElderShellService, ElderShellSideLeftDirective, ElderShellSideRightDirective, ElderShellSlotDirective, ElderSimpleSelectionViewComponent, ElderSimpleSelectionViewModule, ElderSingleSortComponent, ElderStackCardDirective, ElderStopEventPropagationDirective, ElderSuggestionPanelComponent, ElderSvgViewerComponent, ElderTabDirective, ElderTabFocusTrapDirective, ElderTabGroupRoutingDirective, ElderTabModule, ElderTableActivationDirective, ElderTableComponent, ElderTableExtensionDirective, ElderTableGroup, ElderTableModel, ElderTableModelCdkTableBinding, ElderTableModelQueryGroup, ElderTableModule, ElderTableProviders, ElderTableRootDirective, ElderTableSortDirective, ElderTableToolbarDirective, ElderThemeApplierDirective, ElderThemeDirective, ElderThemeModule, ElderThemePreferenceService, ElderThemeService, ElderThemeToggleComponent, ElderTimeModule, ElderToastModule, ElderToastService, ElderTogglePanelComponent, ElderTogglePanelPrimaryDirective, ElderTogglePanelSecondaryDirective, ElderTogglePanelTriggerDirective, ElderToolbarColumnDirective, ElderToolbarComponent, ElderToolbarContentDirective, ElderToolbarModule, ElderToolbarService, ElderToolbarTitleComponent, ElderToolbarTitleService, ElderTouchedDirective, ElderTrimPipe, ElderTripleStateCheckboxDirective, ElderTruncatePipe, ElderUnitSelectDirective, ElderUnitService, ElderUrlFragment, ElderUrlFragmentModule, ElderUrlFragmentParamsService, ElderUrlFragmentSwitcherComponent, ElderValidationErrorDirective, ElderViewersModule, EntitySetPatch, ErrorUtil, ExceptionDetailCtx, FileEntry, FileListingRx, FileUploadClient, Filter, FilterContext, FilterUtil, FocusUtil, FormFieldBaseComponent, GlobalDragDropService, HttpClientBuilder, HttpClientPristine, HttpDataTransfer, HttpDataTransferAggregateComponent, HttpDataTransferComponent, HttpDataTransferIndicatorComponent, HttpDataTransferOverviewComponent, HttpParamsBuilder, I18nBase, I18nPickAsyncPipe, I18nPickPipe, I18nText, IFrameState, IframeCloseDirective, IframeDialogComponent, IframeHostComponent, IframeService, IframeSideContentComponent, IncludeExcludeSelectionModel, IncludeExcludeState, IncludeExcludeValue, IndexedEntities, InternalRestClientConfig, Interval, IsoDurationPipe, IsoIntervalFormatUtil, IsoIntervalParsePipe, IsoIntervalPipe, ItemActivationEvent, ItemActivationOptions, JsonMapUtil, KafentConfig, KafentEvent, KafentEventService, KafentEventStream, KafentEventStreamDisabled, KafentEventStreamSse, KafentEventTransport, KafentModule, KafentSseEventChannel, KafentTokenProvider, KafentTokenProviderSessionStorage, KafentTopicSse, KnownElderThemes, KnownLocaleTags, LocalListDataSource, LocalPagedDataSource, LocalisationPickerService, MasterDetailActivationEvent, MasterSelectionState, MatTableDataContextBinding, MatTableDataContextBindingBuilder, MultiModelBaseComponent, NextNumberUtil, Objects, OnlineStatus, Page, PageRequest, Pageable, ParseUtil, Path, PathNode, PeriodBucket, PeriodDuration, PeriodFormat, ProcessIterationContext, ProcessState, PropertyPathUtil, Quantity, QueryListBinding, QuestionDialogConfig, ReactiveEventSource, ReactiveEventSourceState, ReactiveFetchEventSource, ReactiveFetchEventSourceService, ReactiveMap, ReactiveSSeMessage, RefreshingEntity, RestClient, RestClientConfig, RestClientContinuable, RestClientList, RestClientPaged, SearchInputState, SearchQuery, SelectChipSpecUtil, SelectOptionChipSpecUtil, SelectionModel, SelectionModelPopupDirective, Sets, SimpleLocalisationPicker, SimpleSearchInput, Sort, SortOption, SortUtil, StandardToastComponent, SubBar, SuggestionProvider, TemplateCompositeControl, TemplatedSelectionDialogComponent, ThemeSpec, TimeAgoPipe, TimeDurationPipe, TimeUtil, ToIsoDateStringPipe, ToastType, TokenChunkRequest, ToolbarHeader, Translated, TranslatedConverter, TranslatedEnumValue, TranslatedText, TypedEventMessage, Unit, UnitDimension, UnitDimensionInfo, UnitInfo, UnitRegistry, UrlBuilder, UrlQueryParams, UuidUtil, ValueAccessorBase, ValueWrapper, ViewProviders, WeightPipe, alphaNumStringComparator, buildFormIntegrationProviders, coerceInterval, coerceIntervalIsoStr, createDataOptionsProvider, createSelectionModel, existingOrNewElderTableModel, initSearchUrlService, isActivePagedDataContext, isContinuableDataContext, isContinuableDataSource, isDataContext, isDataSource, isDataViewMessageType, isElderEntityValueAccessor, isElderMultiEntityValueAccessor, isListDataSource, isPagedDataSource, lazySample, lazySampleTime, naturalValueComparator, newElderTableModel, proxyControlContainer, registerLocale, runInZone, themeInit };
33388
33702
  //# sourceMappingURL=elderbyte-ngx-starter.mjs.map