@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
|
@@ -2227,6 +2227,9 @@ class CollectionUtil {
|
|
|
2227
2227
|
}
|
|
2228
2228
|
return true;
|
|
2229
2229
|
}
|
|
2230
|
+
static hasElements(list) {
|
|
2231
|
+
return list !== null && list !== undefined && list.length > 0;
|
|
2232
|
+
}
|
|
2230
2233
|
}
|
|
2231
2234
|
CollectionUtil.logger = LoggerFactory.getLogger('CollectionUtil');
|
|
2232
2235
|
|
|
@@ -20429,66 +20432,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
|
20429
20432
|
type: Input
|
|
20430
20433
|
}] } });
|
|
20431
20434
|
|
|
20432
|
-
class
|
|
20433
|
-
/***************************************************************************
|
|
20434
|
-
* *
|
|
20435
|
-
* Constructor *
|
|
20436
|
-
* *
|
|
20437
|
-
**************************************************************************/
|
|
20438
|
-
constructor(elderSelect) {
|
|
20439
|
-
this.elderSelect = elderSelect;
|
|
20440
|
-
/***************************************************************************
|
|
20441
|
-
* *
|
|
20442
|
-
* Fields *
|
|
20443
|
-
* *
|
|
20444
|
-
**************************************************************************/
|
|
20445
|
-
this.log = LoggerFactory.getLogger(this.constructor.name);
|
|
20446
|
-
}
|
|
20447
|
-
/***************************************************************************
|
|
20448
|
-
* *
|
|
20449
|
-
* Life Cycle *
|
|
20450
|
-
* *
|
|
20451
|
-
**************************************************************************/
|
|
20452
|
-
ngAfterViewInit() {
|
|
20453
|
-
setTimeout(() => {
|
|
20454
|
-
this.log.info('autoSelectFirst after-view init, auto selecting value');
|
|
20455
|
-
this.handleAutoSelectFirst();
|
|
20456
|
-
}, 10);
|
|
20457
|
-
}
|
|
20458
|
-
/***************************************************************************
|
|
20459
|
-
* *
|
|
20460
|
-
* Properties *
|
|
20461
|
-
* *
|
|
20462
|
-
**************************************************************************/
|
|
20463
|
-
/**
|
|
20464
|
-
* After data is loaded into this select, ensure that
|
|
20465
|
-
* a value is selected or select the first automatically.
|
|
20466
|
-
*/
|
|
20467
|
-
set autoSelectFirstEnabled(val) {
|
|
20468
|
-
this.enabled = coerceBooleanProperty(val);
|
|
20469
|
-
}
|
|
20470
|
-
set enabled(val) {
|
|
20471
|
-
this._enabled = val;
|
|
20472
|
-
}
|
|
20473
|
-
get enabled() {
|
|
20474
|
-
return this._enabled;
|
|
20475
|
-
}
|
|
20435
|
+
class ElderSelectFirstUtil {
|
|
20476
20436
|
/***************************************************************************
|
|
20477
20437
|
* *
|
|
20478
20438
|
* Public methods *
|
|
20479
20439
|
* *
|
|
20480
20440
|
**************************************************************************/
|
|
20481
|
-
trySelectFirst() {
|
|
20482
|
-
const suggestionsDc =
|
|
20441
|
+
static trySelectFirst(elderSelect) {
|
|
20442
|
+
const suggestionsDc = elderSelect.suggestionsDc;
|
|
20483
20443
|
const dataContextFirstItem = suggestionsDc?.isStarted
|
|
20484
20444
|
? this.firstItemInDataContextSoon(suggestionsDc)
|
|
20485
20445
|
: of(null);
|
|
20486
|
-
dataContextFirstItem.pipe(takeUntil(
|
|
20487
|
-
if (firstItem && !
|
|
20488
|
-
|
|
20446
|
+
dataContextFirstItem.pipe(takeUntil(elderSelect.valueChange.pipe(filter(value => !!value))), switchMap(firstItem => firstItem ? of(firstItem) : this.firstSuggestionItem(elderSelect))).subscribe(firstItem => {
|
|
20447
|
+
if (firstItem && !elderSelect.entityId) {
|
|
20448
|
+
elderSelect.updateValueByEntity(firstItem);
|
|
20489
20449
|
}
|
|
20490
20450
|
}, err => {
|
|
20491
|
-
|
|
20451
|
+
elderSelect.updateState(ElderSelectComponentState.error(err));
|
|
20492
20452
|
this.log.error('Failed to load first entity for auto-select-first flow!', err);
|
|
20493
20453
|
});
|
|
20494
20454
|
}
|
|
@@ -20497,54 +20457,37 @@ class AutoSelectFirstDirective {
|
|
|
20497
20457
|
* Private methods *
|
|
20498
20458
|
* *
|
|
20499
20459
|
**************************************************************************/
|
|
20500
|
-
|
|
20501
|
-
if (!this.elderSelect.value) {
|
|
20502
|
-
this.log.debug('Attempting to auto select first entity...');
|
|
20503
|
-
this.trySelectFirst();
|
|
20504
|
-
}
|
|
20505
|
-
else {
|
|
20506
|
-
this.log.warn('Conflict avoided: Aborted auto selection because value id already present!');
|
|
20507
|
-
}
|
|
20508
|
-
}
|
|
20509
|
-
firstItemInDataContextSoon(dataContext) {
|
|
20460
|
+
static firstItemInDataContextSoon(dataContext) {
|
|
20510
20461
|
return dataContext.data.pipe(filter(data => data && data.length > 0), map(data => data[0]), timeout(250), catchError(timeoutError => {
|
|
20511
20462
|
this.log.warn('Gave up waiting for DataContext items, timeout reached. Falling back to sugestion lookup.', timeoutError);
|
|
20512
20463
|
return of(null);
|
|
20513
20464
|
}), first());
|
|
20514
20465
|
}
|
|
20515
|
-
firstSuggestionItem() {
|
|
20516
|
-
const suggestionsDc =
|
|
20466
|
+
static firstSuggestionItem(elderSelect) {
|
|
20467
|
+
const suggestionsDc = elderSelect.suggestionsDc;
|
|
20517
20468
|
const dataSource = suggestionsDc?.dataSource;
|
|
20518
20469
|
if (dataSource) {
|
|
20519
|
-
|
|
20470
|
+
elderSelect.updateState(ElderSelectComponentState.loading());
|
|
20520
20471
|
return DataSourceAdapter.from(dataSource)
|
|
20521
|
-
.findFirst(
|
|
20472
|
+
.findFirst(elderSelect.filters, elderSelect.sorts).pipe(tap(() => elderSelect.updateState(ElderSelectComponentState.idle())), catchError(err => {
|
|
20522
20473
|
this.log.error('Failed to load suggestions!', err);
|
|
20523
|
-
|
|
20474
|
+
elderSelect.updateState(ElderSelectComponentState.error(err));
|
|
20524
20475
|
return of(null);
|
|
20525
20476
|
}));
|
|
20526
20477
|
}
|
|
20527
20478
|
else {
|
|
20528
20479
|
this.log.warn('Failed to load first suggestion!');
|
|
20529
|
-
|
|
20480
|
+
elderSelect.updateState(ElderSelectComponentState.idle());
|
|
20530
20481
|
return EMPTY;
|
|
20531
20482
|
}
|
|
20532
20483
|
}
|
|
20533
|
-
updateState(state) {
|
|
20534
|
-
this.elderSelect.updateState(state);
|
|
20535
|
-
}
|
|
20536
20484
|
}
|
|
20537
|
-
|
|
20538
|
-
|
|
20539
|
-
|
|
20540
|
-
|
|
20541
|
-
|
|
20542
|
-
|
|
20543
|
-
}]
|
|
20544
|
-
}], ctorParameters: function () { return [{ type: ElderSelectComponent }]; }, propDecorators: { autoSelectFirstEnabled: [{
|
|
20545
|
-
type: Input,
|
|
20546
|
-
args: ['autoSelectFirst']
|
|
20547
|
-
}] } });
|
|
20485
|
+
/***************************************************************************
|
|
20486
|
+
* *
|
|
20487
|
+
* Fields *
|
|
20488
|
+
* *
|
|
20489
|
+
**************************************************************************/
|
|
20490
|
+
ElderSelectFirstUtil.log = LoggerFactory.getLogger('ElderSelectFirstUtil');
|
|
20548
20491
|
|
|
20549
20492
|
class ElderAutocompleteComponent {
|
|
20550
20493
|
/***************************************************************************
|
|
@@ -20713,7 +20656,7 @@ function isElderEntityValueAccessor(object) {
|
|
|
20713
20656
|
&& vac.updateValueByEntity !== undefined;
|
|
20714
20657
|
}
|
|
20715
20658
|
|
|
20716
|
-
class
|
|
20659
|
+
class ElderSelectOnTabDirective {
|
|
20717
20660
|
/***************************************************************************
|
|
20718
20661
|
* *
|
|
20719
20662
|
* Constructor *
|
|
@@ -20790,9 +20733,9 @@ class SelectOnTabDirective {
|
|
|
20790
20733
|
this.destroy$.complete();
|
|
20791
20734
|
}
|
|
20792
20735
|
}
|
|
20793
|
-
|
|
20794
|
-
|
|
20795
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type:
|
|
20736
|
+
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 });
|
|
20737
|
+
ElderSelectOnTabDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.1", type: ElderSelectOnTabDirective, selector: "[elderSelectOnTab]", host: { listeners: { "keydown.tab": "onBlur()" } }, ngImport: i0 });
|
|
20738
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ElderSelectOnTabDirective, decorators: [{
|
|
20796
20739
|
type: Directive,
|
|
20797
20740
|
args: [{
|
|
20798
20741
|
selector: '[elderSelectOnTab]'
|
|
@@ -20957,6 +20900,8 @@ class ElderSelectComponent extends ElderSelectBase {
|
|
|
20957
20900
|
this.entityIdChange = this.valueChange.pipe(map(v => this.entityIdFromValue(v)));
|
|
20958
20901
|
this.entityChange = this.entity$.pipe(skip(1) // Skip the initial NULL value
|
|
20959
20902
|
);
|
|
20903
|
+
this.entityIdUpdated = this.valueUpdated.pipe(map(value => this.entityIdFromValue(value)));
|
|
20904
|
+
this.entityUpdated = combineLatest([this.entityIdUpdated, this.entity$]).pipe(filter(([updatedId, entity]) => this.getEntityId(entity) === updatedId), map(([updatedId, entity]) => entity));
|
|
20960
20905
|
this.entityWrapped$ = combineLatest([
|
|
20961
20906
|
this.entity$,
|
|
20962
20907
|
this.displayPropertyResolver$,
|
|
@@ -21009,7 +20954,7 @@ class ElderSelectComponent extends ElderSelectBase {
|
|
|
21009
20954
|
* *
|
|
21010
20955
|
**************************************************************************/
|
|
21011
20956
|
set entity(entity) {
|
|
21012
|
-
this.entity$.next(entity);
|
|
20957
|
+
this.entity$.next(entity);
|
|
21013
20958
|
this.writeValueInternal(this.entityToValue(entity));
|
|
21014
20959
|
}
|
|
21015
20960
|
get entity() {
|
|
@@ -21115,8 +21060,7 @@ class ElderSelectComponent extends ElderSelectBase {
|
|
|
21115
21060
|
}
|
|
21116
21061
|
forceReloadFirst() {
|
|
21117
21062
|
this.value = null; // valueId is set to null automatically
|
|
21118
|
-
|
|
21119
|
-
autoReloadFirst.trySelectFirst();
|
|
21063
|
+
ElderSelectFirstUtil.trySelectFirst(this);
|
|
21120
21064
|
}
|
|
21121
21065
|
updateValueByEntity(entity) {
|
|
21122
21066
|
this.updateValue(this.entityToValue(entity));
|
|
@@ -21245,13 +21189,13 @@ class ElderSelectComponent extends ElderSelectBase {
|
|
|
21245
21189
|
}
|
|
21246
21190
|
}
|
|
21247
21191
|
ElderSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ElderSelectComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
21248
|
-
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: [
|
|
21192
|
+
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: [
|
|
21249
21193
|
{
|
|
21250
21194
|
provide: ELDER_SELECT_BASE,
|
|
21251
21195
|
useExisting: forwardRef(() => ElderSelectComponent)
|
|
21252
21196
|
},
|
|
21253
21197
|
...buildFormIntegrationProviders(ElderSelectComponent)
|
|
21254
|
-
], 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:
|
|
21198
|
+
], 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 });
|
|
21255
21199
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ElderSelectComponent, decorators: [{
|
|
21256
21200
|
type: Component,
|
|
21257
21201
|
args: [{ selector: 'elder-select', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
@@ -21267,6 +21211,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
|
21267
21211
|
type: Output
|
|
21268
21212
|
}], entityChange: [{
|
|
21269
21213
|
type: Output
|
|
21214
|
+
}], entityIdUpdated: [{
|
|
21215
|
+
type: Output
|
|
21216
|
+
}], entityUpdated: [{
|
|
21217
|
+
type: Output
|
|
21270
21218
|
}], autocomplete: [{
|
|
21271
21219
|
type: Input
|
|
21272
21220
|
}], allowNull: [{
|
|
@@ -21346,67 +21294,123 @@ class ElderMultiSelectBase extends ElderSelectBase {
|
|
|
21346
21294
|
* *
|
|
21347
21295
|
**************************************************************************/
|
|
21348
21296
|
this.logger = LoggerFactory.getLogger(this.constructor.name);
|
|
21349
|
-
this.
|
|
21350
|
-
this.
|
|
21351
|
-
|
|
21352
|
-
|
|
21353
|
-
}
|
|
21354
|
-
else {
|
|
21355
|
-
return null;
|
|
21356
|
-
}
|
|
21357
|
-
}));
|
|
21297
|
+
this.entities$ = new BehaviorSubject([]);
|
|
21298
|
+
this.entityIdsChange = this.valueChange.pipe(map(values => this.entityIdsFromValues(values)));
|
|
21299
|
+
this.entityIdsUpdated = this.valueUpdated.pipe(map(values => this.entityIdsFromValues(values)));
|
|
21300
|
+
this.entitiesUpdated = combineLatest([this.entityIdsUpdated, this.entities$]).pipe(filter(([updatedIds, entities]) => this.equalIds(this.getEntityIds(entities), updatedIds)), map(([updatedIds, entities]) => entities));
|
|
21358
21301
|
}
|
|
21359
21302
|
/***************************************************************************
|
|
21360
21303
|
* *
|
|
21361
21304
|
* Properties *
|
|
21362
21305
|
* *
|
|
21363
21306
|
**************************************************************************/
|
|
21364
|
-
|
|
21365
|
-
|
|
21366
|
-
|
|
21367
|
-
*/
|
|
21368
|
-
set valueIds(ids) {
|
|
21369
|
-
if (!this.equalIds(ids, this._valueIds)) {
|
|
21370
|
-
this._valueIds = ids;
|
|
21371
|
-
this.selectValuesByIds(ids);
|
|
21372
|
-
}
|
|
21307
|
+
set entities(entities) {
|
|
21308
|
+
this.entities$.next(entities);
|
|
21309
|
+
this.writeValueInternal(this.entitiesToValues(entities));
|
|
21373
21310
|
}
|
|
21374
|
-
get
|
|
21375
|
-
|
|
21376
|
-
|
|
21311
|
+
get entities() {
|
|
21312
|
+
return this.entities$.getValue();
|
|
21313
|
+
}
|
|
21314
|
+
set entityIds(ids) {
|
|
21315
|
+
if (this.valueAsId) {
|
|
21316
|
+
this.writeValueInternal(ids);
|
|
21377
21317
|
}
|
|
21378
21318
|
else {
|
|
21379
|
-
|
|
21319
|
+
this.selectEntitiesByIds(ids);
|
|
21380
21320
|
}
|
|
21381
21321
|
}
|
|
21322
|
+
get entityIds() {
|
|
21323
|
+
return this.entityIdsFromValues(this.value);
|
|
21324
|
+
}
|
|
21325
|
+
/***************************************************************************
|
|
21326
|
+
* *
|
|
21327
|
+
* Public API *
|
|
21328
|
+
* *
|
|
21329
|
+
**************************************************************************/
|
|
21330
|
+
updateValueByEntities(entities) {
|
|
21331
|
+
this.updateValue(this.entitiesToValues(entities));
|
|
21332
|
+
}
|
|
21382
21333
|
/***************************************************************************
|
|
21383
21334
|
* *
|
|
21384
21335
|
* Internal Methods *
|
|
21385
21336
|
* *
|
|
21386
21337
|
**************************************************************************/
|
|
21387
21338
|
onSuggestionsDcChanged(data) {
|
|
21388
|
-
if (this.
|
|
21389
|
-
this.
|
|
21339
|
+
if (this.valueAsId) {
|
|
21340
|
+
this.selectEntitiesByIds(this.entityIds);
|
|
21341
|
+
}
|
|
21342
|
+
}
|
|
21343
|
+
/**
|
|
21344
|
+
* This method is invoked after a value has been written to this control.
|
|
21345
|
+
*
|
|
21346
|
+
*/
|
|
21347
|
+
writeToControl(value) {
|
|
21348
|
+
if (this.valueAsId) {
|
|
21349
|
+
const entityIds = value;
|
|
21350
|
+
// Value was written as entity ids, ensure we select entity by id
|
|
21351
|
+
this.logger.debug('writeToControl: value was written as ids: ' + entityIds, value);
|
|
21352
|
+
this.selectEntitiesByIds(entityIds);
|
|
21353
|
+
}
|
|
21354
|
+
else {
|
|
21355
|
+
// Value was written as entity, ensure entity is updated
|
|
21356
|
+
const currentEntities = this.entities;
|
|
21357
|
+
const newEntities = value;
|
|
21358
|
+
this.logger.debug('writeToControl: value was written as entities (size): ' + newEntities?.length, value);
|
|
21359
|
+
if (!this.equalEntities(currentEntities, newEntities)) {
|
|
21360
|
+
this.entities$.next(newEntities);
|
|
21361
|
+
}
|
|
21362
|
+
else {
|
|
21363
|
+
this.logger.warn('Ignored written entities as they are already set to entities$!');
|
|
21364
|
+
}
|
|
21390
21365
|
}
|
|
21366
|
+
super.writeToControl(value);
|
|
21391
21367
|
}
|
|
21392
21368
|
/***************************************************************************
|
|
21393
21369
|
* *
|
|
21394
21370
|
* Private Methods *
|
|
21395
21371
|
* *
|
|
21396
21372
|
**************************************************************************/
|
|
21397
|
-
|
|
21373
|
+
entityIdsFromValues(values) {
|
|
21374
|
+
return values?.map(v => this.entityIdFromValue(v));
|
|
21375
|
+
}
|
|
21376
|
+
entityIdFromValue(value) {
|
|
21377
|
+
if (this.valueAsId) {
|
|
21378
|
+
return value;
|
|
21379
|
+
}
|
|
21380
|
+
else {
|
|
21381
|
+
const entity = value;
|
|
21382
|
+
return this.getEntityId(entity);
|
|
21383
|
+
}
|
|
21384
|
+
}
|
|
21385
|
+
entitiesToValues(entities) {
|
|
21386
|
+
return entities?.map(e => this.entityToValue(e));
|
|
21387
|
+
}
|
|
21388
|
+
entityToValue(entity) {
|
|
21389
|
+
if (this.valueAsId) {
|
|
21390
|
+
const id = this.getEntityId(entity);
|
|
21391
|
+
return id;
|
|
21392
|
+
}
|
|
21393
|
+
else {
|
|
21394
|
+
return entity;
|
|
21395
|
+
}
|
|
21396
|
+
}
|
|
21397
|
+
getEntityIds(values) {
|
|
21398
21398
|
return values.map(v => this.getEntityId(v));
|
|
21399
21399
|
}
|
|
21400
21400
|
equalIds(idsA, idsB) {
|
|
21401
21401
|
return Sets.equalContent(idsA, idsB);
|
|
21402
21402
|
}
|
|
21403
|
-
|
|
21404
|
-
|
|
21405
|
-
|
|
21403
|
+
equalEntities(entitiesA, entitiesB) {
|
|
21404
|
+
return this.equalIds(this.getEntityIds(entitiesA), this.getEntityIds(entitiesB));
|
|
21405
|
+
}
|
|
21406
|
+
selectEntitiesByIds(ids) {
|
|
21407
|
+
const currentEntities = this.entities;
|
|
21408
|
+
if (currentEntities && this.equalIds(this.getEntityIds(currentEntities), ids)) {
|
|
21409
|
+
return; // Entities already loaded
|
|
21406
21410
|
}
|
|
21407
|
-
if (ids
|
|
21408
|
-
if (
|
|
21409
|
-
this.writeValueInternal([]);
|
|
21411
|
+
if (!CollectionUtil.hasElements(ids)) {
|
|
21412
|
+
if (CollectionUtil.hasElements(currentEntities)) {
|
|
21413
|
+
this.writeValueInternal([]);
|
|
21410
21414
|
}
|
|
21411
21415
|
}
|
|
21412
21416
|
else {
|
|
@@ -21418,8 +21422,8 @@ class ElderMultiSelectBase extends ElderSelectBase {
|
|
|
21418
21422
|
loaded.forEach((v, k) => existing.set(k, v));
|
|
21419
21423
|
return existing;
|
|
21420
21424
|
}), map(allValuesMap => Array.from(allValuesMap.values())) // TODO Sort?
|
|
21421
|
-
).subscribe(
|
|
21422
|
-
this.
|
|
21425
|
+
).subscribe(entities => {
|
|
21426
|
+
this.entities = entities;
|
|
21423
21427
|
});
|
|
21424
21428
|
}
|
|
21425
21429
|
else {
|
|
@@ -21433,6 +21437,7 @@ class ElderMultiSelectBase extends ElderSelectBase {
|
|
|
21433
21437
|
this.updateState(ElderSelectComponentState.error(err));
|
|
21434
21438
|
return of([]);
|
|
21435
21439
|
}), map(values => {
|
|
21440
|
+
this.logger.debug('Loaded entities by id:', values);
|
|
21436
21441
|
const valueMap = new Map();
|
|
21437
21442
|
values.forEach(v => valueMap.set(this.getEntityId(v), v));
|
|
21438
21443
|
return valueMap;
|
|
@@ -21451,12 +21456,18 @@ class ElderMultiSelectBase extends ElderSelectBase {
|
|
|
21451
21456
|
}
|
|
21452
21457
|
}
|
|
21453
21458
|
ElderMultiSelectBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ElderMultiSelectBase, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
21454
|
-
ElderMultiSelectBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.1", type: ElderMultiSelectBase, inputs: {
|
|
21459
|
+
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 });
|
|
21455
21460
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ElderMultiSelectBase, decorators: [{
|
|
21456
21461
|
type: Directive
|
|
21457
|
-
}], ctorParameters: function () { return [{ type: i0.NgZone }]; }, propDecorators: {
|
|
21462
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }]; }, propDecorators: { entityIdsChange: [{
|
|
21458
21463
|
type: Output
|
|
21459
|
-
}],
|
|
21464
|
+
}], entityIdsUpdated: [{
|
|
21465
|
+
type: Output
|
|
21466
|
+
}], entitiesUpdated: [{
|
|
21467
|
+
type: Output
|
|
21468
|
+
}], entities: [{
|
|
21469
|
+
type: Input
|
|
21470
|
+
}], entityIds: [{
|
|
21460
21471
|
type: Input
|
|
21461
21472
|
}] } });
|
|
21462
21473
|
|
|
@@ -21475,7 +21486,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
|
21475
21486
|
}]
|
|
21476
21487
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
|
|
21477
21488
|
|
|
21478
|
-
class
|
|
21489
|
+
class SelectChip {
|
|
21479
21490
|
constructor(value, displayText, color, removeable) {
|
|
21480
21491
|
this.value = value;
|
|
21481
21492
|
this.displayText = displayText;
|
|
@@ -21500,13 +21511,13 @@ class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
|
|
|
21500
21511
|
this.chipColorResolver$ = new BehaviorSubject((value) => undefined);
|
|
21501
21512
|
this.selectable = true;
|
|
21502
21513
|
this.allowRemove = true;
|
|
21503
|
-
this.
|
|
21504
|
-
this.
|
|
21514
|
+
this.selectChips$ = combineLatest([
|
|
21515
|
+
this.entities$,
|
|
21505
21516
|
this.displayPropertyResolver$,
|
|
21506
21517
|
this.chipColorResolver$
|
|
21507
21518
|
]).pipe(map(([values, dPR, cCR]) => {
|
|
21508
21519
|
if (values) {
|
|
21509
|
-
return values.map(v => new
|
|
21520
|
+
return values.map(v => new SelectChip(v, dPR(v), cCR(v), this.allowRemove));
|
|
21510
21521
|
}
|
|
21511
21522
|
else {
|
|
21512
21523
|
return [];
|
|
@@ -21575,19 +21586,19 @@ class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
|
|
|
21575
21586
|
}
|
|
21576
21587
|
}
|
|
21577
21588
|
addLabels(labels) {
|
|
21578
|
-
const current = this.
|
|
21589
|
+
const current = this.entities ? this.entities : [];
|
|
21579
21590
|
this.replaceWith([...current, ...labels]);
|
|
21580
21591
|
}
|
|
21581
21592
|
addLabel(label) {
|
|
21582
21593
|
this.addLabels([label]);
|
|
21583
21594
|
}
|
|
21584
21595
|
removeLabel(toRemove) {
|
|
21585
|
-
const remaining = this.
|
|
21596
|
+
const remaining = this.entities
|
|
21586
21597
|
.filter(l => !this.isEqual(l, toRemove));
|
|
21587
21598
|
this.replaceWith(remaining);
|
|
21588
21599
|
}
|
|
21589
|
-
replaceWith(
|
|
21590
|
-
this.
|
|
21600
|
+
replaceWith(entities) {
|
|
21601
|
+
this.updateValueByEntities(entities);
|
|
21591
21602
|
}
|
|
21592
21603
|
/***************************************************************************
|
|
21593
21604
|
* *
|
|
@@ -21595,8 +21606,8 @@ class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
|
|
|
21595
21606
|
* *
|
|
21596
21607
|
**************************************************************************/
|
|
21597
21608
|
isAlreadyPresent(queryValue) {
|
|
21598
|
-
if (this.
|
|
21599
|
-
return this.
|
|
21609
|
+
if (this.entities) {
|
|
21610
|
+
return this.entities.some(v => this.isEqual(v, queryValue));
|
|
21600
21611
|
}
|
|
21601
21612
|
else {
|
|
21602
21613
|
return false;
|
|
@@ -21612,10 +21623,10 @@ class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
|
|
|
21612
21623
|
}
|
|
21613
21624
|
}
|
|
21614
21625
|
ElderMultiSelectChipsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ElderMultiSelectChipsComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
21615
|
-
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=\"(
|
|
21626
|
+
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 });
|
|
21616
21627
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ElderMultiSelectChipsComponent, decorators: [{
|
|
21617
21628
|
type: Component,
|
|
21618
|
-
args: [{ selector: 'elder-multi-select-chips', changeDetection: ChangeDetectionStrategy.OnPush, providers: buildFormIntegrationProviders(ElderMultiSelectChipsComponent), template: "<mat-form-field *ngIf=\"(
|
|
21629
|
+
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"] }]
|
|
21619
21630
|
}], ctorParameters: function () { return [{ type: i0.NgZone }]; }, propDecorators: { allowRemove: [{
|
|
21620
21631
|
type: Input
|
|
21621
21632
|
}], inputControl: [{
|
|
@@ -21630,6 +21641,77 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
|
21630
21641
|
type: Input
|
|
21631
21642
|
}] } });
|
|
21632
21643
|
|
|
21644
|
+
class ElderAutoSelectFirstDirective {
|
|
21645
|
+
/***************************************************************************
|
|
21646
|
+
* *
|
|
21647
|
+
* Constructor *
|
|
21648
|
+
* *
|
|
21649
|
+
**************************************************************************/
|
|
21650
|
+
constructor(elderSelect) {
|
|
21651
|
+
this.elderSelect = elderSelect;
|
|
21652
|
+
/***************************************************************************
|
|
21653
|
+
* *
|
|
21654
|
+
* Fields *
|
|
21655
|
+
* *
|
|
21656
|
+
**************************************************************************/
|
|
21657
|
+
this.log = LoggerFactory.getLogger(this.constructor.name);
|
|
21658
|
+
}
|
|
21659
|
+
/***************************************************************************
|
|
21660
|
+
* *
|
|
21661
|
+
* Life Cycle *
|
|
21662
|
+
* *
|
|
21663
|
+
**************************************************************************/
|
|
21664
|
+
ngAfterViewInit() {
|
|
21665
|
+
setTimeout(() => {
|
|
21666
|
+
this.log.info('autoSelectFirst after-view init, auto selecting value');
|
|
21667
|
+
this.handleAutoSelectFirst();
|
|
21668
|
+
}, 10);
|
|
21669
|
+
}
|
|
21670
|
+
/***************************************************************************
|
|
21671
|
+
* *
|
|
21672
|
+
* Properties *
|
|
21673
|
+
* *
|
|
21674
|
+
**************************************************************************/
|
|
21675
|
+
/**
|
|
21676
|
+
* After data is loaded into this select, ensure that
|
|
21677
|
+
* a value is selected or select the first automatically.
|
|
21678
|
+
*/
|
|
21679
|
+
set autoSelectFirstEnabled(val) {
|
|
21680
|
+
this.enabled = coerceBooleanProperty(val);
|
|
21681
|
+
}
|
|
21682
|
+
set enabled(val) {
|
|
21683
|
+
this._enabled = val;
|
|
21684
|
+
}
|
|
21685
|
+
get enabled() {
|
|
21686
|
+
return this._enabled;
|
|
21687
|
+
}
|
|
21688
|
+
/***************************************************************************
|
|
21689
|
+
* *
|
|
21690
|
+
* Private methods *
|
|
21691
|
+
* *
|
|
21692
|
+
**************************************************************************/
|
|
21693
|
+
handleAutoSelectFirst() {
|
|
21694
|
+
if (!this.elderSelect.value) {
|
|
21695
|
+
this.log.debug('Attempting to auto select first entity...');
|
|
21696
|
+
ElderSelectFirstUtil.trySelectFirst(this.elderSelect);
|
|
21697
|
+
}
|
|
21698
|
+
else {
|
|
21699
|
+
this.log.warn('Conflict avoided: Aborted auto selection because value id already present!');
|
|
21700
|
+
}
|
|
21701
|
+
}
|
|
21702
|
+
}
|
|
21703
|
+
ElderAutoSelectFirstDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ElderAutoSelectFirstDirective, deps: [{ token: ElderSelectComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
|
21704
|
+
ElderAutoSelectFirstDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.1", type: ElderAutoSelectFirstDirective, selector: "[autoSelectFirst]", inputs: { autoSelectFirstEnabled: ["autoSelectFirst", "autoSelectFirstEnabled"] }, ngImport: i0 });
|
|
21705
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ElderAutoSelectFirstDirective, decorators: [{
|
|
21706
|
+
type: Directive,
|
|
21707
|
+
args: [{
|
|
21708
|
+
selector: '[autoSelectFirst]'
|
|
21709
|
+
}]
|
|
21710
|
+
}], ctorParameters: function () { return [{ type: ElderSelectComponent }]; }, propDecorators: { autoSelectFirstEnabled: [{
|
|
21711
|
+
type: Input,
|
|
21712
|
+
args: ['autoSelectFirst']
|
|
21713
|
+
}] } });
|
|
21714
|
+
|
|
21633
21715
|
class ElderSelectModule {
|
|
21634
21716
|
}
|
|
21635
21717
|
ElderSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ElderSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
@@ -21637,10 +21719,10 @@ ElderSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versi
|
|
|
21637
21719
|
ElderSelectValueDirective,
|
|
21638
21720
|
TemplatedSelectionDialogComponent,
|
|
21639
21721
|
SelectionModelPopupDirective,
|
|
21640
|
-
|
|
21722
|
+
ElderSelectOnTabDirective,
|
|
21641
21723
|
ElderMultiSelectChipsComponent,
|
|
21642
21724
|
ElderSelectChipDirective,
|
|
21643
|
-
|
|
21725
|
+
ElderAutoSelectFirstDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule,
|
|
21644
21726
|
MatFormFieldModule,
|
|
21645
21727
|
MatIconModule,
|
|
21646
21728
|
MatSelectModule,
|
|
@@ -21655,7 +21737,7 @@ ElderSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versi
|
|
|
21655
21737
|
SelectionModelPopupDirective,
|
|
21656
21738
|
ElderMultiSelectChipsComponent,
|
|
21657
21739
|
ElderSelectChipDirective,
|
|
21658
|
-
|
|
21740
|
+
ElderAutoSelectFirstDirective] });
|
|
21659
21741
|
ElderSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ElderSelectModule, imports: [[
|
|
21660
21742
|
CommonModule, FormsModule, ReactiveFormsModule,
|
|
21661
21743
|
MatFormFieldModule,
|
|
@@ -21688,10 +21770,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
|
21688
21770
|
ElderSelectValueDirective,
|
|
21689
21771
|
TemplatedSelectionDialogComponent,
|
|
21690
21772
|
SelectionModelPopupDirective,
|
|
21691
|
-
|
|
21773
|
+
ElderSelectOnTabDirective,
|
|
21692
21774
|
ElderMultiSelectChipsComponent,
|
|
21693
21775
|
ElderSelectChipDirective,
|
|
21694
|
-
|
|
21776
|
+
ElderAutoSelectFirstDirective
|
|
21695
21777
|
],
|
|
21696
21778
|
exports: [
|
|
21697
21779
|
ElderSelectComponent,
|
|
@@ -21700,7 +21782,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
|
21700
21782
|
SelectionModelPopupDirective,
|
|
21701
21783
|
ElderMultiSelectChipsComponent,
|
|
21702
21784
|
ElderSelectChipDirective,
|
|
21703
|
-
|
|
21785
|
+
ElderAutoSelectFirstDirective
|
|
21704
21786
|
]
|
|
21705
21787
|
}]
|
|
21706
21788
|
}] });
|
|
@@ -25031,5 +25113,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
|
25031
25113
|
* Generated bundle index. Do not edit.
|
|
25032
25114
|
*/
|
|
25033
25115
|
|
|
25034
|
-
export { AuditedEntity,
|
|
25116
|
+
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 };
|
|
25035
25117
|
//# sourceMappingURL=elderbyte-ngx-starter.mjs.map
|