@ctrl/ngx-emoji-mart 5.1.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.
Files changed (72) hide show
  1. package/README.md +11 -19
  2. package/anchors.component.d.ts +3 -0
  3. package/category.component.d.ts +7 -2
  4. package/ctrl-ngx-emoji-mart.d.ts +1 -0
  5. package/emoji-frequently.service.d.ts +3 -0
  6. package/emoji-search.service.d.ts +3 -0
  7. package/esm2020/anchors.component.mjs +83 -0
  8. package/esm2020/category.component.mjs +386 -0
  9. package/{esm2015/ctrl-ngx-emoji-mart.js → esm2020/ctrl-ngx-emoji-mart.mjs} +0 -0
  10. package/{esm2015/emoji-frequently.service.js → esm2020/emoji-frequently.service.mjs} +10 -8
  11. package/esm2020/emoji-search.service.mjs +177 -0
  12. package/{esm2015/ngx-emoji/ctrl-ngx-emoji-mart-ngx-emoji.js → esm2020/ngx-emoji/ctrl-ngx-emoji-mart-ngx-emoji.mjs} +0 -0
  13. package/{esm2015/ngx-emoji/data/categories.js → esm2020/ngx-emoji/data/categories.mjs} +4 -4
  14. package/{esm2015/ngx-emoji/data/data.interfaces.js → esm2020/ngx-emoji/data/data.interfaces.mjs} +0 -0
  15. package/esm2020/ngx-emoji/data/emojis.mjs +29543 -0
  16. package/{esm2015/ngx-emoji/data/skins.js → esm2020/ngx-emoji/data/skins.mjs} +0 -0
  17. package/esm2020/ngx-emoji/emoji.component.mjs +236 -0
  18. package/esm2020/ngx-emoji/emoji.module.mjs +18 -0
  19. package/esm2020/ngx-emoji/emoji.service.mjs +144 -0
  20. package/{esm2015/ngx-emoji/index.js → esm2020/ngx-emoji/index.mjs} +0 -0
  21. package/esm2020/picker.component.mjs +505 -0
  22. package/esm2020/picker.module.mjs +49 -0
  23. package/esm2020/preview.component.mjs +181 -0
  24. package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
  25. package/esm2020/search.component.mjs +165 -0
  26. package/esm2020/skins.component.mjs +108 -0
  27. package/esm2020/svgs/index.mjs +18 -0
  28. package/{esm2015/utils/index.js → esm2020/utils/index.mjs} +0 -0
  29. package/fesm2015/{ctrl-ngx-emoji-mart-ngx-emoji.js → ctrl-ngx-emoji-mart-ngx-emoji.mjs} +24809 -18497
  30. package/fesm2015/ctrl-ngx-emoji-mart-ngx-emoji.mjs.map +1 -0
  31. package/fesm2015/{ctrl-ngx-emoji-mart.js → ctrl-ngx-emoji-mart.mjs} +666 -325
  32. package/fesm2015/ctrl-ngx-emoji-mart.mjs.map +1 -0
  33. package/fesm2020/ctrl-ngx-emoji-mart-ngx-emoji.mjs +31829 -0
  34. package/fesm2020/ctrl-ngx-emoji-mart-ngx-emoji.mjs.map +1 -0
  35. package/fesm2020/ctrl-ngx-emoji-mart.mjs +1751 -0
  36. package/fesm2020/ctrl-ngx-emoji-mart.mjs.map +1 -0
  37. package/ngx-emoji/ctrl-ngx-emoji-mart-ngx-emoji.d.ts +1 -0
  38. package/ngx-emoji/emoji.component.d.ts +3 -0
  39. package/ngx-emoji/emoji.module.d.ts +6 -0
  40. package/ngx-emoji/emoji.service.d.ts +3 -0
  41. package/ngx-emoji/package.json +6 -7
  42. package/package.json +29 -10
  43. package/picker.component.d.ts +3 -0
  44. package/picker.module.d.ts +13 -0
  45. package/preview.component.d.ts +4 -1
  46. package/search.component.d.ts +3 -0
  47. package/skins.component.d.ts +6 -3
  48. package/bundles/ctrl-ngx-emoji-mart-ngx-emoji.umd.js +0 -25819
  49. package/bundles/ctrl-ngx-emoji-mart-ngx-emoji.umd.js.map +0 -1
  50. package/bundles/ctrl-ngx-emoji-mart-ngx-emoji.umd.min.js +0 -2
  51. package/bundles/ctrl-ngx-emoji-mart-ngx-emoji.umd.min.js.map +0 -1
  52. package/bundles/ctrl-ngx-emoji-mart.umd.js +0 -1692
  53. package/bundles/ctrl-ngx-emoji-mart.umd.js.map +0 -1
  54. package/bundles/ctrl-ngx-emoji-mart.umd.min.js +0 -2
  55. package/bundles/ctrl-ngx-emoji-mart.umd.min.js.map +0 -1
  56. package/ctrl-ngx-emoji-mart.metadata.json +0 -1
  57. package/esm2015/anchors.component.js +0 -54
  58. package/esm2015/category.component.js +0 -275
  59. package/esm2015/emoji-search.service.js +0 -179
  60. package/esm2015/ngx-emoji/data/emojis.js +0 -23289
  61. package/esm2015/ngx-emoji/emoji.component.js +0 -174
  62. package/esm2015/ngx-emoji/emoji.module.js +0 -13
  63. package/esm2015/ngx-emoji/emoji.service.js +0 -143
  64. package/esm2015/picker.component.js +0 -459
  65. package/esm2015/picker.module.js +0 -34
  66. package/esm2015/preview.component.js +0 -113
  67. package/esm2015/search.component.js +0 -115
  68. package/esm2015/skins.component.js +0 -76
  69. package/esm2015/svgs/index.js +0 -18
  70. package/fesm2015/ctrl-ngx-emoji-mart-ngx-emoji.js.map +0 -1
  71. package/fesm2015/ctrl-ngx-emoji-mart.js.map +0 -1
  72. package/ngx-emoji/ctrl-ngx-emoji-mart-ngx-emoji.metadata.json +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"ctrl-ngx-emoji-mart.umd.js","sources":["../../src/lib/picker/anchors.component.ts","../../node_modules/tslib/tslib.es6.js","../../src/lib/picker/emoji-frequently.service.ts","../../src/lib/picker/category.component.ts","../../src/lib/picker/utils/index.ts","../../src/lib/picker/emoji-search.service.ts","../../src/lib/picker/preview.component.ts","../../src/lib/picker/search.component.ts","../../src/lib/picker/svgs/index.ts","../../src/lib/picker/picker.component.ts","../../src/lib/picker/skins.component.ts","../../src/lib/picker/picker.module.ts","../../src/lib/picker/ctrl-ngx-emoji-mart.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { EmojiCategory } from '@ctrl/ngx-emoji-mart/ngx-emoji';\n\n@Component({\n selector: 'emoji-mart-anchors',\n template: `\n <div class=\"emoji-mart-anchors\">\n <ng-template ngFor let-category [ngForOf]=\"categories\" let-idx=\"index\" [ngForTrackBy]=\"trackByFn\">\n <span\n *ngIf=\"category.anchor !== false\"\n [attr.title]=\"i18n.categories[category.id]\"\n (click)=\"this.handleClick($event, idx)\"\n class=\"emoji-mart-anchor\"\n [class.emoji-mart-anchor-selected]=\"category.name === selected\"\n [style.color]=\"category.name === selected ? color : null\"\n >\n <div>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\">\n <path [attr.d]=\"icons[category.id]\" />\n </svg>\n </div>\n <span class=\"emoji-mart-anchor-bar\" [style.background-color]=\"color\"></span>\n </span>\n </ng-template>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class AnchorsComponent {\n @Input() categories: EmojiCategory[] = [];\n @Input() color?: string;\n @Input() selected?: string;\n @Input() i18n: any;\n @Input() icons: { [key: string]: string } = {};\n @Output() anchorClick = new EventEmitter<{ category: EmojiCategory, index: number }>();\n\n trackByFn(idx: number, cat: EmojiCategory) {\n return cat.id;\n }\n handleClick($event: Event, index: number) {\n this.anchorClick.emit({\n category: this.categories[index],\n index,\n });\n }\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\n\nimport { EmojiData } from '@ctrl/ngx-emoji-mart/ngx-emoji';\n\n@Injectable({ providedIn: 'root' })\nexport class EmojiFrequentlyService {\n NAMESPACE = 'emoji-mart';\n frequently: { [key: string]: number } | null = null;\n defaults: { [key: string]: number } = {};\n initialized = false;\n DEFAULTS = [\n '+1',\n 'grinning',\n 'kissing_heart',\n 'heart_eyes',\n 'laughing',\n 'stuck_out_tongue_winking_eye',\n 'sweat_smile',\n 'joy',\n 'scream',\n 'disappointed',\n 'unamused',\n 'weary',\n 'sob',\n 'sunglasses',\n 'heart',\n 'poop',\n ];\n constructor(@Inject(PLATFORM_ID) private platformId: string) {}\n init() {\n this.frequently = JSON.parse(\n (isPlatformBrowser(this.platformId) &&\n localStorage.getItem(`${this.NAMESPACE}.frequently`)) ||\n 'null',\n );\n this.initialized = true;\n }\n add(emoji: EmojiData) {\n if (!this.initialized) {\n this.init();\n }\n if (!this.frequently) {\n this.frequently = this.defaults;\n }\n if (!this.frequently[emoji.id]) {\n this.frequently[emoji.id] = 0;\n }\n this.frequently[emoji.id] += 1;\n\n if (isPlatformBrowser(this.platformId)) {\n localStorage.setItem(`${this.NAMESPACE}.last`, emoji.id);\n localStorage.setItem(`${this.NAMESPACE}.frequently`, JSON.stringify(this.frequently));\n }\n }\n get(perLine: number, totalLines: number) {\n if (!this.initialized) {\n this.init();\n }\n if (this.frequently === null) {\n this.defaults = {};\n const result = [];\n\n for (let i = 0; i < perLine; i++) {\n this.defaults[this.DEFAULTS[i]] = perLine - i;\n result.push(this.DEFAULTS[i]);\n }\n return result;\n }\n\n const quantity = perLine * totalLines;\n const frequentlyKeys = Object.keys(this.frequently);\n\n const sorted = frequentlyKeys\n .sort((a, b) => this.frequently![a] - this.frequently![b])\n .reverse();\n const sliced = sorted.slice(0, quantity);\n\n const last =\n isPlatformBrowser(this.platformId) && localStorage.getItem(`${this.NAMESPACE}.last`);\n\n if (last && !sliced.includes(last)) {\n sliced.pop();\n sliced.push(last);\n }\n return sliced;\n }\n}\n","import { Emoji, EmojiService } from '@ctrl/ngx-emoji-mart/ngx-emoji';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { EmojiFrequentlyService } from './emoji-frequently.service';\n\n\n@Component({\n selector: 'emoji-category',\n template: `\n <section\n #container\n class=\"emoji-mart-category\"\n [attr.aria-label]=\"i18n.categories[id]\"\n [class.emoji-mart-no-results]=\"emojis && !emojis.length\"\n [ngStyle]=\"containerStyles\"\n >\n <div class=\"emoji-mart-category-label\" [ngStyle]=\"labelStyles\" [attr.data-name]=\"name\">\n <!-- already labeled by the section aria-label -->\n <span #label [ngStyle]=\"labelSpanStyles\" aria-hidden=\"true\">\n {{ i18n.categories[id] }}\n </span>\n </div>\n\n <div\n *ngIf=\"virtualize; else normalRenderTemplate\"\n >\n <div *ngIf=\"filteredEmojis$ | async as filteredEmojis\">\n <ngx-emoji\n *ngFor=\"let emoji of filteredEmojis; trackBy: trackById\"\n [emoji]=\"emoji\"\n [size]=\"emojiSize\"\n [skin]=\"emojiSkin\"\n [isNative]=\"emojiIsNative\"\n [set]=\"emojiSet\"\n [sheetSize]=\"emojiSheetSize\"\n [forceSize]=\"emojiForceSize\"\n [tooltip]=\"emojiTooltip\"\n [backgroundImageFn]=\"emojiBackgroundImageFn\"\n [imageUrlFn]=\"emojiImageUrlFn\"\n [hideObsolete]=\"hideObsolete\"\n [useButton]=\"emojiUseButton\"\n (emojiOver)=\"emojiOver.emit($event)\"\n (emojiLeave)=\"emojiLeave.emit($event)\"\n (emojiClick)=\"emojiClick.emit($event)\"\n ></ngx-emoji>\n </div>\n </div>\n\n <div *ngIf=\"emojis && !emojis.length\">\n <div>\n <ngx-emoji\n [emoji]=\"notFoundEmoji\"\n size=\"38\"\n [skin]=\"emojiSkin\"\n [isNative]=\"emojiIsNative\"\n [set]=\"emojiSet\"\n [sheetSize]=\"emojiSheetSize\"\n [forceSize]=\"emojiForceSize\"\n [tooltip]=\"emojiTooltip\"\n [backgroundImageFn]=\"emojiBackgroundImageFn\"\n [useButton]=\"emojiUseButton\"\n ></ngx-emoji>\n </div>\n\n <div class=\"emoji-mart-no-results-label\">\n {{ i18n.notfound }}\n </div>\n </div>\n </section>\n\n <ng-template #normalRenderTemplate>\n <div *ngIf=\"emojis\">\n <ngx-emoji\n *ngFor=\"let emoji of emojis; trackBy: trackById\"\n [emoji]=\"emoji\"\n [size]=\"emojiSize\"\n [skin]=\"emojiSkin\"\n [isNative]=\"emojiIsNative\"\n [set]=\"emojiSet\"\n [sheetSize]=\"emojiSheetSize\"\n [forceSize]=\"emojiForceSize\"\n [tooltip]=\"emojiTooltip\"\n [backgroundImageFn]=\"emojiBackgroundImageFn\"\n [imageUrlFn]=\"emojiImageUrlFn\"\n [hideObsolete]=\"hideObsolete\"\n (emojiOver)=\"emojiOver.emit($event)\"\n (emojiLeave)=\"emojiLeave.emit($event)\"\n (emojiClick)=\"emojiClick.emit($event)\"\n ></ngx-emoji>\n </div>\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class CategoryComponent implements OnChanges, OnInit, AfterViewInit {\n @Input() emojis?: any[] | null;\n @Input() hasStickyPosition = true;\n @Input() name = '';\n @Input() perLine = 9;\n @Input() totalFrequentLines = 4;\n @Input() recent: string[] = [];\n @Input() custom: any[] = [];\n @Input() i18n: any;\n @Input() id: any;\n @Input() hideObsolete = true;\n @Input() notFoundEmoji?: string;\n @Input() virtualize = false;\n @Input() virtualizeOffset = 0;\n @Input() emojiIsNative?: Emoji['isNative'];\n @Input() emojiSkin!: Emoji['skin'];\n @Input() emojiSize!: Emoji['size'];\n @Input() emojiSet!: Emoji['set'];\n @Input() emojiSheetSize!: Emoji['sheetSize'];\n @Input() emojiForceSize!: Emoji['forceSize'];\n @Input() emojiTooltip!: Emoji['tooltip'];\n @Input() emojiBackgroundImageFn?: Emoji['backgroundImageFn'];\n @Input() emojiImageUrlFn?: Emoji['imageUrlFn'];\n @Input() emojiUseButton?: boolean;\n @Output() emojiOver: Emoji['emojiOver'] = new EventEmitter();\n @Output() emojiLeave: Emoji['emojiLeave'] = new EventEmitter();\n @Output() emojiClick: Emoji['emojiClick'] = new EventEmitter();\n @ViewChild('container', { static: true }) container!: ElementRef;\n @ViewChild('label', { static: true }) label!: ElementRef;\n containerStyles: any = {};\n private filteredEmojisSubject = new Subject<any[] | null | undefined>();\n filteredEmojis$: Observable<any[] | null | undefined> = this.filteredEmojisSubject.asObservable();\n labelStyles: any = {};\n labelSpanStyles: any = {};\n margin = 0;\n minMargin = 0;\n maxMargin = 0;\n top = 0;\n rows = 0;\n\n constructor(\n public ref: ChangeDetectorRef,\n private emojiService: EmojiService,\n private frequently: EmojiFrequentlyService,\n ) {}\n\n ngOnInit() {\n this.emojis = this.getEmojis();\n\n if (!this.emojis) {\n this.containerStyles = { display: 'none' };\n }\n\n if (!this.hasStickyPosition) {\n this.labelStyles = { height: 28 };\n // this.labelSpanStyles = { position: 'absolute' };\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.emojis?.currentValue?.length !== changes.emojis?.previousValue?.length) {\n this.ngAfterViewInit();\n }\n }\n\n ngAfterViewInit() {\n if (!this.virtualize || !this.emojis?.length) {\n return;\n }\n\n this.emojis = this.filterEmojis();\n\n const { width } = this.container.nativeElement.getBoundingClientRect();\n\n const perRow = Math.floor(width / (this.emojiSize + 12));\n this.rows = Math.ceil(this.emojis.length / perRow);\n\n this.containerStyles = {\n ...this.containerStyles,\n minHeight: `${this.rows * (this.emojiSize + 12) + 28}px`,\n };\n\n this.ref?.detectChanges();\n\n this.handleScroll(this.container.nativeElement.parentNode.parentNode.scrollTop);\n }\n\n memoizeSize() {\n const parent = this.container.nativeElement.parentNode.parentNode;\n const { top, height } = this.container.nativeElement.getBoundingClientRect();\n const parentTop = parent.getBoundingClientRect().top;\n const labelHeight = this.label.nativeElement.getBoundingClientRect().height;\n\n this.top = top - parentTop + parent.scrollTop;\n\n if (height === 0) {\n this.maxMargin = 0;\n } else {\n this.maxMargin = height - labelHeight;\n }\n }\n handleScroll(scrollTop: number): boolean {\n let margin = scrollTop - this.top;\n margin = margin < this.minMargin ? this.minMargin : margin;\n margin = margin > this.maxMargin ? this.maxMargin : margin;\n\n if (this.virtualize) {\n const { top, height } = this.container.nativeElement.getBoundingClientRect();\n const parentHeight = this.container.nativeElement.parentNode.parentNode.clientHeight;\n\n if (parentHeight + (parentHeight + this.virtualizeOffset) >= top && -height - (parentHeight + this.virtualizeOffset) <= top) {\n this.filteredEmojisSubject.next(this.emojis);\n } else {\n this.filteredEmojisSubject.next([]);\n }\n }\n\n if (margin === this.margin) {\n this.ref.detectChanges();\n return false;\n }\n\n if (!this.hasStickyPosition) {\n this.label.nativeElement.style.top = `${margin}px`;\n }\n\n this.margin = margin;\n this.ref.detectChanges();\n return true;\n }\n\n getEmojis() {\n if (this.name === 'Recent') {\n let frequentlyUsed =\n this.recent || this.frequently.get(this.perLine, this.totalFrequentLines);\n if (!frequentlyUsed || !frequentlyUsed.length) {\n frequentlyUsed = this.frequently.get(this.perLine, this.totalFrequentLines);\n }\n if (frequentlyUsed.length) {\n this.emojis = frequentlyUsed\n .map(id => {\n const emoji = this.custom.filter((e: any) => e.id === id)[0];\n if (emoji) {\n return emoji;\n }\n\n return id;\n })\n .filter(id => !!this.emojiService.getData(id));\n }\n\n if ((!this.emojis || this.emojis.length === 0) && frequentlyUsed.length > 0) {\n return null;\n }\n }\n\n if (this.emojis) {\n this.emojis = this.emojis.slice(0);\n }\n\n return this.emojis;\n }\n updateDisplay(display: 'none' | 'block') {\n this.containerStyles.display = display;\n this.getEmojis();\n this.ref.detectChanges();\n }\n trackById(index: number, item: any) {\n return item;\n }\n\n private filterEmojis(): any[] {\n const newEmojis = [];\n for (const emoji of this.emojis || []) {\n if (!emoji) {\n continue;\n }\n const data = this.emojiService.getData(emoji);\n if (!data || (data.obsoletedBy && this.hideObsolete) || (!data.unified && !data.custom)) {\n continue;\n }\n newEmojis.push(emoji);\n }\n return newEmojis;\n }\n}\n","function uniq(arr: any[]) {\n return arr.reduce((acc: Array<any>, item: any) => {\n if (!acc.includes(item)) {\n acc.push(item);\n }\n return acc;\n }, []);\n}\n\nexport function intersect(a: any, b: any) {\n const uniqA = uniq(a);\n const uniqB = uniq(b);\n\n return uniqA.filter((item: any) => uniqB.indexOf(item) >= 0);\n}\n\n// https://github.com/sonicdoe/measure-scrollbar\nexport function measureScrollbar() {\n if (typeof document === 'undefined') {\n return 0;\n }\n const div = document.createElement('div');\n\n div.style.width = '100px';\n div.style.height = '100px';\n div.style.overflow = 'scroll';\n div.style.position = 'absolute';\n div.style.top = '-9999px';\n\n document.body.appendChild(div);\n const scrollbarWidth = div.offsetWidth - div.clientWidth;\n document.body.removeChild(div);\n\n return scrollbarWidth;\n}\n","import { Injectable } from '@angular/core';\n\nimport { categories, EmojiData, EmojiService } from '@ctrl/ngx-emoji-mart/ngx-emoji';\nimport { intersect } from './utils';\n\n@Injectable({ providedIn: 'root' })\nexport class EmojiSearch {\n originalPool: any = {};\n index: {\n results?: EmojiData[];\n pool?: { [key: string]: EmojiData };\n [key: string]: any;\n } = {};\n emojisList: any = {};\n emoticonsList: { [key: string]: string } = {};\n emojiSearch: { [key: string]: string } = {};\n\n constructor(private emojiService: EmojiService) {\n for (const emojiData of this.emojiService.emojis) {\n const { shortNames, emoticons } = emojiData;\n const id = shortNames[0];\n\n for (const emoticon of emoticons) {\n if (this.emoticonsList[emoticon]) {\n continue;\n }\n\n this.emoticonsList[emoticon] = id;\n }\n\n this.emojisList[id] = this.emojiService.getSanitizedData(id);\n this.originalPool[id] = emojiData;\n }\n }\n\n addCustomToPool(custom: any, pool: any) {\n for (const emoji of custom) {\n const emojiId = emoji.id || emoji.shortNames[0];\n\n if (emojiId && !pool[emojiId]) {\n pool[emojiId] = this.emojiService.getData(emoji);\n this.emojisList[emojiId] = this.emojiService.getSanitizedData(emoji);\n }\n }\n }\n\n search(\n value: string,\n emojisToShowFilter?: (x: any) => boolean,\n maxResults = 75,\n include: any[] = [],\n exclude: any[] = [],\n custom: any[] = [],\n ): EmojiData[] | null {\n this.addCustomToPool(custom, this.originalPool);\n\n let results: EmojiData[] | undefined;\n let pool = this.originalPool;\n\n if (value.length) {\n if (value === '-' || value === '-1') {\n return [this.emojisList['-1']];\n }\n if (value === '+' || value === '+1') {\n return [this.emojisList['+1']];\n }\n\n let values = value.toLowerCase().split(/[\\s|,|\\-|_]+/);\n let allResults = [];\n\n if (values.length > 2) {\n values = [values[0], values[1]];\n }\n\n if (include.length || exclude.length) {\n pool = {};\n\n for (const category of categories || []) {\n const isIncluded = include && include.length ? include.indexOf(category.id) > -1 : true;\n const isExcluded = exclude && exclude.length ? exclude.indexOf(category.id) > -1 : false;\n\n if (!isIncluded || isExcluded) {\n continue;\n }\n\n for (const emojiId of category.emojis || []) {\n // Need to make sure that pool gets keyed\n // with the correct id, which is why we call emojiService.getData below\n const emoji = this.emojiService.getData(emojiId);\n pool[emoji?.id ?? ''] = emoji;\n }\n }\n\n if (custom.length) {\n const customIsIncluded =\n include && include.length ? include.indexOf('custom') > -1 : true;\n const customIsExcluded =\n exclude && exclude.length ? exclude.indexOf('custom') > -1 : false;\n if (customIsIncluded && !customIsExcluded) {\n this.addCustomToPool(custom, pool);\n }\n }\n }\n\n allResults = values\n .map(v => {\n let aPool = pool;\n let aIndex = this.index;\n let length = 0;\n\n // tslint:disable-next-line: prefer-for-of\n for (let charIndex = 0; charIndex < v.length; charIndex++) {\n const char = v[charIndex];\n length++;\n if (!aIndex[char]) {\n aIndex[char] = {};\n }\n aIndex = aIndex[char];\n\n if (!aIndex.results) {\n const scores: { [key: string]: number } = {};\n\n aIndex.results = [];\n aIndex.pool = {};\n\n for (const id of Object.keys(aPool)) {\n const emoji = aPool[id];\n if (!this.emojiSearch[id]) {\n this.emojiSearch[id] = this.buildSearch(\n emoji.short_names,\n emoji.name,\n emoji.id,\n emoji.keywords,\n emoji.emoticons,\n );\n }\n const query = this.emojiSearch[id];\n const sub = v.substr(0, length);\n const subIndex = query.indexOf(sub);\n\n if (subIndex !== -1) {\n let score = subIndex + 1;\n if (sub === id) {\n score = 0;\n }\n\n aIndex.results.push(this.emojisList[id]);\n aIndex.pool[id] = emoji;\n\n scores[id] = score;\n }\n }\n\n aIndex.results.sort((a, b) => {\n const aScore = scores[a.id];\n const bScore = scores[b.id];\n\n return aScore - bScore;\n });\n }\n\n aPool = aIndex.pool;\n }\n\n return aIndex.results;\n })\n .filter(a => a);\n\n if (allResults.length > 1) {\n results = intersect.apply(null, allResults as any);\n } else if (allResults.length) {\n results = allResults[0];\n } else {\n results = [];\n }\n }\n\n if (results) {\n if (emojisToShowFilter) {\n results = results.filter((result: EmojiData) => {\n if (result && result.id) {\n return emojisToShowFilter(this.emojiService.names[result.id]);\n }\n return false;\n });\n }\n\n if (results && results.length > maxResults) {\n results = results.slice(0, maxResults);\n }\n }\n return results || null;\n }\n\n buildSearch(\n shortNames: string[],\n name: string,\n id: string,\n keywords: string[],\n emoticons: string[],\n ) {\n const search: string[] = [];\n\n const addToSearch = (strings: string | string[], split: boolean) => {\n if (!strings) {\n return;\n }\n\n const arr = Array.isArray(strings) ? strings : [strings];\n\n for (const str of arr) {\n const substrings = split ? str.split(/[-|_|\\s]+/) : [str];\n\n for (let s of substrings) {\n s = s.toLowerCase();\n\n if (!search.includes(s)) {\n search.push(s);\n }\n }\n }\n };\n\n addToSearch(shortNames, true);\n addToSearch(name, true);\n addToSearch(id, true);\n addToSearch(keywords, true);\n addToSearch(emoticons, false);\n\n return search.join(',');\n }\n}\n","import { Emoji, EmojiData, EmojiService } from '@ctrl/ngx-emoji-mart/ngx-emoji';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output\n} from '@angular/core';\n\n\n@Component({\n selector: 'emoji-preview',\n template: `\n <div class=\"emoji-mart-preview\" *ngIf=\"emoji && emojiData\">\n <div class=\"emoji-mart-preview-emoji\">\n <ngx-emoji\n [emoji]=\"emoji\"\n [size]=\"38\"\n [isNative]=\"emojiIsNative\"\n [skin]=\"emojiSkin\"\n [size]=\"emojiSize\"\n [set]=\"emojiSet\"\n [sheetSize]=\"emojiSheetSize\"\n [backgroundImageFn]=\"emojiBackgroundImageFn\"\n [imageUrlFn]=\"emojiImageUrlFn\"\n ></ngx-emoji>\n </div>\n\n <div class=\"emoji-mart-preview-data\">\n <div class=\"emoji-mart-preview-name\">{{ emojiData.name }}</div>\n <div class=\"emoji-mart-preview-shortname\">\n <span\n class=\"emoji-mart-preview-shortname\"\n *ngFor=\"let short_name of emojiData.shortNames\"\n >\n :{{ short_name }}:\n </span>\n </div>\n <div class=\"emoji-mart-preview-emoticons\">\n <span class=\"emoji-mart-preview-emoticon\" *ngFor=\"let emoticon of listedEmoticons\">\n {{ emoticon }}\n </span>\n </div>\n </div>\n </div>\n\n <div class=\"emoji-mart-preview\" *ngIf=\"!emoji\">\n <div class=\"emoji-mart-preview-emoji\">\n <ngx-emoji\n *ngIf=\"idleEmoji && idleEmoji.length\"\n [isNative]=\"emojiIsNative\"\n [skin]=\"emojiSkin\"\n [set]=\"emojiSet\"\n [emoji]=\"idleEmoji\"\n [backgroundImageFn]=\"emojiBackgroundImageFn\"\n [size]=\"38\"\n [imageUrlFn]=\"emojiImageUrlFn\"\n ></ngx-emoji>\n </div>\n\n <div class=\"emoji-mart-preview-data\">\n <span class=\"emoji-mart-title-label\">{{ title }}</span>\n </div>\n\n <div class=\"emoji-mart-preview-skins\">\n <emoji-skins [skin]=\"emojiSkin\" (changeSkin)=\"skinChange.emit($event)\" [i18n]=\"i18n\">\n </emoji-skins>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class PreviewComponent implements OnChanges {\n @Input() title?: string;\n @Input() emoji: any;\n @Input() idleEmoji: any;\n @Input() i18n: any;\n @Input() emojiIsNative?: Emoji['isNative'];\n @Input() emojiSkin?: Emoji['skin'];\n @Input() emojiSize?: Emoji['size'];\n @Input() emojiSet?: Emoji['set'];\n @Input() emojiSheetSize?: Emoji['sheetSize'];\n @Input() emojiBackgroundImageFn?: Emoji['backgroundImageFn'];\n @Input() emojiImageUrlFn?: Emoji['imageUrlFn'];\n @Output() skinChange = new EventEmitter<number>();\n emojiData: Partial<EmojiData> = {};\n listedEmoticons?: string[];\n\n constructor(public ref: ChangeDetectorRef, private emojiService: EmojiService) {}\n\n ngOnChanges() {\n if (!this.emoji) {\n return;\n }\n this.emojiData = this.emojiService.getData(\n this.emoji,\n this.emojiSkin,\n this.emojiSet,\n ) as EmojiData;\n const knownEmoticons: string[] = [];\n const listedEmoticons: string[] = [];\n const emoitcons = this.emojiData.emoticons || [];\n emoitcons.forEach((emoticon: string) => {\n if (knownEmoticons.indexOf(emoticon.toLowerCase()) >= 0) {\n return;\n }\n knownEmoticons.push(emoticon.toLowerCase());\n listedEmoticons.push(emoticon);\n });\n this.listedEmoticons = listedEmoticons;\n this.ref?.detectChanges();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\n\nimport { EmojiSearch } from './emoji-search.service';\n\nlet id = 0;\n\n@Component({\n selector: 'emoji-search',\n template: `\n <div class=\"emoji-mart-search\">\n <input\n [id]=\"inputId\"\n #inputRef\n type=\"search\"\n (keyup.enter)=\"handleEnterKey($event)\"\n [placeholder]=\"i18n.search\"\n [autofocus]=\"autoFocus\"\n [(ngModel)]=\"query\"\n (ngModelChange)=\"handleChange()\"\n />\n <!--\n Use a <label> in addition to the placeholder for accessibility, but place it off-screen\n http://www.maxability.co.in/2016/01/placeholder-attribute-and-why-it-is-not-accessible/\n -->\n <label class=\"emoji-mart-sr-only\" [htmlFor]=\"inputId\">\n {{ i18n.search }}\n </label>\n <button\n type=\"button\"\n class=\"emoji-mart-search-icon\"\n (click)=\"clear()\"\n (keyup.enter)=\"clear()\"\n [disabled]=\"!isSearching\"\n [attr.aria-label]=\"i18n.clear\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n width=\"13\"\n height=\"13\"\n opacity=\"0.5\"\n >\n <path [attr.d]=\"icon\" />\n </svg>\n </button>\n </div>\n `,\n preserveWhitespaces: false,\n})\nexport class SearchComponent implements AfterViewInit, OnInit {\n @Input() maxResults = 75;\n @Input() autoFocus = false;\n @Input() i18n: any;\n @Input() include: string[] = [];\n @Input() exclude: string[] = [];\n @Input() custom: any[] = [];\n @Input() icons!: { [key: string]: string };\n @Input() emojisToShowFilter?: (x: any) => boolean;\n @Output() searchResults = new EventEmitter<any[]>();\n @Output() enterKey = new EventEmitter<any>();\n @ViewChild('inputRef', { static: true }) private inputRef!: ElementRef;\n isSearching = false;\n icon?: string;\n query = '';\n inputId = `emoji-mart-search-${++id}`;\n\n constructor(private emojiSearch: EmojiSearch) {}\n\n ngOnInit() {\n this.icon = this.icons.search;\n }\n ngAfterViewInit() {\n if (this.autoFocus) {\n this.inputRef.nativeElement.focus();\n }\n }\n clear() {\n this.query = '';\n this.handleSearch('');\n this.inputRef.nativeElement.focus();\n }\n handleEnterKey($event: Event) {\n if (!this.query) {\n return;\n }\n this.enterKey.emit($event);\n $event.preventDefault();\n }\n handleSearch(value: string) {\n if (value === '') {\n this.icon = this.icons.search;\n this.isSearching = false;\n } else {\n this.icon = this.icons.delete;\n this.isSearching = true;\n }\n const emojis = this.emojiSearch.search(\n this.query,\n this.emojisToShowFilter,\n this.maxResults,\n this.include,\n this.exclude,\n this.custom,\n ) as any[];\n this.searchResults.emit(emojis);\n }\n handleChange() {\n this.handleSearch(this.query);\n }\n}\n","/* tslint:disable max-line-length */\nexport const categories: { [key: string]: string } = {\n activity: `M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24m10 11h-5c.3-2.5 1.3-4.8 2-6.1a10 10 0 0 1 3 6.1m-9 0V2a10 10 0 0 1 4.4 1.6A18 18 0 0 0 15 11h-2zm-2 0H9a18 18 0 0 0-2.4-7.4A10 10 0 0 1 11 2.1V11zm0 2v9a10 10 0 0 1-4.4-1.6A18 18 0 0 0 9 13h2zm4 0a18 18 0 0 0 2.4 7.4 10 10 0 0 1-4.4 1.5V13h2zM5 4.9c.7 1.3 1.7 3.6 2 6.1H2a10 10 0 0 1 3-6.1M2 13h5c-.3 2.5-1.3 4.8-2 6.1A10 10 0 0 1 2 13m17 6.1c-.7-1.3-1.7-3.6-2-6.1h5a10 10 0 0 1-3 6.1`,\n\n custom: `M10 1h3v21h-3zm10.186 4l1.5 2.598L3.5 18.098 2 15.5zM2 7.598L3.5 5l18.186 10.5-1.5 2.598z`,\n\n flags: `M0 0l6 24h2L2 0zm21 5h-4l-1-4H4l3 12h3l1 4h13L21 5zM6.6 3h7.8l2 8H8.6l-2-8zm8.8 10l-2.9 1.9-.4-1.9h3.3zm3.6 0l-1.5-6h2l2 8H16l3-2z`,\n\n foods: `M17 5c-1.8 0-2.9.4-3.7 1 .5-1.3 1.8-3 4.7-3a1 1 0 0 0 0-2c-3 0-4.6 1.3-5.5 2.5l-.2.2c-.6-1.9-1.5-3.7-3-3.7C8.5 0 7.7.3 7 1c-2 1.5-1.7 2.9-.5 4C3.6 5.2 0 7.4 0 13c0 4.6 5 11 9 11 2 0 2.4-.5 3-1 .6.5 1 1 3 1 4 0 9-6.4 9-11 0-6-4-8-7-8M8.2 2.5c.7-.5 1-.5 1-.5.4.2 1 1.4 1.4 3-1.6-.6-2.8-1.3-3-1.8l.6-.7M15 22c-1 0-1.2-.1-1.6-.4l-.1-.2a2 2 0 0 0-2.6 0l-.1.2c-.4.3-.5.4-1.6.4-2.8 0-7-5.4-7-9 0-6 4.5-6 5-6 2 0 2.5.4 3.4 1.2l.3.3a2 2 0 0 0 2.6 0l.3-.3c1-.8 1.5-1.2 3.4-1.2.5 0 5 .1 5 6 0 3.6-4.2 9-7 9`,\n\n nature: `M15.5 8a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3m-7 0a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3m10.43-8h-.02c-.97 0-2.14.79-3.02 1.5A13.88 13.88 0 0 0 12 .99c-1.28 0-2.62.13-3.87.51C7.24.8 6.07 0 5.09 0h-.02C3.35 0 .07 2.67 0 7.03c-.04 2.47.28 4.23 1.04 5 .26.27.88.69 1.3.9.19 3.17.92 5.23 2.53 6.37.9.64 2.19.95 3.2 1.1-.03.2-.07.4-.07.6 0 1.77 2.35 3 4 3s4-1.23 4-3c0-.2-.04-.4-.07-.59 2.57-.38 5.43-1.87 5.92-7.58.4-.22.89-.57 1.1-.8.77-.76 1.09-2.52 1.05-5C23.93 2.67 20.65 0 18.93 0M3.23 9.13c-.24.29-.84 1.16-.9 1.24A9.67 9.67 0 0 1 2 7.08c.05-3.28 2.48-4.97 3.1-5.03.25.02.72.27 1.26.65A7.95 7.95 0 0 0 4 7.82c-.14.55-.4.86-.79 1.31M12 22c-.9 0-1.95-.7-2-1 0-.65.47-1.24 1-1.6v.6a1 1 0 1 0 2 0v-.6c.52.36 1 .95 1 1.6-.05.3-1.1 1-2 1m3-3.48v.02a4.75 4.75 0 0 0-1.26-1.02c1.09-.52 2.24-1.33 2.24-2.22 0-1.84-1.78-2.2-3.98-2.2s-3.98.36-3.98 2.2c0 .89 1.15 1.7 2.24 2.22A4.8 4.8 0 0 0 9 18.54v-.03a6.1 6.1 0 0 1-2.97-.84c-1.3-.92-1.84-3.04-1.86-6.48l.03-.04c.5-.82 1.49-1.45 1.8-3.1C6 6 7.36 4.42 8.36 3.53c1.01-.35 2.2-.53 3.59-.53 1.45 0 2.68.2 3.73.57 1 .9 2.32 2.46 2.32 4.48.31 1.65 1.3 2.27 1.8 3.1l.1.18c-.06 5.97-1.95 7.01-4.9 7.19m6.63-8.2l-.11-.2a7.59 7.59 0 0 0-.74-.98 3.02 3.02 0 0 1-.79-1.32 7.93 7.93 0 0 0-2.35-5.12c.53-.38 1-.63 1.26-.65.64.07 3.05 1.77 3.1 5.03.02 1.81-.35 3.22-.37 3.24`,\n\n objects: `M12 0a9 9 0 0 0-5 16.5V21s2 3 5 3 5-3 5-3v-4.5A9 9 0 0 0 12 0zm0 2a7 7 0 1 1 0 14 7 7 0 0 1 0-14zM9 17.5a9 9 0 0 0 6 0v.8a7 7 0 0 1-3 .7 7 7 0 0 1-3-.7v-.8zm.2 3a8.9 8.9 0 0 0 2.8.5c1 0 1.9-.2 2.8-.5-.6.7-1.6 1.5-2.8 1.5-1.1 0-2.1-.8-2.8-1.5zm5.5-8.1c-.8 0-1.1-.8-1.5-1.8-.5-1-.7-1.5-1.2-1.5s-.8.5-1.3 1.5c-.4 1-.8 1.8-1.6 1.8h-.3c-.5-.2-.8-.7-1.3-1.8l-.2-1A3 3 0 0 0 7 9a1 1 0 0 1 0-2c1.7 0 2 1.4 2.2 2.1.5-1 1.3-2 2.8-2 1.5 0 2.3 1.1 2.7 2.1.2-.8.6-2.2 2.3-2.2a1 1 0 1 1 0 2c-.2 0-.3.5-.3.7a6.5 6.5 0 0 1-.3 1c-.5 1-.8 1.7-1.7 1.7`,\n\n people: `M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24m0 22a10 10 0 1 1 0-20 10 10 0 0 1 0 20M8 7a2 2 0 1 0 0 4 2 2 0 0 0 0-4m8 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4m-.8 8c-.7 1.2-1.8 2-3.3 2-1.5 0-2.7-.8-3.4-2H15m3-2H6a6 6 0 1 0 12 0`,\n\n places: `M6.5 12a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5m0 3c-.3 0-.5-.2-.5-.5s.2-.5.5-.5.5.2.5.5-.2.5-.5.5m11-3a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5m0 3c-.3 0-.5-.2-.5-.5s.2-.5.5-.5.5.2.5.5-.2.5-.5.5m5-5.5l-1-.4-.1-.1h.6c.6 0 1-.4 1-1 0-1-.9-2-2-2h-.6l-.8-1.7A3 3 0 0 0 16.8 2H7.2a3 3 0 0 0-2.8 2.3L3.6 6H3a2 2 0 0 0-2 2c0 .6.4 1 1 1h.6v.1l-1 .4a2 2 0 0 0-1.4 2l.7 7.6a1 1 0 0 0 1 .9H3v1c0 1.1.9 2 2 2h2a2 2 0 0 0 2-2v-1h6v1c0 1.1.9 2 2 2h2a2 2 0 0 0 2-2v-1h1.1a1 1 0 0 0 1-.9l.7-7.5a2 2 0 0 0-1.3-2.1M6.3 4.9c.1-.5.5-.9 1-.9h9.5c.4 0 .8.4 1 .9L19.2 9H4.7l1.6-4.1zM7 21H5v-1h2v1zm12 0h-2v-1h2v1zm2.2-3H2.8l-.7-6.6.9-.4h18l.9.4-.7 6.6z`,\n\n recent: `M13 4h-2v7H9v2h2v2h2v-2h4v-2h-4zm-1-4a12 12 0 1 0 0 24 12 12 0 0 0 0-24m0 22a10 10 0 1 1 0-20 10 10 0 0 1 0 20`,\n\n symbols: `M0 0h11v2H0zm4 11h3V6h4V4H0v2h4zm11.5 6a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5m0-2.99a.5.5 0 0 1 0 .99c-.28 0-.5-.22-.5-.5s.22-.49.5-.49m6 5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5m0 2.99a.5.5 0 0 1-.5-.5.5.5 0 0 1 1 .01.5.5 0 0 1-.5.49m.5-9l-9 9 1.51 1.5 9-9zm-5-2c2.2 0 4-1.12 4-2.5V2s.98-.16 1.5.95C23 4.05 23 6 23 6s1-1.12 1-3.13C24-.02 21 0 21 0h-2v6.35A5.85 5.85 0 0 0 17 6c-2.2 0-4 1.12-4 2.5s1.8 2.5 4 2.5m-6.7 9.48L8.82 18.9a47.54 47.54 0 0 1-1.44 1.13c-.3-.3-.99-1.02-2.04-2.19.9-.83 1.47-1.46 1.72-1.89s.38-.87.38-1.33c0-.6-.27-1.18-.82-1.76-.54-.58-1.33-.87-2.35-.87-1 0-1.79.29-2.34.87-.56.6-.83 1.18-.83 1.79 0 .81.42 1.75 1.25 2.8a6.57 6.57 0 0 0-1.8 1.79 3.46 3.46 0 0 0-.51 1.83c0 .86.3 1.56.92 2.1a3.5 3.5 0 0 0 2.42.83c1.17 0 2.44-.38 3.81-1.14L8.23 24h2.82l-2.09-2.38 1.34-1.14zM3.56 14.1a1.02 1.02 0 0 1 .73-.28c.31 0 .56.08.75.25a.85.85 0 0 1 .28.66c0 .52-.42 1.11-1.26 1.78-.53-.65-.8-1.23-.8-1.74a.9.9 0 0 1 .3-.67m.18 7.9c-.43 0-.78-.12-1.06-.35-.28-.23-.41-.49-.41-.76 0-.6.5-1.3 1.52-2.09a31.23 31.23 0 0 0 2.25 2.44c-.92.5-1.69.76-2.3.76`,\n};\n\nexport const search: { [key: string]: string } = {\n search: `M12.9 14.32a8 8 0 1 1 1.41-1.41l5.35 5.33-1.42 1.42-5.33-5.34zM8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12z`,\n delete: `M10 8.586L2.929 1.515 1.515 2.929 8.586 10l-7.071 7.071 1.414 1.414L10 11.414l7.071 7.071 1.414-1.414L11.414 10l7.071-7.071-1.414-1.414L10 8.586z`,\n};\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n PLATFORM_ID,\n QueryList,\n Renderer2,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\n\nimport {\n categories,\n Emoji,\n EmojiCategory,\n EmojiData,\n EmojiEvent,\n} from '@ctrl/ngx-emoji-mart/ngx-emoji';\nimport { CategoryComponent } from './category.component';\nimport { EmojiFrequentlyService } from './emoji-frequently.service';\nimport { PreviewComponent } from './preview.component';\nimport { SearchComponent } from './search.component';\nimport * as icons from './svgs';\nimport { measureScrollbar } from './utils';\n\nconst I18N: any = {\n search: 'Search',\n emojilist: 'List of emoji',\n notfound: 'No Emoji Found',\n clear: 'Clear',\n categories: {\n search: 'Search Results',\n recent: 'Frequently Used',\n people: 'Smileys & People',\n nature: 'Animals & Nature',\n foods: 'Food & Drink',\n activity: 'Activity',\n places: 'Travel & Places',\n objects: 'Objects',\n symbols: 'Symbols',\n flags: 'Flags',\n custom: 'Custom',\n },\n skintones: {\n 1: 'Default Skin Tone',\n 2: 'Light Skin Tone',\n 3: 'Medium-Light Skin Tone',\n 4: 'Medium Skin Tone',\n 5: 'Medium-Dark Skin Tone',\n 6: 'Dark Skin Tone',\n },\n};\n\n@Component({\n selector: 'emoji-mart',\n templateUrl: './picker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class PickerComponent implements OnInit, OnDestroy {\n @Input() perLine = 9;\n @Input() totalFrequentLines = 4;\n @Input() i18n: any = {};\n @Input() style: any = {};\n @Input() title = 'Emoji Mart™';\n @Input() emoji = 'department_store';\n @Input() darkMode = !!(\n typeof matchMedia === 'function' && matchMedia('(prefers-color-scheme: dark)').matches\n );\n @Input() color = '#ae65c5';\n @Input() hideObsolete = true;\n /** all categories shown */\n @Input() categories: EmojiCategory[] = [];\n /** used to temporarily draw categories */\n @Input() activeCategories: EmojiCategory[] = [];\n @Input() set: Emoji['set'] = 'apple';\n @Input() skin: Emoji['skin'] = 1;\n /** Renders the native unicode emoji */\n @Input() isNative: Emoji['isNative'] = false;\n @Input() emojiSize: Emoji['size'] = 24;\n @Input() sheetSize: Emoji['sheetSize'] = 64;\n @Input() emojisToShowFilter?: (x: string) => boolean;\n @Input() showPreview = true;\n @Input() emojiTooltip = false;\n @Input() autoFocus = false;\n @Input() custom: any[] = [];\n @Input() hideRecent = true;\n @Input() imageUrlFn: Emoji['imageUrlFn'];\n @Input() include?: string[];\n @Input() exclude?: string[];\n @Input() notFoundEmoji = 'sleuth_or_spy';\n @Input() categoriesIcons = icons.categories;\n @Input() searchIcons = icons.search;\n @Input() useButton = false;\n @Input() enableFrequentEmojiSort = false;\n @Input() enableSearch = true;\n @Input() showSingleCategory = false;\n @Input() virtualize = false;\n @Input() virtualizeOffset = 0;\n @Input() recent?: string[];\n @Output() emojiClick = new EventEmitter<any>();\n @Output() emojiSelect = new EventEmitter<any>();\n @Output() skinChange = new EventEmitter<Emoji['skin']>();\n @ViewChild('scrollRef', { static: true }) private scrollRef!: ElementRef;\n @ViewChild(PreviewComponent, { static: false }) previewRef?: PreviewComponent;\n @ViewChild(SearchComponent, { static: false }) searchRef?: SearchComponent;\n @ViewChildren(CategoryComponent) categoryRefs!: QueryList<CategoryComponent>;\n scrollHeight = 0;\n clientHeight = 0;\n clientWidth = 0;\n selected?: string;\n nextScroll?: string;\n scrollTop?: number;\n firstRender = true;\n previewEmoji: any;\n animationFrameRequestId: number | null = null;\n NAMESPACE = 'emoji-mart';\n measureScrollbar = 0;\n RECENT_CATEGORY: EmojiCategory = {\n id: 'recent',\n name: 'Recent',\n emojis: null,\n };\n SEARCH_CATEGORY: EmojiCategory = {\n id: 'search',\n name: 'Search',\n emojis: null,\n anchor: false,\n };\n CUSTOM_CATEGORY: EmojiCategory = {\n id: 'custom',\n name: 'Custom',\n emojis: [],\n };\n private scrollListener!: () => void;\n\n @Input()\n backgroundImageFn: Emoji['backgroundImageFn'] = (set: string, sheetSize: number) =>\n `https://unpkg.com/emoji-datasource-${this.set}@6.0.0/img/${this.set}/sheets-256/${this.sheetSize}.png`\n\n constructor(\n private ngZone: NgZone,\n private renderer: Renderer2,\n private ref: ChangeDetectorRef,\n private frequently: EmojiFrequentlyService,\n @Inject(PLATFORM_ID) private platformId: string,\n ) {}\n\n ngOnInit() {\n // measure scroll\n this.measureScrollbar = measureScrollbar();\n\n this.i18n = { ...I18N, ...this.i18n };\n this.i18n.categories = { ...I18N.categories, ...this.i18n.categories };\n this.skin =\n JSON.parse(\n (isPlatformBrowser(this.platformId) && localStorage.getItem(`${this.NAMESPACE}.skin`)) ||\n 'null',\n ) || this.skin;\n\n const allCategories = [...categories];\n\n if (this.custom.length > 0) {\n this.CUSTOM_CATEGORY.emojis = this.custom.map(emoji => {\n return {\n ...emoji,\n // `<Category />` expects emoji to have an `id`.\n id: emoji.shortNames[0],\n custom: true,\n };\n });\n\n allCategories.push(this.CUSTOM_CATEGORY);\n }\n\n if (this.include !== undefined) {\n allCategories.sort((a, b) => {\n if (this.include!.indexOf(a.id) > this.include!.indexOf(b.id)) {\n return 1;\n }\n return -1;\n });\n }\n\n for (const category of allCategories) {\n const isIncluded =\n this.include && this.include.length ? this.include.indexOf(category.id) > -1 : true;\n const isExcluded =\n this.exclude && this.exclude.length ? this.exclude.indexOf(category.id) > -1 : false;\n if (!isIncluded || isExcluded) {\n continue;\n }\n\n if (this.emojisToShowFilter) {\n const newEmojis = [];\n\n const { emojis } = category;\n // tslint:disable-next-line: prefer-for-of\n for (let emojiIndex = 0; emojiIndex < emojis!.length; emojiIndex++) {\n const emoji = emojis![emojiIndex];\n if (this.emojisToShowFilter(emoji)) {\n newEmojis.push(emoji);\n }\n }\n\n if (newEmojis.length) {\n const newCategory = {\n emojis: newEmojis,\n name: category.name,\n id: category.id,\n };\n\n this.categories.push(newCategory);\n }\n } else {\n this.categories.push(category);\n }\n\n this.categoriesIcons = { ...icons.categories, ...this.categoriesIcons };\n this.searchIcons = { ...icons.search, ...this.searchIcons };\n }\n\n const includeRecent =\n this.include && this.include.length\n ? this.include.indexOf(this.RECENT_CATEGORY.id) > -1\n : true;\n const excludeRecent =\n this.exclude && this.exclude.length\n ? this.exclude.indexOf(this.RECENT_CATEGORY.id) > -1\n : false;\n if (includeRecent && !excludeRecent) {\n this.hideRecent = false;\n this.categories.unshift(this.RECENT_CATEGORY);\n }\n\n if (this.categories[0]) {\n this.categories[0].first = true;\n }\n\n this.categories.unshift(this.SEARCH_CATEGORY);\n this.selected = this.categories.filter(category => category.first)[0].name;\n\n // Need to be careful if small number of categories\n const categoriesToLoadFirst = Math.min(this.categories.length, 3);\n this.setActiveCategories(\n (this.activeCategories = this.categories.slice(0, categoriesToLoadFirst)),\n );\n\n // Trim last active category\n const lastActiveCategoryEmojis = this.categories[categoriesToLoadFirst - 1].emojis!.slice();\n this.categories[categoriesToLoadFirst - 1].emojis = lastActiveCategoryEmojis.slice(0, 60);\n\n setTimeout(() => {\n // Restore last category\n this.categories[categoriesToLoadFirst - 1].emojis = lastActiveCategoryEmojis;\n this.setActiveCategories(this.categories);\n // The `setTimeout` will trigger the change detection, but since we're inside\n // the OnPush component we can run change detection locally starting from this\n // component and going down to the children.\n this.ref.detectChanges();\n\n // tslint:disable-next-line: no-unused-expression\n isPlatformBrowser(this.platformId) &&\n this.ngZone.runOutsideAngular(() => {\n // The `updateCategoriesSize` doesn't change properties that are used\n // in templates, thus this is run in the context of the root zone to avoid\n // running change detection.\n requestAnimationFrame(() => {\n this.updateCategoriesSize();\n });\n });\n });\n\n this.ngZone.runOutsideAngular(() => {\n // DOM events that are listened by Angular inside the template trigger change detection\n // and also wrapped into additional functions that call `markForCheck()`. We listen `scroll`\n // in the context of the root zone since it will not trigger change detection each time\n // the `scroll` event is dispatched.\n this.scrollListener = this.renderer.listen(this.scrollRef.nativeElement, 'scroll', () => {\n this.handleScroll();\n });\n });\n }\n\n ngOnDestroy(): void {\n this.scrollListener();\n // This is called here because the component might be destroyed\n // but there will still be a `requestAnimationFrame` callback in the queue\n // that calls `detectChanges()` on the `ViewRef`. This will lead to a runtime\n // exception if the `detectChanges()` is called after the `ViewRef` is destroyed.\n this.cancelAnimationFrame();\n }\n\n setActiveCategories(categoriesToMakeActive: Array<EmojiCategory>) {\n if (this.showSingleCategory) {\n this.activeCategories = categoriesToMakeActive.filter(\n x => x.name === this.selected || x === this.SEARCH_CATEGORY,\n );\n } else {\n this.activeCategories = categoriesToMakeActive;\n }\n }\n updateCategoriesSize() {\n this.categoryRefs.forEach(component => component.memoizeSize());\n\n if (this.scrollRef) {\n const target = this.scrollRef.nativeElement;\n this.scrollHeight = target.scrollHeight;\n this.clientHeight = target.clientHeight;\n this.clientWidth = target.clientWidth;\n }\n }\n handleAnchorClick($event: { category: EmojiCategory; index: number }) {\n this.updateCategoriesSize();\n this.selected = $event.category.name;\n this.setActiveCategories(this.categories);\n\n if (this.SEARCH_CATEGORY.emojis) {\n this.handleSearch(null);\n this.searchRef?.clear();\n this.handleAnchorClick($event);\n return;\n }\n\n const component = this.categoryRefs.find(n => n.id === $event.category.id);\n if (component) {\n let { top } = component;\n\n if ($event.category.first) {\n top = 0;\n } else {\n top += 1;\n }\n this.scrollRef.nativeElement.scrollTop = top;\n }\n this.nextScroll = $event.category.name;\n\n // handle component scrolling to load emojis\n for (const category of this.categories) {\n const componentToScroll = this.categoryRefs.find(({ id }) => id === category.id);\n componentToScroll?.handleScroll(this.scrollRef.nativeElement.scrollTop);\n }\n }\n categoryTrack(index: number, item: any) {\n return item.id;\n }\n handleScroll(noSelectionChange = false) {\n if (this.nextScroll) {\n this.selected = this.nextScroll;\n this.nextScroll = undefined;\n this.ref.detectChanges();\n return;\n }\n if (!this.scrollRef) {\n return;\n }\n if (this.showSingleCategory) {\n return;\n }\n\n let activeCategory: EmojiCategory | undefined;\n if (this.SEARCH_CATEGORY.emojis) {\n activeCategory = this.SEARCH_CATEGORY;\n } else {\n const target = this.scrollRef.nativeElement;\n // check scroll is not at bottom\n if (target.scrollTop === 0) {\n // hit the TOP\n activeCategory = this.categories.find(n => n.first === true);\n } else if (target.scrollHeight - target.scrollTop === this.clientHeight) {\n // scrolled to bottom activate last category\n activeCategory = this.categories[this.categories.length - 1];\n } else {\n // scrolling\n for (const category of this.categories) {\n const component = this.categoryRefs.find(({ id }) => id === category.id);\n const active: boolean | undefined = component?.handleScroll(target.scrollTop);\n if (active) {\n activeCategory = category;\n }\n }\n }\n\n this.scrollTop = target.scrollTop;\n }\n // This will allow us to run the change detection only when the category changes.\n if (!noSelectionChange && activeCategory && activeCategory.name !== this.selected) {\n this.selected = activeCategory.name;\n this.ref.detectChanges();\n } else if (noSelectionChange) {\n this.ref.detectChanges();\n }\n }\n handleSearch($emojis: any[] | null) {\n this.SEARCH_CATEGORY.emojis = $emojis;\n for (const component of this.categoryRefs.toArray()) {\n if (component.name === 'Search') {\n component.emojis = $emojis;\n component.updateDisplay($emojis ? 'block' : 'none');\n } else {\n component.updateDisplay($emojis ? 'none' : 'block');\n }\n }\n\n this.scrollRef.nativeElement.scrollTop = 0;\n this.handleScroll();\n }\n\n handleEnterKey($event: Event, emoji?: EmojiData) {\n if (!emoji) {\n if (this.SEARCH_CATEGORY.emojis !== null && this.SEARCH_CATEGORY.emojis.length) {\n emoji = this.SEARCH_CATEGORY.emojis[0];\n if (emoji) {\n this.emojiSelect.emit({ $event, emoji });\n } else {\n return;\n }\n }\n }\n\n if (!this.hideRecent && !this.recent && emoji) {\n this.frequently.add(emoji);\n }\n\n const component = this.categoryRefs.toArray()[1];\n if (component && this.enableFrequentEmojiSort) {\n component.getEmojis();\n component.ref.markForCheck();\n }\n }\n handleEmojiOver($event: EmojiEvent) {\n if (!this.showPreview || !this.previewRef) {\n return;\n }\n\n const emojiData = this.CUSTOM_CATEGORY.emojis!.find(\n (customEmoji: any) => customEmoji.id === $event.emoji.id,\n );\n if (emojiData) {\n $event.emoji = { ...emojiData };\n }\n\n this.previewEmoji = $event.emoji;\n this.cancelAnimationFrame();\n this.ref?.detectChanges();\n }\n handleEmojiLeave() {\n if (!this.showPreview || !this.previewRef) {\n return;\n }\n\n this.ngZone.runOutsideAngular(() => {\n this.animationFrameRequestId = requestAnimationFrame(() => {\n this.previewEmoji = null;\n this.ref.detectChanges();\n });\n });\n }\n handleEmojiClick($event: EmojiEvent) {\n this.emojiClick.emit($event);\n this.emojiSelect.emit($event);\n this.handleEnterKey($event.$event, $event.emoji);\n }\n handleSkinChange(skin: Emoji['skin']) {\n this.skin = skin;\n localStorage.setItem(`${this.NAMESPACE}.skin`, String(skin));\n this.skinChange.emit(skin);\n }\n getWidth(): string {\n if (this.style && this.style.width) {\n return this.style.width;\n }\n return this.perLine * (this.emojiSize + 12) + 12 + 2 + this.measureScrollbar + 'px';\n }\n\n private cancelAnimationFrame(): void {\n if (this.animationFrameRequestId !== null) {\n cancelAnimationFrame(this.animationFrameRequestId);\n this.animationFrameRequestId = null;\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { Emoji } from '@ctrl/ngx-emoji-mart/ngx-emoji';\n\n@Component({\n selector: 'emoji-skins',\n template: `\n <section\n class=\"emoji-mart-skin-swatches\"\n [class.opened]=\"opened\"\n >\n <span\n *ngFor=\"let skinTone of skinTones\"\n class=\"emoji-mart-skin-swatch\"\n [class.selected]=\"skinTone === skin\"\n >\n <span\n (click)=\"this.handleClick(skinTone)\"\n (keyup.enter)=\"handleClick(skinTone)\"\n (keyup.space)=\"handleClick(skinTone)\"\n class=\"emoji-mart-skin emoji-mart-skin-tone-{{ skinTone }}\"\n role=\"button\"\n [tabIndex]=\"tabIndex(skinTone)\"\n [attr.aria-hidden]=\"!isVisible(skinTone)\"\n [attr.aria-pressed]=\"pressed(skinTone)\"\n [attr.aria-haspopup]=\"!!isSelected(skinTone)\"\n [attr.aria-expanded]=\"expanded(skinTone)\"\n [attr.aria-label]=\"i18n.skintones[skinTone]\"\n [title]=\"i18n.skintones[skinTone]\"\n ></span>\n </span>\n </section>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class SkinComponent {\n /** currently selected skin */\n @Input() skin?: Emoji['skin'];\n @Input() i18n: any;\n @Output() changeSkin = new EventEmitter<number>();\n opened = false;\n skinTones = [1, 2, 3, 4, 5, 6];\n\n toggleOpen() {\n this.opened = !this.opened;\n }\n\n isSelected(skinTone: Emoji['skin']): boolean {\n return skinTone === this.skin;\n }\n\n isVisible(skinTone: Emoji['skin']): boolean {\n return this.opened || this.isSelected(skinTone);\n }\n\n pressed(skinTone: Emoji['skin']) {\n return this.opened ? !!this.isSelected(skinTone) : '';\n }\n\n tabIndex(skinTone: Emoji['skin']) {\n return this.isVisible(skinTone) ? '0' : '';\n }\n\n expanded(skinTone: Emoji['skin']) {\n return this.isSelected(skinTone) ? this.opened : '';\n }\n\n handleClick(skin: number) {\n if (!this.opened) {\n this.opened = true;\n return;\n }\n this.opened = false;\n if (skin !== this.skin) {\n this.changeSkin.emit(skin);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { EmojiModule } from '@ctrl/ngx-emoji-mart/ngx-emoji';\nimport { AnchorsComponent } from './anchors.component';\nimport { CategoryComponent } from './category.component';\nimport { PickerComponent } from './picker.component';\nimport { PreviewComponent } from './preview.component';\nimport { SearchComponent } from './search.component';\nimport { SkinComponent } from './skins.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, EmojiModule],\n exports: [\n PickerComponent,\n AnchorsComponent,\n CategoryComponent,\n SearchComponent,\n PreviewComponent,\n SkinComponent,\n ],\n declarations: [\n PickerComponent,\n AnchorsComponent,\n CategoryComponent,\n SearchComponent,\n PreviewComponent,\n SkinComponent,\n ],\n})\nexport class PickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["EventEmitter","Component","ChangeDetectionStrategy","Input","Output","isPlatformBrowser","Injectable","Inject","PLATFORM_ID","Subject","ChangeDetectorRef","EmojiService","ViewChild","categories","icons.categories","icons.search","NgZone","Renderer2","ViewChildren","NgModule","CommonModule","FormsModule","EmojiModule"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@ctrl/ngx-emoji-mart/ngx-emoji"),require("rxjs"),require("@angular/common"),require("@angular/forms")):"function"==typeof define&&define.amd?define("@ctrl/ngx-emoji-mart",["exports","@angular/core","@ctrl/ngx-emoji-mart/ngx-emoji","rxjs","@angular/common","@angular/forms"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).ctrl=e.ctrl||{},e.ctrl["ngx-emoji-mart"]={}),e.ng.core,e.ctrl["ngx-emoji-mart"]["ngx-emoji"],e.rxjs,e.ng.common,e.ng.forms)}(this,(function(e,t,i,n,o,r){"use strict";var s=function(){function e(){this.categories=[],this.icons={},this.anchorClick=new t.EventEmitter}return e.prototype.trackByFn=function(e,t){return t.id},e.prototype.handleClick=function(e,t){this.anchorClick.emit({category:this.categories[t],index:t})},e}();s.decorators=[{type:t.Component,args:[{selector:"emoji-mart-anchors",template:'\n <div class="emoji-mart-anchors">\n <ng-template ngFor let-category [ngForOf]="categories" let-idx="index" [ngForTrackBy]="trackByFn">\n <span\n *ngIf="category.anchor !== false"\n [attr.title]="i18n.categories[category.id]"\n (click)="this.handleClick($event, idx)"\n class="emoji-mart-anchor"\n [class.emoji-mart-anchor-selected]="category.name === selected"\n [style.color]="category.name === selected ? color : null"\n >\n <div>\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">\n <path [attr.d]="icons[category.id]" />\n </svg>\n </div>\n <span class="emoji-mart-anchor-bar" [style.background-color]="color"></span>\n </span>\n </ng-template>\n </div>\n ',changeDetection:t.ChangeDetectionStrategy.OnPush,preserveWhitespaces:!1}]}],s.propDecorators={categories:[{type:t.Input}],color:[{type:t.Input}],selected:[{type:t.Input}],i18n:[{type:t.Input}],icons:[{type:t.Input}],anchorClick:[{type:t.Output}]};Object.create;function a(e){var t="function"==typeof Symbol&&Symbol.iterator,i=t&&e[t],n=0;if(i)return i.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function l(e,t){var i="function"==typeof Symbol&&e[Symbol.iterator];if(!i)return e;var n,o,r=i.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=r.next()).done;)s.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(i=r.return)&&i.call(r)}finally{if(o)throw o.error}}return s}Object.create;var c=function(){function e(e){this.platformId=e,this.NAMESPACE="emoji-mart",this.frequently=null,this.defaults={},this.initialized=!1,this.DEFAULTS=["+1","grinning","kissing_heart","heart_eyes","laughing","stuck_out_tongue_winking_eye","sweat_smile","joy","scream","disappointed","unamused","weary","sob","sunglasses","heart","poop"]}return e.prototype.init=function(){this.frequently=JSON.parse(o.isPlatformBrowser(this.platformId)&&localStorage.getItem(this.NAMESPACE+".frequently")||"null"),this.initialized=!0},e.prototype.add=function(e){this.initialized||this.init(),this.frequently||(this.frequently=this.defaults),this.frequently[e.id]||(this.frequently[e.id]=0),this.frequently[e.id]+=1,o.isPlatformBrowser(this.platformId)&&(localStorage.setItem(this.NAMESPACE+".last",e.id),localStorage.setItem(this.NAMESPACE+".frequently",JSON.stringify(this.frequently)))},e.prototype.get=function(e,t){var i=this;if(this.initialized||this.init(),null===this.frequently){this.defaults={};for(var n=[],r=0;r<e;r++)this.defaults[this.DEFAULTS[r]]=e-r,n.push(this.DEFAULTS[r]);return n}var s=e*t,a=Object.keys(this.frequently).sort((function(e,t){return i.frequently[e]-i.frequently[t]})).reverse().slice(0,s),l=o.isPlatformBrowser(this.platformId)&&localStorage.getItem(this.NAMESPACE+".last");return l&&!a.includes(l)&&(a.pop(),a.push(l)),a},e}();c.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new c(t.ɵɵinject(t.PLATFORM_ID))},token:c,providedIn:"root"}),c.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],c.ctorParameters=function(){return[{type:String,decorators:[{type:t.Inject,args:[t.PLATFORM_ID]}]}]};var h=function(){function e(e,i,o){this.ref=e,this.emojiService=i,this.frequently=o,this.hasStickyPosition=!0,this.name="",this.perLine=9,this.totalFrequentLines=4,this.recent=[],this.custom=[],this.hideObsolete=!0,this.virtualize=!1,this.virtualizeOffset=0,this.emojiOver=new t.EventEmitter,this.emojiLeave=new t.EventEmitter,this.emojiClick=new t.EventEmitter,this.containerStyles={},this.filteredEmojisSubject=new n.Subject,this.filteredEmojis$=this.filteredEmojisSubject.asObservable(),this.labelStyles={},this.labelSpanStyles={},this.margin=0,this.minMargin=0,this.maxMargin=0,this.top=0,this.rows=0}return e.prototype.ngOnInit=function(){this.emojis=this.getEmojis(),this.emojis||(this.containerStyles={display:"none"}),this.hasStickyPosition||(this.labelStyles={height:28})},e.prototype.ngOnChanges=function(e){var t,i,n,o;(null===(i=null===(t=e.emojis)||void 0===t?void 0:t.currentValue)||void 0===i?void 0:i.length)!==(null===(o=null===(n=e.emojis)||void 0===n?void 0:n.previousValue)||void 0===o?void 0:o.length)&&this.ngAfterViewInit()},e.prototype.ngAfterViewInit=function(){var e,t;if(this.virtualize&&(null===(e=this.emojis)||void 0===e?void 0:e.length)){this.emojis=this.filterEmojis();var i=this.container.nativeElement.getBoundingClientRect().width,n=Math.floor(i/(this.emojiSize+12));this.rows=Math.ceil(this.emojis.length/n),this.containerStyles=Object.assign(Object.assign({},this.containerStyles),{minHeight:this.rows*(this.emojiSize+12)+28+"px"}),null===(t=this.ref)||void 0===t||t.detectChanges(),this.handleScroll(this.container.nativeElement.parentNode.parentNode.scrollTop)}},e.prototype.memoizeSize=function(){var e=this.container.nativeElement.parentNode.parentNode,t=this.container.nativeElement.getBoundingClientRect(),i=t.top,n=t.height,o=e.getBoundingClientRect().top,r=this.label.nativeElement.getBoundingClientRect().height;this.top=i-o+e.scrollTop,this.maxMargin=0===n?0:n-r},e.prototype.handleScroll=function(e){var t=e-this.top;if(t=(t=t<this.minMargin?this.minMargin:t)>this.maxMargin?this.maxMargin:t,this.virtualize){var i=this.container.nativeElement.getBoundingClientRect(),n=i.top,o=i.height,r=this.container.nativeElement.parentNode.parentNode.clientHeight;r+(r+this.virtualizeOffset)>=n&&-o-(r+this.virtualizeOffset)<=n?this.filteredEmojisSubject.next(this.emojis):this.filteredEmojisSubject.next([])}return t===this.margin?(this.ref.detectChanges(),!1):(this.hasStickyPosition||(this.label.nativeElement.style.top=t+"px"),this.margin=t,this.ref.detectChanges(),!0)},e.prototype.getEmojis=function(){var e=this;if("Recent"===this.name){var t=this.recent||this.frequently.get(this.perLine,this.totalFrequentLines);if(t&&t.length||(t=this.frequently.get(this.perLine,this.totalFrequentLines)),t.length&&(this.emojis=t.map((function(t){var i=e.custom.filter((function(e){return e.id===t}))[0];return i||t})).filter((function(t){return!!e.emojiService.getData(t)}))),(!this.emojis||0===this.emojis.length)&&t.length>0)return null}return this.emojis&&(this.emojis=this.emojis.slice(0)),this.emojis},e.prototype.updateDisplay=function(e){this.containerStyles.display=e,this.getEmojis(),this.ref.detectChanges()},e.prototype.trackById=function(e,t){return t},e.prototype.filterEmojis=function(){var e,t,i=[];try{for(var n=a(this.emojis||[]),o=n.next();!o.done;o=n.next()){var r=o.value;if(r){var s=this.emojiService.getData(r);!s||s.obsoletedBy&&this.hideObsolete||!s.unified&&!s.custom||i.push(r)}}}catch(t){e={error:t}}finally{try{o&&!o.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}return i},e}();function m(e){return e.reduce((function(e,t){return e.includes(t)||e.push(t),e}),[])}function u(e,t){var i=m(e),n=m(t);return i.filter((function(e){return n.indexOf(e)>=0}))}h.decorators=[{type:t.Component,args:[{selector:"emoji-category",template:'\n <section\n #container\n class="emoji-mart-category"\n [attr.aria-label]="i18n.categories[id]"\n [class.emoji-mart-no-results]="emojis && !emojis.length"\n [ngStyle]="containerStyles"\n >\n <div class="emoji-mart-category-label" [ngStyle]="labelStyles" [attr.data-name]="name">\n \x3c!-- already labeled by the section aria-label --\x3e\n <span #label [ngStyle]="labelSpanStyles" aria-hidden="true">\n {{ i18n.categories[id] }}\n </span>\n </div>\n\n <div\n *ngIf="virtualize; else normalRenderTemplate"\n >\n <div *ngIf="filteredEmojis$ | async as filteredEmojis">\n <ngx-emoji\n *ngFor="let emoji of filteredEmojis; trackBy: trackById"\n [emoji]="emoji"\n [size]="emojiSize"\n [skin]="emojiSkin"\n [isNative]="emojiIsNative"\n [set]="emojiSet"\n [sheetSize]="emojiSheetSize"\n [forceSize]="emojiForceSize"\n [tooltip]="emojiTooltip"\n [backgroundImageFn]="emojiBackgroundImageFn"\n [imageUrlFn]="emojiImageUrlFn"\n [hideObsolete]="hideObsolete"\n [useButton]="emojiUseButton"\n (emojiOver)="emojiOver.emit($event)"\n (emojiLeave)="emojiLeave.emit($event)"\n (emojiClick)="emojiClick.emit($event)"\n ></ngx-emoji>\n </div>\n </div>\n\n <div *ngIf="emojis && !emojis.length">\n <div>\n <ngx-emoji\n [emoji]="notFoundEmoji"\n size="38"\n [skin]="emojiSkin"\n [isNative]="emojiIsNative"\n [set]="emojiSet"\n [sheetSize]="emojiSheetSize"\n [forceSize]="emojiForceSize"\n [tooltip]="emojiTooltip"\n [backgroundImageFn]="emojiBackgroundImageFn"\n [useButton]="emojiUseButton"\n ></ngx-emoji>\n </div>\n\n <div class="emoji-mart-no-results-label">\n {{ i18n.notfound }}\n </div>\n </div>\n </section>\n\n <ng-template #normalRenderTemplate>\n <div *ngIf="emojis">\n <ngx-emoji\n *ngFor="let emoji of emojis; trackBy: trackById"\n [emoji]="emoji"\n [size]="emojiSize"\n [skin]="emojiSkin"\n [isNative]="emojiIsNative"\n [set]="emojiSet"\n [sheetSize]="emojiSheetSize"\n [forceSize]="emojiForceSize"\n [tooltip]="emojiTooltip"\n [backgroundImageFn]="emojiBackgroundImageFn"\n [imageUrlFn]="emojiImageUrlFn"\n [hideObsolete]="hideObsolete"\n (emojiOver)="emojiOver.emit($event)"\n (emojiLeave)="emojiLeave.emit($event)"\n (emojiClick)="emojiClick.emit($event)"\n ></ngx-emoji>\n </div>\n </ng-template>\n ',changeDetection:t.ChangeDetectionStrategy.OnPush,preserveWhitespaces:!1}]}],h.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:i.EmojiService},{type:c}]},h.propDecorators={emojis:[{type:t.Input}],hasStickyPosition:[{type:t.Input}],name:[{type:t.Input}],perLine:[{type:t.Input}],totalFrequentLines:[{type:t.Input}],recent:[{type:t.Input}],custom:[{type:t.Input}],i18n:[{type:t.Input}],id:[{type:t.Input}],hideObsolete:[{type:t.Input}],notFoundEmoji:[{type:t.Input}],virtualize:[{type:t.Input}],virtualizeOffset:[{type:t.Input}],emojiIsNative:[{type:t.Input}],emojiSkin:[{type:t.Input}],emojiSize:[{type:t.Input}],emojiSet:[{type:t.Input}],emojiSheetSize:[{type:t.Input}],emojiForceSize:[{type:t.Input}],emojiTooltip:[{type:t.Input}],emojiBackgroundImageFn:[{type:t.Input}],emojiImageUrlFn:[{type:t.Input}],emojiUseButton:[{type:t.Input}],emojiOver:[{type:t.Output}],emojiLeave:[{type:t.Output}],emojiClick:[{type:t.Output}],container:[{type:t.ViewChild,args:["container",{static:!0}]}],label:[{type:t.ViewChild,args:["label",{static:!0}]}]};var p=function(){function e(e){var t,i,n,o;this.emojiService=e,this.originalPool={},this.index={},this.emojisList={},this.emoticonsList={},this.emojiSearch={};try{for(var r=a(this.emojiService.emojis),s=r.next();!s.done;s=r.next()){var l=s.value,c=l.shortNames,h=l.emoticons,m=c[0];try{for(var u=(n=void 0,a(h)),p=u.next();!p.done;p=u.next()){var d=p.value;this.emoticonsList[d]||(this.emoticonsList[d]=m)}}catch(e){n={error:e}}finally{try{p&&!p.done&&(o=u.return)&&o.call(u)}finally{if(n)throw n.error}}this.emojisList[m]=this.emojiService.getSanitizedData(m),this.originalPool[m]=l}}catch(e){t={error:e}}finally{try{s&&!s.done&&(i=r.return)&&i.call(r)}finally{if(t)throw t.error}}}return e.prototype.addCustomToPool=function(e,t){var i,n;try{for(var o=a(e),r=o.next();!r.done;r=o.next()){var s=r.value,l=s.id||s.shortNames[0];l&&!t[l]&&(t[l]=this.emojiService.getData(s),this.emojisList[l]=this.emojiService.getSanitizedData(s))}}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}},e.prototype.search=function(e,t,n,o,r,s){var l,c,h,m,p,d,g=this;void 0===n&&(n=75),void 0===o&&(o=[]),void 0===r&&(r=[]),void 0===s&&(s=[]),this.addCustomToPool(s,this.originalPool);var f=this.originalPool;if(e.length){if("-"===e||"-1"===e)return[this.emojisList[-1]];if("+"===e||"+1"===e)return[this.emojisList["+1"]];var y,v=e.toLowerCase().split(/[\s|,|\-|_]+/);if(v.length>2&&(v=[v[0],v[1]]),o.length||r.length){f={};try{for(var j=a(i.categories||[]),S=j.next();!S.done;S=j.next()){var I=S.value,C=!o||!o.length||o.indexOf(I.id)>-1,k=!(!r||!r.length)&&r.indexOf(I.id)>-1;if(C&&!k)try{for(var E=(h=void 0,a(I.emojis||[])),b=E.next();!b.done;b=E.next()){var w=b.value,O=this.emojiService.getData(w);f[null!==(p=null==O?void 0:O.id)&&void 0!==p?p:""]=O}}catch(e){h={error:e}}finally{try{b&&!b.done&&(m=E.return)&&m.call(E)}finally{if(h)throw h.error}}}}catch(e){l={error:e}}finally{try{S&&!S.done&&(c=j.return)&&c.call(j)}finally{if(l)throw l.error}}if(s.length){var x=!o||!o.length||o.indexOf("custom")>-1,F=!(!r||!r.length)&&r.indexOf("custom")>-1;x&&!F&&this.addCustomToPool(s,f)}}d=(y=v.map((function(e){for(var t=f,i=g.index,n=0,o=function(o){var r,s,l=e[o];if(n++,i[l]||(i[l]={}),!(i=i[l]).results){var c={};i.results=[],i.pool={};try{for(var h=(r=void 0,a(Object.keys(t))),m=h.next();!m.done;m=h.next()){var u=m.value,p=t[u];g.emojiSearch[u]||(g.emojiSearch[u]=g.buildSearch(p.short_names,p.name,p.id,p.keywords,p.emoticons));var d=g.emojiSearch[u],f=e.substr(0,n),y=d.indexOf(f);if(-1!==y){var v=y+1;f===u&&(v=0),i.results.push(g.emojisList[u]),i.pool[u]=p,c[u]=v}}}catch(e){r={error:e}}finally{try{m&&!m.done&&(s=h.return)&&s.call(h)}finally{if(r)throw r.error}}i.results.sort((function(e,t){return c[e.id]-c[t.id]}))}t=i.pool},r=0;r<e.length;r++)o(r);return i.results})).filter((function(e){return e}))).length>1?u.apply(null,y):y.length?y[0]:[]}return d&&(t&&(d=d.filter((function(e){return!(!e||!e.id)&&t(g.emojiService.names[e.id])}))),d&&d.length>n&&(d=d.slice(0,n))),d||null},e.prototype.buildSearch=function(e,t,i,n,o){var r=[],s=function(e,t){var i,n,o,s;if(e){var l=Array.isArray(e)?e:[e];try{for(var c=a(l),h=c.next();!h.done;h=c.next()){var m=h.value,u=t?m.split(/[-|_|\s]+/):[m];try{for(var p=(o=void 0,a(u)),d=p.next();!d.done;d=p.next()){var g=d.value;g=g.toLowerCase(),r.includes(g)||r.push(g)}}catch(e){o={error:e}}finally{try{d&&!d.done&&(s=p.return)&&s.call(p)}finally{if(o)throw o.error}}}}catch(e){i={error:e}}finally{try{h&&!h.done&&(n=c.return)&&n.call(c)}finally{if(i)throw i.error}}}};return s(e,!0),s(t,!0),s(i,!0),s(n,!0),s(o,!1),r.join(",")},e}();p.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new p(t.ɵɵinject(i.EmojiService))},token:p,providedIn:"root"}),p.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],p.ctorParameters=function(){return[{type:i.EmojiService}]};var d=function(){function e(e,i){this.ref=e,this.emojiService=i,this.skinChange=new t.EventEmitter,this.emojiData={}}return e.prototype.ngOnChanges=function(){var e;if(this.emoji){this.emojiData=this.emojiService.getData(this.emoji,this.emojiSkin,this.emojiSet);var t=[],i=[];(this.emojiData.emoticons||[]).forEach((function(e){t.indexOf(e.toLowerCase())>=0||(t.push(e.toLowerCase()),i.push(e))})),this.listedEmoticons=i,null===(e=this.ref)||void 0===e||e.detectChanges()}},e}();d.decorators=[{type:t.Component,args:[{selector:"emoji-preview",template:'\n <div class="emoji-mart-preview" *ngIf="emoji && emojiData">\n <div class="emoji-mart-preview-emoji">\n <ngx-emoji\n [emoji]="emoji"\n [size]="38"\n [isNative]="emojiIsNative"\n [skin]="emojiSkin"\n [size]="emojiSize"\n [set]="emojiSet"\n [sheetSize]="emojiSheetSize"\n [backgroundImageFn]="emojiBackgroundImageFn"\n [imageUrlFn]="emojiImageUrlFn"\n ></ngx-emoji>\n </div>\n\n <div class="emoji-mart-preview-data">\n <div class="emoji-mart-preview-name">{{ emojiData.name }}</div>\n <div class="emoji-mart-preview-shortname">\n <span\n class="emoji-mart-preview-shortname"\n *ngFor="let short_name of emojiData.shortNames"\n >\n :{{ short_name }}:\n </span>\n </div>\n <div class="emoji-mart-preview-emoticons">\n <span class="emoji-mart-preview-emoticon" *ngFor="let emoticon of listedEmoticons">\n {{ emoticon }}\n </span>\n </div>\n </div>\n </div>\n\n <div class="emoji-mart-preview" *ngIf="!emoji">\n <div class="emoji-mart-preview-emoji">\n <ngx-emoji\n *ngIf="idleEmoji && idleEmoji.length"\n [isNative]="emojiIsNative"\n [skin]="emojiSkin"\n [set]="emojiSet"\n [emoji]="idleEmoji"\n [backgroundImageFn]="emojiBackgroundImageFn"\n [size]="38"\n [imageUrlFn]="emojiImageUrlFn"\n ></ngx-emoji>\n </div>\n\n <div class="emoji-mart-preview-data">\n <span class="emoji-mart-title-label">{{ title }}</span>\n </div>\n\n <div class="emoji-mart-preview-skins">\n <emoji-skins [skin]="emojiSkin" (changeSkin)="skinChange.emit($event)" [i18n]="i18n">\n </emoji-skins>\n </div>\n </div>\n ',changeDetection:t.ChangeDetectionStrategy.OnPush,preserveWhitespaces:!1}]}],d.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:i.EmojiService}]},d.propDecorators={title:[{type:t.Input}],emoji:[{type:t.Input}],idleEmoji:[{type:t.Input}],i18n:[{type:t.Input}],emojiIsNative:[{type:t.Input}],emojiSkin:[{type:t.Input}],emojiSize:[{type:t.Input}],emojiSet:[{type:t.Input}],emojiSheetSize:[{type:t.Input}],emojiBackgroundImageFn:[{type:t.Input}],emojiImageUrlFn:[{type:t.Input}],skinChange:[{type:t.Output}]};var g=0,f=function(){function e(e){this.emojiSearch=e,this.maxResults=75,this.autoFocus=!1,this.include=[],this.exclude=[],this.custom=[],this.searchResults=new t.EventEmitter,this.enterKey=new t.EventEmitter,this.isSearching=!1,this.query="",this.inputId="emoji-mart-search-"+ ++g}return e.prototype.ngOnInit=function(){this.icon=this.icons.search},e.prototype.ngAfterViewInit=function(){this.autoFocus&&this.inputRef.nativeElement.focus()},e.prototype.clear=function(){this.query="",this.handleSearch(""),this.inputRef.nativeElement.focus()},e.prototype.handleEnterKey=function(e){this.query&&(this.enterKey.emit(e),e.preventDefault())},e.prototype.handleSearch=function(e){""===e?(this.icon=this.icons.search,this.isSearching=!1):(this.icon=this.icons.delete,this.isSearching=!0);var t=this.emojiSearch.search(this.query,this.emojisToShowFilter,this.maxResults,this.include,this.exclude,this.custom);this.searchResults.emit(t)},e.prototype.handleChange=function(){this.handleSearch(this.query)},e}();f.decorators=[{type:t.Component,args:[{selector:"emoji-search",template:'\n <div class="emoji-mart-search">\n <input\n [id]="inputId"\n #inputRef\n type="search"\n (keyup.enter)="handleEnterKey($event)"\n [placeholder]="i18n.search"\n [autofocus]="autoFocus"\n [(ngModel)]="query"\n (ngModelChange)="handleChange()"\n />\n \x3c!--\n Use a <label> in addition to the placeholder for accessibility, but place it off-screen\n http://www.maxability.co.in/2016/01/placeholder-attribute-and-why-it-is-not-accessible/\n --\x3e\n <label class="emoji-mart-sr-only" [htmlFor]="inputId">\n {{ i18n.search }}\n </label>\n <button\n type="button"\n class="emoji-mart-search-icon"\n (click)="clear()"\n (keyup.enter)="clear()"\n [disabled]="!isSearching"\n [attr.aria-label]="i18n.clear"\n >\n <svg\n xmlns="http://www.w3.org/2000/svg"\n viewBox="0 0 20 20"\n width="13"\n height="13"\n opacity="0.5"\n >\n <path [attr.d]="icon" />\n </svg>\n </button>\n </div>\n ',preserveWhitespaces:!1}]}],f.ctorParameters=function(){return[{type:p}]},f.propDecorators={maxResults:[{type:t.Input}],autoFocus:[{type:t.Input}],i18n:[{type:t.Input}],include:[{type:t.Input}],exclude:[{type:t.Input}],custom:[{type:t.Input}],icons:[{type:t.Input}],emojisToShowFilter:[{type:t.Input}],searchResults:[{type:t.Output}],enterKey:[{type:t.Output}],inputRef:[{type:t.ViewChild,args:["inputRef",{static:!0}]}]};var y={activity:"M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24m10 11h-5c.3-2.5 1.3-4.8 2-6.1a10 10 0 0 1 3 6.1m-9 0V2a10 10 0 0 1 4.4 1.6A18 18 0 0 0 15 11h-2zm-2 0H9a18 18 0 0 0-2.4-7.4A10 10 0 0 1 11 2.1V11zm0 2v9a10 10 0 0 1-4.4-1.6A18 18 0 0 0 9 13h2zm4 0a18 18 0 0 0 2.4 7.4 10 10 0 0 1-4.4 1.5V13h2zM5 4.9c.7 1.3 1.7 3.6 2 6.1H2a10 10 0 0 1 3-6.1M2 13h5c-.3 2.5-1.3 4.8-2 6.1A10 10 0 0 1 2 13m17 6.1c-.7-1.3-1.7-3.6-2-6.1h5a10 10 0 0 1-3 6.1",custom:"M10 1h3v21h-3zm10.186 4l1.5 2.598L3.5 18.098 2 15.5zM2 7.598L3.5 5l18.186 10.5-1.5 2.598z",flags:"M0 0l6 24h2L2 0zm21 5h-4l-1-4H4l3 12h3l1 4h13L21 5zM6.6 3h7.8l2 8H8.6l-2-8zm8.8 10l-2.9 1.9-.4-1.9h3.3zm3.6 0l-1.5-6h2l2 8H16l3-2z",foods:"M17 5c-1.8 0-2.9.4-3.7 1 .5-1.3 1.8-3 4.7-3a1 1 0 0 0 0-2c-3 0-4.6 1.3-5.5 2.5l-.2.2c-.6-1.9-1.5-3.7-3-3.7C8.5 0 7.7.3 7 1c-2 1.5-1.7 2.9-.5 4C3.6 5.2 0 7.4 0 13c0 4.6 5 11 9 11 2 0 2.4-.5 3-1 .6.5 1 1 3 1 4 0 9-6.4 9-11 0-6-4-8-7-8M8.2 2.5c.7-.5 1-.5 1-.5.4.2 1 1.4 1.4 3-1.6-.6-2.8-1.3-3-1.8l.6-.7M15 22c-1 0-1.2-.1-1.6-.4l-.1-.2a2 2 0 0 0-2.6 0l-.1.2c-.4.3-.5.4-1.6.4-2.8 0-7-5.4-7-9 0-6 4.5-6 5-6 2 0 2.5.4 3.4 1.2l.3.3a2 2 0 0 0 2.6 0l.3-.3c1-.8 1.5-1.2 3.4-1.2.5 0 5 .1 5 6 0 3.6-4.2 9-7 9",nature:"M15.5 8a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3m-7 0a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3m10.43-8h-.02c-.97 0-2.14.79-3.02 1.5A13.88 13.88 0 0 0 12 .99c-1.28 0-2.62.13-3.87.51C7.24.8 6.07 0 5.09 0h-.02C3.35 0 .07 2.67 0 7.03c-.04 2.47.28 4.23 1.04 5 .26.27.88.69 1.3.9.19 3.17.92 5.23 2.53 6.37.9.64 2.19.95 3.2 1.1-.03.2-.07.4-.07.6 0 1.77 2.35 3 4 3s4-1.23 4-3c0-.2-.04-.4-.07-.59 2.57-.38 5.43-1.87 5.92-7.58.4-.22.89-.57 1.1-.8.77-.76 1.09-2.52 1.05-5C23.93 2.67 20.65 0 18.93 0M3.23 9.13c-.24.29-.84 1.16-.9 1.24A9.67 9.67 0 0 1 2 7.08c.05-3.28 2.48-4.97 3.1-5.03.25.02.72.27 1.26.65A7.95 7.95 0 0 0 4 7.82c-.14.55-.4.86-.79 1.31M12 22c-.9 0-1.95-.7-2-1 0-.65.47-1.24 1-1.6v.6a1 1 0 1 0 2 0v-.6c.52.36 1 .95 1 1.6-.05.3-1.1 1-2 1m3-3.48v.02a4.75 4.75 0 0 0-1.26-1.02c1.09-.52 2.24-1.33 2.24-2.22 0-1.84-1.78-2.2-3.98-2.2s-3.98.36-3.98 2.2c0 .89 1.15 1.7 2.24 2.22A4.8 4.8 0 0 0 9 18.54v-.03a6.1 6.1 0 0 1-2.97-.84c-1.3-.92-1.84-3.04-1.86-6.48l.03-.04c.5-.82 1.49-1.45 1.8-3.1C6 6 7.36 4.42 8.36 3.53c1.01-.35 2.2-.53 3.59-.53 1.45 0 2.68.2 3.73.57 1 .9 2.32 2.46 2.32 4.48.31 1.65 1.3 2.27 1.8 3.1l.1.18c-.06 5.97-1.95 7.01-4.9 7.19m6.63-8.2l-.11-.2a7.59 7.59 0 0 0-.74-.98 3.02 3.02 0 0 1-.79-1.32 7.93 7.93 0 0 0-2.35-5.12c.53-.38 1-.63 1.26-.65.64.07 3.05 1.77 3.1 5.03.02 1.81-.35 3.22-.37 3.24",objects:"M12 0a9 9 0 0 0-5 16.5V21s2 3 5 3 5-3 5-3v-4.5A9 9 0 0 0 12 0zm0 2a7 7 0 1 1 0 14 7 7 0 0 1 0-14zM9 17.5a9 9 0 0 0 6 0v.8a7 7 0 0 1-3 .7 7 7 0 0 1-3-.7v-.8zm.2 3a8.9 8.9 0 0 0 2.8.5c1 0 1.9-.2 2.8-.5-.6.7-1.6 1.5-2.8 1.5-1.1 0-2.1-.8-2.8-1.5zm5.5-8.1c-.8 0-1.1-.8-1.5-1.8-.5-1-.7-1.5-1.2-1.5s-.8.5-1.3 1.5c-.4 1-.8 1.8-1.6 1.8h-.3c-.5-.2-.8-.7-1.3-1.8l-.2-1A3 3 0 0 0 7 9a1 1 0 0 1 0-2c1.7 0 2 1.4 2.2 2.1.5-1 1.3-2 2.8-2 1.5 0 2.3 1.1 2.7 2.1.2-.8.6-2.2 2.3-2.2a1 1 0 1 1 0 2c-.2 0-.3.5-.3.7a6.5 6.5 0 0 1-.3 1c-.5 1-.8 1.7-1.7 1.7",people:"M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24m0 22a10 10 0 1 1 0-20 10 10 0 0 1 0 20M8 7a2 2 0 1 0 0 4 2 2 0 0 0 0-4m8 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4m-.8 8c-.7 1.2-1.8 2-3.3 2-1.5 0-2.7-.8-3.4-2H15m3-2H6a6 6 0 1 0 12 0",places:"M6.5 12a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5m0 3c-.3 0-.5-.2-.5-.5s.2-.5.5-.5.5.2.5.5-.2.5-.5.5m11-3a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5m0 3c-.3 0-.5-.2-.5-.5s.2-.5.5-.5.5.2.5.5-.2.5-.5.5m5-5.5l-1-.4-.1-.1h.6c.6 0 1-.4 1-1 0-1-.9-2-2-2h-.6l-.8-1.7A3 3 0 0 0 16.8 2H7.2a3 3 0 0 0-2.8 2.3L3.6 6H3a2 2 0 0 0-2 2c0 .6.4 1 1 1h.6v.1l-1 .4a2 2 0 0 0-1.4 2l.7 7.6a1 1 0 0 0 1 .9H3v1c0 1.1.9 2 2 2h2a2 2 0 0 0 2-2v-1h6v1c0 1.1.9 2 2 2h2a2 2 0 0 0 2-2v-1h1.1a1 1 0 0 0 1-.9l.7-7.5a2 2 0 0 0-1.3-2.1M6.3 4.9c.1-.5.5-.9 1-.9h9.5c.4 0 .8.4 1 .9L19.2 9H4.7l1.6-4.1zM7 21H5v-1h2v1zm12 0h-2v-1h2v1zm2.2-3H2.8l-.7-6.6.9-.4h18l.9.4-.7 6.6z",recent:"M13 4h-2v7H9v2h2v2h2v-2h4v-2h-4zm-1-4a12 12 0 1 0 0 24 12 12 0 0 0 0-24m0 22a10 10 0 1 1 0-20 10 10 0 0 1 0 20",symbols:"M0 0h11v2H0zm4 11h3V6h4V4H0v2h4zm11.5 6a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5m0-2.99a.5.5 0 0 1 0 .99c-.28 0-.5-.22-.5-.5s.22-.49.5-.49m6 5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5m0 2.99a.5.5 0 0 1-.5-.5.5.5 0 0 1 1 .01.5.5 0 0 1-.5.49m.5-9l-9 9 1.51 1.5 9-9zm-5-2c2.2 0 4-1.12 4-2.5V2s.98-.16 1.5.95C23 4.05 23 6 23 6s1-1.12 1-3.13C24-.02 21 0 21 0h-2v6.35A5.85 5.85 0 0 0 17 6c-2.2 0-4 1.12-4 2.5s1.8 2.5 4 2.5m-6.7 9.48L8.82 18.9a47.54 47.54 0 0 1-1.44 1.13c-.3-.3-.99-1.02-2.04-2.19.9-.83 1.47-1.46 1.72-1.89s.38-.87.38-1.33c0-.6-.27-1.18-.82-1.76-.54-.58-1.33-.87-2.35-.87-1 0-1.79.29-2.34.87-.56.6-.83 1.18-.83 1.79 0 .81.42 1.75 1.25 2.8a6.57 6.57 0 0 0-1.8 1.79 3.46 3.46 0 0 0-.51 1.83c0 .86.3 1.56.92 2.1a3.5 3.5 0 0 0 2.42.83c1.17 0 2.44-.38 3.81-1.14L8.23 24h2.82l-2.09-2.38 1.34-1.14zM3.56 14.1a1.02 1.02 0 0 1 .73-.28c.31 0 .56.08.75.25a.85.85 0 0 1 .28.66c0 .52-.42 1.11-1.26 1.78-.53-.65-.8-1.23-.8-1.74a.9.9 0 0 1 .3-.67m.18 7.9c-.43 0-.78-.12-1.06-.35-.28-.23-.41-.49-.41-.76 0-.6.5-1.3 1.52-2.09a31.23 31.23 0 0 0 2.25 2.44c-.92.5-1.69.76-2.3.76"},v={search:"M12.9 14.32a8 8 0 1 1 1.41-1.41l5.35 5.33-1.42 1.42-5.33-5.34zM8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12z",delete:"M10 8.586L2.929 1.515 1.515 2.929 8.586 10l-7.071 7.071 1.414 1.414L10 11.414l7.071 7.071 1.414-1.414L11.414 10l7.071-7.071-1.414-1.414L10 8.586z"},j={search:"Search",emojilist:"List of emoji",notfound:"No Emoji Found",clear:"Clear",categories:{search:"Search Results",recent:"Frequently Used",people:"Smileys & People",nature:"Animals & Nature",foods:"Food & Drink",activity:"Activity",places:"Travel & Places",objects:"Objects",symbols:"Symbols",flags:"Flags",custom:"Custom"},skintones:{1:"Default Skin Tone",2:"Light Skin Tone",3:"Medium-Light Skin Tone",4:"Medium Skin Tone",5:"Medium-Dark Skin Tone",6:"Dark Skin Tone"}},S=function(){function e(e,i,n,o,r){var s=this;this.ngZone=e,this.renderer=i,this.ref=n,this.frequently=o,this.platformId=r,this.perLine=9,this.totalFrequentLines=4,this.i18n={},this.style={},this.title="Emoji Mart™",this.emoji="department_store",this.darkMode=!("function"!=typeof matchMedia||!matchMedia("(prefers-color-scheme: dark)").matches),this.color="#ae65c5",this.hideObsolete=!0,this.categories=[],this.activeCategories=[],this.set="apple",this.skin=1,this.isNative=!1,this.emojiSize=24,this.sheetSize=64,this.showPreview=!0,this.emojiTooltip=!1,this.autoFocus=!1,this.custom=[],this.hideRecent=!0,this.notFoundEmoji="sleuth_or_spy",this.categoriesIcons=y,this.searchIcons=v,this.useButton=!1,this.enableFrequentEmojiSort=!1,this.enableSearch=!0,this.showSingleCategory=!1,this.virtualize=!1,this.virtualizeOffset=0,this.emojiClick=new t.EventEmitter,this.emojiSelect=new t.EventEmitter,this.skinChange=new t.EventEmitter,this.scrollHeight=0,this.clientHeight=0,this.clientWidth=0,this.firstRender=!0,this.animationFrameRequestId=null,this.NAMESPACE="emoji-mart",this.measureScrollbar=0,this.RECENT_CATEGORY={id:"recent",name:"Recent",emojis:null},this.SEARCH_CATEGORY={id:"search",name:"Search",emojis:null,anchor:!1},this.CUSTOM_CATEGORY={id:"custom",name:"Custom",emojis:[]},this.backgroundImageFn=function(e,t){return"https://unpkg.com/emoji-datasource-"+s.set+"@6.0.0/img/"+s.set+"/sheets-256/"+s.sheetSize+".png"}}return e.prototype.ngOnInit=function(){var e,t,n=this;this.measureScrollbar=function(){if("undefined"==typeof document)return 0;var e=document.createElement("div");e.style.width="100px",e.style.height="100px",e.style.overflow="scroll",e.style.position="absolute",e.style.top="-9999px",document.body.appendChild(e);var t=e.offsetWidth-e.clientWidth;return document.body.removeChild(e),t}(),this.i18n=Object.assign(Object.assign({},j),this.i18n),this.i18n.categories=Object.assign(Object.assign({},j.categories),this.i18n.categories),this.skin=JSON.parse(o.isPlatformBrowser(this.platformId)&&localStorage.getItem(this.NAMESPACE+".skin")||"null")||this.skin;var r=function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(l(arguments[t]));return e}(i.categories);this.custom.length>0&&(this.CUSTOM_CATEGORY.emojis=this.custom.map((function(e){return Object.assign(Object.assign({},e),{id:e.shortNames[0],custom:!0})})),r.push(this.CUSTOM_CATEGORY)),void 0!==this.include&&r.sort((function(e,t){return n.include.indexOf(e.id)>n.include.indexOf(t.id)?1:-1}));try{for(var s=a(r),c=s.next();!c.done;c=s.next()){var h=c.value,m=!this.include||!this.include.length||this.include.indexOf(h.id)>-1,u=!(!this.exclude||!this.exclude.length)&&this.exclude.indexOf(h.id)>-1;if(m&&!u){if(this.emojisToShowFilter){for(var p=[],d=h.emojis,g=0;g<d.length;g++){var f=d[g];this.emojisToShowFilter(f)&&p.push(f)}if(p.length){var S={emojis:p,name:h.name,id:h.id};this.categories.push(S)}}else this.categories.push(h);this.categoriesIcons=Object.assign(Object.assign({},y),this.categoriesIcons),this.searchIcons=Object.assign(Object.assign({},v),this.searchIcons)}}}catch(t){e={error:t}}finally{try{c&&!c.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}var I=!this.include||!this.include.length||this.include.indexOf(this.RECENT_CATEGORY.id)>-1,C=!(!this.exclude||!this.exclude.length)&&this.exclude.indexOf(this.RECENT_CATEGORY.id)>-1;I&&!C&&(this.hideRecent=!1,this.categories.unshift(this.RECENT_CATEGORY)),this.categories[0]&&(this.categories[0].first=!0),this.categories.unshift(this.SEARCH_CATEGORY),this.selected=this.categories.filter((function(e){return e.first}))[0].name;var k=Math.min(this.categories.length,3);this.setActiveCategories(this.activeCategories=this.categories.slice(0,k));var E=this.categories[k-1].emojis.slice();this.categories[k-1].emojis=E.slice(0,60),setTimeout((function(){n.categories[k-1].emojis=E,n.setActiveCategories(n.categories),n.ref.detectChanges(),o.isPlatformBrowser(n.platformId)&&n.ngZone.runOutsideAngular((function(){requestAnimationFrame((function(){n.updateCategoriesSize()}))}))})),this.ngZone.runOutsideAngular((function(){n.scrollListener=n.renderer.listen(n.scrollRef.nativeElement,"scroll",(function(){n.handleScroll()}))}))},e.prototype.ngOnDestroy=function(){this.scrollListener(),this.cancelAnimationFrame()},e.prototype.setActiveCategories=function(e){var t=this;this.showSingleCategory?this.activeCategories=e.filter((function(e){return e.name===t.selected||e===t.SEARCH_CATEGORY})):this.activeCategories=e},e.prototype.updateCategoriesSize=function(){if(this.categoryRefs.forEach((function(e){return e.memoizeSize()})),this.scrollRef){var e=this.scrollRef.nativeElement;this.scrollHeight=e.scrollHeight,this.clientHeight=e.clientHeight,this.clientWidth=e.clientWidth}},e.prototype.handleAnchorClick=function(e){var t,i,n;if(this.updateCategoriesSize(),this.selected=e.category.name,this.setActiveCategories(this.categories),this.SEARCH_CATEGORY.emojis)return this.handleSearch(null),null===(n=this.searchRef)||void 0===n||n.clear(),void this.handleAnchorClick(e);var o=this.categoryRefs.find((function(t){return t.id===e.category.id}));if(o){var r=o.top;e.category.first?r=0:r+=1,this.scrollRef.nativeElement.scrollTop=r}this.nextScroll=e.category.name;var s=function(e){var t=l.categoryRefs.find((function(t){return t.id===e.id}));null==t||t.handleScroll(l.scrollRef.nativeElement.scrollTop)},l=this;try{for(var c=a(this.categories),h=c.next();!h.done;h=c.next()){s(h.value)}}catch(e){t={error:e}}finally{try{h&&!h.done&&(i=c.return)&&i.call(c)}finally{if(t)throw t.error}}},e.prototype.categoryTrack=function(e,t){return t.id},e.prototype.handleScroll=function(e){var t,i;if(void 0===e&&(e=!1),this.nextScroll)return this.selected=this.nextScroll,this.nextScroll=void 0,void this.ref.detectChanges();if(this.scrollRef&&!this.showSingleCategory){var n;if(this.SEARCH_CATEGORY.emojis)n=this.SEARCH_CATEGORY;else{var o=this.scrollRef.nativeElement;if(0===o.scrollTop)n=this.categories.find((function(e){return!0===e.first}));else if(o.scrollHeight-o.scrollTop===this.clientHeight)n=this.categories[this.categories.length-1];else{var r=function(e){var t=s.categoryRefs.find((function(t){return t.id===e.id}));(null==t?void 0:t.handleScroll(o.scrollTop))&&(n=e)},s=this;try{for(var l=a(this.categories),c=l.next();!c.done;c=l.next()){r(c.value)}}catch(e){t={error:e}}finally{try{c&&!c.done&&(i=l.return)&&i.call(l)}finally{if(t)throw t.error}}}this.scrollTop=o.scrollTop}!e&&n&&n.name!==this.selected?(this.selected=n.name,this.ref.detectChanges()):e&&this.ref.detectChanges()}},e.prototype.handleSearch=function(e){var t,i;this.SEARCH_CATEGORY.emojis=e;try{for(var n=a(this.categoryRefs.toArray()),o=n.next();!o.done;o=n.next()){var r=o.value;"Search"===r.name?(r.emojis=e,r.updateDisplay(e?"block":"none")):r.updateDisplay(e?"none":"block")}}catch(e){t={error:e}}finally{try{o&&!o.done&&(i=n.return)&&i.call(n)}finally{if(t)throw t.error}}this.scrollRef.nativeElement.scrollTop=0,this.handleScroll()},e.prototype.handleEnterKey=function(e,t){if(!t&&null!==this.SEARCH_CATEGORY.emojis&&this.SEARCH_CATEGORY.emojis.length){if(!(t=this.SEARCH_CATEGORY.emojis[0]))return;this.emojiSelect.emit({$event:e,emoji:t})}this.hideRecent||this.recent||!t||this.frequently.add(t);var i=this.categoryRefs.toArray()[1];i&&this.enableFrequentEmojiSort&&(i.getEmojis(),i.ref.markForCheck())},e.prototype.handleEmojiOver=function(e){var t;if(this.showPreview&&this.previewRef){var i=this.CUSTOM_CATEGORY.emojis.find((function(t){return t.id===e.emoji.id}));i&&(e.emoji=Object.assign({},i)),this.previewEmoji=e.emoji,this.cancelAnimationFrame(),null===(t=this.ref)||void 0===t||t.detectChanges()}},e.prototype.handleEmojiLeave=function(){var e=this;this.showPreview&&this.previewRef&&this.ngZone.runOutsideAngular((function(){e.animationFrameRequestId=requestAnimationFrame((function(){e.previewEmoji=null,e.ref.detectChanges()}))}))},e.prototype.handleEmojiClick=function(e){this.emojiClick.emit(e),this.emojiSelect.emit(e),this.handleEnterKey(e.$event,e.emoji)},e.prototype.handleSkinChange=function(e){this.skin=e,localStorage.setItem(this.NAMESPACE+".skin",String(e)),this.skinChange.emit(e)},e.prototype.getWidth=function(){return this.style&&this.style.width?this.style.width:this.perLine*(this.emojiSize+12)+12+2+this.measureScrollbar+"px"},e.prototype.cancelAnimationFrame=function(){null!==this.animationFrameRequestId&&(cancelAnimationFrame(this.animationFrameRequestId),this.animationFrameRequestId=null)},e}();S.decorators=[{type:t.Component,args:[{selector:"emoji-mart",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 (emojiOver)="handleEmojiOver($event)"\n (emojiLeave)="handleEmojiLeave()"\n (emojiClick)="handleEmojiClick($event)"\n ></emoji-category>\n </section>\n <div class="emoji-mart-bar" *ngIf="showPreview">\n <emoji-preview\n [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',changeDetection:t.ChangeDetectionStrategy.OnPush,preserveWhitespaces:!1}]}],S.ctorParameters=function(){return[{type:t.NgZone},{type:t.Renderer2},{type:t.ChangeDetectorRef},{type:c},{type:String,decorators:[{type:t.Inject,args:[t.PLATFORM_ID]}]}]},S.propDecorators={perLine:[{type:t.Input}],totalFrequentLines:[{type:t.Input}],i18n:[{type:t.Input}],style:[{type:t.Input}],title:[{type:t.Input}],emoji:[{type:t.Input}],darkMode:[{type:t.Input}],color:[{type:t.Input}],hideObsolete:[{type:t.Input}],categories:[{type:t.Input}],activeCategories:[{type:t.Input}],set:[{type:t.Input}],skin:[{type:t.Input}],isNative:[{type:t.Input}],emojiSize:[{type:t.Input}],sheetSize:[{type:t.Input}],emojisToShowFilter:[{type:t.Input}],showPreview:[{type:t.Input}],emojiTooltip:[{type:t.Input}],autoFocus:[{type:t.Input}],custom:[{type:t.Input}],hideRecent:[{type:t.Input}],imageUrlFn:[{type:t.Input}],include:[{type:t.Input}],exclude:[{type:t.Input}],notFoundEmoji:[{type:t.Input}],categoriesIcons:[{type:t.Input}],searchIcons:[{type:t.Input}],useButton:[{type:t.Input}],enableFrequentEmojiSort:[{type:t.Input}],enableSearch:[{type:t.Input}],showSingleCategory:[{type:t.Input}],virtualize:[{type:t.Input}],virtualizeOffset:[{type:t.Input}],recent:[{type:t.Input}],emojiClick:[{type:t.Output}],emojiSelect:[{type:t.Output}],skinChange:[{type:t.Output}],scrollRef:[{type:t.ViewChild,args:["scrollRef",{static:!0}]}],previewRef:[{type:t.ViewChild,args:[d,{static:!1}]}],searchRef:[{type:t.ViewChild,args:[f,{static:!1}]}],categoryRefs:[{type:t.ViewChildren,args:[h]}],backgroundImageFn:[{type:t.Input}]};var I=function(){function e(){this.changeSkin=new t.EventEmitter,this.opened=!1,this.skinTones=[1,2,3,4,5,6]}return e.prototype.toggleOpen=function(){this.opened=!this.opened},e.prototype.isSelected=function(e){return e===this.skin},e.prototype.isVisible=function(e){return this.opened||this.isSelected(e)},e.prototype.pressed=function(e){return this.opened?!!this.isSelected(e):""},e.prototype.tabIndex=function(e){return this.isVisible(e)?"0":""},e.prototype.expanded=function(e){return this.isSelected(e)?this.opened:""},e.prototype.handleClick=function(e){this.opened?(this.opened=!1,e!==this.skin&&this.changeSkin.emit(e)):this.opened=!0},e}();I.decorators=[{type:t.Component,args:[{selector:"emoji-skins",template:'\n <section\n class="emoji-mart-skin-swatches"\n [class.opened]="opened"\n >\n <span\n *ngFor="let skinTone of skinTones"\n class="emoji-mart-skin-swatch"\n [class.selected]="skinTone === skin"\n >\n <span\n (click)="this.handleClick(skinTone)"\n (keyup.enter)="handleClick(skinTone)"\n (keyup.space)="handleClick(skinTone)"\n class="emoji-mart-skin emoji-mart-skin-tone-{{ skinTone }}"\n role="button"\n [tabIndex]="tabIndex(skinTone)"\n [attr.aria-hidden]="!isVisible(skinTone)"\n [attr.aria-pressed]="pressed(skinTone)"\n [attr.aria-haspopup]="!!isSelected(skinTone)"\n [attr.aria-expanded]="expanded(skinTone)"\n [attr.aria-label]="i18n.skintones[skinTone]"\n [title]="i18n.skintones[skinTone]"\n ></span>\n </span>\n </section>\n ',changeDetection:t.ChangeDetectionStrategy.OnPush,preserveWhitespaces:!1}]}],I.propDecorators={skin:[{type:t.Input}],i18n:[{type:t.Input}],changeSkin:[{type:t.Output}]};var C=function(){};C.decorators=[{type:t.NgModule,args:[{imports:[o.CommonModule,r.FormsModule,i.EmojiModule],exports:[S,s,h,f,d,I],declarations:[S,s,h,f,d,I]}]}],e.AnchorsComponent=s,e.CategoryComponent=h,e.EmojiFrequentlyService=c,e.EmojiSearch=p,e.PickerComponent=S,e.PickerModule=C,e.PreviewComponent=d,e.SearchComponent=f,e.SkinComponent=I,Object.defineProperty(e,"__esModule",{value:!0})}));
2
- //# sourceMappingURL=ctrl-ngx-emoji-mart.umd.min.js.map