@ctrl/ngx-emoji-mart 8.2.0 → 9.1.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 (54) hide show
  1. package/README.md +42 -17
  2. package/anchors.component.d.ts +1 -1
  3. package/category.component.d.ts +1 -1
  4. package/esm2022/anchors.component.mjs +100 -0
  5. package/esm2022/category.component.mjs +409 -0
  6. package/esm2022/emoji-frequently.service.mjs +90 -0
  7. package/esm2022/emoji-search.service.mjs +178 -0
  8. package/esm2022/ngx-emoji/emoji.component.mjs +299 -0
  9. package/esm2022/ngx-emoji/emoji.module.mjs +17 -0
  10. package/esm2022/ngx-emoji/emoji.service.mjs +145 -0
  11. package/esm2022/picker.component.mjs +522 -0
  12. package/esm2022/picker.module.mjs +40 -0
  13. package/esm2022/preview.component.mjs +206 -0
  14. package/esm2022/search.component.mjs +175 -0
  15. package/esm2022/skins.component.mjs +107 -0
  16. package/{fesm2020 → fesm2022}/ctrl-ngx-emoji-mart-ngx-emoji.mjs +64 -56
  17. package/{fesm2015 → fesm2022}/ctrl-ngx-emoji-mart-ngx-emoji.mjs.map +1 -1
  18. package/{fesm2020 → fesm2022}/ctrl-ngx-emoji-mart.mjs +320 -254
  19. package/fesm2022/ctrl-ngx-emoji-mart.mjs.map +1 -0
  20. package/ngx-emoji/emoji.component.d.ts +1 -1
  21. package/ngx-emoji/emoji.module.d.ts +1 -2
  22. package/package.json +8 -16
  23. package/picker.component.d.ts +2 -2
  24. package/picker.module.d.ts +1 -4
  25. package/preview.component.d.ts +2 -2
  26. package/search.component.d.ts +1 -1
  27. package/skins.component.d.ts +2 -2
  28. package/esm2020/anchors.component.mjs +0 -83
  29. package/esm2020/category.component.mjs +0 -386
  30. package/esm2020/emoji-frequently.service.mjs +0 -88
  31. package/esm2020/emoji-search.service.mjs +0 -177
  32. package/esm2020/ngx-emoji/emoji.component.mjs +0 -288
  33. package/esm2020/ngx-emoji/emoji.module.mjs +0 -18
  34. package/esm2020/ngx-emoji/emoji.service.mjs +0 -144
  35. package/esm2020/picker.component.mjs +0 -508
  36. package/esm2020/picker.module.mjs +0 -49
  37. package/esm2020/preview.component.mjs +0 -187
  38. package/esm2020/search.component.mjs +0 -165
  39. package/esm2020/skins.component.mjs +0 -108
  40. package/fesm2015/ctrl-ngx-emoji-mart-ngx-emoji.mjs +0 -34330
  41. package/fesm2015/ctrl-ngx-emoji-mart.mjs +0 -1763
  42. package/fesm2015/ctrl-ngx-emoji-mart.mjs.map +0 -1
  43. package/fesm2020/ctrl-ngx-emoji-mart-ngx-emoji.mjs.map +0 -1
  44. package/fesm2020/ctrl-ngx-emoji-mart.mjs.map +0 -1
  45. /package/{esm2020 → esm2022}/ctrl-ngx-emoji-mart.mjs +0 -0
  46. /package/{esm2020 → esm2022}/ngx-emoji/ctrl-ngx-emoji-mart-ngx-emoji.mjs +0 -0
  47. /package/{esm2020 → esm2022}/ngx-emoji/data/categories.mjs +0 -0
  48. /package/{esm2020 → esm2022}/ngx-emoji/data/data.interfaces.mjs +0 -0
  49. /package/{esm2020 → esm2022}/ngx-emoji/data/emojis.mjs +0 -0
  50. /package/{esm2020 → esm2022}/ngx-emoji/data/skins.mjs +0 -0
  51. /package/{esm2020 → esm2022}/ngx-emoji/index.mjs +0 -0
  52. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
  53. /package/{esm2020 → esm2022}/svgs/index.mjs +0 -0
  54. /package/{esm2020 → esm2022}/utils/index.mjs +0 -0
@@ -1,19 +1,20 @@
1
+ import * as i2 from '@angular/common';
2
+ import { CommonModule, isPlatformBrowser } from '@angular/common';
1
3
  import * as i0 from '@angular/core';
2
4
  import { EventEmitter, Component, ChangeDetectionStrategy, Input, Output, PLATFORM_ID, Injectable, Inject, ViewChild, ViewChildren, NgModule } from '@angular/core';
3
- import * as i2 from '@angular/common';
4
- import { isPlatformBrowser, CommonModule } from '@angular/common';
5
- import { Subject } from 'rxjs';
6
5
  import * as i1 from '@ctrl/ngx-emoji-mart/ngx-emoji';
7
- import { categories as categories$1, EmojiModule } from '@ctrl/ngx-emoji-mart/ngx-emoji';
6
+ import { EmojiComponent, categories as categories$1 } from '@ctrl/ngx-emoji-mart/ngx-emoji';
7
+ import { Subject } from 'rxjs';
8
8
  import * as i2$1 from '@angular/forms';
9
9
  import { FormsModule } from '@angular/forms';
10
10
 
11
11
  class AnchorsComponent {
12
- constructor() {
13
- this.categories = [];
14
- this.icons = {};
15
- this.anchorClick = new EventEmitter();
16
- }
12
+ categories = [];
13
+ color;
14
+ selected;
15
+ i18n;
16
+ icons = {};
17
+ anchorClick = new EventEmitter();
17
18
  trackByFn(idx, cat) {
18
19
  return cat.id;
19
20
  }
@@ -23,56 +24,70 @@ class AnchorsComponent {
23
24
  index,
24
25
  });
25
26
  }
26
- }
27
- AnchorsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: AnchorsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
28
- AnchorsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: AnchorsComponent, selector: "emoji-mart-anchors", inputs: { categories: "categories", color: "color", selected: "selected", i18n: "i18n", icons: "icons" }, outputs: { anchorClick: "anchorClick" }, ngImport: i0, template: `
29
- <div class="emoji-mart-anchors">
30
- <ng-template ngFor let-category [ngForOf]="categories" let-idx="index" [ngForTrackBy]="trackByFn">
31
- <span
32
- *ngIf="category.anchor !== false"
33
- [attr.title]="i18n.categories[category.id]"
34
- (click)="this.handleClick($event, idx)"
35
- class="emoji-mart-anchor"
36
- [class.emoji-mart-anchor-selected]="category.name === selected"
37
- [style.color]="category.name === selected ? color : null"
27
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AnchorsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
28
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: AnchorsComponent, isStandalone: true, selector: "emoji-mart-anchors", inputs: { categories: "categories", color: "color", selected: "selected", i18n: "i18n", icons: "icons" }, outputs: { anchorClick: "anchorClick" }, ngImport: i0, template: `
29
+ <div class="emoji-mart-anchors">
30
+ <ng-template
31
+ ngFor
32
+ let-category
33
+ [ngForOf]="categories"
34
+ let-idx="index"
35
+ [ngForTrackBy]="trackByFn"
38
36
  >
39
- <div>
40
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
41
- <path [attr.d]="icons[category.id]" />
42
- </svg>
43
- </div>
44
- <span class="emoji-mart-anchor-bar" [style.background-color]="color"></span>
45
- </span>
46
- </ng-template>
47
- </div>
48
- `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: AnchorsComponent, decorators: [{
37
+ <span
38
+ *ngIf="category.anchor !== false"
39
+ [attr.title]="i18n.categories[category.id]"
40
+ (click)="this.handleClick($event, idx)"
41
+ class="emoji-mart-anchor"
42
+ [class.emoji-mart-anchor-selected]="category.name === selected"
43
+ [style.color]="category.name === selected ? color : null"
44
+ >
45
+ <div>
46
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
47
+ <path [attr.d]="icons[category.id]" />
48
+ </svg>
49
+ </div>
50
+ <span class="emoji-mart-anchor-bar" [style.background-color]="color"></span>
51
+ </span>
52
+ </ng-template>
53
+ </div>
54
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
55
+ }
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AnchorsComponent, decorators: [{
50
57
  type: Component,
51
58
  args: [{
52
59
  selector: 'emoji-mart-anchors',
53
60
  template: `
54
- <div class="emoji-mart-anchors">
55
- <ng-template ngFor let-category [ngForOf]="categories" let-idx="index" [ngForTrackBy]="trackByFn">
56
- <span
57
- *ngIf="category.anchor !== false"
58
- [attr.title]="i18n.categories[category.id]"
59
- (click)="this.handleClick($event, idx)"
60
- class="emoji-mart-anchor"
61
- [class.emoji-mart-anchor-selected]="category.name === selected"
62
- [style.color]="category.name === selected ? color : null"
61
+ <div class="emoji-mart-anchors">
62
+ <ng-template
63
+ ngFor
64
+ let-category
65
+ [ngForOf]="categories"
66
+ let-idx="index"
67
+ [ngForTrackBy]="trackByFn"
63
68
  >
64
- <div>
65
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
66
- <path [attr.d]="icons[category.id]" />
67
- </svg>
68
- </div>
69
- <span class="emoji-mart-anchor-bar" [style.background-color]="color"></span>
70
- </span>
71
- </ng-template>
72
- </div>
69
+ <span
70
+ *ngIf="category.anchor !== false"
71
+ [attr.title]="i18n.categories[category.id]"
72
+ (click)="this.handleClick($event, idx)"
73
+ class="emoji-mart-anchor"
74
+ [class.emoji-mart-anchor-selected]="category.name === selected"
75
+ [style.color]="category.name === selected ? color : null"
76
+ >
77
+ <div>
78
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
79
+ <path [attr.d]="icons[category.id]" />
80
+ </svg>
81
+ </div>
82
+ <span class="emoji-mart-anchor-bar" [style.background-color]="color"></span>
83
+ </span>
84
+ </ng-template>
85
+ </div>
73
86
  `,
74
87
  changeDetection: ChangeDetectionStrategy.OnPush,
75
88
  preserveWhitespaces: false,
89
+ standalone: true,
90
+ imports: [CommonModule],
76
91
  }]
77
92
  }], propDecorators: { categories: [{
78
93
  type: Input
@@ -89,30 +104,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
89
104
  }] } });
90
105
 
91
106
  class EmojiFrequentlyService {
107
+ platformId;
108
+ NAMESPACE = 'emoji-mart';
109
+ frequently = null;
110
+ defaults = {};
111
+ initialized = false;
112
+ DEFAULTS = [
113
+ '+1',
114
+ 'grinning',
115
+ 'kissing_heart',
116
+ 'heart_eyes',
117
+ 'laughing',
118
+ 'stuck_out_tongue_winking_eye',
119
+ 'sweat_smile',
120
+ 'joy',
121
+ 'scream',
122
+ 'disappointed',
123
+ 'unamused',
124
+ 'weary',
125
+ 'sob',
126
+ 'sunglasses',
127
+ 'heart',
128
+ 'poop',
129
+ ];
92
130
  constructor(platformId) {
93
131
  this.platformId = platformId;
94
- this.NAMESPACE = 'emoji-mart';
95
- this.frequently = null;
96
- this.defaults = {};
97
- this.initialized = false;
98
- this.DEFAULTS = [
99
- '+1',
100
- 'grinning',
101
- 'kissing_heart',
102
- 'heart_eyes',
103
- 'laughing',
104
- 'stuck_out_tongue_winking_eye',
105
- 'sweat_smile',
106
- 'joy',
107
- 'scream',
108
- 'disappointed',
109
- 'unamused',
110
- 'weary',
111
- 'sob',
112
- 'sunglasses',
113
- 'heart',
114
- 'poop',
115
- ];
116
132
  }
117
133
  init() {
118
134
  this.frequently = JSON.parse((isPlatformBrowser(this.platformId) &&
@@ -162,10 +178,10 @@ class EmojiFrequentlyService {
162
178
  }
163
179
  return sliced;
164
180
  }
181
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: EmojiFrequentlyService, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
182
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: EmojiFrequentlyService, providedIn: 'root' });
165
183
  }
166
- EmojiFrequentlyService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: EmojiFrequentlyService, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
167
- EmojiFrequentlyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: EmojiFrequentlyService, providedIn: 'root' });
168
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: EmojiFrequentlyService, decorators: [{
184
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: EmojiFrequentlyService, decorators: [{
169
185
  type: Injectable,
170
186
  args: [{ providedIn: 'root' }]
171
187
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -174,37 +190,55 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
174
190
  }] }]; } });
175
191
 
176
192
  class CategoryComponent {
193
+ ref;
194
+ emojiService;
195
+ frequently;
196
+ emojis = null;
197
+ hasStickyPosition = true;
198
+ name = '';
199
+ perLine = 9;
200
+ totalFrequentLines = 4;
201
+ recent = [];
202
+ custom = [];
203
+ i18n;
204
+ id;
205
+ hideObsolete = true;
206
+ notFoundEmoji;
207
+ virtualize = false;
208
+ virtualizeOffset = 0;
209
+ emojiIsNative;
210
+ emojiSkin;
211
+ emojiSize;
212
+ emojiSet;
213
+ emojiSheetSize;
214
+ emojiForceSize;
215
+ emojiTooltip;
216
+ emojiBackgroundImageFn;
217
+ emojiImageUrlFn;
218
+ emojiUseButton;
219
+ emojiClick = new EventEmitter();
220
+ /**
221
+ * Note: the suffix is added explicitly so we know the event is dispatched outside of the Angular zone.
222
+ */
223
+ emojiOverOutsideAngular = new EventEmitter();
224
+ emojiLeaveOutsideAngular = new EventEmitter();
225
+ container;
226
+ label;
227
+ containerStyles = {};
228
+ emojisToDisplay = [];
229
+ filteredEmojisSubject = new Subject();
230
+ filteredEmojis$ = this.filteredEmojisSubject.asObservable();
231
+ labelStyles = {};
232
+ labelSpanStyles = {};
233
+ margin = 0;
234
+ minMargin = 0;
235
+ maxMargin = 0;
236
+ top = 0;
237
+ rows = 0;
177
238
  constructor(ref, emojiService, frequently) {
178
239
  this.ref = ref;
179
240
  this.emojiService = emojiService;
180
241
  this.frequently = frequently;
181
- this.emojis = null;
182
- this.hasStickyPosition = true;
183
- this.name = '';
184
- this.perLine = 9;
185
- this.totalFrequentLines = 4;
186
- this.recent = [];
187
- this.custom = [];
188
- this.hideObsolete = true;
189
- this.virtualize = false;
190
- this.virtualizeOffset = 0;
191
- this.emojiClick = new EventEmitter();
192
- /**
193
- * Note: the suffix is added explicitly so we know the event is dispatched outside of the Angular zone.
194
- */
195
- this.emojiOverOutsideAngular = new EventEmitter();
196
- this.emojiLeaveOutsideAngular = new EventEmitter();
197
- this.containerStyles = {};
198
- this.emojisToDisplay = [];
199
- this.filteredEmojisSubject = new Subject();
200
- this.filteredEmojis$ = this.filteredEmojisSubject.asObservable();
201
- this.labelStyles = {};
202
- this.labelSpanStyles = {};
203
- this.margin = 0;
204
- this.minMargin = 0;
205
- this.maxMargin = 0;
206
- this.top = 0;
207
- this.rows = 0;
208
242
  }
209
243
  ngOnInit() {
210
244
  this.updateRecentEmojis();
@@ -322,9 +356,8 @@ class CategoryComponent {
322
356
  }
323
357
  return newEmojis;
324
358
  }
325
- }
326
- CategoryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: CategoryComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.EmojiService }, { token: EmojiFrequentlyService }], target: i0.ɵɵFactoryTarget.Component });
327
- CategoryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: CategoryComponent, selector: "emoji-category", inputs: { emojis: "emojis", hasStickyPosition: "hasStickyPosition", name: "name", perLine: "perLine", totalFrequentLines: "totalFrequentLines", recent: "recent", custom: "custom", i18n: "i18n", id: "id", hideObsolete: "hideObsolete", notFoundEmoji: "notFoundEmoji", virtualize: "virtualize", virtualizeOffset: "virtualizeOffset", emojiIsNative: "emojiIsNative", emojiSkin: "emojiSkin", emojiSize: "emojiSize", emojiSet: "emojiSet", emojiSheetSize: "emojiSheetSize", emojiForceSize: "emojiForceSize", emojiTooltip: "emojiTooltip", emojiBackgroundImageFn: "emojiBackgroundImageFn", emojiImageUrlFn: "emojiImageUrlFn", emojiUseButton: "emojiUseButton" }, outputs: { emojiClick: "emojiClick", emojiOverOutsideAngular: "emojiOverOutsideAngular", emojiLeaveOutsideAngular: "emojiLeaveOutsideAngular" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, static: true }, { propertyName: "label", first: true, predicate: ["label"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `
359
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CategoryComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.EmojiService }, { token: EmojiFrequentlyService }], target: i0.ɵɵFactoryTarget.Component });
360
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: CategoryComponent, isStandalone: true, selector: "emoji-category", inputs: { emojis: "emojis", hasStickyPosition: "hasStickyPosition", name: "name", perLine: "perLine", totalFrequentLines: "totalFrequentLines", recent: "recent", custom: "custom", i18n: "i18n", id: "id", hideObsolete: "hideObsolete", notFoundEmoji: "notFoundEmoji", virtualize: "virtualize", virtualizeOffset: "virtualizeOffset", emojiIsNative: "emojiIsNative", emojiSkin: "emojiSkin", emojiSize: "emojiSize", emojiSet: "emojiSet", emojiSheetSize: "emojiSheetSize", emojiForceSize: "emojiForceSize", emojiTooltip: "emojiTooltip", emojiBackgroundImageFn: "emojiBackgroundImageFn", emojiImageUrlFn: "emojiImageUrlFn", emojiUseButton: "emojiUseButton" }, outputs: { emojiClick: "emojiClick", emojiOverOutsideAngular: "emojiOverOutsideAngular", emojiLeaveOutsideAngular: "emojiLeaveOutsideAngular" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, static: true }, { propertyName: "label", first: true, predicate: ["label"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `
328
361
  <section
329
362
  #container
330
363
  class="emoji-mart-category"
@@ -404,8 +437,9 @@ CategoryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
404
437
  (emojiClick)="emojiClick.emit($event)"
405
438
  ></ngx-emoji>
406
439
  </ng-template>
407
- `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i1.EmojiComponent, selector: "ngx-emoji", inputs: ["skin", "set", "sheetSize", "isNative", "forceSize", "tooltip", "size", "emoji", "fallback", "hideObsolete", "sheetRows", "sheetColumns", "useButton", "backgroundImageFn", "imageUrlFn"], outputs: ["emojiClick", "emojiOver", "emojiOverOutsideAngular", "emojiLeave", "emojiLeaveOutsideAngular"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
408
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: CategoryComponent, decorators: [{
440
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "component", type: EmojiComponent, selector: "ngx-emoji", inputs: ["skin", "set", "sheetSize", "isNative", "forceSize", "tooltip", "size", "emoji", "fallback", "hideObsolete", "sheetRows", "sheetColumns", "useButton", "backgroundImageFn", "imageUrlFn"], outputs: ["emojiClick", "emojiOver", "emojiOverOutsideAngular", "emojiLeave", "emojiLeaveOutsideAngular"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
441
+ }
442
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CategoryComponent, decorators: [{
409
443
  type: Component,
410
444
  args: [{
411
445
  selector: 'emoji-category',
@@ -492,6 +526,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
492
526
  `,
493
527
  changeDetection: ChangeDetectionStrategy.OnPush,
494
528
  preserveWhitespaces: false,
529
+ standalone: true,
530
+ imports: [CommonModule, EmojiComponent],
495
531
  }]
496
532
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.EmojiService }, { type: EmojiFrequentlyService }]; }, propDecorators: { emojis: [{
497
533
  type: Input
@@ -584,13 +620,14 @@ function measureScrollbar() {
584
620
  }
585
621
 
586
622
  class EmojiSearch {
623
+ emojiService;
624
+ originalPool = {};
625
+ index = {};
626
+ emojisList = {};
627
+ emoticonsList = {};
628
+ emojiSearch = {};
587
629
  constructor(emojiService) {
588
630
  this.emojiService = emojiService;
589
- this.originalPool = {};
590
- this.index = {};
591
- this.emojisList = {};
592
- this.emoticonsList = {};
593
- this.emojiSearch = {};
594
631
  for (const emojiData of this.emojiService.emojis) {
595
632
  const { shortNames, emoticons } = emojiData;
596
633
  const id = shortNames[0];
@@ -657,7 +694,6 @@ class EmojiSearch {
657
694
  let aPool = pool;
658
695
  let aIndex = this.index;
659
696
  let length = 0;
660
- // eslint-disable-next-line @typescript-eslint/prefer-for-of
661
697
  for (let charIndex = 0; charIndex < v.length; charIndex++) {
662
698
  const char = v[charIndex];
663
699
  length++;
@@ -747,20 +783,21 @@ class EmojiSearch {
747
783
  addToSearch(emoticons, false);
748
784
  return search.join(',');
749
785
  }
786
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: EmojiSearch, deps: [{ token: i1.EmojiService }], target: i0.ɵɵFactoryTarget.Injectable });
787
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: EmojiSearch, providedIn: 'root' });
750
788
  }
751
- EmojiSearch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: EmojiSearch, deps: [{ token: i1.EmojiService }], target: i0.ɵɵFactoryTarget.Injectable });
752
- EmojiSearch.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: EmojiSearch, providedIn: 'root' });
753
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: EmojiSearch, decorators: [{
789
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: EmojiSearch, decorators: [{
754
790
  type: Injectable,
755
791
  args: [{ providedIn: 'root' }]
756
792
  }], ctorParameters: function () { return [{ type: i1.EmojiService }]; } });
757
793
 
758
794
  class SkinComponent {
759
- constructor() {
760
- this.changeSkin = new EventEmitter();
761
- this.opened = false;
762
- this.skinTones = [1, 2, 3, 4, 5, 6];
763
- }
795
+ /** currently selected skin */
796
+ skin;
797
+ i18n;
798
+ changeSkin = new EventEmitter();
799
+ opened = false;
800
+ skinTones = [1, 2, 3, 4, 5, 6];
764
801
  toggleOpen() {
765
802
  this.opened = !this.opened;
766
803
  }
@@ -789,13 +826,9 @@ class SkinComponent {
789
826
  this.changeSkin.emit(skin);
790
827
  }
791
828
  }
792
- }
793
- SkinComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SkinComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
794
- SkinComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: SkinComponent, selector: "emoji-skins", inputs: { skin: "skin", i18n: "i18n" }, outputs: { changeSkin: "changeSkin" }, ngImport: i0, template: `
795
- <section
796
- class="emoji-mart-skin-swatches"
797
- [class.opened]="opened"
798
- >
829
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SkinComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
830
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SkinComponent, isStandalone: true, selector: "emoji-skins", inputs: { skin: "skin", i18n: "i18n" }, outputs: { changeSkin: "changeSkin" }, ngImport: i0, template: `
831
+ <section class="emoji-mart-skin-swatches" [class.opened]="opened">
799
832
  <span
800
833
  *ngFor="let skinTone of skinTones"
801
834
  class="emoji-mart-skin-swatch"
@@ -817,16 +850,14 @@ SkinComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
817
850
  ></span>
818
851
  </span>
819
852
  </section>
820
- `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
821
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SkinComponent, decorators: [{
853
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
854
+ }
855
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SkinComponent, decorators: [{
822
856
  type: Component,
823
857
  args: [{
824
858
  selector: 'emoji-skins',
825
859
  template: `
826
- <section
827
- class="emoji-mart-skin-swatches"
828
- [class.opened]="opened"
829
- >
860
+ <section class="emoji-mart-skin-swatches" [class.opened]="opened">
830
861
  <span
831
862
  *ngFor="let skinTone of skinTones"
832
863
  class="emoji-mart-skin-swatch"
@@ -851,6 +882,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
851
882
  `,
852
883
  changeDetection: ChangeDetectionStrategy.OnPush,
853
884
  preserveWhitespaces: false,
885
+ standalone: true,
886
+ imports: [CommonModule],
854
887
  }]
855
888
  }], propDecorators: { skin: [{
856
889
  type: Input
@@ -861,11 +894,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
861
894
  }] } });
862
895
 
863
896
  class PreviewComponent {
897
+ ref;
898
+ emojiService;
899
+ title;
900
+ emoji;
901
+ idleEmoji;
902
+ i18n;
903
+ emojiIsNative;
904
+ emojiSkin;
905
+ emojiSize;
906
+ emojiSet;
907
+ emojiSheetSize;
908
+ emojiBackgroundImageFn;
909
+ emojiImageUrlFn;
910
+ skinChange = new EventEmitter();
911
+ emojiData = {};
912
+ listedEmoticons;
864
913
  constructor(ref, emojiService) {
865
914
  this.ref = ref;
866
915
  this.emojiService = emojiService;
867
- this.skinChange = new EventEmitter();
868
- this.emojiData = {};
869
916
  }
870
917
  ngOnChanges() {
871
918
  if (!this.emoji) {
@@ -885,9 +932,8 @@ class PreviewComponent {
885
932
  this.listedEmoticons = listedEmoticons;
886
933
  this.ref?.detectChanges();
887
934
  }
888
- }
889
- PreviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: PreviewComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.EmojiService }], target: i0.ɵɵFactoryTarget.Component });
890
- PreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: PreviewComponent, selector: "emoji-preview", inputs: { title: "title", emoji: "emoji", idleEmoji: "idleEmoji", i18n: "i18n", emojiIsNative: "emojiIsNative", emojiSkin: "emojiSkin", emojiSize: "emojiSize", emojiSet: "emojiSet", emojiSheetSize: "emojiSheetSize", emojiBackgroundImageFn: "emojiBackgroundImageFn", emojiImageUrlFn: "emojiImageUrlFn" }, outputs: { skinChange: "skinChange" }, usesOnChanges: true, ngImport: i0, template: `
935
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: PreviewComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.EmojiService }], target: i0.ɵɵFactoryTarget.Component });
936
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: PreviewComponent, isStandalone: true, selector: "emoji-preview", inputs: { title: "title", emoji: "emoji", idleEmoji: "idleEmoji", i18n: "i18n", emojiIsNative: "emojiIsNative", emojiSkin: "emojiSkin", emojiSize: "emojiSize", emojiSet: "emojiSet", emojiSheetSize: "emojiSheetSize", emojiBackgroundImageFn: "emojiBackgroundImageFn", emojiImageUrlFn: "emojiImageUrlFn" }, outputs: { skinChange: "skinChange" }, usesOnChanges: true, ngImport: i0, template: `
891
937
  <div class="emoji-mart-preview" *ngIf="emoji && emojiData">
892
938
  <div class="emoji-mart-preview-emoji">
893
939
  <ngx-emoji
@@ -947,8 +993,9 @@ PreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versi
947
993
  ></emoji-skins>
948
994
  </div>
949
995
  </div>
950
- `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.EmojiComponent, selector: "ngx-emoji", inputs: ["skin", "set", "sheetSize", "isNative", "forceSize", "tooltip", "size", "emoji", "fallback", "hideObsolete", "sheetRows", "sheetColumns", "useButton", "backgroundImageFn", "imageUrlFn"], outputs: ["emojiClick", "emojiOver", "emojiOverOutsideAngular", "emojiLeave", "emojiLeaveOutsideAngular"] }, { kind: "component", type: SkinComponent, selector: "emoji-skins", inputs: ["skin", "i18n"], outputs: ["changeSkin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
951
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: PreviewComponent, decorators: [{
996
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EmojiComponent, selector: "ngx-emoji", inputs: ["skin", "set", "sheetSize", "isNative", "forceSize", "tooltip", "size", "emoji", "fallback", "hideObsolete", "sheetRows", "sheetColumns", "useButton", "backgroundImageFn", "imageUrlFn"], outputs: ["emojiClick", "emojiOver", "emojiOverOutsideAngular", "emojiLeave", "emojiLeaveOutsideAngular"] }, { kind: "component", type: SkinComponent, selector: "emoji-skins", inputs: ["skin", "i18n"], outputs: ["changeSkin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
997
+ }
998
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: PreviewComponent, decorators: [{
952
999
  type: Component,
953
1000
  args: [{
954
1001
  selector: 'emoji-preview',
@@ -1015,6 +1062,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
1015
1062
  `,
1016
1063
  changeDetection: ChangeDetectionStrategy.OnPush,
1017
1064
  preserveWhitespaces: false,
1065
+ standalone: true,
1066
+ imports: [CommonModule, EmojiComponent, SkinComponent],
1018
1067
  }]
1019
1068
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.EmojiService }]; }, propDecorators: { title: [{
1020
1069
  type: Input
@@ -1044,18 +1093,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
1044
1093
 
1045
1094
  let id = 0;
1046
1095
  class SearchComponent {
1096
+ emojiSearch;
1097
+ maxResults = 75;
1098
+ autoFocus = false;
1099
+ i18n;
1100
+ include = [];
1101
+ exclude = [];
1102
+ custom = [];
1103
+ icons;
1104
+ emojisToShowFilter;
1105
+ searchResults = new EventEmitter();
1106
+ enterKey = new EventEmitter();
1107
+ inputRef;
1108
+ isSearching = false;
1109
+ icon;
1110
+ query = '';
1111
+ inputId = `emoji-mart-search-${++id}`;
1047
1112
  constructor(emojiSearch) {
1048
1113
  this.emojiSearch = emojiSearch;
1049
- this.maxResults = 75;
1050
- this.autoFocus = false;
1051
- this.include = [];
1052
- this.exclude = [];
1053
- this.custom = [];
1054
- this.searchResults = new EventEmitter();
1055
- this.enterKey = new EventEmitter();
1056
- this.isSearching = false;
1057
- this.query = '';
1058
- this.inputId = `emoji-mart-search-${++id}`;
1059
1114
  }
1060
1115
  ngOnInit() {
1061
1116
  this.icon = this.icons.search;
@@ -1092,9 +1147,8 @@ class SearchComponent {
1092
1147
  handleChange() {
1093
1148
  this.handleSearch(this.query);
1094
1149
  }
1095
- }
1096
- SearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SearchComponent, deps: [{ token: EmojiSearch }], target: i0.ɵɵFactoryTarget.Component });
1097
- SearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: SearchComponent, selector: "emoji-search", inputs: { maxResults: "maxResults", autoFocus: "autoFocus", i18n: "i18n", include: "include", exclude: "exclude", custom: "custom", icons: "icons", emojisToShowFilter: "emojisToShowFilter" }, outputs: { searchResults: "searchResults", enterKey: "enterKey" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, static: true }], ngImport: i0, template: `
1150
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SearchComponent, deps: [{ token: EmojiSearch }], target: i0.ɵɵFactoryTarget.Component });
1151
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SearchComponent, isStandalone: true, selector: "emoji-search", inputs: { maxResults: "maxResults", autoFocus: "autoFocus", i18n: "i18n", include: "include", exclude: "exclude", custom: "custom", icons: "icons", emojisToShowFilter: "emojisToShowFilter" }, outputs: { searchResults: "searchResults", enterKey: "enterKey" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, static: true }], ngImport: i0, template: `
1098
1152
  <div class="emoji-mart-search">
1099
1153
  <input
1100
1154
  [id]="inputId"
@@ -1132,8 +1186,9 @@ SearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versio
1132
1186
  </svg>
1133
1187
  </button>
1134
1188
  </div>
1135
- `, isInline: true, dependencies: [{ kind: "directive", type: i2$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]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
1136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SearchComponent, decorators: [{
1189
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$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]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
1190
+ }
1191
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SearchComponent, decorators: [{
1137
1192
  type: Component,
1138
1193
  args: [{
1139
1194
  selector: 'emoji-search',
@@ -1177,6 +1232,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
1177
1232
  </div>
1178
1233
  `,
1179
1234
  preserveWhitespaces: false,
1235
+ standalone: true,
1236
+ imports: [FormsModule],
1180
1237
  }]
1181
1238
  }], ctorParameters: function () { return [{ type: EmojiSearch }]; }, propDecorators: { maxResults: [{
1182
1239
  type: Input
@@ -1249,73 +1306,91 @@ const I18N = {
1249
1306
  },
1250
1307
  };
1251
1308
  class PickerComponent {
1309
+ ngZone;
1310
+ renderer;
1311
+ ref;
1312
+ frequently;
1313
+ platformId;
1314
+ perLine = 9;
1315
+ totalFrequentLines = 4;
1316
+ i18n = {};
1317
+ style = {};
1318
+ title = 'Emoji Mart™';
1319
+ emoji = 'department_store';
1320
+ darkMode = !!(typeof matchMedia === 'function' && matchMedia('(prefers-color-scheme: dark)').matches);
1321
+ color = '#ae65c5';
1322
+ hideObsolete = true;
1323
+ /** all categories shown */
1324
+ categories = [];
1325
+ /** used to temporarily draw categories */
1326
+ activeCategories = [];
1327
+ set = 'apple';
1328
+ skin = 1;
1329
+ /** Renders the native unicode emoji */
1330
+ isNative = false;
1331
+ emojiSize = 24;
1332
+ sheetSize = 64;
1333
+ emojisToShowFilter;
1334
+ showPreview = true;
1335
+ emojiTooltip = false;
1336
+ autoFocus = false;
1337
+ custom = [];
1338
+ hideRecent = true;
1339
+ imageUrlFn;
1340
+ include;
1341
+ exclude;
1342
+ notFoundEmoji = 'sleuth_or_spy';
1343
+ categoriesIcons = categories;
1344
+ searchIcons = search;
1345
+ useButton = false;
1346
+ enableFrequentEmojiSort = false;
1347
+ enableSearch = true;
1348
+ showSingleCategory = false;
1349
+ virtualize = false;
1350
+ virtualizeOffset = 0;
1351
+ recent;
1352
+ emojiClick = new EventEmitter();
1353
+ emojiSelect = new EventEmitter();
1354
+ skinChange = new EventEmitter();
1355
+ scrollRef;
1356
+ previewRef;
1357
+ searchRef;
1358
+ categoryRefs;
1359
+ scrollHeight = 0;
1360
+ clientHeight = 0;
1361
+ clientWidth = 0;
1362
+ selected;
1363
+ nextScroll;
1364
+ scrollTop;
1365
+ firstRender = true;
1366
+ previewEmoji = null;
1367
+ animationFrameRequestId = null;
1368
+ NAMESPACE = 'emoji-mart';
1369
+ measureScrollbar = 0;
1370
+ RECENT_CATEGORY = {
1371
+ id: 'recent',
1372
+ name: 'Recent',
1373
+ emojis: null,
1374
+ };
1375
+ SEARCH_CATEGORY = {
1376
+ id: 'search',
1377
+ name: 'Search',
1378
+ emojis: null,
1379
+ anchor: false,
1380
+ };
1381
+ CUSTOM_CATEGORY = {
1382
+ id: 'custom',
1383
+ name: 'Custom',
1384
+ emojis: [],
1385
+ };
1386
+ scrollListener;
1387
+ backgroundImageFn = (set, sheetSize) => `https://cdn.jsdelivr.net/npm/emoji-datasource-${set}@14.0.0/img/${set}/sheets-256/${sheetSize}.png`;
1252
1388
  constructor(ngZone, renderer, ref, frequently, platformId) {
1253
1389
  this.ngZone = ngZone;
1254
1390
  this.renderer = renderer;
1255
1391
  this.ref = ref;
1256
1392
  this.frequently = frequently;
1257
1393
  this.platformId = platformId;
1258
- this.perLine = 9;
1259
- this.totalFrequentLines = 4;
1260
- this.i18n = {};
1261
- this.style = {};
1262
- this.title = 'Emoji Mart™';
1263
- this.emoji = 'department_store';
1264
- this.darkMode = !!(typeof matchMedia === 'function' && matchMedia('(prefers-color-scheme: dark)').matches);
1265
- this.color = '#ae65c5';
1266
- this.hideObsolete = true;
1267
- /** all categories shown */
1268
- this.categories = [];
1269
- /** used to temporarily draw categories */
1270
- this.activeCategories = [];
1271
- this.set = 'apple';
1272
- this.skin = 1;
1273
- /** Renders the native unicode emoji */
1274
- this.isNative = false;
1275
- this.emojiSize = 24;
1276
- this.sheetSize = 64;
1277
- this.showPreview = true;
1278
- this.emojiTooltip = false;
1279
- this.autoFocus = false;
1280
- this.custom = [];
1281
- this.hideRecent = true;
1282
- this.notFoundEmoji = 'sleuth_or_spy';
1283
- this.categoriesIcons = categories;
1284
- this.searchIcons = search;
1285
- this.useButton = false;
1286
- this.enableFrequentEmojiSort = false;
1287
- this.enableSearch = true;
1288
- this.showSingleCategory = false;
1289
- this.virtualize = false;
1290
- this.virtualizeOffset = 0;
1291
- this.emojiClick = new EventEmitter();
1292
- this.emojiSelect = new EventEmitter();
1293
- this.skinChange = new EventEmitter();
1294
- this.scrollHeight = 0;
1295
- this.clientHeight = 0;
1296
- this.clientWidth = 0;
1297
- this.firstRender = true;
1298
- this.previewEmoji = null;
1299
- this.animationFrameRequestId = null;
1300
- this.NAMESPACE = 'emoji-mart';
1301
- this.measureScrollbar = 0;
1302
- this.RECENT_CATEGORY = {
1303
- id: 'recent',
1304
- name: 'Recent',
1305
- emojis: null,
1306
- };
1307
- this.SEARCH_CATEGORY = {
1308
- id: 'search',
1309
- name: 'Search',
1310
- emojis: null,
1311
- anchor: false,
1312
- };
1313
- this.CUSTOM_CATEGORY = {
1314
- id: 'custom',
1315
- name: 'Custom',
1316
- emojis: [],
1317
- };
1318
- this.backgroundImageFn = (set, sheetSize) => `https://unpkg.com/emoji-datasource-${this.set}@6.0.1/img/${this.set}/sheets-256/${this.sheetSize}.png`;
1319
1394
  }
1320
1395
  ngOnInit() {
1321
1396
  // measure scroll
@@ -1354,7 +1429,6 @@ class PickerComponent {
1354
1429
  if (this.emojisToShowFilter) {
1355
1430
  const newEmojis = [];
1356
1431
  const { emojis } = category;
1357
- // eslint-disable-next-line @typescript-eslint/prefer-for-of
1358
1432
  for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex++) {
1359
1433
  const emoji = emojis[emojiIndex];
1360
1434
  if (this.emojisToShowFilter(emoji)) {
@@ -1405,7 +1479,6 @@ class PickerComponent {
1405
1479
  // the OnPush component we can run change detection locally starting from this
1406
1480
  // component and going down to the children.
1407
1481
  this.ref.detectChanges();
1408
- // eslint-disable-next-line @typescript-eslint/no-unused-expressions
1409
1482
  isPlatformBrowser(this.platformId) &&
1410
1483
  this.ngZone.runOutsideAngular(() => {
1411
1484
  // The `updateCategoriesSize` doesn't change properties that are used
@@ -1613,12 +1686,12 @@ class PickerComponent {
1613
1686
  this.animationFrameRequestId = null;
1614
1687
  }
1615
1688
  }
1689
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: PickerComponent, deps: [{ token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: EmojiFrequentlyService }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });
1690
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: PickerComponent, isStandalone: true, selector: "emoji-mart", inputs: { perLine: "perLine", totalFrequentLines: "totalFrequentLines", i18n: "i18n", style: "style", title: "title", emoji: "emoji", darkMode: "darkMode", color: "color", hideObsolete: "hideObsolete", categories: "categories", activeCategories: "activeCategories", set: "set", skin: "skin", isNative: "isNative", emojiSize: "emojiSize", sheetSize: "sheetSize", emojisToShowFilter: "emojisToShowFilter", showPreview: "showPreview", emojiTooltip: "emojiTooltip", autoFocus: "autoFocus", custom: "custom", hideRecent: "hideRecent", imageUrlFn: "imageUrlFn", include: "include", exclude: "exclude", notFoundEmoji: "notFoundEmoji", categoriesIcons: "categoriesIcons", searchIcons: "searchIcons", useButton: "useButton", enableFrequentEmojiSort: "enableFrequentEmojiSort", enableSearch: "enableSearch", showSingleCategory: "showSingleCategory", virtualize: "virtualize", virtualizeOffset: "virtualizeOffset", recent: "recent", backgroundImageFn: "backgroundImageFn" }, outputs: { emojiClick: "emojiClick", emojiSelect: "emojiSelect", skinChange: "skinChange" }, viewQueries: [{ propertyName: "scrollRef", first: true, predicate: ["scrollRef"], descendants: true, static: true }, { propertyName: "previewRef", first: true, predicate: PreviewComponent, descendants: true }, { propertyName: "searchRef", first: true, predicate: SearchComponent, descendants: true }, { propertyName: "categoryRefs", predicate: CategoryComponent, descendants: true }], ngImport: i0, template: "<section\n class=\"emoji-mart {{ darkMode ? 'emoji-mart-dark' : '' }}\"\n [style.width]=\"getWidth()\"\n [ngStyle]=\"style\"\n>\n <div class=\"emoji-mart-bar\">\n <emoji-mart-anchors\n [categories]=\"categories\"\n (anchorClick)=\"handleAnchorClick($event)\"\n [color]=\"color\"\n [selected]=\"selected\"\n [i18n]=\"i18n\"\n [icons]=\"categoriesIcons\"\n ></emoji-mart-anchors>\n </div>\n <emoji-search\n *ngIf=\"enableSearch\"\n [i18n]=\"i18n\"\n (searchResults)=\"handleSearch($event)\"\n (enterKey)=\"handleEnterKey($event)\"\n [include]=\"include\"\n [exclude]=\"exclude\"\n [custom]=\"custom\"\n [autoFocus]=\"autoFocus\"\n [icons]=\"searchIcons\"\n [emojisToShowFilter]=\"emojisToShowFilter\"\n ></emoji-search>\n <section #scrollRef class=\"emoji-mart-scroll\" [attr.aria-label]=\"i18n.emojilist\">\n <emoji-category\n *ngFor=\"let category of activeCategories; let idx = index; trackBy: categoryTrack\"\n [id]=\"category.id\"\n [name]=\"category.name\"\n [emojis]=\"category.emojis\"\n [perLine]=\"perLine\"\n [totalFrequentLines]=\"totalFrequentLines\"\n [hasStickyPosition]=\"isNative\"\n [i18n]=\"i18n\"\n [hideObsolete]=\"hideObsolete\"\n [notFoundEmoji]=\"notFoundEmoji\"\n [custom]=\"category.id === RECENT_CATEGORY.id ? CUSTOM_CATEGORY.emojis : undefined\"\n [recent]=\"category.id === RECENT_CATEGORY.id ? recent : undefined\"\n [virtualize]=\"virtualize\"\n [virtualizeOffset]=\"virtualizeOffset\"\n [emojiIsNative]=\"isNative\"\n [emojiSkin]=\"skin\"\n [emojiSize]=\"emojiSize\"\n [emojiSet]=\"set\"\n [emojiSheetSize]=\"sheetSize\"\n [emojiForceSize]=\"isNative\"\n [emojiTooltip]=\"emojiTooltip\"\n [emojiBackgroundImageFn]=\"backgroundImageFn\"\n [emojiImageUrlFn]=\"imageUrlFn\"\n [emojiUseButton]=\"useButton\"\n (emojiOverOutsideAngular)=\"handleEmojiOver($event)\"\n (emojiLeaveOutsideAngular)=\"handleEmojiLeave()\"\n (emojiClick)=\"handleEmojiClick($event)\"\n ></emoji-category>\n </section>\n <div class=\"emoji-mart-bar\" *ngIf=\"showPreview\">\n <emoji-preview\n [attr.title]=\"title\"\n [emoji]=\"previewEmoji\"\n [idleEmoji]=\"emoji\"\n [emojiIsNative]=\"isNative\"\n [emojiSize]=\"38\"\n [emojiSkin]=\"skin\"\n [emojiSet]=\"set\"\n [i18n]=\"i18n\"\n [emojiSheetSize]=\"sheetSize\"\n [emojiBackgroundImageFn]=\"backgroundImageFn\"\n [emojiImageUrlFn]=\"imageUrlFn\"\n (skinChange)=\"handleSkinChange($event)\"\n ></emoji-preview>\n </div>\n</section>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: AnchorsComponent, selector: "emoji-mart-anchors", inputs: ["categories", "color", "selected", "i18n", "icons"], outputs: ["anchorClick"] }, { kind: "component", type: SearchComponent, selector: "emoji-search", inputs: ["maxResults", "autoFocus", "i18n", "include", "exclude", "custom", "icons", "emojisToShowFilter"], outputs: ["searchResults", "enterKey"] }, { kind: "component", type: PreviewComponent, selector: "emoji-preview", inputs: ["title", "emoji", "idleEmoji", "i18n", "emojiIsNative", "emojiSkin", "emojiSize", "emojiSet", "emojiSheetSize", "emojiBackgroundImageFn", "emojiImageUrlFn"], outputs: ["skinChange"] }, { kind: "component", type: CategoryComponent, selector: "emoji-category", inputs: ["emojis", "hasStickyPosition", "name", "perLine", "totalFrequentLines", "recent", "custom", "i18n", "id", "hideObsolete", "notFoundEmoji", "virtualize", "virtualizeOffset", "emojiIsNative", "emojiSkin", "emojiSize", "emojiSet", "emojiSheetSize", "emojiForceSize", "emojiTooltip", "emojiBackgroundImageFn", "emojiImageUrlFn", "emojiUseButton"], outputs: ["emojiClick", "emojiOverOutsideAngular", "emojiLeaveOutsideAngular"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1616
1691
  }
1617
- PickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: PickerComponent, deps: [{ token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: EmojiFrequentlyService }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });
1618
- PickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: PickerComponent, selector: "emoji-mart", inputs: { perLine: "perLine", totalFrequentLines: "totalFrequentLines", i18n: "i18n", style: "style", title: "title", emoji: "emoji", darkMode: "darkMode", color: "color", hideObsolete: "hideObsolete", categories: "categories", activeCategories: "activeCategories", set: "set", skin: "skin", isNative: "isNative", emojiSize: "emojiSize", sheetSize: "sheetSize", emojisToShowFilter: "emojisToShowFilter", showPreview: "showPreview", emojiTooltip: "emojiTooltip", autoFocus: "autoFocus", custom: "custom", hideRecent: "hideRecent", imageUrlFn: "imageUrlFn", include: "include", exclude: "exclude", notFoundEmoji: "notFoundEmoji", categoriesIcons: "categoriesIcons", searchIcons: "searchIcons", useButton: "useButton", enableFrequentEmojiSort: "enableFrequentEmojiSort", enableSearch: "enableSearch", showSingleCategory: "showSingleCategory", virtualize: "virtualize", virtualizeOffset: "virtualizeOffset", recent: "recent", backgroundImageFn: "backgroundImageFn" }, outputs: { emojiClick: "emojiClick", emojiSelect: "emojiSelect", skinChange: "skinChange" }, viewQueries: [{ propertyName: "scrollRef", first: true, predicate: ["scrollRef"], descendants: true, static: true }, { propertyName: "previewRef", first: true, predicate: PreviewComponent, descendants: true }, { propertyName: "searchRef", first: true, predicate: SearchComponent, descendants: true }, { propertyName: "categoryRefs", predicate: CategoryComponent, descendants: true }], ngImport: i0, template: "<section\n class=\"emoji-mart {{ darkMode ? 'emoji-mart-dark' : '' }}\"\n [style.width]=\"getWidth()\"\n [ngStyle]=\"style\"\n>\n <div class=\"emoji-mart-bar\">\n <emoji-mart-anchors\n [categories]=\"categories\"\n (anchorClick)=\"handleAnchorClick($event)\"\n [color]=\"color\"\n [selected]=\"selected\"\n [i18n]=\"i18n\"\n [icons]=\"categoriesIcons\"\n ></emoji-mart-anchors>\n </div>\n <emoji-search\n *ngIf=\"enableSearch\"\n [i18n]=\"i18n\"\n (searchResults)=\"handleSearch($event)\"\n (enterKey)=\"handleEnterKey($event)\"\n [include]=\"include\"\n [exclude]=\"exclude\"\n [custom]=\"custom\"\n [autoFocus]=\"autoFocus\"\n [icons]=\"searchIcons\"\n [emojisToShowFilter]=\"emojisToShowFilter\"\n ></emoji-search>\n <section #scrollRef class=\"emoji-mart-scroll\" [attr.aria-label]=\"i18n.emojilist\">\n <emoji-category\n *ngFor=\"let category of activeCategories; let idx = index; trackBy: categoryTrack\"\n [id]=\"category.id\"\n [name]=\"category.name\"\n [emojis]=\"category.emojis\"\n [perLine]=\"perLine\"\n [totalFrequentLines]=\"totalFrequentLines\"\n [hasStickyPosition]=\"isNative\"\n [i18n]=\"i18n\"\n [hideObsolete]=\"hideObsolete\"\n [notFoundEmoji]=\"notFoundEmoji\"\n [custom]=\"category.id === RECENT_CATEGORY.id ? CUSTOM_CATEGORY.emojis : undefined\"\n [recent]=\"category.id === RECENT_CATEGORY.id ? recent : undefined\"\n [virtualize]=\"virtualize\"\n [virtualizeOffset]=\"virtualizeOffset\"\n [emojiIsNative]=\"isNative\"\n [emojiSkin]=\"skin\"\n [emojiSize]=\"emojiSize\"\n [emojiSet]=\"set\"\n [emojiSheetSize]=\"sheetSize\"\n [emojiForceSize]=\"isNative\"\n [emojiTooltip]=\"emojiTooltip\"\n [emojiBackgroundImageFn]=\"backgroundImageFn\"\n [emojiImageUrlFn]=\"imageUrlFn\"\n [emojiUseButton]=\"useButton\"\n (emojiOverOutsideAngular)=\"handleEmojiOver($event)\"\n (emojiLeaveOutsideAngular)=\"handleEmojiLeave()\"\n (emojiClick)=\"handleEmojiClick($event)\"\n ></emoji-category>\n </section>\n <div class=\"emoji-mart-bar\" *ngIf=\"showPreview\">\n <emoji-preview\n [attr.title]=\"title\"\n [emoji]=\"previewEmoji\"\n [idleEmoji]=\"emoji\"\n [emojiIsNative]=\"isNative\"\n [emojiSize]=\"38\"\n [emojiSkin]=\"skin\"\n [emojiSet]=\"set\"\n [i18n]=\"i18n\"\n [emojiSheetSize]=\"sheetSize\"\n [emojiBackgroundImageFn]=\"backgroundImageFn\"\n [emojiImageUrlFn]=\"imageUrlFn\"\n (skinChange)=\"handleSkinChange($event)\"\n ></emoji-preview>\n </div>\n</section>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: AnchorsComponent, selector: "emoji-mart-anchors", inputs: ["categories", "color", "selected", "i18n", "icons"], outputs: ["anchorClick"] }, { kind: "component", type: CategoryComponent, selector: "emoji-category", inputs: ["emojis", "hasStickyPosition", "name", "perLine", "totalFrequentLines", "recent", "custom", "i18n", "id", "hideObsolete", "notFoundEmoji", "virtualize", "virtualizeOffset", "emojiIsNative", "emojiSkin", "emojiSize", "emojiSet", "emojiSheetSize", "emojiForceSize", "emojiTooltip", "emojiBackgroundImageFn", "emojiImageUrlFn", "emojiUseButton"], outputs: ["emojiClick", "emojiOverOutsideAngular", "emojiLeaveOutsideAngular"] }, { kind: "component", type: SearchComponent, selector: "emoji-search", inputs: ["maxResults", "autoFocus", "i18n", "include", "exclude", "custom", "icons", "emojisToShowFilter"], outputs: ["searchResults", "enterKey"] }, { kind: "component", type: PreviewComponent, selector: "emoji-preview", inputs: ["title", "emoji", "idleEmoji", "i18n", "emojiIsNative", "emojiSkin", "emojiSize", "emojiSet", "emojiSheetSize", "emojiBackgroundImageFn", "emojiImageUrlFn"], outputs: ["skinChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1619
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: PickerComponent, decorators: [{
1692
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: PickerComponent, decorators: [{
1620
1693
  type: Component,
1621
- args: [{ selector: 'emoji-mart', changeDetection: ChangeDetectionStrategy.OnPush, preserveWhitespaces: false, template: "<section\n class=\"emoji-mart {{ darkMode ? 'emoji-mart-dark' : '' }}\"\n [style.width]=\"getWidth()\"\n [ngStyle]=\"style\"\n>\n <div class=\"emoji-mart-bar\">\n <emoji-mart-anchors\n [categories]=\"categories\"\n (anchorClick)=\"handleAnchorClick($event)\"\n [color]=\"color\"\n [selected]=\"selected\"\n [i18n]=\"i18n\"\n [icons]=\"categoriesIcons\"\n ></emoji-mart-anchors>\n </div>\n <emoji-search\n *ngIf=\"enableSearch\"\n [i18n]=\"i18n\"\n (searchResults)=\"handleSearch($event)\"\n (enterKey)=\"handleEnterKey($event)\"\n [include]=\"include\"\n [exclude]=\"exclude\"\n [custom]=\"custom\"\n [autoFocus]=\"autoFocus\"\n [icons]=\"searchIcons\"\n [emojisToShowFilter]=\"emojisToShowFilter\"\n ></emoji-search>\n <section #scrollRef class=\"emoji-mart-scroll\" [attr.aria-label]=\"i18n.emojilist\">\n <emoji-category\n *ngFor=\"let category of activeCategories; let idx = index; trackBy: categoryTrack\"\n [id]=\"category.id\"\n [name]=\"category.name\"\n [emojis]=\"category.emojis\"\n [perLine]=\"perLine\"\n [totalFrequentLines]=\"totalFrequentLines\"\n [hasStickyPosition]=\"isNative\"\n [i18n]=\"i18n\"\n [hideObsolete]=\"hideObsolete\"\n [notFoundEmoji]=\"notFoundEmoji\"\n [custom]=\"category.id === RECENT_CATEGORY.id ? CUSTOM_CATEGORY.emojis : undefined\"\n [recent]=\"category.id === RECENT_CATEGORY.id ? recent : undefined\"\n [virtualize]=\"virtualize\"\n [virtualizeOffset]=\"virtualizeOffset\"\n [emojiIsNative]=\"isNative\"\n [emojiSkin]=\"skin\"\n [emojiSize]=\"emojiSize\"\n [emojiSet]=\"set\"\n [emojiSheetSize]=\"sheetSize\"\n [emojiForceSize]=\"isNative\"\n [emojiTooltip]=\"emojiTooltip\"\n [emojiBackgroundImageFn]=\"backgroundImageFn\"\n [emojiImageUrlFn]=\"imageUrlFn\"\n [emojiUseButton]=\"useButton\"\n (emojiOverOutsideAngular)=\"handleEmojiOver($event)\"\n (emojiLeaveOutsideAngular)=\"handleEmojiLeave()\"\n (emojiClick)=\"handleEmojiClick($event)\"\n ></emoji-category>\n </section>\n <div class=\"emoji-mart-bar\" *ngIf=\"showPreview\">\n <emoji-preview\n [attr.title]=\"title\"\n [emoji]=\"previewEmoji\"\n [idleEmoji]=\"emoji\"\n [emojiIsNative]=\"isNative\"\n [emojiSize]=\"38\"\n [emojiSkin]=\"skin\"\n [emojiSet]=\"set\"\n [i18n]=\"i18n\"\n [emojiSheetSize]=\"sheetSize\"\n [emojiBackgroundImageFn]=\"backgroundImageFn\"\n [emojiImageUrlFn]=\"imageUrlFn\"\n (skinChange)=\"handleSkinChange($event)\"\n ></emoji-preview>\n </div>\n</section>\n" }]
1694
+ args: [{ selector: 'emoji-mart', changeDetection: ChangeDetectionStrategy.OnPush, preserveWhitespaces: false, standalone: true, imports: [CommonModule, AnchorsComponent, SearchComponent, PreviewComponent, CategoryComponent], template: "<section\n class=\"emoji-mart {{ darkMode ? 'emoji-mart-dark' : '' }}\"\n [style.width]=\"getWidth()\"\n [ngStyle]=\"style\"\n>\n <div class=\"emoji-mart-bar\">\n <emoji-mart-anchors\n [categories]=\"categories\"\n (anchorClick)=\"handleAnchorClick($event)\"\n [color]=\"color\"\n [selected]=\"selected\"\n [i18n]=\"i18n\"\n [icons]=\"categoriesIcons\"\n ></emoji-mart-anchors>\n </div>\n <emoji-search\n *ngIf=\"enableSearch\"\n [i18n]=\"i18n\"\n (searchResults)=\"handleSearch($event)\"\n (enterKey)=\"handleEnterKey($event)\"\n [include]=\"include\"\n [exclude]=\"exclude\"\n [custom]=\"custom\"\n [autoFocus]=\"autoFocus\"\n [icons]=\"searchIcons\"\n [emojisToShowFilter]=\"emojisToShowFilter\"\n ></emoji-search>\n <section #scrollRef class=\"emoji-mart-scroll\" [attr.aria-label]=\"i18n.emojilist\">\n <emoji-category\n *ngFor=\"let category of activeCategories; let idx = index; trackBy: categoryTrack\"\n [id]=\"category.id\"\n [name]=\"category.name\"\n [emojis]=\"category.emojis\"\n [perLine]=\"perLine\"\n [totalFrequentLines]=\"totalFrequentLines\"\n [hasStickyPosition]=\"isNative\"\n [i18n]=\"i18n\"\n [hideObsolete]=\"hideObsolete\"\n [notFoundEmoji]=\"notFoundEmoji\"\n [custom]=\"category.id === RECENT_CATEGORY.id ? CUSTOM_CATEGORY.emojis : undefined\"\n [recent]=\"category.id === RECENT_CATEGORY.id ? recent : undefined\"\n [virtualize]=\"virtualize\"\n [virtualizeOffset]=\"virtualizeOffset\"\n [emojiIsNative]=\"isNative\"\n [emojiSkin]=\"skin\"\n [emojiSize]=\"emojiSize\"\n [emojiSet]=\"set\"\n [emojiSheetSize]=\"sheetSize\"\n [emojiForceSize]=\"isNative\"\n [emojiTooltip]=\"emojiTooltip\"\n [emojiBackgroundImageFn]=\"backgroundImageFn\"\n [emojiImageUrlFn]=\"imageUrlFn\"\n [emojiUseButton]=\"useButton\"\n (emojiOverOutsideAngular)=\"handleEmojiOver($event)\"\n (emojiLeaveOutsideAngular)=\"handleEmojiLeave()\"\n (emojiClick)=\"handleEmojiClick($event)\"\n ></emoji-category>\n </section>\n <div class=\"emoji-mart-bar\" *ngIf=\"showPreview\">\n <emoji-preview\n [attr.title]=\"title\"\n [emoji]=\"previewEmoji\"\n [idleEmoji]=\"emoji\"\n [emojiIsNative]=\"isNative\"\n [emojiSize]=\"38\"\n [emojiSkin]=\"skin\"\n [emojiSet]=\"set\"\n [i18n]=\"i18n\"\n [emojiSheetSize]=\"sheetSize\"\n [emojiBackgroundImageFn]=\"backgroundImageFn\"\n [emojiImageUrlFn]=\"imageUrlFn\"\n (skinChange)=\"handleSkinChange($event)\"\n ></emoji-preview>\n </div>\n</section>\n" }]
1622
1695
  }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: EmojiFrequentlyService }, { type: undefined, decorators: [{
1623
1696
  type: Inject,
1624
1697
  args: [PLATFORM_ID]
@@ -1714,41 +1787,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
1714
1787
  type: Input
1715
1788
  }] } });
1716
1789
 
1790
+ const components = [
1791
+ PickerComponent,
1792
+ AnchorsComponent,
1793
+ CategoryComponent,
1794
+ SearchComponent,
1795
+ PreviewComponent,
1796
+ SkinComponent,
1797
+ ];
1717
1798
  class PickerModule {
1799
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: PickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1800
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: PickerModule, imports: [PickerComponent,
1801
+ AnchorsComponent,
1802
+ CategoryComponent,
1803
+ SearchComponent,
1804
+ PreviewComponent,
1805
+ SkinComponent], exports: [PickerComponent,
1806
+ AnchorsComponent,
1807
+ CategoryComponent,
1808
+ SearchComponent,
1809
+ PreviewComponent,
1810
+ SkinComponent] });
1811
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: PickerModule, imports: [components] });
1718
1812
  }
1719
- PickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: PickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1720
- PickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: PickerModule, declarations: [PickerComponent,
1721
- AnchorsComponent,
1722
- CategoryComponent,
1723
- SearchComponent,
1724
- PreviewComponent,
1725
- SkinComponent], imports: [CommonModule, FormsModule, EmojiModule], exports: [PickerComponent,
1726
- AnchorsComponent,
1727
- CategoryComponent,
1728
- SearchComponent,
1729
- PreviewComponent,
1730
- SkinComponent] });
1731
- PickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: PickerModule, imports: [CommonModule, FormsModule, EmojiModule] });
1732
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: PickerModule, decorators: [{
1813
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: PickerModule, decorators: [{
1733
1814
  type: NgModule,
1734
1815
  args: [{
1735
- imports: [CommonModule, FormsModule, EmojiModule],
1736
- exports: [
1737
- PickerComponent,
1738
- AnchorsComponent,
1739
- CategoryComponent,
1740
- SearchComponent,
1741
- PreviewComponent,
1742
- SkinComponent,
1743
- ],
1744
- declarations: [
1745
- PickerComponent,
1746
- AnchorsComponent,
1747
- CategoryComponent,
1748
- SearchComponent,
1749
- PreviewComponent,
1750
- SkinComponent,
1751
- ],
1816
+ imports: components,
1817
+ exports: components,
1752
1818
  }]
1753
1819
  }] });
1754
1820