@elderbyte/ngx-starter 13.6.0 → 13.7.2
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.
- package/esm2020/lib/common/utils/collection-util.mjs +4 -1
- package/esm2020/lib/components/select/auto/elder-auto-select-first.directive.mjs +77 -0
- package/esm2020/lib/components/select/auto/elder-select-first-util.mjs +62 -0
- package/esm2020/lib/components/select/elder-select/elder-select.component.mjs +14 -9
- package/esm2020/lib/components/select/elder-select-on-tab.directive.mjs +104 -0
- package/esm2020/lib/components/select/elder-select.module.mjs +11 -11
- package/esm2020/lib/components/select/multi/elder-multi-select-base.mjs +103 -39
- package/esm2020/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +13 -13
- package/fesm2015/elderbyte-ngx-starter.mjs +226 -144
- package/fesm2015/elderbyte-ngx-starter.mjs.map +1 -1
- package/fesm2020/elderbyte-ngx-starter.mjs +226 -144
- package/fesm2020/elderbyte-ngx-starter.mjs.map +1 -1
- package/lib/common/utils/collection-util.d.ts +1 -0
- package/lib/components/select/{auto-select-first.directive.d.ts → auto/elder-auto-select-first.directive.d.ts} +4 -13
- package/lib/components/select/auto/elder-select-first-util.d.ts +22 -0
- package/lib/components/select/elder-select/elder-select.component.d.ts +11 -1
- package/lib/components/select/{select-on-tab.directive.d.ts → elder-select-on-tab.directive.d.ts} +3 -3
- package/lib/components/select/elder-select.module.d.ts +5 -5
- package/lib/components/select/multi/elder-multi-select-base.d.ts +39 -15
- package/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.d.ts +11 -11
- package/package.json +1 -1
- package/esm2020/lib/components/select/auto-select-first.directive.mjs +0 -126
- package/esm2020/lib/components/select/select-on-tab.directive.mjs +0 -104
|
@@ -2237,6 +2237,9 @@ class CollectionUtil {
|
|
|
2237
2237
|
}
|
|
2238
2238
|
return true;
|
|
2239
2239
|
}
|
|
2240
|
+
static hasElements(list) {
|
|
2241
|
+
return list !== null && list !== undefined && list.length > 0;
|
|
2242
|
+
}
|
|
2240
2243
|
}
|
|
2241
2244
|
CollectionUtil.logger = LoggerFactory.getLogger('CollectionUtil');
|
|
2242
2245
|
|
|
@@ -20495,66 +20498,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
|
20495
20498
|
type: Input
|
|
20496
20499
|
}] } });
|
|
20497
20500
|
|
|
20498
|
-
class
|
|
20499
|
-
/***************************************************************************
|
|
20500
|
-
* *
|
|
20501
|
-
* Constructor *
|
|
20502
|
-
* *
|
|
20503
|
-
**************************************************************************/
|
|
20504
|
-
constructor(elderSelect) {
|
|
20505
|
-
this.elderSelect = elderSelect;
|
|
20506
|
-
/***************************************************************************
|
|
20507
|
-
* *
|
|
20508
|
-
* Fields *
|
|
20509
|
-
* *
|
|
20510
|
-
**************************************************************************/
|
|
20511
|
-
this.log = LoggerFactory.getLogger(this.constructor.name);
|
|
20512
|
-
}
|
|
20513
|
-
/***************************************************************************
|
|
20514
|
-
* *
|
|
20515
|
-
* Life Cycle *
|
|
20516
|
-
* *
|
|
20517
|
-
**************************************************************************/
|
|
20518
|
-
ngAfterViewInit() {
|
|
20519
|
-
setTimeout(() => {
|
|
20520
|
-
this.log.info('autoSelectFirst after-view init, auto selecting value');
|
|
20521
|
-
this.handleAutoSelectFirst();
|
|
20522
|
-
}, 10);
|
|
20523
|
-
}
|
|
20524
|
-
/***************************************************************************
|
|
20525
|
-
* *
|
|
20526
|
-
* Properties *
|
|
20527
|
-
* *
|
|
20528
|
-
**************************************************************************/
|
|
20529
|
-
/**
|
|
20530
|
-
* After data is loaded into this select, ensure that
|
|
20531
|
-
* a value is selected or select the first automatically.
|
|
20532
|
-
*/
|
|
20533
|
-
set autoSelectFirstEnabled(val) {
|
|
20534
|
-
this.enabled = coerceBooleanProperty(val);
|
|
20535
|
-
}
|
|
20536
|
-
set enabled(val) {
|
|
20537
|
-
this._enabled = val;
|
|
20538
|
-
}
|
|
20539
|
-
get enabled() {
|
|
20540
|
-
return this._enabled;
|
|
20541
|
-
}
|
|
20501
|
+
class ElderSelectFirstUtil {
|
|
20542
20502
|
/***************************************************************************
|
|
20543
20503
|
* *
|
|
20544
20504
|
* Public methods *
|
|
20545
20505
|
* *
|
|
20546
20506
|
**************************************************************************/
|
|
20547
|
-
trySelectFirst() {
|
|
20548
|
-
const suggestionsDc =
|
|
20507
|
+
static trySelectFirst(elderSelect) {
|
|
20508
|
+
const suggestionsDc = elderSelect.suggestionsDc;
|
|
20549
20509
|
const dataContextFirstItem = (suggestionsDc === null || suggestionsDc === void 0 ? void 0 : suggestionsDc.isStarted)
|
|
20550
20510
|
? this.firstItemInDataContextSoon(suggestionsDc)
|
|
20551
20511
|
: of(null);
|
|
20552
|
-
dataContextFirstItem.pipe(takeUntil(
|
|
20553
|
-
if (firstItem && !
|
|
20554
|
-
|
|
20512
|
+
dataContextFirstItem.pipe(takeUntil(elderSelect.valueChange.pipe(filter(value => !!value))), switchMap(firstItem => firstItem ? of(firstItem) : this.firstSuggestionItem(elderSelect))).subscribe(firstItem => {
|
|
20513
|
+
if (firstItem && !elderSelect.entityId) {
|
|
20514
|
+
elderSelect.updateValueByEntity(firstItem);
|
|
20555
20515
|
}
|
|
20556
20516
|
}, err => {
|
|
20557
|
-
|
|
20517
|
+
elderSelect.updateState(ElderSelectComponentState.error(err));
|
|
20558
20518
|
this.log.error('Failed to load first entity for auto-select-first flow!', err);
|
|
20559
20519
|
});
|
|
20560
20520
|
}
|
|
@@ -20563,54 +20523,37 @@ class AutoSelectFirstDirective {
|
|
|
20563
20523
|
* Private methods *
|
|
20564
20524
|
* *
|
|
20565
20525
|
**************************************************************************/
|
|
20566
|
-
|
|
20567
|
-
if (!this.elderSelect.value) {
|
|
20568
|
-
this.log.debug('Attempting to auto select first entity...');
|
|
20569
|
-
this.trySelectFirst();
|
|
20570
|
-
}
|
|
20571
|
-
else {
|
|
20572
|
-
this.log.warn('Conflict avoided: Aborted auto selection because value id already present!');
|
|
20573
|
-
}
|
|
20574
|
-
}
|
|
20575
|
-
firstItemInDataContextSoon(dataContext) {
|
|
20526
|
+
static firstItemInDataContextSoon(dataContext) {
|
|
20576
20527
|
return dataContext.data.pipe(filter(data => data && data.length > 0), map(data => data[0]), timeout(250), catchError(timeoutError => {
|
|
20577
20528
|
this.log.warn('Gave up waiting for DataContext items, timeout reached. Falling back to sugestion lookup.', timeoutError);
|
|
20578
20529
|
return of(null);
|
|
20579
20530
|
}), first());
|
|
20580
20531
|
}
|
|
20581
|
-
firstSuggestionItem() {
|
|
20582
|
-
const suggestionsDc =
|
|
20532
|
+
static firstSuggestionItem(elderSelect) {
|
|
20533
|
+
const suggestionsDc = elderSelect.suggestionsDc;
|
|
20583
20534
|
const dataSource = suggestionsDc === null || suggestionsDc === void 0 ? void 0 : suggestionsDc.dataSource;
|
|
20584
20535
|
if (dataSource) {
|
|
20585
|
-
|
|
20536
|
+
elderSelect.updateState(ElderSelectComponentState.loading());
|
|
20586
20537
|
return DataSourceAdapter.from(dataSource)
|
|
20587
|
-
.findFirst(
|
|
20538
|
+
.findFirst(elderSelect.filters, elderSelect.sorts).pipe(tap(() => elderSelect.updateState(ElderSelectComponentState.idle())), catchError(err => {
|
|
20588
20539
|
this.log.error('Failed to load suggestions!', err);
|
|
20589
|
-
|
|
20540
|
+
elderSelect.updateState(ElderSelectComponentState.error(err));
|
|
20590
20541
|
return of(null);
|
|
20591
20542
|
}));
|
|
20592
20543
|
}
|
|
20593
20544
|
else {
|
|
20594
20545
|
this.log.warn('Failed to load first suggestion!');
|
|
20595
|
-
|
|
20546
|
+
elderSelect.updateState(ElderSelectComponentState.idle());
|
|
20596
20547
|
return EMPTY;
|
|
20597
20548
|
}
|
|
20598
20549
|
}
|
|
20599
|
-
updateState(state) {
|
|
20600
|
-
this.elderSelect.updateState(state);
|
|
20601
|
-
}
|
|
20602
20550
|
}
|
|
20603
|
-
|
|
20604
|
-
|
|
20605
|
-
|
|
20606
|
-
|
|
20607
|
-
|
|
20608
|
-
|
|
20609
|
-
}]
|
|
20610
|
-
}], ctorParameters: function () { return [{ type: ElderSelectComponent }]; }, propDecorators: { autoSelectFirstEnabled: [{
|
|
20611
|
-
type: Input,
|
|
20612
|
-
args: ['autoSelectFirst']
|
|
20613
|
-
}] } });
|
|
20551
|
+
/***************************************************************************
|
|
20552
|
+
* *
|
|
20553
|
+
* Fields *
|
|
20554
|
+
* *
|
|
20555
|
+
**************************************************************************/
|
|
20556
|
+
ElderSelectFirstUtil.log = LoggerFactory.getLogger('ElderSelectFirstUtil');
|
|
20614
20557
|
|
|
20615
20558
|
class ElderAutocompleteComponent {
|
|
20616
20559
|
/***************************************************************************
|
|
@@ -20780,7 +20723,7 @@ function isElderEntityValueAccessor(object) {
|
|
|
20780
20723
|
&& vac.updateValueByEntity !== undefined;
|
|
20781
20724
|
}
|
|
20782
20725
|
|
|
20783
|
-
class
|
|
20726
|
+
class ElderSelectOnTabDirective {
|
|
20784
20727
|
/***************************************************************************
|
|
20785
20728
|
* *
|
|
20786
20729
|
* Constructor *
|
|
@@ -20857,9 +20800,9 @@ class SelectOnTabDirective {
|
|
|
20857
20800
|
this.destroy$.complete();
|
|
20858
20801
|
}
|
|
20859
20802
|
}
|
|
20860
|
-
|
|
20861
|
-
|
|
20862
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type:
|
|
20803
|
+
ElderSelectOnTabDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ElderSelectOnTabDirective, deps: [{ token: i1$6.MatAutocompleteTrigger }, { token: ELDER_SELECT_BASE, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
20804
|
+
ElderSelectOnTabDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.1", type: ElderSelectOnTabDirective, selector: "[elderSelectOnTab]", host: { listeners: { "keydown.tab": "onBlur()" } }, ngImport: i0 });
|
|
20805
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ElderSelectOnTabDirective, decorators: [{
|
|
20863
20806
|
type: Directive,
|
|
20864
20807
|
args: [{
|
|
20865
20808
|
selector: '[elderSelectOnTab]'
|
|
@@ -21026,6 +20969,8 @@ class ElderSelectComponent extends ElderSelectBase {
|
|
|
21026
20969
|
this.entityIdChange = this.valueChange.pipe(map(v => this.entityIdFromValue(v)));
|
|
21027
20970
|
this.entityChange = this.entity$.pipe(skip(1) // Skip the initial NULL value
|
|
21028
20971
|
);
|
|
20972
|
+
this.entityIdUpdated = this.valueUpdated.pipe(map(value => this.entityIdFromValue(value)));
|
|
20973
|
+
this.entityUpdated = combineLatest([this.entityIdUpdated, this.entity$]).pipe(filter(([updatedId, entity]) => this.getEntityId(entity) === updatedId), map(([updatedId, entity]) => entity));
|
|
21029
20974
|
this.entityWrapped$ = combineLatest([
|
|
21030
20975
|
this.entity$,
|
|
21031
20976
|
this.displayPropertyResolver$,
|
|
@@ -21078,7 +21023,7 @@ class ElderSelectComponent extends ElderSelectBase {
|
|
|
21078
21023
|
* *
|
|
21079
21024
|
**************************************************************************/
|
|
21080
21025
|
set entity(entity) {
|
|
21081
|
-
this.entity$.next(entity);
|
|
21026
|
+
this.entity$.next(entity);
|
|
21082
21027
|
this.writeValueInternal(this.entityToValue(entity));
|
|
21083
21028
|
}
|
|
21084
21029
|
get entity() {
|
|
@@ -21184,8 +21129,7 @@ class ElderSelectComponent extends ElderSelectBase {
|
|
|
21184
21129
|
}
|
|
21185
21130
|
forceReloadFirst() {
|
|
21186
21131
|
this.value = null; // valueId is set to null automatically
|
|
21187
|
-
|
|
21188
|
-
autoReloadFirst.trySelectFirst();
|
|
21132
|
+
ElderSelectFirstUtil.trySelectFirst(this);
|
|
21189
21133
|
}
|
|
21190
21134
|
updateValueByEntity(entity) {
|
|
21191
21135
|
this.updateValue(this.entityToValue(entity));
|
|
@@ -21314,13 +21258,13 @@ class ElderSelectComponent extends ElderSelectBase {
|
|
|
21314
21258
|
}
|
|
21315
21259
|
}
|
|
21316
21260
|
ElderSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ElderSelectComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
21317
|
-
ElderSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: ElderSelectComponent, selector: "elder-select", inputs: { nullDisplay: "nullDisplay", autocomplete: "autocomplete", allowNull: "allowNull", entity: "entity", entityId: "entityId", hintProperty: "hintProperty", hintPropertyResolver: "hintPropertyResolver" }, outputs: { entityIdChange: "entityIdChange", entityChange: "entityChange" }, providers: [
|
|
21261
|
+
ElderSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: ElderSelectComponent, selector: "elder-select", inputs: { nullDisplay: "nullDisplay", autocomplete: "autocomplete", allowNull: "allowNull", entity: "entity", entityId: "entityId", hintProperty: "hintProperty", hintPropertyResolver: "hintPropertyResolver" }, outputs: { entityIdChange: "entityIdChange", entityChange: "entityChange", entityIdUpdated: "entityIdUpdated", entityUpdated: "entityUpdated" }, providers: [
|
|
21318
21262
|
{
|
|
21319
21263
|
provide: ELDER_SELECT_BASE,
|
|
21320
21264
|
useExisting: forwardRef(() => ElderSelectComponent)
|
|
21321
21265
|
},
|
|
21322
21266
|
...buildFormIntegrationProviders(ElderSelectComponent)
|
|
21323
|
-
], usesInheritance: true, ngImport: i0, template: "<mat-form-field *ngIf=\"(entityWrapped$ | async) as entityWrapper\" fxFlex\n class=\"elder-std-form-field\"\n [appearance]=\"appearance\"\n [floatLabel]=\"floatLabel\"\n [color]=\"color\"\n>\n\n <mat-label *ngIf=\"label\">{{label | translate}}</mat-label>\n\n\n <ng-container matPrefix *ngIf=\"(mergedState$ | async) as state\">\n\n <mat-icon *ngIf=\"icon\" disabled\n class=\"leading-icon prefix-padding noselect\"\n [class.loading]=\"state.loading\"\n [color]=\"state?.error ? 'warn' : color\">\n {{icon}}\n </mat-icon>\n\n\n <mat-icon *ngIf=\"!icon && state?.error\"\n class=\"leading-icon prefix-padding noselect\"\n color=\"warn\">\n warning\n </mat-icon>\n </ng-container>\n\n <!-- A dynamic input -->\n <input\n matInput type=\"text\" fxFlex=\"grow\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [readonly]=\"readonly || !autocomplete\"\n [name]=\"name + '-inner-input'\"\n [placeholder]=\"placeholder | translate\"\n [matAutocomplete] #autoTrigger=\"matAutocompleteTrigger\"\n [elderElderAutocomplete]=\"elderAuto\" [queryFilter]=\"queryFilter\" [filters]=\"filters\" [sorts]=\"sorts\"\n elderSelectOnTab\n [class.select]=\"!autocomplete\" (click)=\"onInputClicked(autoTrigger)\"\n [ngModel]=\"inputText$ | async\" [ngModelOptions]=\"{standalone: true, updateOn: 'submit'}\"\n (blur)=\"onInputBlur($event)\"\n >\n\n <!-- This breaks stuff: [displayWith]=\"displayPropertyResolver$ | async\" -->\n\n <elder-autocomplete\n #elderAuto=\"elderAutocomplete\"\n [suggestionsDc]=\"suggestionsDc$ | async\"\n [valueTemplate]=\"valueTemplate\"\n [enabled]=\"autocomplete\"\n [displayPropertyResolver]=\"displayPropertyResolver$ | async\"\n [isOptionDisabledFn]=\"isOptionDisabledInternalFn\"\n [isOptionHiddenFn]=\"isOptionHiddenInternalFn\"\n (optionSelected)=\"onOptionSelected($any($event))\"\n ></elder-autocomplete>\n\n\n <ng-container matSuffix>\n\n <mat-icon\n *ngIf=\"!autocomplete\" class=\"select-arrow noselect\"\n (click)=\"onInputClicked(autoTrigger)\">\n arrow_drop_down\n </mat-icon>\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"selectionPopup && (!entityWrapper.value || !allowNull)\"\n [disabled]=\"isLocked\"\n (click)=\"openSelectionPopup($event)\" aria-label=\"Search\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon>search</mat-icon>\n </button>\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"entityWrapper.value && allowNull\"\n [disabled]=\"isLocked\"\n (click)=\"clear($event)\" aria-label=\"Clear\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon>close</mat-icon>\n </button>\n\n </ng-container>\n\n <mat-hint *ngIf=\"entityWrapper.hintText\">{{entityWrapper.hintText}}</mat-hint>\n\n</mat-form-field>\n\n\n\n", styles: [".prefix-container{width:24px;height:16px}@-webkit-keyframes shrink{0%{transform:scale(1)}to{transform:scale(.75)}}@keyframes shrink{0%{transform:scale(1)}to{transform:scale(.75)}}.loading{animation:shrink .3s ease-in-out infinite alternate;-webkit-animation:shrink .3s ease-in-out infinite alternate}.prefix-padding{padding-right:4px}.leading-icon{font-size:16px;width:16px;height:16px}.full-width{width:100%}.select{cursor:pointer;width:162px}.select-arrow{font-size:18px;width:18px;height:18px;cursor:pointer}\n"], components: [{ type: i1$5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: ElderAutocompleteComponent, selector: "elder-autocomplete", inputs: ["isOptionDisabledFn", "isOptionHiddenFn", "enabled", "valueTemplate", "suggestionsDc", "displayPropertyResolver"], outputs: ["optionSelected"], exportAs: ["elderAutocomplete"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i1$5.MatLabel, selector: "mat-label" }, { type: i1$5.MatPrefix, selector: "[matPrefix]" }, { type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i1$6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i5$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type:
|
|
21267
|
+
], usesInheritance: true, ngImport: i0, template: "<mat-form-field *ngIf=\"(entityWrapped$ | async) as entityWrapper\" fxFlex\n class=\"elder-std-form-field\"\n [appearance]=\"appearance\"\n [floatLabel]=\"floatLabel\"\n [color]=\"color\"\n>\n\n <mat-label *ngIf=\"label\">{{label | translate}}</mat-label>\n\n\n <ng-container matPrefix *ngIf=\"(mergedState$ | async) as state\">\n\n <mat-icon *ngIf=\"icon\" disabled\n class=\"leading-icon prefix-padding noselect\"\n [class.loading]=\"state.loading\"\n [color]=\"state?.error ? 'warn' : color\">\n {{icon}}\n </mat-icon>\n\n\n <mat-icon *ngIf=\"!icon && state?.error\"\n class=\"leading-icon prefix-padding noselect\"\n color=\"warn\">\n warning\n </mat-icon>\n </ng-container>\n\n <!-- A dynamic input -->\n <input\n matInput type=\"text\" fxFlex=\"grow\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [readonly]=\"readonly || !autocomplete\"\n [name]=\"name + '-inner-input'\"\n [placeholder]=\"placeholder | translate\"\n [matAutocomplete] #autoTrigger=\"matAutocompleteTrigger\"\n [elderElderAutocomplete]=\"elderAuto\" [queryFilter]=\"queryFilter\" [filters]=\"filters\" [sorts]=\"sorts\"\n elderSelectOnTab\n [class.select]=\"!autocomplete\" (click)=\"onInputClicked(autoTrigger)\"\n [ngModel]=\"inputText$ | async\" [ngModelOptions]=\"{standalone: true, updateOn: 'submit'}\"\n (blur)=\"onInputBlur($event)\"\n >\n\n <!-- This breaks stuff: [displayWith]=\"displayPropertyResolver$ | async\" -->\n\n <elder-autocomplete\n #elderAuto=\"elderAutocomplete\"\n [suggestionsDc]=\"suggestionsDc$ | async\"\n [valueTemplate]=\"valueTemplate\"\n [enabled]=\"autocomplete\"\n [displayPropertyResolver]=\"displayPropertyResolver$ | async\"\n [isOptionDisabledFn]=\"isOptionDisabledInternalFn\"\n [isOptionHiddenFn]=\"isOptionHiddenInternalFn\"\n (optionSelected)=\"onOptionSelected($any($event))\"\n ></elder-autocomplete>\n\n\n <ng-container matSuffix>\n\n <mat-icon\n *ngIf=\"!autocomplete\" class=\"select-arrow noselect\"\n (click)=\"onInputClicked(autoTrigger)\">\n arrow_drop_down\n </mat-icon>\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"selectionPopup && (!entityWrapper.value || !allowNull)\"\n [disabled]=\"isLocked\"\n (click)=\"openSelectionPopup($event)\" aria-label=\"Search\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon>search</mat-icon>\n </button>\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"entityWrapper.value && allowNull\"\n [disabled]=\"isLocked\"\n (click)=\"clear($event)\" aria-label=\"Clear\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon>close</mat-icon>\n </button>\n\n </ng-container>\n\n <mat-hint *ngIf=\"entityWrapper.hintText\">{{entityWrapper.hintText}}</mat-hint>\n\n</mat-form-field>\n\n\n\n", styles: [".prefix-container{width:24px;height:16px}@-webkit-keyframes shrink{0%{transform:scale(1)}to{transform:scale(.75)}}@keyframes shrink{0%{transform:scale(1)}to{transform:scale(.75)}}.loading{animation:shrink .3s ease-in-out infinite alternate;-webkit-animation:shrink .3s ease-in-out infinite alternate}.prefix-padding{padding-right:4px}.leading-icon{font-size:16px;width:16px;height:16px}.full-width{width:100%}.select{cursor:pointer;width:162px}.select-arrow{font-size:18px;width:18px;height:18px;cursor:pointer}\n"], components: [{ type: i1$5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: ElderAutocompleteComponent, selector: "elder-autocomplete", inputs: ["isOptionDisabledFn", "isOptionHiddenFn", "enabled", "valueTemplate", "suggestionsDc", "displayPropertyResolver"], outputs: ["optionSelected"], exportAs: ["elderAutocomplete"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i1$5.MatLabel, selector: "mat-label" }, { type: i1$5.MatPrefix, selector: "[matPrefix]" }, { type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i1$6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i5$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: ElderSelectOnTabDirective, selector: "[elderSelectOnTab]" }, { type: i5$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: ElderAutocompleteDirective, selector: "[elderElderAutocomplete]", inputs: ["queryFilter", "filters", "sorts", "elderElderAutocomplete"] }, { type: i5$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1$5.MatSuffix, selector: "[matSuffix]" }, { type: ElderStopEventPropagationDirective, selector: "[elderStopEventPropagation]" }, { type: i1$5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }], pipes: { "async": i3$1.AsyncPipe, "translate": i1$2.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
21324
21268
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ElderSelectComponent, decorators: [{
|
|
21325
21269
|
type: Component,
|
|
21326
21270
|
args: [{ selector: 'elder-select', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
@@ -21336,6 +21280,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
|
21336
21280
|
type: Output
|
|
21337
21281
|
}], entityChange: [{
|
|
21338
21282
|
type: Output
|
|
21283
|
+
}], entityIdUpdated: [{
|
|
21284
|
+
type: Output
|
|
21285
|
+
}], entityUpdated: [{
|
|
21286
|
+
type: Output
|
|
21339
21287
|
}], autocomplete: [{
|
|
21340
21288
|
type: Input
|
|
21341
21289
|
}], allowNull: [{
|
|
@@ -21415,67 +21363,123 @@ class ElderMultiSelectBase extends ElderSelectBase {
|
|
|
21415
21363
|
* *
|
|
21416
21364
|
**************************************************************************/
|
|
21417
21365
|
this.logger = LoggerFactory.getLogger(this.constructor.name);
|
|
21418
|
-
this.
|
|
21419
|
-
this.
|
|
21420
|
-
|
|
21421
|
-
|
|
21422
|
-
}
|
|
21423
|
-
else {
|
|
21424
|
-
return null;
|
|
21425
|
-
}
|
|
21426
|
-
}));
|
|
21366
|
+
this.entities$ = new BehaviorSubject([]);
|
|
21367
|
+
this.entityIdsChange = this.valueChange.pipe(map(values => this.entityIdsFromValues(values)));
|
|
21368
|
+
this.entityIdsUpdated = this.valueUpdated.pipe(map(values => this.entityIdsFromValues(values)));
|
|
21369
|
+
this.entitiesUpdated = combineLatest([this.entityIdsUpdated, this.entities$]).pipe(filter(([updatedIds, entities]) => this.equalIds(this.getEntityIds(entities), updatedIds)), map(([updatedIds, entities]) => entities));
|
|
21427
21370
|
}
|
|
21428
21371
|
/***************************************************************************
|
|
21429
21372
|
* *
|
|
21430
21373
|
* Properties *
|
|
21431
21374
|
* *
|
|
21432
21375
|
**************************************************************************/
|
|
21433
|
-
|
|
21434
|
-
|
|
21435
|
-
|
|
21436
|
-
*/
|
|
21437
|
-
set valueIds(ids) {
|
|
21438
|
-
if (!this.equalIds(ids, this._valueIds)) {
|
|
21439
|
-
this._valueIds = ids;
|
|
21440
|
-
this.selectValuesByIds(ids);
|
|
21441
|
-
}
|
|
21376
|
+
set entities(entities) {
|
|
21377
|
+
this.entities$.next(entities);
|
|
21378
|
+
this.writeValueInternal(this.entitiesToValues(entities));
|
|
21442
21379
|
}
|
|
21443
|
-
get
|
|
21444
|
-
|
|
21445
|
-
|
|
21380
|
+
get entities() {
|
|
21381
|
+
return this.entities$.getValue();
|
|
21382
|
+
}
|
|
21383
|
+
set entityIds(ids) {
|
|
21384
|
+
if (this.valueAsId) {
|
|
21385
|
+
this.writeValueInternal(ids);
|
|
21446
21386
|
}
|
|
21447
21387
|
else {
|
|
21448
|
-
|
|
21388
|
+
this.selectEntitiesByIds(ids);
|
|
21449
21389
|
}
|
|
21450
21390
|
}
|
|
21391
|
+
get entityIds() {
|
|
21392
|
+
return this.entityIdsFromValues(this.value);
|
|
21393
|
+
}
|
|
21394
|
+
/***************************************************************************
|
|
21395
|
+
* *
|
|
21396
|
+
* Public API *
|
|
21397
|
+
* *
|
|
21398
|
+
**************************************************************************/
|
|
21399
|
+
updateValueByEntities(entities) {
|
|
21400
|
+
this.updateValue(this.entitiesToValues(entities));
|
|
21401
|
+
}
|
|
21451
21402
|
/***************************************************************************
|
|
21452
21403
|
* *
|
|
21453
21404
|
* Internal Methods *
|
|
21454
21405
|
* *
|
|
21455
21406
|
**************************************************************************/
|
|
21456
21407
|
onSuggestionsDcChanged(data) {
|
|
21457
|
-
if (this.
|
|
21458
|
-
this.
|
|
21408
|
+
if (this.valueAsId) {
|
|
21409
|
+
this.selectEntitiesByIds(this.entityIds);
|
|
21410
|
+
}
|
|
21411
|
+
}
|
|
21412
|
+
/**
|
|
21413
|
+
* This method is invoked after a value has been written to this control.
|
|
21414
|
+
*
|
|
21415
|
+
*/
|
|
21416
|
+
writeToControl(value) {
|
|
21417
|
+
if (this.valueAsId) {
|
|
21418
|
+
const entityIds = value;
|
|
21419
|
+
// Value was written as entity ids, ensure we select entity by id
|
|
21420
|
+
this.logger.debug('writeToControl: value was written as ids: ' + entityIds, value);
|
|
21421
|
+
this.selectEntitiesByIds(entityIds);
|
|
21422
|
+
}
|
|
21423
|
+
else {
|
|
21424
|
+
// Value was written as entity, ensure entity is updated
|
|
21425
|
+
const currentEntities = this.entities;
|
|
21426
|
+
const newEntities = value;
|
|
21427
|
+
this.logger.debug('writeToControl: value was written as entities (size): ' + (newEntities === null || newEntities === void 0 ? void 0 : newEntities.length), value);
|
|
21428
|
+
if (!this.equalEntities(currentEntities, newEntities)) {
|
|
21429
|
+
this.entities$.next(newEntities);
|
|
21430
|
+
}
|
|
21431
|
+
else {
|
|
21432
|
+
this.logger.warn('Ignored written entities as they are already set to entities$!');
|
|
21433
|
+
}
|
|
21459
21434
|
}
|
|
21435
|
+
super.writeToControl(value);
|
|
21460
21436
|
}
|
|
21461
21437
|
/***************************************************************************
|
|
21462
21438
|
* *
|
|
21463
21439
|
* Private Methods *
|
|
21464
21440
|
* *
|
|
21465
21441
|
**************************************************************************/
|
|
21466
|
-
|
|
21442
|
+
entityIdsFromValues(values) {
|
|
21443
|
+
return values === null || values === void 0 ? void 0 : values.map(v => this.entityIdFromValue(v));
|
|
21444
|
+
}
|
|
21445
|
+
entityIdFromValue(value) {
|
|
21446
|
+
if (this.valueAsId) {
|
|
21447
|
+
return value;
|
|
21448
|
+
}
|
|
21449
|
+
else {
|
|
21450
|
+
const entity = value;
|
|
21451
|
+
return this.getEntityId(entity);
|
|
21452
|
+
}
|
|
21453
|
+
}
|
|
21454
|
+
entitiesToValues(entities) {
|
|
21455
|
+
return entities === null || entities === void 0 ? void 0 : entities.map(e => this.entityToValue(e));
|
|
21456
|
+
}
|
|
21457
|
+
entityToValue(entity) {
|
|
21458
|
+
if (this.valueAsId) {
|
|
21459
|
+
const id = this.getEntityId(entity);
|
|
21460
|
+
return id;
|
|
21461
|
+
}
|
|
21462
|
+
else {
|
|
21463
|
+
return entity;
|
|
21464
|
+
}
|
|
21465
|
+
}
|
|
21466
|
+
getEntityIds(values) {
|
|
21467
21467
|
return values.map(v => this.getEntityId(v));
|
|
21468
21468
|
}
|
|
21469
21469
|
equalIds(idsA, idsB) {
|
|
21470
21470
|
return Sets.equalContent(idsA, idsB);
|
|
21471
21471
|
}
|
|
21472
|
-
|
|
21473
|
-
|
|
21474
|
-
|
|
21472
|
+
equalEntities(entitiesA, entitiesB) {
|
|
21473
|
+
return this.equalIds(this.getEntityIds(entitiesA), this.getEntityIds(entitiesB));
|
|
21474
|
+
}
|
|
21475
|
+
selectEntitiesByIds(ids) {
|
|
21476
|
+
const currentEntities = this.entities;
|
|
21477
|
+
if (currentEntities && this.equalIds(this.getEntityIds(currentEntities), ids)) {
|
|
21478
|
+
return; // Entities already loaded
|
|
21475
21479
|
}
|
|
21476
|
-
if (ids
|
|
21477
|
-
if (
|
|
21478
|
-
this.writeValueInternal([]);
|
|
21480
|
+
if (!CollectionUtil.hasElements(ids)) {
|
|
21481
|
+
if (CollectionUtil.hasElements(currentEntities)) {
|
|
21482
|
+
this.writeValueInternal([]);
|
|
21479
21483
|
}
|
|
21480
21484
|
}
|
|
21481
21485
|
else {
|
|
@@ -21487,8 +21491,8 @@ class ElderMultiSelectBase extends ElderSelectBase {
|
|
|
21487
21491
|
loaded.forEach((v, k) => existing.set(k, v));
|
|
21488
21492
|
return existing;
|
|
21489
21493
|
}), map(allValuesMap => Array.from(allValuesMap.values())) // TODO Sort?
|
|
21490
|
-
).subscribe(
|
|
21491
|
-
this.
|
|
21494
|
+
).subscribe(entities => {
|
|
21495
|
+
this.entities = entities;
|
|
21492
21496
|
});
|
|
21493
21497
|
}
|
|
21494
21498
|
else {
|
|
@@ -21502,6 +21506,7 @@ class ElderMultiSelectBase extends ElderSelectBase {
|
|
|
21502
21506
|
this.updateState(ElderSelectComponentState.error(err));
|
|
21503
21507
|
return of([]);
|
|
21504
21508
|
}), map(values => {
|
|
21509
|
+
this.logger.debug('Loaded entities by id:', values);
|
|
21505
21510
|
const valueMap = new Map();
|
|
21506
21511
|
values.forEach(v => valueMap.set(this.getEntityId(v), v));
|
|
21507
21512
|
return valueMap;
|
|
@@ -21520,12 +21525,18 @@ class ElderMultiSelectBase extends ElderSelectBase {
|
|
|
21520
21525
|
}
|
|
21521
21526
|
}
|
|
21522
21527
|
ElderMultiSelectBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ElderMultiSelectBase, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
21523
|
-
ElderMultiSelectBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.1", type: ElderMultiSelectBase, inputs: {
|
|
21528
|
+
ElderMultiSelectBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.1", type: ElderMultiSelectBase, inputs: { entities: "entities", entityIds: "entityIds" }, outputs: { entityIdsChange: "entityIdsChange", entityIdsUpdated: "entityIdsUpdated", entitiesUpdated: "entitiesUpdated" }, usesInheritance: true, ngImport: i0 });
|
|
21524
21529
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ElderMultiSelectBase, decorators: [{
|
|
21525
21530
|
type: Directive
|
|
21526
|
-
}], ctorParameters: function () { return [{ type: i0.NgZone }]; }, propDecorators: {
|
|
21531
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }]; }, propDecorators: { entityIdsChange: [{
|
|
21527
21532
|
type: Output
|
|
21528
|
-
}],
|
|
21533
|
+
}], entityIdsUpdated: [{
|
|
21534
|
+
type: Output
|
|
21535
|
+
}], entitiesUpdated: [{
|
|
21536
|
+
type: Output
|
|
21537
|
+
}], entities: [{
|
|
21538
|
+
type: Input
|
|
21539
|
+
}], entityIds: [{
|
|
21529
21540
|
type: Input
|
|
21530
21541
|
}] } });
|
|
21531
21542
|
|
|
@@ -21544,7 +21555,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
|
21544
21555
|
}]
|
|
21545
21556
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
|
|
21546
21557
|
|
|
21547
|
-
class
|
|
21558
|
+
class SelectChip {
|
|
21548
21559
|
constructor(value, displayText, color, removeable) {
|
|
21549
21560
|
this.value = value;
|
|
21550
21561
|
this.displayText = displayText;
|
|
@@ -21569,13 +21580,13 @@ class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
|
|
|
21569
21580
|
this.chipColorResolver$ = new BehaviorSubject((value) => undefined);
|
|
21570
21581
|
this.selectable = true;
|
|
21571
21582
|
this.allowRemove = true;
|
|
21572
|
-
this.
|
|
21573
|
-
this.
|
|
21583
|
+
this.selectChips$ = combineLatest([
|
|
21584
|
+
this.entities$,
|
|
21574
21585
|
this.displayPropertyResolver$,
|
|
21575
21586
|
this.chipColorResolver$
|
|
21576
21587
|
]).pipe(map(([values, dPR, cCR]) => {
|
|
21577
21588
|
if (values) {
|
|
21578
|
-
return values.map(v => new
|
|
21589
|
+
return values.map(v => new SelectChip(v, dPR(v), cCR(v), this.allowRemove));
|
|
21579
21590
|
}
|
|
21580
21591
|
else {
|
|
21581
21592
|
return [];
|
|
@@ -21644,19 +21655,19 @@ class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
|
|
|
21644
21655
|
}
|
|
21645
21656
|
}
|
|
21646
21657
|
addLabels(labels) {
|
|
21647
|
-
const current = this.
|
|
21658
|
+
const current = this.entities ? this.entities : [];
|
|
21648
21659
|
this.replaceWith([...current, ...labels]);
|
|
21649
21660
|
}
|
|
21650
21661
|
addLabel(label) {
|
|
21651
21662
|
this.addLabels([label]);
|
|
21652
21663
|
}
|
|
21653
21664
|
removeLabel(toRemove) {
|
|
21654
|
-
const remaining = this.
|
|
21665
|
+
const remaining = this.entities
|
|
21655
21666
|
.filter(l => !this.isEqual(l, toRemove));
|
|
21656
21667
|
this.replaceWith(remaining);
|
|
21657
21668
|
}
|
|
21658
|
-
replaceWith(
|
|
21659
|
-
this.
|
|
21669
|
+
replaceWith(entities) {
|
|
21670
|
+
this.updateValueByEntities(entities);
|
|
21660
21671
|
}
|
|
21661
21672
|
/***************************************************************************
|
|
21662
21673
|
* *
|
|
@@ -21664,8 +21675,8 @@ class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
|
|
|
21664
21675
|
* *
|
|
21665
21676
|
**************************************************************************/
|
|
21666
21677
|
isAlreadyPresent(queryValue) {
|
|
21667
|
-
if (this.
|
|
21668
|
-
return this.
|
|
21678
|
+
if (this.entities) {
|
|
21679
|
+
return this.entities.some(v => this.isEqual(v, queryValue));
|
|
21669
21680
|
}
|
|
21670
21681
|
else {
|
|
21671
21682
|
return false;
|
|
@@ -21681,10 +21692,10 @@ class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
|
|
|
21681
21692
|
}
|
|
21682
21693
|
}
|
|
21683
21694
|
ElderMultiSelectChipsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ElderMultiSelectChipsComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
21684
|
-
ElderMultiSelectChipsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: ElderMultiSelectChipsComponent, selector: "elder-multi-select-chips", inputs: { allowRemove: "allowRemove", chipTemplate: "chipTemplate", chipColorResolver: "chipColorResolver" }, providers: buildFormIntegrationProviders(ElderMultiSelectChipsComponent), queries: [{ propertyName: "chipTemplateQuery", first: true, predicate: ElderSelectChipDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "inputControl", first: true, predicate: ["chipInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-form-field *ngIf=\"(
|
|
21695
|
+
ElderMultiSelectChipsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: ElderMultiSelectChipsComponent, selector: "elder-multi-select-chips", inputs: { allowRemove: "allowRemove", chipTemplate: "chipTemplate", chipColorResolver: "chipColorResolver" }, providers: buildFormIntegrationProviders(ElderMultiSelectChipsComponent), queries: [{ propertyName: "chipTemplateQuery", first: true, predicate: ElderSelectChipDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "inputControl", first: true, predicate: ["chipInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-form-field *ngIf=\"(selectChips$ | async) as chipValues\" fxFlex\n class=\"elder-std-form-field\"\n [appearance]=\"appearance\"\n [floatLabel]=\"floatLabel\"\n [color]=\"color\"\n>\n\n <mat-label *ngIf=\"label\">{{label | translate}}</mat-label>\n\n\n <ng-container matPrefix *ngIf=\"(mergedState$ | async) as state\">\n\n <mat-icon *ngIf=\"icon\" disabled\n class=\"leading-icon prefix-padding noselect\"\n [class.loading]=\"state.loading\"\n [color]=\"state?.error ? 'warn' : color\">\n {{icon}}\n </mat-icon>\n\n\n <mat-icon *ngIf=\"!icon && state?.error\"\n class=\"leading-icon prefix-padding noselect\"\n color=\"warn\">\n warning\n </mat-icon>\n </ng-container>\n\n <!-- A dynamic input -->\n\n <mat-chip-list selectable #chips>\n <mat-chip *ngFor=\"let chipModel of chipValues\"\n class=\"noselect\"\n [color]=\"chipModel.color\" selectable selected\n [removable]=\"chipModel.removeable\"\n (removed)=\"removeLabel(chipModel.value)\"\n >\n <ng-container\n *ngTemplateOutlet=\"chipTemplate || simpleChipTemplate; context: {$implicit: chipModel}\">\n </ng-container>\n <mat-icon matChipRemove *ngIf=\"chipModel.removeable\">cancel</mat-icon>\n </mat-chip>\n\n <input matInput type=\"text\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [name]=\"name + '-multi-chips-inner-input'\"\n [placeholder]=\"placeholder | translate\"\n [matChipInputFor]=\"chips\"\n [matAutocomplete]\n [elderElderAutocomplete]=\"elderAuto\" [queryFilter]=\"queryFilter\" [filters]=\"filters\" [sorts]=\"sorts\"\n autocomplete=\"off\"\n #chipInput>\n </mat-chip-list>\n\n <elder-autocomplete\n #elderAuto=\"elderAutocomplete\"\n [suggestionsDc]=\"suggestionsDc$ | async\"\n [valueTemplate]=\"valueTemplate\"\n [displayPropertyResolver]=\"displayPropertyResolver$ | async\"\n [isOptionDisabledFn]=\"isOptionDisabledInternalFn\"\n [isOptionHiddenFn]=\"isOptionHiddenInternalFn\"\n (optionSelected)=\"onOptionSelected($any($event))\"\n ></elder-autocomplete>\n\n <mat-hint *ngIf=\"hint\">{{hint | translate}}</mat-hint>\n\n</mat-form-field>\n\n\n<ng-template #simpleChipTemplate let-chipModel>\n {{chipModel.displayText}}\n</ng-template>\n\n", styles: [".prefix-padding{padding-right:4px}.leading-icon{font-size:16px;width:16px;height:16px}\n"], components: [{ type: i1$5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i2$1.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: ElderAutocompleteComponent, selector: "elder-autocomplete", inputs: ["isOptionDisabledFn", "isOptionHiddenFn", "enabled", "valueTemplate", "suggestionsDc", "displayPropertyResolver"], outputs: ["optionSelected"], exportAs: ["elderAutocomplete"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i1$5.MatLabel, selector: "mat-label" }, { type: i1$5.MatPrefix, selector: "[matPrefix]" }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$1.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2$1.MatChipRemove, selector: "[matChipRemove]" }, { type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i2$1.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { type: i1$6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: ElderAutocompleteDirective, selector: "[elderElderAutocomplete]", inputs: ["queryFilter", "filters", "sorts", "elderElderAutocomplete"] }, { type: i1$5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }], pipes: { "async": i3$1.AsyncPipe, "translate": i1$2.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
21685
21696
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ElderMultiSelectChipsComponent, decorators: [{
|
|
21686
21697
|
type: Component,
|
|
21687
|
-
args: [{ selector: 'elder-multi-select-chips', changeDetection: ChangeDetectionStrategy.OnPush, providers: buildFormIntegrationProviders(ElderMultiSelectChipsComponent), template: "<mat-form-field *ngIf=\"(
|
|
21698
|
+
args: [{ selector: 'elder-multi-select-chips', changeDetection: ChangeDetectionStrategy.OnPush, providers: buildFormIntegrationProviders(ElderMultiSelectChipsComponent), template: "<mat-form-field *ngIf=\"(selectChips$ | async) as chipValues\" fxFlex\n class=\"elder-std-form-field\"\n [appearance]=\"appearance\"\n [floatLabel]=\"floatLabel\"\n [color]=\"color\"\n>\n\n <mat-label *ngIf=\"label\">{{label | translate}}</mat-label>\n\n\n <ng-container matPrefix *ngIf=\"(mergedState$ | async) as state\">\n\n <mat-icon *ngIf=\"icon\" disabled\n class=\"leading-icon prefix-padding noselect\"\n [class.loading]=\"state.loading\"\n [color]=\"state?.error ? 'warn' : color\">\n {{icon}}\n </mat-icon>\n\n\n <mat-icon *ngIf=\"!icon && state?.error\"\n class=\"leading-icon prefix-padding noselect\"\n color=\"warn\">\n warning\n </mat-icon>\n </ng-container>\n\n <!-- A dynamic input -->\n\n <mat-chip-list selectable #chips>\n <mat-chip *ngFor=\"let chipModel of chipValues\"\n class=\"noselect\"\n [color]=\"chipModel.color\" selectable selected\n [removable]=\"chipModel.removeable\"\n (removed)=\"removeLabel(chipModel.value)\"\n >\n <ng-container\n *ngTemplateOutlet=\"chipTemplate || simpleChipTemplate; context: {$implicit: chipModel}\">\n </ng-container>\n <mat-icon matChipRemove *ngIf=\"chipModel.removeable\">cancel</mat-icon>\n </mat-chip>\n\n <input matInput type=\"text\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [name]=\"name + '-multi-chips-inner-input'\"\n [placeholder]=\"placeholder | translate\"\n [matChipInputFor]=\"chips\"\n [matAutocomplete]\n [elderElderAutocomplete]=\"elderAuto\" [queryFilter]=\"queryFilter\" [filters]=\"filters\" [sorts]=\"sorts\"\n autocomplete=\"off\"\n #chipInput>\n </mat-chip-list>\n\n <elder-autocomplete\n #elderAuto=\"elderAutocomplete\"\n [suggestionsDc]=\"suggestionsDc$ | async\"\n [valueTemplate]=\"valueTemplate\"\n [displayPropertyResolver]=\"displayPropertyResolver$ | async\"\n [isOptionDisabledFn]=\"isOptionDisabledInternalFn\"\n [isOptionHiddenFn]=\"isOptionHiddenInternalFn\"\n (optionSelected)=\"onOptionSelected($any($event))\"\n ></elder-autocomplete>\n\n <mat-hint *ngIf=\"hint\">{{hint | translate}}</mat-hint>\n\n</mat-form-field>\n\n\n<ng-template #simpleChipTemplate let-chipModel>\n {{chipModel.displayText}}\n</ng-template>\n\n", styles: [".prefix-padding{padding-right:4px}.leading-icon{font-size:16px;width:16px;height:16px}\n"] }]
|
|
21688
21699
|
}], ctorParameters: function () { return [{ type: i0.NgZone }]; }, propDecorators: { allowRemove: [{
|
|
21689
21700
|
type: Input
|
|
21690
21701
|
}], inputControl: [{
|
|
@@ -21699,6 +21710,77 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
|
21699
21710
|
type: Input
|
|
21700
21711
|
}] } });
|
|
21701
21712
|
|
|
21713
|
+
class ElderAutoSelectFirstDirective {
|
|
21714
|
+
/***************************************************************************
|
|
21715
|
+
* *
|
|
21716
|
+
* Constructor *
|
|
21717
|
+
* *
|
|
21718
|
+
**************************************************************************/
|
|
21719
|
+
constructor(elderSelect) {
|
|
21720
|
+
this.elderSelect = elderSelect;
|
|
21721
|
+
/***************************************************************************
|
|
21722
|
+
* *
|
|
21723
|
+
* Fields *
|
|
21724
|
+
* *
|
|
21725
|
+
**************************************************************************/
|
|
21726
|
+
this.log = LoggerFactory.getLogger(this.constructor.name);
|
|
21727
|
+
}
|
|
21728
|
+
/***************************************************************************
|
|
21729
|
+
* *
|
|
21730
|
+
* Life Cycle *
|
|
21731
|
+
* *
|
|
21732
|
+
**************************************************************************/
|
|
21733
|
+
ngAfterViewInit() {
|
|
21734
|
+
setTimeout(() => {
|
|
21735
|
+
this.log.info('autoSelectFirst after-view init, auto selecting value');
|
|
21736
|
+
this.handleAutoSelectFirst();
|
|
21737
|
+
}, 10);
|
|
21738
|
+
}
|
|
21739
|
+
/***************************************************************************
|
|
21740
|
+
* *
|
|
21741
|
+
* Properties *
|
|
21742
|
+
* *
|
|
21743
|
+
**************************************************************************/
|
|
21744
|
+
/**
|
|
21745
|
+
* After data is loaded into this select, ensure that
|
|
21746
|
+
* a value is selected or select the first automatically.
|
|
21747
|
+
*/
|
|
21748
|
+
set autoSelectFirstEnabled(val) {
|
|
21749
|
+
this.enabled = coerceBooleanProperty(val);
|
|
21750
|
+
}
|
|
21751
|
+
set enabled(val) {
|
|
21752
|
+
this._enabled = val;
|
|
21753
|
+
}
|
|
21754
|
+
get enabled() {
|
|
21755
|
+
return this._enabled;
|
|
21756
|
+
}
|
|
21757
|
+
/***************************************************************************
|
|
21758
|
+
* *
|
|
21759
|
+
* Private methods *
|
|
21760
|
+
* *
|
|
21761
|
+
**************************************************************************/
|
|
21762
|
+
handleAutoSelectFirst() {
|
|
21763
|
+
if (!this.elderSelect.value) {
|
|
21764
|
+
this.log.debug('Attempting to auto select first entity...');
|
|
21765
|
+
ElderSelectFirstUtil.trySelectFirst(this.elderSelect);
|
|
21766
|
+
}
|
|
21767
|
+
else {
|
|
21768
|
+
this.log.warn('Conflict avoided: Aborted auto selection because value id already present!');
|
|
21769
|
+
}
|
|
21770
|
+
}
|
|
21771
|
+
}
|
|
21772
|
+
ElderAutoSelectFirstDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ElderAutoSelectFirstDirective, deps: [{ token: ElderSelectComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
|
21773
|
+
ElderAutoSelectFirstDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.1", type: ElderAutoSelectFirstDirective, selector: "[autoSelectFirst]", inputs: { autoSelectFirstEnabled: ["autoSelectFirst", "autoSelectFirstEnabled"] }, ngImport: i0 });
|
|
21774
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ElderAutoSelectFirstDirective, decorators: [{
|
|
21775
|
+
type: Directive,
|
|
21776
|
+
args: [{
|
|
21777
|
+
selector: '[autoSelectFirst]'
|
|
21778
|
+
}]
|
|
21779
|
+
}], ctorParameters: function () { return [{ type: ElderSelectComponent }]; }, propDecorators: { autoSelectFirstEnabled: [{
|
|
21780
|
+
type: Input,
|
|
21781
|
+
args: ['autoSelectFirst']
|
|
21782
|
+
}] } });
|
|
21783
|
+
|
|
21702
21784
|
class ElderSelectModule {
|
|
21703
21785
|
}
|
|
21704
21786
|
ElderSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ElderSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
@@ -21706,10 +21788,10 @@ ElderSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versi
|
|
|
21706
21788
|
ElderSelectValueDirective,
|
|
21707
21789
|
TemplatedSelectionDialogComponent,
|
|
21708
21790
|
SelectionModelPopupDirective,
|
|
21709
|
-
|
|
21791
|
+
ElderSelectOnTabDirective,
|
|
21710
21792
|
ElderMultiSelectChipsComponent,
|
|
21711
21793
|
ElderSelectChipDirective,
|
|
21712
|
-
|
|
21794
|
+
ElderAutoSelectFirstDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule,
|
|
21713
21795
|
MatFormFieldModule,
|
|
21714
21796
|
MatIconModule,
|
|
21715
21797
|
MatSelectModule,
|
|
@@ -21724,7 +21806,7 @@ ElderSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versi
|
|
|
21724
21806
|
SelectionModelPopupDirective,
|
|
21725
21807
|
ElderMultiSelectChipsComponent,
|
|
21726
21808
|
ElderSelectChipDirective,
|
|
21727
|
-
|
|
21809
|
+
ElderAutoSelectFirstDirective] });
|
|
21728
21810
|
ElderSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ElderSelectModule, imports: [[
|
|
21729
21811
|
CommonModule, FormsModule, ReactiveFormsModule,
|
|
21730
21812
|
MatFormFieldModule,
|
|
@@ -21757,10 +21839,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
|
21757
21839
|
ElderSelectValueDirective,
|
|
21758
21840
|
TemplatedSelectionDialogComponent,
|
|
21759
21841
|
SelectionModelPopupDirective,
|
|
21760
|
-
|
|
21842
|
+
ElderSelectOnTabDirective,
|
|
21761
21843
|
ElderMultiSelectChipsComponent,
|
|
21762
21844
|
ElderSelectChipDirective,
|
|
21763
|
-
|
|
21845
|
+
ElderAutoSelectFirstDirective
|
|
21764
21846
|
],
|
|
21765
21847
|
exports: [
|
|
21766
21848
|
ElderSelectComponent,
|
|
@@ -21769,7 +21851,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
|
21769
21851
|
SelectionModelPopupDirective,
|
|
21770
21852
|
ElderMultiSelectChipsComponent,
|
|
21771
21853
|
ElderSelectChipDirective,
|
|
21772
|
-
|
|
21854
|
+
ElderAutoSelectFirstDirective
|
|
21773
21855
|
]
|
|
21774
21856
|
}]
|
|
21775
21857
|
}] });
|
|
@@ -25119,5 +25201,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
|
25119
25201
|
* Generated bundle index. Do not edit.
|
|
25120
25202
|
*/
|
|
25121
25203
|
|
|
25122
|
-
export { AuditedEntity,
|
|
25204
|
+
export { AuditedEntity, AutoStartSpec, BlobUrl, BytesFormat, BytesPerSecondFormat, BytesPipe, CardDropEvent, CardOrganizerData, CardStack, CollectionUtil, ComparatorBuilder, ConfirmDialogConfig, ContinuableListing, CsvColumnSpec, CsvSerializer, CsvSpec, CsvStreamExporter, CsvStreamExporterBuilder, CsvStreamExporterBuilderService, Currency, CurrencyCode, CurrencyUnit, CurrencyUnitRegistry, CustomDateAdapter, DataContextActivePage, DataContextAutoStarter, DataContextBase, DataContextBuilder, DataContextContinuableBase, DataContextContinuablePaged, DataContextContinuableToken, DataContextLifeCycleBinding, DataContextSelectionDirective, DataContextSimple, DataContextSnapshot, DataContextSourceAutoReloader, DataContextStateIndicatorComponent, DataContextStatus, DataSourceAdapter, DataSourceProcessor, DataTransferFactory, DataTransferProgress, DataTransferProgressAggregate, DataTransferState, DataTransferStatus, DateUtil, DelegateContinuableDataSource, DelegateDataSource, DelegateListDataSource, DelegatePagedDataSource, Dimensions, DrawerOutletBinding, DurationBucket, DurationFormat, EbsCommonDialogService, EbsToastService, ElderAccessDeniedComponent, ElderAccessDeniedModule, ElderAppHeaderComponent, ElderAuditModule, ElderAuditedEntityComponent, ElderAutoSelectFirstDirective, ElderAutocompleteComponent, ElderAutocompleteDirective, ElderAutocompleteModule, ElderBlobViewerComponent, ElderBreadCrumbsComponent, ElderBreadCrumbsModule, ElderButtonGroupComponent, ElderButtonGroupModule, ElderCardComponent, ElderCardContentDirective, ElderCardHeaderActionsDirective, ElderCardHeaderComponent, ElderCardModule, ElderCardOrganizerComponent, ElderCardOrganizerModule, ElderCardPanelComponent, ElderCardStackComponent, ElderCardSubtitleDirective, ElderCardTitleDirective, ElderCheckboxState, ElderChipListSelectComponent, ElderChipListSelectModule, ElderClipboardPutDirective, ElderClipboardService, ElderConfirmDialogComponent, ElderConnectivityModule, ElderConnectivityService, ElderContainersModule, ElderCsvExportBtnComponent, ElderCsvModule, ElderCurrencyModule, ElderCurrencyPipe, ElderDataCommonModule, ElderDataToolbarComponent, ElderDataTransferModule, ElderDataTransferService, ElderDataViewBaseComponent, ElderDataViewBaseModule, ElderDataViewSelectionMode, ElderDateSwitcherComponent, ElderDateTimeInputComponent, ElderDatesModule, ElderDelayedFocusDirective, ElderDialogConfig, ElderDialogModule, ElderDialogService, ElderDimensionsInputComponent, ElderDurationInputComponent, ElderEnumTranslationService, ElderErrorModule, ElderEventSourceService, ElderExceptionDetailComponent, ElderExpandToggleButtonComponent, ElderExpandToggleButtonModule, ElderFileDropZoneDirective, ElderFileModule, ElderFileSelectComponent, ElderFileSelectDirective, ElderFileUploadComponent, ElderFormFieldDenseDirective, ElderFormFieldLabelDirective, ElderFormFieldNoSpinnerDirective, ElderFormsDirectivesModule, ElderFormsModule, ElderGlobalSearchComponent, ElderGlobalSearchModule, ElderGlobalSearchService, ElderGridComponent, ElderGridModule, ElderGridTileDirective, ElderGridToolbarDirective, ElderHeaderComponent, ElderHeaderModule, ElderHttpClient, ElderI18nEntitiesModule, ElderIFrameModule, ElderInfiniteAutocompleteDirective, ElderInfiniteScrollDirective, ElderInfiniteScrollLegacyDirective, ElderInfiniteScrollModule, ElderIntervalInputComponent, ElderKeyEventDirective, ElderLabelInputComponent, ElderLabelsModule, ElderLanguageConfig, ElderLanguageInterceptor, ElderLanguageModule, ElderLanguageService, ElderLanguageSwitcherComponent, ElderLocalDateInputComponent, ElderLocalTimeInputComponent, ElderLocalesDeChModule, ElderLocalizedInputComponent, ElderLocalizedInputDialogComponent, ElderLocalizedInputDialogService, ElderLocalizedInputTableComponent, ElderLocalizedTextColumnDirective, ElderLocalizedTextsDirective, ElderMaxDirective, ElderMeasuresModule, ElderMinDirective, ElderMultiAutoCompleteModule, ElderMultiAutocompleteComponent, ElderMultiSelectBase, ElderMultiSelectChipsComponent, ElderMultipleOfValidator, ElderNavGroupComponent, ElderNavLinkComponent, ElderNavListComponent, ElderNavModule, ElderNextFocusableDirective, ElderNumberCellDirective, ElderOfflineIndicatorComponent, ElderOverlayComponent, ElderOverlayModule, ElderOverlayOriginDirective, ElderOverlayTriggerDirective, ElderPaddingDirective, ElderPanelComponent, ElderPanelModule, ElderPeriodInputComponent, ElderPipesModule, ElderPlugParentFormDirective, ElderPlugParentFormDirectiveLegacy, ElderProgressBarComponent, ElderProgressBarModule, ElderQuantityInputComponent, ElderQuantityModule, ElderQuantityPipe, ElderQuantityService, ElderQuantityTransformPipe, ElderQuestionDialogComponent, ElderRepeatPipe, ElderRepeatPipeLegacy, ElderRequiredIgnoreZeroValidator, ElderRoundPipe, ElderRouteOutletDrawerService, ElderRouterOutletService, ElderSafeUrlPipe, ElderScrollContainerComponent, ElderSearchBoxComponent, ElderSearchContextDirective, ElderSearchInputDirective, ElderSearchModule, ElderSearchPanelComponent, ElderSelectChipDirective, ElderSelectComponent, ElderSelectListComponent, ElderSelectListItemComponent, ElderSelectListModule, ElderSelectModule, ElderSelectOnTabDirective, ElderSelectValueDirective, ElderSelectionDialogComponent, ElderSelectionDialogDirective, ElderSelectionMasterCheckboxComponent, ElderShellCenterDirective, ElderShellComponent, ElderShellModule, ElderShellNavigationToggleComponent, ElderShellService, ElderShellSideLeftDirective, ElderShellSideRightDirective, ElderShellSlotDirective, ElderSimpleSelectionViewComponent, ElderSimpleSelectionViewModule, ElderSingleSortComponent, ElderStackCardDirective, ElderStopEventPropagationDirective, ElderStopEventPropagationDirectiveLegacy, ElderSvgViewerComponent, ElderTabDirective, ElderTabFocusTrapDirective, ElderTabGroupRoutingDirective, ElderTabModule, ElderTableActivationDirective, ElderTableComponent, ElderTableExtensionDirective, ElderTableGroup, ElderTableModel, ElderTableModelCdkTableBinding, ElderTableModelQueryGroup, ElderTableModule, ElderTableProviders, ElderTableRootDirective, ElderTableSortDirective, ElderTableToolbarDirective, ElderTimeModule, ElderToastModule, ElderToastService, ElderToolbarColumnDirective, ElderToolbarComponent, ElderToolbarContentDirective, ElderToolbarModule, ElderToolbarService, ElderToolbarTitleComponent, ElderToolbarTitleService, ElderTouchedDirective, ElderTouchedDirectiveLegacy, ElderTripleStateCheckboxDirective, ElderUnitSelectDirective, ElderUnitService, ElderUrlFragment, ElderUrlFragmentModule, ElderUrlFragmentParamsService, ElderUrlFragmentSwitcherComponent, ElderViewersModule, EntitySetPatch, ErrorUtil, ExceptionDetailCtx, FileUploadClient, Filter, FilterContext, FilterUtil, FormFieldBaseComponent, HttpClientBuilder, HttpClientPristine, HttpDataTransfer, HttpDataTransferAggregateComponent, HttpDataTransferComponent, HttpDataTransferIndicatorComponent, HttpDataTransferOverviewComponent, HttpParamsBuilder, I18nBase, I18nPickAsyncPipe, I18nPickPipe, I18nText, IFrameState, IframeCloseDirective, IframeDialogComponent, IframeHostComponent, IframeService, IframeSideContentComponent, InternalRestClientConfig, Interval, IsoDurationPipe, IsoIntervalParsePipe, IsoIntervalPipe, JsonMapUtil, KafentConfig, KafentEvent, KafentEventService, KafentEventStream, KafentEventStreamDisabled, KafentEventStreamSse, KafentEventTransport, KafentModule, KafentSseEventChannel, KafentTokenProvider, KafentTokenProviderSessionStorage, KafentTopicSse, KnownLocaleType, LazyBehaviorSubject, LocalListDataSource, LocalPagedDataSource, LocalisationPickerService, MasterSelectionState, MatTableDataContextBinding, MatTableDataContextBindingBuilder, MultiModelBaseComponent, NextNumberUtil, Objects, OnlineStatus, Page, PageRequest, Pageable, ParseUtil, Path, PathNode, PeriodBucket, PeriodDuration, PeriodFormat, ProcessIterationContext, ProcessState, PropertyPathUtil, Quantity, QueryListBinding, QuestionDialogConfig, ReactiveEventSource, ReactiveMap, RefreshingEntity, ReplacementResult, RestClient, RestClientConfig, RestClientContinuable, RestClientList, RestClientPaged, SearchQuery, SelectionModel, SelectionModelPopupDirective, Sets, SimpleLocalisationPicker, Sort, SortOption, SortUtil, SubBar, SuggestionProvider, TemplateCompositeControl, TemplatedSelectionDialogComponent, TextRange, TimeAgoPipe, TimeDurationPipe, TimeUtil, ToastService, ToastType, TokenChunkRequest, ToolbarHeader, TranslatedEnumValue, Unit, UnitDimension, UnitDimensionInfo, UnitInfo, UnitRegistry, UrlBuilder, UrlQueryParams, UuidUtil, ValueAccessorBase, ValueWrapper, ViewProviders, WeightPipe, WordPositionFinder, alphaNumStringComparator, buildFormIntegrationProviders, existingOrNewElderTableModel, isActivePagedDataContext, isContinuableDataContext, isContinuableDataSource, isDataContext, isDataSource, isListDataSource, isPagedDataSource, naturalValueComparator, newElderTableModel, proxyControlContainer, registerLocale, runInZone };
|
|
25123
25205
|
//# sourceMappingURL=elderbyte-ngx-starter.mjs.map
|