@elderbyte/ngx-starter 16.1.0 → 16.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/esm2022/lib/common/data/filters/filter-context.mjs +8 -2
  2. package/esm2022/lib/components/forms/clipboard/elder-clipboard.service.mjs +1 -1
  3. package/esm2022/lib/components/forms/directives/elder-initial-value.directive.mjs +56 -0
  4. package/esm2022/lib/components/forms/search/elder-search-context-url-binding.directive.mjs +68 -0
  5. package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +40 -31
  6. package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +84 -29
  7. package/esm2022/lib/components/forms/search/elder-search.module.mjs +47 -30
  8. package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +1 -1
  9. package/esm2022/lib/components/forms/search/search-box/elder-search-context-filters.mjs +10 -0
  10. package/esm2022/lib/components/forms/search/search-box/elder-search-url-binding.service.mjs +136 -0
  11. package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +3 -2
  12. package/fesm2022/elderbyte-ngx-starter.mjs +505 -171
  13. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  14. package/lib/common/data/filters/filter-context.d.ts +2 -1
  15. package/lib/components/forms/directives/elder-initial-value.directive.d.ts +21 -0
  16. package/lib/components/forms/search/elder-search-context-url-binding.directive.d.ts +42 -0
  17. package/lib/components/forms/search/elder-search-context.directive.d.ts +14 -13
  18. package/lib/components/forms/search/elder-search-input.directive.d.ts +25 -12
  19. package/lib/components/forms/search/elder-search.module.d.ts +22 -19
  20. package/lib/components/forms/search/search-box/elder-search-context-filters.d.ts +7 -0
  21. package/lib/components/forms/search/search-box/elder-search-url-binding.service.d.ts +38 -0
  22. package/package.json +1 -1
  23. package/src/lib/components/select/single/elder-select/elder-select.component.scss +1 -0
@@ -1,5 +1,5 @@
1
1
  import { Filter } from './filter';
2
- import { Observable } from 'rxjs';
2
+ import { Observable } from "rxjs";
3
3
  export declare class FilterContext {
4
4
  /***************************************************************************
5
5
  * *
@@ -19,6 +19,7 @@ export declare class FilterContext {
19
19
  * @param updatedFilters
20
20
  */
21
21
  static updateFilters(filters: Filter[], updatedFilters: Filter[]): Filter[];
22
+ static of(filters: Filter[]): Promise<FilterContext>;
22
23
  /***************************************************************************
23
24
  * *
24
25
  * Read API *
@@ -0,0 +1,21 @@
1
+ import { OnDestroy } from '@angular/core';
2
+ import { NgModel } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Search name adapter for input controls.
6
+ */
7
+ export declare class ElderInitialValueDirective implements OnDestroy {
8
+ private ngModel;
9
+ private newValue$;
10
+ private initialValue;
11
+ private readonly unsubscribe$;
12
+ private readonly initialDone$;
13
+ private isInitial;
14
+ constructor(ngModel: NgModel);
15
+ get valueChanges$(): import("rxjs").Observable<any>;
16
+ setInitialValue(value: any): void;
17
+ ngOnDestroy(): void;
18
+ private filterInitialValue;
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<ElderInitialValueDirective, [{ host: true; }]>;
20
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ElderInitialValueDirective, "[elderInitialValue]", ["elderInitialValue"], {}, {}, never, never, false, never>;
21
+ }
@@ -0,0 +1,42 @@
1
+ import { AfterViewInit, OnDestroy } from "@angular/core";
2
+ import { ElderSearchUrlBindingService } from "./search-box/elder-search-url-binding.service";
3
+ import { ElderSearchContextDirective } from "./elder-search-context.directive";
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * The search container manages a group of search-inputs
7
+ * and holds their values in a central search model.
8
+ */
9
+ export declare class ElderSearchContextUrlBindingDirective implements AfterViewInit, OnDestroy {
10
+ private searchContext;
11
+ private urlBindingService;
12
+ /***************************************************************************
13
+ * *
14
+ * Fields *
15
+ * *
16
+ **************************************************************************/
17
+ private readonly log;
18
+ private readonly _unsubscribe$;
19
+ private _urlBinding;
20
+ /***************************************************************************
21
+ * *
22
+ * Constructor *
23
+ * *
24
+ **************************************************************************/
25
+ constructor(searchContext: ElderSearchContextDirective, urlBindingService: ElderSearchUrlBindingService);
26
+ /***************************************************************************
27
+ * *
28
+ * Life Cycle *
29
+ * *
30
+ **************************************************************************/
31
+ ngAfterViewInit(): void;
32
+ ngOnDestroy(): void;
33
+ /***************************************************************************
34
+ * *
35
+ * Properties *
36
+ * *
37
+ **************************************************************************/
38
+ set elderSearchContextUrlBinding(value: string);
39
+ get elderSearchContextUrlBinding(): string;
40
+ static ɵfac: i0.ɵɵFactoryDeclaration<ElderSearchContextUrlBindingDirective, never>;
41
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ElderSearchContextUrlBindingDirective, "[elderSearchContextUrlBinding]", ["elderSearchContextUrlBinding"], { "elderSearchContextUrlBinding": { "alias": "elderSearchContextUrlBinding"; "required": false; }; }, {}, never, never, false, never>;
42
+ }
@@ -1,15 +1,17 @@
1
- import { AfterViewInit, OnDestroy } from '@angular/core';
2
- import { Observable } from 'rxjs/internal/Observable';
3
- import { SearchInput } from './model/search-input';
4
- import { Filter } from '../../../common/data/filters/filter';
5
- import { FilterContext } from '../../../common/data/filters/filter-context';
6
- import { SearchInputState } from './model/search-input-state';
1
+ import { AfterViewInit, OnDestroy, QueryList } from "@angular/core";
2
+ import { Observable } from "rxjs/internal/Observable";
3
+ import { SearchInput } from "./model/search-input";
4
+ import { Filter } from "../../../common/data/filters/filter";
5
+ import { FilterContext } from "../../../common/data/filters/filter-context";
6
+ import { SearchInputState } from "./model/search-input-state";
7
+ import { ElderSearchInputDirective } from "./elder-search-input.directive";
7
8
  import * as i0 from "@angular/core";
8
9
  /**
9
10
  * The search container manages a group of search-inputs
10
11
  * and holds their values in a central search model.
11
12
  */
12
13
  export declare class ElderSearchContextDirective implements AfterViewInit, OnDestroy {
14
+ searchInputs: QueryList<ElderSearchInputDirective>;
13
15
  /***************************************************************************
14
16
  * *
15
17
  * Fields *
@@ -17,10 +19,11 @@ export declare class ElderSearchContextDirective implements AfterViewInit, OnDes
17
19
  **************************************************************************/
18
20
  private forcedFilters$;
19
21
  private readonly log;
20
- private readonly unsubscribe$;
22
+ private readonly _unsubscribe$;
21
23
  private readonly _searchInputs;
22
24
  private readonly _searchStates;
23
- private readonly _filters;
25
+ private readonly _filters$;
26
+ private readonly _initialFilters$;
24
27
  private _filterContext;
25
28
  /***************************************************************************
26
29
  * *
@@ -56,16 +59,14 @@ export declare class ElderSearchContextDirective implements AfterViewInit, OnDes
56
59
  * Returns the current active filters
57
60
  */
58
61
  get filters$(): Observable<Filter[]>;
62
+ get initialFilters$(): Observable<Filter[]>;
59
63
  get filtersSnapshot(): Filter[];
60
64
  /***************************************************************************
61
65
  * *
62
66
  * Public API *
63
67
  * *
64
68
  **************************************************************************/
65
- /**
66
- * Register a new search name in this container
67
- */
68
- register(searchInput: SearchInput): void;
69
+ registerInitialFilters(filters: Filter[]): void;
69
70
  reset(): void;
70
71
  /***************************************************************************
71
72
  * *
@@ -75,5 +76,5 @@ export declare class ElderSearchContextDirective implements AfterViewInit, OnDes
75
76
  private convertToFilters;
76
77
  private applyFilters;
77
78
  static ɵfac: i0.ɵɵFactoryDeclaration<ElderSearchContextDirective, never>;
78
- static ɵdir: i0.ɵɵDirectiveDeclaration<ElderSearchContextDirective, "[elderSearchContext]", ["elderSearchContext"], { "filterContext": { "alias": "elderSearchContext"; "required": false; }; "forcedFilters": { "alias": "forcedFilters"; "required": false; }; }, {}, never, never, false, never>;
79
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ElderSearchContextDirective, "[elderSearchContext]", ["elderSearchContext"], { "filterContext": { "alias": "elderSearchContext"; "required": false; }; "forcedFilters": { "alias": "forcedFilters"; "required": false; }; }, {}, ["searchInputs"], never, false, never>;
79
80
  }
@@ -1,16 +1,21 @@
1
- import { AfterViewInit, OnDestroy } from '@angular/core';
2
- import { ElderSearchContextDirective } from './elder-search-context.directive';
3
- import { Observable } from 'rxjs/internal/Observable';
4
- import { NgModel } from '@angular/forms';
5
- import { SearchInput } from './model/search-input';
6
- import { SearchInputState } from './model/search-input-state';
1
+ import { AfterViewInit, ChangeDetectorRef, OnDestroy } from "@angular/core";
2
+ import { ElderSearchContextDirective } from "./elder-search-context.directive";
3
+ import { Observable } from "rxjs/internal/Observable";
4
+ import { NgModel } from "@angular/forms";
5
+ import { SearchInput } from "./model/search-input";
6
+ import { SearchInputState } from "./model/search-input-state";
7
+ import { Filter } from "../../../common/data/filters/filter";
8
+ import { LocalPagedDataSource } from "../../../common/data/datasource/local/local-paged-data-source";
9
+ import { BooleanInput } from "@angular/cdk/coercion";
7
10
  import * as i0 from "@angular/core";
8
11
  /**
9
12
  * Search name adapter for input controls.
10
13
  */
11
14
  export declare class ElderSearchInputDirective implements OnDestroy, AfterViewInit, SearchInput {
12
15
  private searchContext;
16
+ private changeDetection;
13
17
  private ngModel;
18
+ private readonly initialValueDirective;
14
19
  /***************************************************************************
15
20
  * *
16
21
  * Fields *
@@ -29,23 +34,25 @@ export declare class ElderSearchInputDirective implements OnDestroy, AfterViewIn
29
34
  * value = "type.id"
30
35
  */
31
36
  resolvePath: string;
37
+ dataSource: LocalPagedDataSource<any>;
32
38
  /**
33
39
  * (Optional) Use this value for the query if none is provided.
34
40
  */
35
41
  fallbackValue: string | string[];
42
+ valueAsId: BooleanInput;
36
43
  private readonly _state;
37
44
  private _extractedName;
38
- private readonly destroy$;
45
+ private readonly _unsubscribe$;
39
46
  private readonly log;
40
47
  /***************************************************************************
41
48
  * *
42
49
  * Constructor *
43
50
  * *
44
51
  **************************************************************************/
45
- constructor(searchContext: ElderSearchContextDirective, ngModel: NgModel);
52
+ constructor(searchContext: ElderSearchContextDirective, changeDetection: ChangeDetectorRef, ngModel: NgModel);
46
53
  /***************************************************************************
47
54
  * *
48
- * Life Cycle *
55
+ * Life Cycle *
49
56
  * *
50
57
  **************************************************************************/
51
58
  ngAfterViewInit(): void;
@@ -66,20 +73,26 @@ export declare class ElderSearchInputDirective implements OnDestroy, AfterViewIn
66
73
  * Public API *
67
74
  * *
68
75
  **************************************************************************/
76
+ setInitialFilter(filters: Filter[]): void;
69
77
  reset(): void;
70
78
  /***************************************************************************
71
79
  * *
72
80
  * Private methods *
73
81
  * *
74
82
  **************************************************************************/
83
+ private findFilterForThisInput;
75
84
  private stateObservable;
85
+ private convertQueryStringToRawModelValue;
76
86
  private convertRawModelValueToQueryString;
77
- private emitState;
87
+ emitState(state: SearchInputState): void;
88
+ private checkAndConvertFaultyValuesToNull;
89
+ private convertEmptyArrayToNull;
90
+ private convertEmptyStringToNull;
78
91
  private isAttributeValuePresent;
79
92
  private resolveValue;
80
93
  private resolveSingleValue;
81
94
  private extractName;
82
95
  private concatIfNecessary;
83
- static ɵfac: i0.ɵɵFactoryDeclaration<ElderSearchInputDirective, [null, { host: true; }]>;
84
- static ɵdir: i0.ɵɵDirectiveDeclaration<ElderSearchInputDirective, "[elderSearchInput]", ["elderSearchInput"], { "queryKey": { "alias": "elderSearchInputKey"; "required": false; }; "valueTransform": { "alias": "elderSearchInputTransform"; "required": false; }; "resolvePath": { "alias": "elderSearchInput"; "required": false; }; "fallbackValue": { "alias": "elderSearchInputFallback"; "required": false; }; }, {}, never, never, false, never>;
96
+ static ɵfac: i0.ɵɵFactoryDeclaration<ElderSearchInputDirective, [null, null, { host: true; }]>;
97
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ElderSearchInputDirective, "[elderSearchInput]", ["elderSearchInput"], { "queryKey": { "alias": "elderSearchInputKey"; "required": false; }; "valueTransform": { "alias": "elderSearchInputTransform"; "required": false; }; "resolvePath": { "alias": "elderSearchInput"; "required": false; }; "dataSource": { "alias": "dataSource"; "required": false; }; "fallbackValue": { "alias": "elderSearchInputFallback"; "required": false; }; "valueAsId": { "alias": "valueAsId"; "required": false; }; }, {}, never, never, false, never>;
85
98
  }
@@ -1,25 +1,28 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./elder-search-context.directive";
3
- import * as i2 from "./elder-search-input.directive";
4
- import * as i3 from "./search-box/elder-search-box.component";
5
- import * as i4 from "./search-box/elder-search-panel.component";
6
- import * as i5 from "@angular/common";
7
- import * as i6 from "@angular/forms";
8
- import * as i7 from "@angular/material/input";
9
- import * as i8 from "@angular/material/button";
10
- import * as i9 from "@angular/material/icon";
11
- import * as i10 from "@angular/material/badge";
12
- import * as i11 from "@angular/cdk/a11y";
13
- import * as i12 from "../../overlays/elder-overlay.module";
14
- import * as i13 from "../../panels/elder-panel.module";
15
- import * as i14 from "../directives/elder-forms-directives.module";
16
- import * as i15 from "@ngx-translate/core";
17
- export { ElderSearchContextDirective } from './elder-search-context.directive';
18
- export { ElderSearchInputDirective } from './elder-search-input.directive';
19
- export { ElderSearchBoxComponent } from './search-box/elder-search-box.component';
20
- export { ElderSearchPanelComponent } from './search-box/elder-search-panel.component';
3
+ import * as i2 from "./elder-search-context-url-binding.directive";
4
+ import * as i3 from "./elder-search-input.directive";
5
+ import * as i4 from "../directives/elder-initial-value.directive";
6
+ import * as i5 from "./search-box/elder-search-box.component";
7
+ import * as i6 from "./search-box/elder-search-panel.component";
8
+ import * as i7 from "@angular/common";
9
+ import * as i8 from "@angular/forms";
10
+ import * as i9 from "@angular/material/input";
11
+ import * as i10 from "@angular/material/button";
12
+ import * as i11 from "@angular/material/icon";
13
+ import * as i12 from "@angular/material/badge";
14
+ import * as i13 from "@angular/cdk/a11y";
15
+ import * as i14 from "../../overlays/elder-overlay.module";
16
+ import * as i15 from "../../panels/elder-panel.module";
17
+ import * as i16 from "../directives/elder-forms-directives.module";
18
+ import * as i17 from "@ngx-translate/core";
19
+ export { ElderSearchContextDirective } from "./elder-search-context.directive";
20
+ export { ElderSearchContextUrlBindingDirective } from "./elder-search-context-url-binding.directive";
21
+ export { ElderSearchInputDirective } from "./elder-search-input.directive";
22
+ export { ElderSearchBoxComponent } from "./search-box/elder-search-box.component";
23
+ export { ElderSearchPanelComponent } from "./search-box/elder-search-panel.component";
21
24
  export declare class ElderSearchModule {
22
25
  static ɵfac: i0.ɵɵFactoryDeclaration<ElderSearchModule, never>;
23
- static ɵmod: i0.ɵɵNgModuleDeclaration<ElderSearchModule, [typeof i1.ElderSearchContextDirective, typeof i2.ElderSearchInputDirective, typeof i3.ElderSearchBoxComponent, typeof i4.ElderSearchPanelComponent], [typeof i5.CommonModule, typeof i6.FormsModule, typeof i7.MatInputModule, typeof i8.MatButtonModule, typeof i9.MatIconModule, typeof i10.MatBadgeModule, typeof i11.A11yModule, typeof i12.ElderOverlayModule, typeof i13.ElderPanelModule, typeof i14.ElderFormsDirectivesModule, typeof i15.TranslateModule], [typeof i1.ElderSearchContextDirective, typeof i2.ElderSearchInputDirective, typeof i3.ElderSearchBoxComponent, typeof i4.ElderSearchPanelComponent]>;
26
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ElderSearchModule, [typeof i1.ElderSearchContextDirective, typeof i2.ElderSearchContextUrlBindingDirective, typeof i3.ElderSearchInputDirective, typeof i4.ElderInitialValueDirective, typeof i5.ElderSearchBoxComponent, typeof i6.ElderSearchPanelComponent], [typeof i7.CommonModule, typeof i8.FormsModule, typeof i9.MatInputModule, typeof i10.MatButtonModule, typeof i11.MatIconModule, typeof i12.MatBadgeModule, typeof i13.A11yModule, typeof i14.ElderOverlayModule, typeof i15.ElderPanelModule, typeof i16.ElderFormsDirectivesModule, typeof i17.TranslateModule], [typeof i1.ElderSearchContextDirective, typeof i2.ElderSearchContextUrlBindingDirective, typeof i3.ElderSearchInputDirective, typeof i5.ElderSearchBoxComponent, typeof i6.ElderSearchPanelComponent]>;
24
27
  static ɵinj: i0.ɵɵInjectorDeclaration<ElderSearchModule>;
25
28
  }
@@ -0,0 +1,7 @@
1
+ import { Filter } from "../../../../common/data/filters/filter";
2
+ export declare class ElderSearchContextFilters {
3
+ readonly searchContextId: string;
4
+ readonly filters: Map<string, Filter>;
5
+ static empty(searchContextId: string): ElderSearchContextFilters;
6
+ constructor(searchContextId: string, filters: Map<string, Filter>);
7
+ }
@@ -0,0 +1,38 @@
1
+ import { OnDestroy } from "@angular/core";
2
+ import { ActivatedRoute, Router } from "@angular/router";
3
+ import { ElderSearchContextFilters } from "./elder-search-context-filters";
4
+ import { Filter } from "../../../../common/data/filters/filter";
5
+ import { BehaviorSubject } from "rxjs/internal/BehaviorSubject";
6
+ import * as i0 from "@angular/core";
7
+ export interface FilterParamData {
8
+ searchContextId: string;
9
+ filterId: string;
10
+ isArray: boolean;
11
+ }
12
+ export declare class ElderSearchUrlBindingService implements OnDestroy {
13
+ private router;
14
+ private route;
15
+ private _searchMap$;
16
+ private _initialSearchMap$;
17
+ private readonly searchParamPrefix;
18
+ private unsubscribe$;
19
+ constructor(router: Router, route: ActivatedRoute);
20
+ private resetSearchParams;
21
+ private buildQueryParams;
22
+ private convertValueToArrayOrSingleValue;
23
+ get initialSearchMap$(): BehaviorSubject<Map<string, ElderSearchContextFilters>>;
24
+ updateFiltersForContext(searchContextId: string, filters: Filter[]): void;
25
+ private handleSearchParameters;
26
+ private extractSearchParameters;
27
+ private buildSearchContextMap;
28
+ private checkAndSetFilter;
29
+ private setFilter;
30
+ private extractFilterParam;
31
+ private checkIfParamIsArray;
32
+ private convertFilterStringToFilter;
33
+ private isSingularArrayValue;
34
+ private convertValueToArray;
35
+ ngOnDestroy(): void;
36
+ static ɵfac: i0.ɵɵFactoryDeclaration<ElderSearchUrlBindingService, never>;
37
+ static ɵprov: i0.ɵɵInjectableDeclaration<ElderSearchUrlBindingService>;
38
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elderbyte/ngx-starter",
3
- "version": "16.1.0",
3
+ "version": "16.2.1",
4
4
  "peerDependencies": {
5
5
  "@angular/core": "^16.0.0 || ^17.0.0",
6
6
  "@angular/common": "^16.0.0 || ^17.0.0",
@@ -22,6 +22,7 @@
22
22
 
23
23
  .elder-select-input {
24
24
  height: $line-height-em;
25
+ font: inherit;
25
26
  }
26
27
 
27
28
  .elder-select-arrow {