UNPKG

ngx-emoji-picker

Version:

A simple emoji picker for Angular 2+ / Ionic 3 with AOT build support

80 lines 10.8 kB
var CaretEvent = /** @class */ (function () { function CaretEvent(data) { Object.assign(this, data); } CaretEvent.prototype.clone = function () { return new CaretEvent(Object.assign({}, this, { caretRange: this.caretRange && this.caretRange.cloneRange ? this.caretRange.cloneRange() : this.caretRange })); }; CaretEvent.generateNullEvent = function () { return new CaretEvent({ caretOffset: 0, textContent: '' }); }; CaretEvent.comparePropsOfObject = function (r1, r2) { for (var k in r1) { if (r1[k] !== r2[k]) { return false; } } return true; }; CaretEvent.compare = function (e1, e2) { var changed = /** different when either caretRange is omitted while other exists */ (!e1.caretRange && e2.caretRange) || (e1.caretRange && !e2.caretRange) || /** different when offset has changed */ (e1.caretOffset !== e2.caretOffset) || /** different when textContent has changed */ (e1.textContent !== e2.textContent) || /** different when range object properties changed */ !this.comparePropsOfObject(e1.caretRange, e2.caretRange); return !changed; }; CaretEvent.generateCaretEvent = function (win, doc, element) { var caretOffset = 0, sel, caretRange, textContent = element.textContent; if (element.tagName.toLowerCase() === 'input') { return new CaretEvent({ caretOffset: element.selectionEnd, textContent: element.value }); } if (typeof win.getSelection != "undefined") { sel = win.getSelection(); if (sel.rangeCount > 0) { var range = win.getSelection().getRangeAt(0); var preCaretRange = range.cloneRange(); preCaretRange.selectNodeContents(element); preCaretRange.setEnd(range.endContainer, range.endOffset); caretOffset = preCaretRange.toString().length; /** Keeping a reference of the range to emit */ caretRange = range.cloneRange(); } } else if ((sel = doc.selection) && sel.type != "Control") { var textRange = sel.createRange(); var preCaretTextRange = doc.body.createTextRange(); preCaretTextRange.moveToElementText(element); preCaretTextRange.setEndPoint("EndToEnd", textRange); caretOffset = preCaretTextRange.text.length; /** Keeping a reference of the range to emit and making it compatible */ caretRange = textRange.duplicate(); caretRange.insertNode = function (e) { var container = document.createElement("div"); container.appendChild(e); caretRange.pasteHTML(container.innerHTML); }; } return new CaretEvent({ caretOffset: caretOffset, caretRange: caretRange, textContent: textContent }); }; return CaretEvent; }()); export { CaretEvent }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZXQtZXZlbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtZW1vamktcGlja2VyLyIsInNvdXJjZXMiOlsibGliL21pc2MvY2FyZXQtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFLRSxvQkFBWSxJQUFJO1FBQ2QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELDBCQUFLLEdBQUw7UUFDRSxPQUFPLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRTtZQUM1QyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVU7U0FDM0csQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRU0sNEJBQWlCLEdBQXhCO1FBQ0UsT0FBTyxJQUFJLFVBQVUsQ0FBQztZQUNwQixXQUFXLEVBQUUsQ0FBQztZQUNkLFdBQVcsRUFBRSxFQUFFO1NBQ2hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSwrQkFBb0IsR0FBM0IsVUFBNEIsRUFBRSxFQUFFLEVBQUU7UUFDaEMsS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDaEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNuQixPQUFPLEtBQUssQ0FBQTthQUNiO1NBQ0Y7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxrQkFBTyxHQUFkLFVBQWUsRUFBYyxFQUFFLEVBQWM7UUFDM0MsSUFBTSxPQUFPO1FBQ1gscUVBQXFFO1FBQ3JFLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUM7WUFDakMs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SUEyRkMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQ2FyZXRFdmVudCB7XG4gIGNhcmV0T2Zmc2V0OiBudW1iZXI7XG4gIGNhcmV0UmFuZ2U6IFJhbmdlO1xuICB0ZXh0Q29udGVudDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGEpIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIGRhdGEpO1xuICB9XG5cbiAgY2xvbmUoKTogQ2FyZXRFdmVudCB7XG4gICAgcmV0dXJuIG5ldyBDYXJldEV2ZW50KE9iamVjdC5hc3NpZ24oe30sIHRoaXMsIHtcbiAgICAgIGNhcmV0UmFuZ2U6IHRoaXMuY2FyZXRSYW5nZSAmJiB0aGlzLmNhcmV0UmFuZ2UuY2xvbmVSYW5nZSA/IHRoaXMuY2FyZXRSYW5nZS5jbG9uZVJhbmdlKCkgOiB0aGlzLmNhcmV0UmFuZ2VcbiAgICB9KSk7XG4gIH1cblxuICBzdGF0aWMgZ2VuZXJhdGVOdWxsRXZlbnQoKSB7XG4gICAgcmV0dXJuIG5ldyBDYXJldEV2ZW50KHtcbiAgICAgIGNhcmV0T2Zmc2V0OiAwLFxuICAgICAgdGV4dENvbnRlbnQ6ICcnXG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgY29tcGFyZVByb3BzT2ZPYmplY3QocjEsIHIyKSB7XG4gICAgZm9yIChsZXQgayBpbiByMSkge1xuICAgICAgaWYgKHIxW2tdICE9PSByMltrXSkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBzdGF0aWMgY29tcGFyZShlMTogQ2FyZXRFdmVudCwgZTI6IENhcmV0RXZlbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCBjaGFuZ2VkID1cbiAgICAgIC8qKiBkaWZmZXJlbnQgd2hlbiBlaXRoZXIgY2FyZXRSYW5nZSBpcyBvbWl0dGVkIHdoaWxlIG90aGVyIGV4aXN0cyAqL1xuICAgICAgKCFlMS5jYXJldFJhbmdlICYmIGUyLmNhcmV0UmFuZ2UpIHx8XG4gICAgICAoZTEuY2FyZXRSYW5nZSAmJiAhZTIuY2FyZXRSYW5nZSkgfHxcbiAgICAgIC8qKiBkaWZmZXJlbnQgd2hlbiBvZmZzZXQgaGFzIGNoYW5nZWQgKi9cbiAgICAgIChlMS5jYXJldE9mZnNldCAhPT0gZTIuY2FyZXRPZmZzZXQpIHx8XG4gICAgICAvKiogZGlmZmVyZW50IHdoZW4gdGV4dENvbnRlbnQgaGFzIGNoYW5nZWQgKi9cbiAgICAgIChlMS50ZXh0Q29udGVudCAhPT0gZTIudGV4dENvbnRlbnQpIHx8XG4gICAgICAvKiogZGlmZmVyZW50IHdoZW4gcmFuZ2Ugb2JqZWN0IHByb3BlcnRpZXMgY2hhbmdlZCAqL1xuICAgICAgIXRoaXMuY29tcGFyZVByb3BzT2ZPYmplY3QoZTEuY2FyZXRSYW5nZSwgZTIuY2FyZXRSYW5nZSlcbiAgICAgIDtcblxuICAgIHJldHVybiAhY2hhbmdlZDtcbiAgfVxuXG4gIHN0YXRpYyBnZW5lcmF0ZUNhcmV0RXZlbnQod2luLCBkb2MsIGVsZW1lbnQ6IEhUTUxFbGVtZW50ICYgSFRNTElucHV0RWxlbWVudCk6IENhcmV0RXZlbnQge1xuICAgIGxldCBjYXJldE9mZnNldCA9IDAsIHNlbCwgY2FyZXRSYW5nZSwgdGV4dENvbnRlbnQgPSBlbGVtZW50LnRleHRDb250ZW50O1xuXG4gICAgaWYgKGVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnaW5wdXQnKSB7XG4gICAgICByZXR1cm4gbmV3IENhcmV0RXZlbnQoe1xuICAgICAgICBjYXJldE9mZnNldDogZWxlbWVudC5zZWxlY3Rpb25FbmQsXG4gICAgICAgIHRleHRDb250ZW50OiBlbGVtZW50LnZhbHVlXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygd2luLmdldFNlbGVjdGlvbiAhPSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICBzZWwgPSB3aW4uZ2V0U2VsZWN0aW9uKCk7XG4gICAgICBpZiAoc2VsLnJhbmdlQ291bnQgPiAwKSB7XG4gICAgICAgIGNvbnN0IHJhbmdlID0gd2luLmdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCk7XG4gICAgICAgIGNvbnN0IHByZUNhcmV0UmFuZ2UgPSByYW5nZS5jbG9uZVJhbmdlKCk7XG4gICAgICAgIHByZUNhcmV0UmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGVsZW1lbnQpO1xuICAgICAgICBwcmVDYXJldFJhbmdlLnNldEVuZChyYW5nZS5lbmRDb250YWluZXIsIHJhbmdlLmVuZE9mZnNldCk7XG4gICAgICAgIGNhcmV0T2Zmc2V0ID0gcHJlQ2FyZXRSYW5nZS50b1N0cmluZygpLmxlbmd0aDtcblxuICAgICAgICAvKiogS2VlcGluZyBhIHJlZmVyZW5jZSBvZiB0aGUgcmFuZ2UgdG8gZW1pdCAqL1xuICAgICAgICBjYXJldFJhbmdlID0gcmFuZ2UuY2xvbmVSYW5nZSgpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoKHNlbCA9IGRvYy5zZWxlY3Rpb24pICYmIHNlbC50eXBlICE9IFwiQ29udHJvbFwiKSB7XG4gICAgICBjb25zdCB0ZXh0UmFuZ2UgPSBzZWwuY3JlYXRlUmFuZ2UoKTtcbiAgICAgIGNvbnN0IHByZUNhcmV0VGV4dFJhbmdlID0gZG9jLmJvZHkuY3JlYXRlVGV4dFJhbmdlKCk7XG4gICAgICBwcmVDYXJldFRleHRSYW5nZS5tb3ZlVG9FbGVtZW50VGV4dChlbGVtZW50KTtcbiAgICAgIHByZUNhcmV0VGV4dFJhbmdlLnNldEVuZFBvaW50KFwiRW5kVG9FbmRcIiwgdGV4dFJhbmdlKTtcbiAgICAgIGNhcmV0T2Zmc2V0ID0gcHJlQ2FyZXRUZXh0UmFuZ2UudGV4dC5sZW5ndGg7XG5cbiAgICAgIC8qKiBLZWVwaW5nIGEgcmVmZXJlbmNlIG9mIHRoZSByYW5nZSB0byBlbWl0IGFuZCBtYWtpbmcgaXQgY29tcGF0aWJsZSAqL1xuICAgICAgY2FyZXRSYW5nZSA9IHRleHRSYW5nZS5kdXBsaWNhdGUoKTtcbiAgICAgIGNhcmV0UmFuZ2UuaW5zZXJ0Tm9kZSA9IChlKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChlKTtcbiAgICAgICAgY2FyZXRSYW5nZS5wYXN0ZUhUTUwoY29udGFpbmVyLmlubmVySFRNTCk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgQ2FyZXRFdmVudCh7XG4gICAgICBjYXJldE9mZnNldCxcbiAgICAgIGNhcmV0UmFuZ2UsXG4gICAgICB0ZXh0Q29udGVudFxuICAgIH0pO1xuICB9XG59XG4iXX0=