@stackline/angular-multiselect-dropdown 12.0.0 → 14.0.0

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 (40) hide show
  1. package/README.md +12 -12
  2. package/esm2020/lib/clickOutside.mjs +78 -0
  3. package/esm2020/lib/list-filter.mjs +33 -0
  4. package/esm2020/lib/menu-item.mjs +62 -0
  5. package/esm2020/lib/multiselect.component.mjs +391 -0
  6. package/esm2020/lib/multiselect.interface.mjs +2 -0
  7. package/esm2020/lib/multiselect.model.mjs +9 -0
  8. package/esm2020/public-api.mjs +6 -0
  9. package/esm2020/stackline-angular-multiselect-dropdown.mjs +5 -0
  10. package/fesm2015/stackline-angular-multiselect-dropdown.mjs +570 -0
  11. package/fesm2015/stackline-angular-multiselect-dropdown.mjs.map +1 -0
  12. package/fesm2020/stackline-angular-multiselect-dropdown.mjs +570 -0
  13. package/fesm2020/stackline-angular-multiselect-dropdown.mjs.map +1 -0
  14. package/index.d.ts +5 -0
  15. package/lib/clickOutside.d.ts +27 -0
  16. package/lib/list-filter.d.ts +9 -0
  17. package/lib/menu-item.d.ts +25 -0
  18. package/lib/multiselect.component.d.ts +80 -0
  19. package/lib/multiselect.interface.d.ts +22 -0
  20. package/lib/multiselect.model.d.ts +10 -0
  21. package/package.json +37 -105
  22. package/public-api.d.ts +6 -0
  23. package/angular2-multiselect-dropdown.ts +0 -1
  24. package/gulpfile.js +0 -68
  25. package/inline-resources.js +0 -119
  26. package/multiselect.component.css +0 -733
  27. package/src/app/angular2-multiselect-dropdown/angular2-multiselect-dropdown.ts +0 -6
  28. package/src/app/angular2-multiselect-dropdown/clickOutside.ts +0 -60
  29. package/src/app/angular2-multiselect-dropdown/index.ts +0 -6
  30. package/src/app/angular2-multiselect-dropdown/list-filter.ts +0 -29
  31. package/src/app/angular2-multiselect-dropdown/menu-item.ts +0 -55
  32. package/src/app/angular2-multiselect-dropdown/multiselect.component.html +0 -88
  33. package/src/app/angular2-multiselect-dropdown/multiselect.component.scss +0 -710
  34. package/src/app/angular2-multiselect-dropdown/multiselect.component.ts +0 -405
  35. package/src/app/angular2-multiselect-dropdown/multiselect.interface.ts +0 -22
  36. package/src/app/angular2-multiselect-dropdown/multiselect.model.ts +0 -13
  37. package/tsconfig-aot.json +0 -32
  38. package/tsconfig.json +0 -36
  39. package/webpack-test.config.ts +0 -70
  40. package/webpack-umd.config.ts +0 -98
package/README.md CHANGED
@@ -6,13 +6,13 @@
6
6
  [![npm downloads](https://img.shields.io/npm/dt/@stackline/angular-multiselect-dropdown.svg?style=flat-square)](https://www.npmjs.com/package/@stackline/angular-multiselect-dropdown)
7
7
  [![npm monthly](https://img.shields.io/npm/dm/@stackline/angular-multiselect-dropdown.svg?style=flat-square)](https://www.npmjs.com/package/@stackline/angular-multiselect-dropdown)
8
8
  [![license](https://img.shields.io/npm/l/@stackline/angular-multiselect-dropdown.svg?style=flat-square)](https://github.com/alexandroit/angular-multiselect-dropdown/blob/master/LICENSE)
9
- [![Angular 12](https://img.shields.io/badge/Angular-12.x-red?style=flat-square&logo=angular)](https://alexandro.net/docs/angular/multiselect/angular-12/)
10
- [![TypeScript](https://img.shields.io/badge/TypeScript-4.3-blue?style=flat-square&logo=typescript)](https://www.typescriptlang.org)
9
+ [![Angular 14](https://img.shields.io/badge/Angular-14.x-red?style=flat-square&logo=angular)](https://alexandro.net/docs/angular/multiselect/angular-14/)
10
+ [![TypeScript](https://img.shields.io/badge/TypeScript-4.8-blue?style=flat-square&logo=typescript)](https://www.typescriptlang.org)
11
11
  [![GitHub stars](https://img.shields.io/github/stars/alexandroit/angular-multiselect-dropdown.svg?style=flat-square)](https://github.com/alexandroit/angular-multiselect-dropdown/stargazers)
12
12
 
13
- **[Documentation & Live Demos](https://alexandro.net/docs/angular/multiselect/)** | **[Angular 12 Demo](https://alexandro.net/docs/angular/multiselect/angular-12/)** | **[npm](https://www.npmjs.com/package/@stackline/angular-multiselect-dropdown)** | **[Issues](https://github.com/alexandroit/angular-multiselect-dropdown/issues)** | **[Repository](https://github.com/alexandroit/angular-multiselect-dropdown)**
13
+ **[Documentation & Live Demos](https://alexandro.net/docs/angular/multiselect/)** | **[Angular 14 Demo](https://alexandro.net/docs/angular/multiselect/angular-14/)** | **[npm](https://www.npmjs.com/package/@stackline/angular-multiselect-dropdown)** | **[Issues](https://github.com/alexandroit/angular-multiselect-dropdown/issues)** | **[Repository](https://github.com/alexandroit/angular-multiselect-dropdown)**
14
14
 
15
- **Latest tested npm release:** `12.0.0` for Angular `12.x`
15
+ **Latest tested npm release:** `14.0.0` for Angular `14.x`
16
16
 
17
17
  ---
18
18
 
@@ -24,15 +24,15 @@
24
24
 
25
25
  The original `angular2-multiselect-dropdown` package became difficult to keep current across multiple Angular generations. This maintained package keeps the classic API and template structure intact, introduces the new primary selector `<angular-multiselect>`, preserves the legacy alias `<angular2-multiselect>`, and publishes the project line by line so older applications can keep a predictable upgrade path.
26
26
 
27
- The repository contains the full documentation matrix from Angular 2 through Angular 21. The current public npm release is `12.0.0` for Angular 12.x applications.
27
+ The repository contains the full documentation matrix from Angular 2 through Angular 21. The current public npm release is `14.0.0` for Angular 14.x applications.
28
28
 
29
- The Angular 12 package is compatible with Angular 12.x and was tested in a real Angular 12.2.17 application before npm publication.
29
+ The Angular 14 package is compatible with Angular 14.x and was tested in a real Angular 14.3.0 application before npm publication.
30
30
 
31
31
  ## Features
32
32
 
33
33
  | Feature | Supported |
34
34
  | :--- | :---: |
35
- | Angular 12 tested published release line | ✅ |
35
+ | Angular 14 tested published release line | ✅ |
36
36
  | Multi-select and single-select modes | ✅ |
37
37
  | Search and filter | ✅ |
38
38
  | Group by field | ✅ |
@@ -54,7 +54,7 @@ The Angular 12 package is compatible with Angular 12.x and was tested in a real
54
54
  4. [Setup](#setup)
55
55
  5. [Custom CSS and SCSS Themes](#custom-css-and-scss-themes)
56
56
  6. [Basic Usage](#basic-usage)
57
- 7. [Official Angular 12 Test Matrix](#official-angular-12-test-matrix)
57
+ 7. [Official Angular 14 Test Matrix](#official-angular-14-test-matrix)
58
58
  8. [Custom Templates](#custom-templates)
59
59
  9. [Forms Integration](#forms-integration)
60
60
  10. [Lazy Loading and Remote Data](#lazy-loading-and-remote-data)
@@ -98,10 +98,10 @@ Each package family only installs on its matching Angular family. Framework majo
98
98
  ## Installation
99
99
 
100
100
  ```bash
101
- npm install @stackline/angular-multiselect-dropdown@12.0.0 --save-exact
101
+ npm install @stackline/angular-multiselect-dropdown@14.0.0 --save-exact
102
102
  ```
103
103
 
104
- Install `12.0.0` for Angular 12.x applications. This line keeps the tested Angular 12 behavior, makes `<angular-multiselect>` the documented standard selector, and keeps `<angular2-multiselect>` only as a legacy compatibility alias.
104
+ Install `14.0.0` for Angular 14.x applications. This line keeps the tested Angular 14 behavior, makes `<angular-multiselect>` the documented standard selector, and keeps `<angular2-multiselect>` only as a legacy compatibility alias.
105
105
 
106
106
  ## Setup
107
107
 
@@ -195,9 +195,9 @@ dropdownSettings = {
195
195
  </angular-multiselect>
196
196
  ```
197
197
 
198
- ## Official Angular 12 Test Matrix
198
+ ## Official Angular 14 Test Matrix
199
199
 
200
- The published Angular 12 release was tested in a real Angular `12.2.17` application with `@stackline/angular-multiselect-dropdown@12.0.0`. The docs now use the same examples from that test app.
200
+ The published Angular 14 release was tested in a real Angular `14.3.0` application with `@stackline/angular-multiselect-dropdown@14.0.0`. The docs now use the same examples from that test app.
201
201
 
202
202
  Switch between skins through the settings object:
203
203
 
@@ -0,0 +1,78 @@
1
+ import { Directive, Output, EventEmitter, HostListener, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ClickOutsideDirective {
4
+ constructor(_elementRef) {
5
+ this._elementRef = _elementRef;
6
+ this.clickOutside = new EventEmitter();
7
+ }
8
+ onClick(event, targetElement) {
9
+ if (!targetElement) {
10
+ return;
11
+ }
12
+ const clickedInside = this._elementRef.nativeElement.contains(targetElement);
13
+ if (!clickedInside) {
14
+ this.clickOutside.emit(event);
15
+ }
16
+ }
17
+ }
18
+ ClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
19
+ ClickOutsideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: ClickOutsideDirective, selector: "[clickOutside]", outputs: { clickOutside: "clickOutside" }, host: { listeners: { "document:click": "onClick($event,$event.target)", "document:touchstart": "onClick($event,$event.target)" } }, ngImport: i0 });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ClickOutsideDirective, decorators: [{
21
+ type: Directive,
22
+ args: [{
23
+ selector: '[clickOutside]'
24
+ }]
25
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { clickOutside: [{
26
+ type: Output
27
+ }], onClick: [{
28
+ type: HostListener,
29
+ args: ['document:click', ['$event', '$event.target']]
30
+ }, {
31
+ type: HostListener,
32
+ args: ['document:touchstart', ['$event', '$event.target']]
33
+ }] } });
34
+ export class ScrollDirective {
35
+ constructor(_elementRef) {
36
+ this._elementRef = _elementRef;
37
+ this.scroll = new EventEmitter();
38
+ }
39
+ onClick(event, targetElement) {
40
+ this.scroll.emit(event);
41
+ }
42
+ }
43
+ ScrollDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScrollDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
44
+ ScrollDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: ScrollDirective, selector: "[scroll]", outputs: { scroll: "scroll" }, host: { listeners: { "scroll": "onClick($event)" } }, ngImport: i0 });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScrollDirective, decorators: [{
46
+ type: Directive,
47
+ args: [{
48
+ selector: '[scroll]'
49
+ }]
50
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { scroll: [{
51
+ type: Output
52
+ }], onClick: [{
53
+ type: HostListener,
54
+ args: ['scroll', ['$event']]
55
+ }] } });
56
+ export class styleDirective {
57
+ constructor(el) {
58
+ this.el = el;
59
+ }
60
+ ngOnInit() {
61
+ this.el.nativeElement.style.top = this.styleVal;
62
+ }
63
+ ngOnChanges() {
64
+ this.el.nativeElement.style.top = this.styleVal;
65
+ }
66
+ }
67
+ styleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: styleDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
68
+ styleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: styleDirective, selector: "[styleProp]", inputs: { styleVal: ["styleProp", "styleVal"] }, usesOnChanges: true, ngImport: i0 });
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: styleDirective, decorators: [{
70
+ type: Directive,
71
+ args: [{
72
+ selector: '[styleProp]'
73
+ }]
74
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { styleVal: [{
75
+ type: Input,
76
+ args: ['styleProp']
77
+ }] } });
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2tPdXRzaWRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jbGlja091dHNpZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBSy9GLE1BQU0sT0FBTyxxQkFBcUI7SUFDOUIsWUFBb0IsV0FBdUI7UUFBdkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFJcEMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO0lBSHJELENBQUM7SUFPTSxPQUFPLENBQUMsS0FBaUIsRUFBRSxhQUEwQjtRQUN4RCxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2hCLE9BQU87U0FDVjtRQUVELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2pDO0lBQ0wsQ0FBQzs7a0hBbEJRLHFCQUFxQjtzR0FBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBSGpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtpQkFDN0I7aUdBTVUsWUFBWTtzQkFEbEIsTUFBTTtnQkFLQSxPQUFPO3NCQUZiLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDOztzQkFDMUQsWUFBWTt1QkFBQyxxQkFBcUIsRUFBRSxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUM7O0FBZ0JwRSxNQUFNLE9BQU8sZUFBZTtJQUN4QixZQUFvQixXQUF1QjtRQUF2QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUlwQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztJQUgvQyxDQUFDO0lBTU0sT0FBTyxDQUFDLEtBQWlCLEVBQUUsYUFBMEI7UUFDeEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7NEdBVlEsZUFBZTtnR0FBZixlQUFlOzJGQUFmLGVBQWU7a0JBSDNCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFVBQVU7aUJBQ3ZCO2lHQU1VLE1BQU07c0JBRFosTUFBTTtnQkFJQSxPQUFPO3NCQURiLFlBQVk7dUJBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDOztBQVF0QyxNQUFNLE9BQU8sY0FBYztJQUV6QixZQUFvQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtJQUVqQyxDQUFDO0lBSUQsUUFBUTtRQUVMLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNuRCxDQUFDO0lBQ0EsV0FBVztRQUNSLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNyRCxDQUFDOzsyR0FkVSxjQUFjOytGQUFkLGNBQWM7MkZBQWQsY0FBYztrQkFIMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtpQkFDeEI7aUdBT3FCLFFBQVE7c0JBQTNCLEtBQUs7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2NsaWNrT3V0c2lkZV0nXG59KVxuZXhwb3J0IGNsYXNzIENsaWNrT3V0c2lkZURpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgIH1cblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBjbGlja091dHNpZGUgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50JywgJyRldmVudC50YXJnZXQnXSlcbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDp0b3VjaHN0YXJ0JywgWyckZXZlbnQnLCAnJGV2ZW50LnRhcmdldCddKVxuICAgIHB1YmxpYyBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCB0YXJnZXRFbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRhcmdldEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNsaWNrZWRJbnNpZGUgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0RWxlbWVudCk7XG4gICAgICAgIGlmICghY2xpY2tlZEluc2lkZSkge1xuICAgICAgICAgICAgdGhpcy5jbGlja091dHNpZGUuZW1pdChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3Njcm9sbF0nXG59KVxuZXhwb3J0IGNsYXNzIFNjcm9sbERpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgIH1cblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBzY3JvbGwgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgICBASG9zdExpc3RlbmVyKCdzY3JvbGwnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCB0YXJnZXRFbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNjcm9sbC5lbWl0KGV2ZW50KTtcbiAgICB9XG59XG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc3R5bGVQcm9wXSdcbn0pXG5leHBvcnQgY2xhc3Mgc3R5bGVEaXJlY3RpdmUge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHtcblxuICAgfVxuXG4gIEBJbnB1dCgnc3R5bGVQcm9wJykgc3R5bGVWYWw6IG51bWJlcjtcblxuICAgbmdPbkluaXQoKSB7XG5cbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS50b3AgPSB0aGlzLnN0eWxlVmFsO1xuICAgfVxuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS50b3AgPSB0aGlzLnN0eWxlVmFsO1xuICB9XG59Il19
@@ -0,0 +1,33 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ListFilterPipe {
4
+ transform(items, filter) {
5
+ if (!items || !filter) {
6
+ return items;
7
+ }
8
+ return items.filter((item) => this.applyFilter(item, filter));
9
+ }
10
+ applyFilter(item, filter) {
11
+ let found = false;
12
+ for (var prop in item) {
13
+ if (filter) {
14
+ if (item[prop].toString().toLowerCase().indexOf(filter.toLowerCase()) >= 0) {
15
+ found = true;
16
+ }
17
+ }
18
+ else
19
+ found = true;
20
+ }
21
+ return found;
22
+ }
23
+ }
24
+ ListFilterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ListFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
25
+ ListFilterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ListFilterPipe, name: "listFilter", pure: false });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ListFilterPipe, decorators: [{
27
+ type: Pipe,
28
+ args: [{
29
+ name: 'listFilter',
30
+ pure: false
31
+ }]
32
+ }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1maWx0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2xpc3QtZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQVFwRCxNQUFNLE9BQU8sY0FBYztJQUN2QixTQUFTLENBQUMsS0FBaUIsRUFBRSxNQUFXO1FBQ3BDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDbkIsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUNELFdBQVcsQ0FBQyxJQUFTLEVBQUUsTUFBVztRQUM5QixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbEIsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUU7WUFDbkIsSUFBSSxNQUFNLEVBQUU7Z0JBQ1IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDeEUsS0FBSyxHQUFHLElBQUksQ0FBQztpQkFDaEI7YUFDSjs7Z0JBRUcsS0FBSyxHQUFHLElBQUksQ0FBQztTQUNwQjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7OzJHQW5CUSxjQUFjO3lHQUFkLGNBQWM7MkZBQWQsY0FBYztrQkFKMUIsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsWUFBWTtvQkFDbEIsSUFBSSxFQUFFLEtBQUs7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExpc3RJdGVtIH0gZnJvbSAnLi9tdWx0aXNlbGVjdC5tb2RlbCc7XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnbGlzdEZpbHRlcicsXG4gICAgcHVyZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTGlzdEZpbHRlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0oaXRlbXM6IExpc3RJdGVtW10sIGZpbHRlcjogYW55KTogTGlzdEl0ZW1bXSB7XG4gICAgICAgIGlmICghaXRlbXMgfHwgIWZpbHRlcikge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpdGVtcy5maWx0ZXIoKGl0ZW06IGFueSkgPT4gdGhpcy5hcHBseUZpbHRlcihpdGVtLCBmaWx0ZXIpKTtcbiAgICB9XG4gICAgYXBwbHlGaWx0ZXIoaXRlbTogYW55LCBmaWx0ZXI6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICAgICAgZm9yICh2YXIgcHJvcCBpbiBpdGVtKSB7XG4gICAgICAgICAgICBpZiAoZmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW1bcHJvcF0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoZmlsdGVyLnRvTG93ZXJDYXNlKCkpID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZvdW5kO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,62 @@
1
+ import { Component, TemplateRef, ContentChild, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class Item {
4
+ constructor() {
5
+ }
6
+ }
7
+ Item.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: Item, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
+ Item.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: Item, selector: "c-item", queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: ``, isInline: true });
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: Item, decorators: [{
10
+ type: Component,
11
+ args: [{
12
+ selector: 'c-item',
13
+ template: ``
14
+ }]
15
+ }], ctorParameters: function () { return []; }, propDecorators: { template: [{
16
+ type: ContentChild,
17
+ args: [TemplateRef, { static: false }]
18
+ }] } });
19
+ export class Badge {
20
+ constructor() {
21
+ }
22
+ }
23
+ Badge.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: Badge, deps: [], target: i0.ɵɵFactoryTarget.Component });
24
+ Badge.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: Badge, selector: "c-badge", queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: ``, isInline: true });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: Badge, decorators: [{
26
+ type: Component,
27
+ args: [{
28
+ selector: 'c-badge',
29
+ template: ``
30
+ }]
31
+ }], ctorParameters: function () { return []; }, propDecorators: { template: [{
32
+ type: ContentChild,
33
+ args: [TemplateRef, { static: false }]
34
+ }] } });
35
+ export class TemplateRenderer {
36
+ constructor(viewContainer) {
37
+ this.viewContainer = viewContainer;
38
+ }
39
+ ngOnInit() {
40
+ this.view = this.viewContainer.createEmbeddedView(this.data.template, {
41
+ '\$implicit': this.data,
42
+ 'item': this.item
43
+ });
44
+ }
45
+ ngOnDestroy() {
46
+ this.view.destroy();
47
+ }
48
+ }
49
+ TemplateRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TemplateRenderer, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
50
+ TemplateRenderer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TemplateRenderer, selector: "c-templateRenderer", inputs: { data: "data", item: "item" }, ngImport: i0, template: ``, isInline: true });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TemplateRenderer, decorators: [{
52
+ type: Component,
53
+ args: [{
54
+ selector: 'c-templateRenderer',
55
+ template: ``
56
+ }]
57
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { data: [{
58
+ type: Input
59
+ }], item: [{
60
+ type: Input
61
+ }] } });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9tZW51LWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBK0IsV0FBVyxFQUFvQixZQUFZLEVBQW1FLEtBQUssRUFBd0UsTUFBTSxlQUFlLENBQUM7O0FBU2xRLE1BQU0sT0FBTyxJQUFJO0lBR2I7SUFDQSxDQUFDOztpR0FKUSxJQUFJO3FGQUFKLElBQUksb0ZBRUMsV0FBVyxnREFMakIsRUFBRTsyRkFHRCxJQUFJO2tCQUxoQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxRQUFRO29CQUNsQixRQUFRLEVBQUUsRUFBRTtpQkFDYjswRUFJaUQsUUFBUTtzQkFBckQsWUFBWTt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOztBQVdoRCxNQUFNLE9BQU8sS0FBSztJQUdkO0lBQ0EsQ0FBQzs7a0dBSlEsS0FBSztzRkFBTCxLQUFLLHFGQUVBLFdBQVcsZ0RBTGpCLEVBQUU7MkZBR0QsS0FBSztrQkFMakIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsU0FBUztvQkFDbkIsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7MEVBSWlELFFBQVE7c0JBQXJELFlBQVk7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs7QUFXaEQsTUFBTSxPQUFPLGdCQUFnQjtJQU16QixZQUFtQixhQUErQjtRQUEvQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7SUFDbEQsQ0FBQztJQUNELFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEUsWUFBWSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ3ZCLE1BQU0sRUFBQyxJQUFJLENBQUMsSUFBSTtTQUNuQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDckIsQ0FBQzs7NkdBakJXLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLGtHQUhqQixFQUFFOzJGQUdELGdCQUFnQjtrQkFMNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUsRUFBRTtpQkFDYjt1R0FJWSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgTmdNb2R1bGUsIFRlbXBsYXRlUmVmLCBBZnRlckNvbnRlbnRJbml0LCBDb250ZW50Q2hpbGQsIEVtYmVkZGVkVmlld1JlZiwgT25DaGFuZ2VzLCBWaWV3Q29udGFpbmVyUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYWZlUmVzb3VyY2VVcmwsIERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gICAgICAgZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYy1pdGVtJyxcbiAgdGVtcGxhdGU6IGBgXG59KVxuXG5leHBvcnQgY2xhc3MgSXRlbSB7IFxuXG4gICAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZiwgeyBzdGF0aWM6IGZhbHNlIH0pIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+XG4gICAgY29uc3RydWN0b3IoKSB7ICAgXG4gICAgfVxuXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2MtYmFkZ2UnLFxuICB0ZW1wbGF0ZTogYGBcbn0pXG5cbmV4cG9ydCBjbGFzcyBCYWRnZSB7IFxuXG4gICAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZiwgeyBzdGF0aWM6IGZhbHNlIH0pIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+XG4gICAgY29uc3RydWN0b3IoKSB7ICAgXG4gICAgfVxuXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2MtdGVtcGxhdGVSZW5kZXJlcicsXG4gIHRlbXBsYXRlOiBgYFxufSlcblxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlUmVuZGVyZXIgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7IFxuXG4gICAgQElucHV0KCkgZGF0YTogYW55XG4gICAgQElucHV0KCkgaXRlbTogYW55XG4gICAgdmlldzogRW1iZWRkZWRWaWV3UmVmPGFueT47XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikgeyAgIFxuICAgIH1cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy52aWV3ID0gdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmRhdGEudGVtcGxhdGUsIHtcbiAgICAgICAgICAgICdcXCRpbXBsaWNpdCc6IHRoaXMuZGF0YSxcbiAgICAgICAgICAgICdpdGVtJzp0aGlzLml0ZW1cbiAgICAgICAgfSk7XG4gICAgfVxuXHRcbiAgICBuZ09uRGVzdHJveSgpIHtcblx0XHR0aGlzLnZpZXcuZGVzdHJveSgpO1xuXHR9XG5cbn1cbiJdfQ==