@ctrl/ngx-emoji-mart 6.0.1 → 6.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.
- package/anchors.component.d.ts +3 -0
- package/category.component.d.ts +3 -0
- package/ctrl-ngx-emoji-mart.d.ts +1 -0
- package/emoji-frequently.service.d.ts +3 -0
- package/emoji-search.service.d.ts +3 -0
- package/esm2020/anchors.component.mjs +83 -0
- package/esm2020/category.component.mjs +386 -0
- package/{esm2015/ctrl-ngx-emoji-mart.js → esm2020/ctrl-ngx-emoji-mart.mjs} +0 -0
- package/{esm2015/emoji-frequently.service.js → esm2020/emoji-frequently.service.mjs} +10 -8
- package/esm2020/emoji-search.service.mjs +177 -0
- package/{esm2015/ngx-emoji/ctrl-ngx-emoji-mart-ngx-emoji.js → esm2020/ngx-emoji/ctrl-ngx-emoji-mart-ngx-emoji.mjs} +0 -0
- package/{esm2015/ngx-emoji/data/categories.js → esm2020/ngx-emoji/data/categories.mjs} +0 -0
- package/{esm2015/ngx-emoji/data/data.interfaces.js → esm2020/ngx-emoji/data/data.interfaces.mjs} +0 -0
- package/{esm2015/ngx-emoji/data/emojis.js → esm2020/ngx-emoji/data/emojis.mjs} +0 -0
- package/{esm2015/ngx-emoji/data/skins.js → esm2020/ngx-emoji/data/skins.mjs} +0 -0
- package/esm2020/ngx-emoji/emoji.component.mjs +236 -0
- package/esm2020/ngx-emoji/emoji.module.mjs +18 -0
- package/esm2020/ngx-emoji/emoji.service.mjs +144 -0
- package/{esm2015/ngx-emoji/index.js → esm2020/ngx-emoji/index.mjs} +0 -0
- package/esm2020/picker.component.mjs +505 -0
- package/esm2020/picker.module.mjs +49 -0
- package/esm2020/preview.component.mjs +181 -0
- package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
- package/esm2020/search.component.mjs +165 -0
- package/esm2020/skins.component.mjs +108 -0
- package/{esm2015/svgs/index.js → esm2020/svgs/index.mjs} +0 -0
- package/{esm2015/utils/index.js → esm2020/utils/index.mjs} +0 -0
- package/fesm2015/{ctrl-ngx-emoji-mart-ngx-emoji.js → ctrl-ngx-emoji-mart-ngx-emoji.mjs} +101 -44
- package/fesm2015/ctrl-ngx-emoji-mart-ngx-emoji.mjs.map +1 -0
- package/fesm2015/{ctrl-ngx-emoji-mart.js → ctrl-ngx-emoji-mart.mjs} +623 -284
- package/fesm2015/ctrl-ngx-emoji-mart.mjs.map +1 -0
- package/fesm2020/ctrl-ngx-emoji-mart-ngx-emoji.mjs +31829 -0
- package/fesm2020/ctrl-ngx-emoji-mart-ngx-emoji.mjs.map +1 -0
- package/fesm2020/ctrl-ngx-emoji-mart.mjs +1751 -0
- package/fesm2020/ctrl-ngx-emoji-mart.mjs.map +1 -0
- package/ngx-emoji/ctrl-ngx-emoji-mart-ngx-emoji.d.ts +1 -0
- package/ngx-emoji/emoji.component.d.ts +3 -0
- package/ngx-emoji/emoji.module.d.ts +6 -0
- package/ngx-emoji/emoji.service.d.ts +3 -0
- package/ngx-emoji/package.json +6 -7
- package/package.json +29 -10
- package/picker.component.d.ts +3 -0
- package/picker.module.d.ts +13 -0
- package/preview.component.d.ts +4 -1
- package/search.component.d.ts +3 -0
- package/skins.component.d.ts +6 -3
- package/bundles/ctrl-ngx-emoji-mart-ngx-emoji.umd.js +0 -32104
- package/bundles/ctrl-ngx-emoji-mart-ngx-emoji.umd.js.map +0 -1
- package/bundles/ctrl-ngx-emoji-mart.umd.js +0 -1729
- package/bundles/ctrl-ngx-emoji-mart.umd.js.map +0 -1
- package/ctrl-ngx-emoji-mart.metadata.json +0 -1
- package/esm2015/anchors.component.js +0 -54
- package/esm2015/category.component.js +0 -275
- package/esm2015/emoji-search.service.js +0 -179
- package/esm2015/ngx-emoji/emoji.component.js +0 -174
- package/esm2015/ngx-emoji/emoji.module.js +0 -13
- package/esm2015/ngx-emoji/emoji.service.js +0 -143
- package/esm2015/picker.component.js +0 -459
- package/esm2015/picker.module.js +0 -34
- package/esm2015/preview.component.js +0 -113
- package/esm2015/search.component.js +0 -115
- package/esm2015/skins.component.js +0 -76
- package/fesm2015/ctrl-ngx-emoji-mart-ngx-emoji.js.map +0 -1
- package/fesm2015/ctrl-ngx-emoji-mart.js.map +0 -1
- package/ngx-emoji/ctrl-ngx-emoji-mart-ngx-emoji.metadata.json +0 -1
@@ -1,174 +0,0 @@
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
|
2
|
-
import { DEFAULT_BACKGROUNDFN, EmojiService } from './emoji.service';
|
3
|
-
export class EmojiComponent {
|
4
|
-
constructor(emojiService) {
|
5
|
-
this.emojiService = emojiService;
|
6
|
-
this.skin = 1;
|
7
|
-
this.set = 'apple';
|
8
|
-
this.sheetSize = 64;
|
9
|
-
/** Renders the native unicode emoji */
|
10
|
-
this.isNative = false;
|
11
|
-
this.forceSize = false;
|
12
|
-
this.tooltip = false;
|
13
|
-
this.size = 24;
|
14
|
-
this.emoji = '';
|
15
|
-
this.hideObsolete = false;
|
16
|
-
this.emojiOver = new EventEmitter();
|
17
|
-
this.emojiLeave = new EventEmitter();
|
18
|
-
this.emojiClick = new EventEmitter();
|
19
|
-
this.title = '';
|
20
|
-
this.label = '';
|
21
|
-
this.custom = false;
|
22
|
-
this.isVisible = true;
|
23
|
-
// TODO: replace 4.0.3 w/ dynamic get verison from emoji-datasource in package.json
|
24
|
-
this.backgroundImageFn = DEFAULT_BACKGROUNDFN;
|
25
|
-
}
|
26
|
-
ngOnChanges() {
|
27
|
-
var _a;
|
28
|
-
if (!this.emoji) {
|
29
|
-
return (this.isVisible = false);
|
30
|
-
}
|
31
|
-
const data = this.getData();
|
32
|
-
if (!data) {
|
33
|
-
return (this.isVisible = false);
|
34
|
-
}
|
35
|
-
// const children = this.children;
|
36
|
-
this.unified = data.native || null;
|
37
|
-
if (data.custom) {
|
38
|
-
this.custom = data.custom;
|
39
|
-
}
|
40
|
-
if (!data.unified && !data.custom) {
|
41
|
-
return (this.isVisible = false);
|
42
|
-
}
|
43
|
-
if (this.tooltip) {
|
44
|
-
this.title = data.shortNames[0];
|
45
|
-
}
|
46
|
-
if (data.obsoletedBy && this.hideObsolete) {
|
47
|
-
return (this.isVisible = false);
|
48
|
-
}
|
49
|
-
this.label = [data.native].concat(data.shortNames).filter(Boolean).join(', ');
|
50
|
-
if (this.isNative && data.unified && data.native) {
|
51
|
-
// hide older emoji before the split into gendered emoji
|
52
|
-
this.style = { fontSize: `${this.size}px` };
|
53
|
-
if (this.forceSize) {
|
54
|
-
this.style.display = 'inline-block';
|
55
|
-
this.style.width = `${this.size}px`;
|
56
|
-
this.style.height = `${this.size}px`;
|
57
|
-
this.style['word-break'] = 'keep-all';
|
58
|
-
}
|
59
|
-
}
|
60
|
-
else if (data.custom) {
|
61
|
-
this.style = {
|
62
|
-
width: `${this.size}px`,
|
63
|
-
height: `${this.size}px`,
|
64
|
-
display: 'inline-block',
|
65
|
-
};
|
66
|
-
if (data.spriteUrl && this.sheetRows && this.sheetColumns) {
|
67
|
-
this.style = Object.assign(Object.assign({}, this.style), { backgroundImage: `url(${data.spriteUrl})`, backgroundSize: `${100 * this.sheetColumns}% ${100 * this.sheetRows}%`, backgroundPosition: this.emojiService.getSpritePosition(data.sheet, this.sheetColumns) });
|
68
|
-
}
|
69
|
-
else {
|
70
|
-
this.style = Object.assign(Object.assign({}, this.style), { backgroundImage: `url(${data.imageUrl})`, backgroundSize: 'contain' });
|
71
|
-
}
|
72
|
-
}
|
73
|
-
else {
|
74
|
-
if (data.hidden.length && data.hidden.includes(this.set)) {
|
75
|
-
if (this.fallback) {
|
76
|
-
this.style = { fontSize: `${this.size}px` };
|
77
|
-
this.unified = this.fallback(data, this);
|
78
|
-
}
|
79
|
-
else {
|
80
|
-
return (this.isVisible = false);
|
81
|
-
}
|
82
|
-
}
|
83
|
-
else {
|
84
|
-
this.style = this.emojiService.emojiSpriteStyles(data.sheet, this.set, this.size, this.sheetSize, this.sheetRows, this.backgroundImageFn, this.sheetColumns, (_a = this.imageUrlFn) === null || _a === void 0 ? void 0 : _a.call(this, this.getData()));
|
85
|
-
}
|
86
|
-
}
|
87
|
-
return (this.isVisible = true);
|
88
|
-
}
|
89
|
-
getData() {
|
90
|
-
return this.emojiService.getData(this.emoji, this.skin, this.set);
|
91
|
-
}
|
92
|
-
getSanitizedData() {
|
93
|
-
return this.emojiService.getSanitizedData(this.emoji, this.skin, this.set);
|
94
|
-
}
|
95
|
-
handleClick($event) {
|
96
|
-
const emoji = this.getSanitizedData();
|
97
|
-
this.emojiClick.emit({ emoji, $event });
|
98
|
-
}
|
99
|
-
handleOver($event) {
|
100
|
-
const emoji = this.getSanitizedData();
|
101
|
-
this.emojiOver.emit({ emoji, $event });
|
102
|
-
}
|
103
|
-
handleLeave($event) {
|
104
|
-
const emoji = this.getSanitizedData();
|
105
|
-
this.emojiLeave.emit({ emoji, $event });
|
106
|
-
}
|
107
|
-
}
|
108
|
-
EmojiComponent.decorators = [
|
109
|
-
{ type: Component, args: [{
|
110
|
-
selector: 'ngx-emoji',
|
111
|
-
template: `
|
112
|
-
<button
|
113
|
-
*ngIf="useButton && isVisible"
|
114
|
-
type="button"
|
115
|
-
(click)="handleClick($event)"
|
116
|
-
(mouseenter)="handleOver($event)"
|
117
|
-
(mouseleave)="handleLeave($event)"
|
118
|
-
[title]="title"
|
119
|
-
[attr.aria-label]="label"
|
120
|
-
class="emoji-mart-emoji"
|
121
|
-
[class.emoji-mart-emoji-native]="isNative"
|
122
|
-
[class.emoji-mart-emoji-custom]="custom"
|
123
|
-
>
|
124
|
-
<span [ngStyle]="style">
|
125
|
-
<ng-template [ngIf]="isNative">{{ unified }}</ng-template>
|
126
|
-
<ng-content></ng-content>
|
127
|
-
</span>
|
128
|
-
</button>
|
129
|
-
|
130
|
-
<span
|
131
|
-
*ngIf="!useButton && isVisible"
|
132
|
-
(click)="handleClick($event)"
|
133
|
-
(mouseenter)="handleOver($event)"
|
134
|
-
(mouseleave)="handleLeave($event)"
|
135
|
-
[title]="title"
|
136
|
-
[attr.aria-label]="label"
|
137
|
-
class="emoji-mart-emoji"
|
138
|
-
[class.emoji-mart-emoji-native]="isNative"
|
139
|
-
[class.emoji-mart-emoji-custom]="custom"
|
140
|
-
>
|
141
|
-
<span [ngStyle]="style">
|
142
|
-
<ng-template [ngIf]="isNative">{{ unified }}</ng-template>
|
143
|
-
<ng-content></ng-content>
|
144
|
-
</span>
|
145
|
-
</span>
|
146
|
-
`,
|
147
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
148
|
-
preserveWhitespaces: false
|
149
|
-
},] }
|
150
|
-
];
|
151
|
-
EmojiComponent.ctorParameters = () => [
|
152
|
-
{ type: EmojiService }
|
153
|
-
];
|
154
|
-
EmojiComponent.propDecorators = {
|
155
|
-
skin: [{ type: Input }],
|
156
|
-
set: [{ type: Input }],
|
157
|
-
sheetSize: [{ type: Input }],
|
158
|
-
isNative: [{ type: Input }],
|
159
|
-
forceSize: [{ type: Input }],
|
160
|
-
tooltip: [{ type: Input }],
|
161
|
-
size: [{ type: Input }],
|
162
|
-
emoji: [{ type: Input }],
|
163
|
-
fallback: [{ type: Input }],
|
164
|
-
hideObsolete: [{ type: Input }],
|
165
|
-
sheetRows: [{ type: Input }],
|
166
|
-
sheetColumns: [{ type: Input }],
|
167
|
-
useButton: [{ type: Input }],
|
168
|
-
emojiOver: [{ type: Output }],
|
169
|
-
emojiLeave: [{ type: Output }],
|
170
|
-
emojiClick: [{ type: Output }],
|
171
|
-
backgroundImageFn: [{ type: Input }],
|
172
|
-
imageUrlFn: [{ type: Input }]
|
173
|
-
};
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9waWNrZXIvbmd4LWVtb2ppL2Vtb2ppLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFtRXJFLE1BQU0sT0FBTyxjQUFjO0lBNEJ6QixZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQTNCckMsU0FBSSxHQUFrQixDQUFDLENBQUM7UUFDeEIsUUFBRyxHQUFpQixPQUFPLENBQUM7UUFDNUIsY0FBUyxHQUF1QixFQUFFLENBQUM7UUFDNUMsdUNBQXVDO1FBQzlCLGFBQVEsR0FBc0IsS0FBSyxDQUFDO1FBQ3BDLGNBQVMsR0FBdUIsS0FBSyxDQUFDO1FBQ3RDLFlBQU8sR0FBcUIsS0FBSyxDQUFDO1FBQ2xDLFNBQUksR0FBa0IsRUFBRSxDQUFDO1FBQ3pCLFVBQUssR0FBbUIsRUFBRSxDQUFDO1FBRTNCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBSXBCLGNBQVMsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuRCxlQUFVLEdBQXdCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDckQsZUFBVSxHQUF3QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRS9ELFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVgsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsbUZBQW1GO1FBQzFFLHNCQUFpQixHQUErQixvQkFBb0IsQ0FBQztJQUc3QixDQUFDO0lBRWxELFdBQVc7O1FBQ1QsSUFBSSxD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Q0wsS0FBSzsyQkFDTCxLQUFLO3dCQUNMLEtBQUs7d0JBQ0wsTUFBTTt5QkFDTixNQUFNO3lCQUNOLE1BQU07Z0NBUU4sS0FBSzt5QkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBFbW9qaURhdGEgfSBmcm9tICcuL2RhdGEvZGF0YS5pbnRlcmZhY2VzJztcbmltcG9ydCB7IERFRkFVTFRfQkFDS0dST1VOREZOLCBFbW9qaVNlcnZpY2UgfSBmcm9tICcuL2Vtb2ppLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVtb2ppIHtcbiAgLyoqIFJlbmRlcnMgdGhlIG5hdGl2ZSB1bmljb2RlIGVtb2ppICovXG4gIGlzTmF0aXZlOiBib29sZWFuO1xuICBmb3JjZVNpemU6IGJvb2xlYW47XG4gIHRvb2x0aXA6IGJvb2xlYW47XG4gIHNraW46IDEgfCAyIHwgMyB8IDQgfCA1IHwgNjtcbiAgc2hlZXRTaXplOiAxNiB8IDIwIHwgMzIgfCA2NCB8IDcyO1xuICBzaGVldFJvd3M/OiBudW1iZXI7XG4gIHNldDogJ2FwcGxlJyB8ICdnb29nbGUnIHwgJ3R3aXR0ZXInIHwgJ2ZhY2Vib29rJyB8ICcnO1xuICBzaXplOiBudW1iZXI7XG4gIGVtb2ppOiBzdHJpbmcgfCBFbW9qaURhdGE7XG4gIGJhY2tncm91bmRJbWFnZUZuOiAoc2V0OiBzdHJpbmcsIHNoZWV0U2l6ZTogbnVtYmVyKSA9PiBzdHJpbmc7XG4gIGZhbGxiYWNrPzogKGRhdGE6IGFueSwgcHJvcHM6IGFueSkgPT4gc3RyaW5nO1xuICBlbW9qaU92ZXI6IEV2ZW50RW1pdHRlcjxFbW9qaUV2ZW50PjtcbiAgZW1vamlMZWF2ZTogRXZlbnRFbWl0dGVyPEVtb2ppRXZlbnQ+O1xuICBlbW9qaUNsaWNrOiBFdmVudEVtaXR0ZXI8RW1vamlFdmVudD47XG4gIGltYWdlVXJsRm4/OiAoZW1vamk6IEVtb2ppRGF0YSB8IG51bGwpID0+IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbW9qaUV2ZW50IHtcbiAgZW1vamk6IEVtb2ppRGF0YTtcbiAgJGV2ZW50OiBFdmVudDtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LWVtb2ppJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YnV0dG9uXG4gICAgICAqbmdJZj1cInVzZUJ1dHRvbiAmJiBpc1Zpc2libGVcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2soJGV2ZW50KVwiXG4gICAgICAobW91c2VlbnRlcik9XCJoYW5kbGVPdmVyKCRldmVudClcIlxuICAgICAgKG1vdXNlbGVhdmUpPVwiaGFuZGxlTGVhdmUoJGV2ZW50KVwiXG4gICAgICBbdGl0bGVdPVwidGl0bGVcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFwiXG4gICAgICBjbGFzcz1cImVtb2ppLW1hcnQtZW1vamlcIlxuICAgICAgW2NsYXNzLmVtb2ppLW1hcnQtZW1vamktbmF0aXZlXT1cImlzTmF0aXZlXCJcbiAgICAgIFtjbGFzcy5lbW9qaS1tYXJ0LWVtb2ppLWN1c3RvbV09XCJjdXN0b21cIlxuICAgID5cbiAgICAgIDxzcGFuIFtuZ1N0eWxlXT1cInN0eWxlXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJpc05hdGl2ZVwiPnt7IHVuaWZpZWQgfX08L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L3NwYW4+XG4gICAgPC9idXR0b24+XG5cbiAgICA8c3BhblxuICAgICAgKm5nSWY9XCIhdXNlQnV0dG9uICYmIGlzVmlzaWJsZVwiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2soJGV2ZW50KVwiXG4gICAgICAobW91c2VlbnRlcik9XCJoYW5kbGVPdmVyKCRldmVudClcIlxuICAgICAgKG1vdXNlbGVhdmUpPVwiaGFuZGxlTGVhdmUoJGV2ZW50KVwiXG4gICAgICBbdGl0bGVdPVwidGl0bGVcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFwiXG4gICAgICBjbGFzcz1cImVtb2ppLW1hcnQtZW1vamlcIlxuICAgICAgW2NsYXNzLmVtb2ppLW1hcnQtZW1vamktbmF0aXZlXT1cImlzTmF0aXZlXCJcbiAgICAgIFtjbGFzcy5lbW9qaS1tYXJ0LWVtb2ppLWN1c3RvbV09XCJjdXN0b21cIlxuICAgID5cbiAgICAgIDxzcGFuIFtuZ1N0eWxlXT1cInN0eWxlXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJpc05hdGl2ZVwiPnt7IHVuaWZpZWQgfX08L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L3NwYW4+XG4gICAgPC9zcGFuPlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIEVtb2ppQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBFbW9qaSB7XG4gIEBJbnB1dCgpIHNraW46IEVtb2ppWydza2luJ10gPSAxO1xuICBASW5wdXQoKSBzZXQ6IEVtb2ppWydzZXQnXSA9ICdhcHBsZSc7XG4gIEBJbnB1dCgpIHNoZWV0U2l6ZTogRW1vamlbJ3NoZWV0U2l6ZSddID0gNjQ7XG4gIC8qKiBSZW5kZXJzIHRoZSBuYXRpdmUgdW5pY29kZSBlbW9qaSAqL1xuICBASW5wdXQoKSBpc05hdGl2ZTogRW1vamlbJ2lzTmF0aXZlJ10gPSBmYWxzZTtcbiAgQElucHV0KCkgZm9yY2VTaXplOiBFbW9qaVsnZm9yY2VTaXplJ10gPSBmYWxzZTtcbiAgQElucHV0KCkgdG9vbHRpcDogRW1vamlbJ3Rvb2x0aXAnXSA9IGZhbHNlO1xuICBASW5wdXQoKSBzaXplOiBFbW9qaVsnc2l6ZSddID0gMjQ7XG4gIEBJbnB1dCgpIGVtb2ppOiBFbW9qaVsnZW1vamknXSA9ICcnO1xuICBASW5wdXQoKSBmYWxsYmFjaz86IEVtb2ppWydmYWxsYmFjayddO1xuICBASW5wdXQoKSBoaWRlT2Jzb2xldGUgPSBmYWxzZTtcbiAgQElucHV0KCkgc2hlZXRSb3dzPzogbnVtYmVyO1xuICBASW5wdXQoKSBzaGVldENvbHVtbnM/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHVzZUJ1dHRvbj86IGJvb2xlYW47XG4gIEBPdXRwdXQoKSBlbW9qaU92ZXI6IEVtb2ppWydlbW9qaU92ZXInXSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGVtb2ppTGVhdmU6IEVtb2ppWydlbW9qaUxlYXZlJ10gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBlbW9qaUNsaWNrOiBFbW9qaVsnZW1vamlDbGljayddID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBzdHlsZTogYW55O1xuICB0aXRsZSA9ICcnO1xuICBsYWJlbCA9ICcnO1xuICB1bmlmaWVkPzogc3RyaW5nIHwgbnVsbDtcbiAgY3VzdG9tID0gZmFsc2U7XG4gIGlzVmlzaWJsZSA9IHRydWU7XG4gIC8vIFRPRE86IHJlcGxhY2UgNC4wLjMgdy8gZHluYW1pYyBnZXQgdmVyaXNvbiBmcm9tIGVtb2ppLWRhdGFzb3VyY2UgaW4gcGFja2FnZS5qc29uXG4gIEBJbnB1dCgpIGJhY2tncm91bmRJbWFnZUZuOiBFbW9qaVsnYmFja2dyb3VuZEltYWdlRm4nXSA9IERFRkFVTFRfQkFDS0dST1VOREZOO1xuICBASW5wdXQoKSBpbWFnZVVybEZuPzogRW1vamlbJ2ltYWdlVXJsRm4nXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVtb2ppU2VydmljZTogRW1vamlTZXJ2aWNlKSB7fVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIGlmICghdGhpcy5lbW9qaSkge1xuICAgICAgcmV0dXJuICh0aGlzLmlzVmlzaWJsZSA9IGZhbHNlKTtcbiAgICB9XG4gICAgY29uc3QgZGF0YSA9IHRoaXMuZ2V0RGF0YSgpO1xuICAgIGlmICghZGF0YSkge1xuICAgICAgcmV0dXJuICh0aGlzLmlzVmlzaWJsZSA9IGZhbHNlKTtcbiAgICB9XG4gICAgLy8gY29uc3QgY2hpbGRyZW4gPSB0aGlzLmNoaWxkcmVuO1xuICAgIHRoaXMudW5pZmllZCA9IGRhdGEubmF0aXZlIHx8IG51bGw7XG4gICAgaWYgKGRhdGEuY3VzdG9tKSB7XG4gICAgICB0aGlzLmN1c3RvbSA9IGRhdGEuY3VzdG9tO1xuICAgIH1cbiAgICBpZiAoIWRhdGEudW5pZmllZCAmJiAhZGF0YS5jdXN0b20pIHtcbiAgICAgIHJldHVybiAodGhpcy5pc1Zpc2libGUgPSBmYWxzZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnRvb2x0aXApIHtcbiAgICAgIHRoaXMudGl0bGUgPSBkYXRhLnNob3J0TmFtZXNbMF07XG4gICAgfVxuICAgIGlmIChkYXRhLm9ic29sZXRlZEJ5ICYmIHRoaXMuaGlkZU9ic29sZXRlKSB7XG4gICAgICByZXR1cm4gKHRoaXMuaXNWaXNpYmxlID0gZmFsc2UpO1xuICAgIH1cblxuICAgIHRoaXMubGFiZWwgPSBbZGF0YS5uYXRpdmVdLmNvbmNhdChkYXRhLnNob3J0TmFtZXMpLmZpbHRlcihCb29sZWFuKS5qb2luKCcsICcpO1xuXG4gICAgaWYgKHRoaXMuaXNOYXRpdmUgJiYgZGF0YS51bmlmaWVkICYmIGRhdGEubmF0aXZlKSB7XG4gICAgICAvLyBoaWRlIG9sZGVyIGVtb2ppIGJlZm9yZSB0aGUgc3BsaXQgaW50byBnZW5kZXJlZCBlbW9qaVxuICAgICAgdGhpcy5zdHlsZSA9IHsgZm9udFNpemU6IGAke3RoaXMuc2l6ZX1weGAgfTtcblxuICAgICAgaWYgKHRoaXMuZm9yY2VTaXplKSB7XG4gICAgICAgIHRoaXMuc3R5bGUuZGlzcGxheSA9ICdpbmxpbmUtYmxvY2snO1xuICAgICAgICB0aGlzLnN0eWxlLndpZHRoID0gYCR7dGhpcy5zaXplfXB4YDtcbiAgICAgICAgdGhpcy5zdHlsZS5oZWlnaHQgPSBgJHt0aGlzLnNpemV9cHhgO1xuICAgICAgICB0aGlzLnN0eWxlWyd3b3JkLWJyZWFrJ10gPSAna2VlcC1hbGwnO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZGF0YS5jdXN0b20pIHtcbiAgICAgIHRoaXMuc3R5bGUgPSB7XG4gICAgICAgIHdpZHRoOiBgJHt0aGlzLnNpemV9cHhgLFxuICAgICAgICBoZWlnaHQ6IGAke3RoaXMuc2l6ZX1weGAsXG4gICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgfTtcbiAgICAgIGlmIChkYXRhLnNwcml0ZVVybCAmJiB0aGlzLnNoZWV0Um93cyAmJiB0aGlzLnNoZWV0Q29sdW1ucykge1xuICAgICAgICB0aGlzLnN0eWxlID0ge1xuICAgICAgICAgIC4uLnRoaXMuc3R5bGUsXG4gICAgICAgICAgYmFja2dyb3VuZEltYWdlOiBgdXJsKCR7ZGF0YS5zcHJpdGVVcmx9KWAsXG4gICAgICAgICAgYmFja2dyb3VuZFNpemU6IGAkezEwMCAqIHRoaXMuc2hlZXRDb2x1bW5zfSUgJHsxMDAgKiB0aGlzLnNoZWV0Um93c30lYCxcbiAgICAgICAgICBiYWNrZ3JvdW5kUG9zaXRpb246IHRoaXMuZW1vamlTZXJ2aWNlLmdldFNwcml0ZVBvc2l0aW9uKGRhdGEuc2hlZXQsIHRoaXMuc2hlZXRDb2x1bW5zKSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3R5bGUgPSB7XG4gICAgICAgICAgLi4udGhpcy5zdHlsZSxcbiAgICAgICAgICBiYWNrZ3JvdW5kSW1hZ2U6IGB1cmwoJHtkYXRhLmltYWdlVXJsfSlgLFxuICAgICAgICAgIGJhY2tncm91bmRTaXplOiAnY29udGFpbicsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChkYXRhLmhpZGRlbi5sZW5ndGggJiYgZGF0YS5oaWRkZW4uaW5jbHVkZXModGhpcy5zZXQpKSB7XG4gICAgICAgIGlmICh0aGlzLmZhbGxiYWNrKSB7XG4gICAgICAgICAgdGhpcy5zdHlsZSA9IHsgZm9udFNpemU6IGAke3RoaXMuc2l6ZX1weGAgfTtcbiAgICAgICAgICB0aGlzLnVuaWZpZWQgPSB0aGlzLmZhbGxiYWNrKGRhdGEsIHRoaXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiAodGhpcy5pc1Zpc2libGUgPSBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3R5bGUgPSB0aGlzLmVtb2ppU2VydmljZS5lbW9qaVNwcml0ZVN0eWxlcyhcbiAgICAgICAgICBkYXRhLnNoZWV0LFxuICAgICAgICAgIHRoaXMuc2V0LFxuICAgICAgICAgIHRoaXMuc2l6ZSxcbiAgICAgICAgICB0aGlzLnNoZWV0U2l6ZSxcbiAgICAgICAgICB0aGlzLnNoZWV0Um93cyxcbiAgICAgICAgICB0aGlzLmJhY2tncm91bmRJbWFnZUZuLFxuICAgICAgICAgIHRoaXMuc2hlZXRDb2x1bW5zLFxuICAgICAgICAgIHRoaXMuaW1hZ2VVcmxGbj8uKHRoaXMuZ2V0RGF0YSgpKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICh0aGlzLmlzVmlzaWJsZSA9IHRydWUpO1xuICB9XG5cbiAgZ2V0RGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5lbW9qaVNlcnZpY2UuZ2V0RGF0YSh0aGlzLmVtb2ppLCB0aGlzLnNraW4sIHRoaXMuc2V0KTtcbiAgfVxuXG4gIGdldFNhbml0aXplZERhdGEoKTogRW1vamlEYXRhIHtcbiAgICByZXR1cm4gdGhpcy5lbW9qaVNlcnZpY2UuZ2V0U2FuaXRpemVkRGF0YSh0aGlzLmVtb2ppLCB0aGlzLnNraW4sIHRoaXMuc2V0KSBhcyBFbW9qaURhdGE7XG4gIH1cblxuICBoYW5kbGVDbGljaygkZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgZW1vamkgPSB0aGlzLmdldFNhbml0aXplZERhdGEoKTtcbiAgICB0aGlzLmVtb2ppQ2xpY2suZW1pdCh7IGVtb2ppLCAkZXZlbnQgfSk7XG4gIH1cblxuICBoYW5kbGVPdmVyKCRldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCBlbW9qaSA9IHRoaXMuZ2V0U2FuaXRpemVkRGF0YSgpO1xuICAgIHRoaXMuZW1vamlPdmVyLmVtaXQoeyBlbW9qaSwgJGV2ZW50IH0pO1xuICB9XG5cbiAgaGFuZGxlTGVhdmUoJGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IGVtb2ppID0gdGhpcy5nZXRTYW5pdGl6ZWREYXRhKCk7XG4gICAgdGhpcy5lbW9qaUxlYXZlLmVtaXQoeyBlbW9qaSwgJGV2ZW50IH0pO1xuICB9XG59XG4iXX0=
|
@@ -1,13 +0,0 @@
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
2
|
-
import { NgModule } from '@angular/core';
|
3
|
-
import { EmojiComponent } from './emoji.component';
|
4
|
-
export class EmojiModule {
|
5
|
-
}
|
6
|
-
EmojiModule.decorators = [
|
7
|
-
{ type: NgModule, args: [{
|
8
|
-
imports: [CommonModule],
|
9
|
-
exports: [EmojiComponent],
|
10
|
-
declarations: [EmojiComponent],
|
11
|
-
},] }
|
12
|
-
];
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9waWNrZXIvbmd4LWVtb2ppL2Vtb2ppLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFPbkQsTUFBTSxPQUFPLFdBQVc7OztZQUx2QixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2dCQUN2QixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7Z0JBQ3pCLFlBQVksRUFBRSxDQUFDLGNBQWMsQ0FBQzthQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBFbW9qaUNvbXBvbmVudCB9IGZyb20gJy4vZW1vamkuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGV4cG9ydHM6IFtFbW9qaUNvbXBvbmVudF0sXG4gIGRlY2xhcmF0aW9uczogW0Vtb2ppQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRW1vamlNb2R1bGUge31cbiJdfQ==
|
@@ -1,143 +0,0 @@
|
|
1
|
-
import { Injectable } from '@angular/core';
|
2
|
-
import { emojis } from './data/emojis';
|
3
|
-
import * as i0 from "@angular/core";
|
4
|
-
const COLONS_REGEX = /^(?:\:([^\:]+)\:)(?:\:skin-tone-(\d)\:)?$/;
|
5
|
-
const SKINS = ['1F3FA', '1F3FB', '1F3FC', '1F3FD', '1F3FE', '1F3FF'];
|
6
|
-
export const DEFAULT_BACKGROUNDFN = (set, sheetSize) => `https://unpkg.com/emoji-datasource-${set}@6.0.1/img/${set}/sheets-256/${sheetSize}.png`;
|
7
|
-
export class EmojiService {
|
8
|
-
constructor() {
|
9
|
-
this.uncompressed = false;
|
10
|
-
this.names = {};
|
11
|
-
this.emojis = [];
|
12
|
-
if (!this.uncompressed) {
|
13
|
-
this.uncompress(emojis);
|
14
|
-
this.uncompressed = true;
|
15
|
-
}
|
16
|
-
}
|
17
|
-
uncompress(list) {
|
18
|
-
this.emojis = list.map(emoji => {
|
19
|
-
const data = Object.assign({}, emoji);
|
20
|
-
if (!data.shortNames) {
|
21
|
-
data.shortNames = [];
|
22
|
-
}
|
23
|
-
data.shortNames.unshift(data.shortName);
|
24
|
-
data.id = data.shortName;
|
25
|
-
data.native = this.unifiedToNative(data.unified);
|
26
|
-
if (!data.skinVariations) {
|
27
|
-
data.skinVariations = [];
|
28
|
-
}
|
29
|
-
if (!data.keywords) {
|
30
|
-
data.keywords = [];
|
31
|
-
}
|
32
|
-
if (!data.emoticons) {
|
33
|
-
data.emoticons = [];
|
34
|
-
}
|
35
|
-
if (!data.hidden) {
|
36
|
-
data.hidden = [];
|
37
|
-
}
|
38
|
-
if (!data.text) {
|
39
|
-
data.text = '';
|
40
|
-
}
|
41
|
-
if (data.obsoletes) {
|
42
|
-
// get keywords from emoji that it obsoletes since that is shared
|
43
|
-
const f = list.find(x => x.unified === data.obsoletes);
|
44
|
-
if (f) {
|
45
|
-
if (f.keywords) {
|
46
|
-
data.keywords = [...data.keywords, ...f.keywords, f.shortName];
|
47
|
-
}
|
48
|
-
else {
|
49
|
-
data.keywords = [...data.keywords, f.shortName];
|
50
|
-
}
|
51
|
-
}
|
52
|
-
}
|
53
|
-
this.names[data.unified] = data;
|
54
|
-
for (const n of data.shortNames) {
|
55
|
-
this.names[n] = data;
|
56
|
-
}
|
57
|
-
return data;
|
58
|
-
});
|
59
|
-
}
|
60
|
-
getData(emoji, skin, set) {
|
61
|
-
let emojiData;
|
62
|
-
if (typeof emoji === 'string') {
|
63
|
-
const matches = emoji.match(COLONS_REGEX);
|
64
|
-
if (matches) {
|
65
|
-
emoji = matches[1];
|
66
|
-
if (matches[2]) {
|
67
|
-
skin = parseInt(matches[2], 10);
|
68
|
-
}
|
69
|
-
}
|
70
|
-
if (this.names.hasOwnProperty(emoji)) {
|
71
|
-
emojiData = this.names[emoji];
|
72
|
-
}
|
73
|
-
else {
|
74
|
-
return null;
|
75
|
-
}
|
76
|
-
}
|
77
|
-
else if (emoji.id) {
|
78
|
-
emojiData = this.names[emoji.id];
|
79
|
-
}
|
80
|
-
else if (emoji.unified) {
|
81
|
-
emojiData = this.names[emoji.unified.toUpperCase()];
|
82
|
-
}
|
83
|
-
if (!emojiData) {
|
84
|
-
emojiData = emoji;
|
85
|
-
emojiData.custom = true;
|
86
|
-
}
|
87
|
-
const hasSkinVariations = emojiData.skinVariations && emojiData.skinVariations.length;
|
88
|
-
if (hasSkinVariations && skin && skin > 1 && set) {
|
89
|
-
emojiData = Object.assign({}, emojiData);
|
90
|
-
const skinKey = SKINS[skin - 1];
|
91
|
-
const variationData = emojiData.skinVariations.find((n) => n.unified.includes(skinKey));
|
92
|
-
if (!variationData.hidden || !variationData.hidden.includes(set)) {
|
93
|
-
emojiData.skinTone = skin;
|
94
|
-
emojiData = Object.assign(Object.assign({}, emojiData), variationData);
|
95
|
-
}
|
96
|
-
emojiData.native = this.unifiedToNative(emojiData.unified);
|
97
|
-
}
|
98
|
-
emojiData.set = set || '';
|
99
|
-
return emojiData;
|
100
|
-
}
|
101
|
-
unifiedToNative(unified) {
|
102
|
-
const codePoints = unified.split('-').map(u => parseInt(`0x${u}`, 16));
|
103
|
-
return String.fromCodePoint(...codePoints);
|
104
|
-
}
|
105
|
-
emojiSpriteStyles(sheet, set = 'apple', size = 24, sheetSize = 64, sheetRows = 57, backgroundImageFn = DEFAULT_BACKGROUNDFN, sheetColumns = 58, url) {
|
106
|
-
const hasImageUrl = !!url;
|
107
|
-
url = url || backgroundImageFn(set, sheetSize);
|
108
|
-
return {
|
109
|
-
width: `${size}px`,
|
110
|
-
height: `${size}px`,
|
111
|
-
display: 'inline-block',
|
112
|
-
'background-image': `url(${url})`,
|
113
|
-
'background-size': hasImageUrl ? '100% 100%' : `${100 * sheetColumns}% ${100 * sheetRows}%`,
|
114
|
-
'background-position': hasImageUrl ? undefined : this.getSpritePosition(sheet, sheetColumns),
|
115
|
-
};
|
116
|
-
}
|
117
|
-
getSpritePosition(sheet, sheetColumns) {
|
118
|
-
const [sheetX, sheetY] = sheet;
|
119
|
-
const multiply = 100 / (sheetColumns - 1);
|
120
|
-
return `${multiply * sheetX}% ${multiply * sheetY}%`;
|
121
|
-
}
|
122
|
-
sanitize(emoji) {
|
123
|
-
if (emoji === null) {
|
124
|
-
return null;
|
125
|
-
}
|
126
|
-
const id = emoji.id || emoji.shortNames[0];
|
127
|
-
let colons = `:${id}:`;
|
128
|
-
if (emoji.skinTone) {
|
129
|
-
colons += `:skin-tone-${emoji.skinTone}:`;
|
130
|
-
}
|
131
|
-
emoji.colons = colons;
|
132
|
-
return Object.assign({}, emoji);
|
133
|
-
}
|
134
|
-
getSanitizedData(emoji, skin, set) {
|
135
|
-
return this.sanitize(this.getData(emoji, skin, set));
|
136
|
-
}
|
137
|
-
}
|
138
|
-
EmojiService.ɵprov = i0.ɵɵdefineInjectable({ factory: function EmojiService_Factory() { return new EmojiService(); }, token: EmojiService, providedIn: "root" });
|
139
|
-
EmojiService.decorators = [
|
140
|
-
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
141
|
-
];
|
142
|
-
EmojiService.ctorParameters = () => [];
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcGlja2VyL25neC1lbW9qaS9lbW9qaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHdkMsTUFBTSxZQUFZLEdBQUcsMkNBQTJDLENBQUM7QUFDakUsTUFBTSxLQUFLLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3JFLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsR0FBVyxFQUFFLFNBQWlCLEVBQUUsRUFBRSxDQUNyRSxzQ0FBc0MsR0FBRyxjQUFjLEdBQUcsZUFBZSxTQUFTLE1BQU0sQ0FBQztBQUczRixNQUFNLE9BQU8sWUFBWTtJQUt2QjtRQUpBLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLFVBQUssR0FBaUMsRUFBRSxDQUFDO1FBQ3pDLFdBQU0sR0FBZ0IsRUFBRSxDQUFDO1FBR3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQTJCO1FBQ3BDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM3QixNQUFNLElBQUkscUJBQWEsS0FBSyxDQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO2FBQ3RCO1lBQ0Qs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R0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQyxPQUFPLEdBQUcsUUFBUSxHQUFHLE1BQU0sS0FBSyxRQUFRLEdBQUcsTUFBTSxHQUFHLENBQUM7SUFDdkQsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUF1QjtRQUM5QixJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7WUFDbEIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUFFLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQyxJQUFJLE1BQU0sR0FBRyxJQUFJLEVBQUUsR0FBRyxDQUFDO1FBQ3ZCLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNsQixNQUFNLElBQUksY0FBYyxLQUFLLENBQUMsUUFBUSxHQUFHLENBQUM7U0FDM0M7UUFDRCxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUN0Qix5QkFBWSxLQUFLLEVBQUc7SUFDdEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQXlCLEVBQUUsSUFBb0IsRUFBRSxHQUFrQjtRQUNsRixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7OztZQWhLRixVQUFVLFNBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb21wcmVzc2VkRW1vamlEYXRhLCBFbW9qaURhdGEsIEVtb2ppVmFyaWF0aW9uIH0gZnJvbSAnLi9kYXRhL2RhdGEuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBlbW9qaXMgfSBmcm9tICcuL2RhdGEvZW1vamlzJztcbmltcG9ydCB7IEVtb2ppIH0gZnJvbSAnLi9lbW9qaS5jb21wb25lbnQnO1xuXG5jb25zdCBDT0xPTlNfUkVHRVggPSAvXig/OlxcOihbXlxcOl0rKVxcOikoPzpcXDpza2luLXRvbmUtKFxcZClcXDopPyQvO1xuY29uc3QgU0tJTlMgPSBbJzFGM0ZBJywgJzFGM0ZCJywgJzFGM0ZDJywgJzFGM0ZEJywgJzFGM0ZFJywgJzFGM0ZGJ107XG5leHBvcnQgY29uc3QgREVGQVVMVF9CQUNLR1JPVU5ERk4gPSAoc2V0OiBzdHJpbmcsIHNoZWV0U2l6ZTogbnVtYmVyKSA9PlxuICBgaHR0cHM6Ly91bnBrZy5jb20vZW1vamktZGF0YXNvdXJjZS0ke3NldH1ANi4wLjEvaW1nLyR7c2V0fS9zaGVldHMtMjU2LyR7c2hlZXRTaXplfS5wbmdgO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEVtb2ppU2VydmljZSB7XG4gIHVuY29tcHJlc3NlZCA9IGZhbHNlO1xuICBuYW1lczogeyBba2V5OiBzdHJpbmddOiBFbW9qaURhdGEgfSA9IHt9O1xuICBlbW9qaXM6IEVtb2ppRGF0YVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKCF0aGlzLnVuY29tcHJlc3NlZCkge1xuICAgICAgdGhpcy51bmNvbXByZXNzKGVtb2ppcyk7XG4gICAgICB0aGlzLnVuY29tcHJlc3NlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgdW5jb21wcmVzcyhsaXN0OiBDb21wcmVzc2VkRW1vamlEYXRhW10pIHtcbiAgICB0aGlzLmVtb2ppcyA9IGxpc3QubWFwKGVtb2ppID0+IHtcbiAgICAgIGNvbnN0IGRhdGE6IGFueSA9IHsgLi4uZW1vamkgfTtcbiAgICAgIGlmICghZGF0YS5zaG9ydE5hbWVzKSB7XG4gICAgICAgIGRhdGEuc2hvcnROYW1lcyA9IFtdO1xuICAgICAgfVxuICAgICAgZGF0YS5zaG9ydE5hbWVzLnVuc2hpZnQoZGF0YS5zaG9ydE5hbWUpO1xuICAgICAgZGF0YS5pZCA9IGRhdGEuc2hvcnROYW1lO1xuICAgICAgZGF0YS5uYXRpdmUgPSB0aGlzLnVuaWZpZWRUb05hdGl2ZShkYXRhLnVuaWZpZWQpO1xuXG4gICAgICBpZiAoIWRhdGEuc2tpblZhcmlhdGlvbnMpIHtcbiAgICAgICAgZGF0YS5za2luVmFyaWF0aW9ucyA9IFtdO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWRhdGEua2V5d29yZHMpIHtcbiAgICAgICAgZGF0YS5rZXl3b3JkcyA9IFtdO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWRhdGEuZW1vdGljb25zKSB7XG4gICAgICAgIGRhdGEuZW1vdGljb25zID0gW107XG4gICAgICB9XG5cbiAgICAgIGlmICghZGF0YS5oaWRkZW4pIHtcbiAgICAgICAgZGF0YS5oaWRkZW4gPSBbXTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFkYXRhLnRleHQpIHtcbiAgICAgICAgZGF0YS50ZXh0ID0gJyc7XG4gICAgICB9XG5cbiAgICAgIGlmIChkYXRhLm9ic29sZXRlcykge1xuICAgICAgICAvLyBnZXQga2V5d29yZHMgZnJvbSBlbW9qaSB0aGF0IGl0IG9ic29sZXRlcyBzaW5jZSB0aGF0IGlzIHNoYXJlZFxuICAgICAgICBjb25zdCBmID0gbGlzdC5maW5kKHggPT4geC51bmlmaWVkID09PSBkYXRhLm9ic29sZXRlcyk7XG4gICAgICAgIGlmIChmKSB7XG4gICAgICAgICAgaWYgKGYua2V5d29yZHMpIHtcbiAgICAgICAgICAgIGRhdGEua2V5d29yZHMgPSBbLi4uZGF0YS5rZXl3b3JkcywgLi4uZi5rZXl3b3JkcywgZi5zaG9ydE5hbWVdO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkYXRhLmtleXdvcmRzID0gWy4uLmRhdGEua2V5d29yZHMsIGYuc2hvcnROYW1lXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5uYW1lc1tkYXRhLnVuaWZpZWRdID0gZGF0YTtcbiAgICAgIGZvciAoY29uc3QgbiBvZiBkYXRhLnNob3J0TmFtZXMpIHtcbiAgICAgICAgdGhpcy5uYW1lc1tuXSA9IGRhdGE7XG4gICAgICB9XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldERhdGEoZW1vamk6IEVtb2ppRGF0YSB8IHN0cmluZywgc2tpbj86IEVtb2ppWydza2luJ10sIHNldD86IEVtb2ppWydzZXQnXSk6IEVtb2ppRGF0YSB8IG51bGwge1xuICAgIGxldCBlbW9qaURhdGE6IGFueTtcblxuICAgIGlmICh0eXBlb2YgZW1vamkgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBtYXRjaGVzID0gZW1vamkubWF0Y2goQ09MT05TX1JFR0VYKTtcblxuICAgICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgZW1vamkgPSBtYXRjaGVzWzFdO1xuXG4gICAgICAgIGlmIChtYXRjaGVzWzJdKSB7XG4gICAgICAgICAgc2tpbiA9IHBhcnNlSW50KG1hdGNoZXNbMl0sIDEwKSBhcyBFbW9qaVsnc2tpbiddO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5uYW1lcy5oYXNPd25Qcm9wZXJ0eShlbW9qaSkpIHtcbiAgICAgICAgZW1vamlEYXRhID0gdGhpcy5uYW1lc1tlbW9qaV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGVtb2ppLmlkKSB7XG4gICAgICBlbW9qaURhdGEgPSB0aGlzLm5hbWVzW2Vtb2ppLmlkXTtcbiAgICB9IGVsc2UgaWYgKGVtb2ppLnVuaWZpZWQpIHtcbiAgICAgIGVtb2ppRGF0YSA9IHRoaXMubmFtZXNbZW1vamkudW5pZmllZC50b1VwcGVyQ2FzZSgpXTtcbiAgICB9XG5cbiAgICBpZiAoIWVtb2ppRGF0YSkge1xuICAgICAgZW1vamlEYXRhID0gZW1vamk7XG4gICAgICBlbW9qaURhdGEuY3VzdG9tID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBoYXNTa2luVmFyaWF0aW9ucyA9IGVtb2ppRGF0YS5za2luVmFyaWF0aW9ucyAmJiBlbW9qaURhdGEuc2tpblZhcmlhdGlvbnMubGVuZ3RoO1xuICAgIGlmIChoYXNTa2luVmFyaWF0aW9ucyAmJiBza2luICYmIHNraW4gPiAxICYmIHNldCkge1xuICAgICAgZW1vamlEYXRhID0geyAuLi5lbW9qaURhdGEgfTtcblxuICAgICAgY29uc3Qgc2tpbktleSA9IFNLSU5TW3NraW4gLSAxXTtcbiAgICAgIGNvbnN0IHZhcmlhdGlvbkRhdGEgPSBlbW9qaURhdGEuc2tpblZhcmlhdGlvbnMuZmluZCgobjogRW1vamlWYXJpYXRpb24pID0+XG4gICAgICAgIG4udW5pZmllZC5pbmNsdWRlcyhza2luS2V5KSxcbiAgICAgICk7XG5cbiAgICAgIGlmICghdmFyaWF0aW9uRGF0YS5oaWRkZW4gfHwgIXZhcmlhdGlvbkRhdGEuaGlkZGVuLmluY2x1ZGVzKHNldCkpIHtcbiAgICAgICAgZW1vamlEYXRhLnNraW5Ub25lID0gc2tpbjtcbiAgICAgICAgZW1vamlEYXRhID0geyAuLi5lbW9qaURhdGEsIC4uLnZhcmlhdGlvbkRhdGEgfTtcbiAgICAgIH1cbiAgICAgIGVtb2ppRGF0YS5uYXRpdmUgPSB0aGlzLnVuaWZpZWRUb05hdGl2ZShlbW9qaURhdGEudW5pZmllZCk7XG4gICAgfVxuXG4gICAgZW1vamlEYXRhLnNldCA9IHNldCB8fCAnJztcbiAgICByZXR1cm4gZW1vamlEYXRhIGFzIEVtb2ppRGF0YTtcbiAgfVxuXG4gIHVuaWZpZWRUb05hdGl2ZSh1bmlmaWVkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjb2RlUG9pbnRzID0gdW5pZmllZC5zcGxpdCgnLScpLm1hcCh1ID0+IHBhcnNlSW50KGAweCR7dX1gLCAxNikpO1xuICAgIHJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludCguLi5jb2RlUG9pbnRzKTtcbiAgfVxuXG4gIGVtb2ppU3ByaXRlU3R5bGVzKFxuICAgIHNoZWV0OiBFbW9qaURhdGFbJ3NoZWV0J10sXG4gICAgc2V0OiBFbW9qaVsnc2V0J10gPSAnYXBwbGUnLFxuICAgIHNpemU6IEVtb2ppWydzaXplJ10gPSAyNCxcbiAgICBzaGVldFNpemU6IEVtb2ppWydzaGVldFNpemUnXSA9IDY0LFxuICAgIHNoZWV0Um93czogRW1vamlbJ3NoZWV0Um93cyddID0gNTcsXG4gICAgYmFja2dyb3VuZEltYWdlRm46IEVtb2ppWydiYWNrZ3JvdW5kSW1hZ2VGbiddID0gREVGQVVMVF9CQUNLR1JPVU5ERk4sXG4gICAgc2hlZXRDb2x1bW5zID0gNTgsXG4gICAgdXJsPzogc3RyaW5nLFxuICApIHtcbiAgICBjb25zdCBoYXNJbWFnZVVybCA9ICEhdXJsO1xuICAgIHVybCA9IHVybCB8fCBiYWNrZ3JvdW5kSW1hZ2VGbihzZXQsIHNoZWV0U2l6ZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdpZHRoOiBgJHtzaXplfXB4YCxcbiAgICAgIGhlaWdodDogYCR7c2l6ZX1weGAsXG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgICdiYWNrZ3JvdW5kLWltYWdlJzogYHVybCgke3VybH0pYCxcbiAgICAgICdiYWNrZ3JvdW5kLXNpemUnOiBoYXNJbWFnZVVybCA/ICcxMDAlIDEwMCUnIDogYCR7MTAwICogc2hlZXRDb2x1bW5zfSUgJHsxMDAgKiBzaGVldFJvd3N9JWAsXG4gICAgICAnYmFja2dyb3VuZC1wb3NpdGlvbic6IGhhc0ltYWdlVXJsID8gdW5kZWZpbmVkIDogdGhpcy5nZXRTcHJpdGVQb3NpdGlvbihzaGVldCwgc2hlZXRDb2x1bW5zKSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0U3ByaXRlUG9zaXRpb24oc2hlZXQ6IEVtb2ppRGF0YVsnc2hlZXQnXSwgc2hlZXRDb2x1bW5zOiBudW1iZXIpIHtcbiAgICBjb25zdCBbc2hlZXRYLCBzaGVldFldID0gc2hlZXQ7XG4gICAgY29uc3QgbXVsdGlwbHkgPSAxMDAgLyAoc2hlZXRDb2x1bW5zIC0gMSk7XG4gICAgcmV0dXJuIGAke211bHRpcGx5ICogc2hlZXRYfSUgJHttdWx0aXBseSAqIHNoZWV0WX0lYDtcbiAgfVxuXG4gIHNhbml0aXplKGVtb2ppOiBFbW9qaURhdGEgfCBudWxsKTogRW1vamlEYXRhIHwgbnVsbCB7XG4gICAgaWYgKGVtb2ppID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgaWQgPSBlbW9qaS5pZCB8fCBlbW9qaS5zaG9ydE5hbWVzWzBdO1xuICAgIGxldCBjb2xvbnMgPSBgOiR7aWR9OmA7XG4gICAgaWYgKGVtb2ppLnNraW5Ub25lKSB7XG4gICAgICBjb2xvbnMgKz0gYDpza2luLXRvbmUtJHtlbW9qaS5za2luVG9uZX06YDtcbiAgICB9XG4gICAgZW1vamkuY29sb25zID0gY29sb25zO1xuICAgIHJldHVybiB7IC4uLmVtb2ppIH07XG4gIH1cblxuICBnZXRTYW5pdGl6ZWREYXRhKGVtb2ppOiBzdHJpbmcgfCBFbW9qaURhdGEsIHNraW4/OiBFbW9qaVsnc2tpbiddLCBzZXQ/OiBFbW9qaVsnc2V0J10pIHtcbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZSh0aGlzLmdldERhdGEoZW1vamksIHNraW4sIHNldCkpO1xuICB9XG59XG4iXX0=
|