/*! For license information please see summernote-lite.min.js.LICENSE.txt */ !(function (t, e) { if ("object" == typeof exports && "object" == typeof module) module.exports = e(require("jquery")); else if ("function" == typeof define && define.amd) define(["jquery"], e); else { var n = "object" == typeof exports ? e(require("jquery")) : e(t.jQuery); for (var o in n) ("object" == typeof exports ? exports : t)[o] = n[o]; } })(window, function (t) { return (function (t) { var e = {}; function n(o) { if (e[o]) return e[o].exports; var i = (e[o] = { i: o, l: !1, exports: {} }); return t[o].call(i.exports, i, i.exports, n), (i.l = !0), i.exports; } return ( (n.m = t), (n.c = e), (n.d = function (t, e, o) { n.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: o }); }), (n.r = function (t) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(t, "__esModule", { value: !0 }); }), (n.t = function (t, e) { if ((1 & e && (t = n(t)), 8 & e)) return t; if (4 & e && "object" == typeof t && t && t.__esModule) return t; var o = Object.create(null); if ( (n.r(o), Object.defineProperty(o, "default", { enumerable: !0, value: t }), 2 & e && "string" != typeof t) ) for (var i in t) n.d( o, i, function (e) { return t[e]; }.bind(null, i) ); return o; }), (n.n = function (t) { var e = t && t.__esModule ? function () { return t.default; } : function () { return t; }; return n.d(e, "a", e), e; }), (n.o = function (t, e) { return Object.prototype.hasOwnProperty.call(t, e); }), (n.p = ""), n((n.s = 51)) ); })({ 0: function (e, n) { e.exports = t; }, 1: function (t, e, n) { "use strict"; var o = n(0), i = n.n(o); function r(t) { return (r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t; } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; })(t); } function a(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var s = (function () { function t(e, n, o, i) { !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t), (this.markup = e), (this.children = n), (this.options = o), (this.callback = i); } var e, n, o; return ( (e = t), (n = [ { key: "render", value: function (t) { var e = i()(this.markup); if ( (this.options && this.options.contents && e.html(this.options.contents), this.options && this.options.className && e.addClass(this.options.className), this.options && this.options.data && i.a.each(this.options.data, function (t, n) { e.attr("data-" + t, n); }), this.options && this.options.click && e.on("click", this.options.click), this.children) ) { var n = e.find(".note-children-container"); this.children.forEach(function (t) { t.render(n.length ? n : e); }); } return ( this.callback && this.callback(e, this.options), this.options && this.options.callback && this.options.callback(e), t && t.append(e), e ); }, }, ]) && a(e.prototype, n), o && a(e, o), t ); })(); e.a = { create: function (t, e) { return function () { var n = "object" === r(arguments[1]) ? arguments[1] : arguments[0], o = Array.isArray(arguments[0]) ? arguments[0] : []; return n && n.children && (o = n.children), new s(t, o, n, e); }; }, }; }, 2: function (t, e) { (function (e) { t.exports = e; }.call(this, {})); }, 3: function (t, e, n) { "use strict"; var o = n(0), i = n.n(o); (i.a.summernote = i.a.summernote || { lang: {} }), i.a.extend(i.a.summernote.lang, { "en-US": { font: { bold: "Bold", italic: "Italic", underline: "Underline", clear: "Remove Font Style", height: "Line Height", name: "Font Family", strikethrough: "Strikethrough", subscript: "Subscript", superscript: "Superscript", size: "Font Size", sizeunit: "Font Size Unit", }, image: { image: "Picture", insert: "Insert Image", resizeFull: "Resize full", resizeHalf: "Resize half", resizeQuarter: "Resize quarter", resizeNone: "Original size", floatLeft: "Float Left", floatRight: "Float Right", floatNone: "Remove float", shapeRounded: "Shape: Rounded", shapeCircle: "Shape: Circle", shapeThumbnail: "Shape: Thumbnail", shapeNone: "Shape: None", dragImageHere: "Drag image or text here", dropImage: "Drop image or Text", selectFromFiles: "Select from files", maximumFileSize: "Maximum file size", maximumFileSizeError: "Maximum file size exceeded.", url: "Image URL", remove: "Remove Image", original: "Original", }, video: { video: "Video", videoLink: "Video Link", insert: "Insert Video", url: "Video URL", providers: "(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)", }, link: { link: "Link", insert: "Insert Link", unlink: "Unlink", edit: "Edit", textToDisplay: "Text to display", url: "To what URL should this link go?", openInNewWindow: "Open in new window", useProtocol: "Use default protocol", }, table: { table: "Table", addRowAbove: "Add row above", addRowBelow: "Add row below", addColLeft: "Add column left", addColRight: "Add column right", delRow: "Delete row", delCol: "Delete column", delTable: "Delete table", }, hr: { insert: "Insert Horizontal Rule" }, style: { style: "Style", p: "Normal", blockquote: "Quote", pre: "Code", h1: "Header 1", h2: "Header 2", h3: "Header 3", h4: "Header 4", h5: "Header 5", h6: "Header 6", }, lists: { unordered: "Unordered list", ordered: "Ordered list" }, options: { help: "Help", fullscreen: "Full Screen", codeview: "Code View", }, paragraph: { paragraph: "Paragraph", outdent: "Outdent", indent: "Indent", left: "Align left", center: "Align center", right: "Align right", justify: "Justify full", }, color: { recent: "Recent Color", more: "More Color", background: "Background Color", foreground: "Text Color", transparent: "Transparent", setTransparent: "Set transparent", reset: "Reset", resetToDefault: "Reset to default", cpSelect: "Select", }, shortcut: { shortcuts: "Keyboard shortcuts", close: "Close", textFormatting: "Text formatting", action: "Action", paragraphFormatting: "Paragraph formatting", documentStyle: "Document Style", extraKeys: "Extra keys", }, help: { escape: "Escape", insertParagraph: "Insert Paragraph", undo: "Undo the last command", redo: "Redo the last command", tab: "Tab", untab: "Untab", bold: "Set a bold style", italic: "Set a italic style", underline: "Set a underline style", strikethrough: "Set a strikethrough style", removeFormat: "Clean a style", justifyLeft: "Set left align", justifyCenter: "Set center align", justifyRight: "Set right align", justifyFull: "Set full align", insertUnorderedList: "Toggle unordered list", insertOrderedList: "Toggle ordered list", outdent: "Outdent on current paragraph", indent: "Indent on current paragraph", formatPara: "Change current block's format as a paragraph(P tag)", formatH1: "Change current block's format as H1", formatH2: "Change current block's format as H2", formatH3: "Change current block's format as H3", formatH4: "Change current block's format as H4", formatH5: "Change current block's format as H5", formatH6: "Change current block's format as H6", insertHorizontalRule: "Insert horizontal rule", "linkDialog.show": "Show Link Dialog", }, history: { undo: "Undo", redo: "Redo" }, specialChar: { specialChar: "SPECIAL CHARACTERS", select: "Select Special characters", }, output: { noSelection: "No Selection Made!" }, }, }); var r = "function" == typeof define && n(2), a = ["sans-serif", "serif", "monospace", "cursive", "fantasy"]; function s(t) { return -1 === i.a.inArray(t.toLowerCase(), a) ? "'".concat(t, "'") : t; } var l, c = navigator.userAgent, u = /MSIE|Trident/i.test(c); if (u) { var d = /MSIE (\d+[.]\d+)/.exec(c); d && (l = parseFloat(d[1])), (d = /Trident\/.*rv:([0-9]{1,}[.0-9]{0,})/.exec(c)) && (l = parseFloat(d[1])); } var h = /Edge\/\d+/.test(c), f = "ontouchstart" in window || navigator.MaxTouchPoints > 0 || navigator.msMaxTouchPoints > 0, p = u ? "DOMCharacterDataModified DOMSubtreeModified DOMNodeInserted" : "input", m = { isMac: navigator.appVersion.indexOf("Mac") > -1, isMSIE: u, isEdge: h, isFF: !h && /firefox/i.test(c), isPhantom: /PhantomJS/i.test(c), isWebkit: !h && /webkit/i.test(c), isChrome: !h && /chrome/i.test(c), isSafari: !h && /safari/i.test(c) && !/chrome/i.test(c), browserVersion: l, jqueryVersion: parseFloat(i.a.fn.jquery), isSupportAmd: r, isSupportTouch: f, isFontInstalled: function (t) { var e = "Comic Sans MS" === t ? "Courier New" : "Comic Sans MS", n = document.createElement("canvas").getContext("2d"); n.font = "200px '" + e + "'"; var o = n.measureText("mmmmmmmmmmwwwww").width; return ( (n.font = "200px " + s(t) + ', "' + e + '"'), o !== n.measureText("mmmmmmmmmmwwwww").width ); }, isW3CRangeSupport: !!document.createRange, inputEventName: p, genericFontFamilies: a, validFontName: s, }; var v = 0; var g = { eq: function (t) { return function (e) { return t === e; }; }, eq2: function (t, e) { return t === e; }, peq2: function (t) { return function (e, n) { return e[t] === n[t]; }; }, ok: function () { return !0; }, fail: function () { return !1; }, self: function (t) { return t; }, not: function (t) { return function () { return !t.apply(t, arguments); }; }, and: function (t, e) { return function (n) { return t(n) && e(n); }; }, invoke: function (t, e) { return function () { return t[e].apply(t, arguments); }; }, resetUniqueId: function () { v = 0; }, uniqueId: function (t) { var e = ++v + ""; return t ? t + e : e; }, rect2bnd: function (t) { var e = i()(document); return { top: t.top + e.scrollTop(), left: t.left + e.scrollLeft(), width: t.right - t.left, height: t.bottom - t.top, }; }, invertObject: function (t) { var e = {}; for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[t[n]] = n); return e; }, namespaceToCamel: function (t, e) { return ( (e = e || "") + t .split(".") .map(function (t) { return t.substring(0, 1).toUpperCase() + t.substring(1); }) .join("") ); }, debounce: function (t, e, n) { var o; return function () { var i = this, r = arguments, a = function () { (o = null), n || t.apply(i, r); }, s = n && !o; clearTimeout(o), (o = setTimeout(a, e)), s && t.apply(i, r); }; }, isValidUrl: function (t) { return /[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/gi.test( t ); }, }; function b(t) { return t[0]; } function k(t) { return t[t.length - 1]; } function y(t) { return t.slice(1); } function w(t, e) { if (t && t.length && e) { if (t.indexOf) return -1 !== t.indexOf(e); if (t.contains) return t.contains(e); } return !1; } var C = { head: b, last: k, initial: function (t) { return t.slice(0, t.length - 1); }, tail: y, prev: function (t, e) { if (t && t.length && e) { var n = t.indexOf(e); return -1 === n ? null : t[n - 1]; } return null; }, next: function (t, e) { if (t && t.length && e) { var n = t.indexOf(e); return -1 === n ? null : t[n + 1]; } return null; }, find: function (t, e) { for (var n = 0, o = t.length; n < o; n++) { var i = t[n]; if (e(i)) return i; } }, contains: w, all: function (t, e) { for (var n = 0, o = t.length; n < o; n++) if (!e(t[n])) return !1; return !0; }, sum: function (t, e) { return ( (e = e || g.self), t.reduce(function (t, n) { return t + e(n); }, 0) ); }, from: function (t) { for (var e = [], n = t.length, o = -1; ++o < n; ) e[o] = t[o]; return e; }, isEmpty: function (t) { return !t || !t.length; }, clusterBy: function (t, e) { return t.length ? y(t).reduce( function (t, n) { var o = k(t); return ( e(k(o), n) ? (o[o.length] = n) : (t[t.length] = [n]), t ); }, [[b(t)]] ) : []; }, compact: function (t) { for (var e = [], n = 0, o = t.length; n < o; n++) t[n] && e.push(t[n]); return e; }, unique: function (t) { for (var e = [], n = 0, o = t.length; n < o; n++) w(e, t[n]) || e.push(t[n]); return e; }, }, x = String.fromCharCode(160); function S(t) { return t && i()(t).hasClass("note-editable"); } function T(t) { return ( (t = t.toUpperCase()), function (e) { return e && e.nodeName.toUpperCase() === t; } ); } function E(t) { return t && 3 === t.nodeType; } function $(t) { return ( t && /^BR|^IMG|^HR|^IFRAME|^BUTTON|^INPUT|^AUDIO|^VIDEO|^EMBED/.test( t.nodeName.toUpperCase() ) ); } function N(t) { return ( !S(t) && t && /^DIV|^P|^LI|^H[1-7]/.test(t.nodeName.toUpperCase()) ); } var I = T("PRE"), P = T("LI"); var R = T("TABLE"), L = T("DATA"); function A(t) { return !(z(t) || F(t) || D(t) || N(t) || R(t) || B(t) || L(t)); } function F(t) { return t && /^UL|^OL/.test(t.nodeName.toUpperCase()); } var D = T("HR"); function H(t) { return t && /^TD|^TH/.test(t.nodeName.toUpperCase()); } var B = T("BLOCKQUOTE"); function z(t) { return H(t) || B(t) || S(t); } var M = T("A"); var O = T("BODY"); var j = m.isMSIE && m.browserVersion < 11 ? " " : "
"; function U(t) { return E(t) ? t.nodeValue.length : t ? t.childNodes.length : 0; } function W(t) { var e = U(t); return ( 0 === e || (!E(t) && 1 === e && t.innerHTML === j) || !(!C.all(t.childNodes, E) || "" !== t.innerHTML) ); } function K(t) { $(t) || U(t) || (t.innerHTML = j); } function V(t, e) { for (; t; ) { if (e(t)) return t; if (S(t)) break; t = t.parentNode; } return null; } function q(t, e) { e = e || g.fail; var n = []; return ( V(t, function (t) { return S(t) || n.push(t), e(t); }), n ); } function _(t, e) { e = e || g.fail; for (var n = []; t && !e(t); ) n.push(t), (t = t.nextSibling); return n; } function G(t, e) { var n = e.nextSibling, o = e.parentNode; return n ? o.insertBefore(t, n) : o.appendChild(t), t; } function Y(t, e) { return ( i.a.each(e, function (e, n) { t.appendChild(n); }), t ); } function Z(t) { return 0 === t.offset; } function X(t) { return t.offset === U(t.node); } function Q(t) { return Z(t) || X(t); } function J(t, e) { for (; t && t !== e; ) { if (0 !== et(t)) return !1; t = t.parentNode; } return !0; } function tt(t, e) { if (!e) return !1; for (; t && t !== e; ) { if (et(t) !== U(t.parentNode) - 1) return !1; t = t.parentNode; } return !0; } function et(t) { for (var e = 0; (t = t.previousSibling); ) e += 1; return e; } function nt(t) { return !!(t && t.childNodes && t.childNodes.length); } function ot(t, e) { var n, o; if (0 === t.offset) { if (S(t.node)) return null; (n = t.node.parentNode), (o = et(t.node)); } else nt(t.node) ? (o = U((n = t.node.childNodes[t.offset - 1]))) : ((n = t.node), (o = e ? 0 : t.offset - 1)); return { node: n, offset: o }; } function it(t, e) { var n, o; if (U(t.node) === t.offset) { if (S(t.node)) return null; var i = at(t.node); i ? ((n = i), (o = 0)) : ((n = t.node.parentNode), (o = et(t.node) + 1)); } else nt(t.node) ? ((n = t.node.childNodes[t.offset]), (o = 0)) : ((n = t.node), (o = e ? U(t.node) : t.offset + 1)); return { node: n, offset: o }; } function rt(t, e) { var n, o; if (W(t.node)) return { node: (n = t.node.nextSibling), offset: (o = 0) }; if (U(t.node) === t.offset) { if (S(t.node)) return null; var i = at(t.node); i ? ((n = i), (o = 0)) : ((n = t.node.parentNode), (o = et(t.node) + 1)), S(n) && ((n = t.node.nextSibling), (o = 0)); } else if (nt(t.node)) { if (((o = 0), W((n = t.node.childNodes[t.offset])))) return null; } else if (((n = t.node), (o = e ? U(t.node) : t.offset + 1), W(n))) return null; return { node: n, offset: o }; } function at(t) { if (t.nextSibling && t.parent === t.nextSibling.parent) return E(t.nextSibling) ? t.nextSibling : at(t.nextSibling); } function st(t, e) { return t.node === e.node && t.offset === e.offset; } function lt(t, e) { var n = e && e.isSkipPaddingBlankHTML, o = e && e.isNotSplitEdgePoint, i = e && e.isDiscardEmptySplits; if ((i && (n = !0), Q(t) && (E(t.node) || o))) { if (Z(t)) return t.node; if (X(t)) return t.node.nextSibling; } if (E(t.node)) return t.node.splitText(t.offset); var r = t.node.childNodes[t.offset], a = G(t.node.cloneNode(!1), t.node); return ( Y(a, _(r)), n || (K(t.node), K(a)), i && (W(t.node) && dt(t.node), W(a)) ? (dt(a), t.node.nextSibling) : a ); } function ct(t, e, n) { var o = q(e.node, g.eq(t)); return o.length ? 1 === o.length ? lt(e, n) : o.reduce(function (t, o) { return ( t === e.node && (t = lt(e, n)), lt({ node: o, offset: t ? et(t) : U(o) }, n) ); }) : null; } function ut(t) { return document.createElement(t); } function dt(t, e) { if (t && t.parentNode) { if (t.removeNode) return t.removeNode(e); var n = t.parentNode; if (!e) { for (var o = [], i = 0, r = t.childNodes.length; i < r; i++) o.push(t.childNodes[i]); for (var a = 0, s = o.length; a < s; a++) n.insertBefore(o[a], t); } n.removeChild(t); } } var ht = T("TEXTAREA"); function ft(t, e) { var n = ht(t[0]) ? t.val() : t.html(); return e ? n.replace(/[\n\r]/g, "") : n; } var pt = { NBSP_CHAR: x, ZERO_WIDTH_NBSP_CHAR: "\ufeff", blank: j, emptyPara: "

".concat(j, "

"), makePredByNodeName: T, isEditable: S, isControlSizing: function (t) { return t && i()(t).hasClass("note-control-sizing"); }, isText: E, isElement: function (t) { return t && 1 === t.nodeType; }, isVoid: $, isPara: N, isPurePara: function (t) { return N(t) && !P(t); }, isHeading: function (t) { return t && /^H[1-7]/.test(t.nodeName.toUpperCase()); }, isInline: A, isBlock: g.not(A), isBodyInline: function (t) { return A(t) && !V(t, N); }, isBody: O, isParaInline: function (t) { return A(t) && !!V(t, N); }, isPre: I, isList: F, isTable: R, isData: L, isCell: H, isBlockquote: B, isBodyContainer: z, isAnchor: M, isDiv: T("DIV"), isLi: P, isBR: T("BR"), isSpan: T("SPAN"), isB: T("B"), isU: T("U"), isS: T("S"), isI: T("I"), isImg: T("IMG"), isTextarea: ht, deepestChildIsEmpty: function (t) { do { if ( null === t.firstElementChild || "" === t.firstElementChild.innerHTML ) break; } while ((t = t.firstElementChild)); return W(t); }, isEmpty: W, isEmptyAnchor: g.and(M, W), isClosestSibling: function (t, e) { return t.nextSibling === e || t.previousSibling === e; }, withClosestSiblings: function (t, e) { e = e || g.ok; var n = []; return ( t.previousSibling && e(t.previousSibling) && n.push(t.previousSibling), n.push(t), t.nextSibling && e(t.nextSibling) && n.push(t.nextSibling), n ); }, nodeLength: U, isLeftEdgePoint: Z, isRightEdgePoint: X, isEdgePoint: Q, isLeftEdgeOf: J, isRightEdgeOf: tt, isLeftEdgePointOf: function (t, e) { return Z(t) && J(t.node, e); }, isRightEdgePointOf: function (t, e) { return X(t) && tt(t.node, e); }, prevPoint: ot, nextPoint: it, nextPointWithEmptyNode: rt, isSamePoint: st, isVisiblePoint: function (t) { if (E(t.node) || !nt(t.node) || W(t.node)) return !0; var e = t.node.childNodes[t.offset - 1], n = t.node.childNodes[t.offset]; return !((e && !$(e)) || (n && !$(n))); }, prevPointUntil: function (t, e) { for (; t; ) { if (e(t)) return t; t = ot(t); } return null; }, nextPointUntil: function (t, e) { for (; t; ) { if (e(t)) return t; t = it(t); } return null; }, isCharPoint: function (t) { if (!E(t.node)) return !1; var e = t.node.nodeValue.charAt(t.offset - 1); return e && " " !== e && e !== x; }, isSpacePoint: function (t) { if (!E(t.node)) return !1; var e = t.node.nodeValue.charAt(t.offset - 1); return " " === e || e === x; }, walkPoint: function (t, e, n, o) { for (var i = t; i && (n(i), !st(i, e)); ) { i = rt(i, o && t.node !== i.node && e.node !== i.node); } }, ancestor: V, singleChildAncestor: function (t, e) { for (t = t.parentNode; t && 1 === U(t); ) { if (e(t)) return t; if (S(t)) break; t = t.parentNode; } return null; }, listAncestor: q, lastAncestor: function (t, e) { var n = q(t); return C.last(n.filter(e)); }, listNext: _, listPrev: function (t, e) { e = e || g.fail; for (var n = []; t && !e(t); ) n.push(t), (t = t.previousSibling); return n; }, listDescendant: function (t, e) { var n = []; return ( (e = e || g.ok), (function o(i) { t !== i && e(i) && n.push(i); for (var r = 0, a = i.childNodes.length; r < a; r++) o(i.childNodes[r]); })(t), n ); }, commonAncestor: function (t, e) { for (var n = q(t), o = e; o; o = o.parentNode) if (n.indexOf(o) > -1) return o; return null; }, wrap: function (t, e) { var n = t.parentNode, o = i()("<" + e + ">")[0]; return n.insertBefore(o, t), o.appendChild(t), o; }, insertAfter: G, appendChildNodes: Y, position: et, hasChildren: nt, makeOffsetPath: function (t, e) { return q(e, g.eq(t)).map(et).reverse(); }, fromOffsetPath: function (t, e) { for (var n = t, o = 0, i = e.length; o < i; o++) n = n.childNodes.length <= e[o] ? n.childNodes[n.childNodes.length - 1] : n.childNodes[e[o]]; return n; }, splitTree: ct, splitPoint: function (t, e) { var n, o, i = e ? N : z, r = q(t.node, i), a = C.last(r) || t.node; i(a) ? ((n = r[r.length - 2]), (o = a)) : (o = (n = a).parentNode); var s = n && ct(n, t, { isSkipPaddingBlankHTML: e, isNotSplitEdgePoint: e }); return ( s || o !== t.node || (s = t.node.childNodes[t.offset]), { rightNode: s, container: o } ); }, create: ut, createText: function (t) { return document.createTextNode(t); }, remove: dt, removeWhile: function (t, e) { for (; t && !S(t) && e(t); ) { var n = t.parentNode; dt(t), (t = n); } }, replace: function (t, e) { if (t.nodeName.toUpperCase() === e.toUpperCase()) return t; var n = ut(e); return ( t.style.cssText && (n.style.cssText = t.style.cssText), Y(n, C.from(t.childNodes)), G(n, t), dt(t), n ); }, html: function (t, e) { var n = ft(t); if (e) { n = (n = n.replace( /<(\/?)(\b(?!!)[^>\s]*)(.*?)(\s*\/?>)/g, function (t, e, n) { n = n.toUpperCase(); var o = /^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(n) && !!e, i = /^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(n); return t + (o || i ? "\n" : ""); } )).trim(); } return n; }, value: ft, posFromPlaceholder: function (t) { var e = i()(t), n = e.offset(), o = e.outerHeight(!0); return { left: n.left, top: n.top + o }; }, attachEvents: function (t, e) { Object.keys(e).forEach(function (n) { t.on(n, e[n]); }); }, detachEvents: function (t, e) { Object.keys(e).forEach(function (n) { t.off(n, e[n]); }); }, isCustomStyleTag: function (t) { return t && !E(t) && C.contains(t.classList, "note-styletag"); }, }; function mt(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var vt = (function () { function t(e, n) { !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t), (this.$note = e), (this.memos = {}), (this.modules = {}), (this.layoutInfo = {}), (this.options = i.a.extend(!0, {}, n)), (i.a.summernote.ui = i.a.summernote.ui_template(this.options)), (this.ui = i.a.summernote.ui), this.initialize(); } var e, n, o; return ( (e = t), (n = [ { key: "initialize", value: function () { return ( (this.layoutInfo = this.ui.createLayout(this.$note)), this._initialize(), this.$note.hide(), this ); }, }, { key: "destroy", value: function () { this._destroy(), this.$note.removeData("summernote"), this.ui.removeLayout(this.$note, this.layoutInfo); }, }, { key: "reset", value: function () { var t = this.isDisabled(); this.code(pt.emptyPara), this._destroy(), this._initialize(), t && this.disable(); }, }, { key: "_initialize", value: function () { var t = this; (this.options.id = g.uniqueId(i.a.now())), (this.options.container = this.options.container || this.layoutInfo.editor); var e = i.a.extend({}, this.options.buttons); Object.keys(e).forEach(function (n) { t.memo("button." + n, e[n]); }); var n = i.a.extend( {}, this.options.modules, i.a.summernote.plugins || {} ); Object.keys(n).forEach(function (e) { t.module(e, n[e], !0); }), Object.keys(this.modules).forEach(function (e) { t.initializeModule(e); }); }, }, { key: "_destroy", value: function () { var t = this; Object.keys(this.modules) .reverse() .forEach(function (e) { t.removeModule(e); }), Object.keys(this.memos).forEach(function (e) { t.removeMemo(e); }), this.triggerEvent("destroy", this); }, }, { key: "code", value: function (t) { var e = this.invoke("codeview.isActivated"); if (void 0 === t) return ( this.invoke("codeview.sync"), e ? this.layoutInfo.codable.val() : this.layoutInfo.editable.html() ); e ? this.invoke("codeview.sync", t) : this.layoutInfo.editable.html(t), this.$note.val(t), this.triggerEvent("change", t, this.layoutInfo.editable); }, }, { key: "isDisabled", value: function () { return ( "false" === this.layoutInfo.editable.attr("contenteditable") ); }, }, { key: "enable", value: function () { this.layoutInfo.editable.attr("contenteditable", !0), this.invoke("toolbar.activate", !0), this.triggerEvent("disable", !1), (this.options.editing = !0); }, }, { key: "disable", value: function () { this.invoke("codeview.isActivated") && this.invoke("codeview.deactivate"), this.layoutInfo.editable.attr("contenteditable", !1), (this.options.editing = !1), this.invoke("toolbar.deactivate", !0), this.triggerEvent("disable", !0); }, }, { key: "triggerEvent", value: function () { var t = C.head(arguments), e = C.tail(C.from(arguments)), n = this.options.callbacks[g.namespaceToCamel(t, "on")]; n && n.apply(this.$note[0], e), this.$note.trigger("summernote." + t, e); }, }, { key: "initializeModule", value: function (t) { var e = this.modules[t]; (e.shouldInitialize = e.shouldInitialize || g.ok), e.shouldInitialize() && (e.initialize && e.initialize(), e.events && pt.attachEvents(this.$note, e.events)); }, }, { key: "module", value: function (t, e, n) { if (1 === arguments.length) return this.modules[t]; (this.modules[t] = new e(this)), n || this.initializeModule(t); }, }, { key: "removeModule", value: function (t) { var e = this.modules[t]; e.shouldInitialize() && (e.events && pt.detachEvents(this.$note, e.events), e.destroy && e.destroy()), delete this.modules[t]; }, }, { key: "memo", value: function (t, e) { if (1 === arguments.length) return this.memos[t]; this.memos[t] = e; }, }, { key: "removeMemo", value: function (t) { this.memos[t] && this.memos[t].destroy && this.memos[t].destroy(), delete this.memos[t]; }, }, { key: "createInvokeHandlerAndUpdateState", value: function (t, e) { var n = this; return function (o) { n.createInvokeHandler(t, e)(o), n.invoke("buttons.updateCurrentStyle"); }; }, }, { key: "createInvokeHandler", value: function (t, e) { var n = this; return function (o) { o.preventDefault(); var r = i()(o.target); n.invoke(t, e || r.closest("[data-value]").data("value"), r); }; }, }, { key: "invoke", value: function () { var t = C.head(arguments), e = C.tail(C.from(arguments)), n = t.split("."), o = n.length > 1, i = o && C.head(n), r = o ? C.last(n) : C.head(n), a = this.modules[i || "editor"]; return !i && this[r] ? this[r].apply(this, e) : a && a[r] && a.shouldInitialize() ? a[r].apply(a, e) : void 0; }, }, ]) && mt(e.prototype, n), o && mt(e, o), t ); })(); function gt(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } function bt(t, e) { var n, o, i = t.parentElement(), r = document.body.createTextRange(), a = C.from(i.childNodes); for (n = 0; n < a.length; n++) if (!pt.isText(a[n])) { if ( (r.moveToElementText(a[n]), r.compareEndPoints("StartToStart", t) >= 0) ) break; o = a[n]; } if (0 !== n && pt.isText(a[n - 1])) { var s = document.body.createTextRange(), l = null; s.moveToElementText(o || i), s.collapse(!o), (l = o ? o.nextSibling : i.firstChild); var c = t.duplicate(); c.setEndPoint("StartToStart", s); for ( var u = c.text.replace(/[\r\n]/g, "").length; u > l.nodeValue.length && l.nextSibling; ) (u -= l.nodeValue.length), (l = l.nextSibling); l.nodeValue; e && l.nextSibling && pt.isText(l.nextSibling) && u === l.nodeValue.length && ((u -= l.nodeValue.length), (l = l.nextSibling)), (i = l), (n = u); } return { cont: i, offset: n }; } function kt(t) { var e = document.body.createTextRange(), n = (function t(e, n) { var o, i; if (pt.isText(e)) { var r = pt.listPrev(e, g.not(pt.isText)), a = C.last(r).previousSibling; (o = a || e.parentNode), (n += C.sum(C.tail(r), pt.nodeLength)), (i = !a); } else { if (((o = e.childNodes[n] || e), pt.isText(o))) return t(o, 0); (n = 0), (i = !1); } return { node: o, collapseToStart: i, offset: n }; })(t.node, t.offset); return ( e.moveToElementText(n.node), e.collapse(n.collapseToStart), e.moveStart("character", n.offset), e ); } i.a.fn.extend({ summernote: function () { var t = i.a.type(C.head(arguments)), e = "string" === t, n = "object" === t, o = i.a.extend( {}, i.a.summernote.options, n ? C.head(arguments) : {} ); (o.langInfo = i.a.extend( !0, {}, i.a.summernote.lang["en-US"], i.a.summernote.lang[o.lang] )), (o.icons = i.a.extend( !0, {}, i.a.summernote.options.icons, o.icons )), (o.tooltip = "auto" === o.tooltip ? !m.isSupportTouch : o.tooltip), this.each(function (t, e) { var n = i()(e); if (!n.data("summernote")) { var r = new vt(n, o); n.data("summernote", r), n.data("summernote").triggerEvent("init", r.layoutInfo); } }); var r = this.first(); if (r.length) { var a = r.data("summernote"); if (e) return a.invoke.apply(a, C.from(arguments)); o.focus && a.invoke("editor.focus"); } return this; }, }); var yt = (function () { function t(e, n, o, i) { !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t), (this.sc = e), (this.so = n), (this.ec = o), (this.eo = i), (this.isOnEditable = this.makeIsOn(pt.isEditable)), (this.isOnList = this.makeIsOn(pt.isList)), (this.isOnAnchor = this.makeIsOn(pt.isAnchor)), (this.isOnCell = this.makeIsOn(pt.isCell)), (this.isOnData = this.makeIsOn(pt.isData)); } var e, n, o; return ( (e = t), (n = [ { key: "nativeRange", value: function () { if (m.isW3CRangeSupport) { var t = document.createRange(); return ( t.setStart(this.sc, this.so), t.setEnd(this.ec, this.eo), t ); } var e = kt({ node: this.sc, offset: this.so }); return ( e.setEndPoint( "EndToEnd", kt({ node: this.ec, offset: this.eo }) ), e ); }, }, { key: "getPoints", value: function () { return { sc: this.sc, so: this.so, ec: this.ec, eo: this.eo }; }, }, { key: "getStartPoint", value: function () { return { node: this.sc, offset: this.so }; }, }, { key: "getEndPoint", value: function () { return { node: this.ec, offset: this.eo }; }, }, { key: "select", value: function () { var t = this.nativeRange(); if (m.isW3CRangeSupport) { var e = document.getSelection(); e.rangeCount > 0 && e.removeAllRanges(), e.addRange(t); } else t.select(); return this; }, }, { key: "scrollIntoView", value: function (t) { var e = i()(t).height(); return ( t.scrollTop + e < this.sc.offsetTop && (t.scrollTop += Math.abs( t.scrollTop + e - this.sc.offsetTop )), this ); }, }, { key: "normalize", value: function () { var e = function (t, e) { if (!t) return t; if ( pt.isVisiblePoint(t) && (!pt.isEdgePoint(t) || (pt.isRightEdgePoint(t) && !e) || (pt.isLeftEdgePoint(t) && e) || (pt.isRightEdgePoint(t) && e && pt.isVoid(t.node.nextSibling)) || (pt.isLeftEdgePoint(t) && !e && pt.isVoid(t.node.previousSibling)) || (pt.isBlock(t.node) && pt.isEmpty(t.node))) ) return t; var n = pt.ancestor(t.node, pt.isBlock), o = !1; if (!o) { var i = pt.prevPoint(t) || { node: null }; o = (pt.isLeftEdgePointOf(t, n) || pt.isVoid(i.node)) && !e; } var r = !1; if (!r) { var a = pt.nextPoint(t) || { node: null }; r = (pt.isRightEdgePointOf(t, n) || pt.isVoid(a.node)) && e; } if (o || r) { if (pt.isVisiblePoint(t)) return t; e = !e; } return ( (e ? pt.nextPointUntil( pt.nextPoint(t), pt.isVisiblePoint ) : pt.prevPointUntil( pt.prevPoint(t), pt.isVisiblePoint )) || t ); }, n = e(this.getEndPoint(), !1), o = this.isCollapsed() ? n : e(this.getStartPoint(), !0); return new t(o.node, o.offset, n.node, n.offset); }, }, { key: "nodes", value: function (t, e) { t = t || g.ok; var n = e && e.includeAncestor, o = e && e.fullyContains, i = this.getStartPoint(), r = this.getEndPoint(), a = [], s = []; return ( pt.walkPoint( i, r, function (e) { var i; pt.isEditable(e.node) || (o ? (pt.isLeftEdgePoint(e) && s.push(e.node), pt.isRightEdgePoint(e) && C.contains(s, e.node) && (i = e.node)) : (i = n ? pt.ancestor(e.node, t) : e.node), i && t(i) && a.push(i)); }, !0 ), C.unique(a) ); }, }, { key: "commonAncestor", value: function () { return pt.commonAncestor(this.sc, this.ec); }, }, { key: "expand", value: function (e) { var n = pt.ancestor(this.sc, e), o = pt.ancestor(this.ec, e); if (!n && !o) return new t(this.sc, this.so, this.ec, this.eo); var i = this.getPoints(); return ( n && ((i.sc = n), (i.so = 0)), o && ((i.ec = o), (i.eo = pt.nodeLength(o))), new t(i.sc, i.so, i.ec, i.eo) ); }, }, { key: "collapse", value: function (e) { return e ? new t(this.sc, this.so, this.sc, this.so) : new t(this.ec, this.eo, this.ec, this.eo); }, }, { key: "splitText", value: function () { var e = this.sc === this.ec, n = this.getPoints(); return ( pt.isText(this.ec) && !pt.isEdgePoint(this.getEndPoint()) && this.ec.splitText(this.eo), pt.isText(this.sc) && !pt.isEdgePoint(this.getStartPoint()) && ((n.sc = this.sc.splitText(this.so)), (n.so = 0), e && ((n.ec = n.sc), (n.eo = this.eo - this.so))), new t(n.sc, n.so, n.ec, n.eo) ); }, }, { key: "deleteContents", value: function () { if (this.isCollapsed()) return this; var e = this.splitText(), n = e.nodes(null, { fullyContains: !0 }), o = pt.prevPointUntil(e.getStartPoint(), function (t) { return !C.contains(n, t.node); }), r = []; return ( i.a.each(n, function (t, e) { var n = e.parentNode; o.node !== n && 1 === pt.nodeLength(n) && r.push(n), pt.remove(e, !1); }), i.a.each(r, function (t, e) { pt.remove(e, !1); }), new t(o.node, o.offset, o.node, o.offset).normalize() ); }, }, { key: "makeIsOn", value: function (t) { return function () { var e = pt.ancestor(this.sc, t); return !!e && e === pt.ancestor(this.ec, t); }; }, }, { key: "isLeftEdgeOf", value: function (t) { if (!pt.isLeftEdgePoint(this.getStartPoint())) return !1; var e = pt.ancestor(this.sc, t); return e && pt.isLeftEdgeOf(this.sc, e); }, }, { key: "isCollapsed", value: function () { return this.sc === this.ec && this.so === this.eo; }, }, { key: "wrapBodyInlineWithPara", value: function () { if (pt.isBodyContainer(this.sc) && pt.isEmpty(this.sc)) return ( (this.sc.innerHTML = pt.emptyPara), new t(this.sc.firstChild, 0, this.sc.firstChild, 0) ); var e, n = this.normalize(); if (pt.isParaInline(this.sc) || pt.isPara(this.sc)) return n; if (pt.isInline(n.sc)) { var o = pt.listAncestor(n.sc, g.not(pt.isInline)); (e = C.last(o)), pt.isInline(e) || (e = o[o.length - 2] || n.sc.childNodes[n.so]); } else e = n.sc.childNodes[n.so > 0 ? n.so - 1 : 0]; if (e) { var i = pt.listPrev(e, pt.isParaInline).reverse(); if ( (i = i.concat( pt.listNext(e.nextSibling, pt.isParaInline) )).length ) { var r = pt.wrap(C.head(i), "p"); pt.appendChildNodes(r, C.tail(i)); } } return this.normalize(); }, }, { key: "insertNode", value: function (t) { var e = this; (pt.isText(t) || pt.isInline(t)) && (e = this.wrapBodyInlineWithPara().deleteContents()); var n = pt.splitPoint(e.getStartPoint(), pt.isInline(t)); return ( n.rightNode ? (n.rightNode.parentNode.insertBefore(t, n.rightNode), pt.isEmpty(n.rightNode) && pt.isPara(t) && n.rightNode.parentNode.removeChild(n.rightNode)) : n.container.appendChild(t), t ); }, }, { key: "pasteHTML", value: function (t) { t = i.a.trim(t); var e = i()("
").html(t)[0], n = C.from(e.childNodes), o = this, r = !1; return ( o.so >= 0 && ((n = n.reverse()), (r = !0)), (n = n.map(function (t) { return o.insertNode(t); })), r && (n = n.reverse()), n ); }, }, { key: "toString", value: function () { var t = this.nativeRange(); return m.isW3CRangeSupport ? t.toString() : t.text; }, }, { key: "getWordRange", value: function (e) { var n = this.getEndPoint(); if (!pt.isCharPoint(n)) return this; var o = pt.prevPointUntil(n, function (t) { return !pt.isCharPoint(t); }); return ( e && (n = pt.nextPointUntil(n, function (t) { return !pt.isCharPoint(t); })), new t(o.node, o.offset, n.node, n.offset) ); }, }, { key: "getWordsRange", value: function (e) { var n = this.getEndPoint(), o = function (t) { return !pt.isCharPoint(t) && !pt.isSpacePoint(t); }; if (o(n)) return this; var i = pt.prevPointUntil(n, o); return ( e && (n = pt.nextPointUntil(n, o)), new t(i.node, i.offset, n.node, n.offset) ); }, }, { key: "getWordsMatchRange", value: function (e) { var n = this.getEndPoint(), o = pt.prevPointUntil(n, function (o) { if (!pt.isCharPoint(o) && !pt.isSpacePoint(o)) return !0; var i = new t(o.node, o.offset, n.node, n.offset), r = e.exec(i.toString()); return r && 0 === r.index; }), i = new t(o.node, o.offset, n.node, n.offset), r = i.toString(), a = e.exec(r); return a && a[0].length === r.length ? i : null; }, }, { key: "bookmark", value: function (t) { return { s: { path: pt.makeOffsetPath(t, this.sc), offset: this.so }, e: { path: pt.makeOffsetPath(t, this.ec), offset: this.eo }, }; }, }, { key: "paraBookmark", value: function (t) { return { s: { path: C.tail(pt.makeOffsetPath(C.head(t), this.sc)), offset: this.so, }, e: { path: C.tail(pt.makeOffsetPath(C.last(t), this.ec)), offset: this.eo, }, }; }, }, { key: "getClientRects", value: function () { return this.nativeRange().getClientRects(); }, }, ]) && gt(e.prototype, n), o && gt(e, o), t ); })(), wt = { create: function (t, e, n, o) { if (4 === arguments.length) return new yt(t, e, n, o); if (2 === arguments.length) return new yt(t, e, (n = t), (o = e)); var i = this.createFromSelection(); if (!i && 1 === arguments.length) { var r = arguments[0]; return ( pt.isEditable(r) && (r = r.lastChild), this.createFromBodyElement( r, pt.emptyPara === arguments[0].innerHTML ) ); } return i; }, createFromBodyElement: function (t) { var e = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], n = this.createFromNode(t); return n.collapse(e); }, createFromSelection: function () { var t, e, n, o; if (m.isW3CRangeSupport) { var i = document.getSelection(); if (!i || 0 === i.rangeCount) return null; if (pt.isBody(i.anchorNode)) return null; var r = i.getRangeAt(0); (t = r.startContainer), (e = r.startOffset), (n = r.endContainer), (o = r.endOffset); } else { var a = document.selection.createRange(), s = a.duplicate(); s.collapse(!1); var l = a; l.collapse(!0); var c = bt(l, !0), u = bt(s, !1); pt.isText(c.node) && pt.isLeftEdgePoint(c) && pt.isTextNode(u.node) && pt.isRightEdgePoint(u) && u.node.nextSibling === c.node && (c = u), (t = c.cont), (e = c.offset), (n = u.cont), (o = u.offset); } return new yt(t, e, n, o); }, createFromNode: function (t) { var e = t, n = 0, o = t, i = pt.nodeLength(o); return ( pt.isVoid(e) && ((n = pt.listPrev(e).length - 1), (e = e.parentNode)), pt.isBR(o) ? ((i = pt.listPrev(o).length - 1), (o = o.parentNode)) : pt.isVoid(o) && ((i = pt.listPrev(o).length), (o = o.parentNode)), this.create(e, n, o, i) ); }, createFromNodeBefore: function (t) { return this.createFromNode(t).collapse(!0); }, createFromNodeAfter: function (t) { return this.createFromNode(t).collapse(); }, createFromBookmark: function (t, e) { var n = pt.fromOffsetPath(t, e.s.path), o = e.s.offset, i = pt.fromOffsetPath(t, e.e.path), r = e.e.offset; return new yt(n, o, i, r); }, createFromParaBookmark: function (t, e) { var n = t.s.offset, o = t.e.offset, i = pt.fromOffsetPath(C.head(e), t.s.path), r = pt.fromOffsetPath(C.last(e), t.e.path); return new yt(i, n, r, o); }, }, Ct = { BACKSPACE: 8, TAB: 9, ENTER: 13, ESCAPE: 27, SPACE: 32, DELETE: 46, LEFT: 37, UP: 38, RIGHT: 39, DOWN: 40, NUM0: 48, NUM1: 49, NUM2: 50, NUM3: 51, NUM4: 52, NUM5: 53, NUM6: 54, NUM7: 55, NUM8: 56, B: 66, E: 69, I: 73, J: 74, K: 75, L: 76, R: 82, S: 83, U: 85, V: 86, Y: 89, Z: 90, SLASH: 191, LEFTBRACKET: 219, BACKSLASH: 220, RIGHTBRACKET: 221, HOME: 36, END: 35, PAGEUP: 33, PAGEDOWN: 34, }, xt = { isEdit: function (t) { return C.contains( [Ct.BACKSPACE, Ct.TAB, Ct.ENTER, Ct.SPACE, Ct.DELETE], t ); }, isMove: function (t) { return C.contains([Ct.LEFT, Ct.UP, Ct.RIGHT, Ct.DOWN], t); }, isNavigation: function (t) { return C.contains([Ct.HOME, Ct.END, Ct.PAGEUP, Ct.PAGEDOWN], t); }, nameFromCode: g.invertObject(Ct), code: Ct, }; function St(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var Tt = (function () { function t(e) { !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t), (this.stack = []), (this.stackOffset = -1), (this.context = e), (this.$editable = e.layoutInfo.editable), (this.editable = this.$editable[0]); } var e, n, o; return ( (e = t), (n = [ { key: "makeSnapshot", value: function () { var t = wt.create(this.editable); return { contents: this.$editable.html(), bookmark: t && t.isOnEditable() ? t.bookmark(this.editable) : { s: { path: [], offset: 0 }, e: { path: [], offset: 0 }, }, }; }, }, { key: "applySnapshot", value: function (t) { null !== t.contents && this.$editable.html(t.contents), null !== t.bookmark && wt.createFromBookmark(this.editable, t.bookmark).select(); }, }, { key: "rewind", value: function () { this.$editable.html() !== this.stack[this.stackOffset].contents && this.recordUndo(), (this.stackOffset = 0), this.applySnapshot(this.stack[this.stackOffset]); }, }, { key: "commit", value: function () { (this.stack = []), (this.stackOffset = -1), this.recordUndo(); }, }, { key: "reset", value: function () { (this.stack = []), (this.stackOffset = -1), this.$editable.html(""), this.recordUndo(); }, }, { key: "undo", value: function () { this.$editable.html() !== this.stack[this.stackOffset].contents && this.recordUndo(), this.stackOffset > 0 && (this.stackOffset--, this.applySnapshot(this.stack[this.stackOffset])); }, }, { key: "redo", value: function () { this.stack.length - 1 > this.stackOffset && (this.stackOffset++, this.applySnapshot(this.stack[this.stackOffset])); }, }, { key: "recordUndo", value: function () { this.stackOffset++, this.stack.length > this.stackOffset && (this.stack = this.stack.slice(0, this.stackOffset)), this.stack.push(this.makeSnapshot()), this.stack.length > this.context.options.historyLimit && (this.stack.shift(), (this.stackOffset -= 1)); }, }, ]) && St(e.prototype, n), o && St(e, o), t ); })(); function Et(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var $t = (function () { function t() { !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t); } var e, n, o; return ( (e = t), (n = [ { key: "jQueryCSS", value: function (t, e) { if (m.jqueryVersion < 1.9) { var n = {}; return ( i.a.each(e, function (e, o) { n[o] = t.css(o); }), n ); } return t.css(e); }, }, { key: "fromNode", value: function (t) { var e = this.jQueryCSS(t, [ "font-family", "font-size", "text-align", "list-style-type", "line-height", ]) || {}, n = t[0].style.fontSize || e["font-size"]; return ( (e["font-size"] = parseInt(n, 10)), (e["font-size-unit"] = n.match(/[a-z%]+$/)), e ); }, }, { key: "stylePara", value: function (t, e) { i.a.each( t.nodes(pt.isPara, { includeAncestor: !0 }), function (t, n) { i()(n).css(e); } ); }, }, { key: "styleNodes", value: function (t, e) { t = t.splitText(); var n = (e && e.nodeName) || "SPAN", o = !(!e || !e.expandClosestSibling), r = !(!e || !e.onlyPartialContains); if (t.isCollapsed()) return [t.insertNode(pt.create(n))]; var a = pt.makePredByNodeName(n), s = t .nodes(pt.isText, { fullyContains: !0 }) .map(function (t) { return pt.singleChildAncestor(t, a) || pt.wrap(t, n); }); if (o) { if (r) { var l = t.nodes(); a = g.and(a, function (t) { return C.contains(l, t); }); } return s.map(function (t) { var e = pt.withClosestSiblings(t, a), n = C.head(e), o = C.tail(e); return ( i.a.each(o, function (t, e) { pt.appendChildNodes(n, e.childNodes), pt.remove(e); }), C.head(e) ); }); } return s; }, }, { key: "current", value: function (t) { var e = i()(pt.isElement(t.sc) ? t.sc : t.sc.parentNode), n = this.fromNode(e); try { n = i.a.extend(n, { "font-bold": document.queryCommandState("bold") ? "bold" : "normal", "font-italic": document.queryCommandState("italic") ? "italic" : "normal", "font-underline": document.queryCommandState("underline") ? "underline" : "normal", "font-subscript": document.queryCommandState("subscript") ? "subscript" : "normal", "font-superscript": document.queryCommandState( "superscript" ) ? "superscript" : "normal", "font-strikethrough": document.queryCommandState( "strikethrough" ) ? "strikethrough" : "normal", "font-family": document.queryCommandValue("fontname") || n["font-family"], }); } catch (t) {} if (t.isOnList()) { var o = ["circle", "disc", "disc-leading-zero", "square"].indexOf( n["list-style-type"] ) > -1; n["list-style"] = o ? "unordered" : "ordered"; } else n["list-style"] = "none"; var r = pt.ancestor(t.sc, pt.isPara); if (r && r.style["line-height"]) n["line-height"] = r.style.lineHeight; else { var a = parseInt(n["line-height"], 10) / parseInt(n["font-size"], 10); n["line-height"] = a.toFixed(1); } return ( (n.anchor = t.isOnAnchor() && pt.ancestor(t.sc, pt.isAnchor)), (n.ancestors = pt.listAncestor(t.sc, pt.isEditable)), (n.range = t), n ); }, }, ]) && Et(e.prototype, n), o && Et(e, o), t ); })(); function Nt(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var It = (function () { function t() { !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t); } var e, n, o; return ( (e = t), (n = [ { key: "insertOrderedList", value: function (t) { this.toggleList("OL", t); }, }, { key: "insertUnorderedList", value: function (t) { this.toggleList("UL", t); }, }, { key: "indent", value: function (t) { var e = this, n = wt.create(t).wrapBodyInlineWithPara(), o = n.nodes(pt.isPara, { includeAncestor: !0 }), r = C.clusterBy(o, g.peq2("parentNode")); i.a.each(r, function (t, n) { var o = C.head(n); if (pt.isLi(o)) { var r = e.findList(o.previousSibling); r ? n.map(function (t) { return r.appendChild(t); }) : (e.wrapList(n, o.parentNode.nodeName), n .map(function (t) { return t.parentNode; }) .map(function (t) { return e.appendToPrevious(t); })); } else i.a.each(n, function (t, e) { i()(e).css("marginLeft", function (t, e) { return (parseInt(e, 10) || 0) + 25; }); }); }), n.select(); }, }, { key: "outdent", value: function (t) { var e = this, n = wt.create(t).wrapBodyInlineWithPara(), o = n.nodes(pt.isPara, { includeAncestor: !0 }), r = C.clusterBy(o, g.peq2("parentNode")); i.a.each(r, function (t, n) { var o = C.head(n); pt.isLi(o) ? e.releaseList([n]) : i.a.each(n, function (t, e) { i()(e).css("marginLeft", function (t, e) { return (e = parseInt(e, 10) || 0) > 25 ? e - 25 : ""; }); }); }), n.select(); }, }, { key: "toggleList", value: function (t, e) { var n = this, o = wt.create(e).wrapBodyInlineWithPara(), r = o.nodes(pt.isPara, { includeAncestor: !0 }), a = o.paraBookmark(r), s = C.clusterBy(r, g.peq2("parentNode")); if (C.find(r, pt.isPurePara)) { var l = []; i.a.each(s, function (e, o) { l = l.concat(n.wrapList(o, t)); }), (r = l); } else { var c = o .nodes(pt.isList, { includeAncestor: !0 }) .filter(function (e) { return !i.a.nodeName(e, t); }); c.length ? i.a.each(c, function (e, n) { pt.replace(n, t); }) : (r = this.releaseList(s, !0)); } wt.createFromParaBookmark(a, r).select(); }, }, { key: "wrapList", value: function (t, e) { var n = C.head(t), o = C.last(t), i = pt.isList(n.previousSibling) && n.previousSibling, r = pt.isList(o.nextSibling) && o.nextSibling, a = i || pt.insertAfter(pt.create(e || "UL"), o); return ( (t = t.map(function (t) { return pt.isPurePara(t) ? pt.replace(t, "LI") : t; })), pt.appendChildNodes(a, t), r && (pt.appendChildNodes(a, C.from(r.childNodes)), pt.remove(r)), t ); }, }, { key: "releaseList", value: function (t, e) { var n = this, o = []; return ( i.a.each(t, function (t, r) { var a = C.head(r), s = C.last(r), l = e ? pt.lastAncestor(a, pt.isList) : a.parentNode, c = l.parentNode; if ("LI" === l.parentNode.nodeName) r.map(function (t) { var e = n.findNextSiblings(t); c.nextSibling ? c.parentNode.insertBefore(t, c.nextSibling) : c.parentNode.appendChild(t), e.length && (n.wrapList(e, l.nodeName), t.appendChild(e[0].parentNode)); }), 0 === l.children.length && c.removeChild(l), 0 === c.childNodes.length && c.parentNode.removeChild(c); else { var u = l.childNodes.length > 1 ? pt.splitTree( l, { node: s.parentNode, offset: pt.position(s) + 1, }, { isSkipPaddingBlankHTML: !0 } ) : null, d = pt.splitTree( l, { node: a.parentNode, offset: pt.position(a) }, { isSkipPaddingBlankHTML: !0 } ); (r = e ? pt.listDescendant(d, pt.isLi) : C.from(d.childNodes).filter(pt.isLi)), (!e && pt.isList(l.parentNode)) || (r = r.map(function (t) { return pt.replace(t, "P"); })), i.a.each(C.from(r).reverse(), function (t, e) { pt.insertAfter(e, l); }); var h = C.compact([l, d, u]); i.a.each(h, function (t, e) { var n = [e].concat(pt.listDescendant(e, pt.isList)); i.a.each(n.reverse(), function (t, e) { pt.nodeLength(e) || pt.remove(e, !0); }); }); } o = o.concat(r); }), o ); }, }, { key: "appendToPrevious", value: function (t) { return t.previousSibling ? pt.appendChildNodes(t.previousSibling, [t]) : this.wrapList([t], "LI"); }, }, { key: "findList", value: function (t) { return t ? C.find(t.children, function (t) { return ["OL", "UL"].indexOf(t.nodeName) > -1; }) : null; }, }, { key: "findNextSiblings", value: function (t) { for (var e = []; t.nextSibling; ) e.push(t.nextSibling), (t = t.nextSibling); return e; }, }, ]) && Nt(e.prototype, n), o && Nt(e, o), t ); })(); function Pt(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var Rt = (function () { function t(e) { !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t), (this.bullet = new It()), (this.options = e.options); } var e, n, o; return ( (e = t), (n = [ { key: "insertTab", value: function (t, e) { var n = pt.createText(new Array(e + 1).join(pt.NBSP_CHAR)); (t = t.deleteContents()).insertNode(n, !0), (t = wt.create(n, e)).select(); }, }, { key: "insertParagraph", value: function (t, e) { e = (e = (e = e || wt.create(t)).deleteContents()).wrapBodyInlineWithPara(); var n, o = pt.ancestor(e.sc, pt.isPara); if (o) { if ( pt.isLi(o) && (pt.isEmpty(o) || pt.deepestChildIsEmpty(o)) ) return void this.bullet.toggleList(o.parentNode.nodeName); var r = null; if ( (1 === this.options.blockquoteBreakingLevel ? (r = pt.ancestor(o, pt.isBlockquote)) : 2 === this.options.blockquoteBreakingLevel && (r = pt.lastAncestor(o, pt.isBlockquote)), r) ) { (n = i()(pt.emptyPara)[0]), pt.isRightEdgePoint(e.getStartPoint()) && pt.isBR(e.sc.nextSibling) && i()(e.sc.nextSibling).remove(); var a = pt.splitTree(r, e.getStartPoint(), { isDiscardEmptySplits: !0, }); a ? a.parentNode.insertBefore(n, a) : pt.insertAfter(n, r); } else { n = pt.splitTree(o, e.getStartPoint()); var s = pt.listDescendant(o, pt.isEmptyAnchor); (s = s.concat(pt.listDescendant(n, pt.isEmptyAnchor))), i.a.each(s, function (t, e) { pt.remove(e); }), (pt.isHeading(n) || pt.isPre(n) || pt.isCustomStyleTag(n)) && pt.isEmpty(n) && (n = pt.replace(n, "p")); } } else { var l = e.sc.childNodes[e.so]; (n = i()(pt.emptyPara)[0]), l ? e.sc.insertBefore(n, l) : e.sc.appendChild(n); } wt.create(n, 0).normalize().select().scrollIntoView(t); }, }, ]) && Pt(e.prototype, n), o && Pt(e, o), t ); })(); function Lt(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var At = function t(e, n, o, i) { var r = { colPos: 0, rowPos: 0 }, a = [], s = []; function l(t, e, n, o, i, r, s) { var l = { baseRow: n, baseCell: o, isRowSpan: i, isColSpan: r, isVirtual: s, }; a[t] || (a[t] = []), (a[t][e] = l); } function c(t, e, n, o) { return { baseCell: t.baseCell, action: e, virtualTable: { rowIndex: n, cellIndex: o }, }; } function u(t, e) { if (!a[t]) return e; if (!a[t][e]) return e; for (var n = e; a[t][n]; ) if ((n++, !a[t][n])) return n; } function d(t, e) { var n = u(t.rowIndex, e.cellIndex), o = e.colSpan > 1, i = e.rowSpan > 1, a = t.rowIndex === r.rowPos && e.cellIndex === r.colPos; l(t.rowIndex, n, t, e, i, o, !1); var s = e.attributes.rowSpan ? parseInt(e.attributes.rowSpan.value, 10) : 0; if (s > 1) for (var c = 1; c < s; c++) { var d = t.rowIndex + c; h(d, n, e, a), l(d, n, t, e, !0, o, !0); } var f = e.attributes.colSpan ? parseInt(e.attributes.colSpan.value, 10) : 0; if (f > 1) for (var p = 1; p < f; p++) { var m = u(t.rowIndex, n + p); h(t.rowIndex, m, e, a), l(t.rowIndex, m, t, e, i, !0, !0); } } function h(t, e, n, o) { t === r.rowPos && r.colPos >= n.cellIndex && n.cellIndex <= e && !o && r.colPos++; } function f(e) { switch (n) { case t.where.Column: if (e.isColSpan) return t.resultAction.SubtractSpanCount; break; case t.where.Row: if (!e.isVirtual && e.isRowSpan) return t.resultAction.AddCell; if (e.isRowSpan) return t.resultAction.SubtractSpanCount; } return t.resultAction.RemoveCell; } function p(e) { switch (n) { case t.where.Column: if (e.isColSpan) return t.resultAction.SumSpanCount; if (e.isRowSpan && e.isVirtual) return t.resultAction.Ignore; break; case t.where.Row: if (e.isRowSpan) return t.resultAction.SumSpanCount; if (e.isColSpan && e.isVirtual) return t.resultAction.Ignore; } return t.resultAction.AddCell; } (this.getActionList = function () { for ( var e = n === t.where.Row ? r.rowPos : -1, i = n === t.where.Column ? r.colPos : -1, l = 0, u = !0; u; ) { var d = e >= 0 ? e : l, h = i >= 0 ? i : l, m = a[d]; if (!m) return (u = !1), s; var v = m[h]; if (!v) return (u = !1), s; var g = t.resultAction.Ignore; switch (o) { case t.requestAction.Add: g = p(v); break; case t.requestAction.Delete: g = f(v); } s.push(c(v, g, d, h)), l++; } return s; }), e && e.tagName && ("td" === e.tagName.toLowerCase() || "th" === e.tagName.toLowerCase()) && ((r.colPos = e.cellIndex), e.parentElement && e.parentElement.tagName && "tr" === e.parentElement.tagName.toLowerCase() && (r.rowPos = e.parentElement.rowIndex)), (function () { for (var t = i.rows, e = 0; e < t.length; e++) for (var n = t[e].cells, o = 0; o < n.length; o++) d(t[e], n[o]); })(); }; (At.where = { Row: 0, Column: 1 }), (At.requestAction = { Add: 0, Delete: 1 }), (At.resultAction = { Ignore: 0, SubtractSpanCount: 1, RemoveCell: 2, AddCell: 3, SumSpanCount: 4, }); var Ft = (function () { function t() { !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t); } var e, n, o; return ( (e = t), (n = [ { key: "tab", value: function (t, e) { var n = pt.ancestor(t.commonAncestor(), pt.isCell), o = pt.ancestor(n, pt.isTable), i = pt.listDescendant(o, pt.isCell), r = C[e ? "prev" : "next"](i, n); r && wt.create(r, 0).select(); }, }, { key: "addRow", value: function (t, e) { for ( var n = pt.ancestor(t.commonAncestor(), pt.isCell), o = i()(n).closest("tr"), r = this.recoverAttributes(o), a = i()(""), s = new At( n, At.where.Row, At.requestAction.Add, i()(o).closest("table")[0] ).getActionList(), l = 0; l < s.length; l++ ) { var c = s[l], u = this.recoverAttributes(c.baseCell); switch (c.action) { case At.resultAction.AddCell: a.append("" + pt.blank + ""); break; case At.resultAction.SumSpanCount: if ( "top" === e && (c.baseCell.parent ? c.baseCell.closest("tr").rowIndex : 0) <= o[0].rowIndex ) { var d = i()("
") .append( i()( "" + pt.blank + "" ).removeAttr("rowspan") ) .html(); a.append(d); break; } var h = parseInt(c.baseCell.rowSpan, 10); h++, c.baseCell.setAttribute("rowSpan", h); } } if ("top" === e) o.before(a); else { if (n.rowSpan > 1) { var f = o[0].rowIndex + (n.rowSpan - 2); return void i()(i()(o).parent().find("tr")[f]).after( i()(a) ); } o.after(a); } }, }, { key: "addCol", value: function (t, e) { var n = pt.ancestor(t.commonAncestor(), pt.isCell), o = i()(n).closest("tr"); i()(o).siblings().push(o); for ( var r = new At( n, At.where.Column, At.requestAction.Add, i()(o).closest("table")[0] ).getActionList(), a = 0; a < r.length; a++ ) { var s = r[a], l = this.recoverAttributes(s.baseCell); switch (s.action) { case At.resultAction.AddCell: "right" === e ? i()(s.baseCell).after( "" + pt.blank + "" ) : i()(s.baseCell).before( "" + pt.blank + "" ); break; case At.resultAction.SumSpanCount: if ("right" === e) { var c = parseInt(s.baseCell.colSpan, 10); c++, s.baseCell.setAttribute("colSpan", c); } else i()(s.baseCell).before( "" + pt.blank + "" ); } } }, }, { key: "recoverAttributes", value: function (t) { var e = ""; if (!t) return e; for (var n = t.attributes || [], o = 0; o < n.length; o++) "id" !== n[o].name.toLowerCase() && n[o].specified && (e += " " + n[o].name + "='" + n[o].value + "'"); return e; }, }, { key: "deleteRow", value: function (t) { for ( var e = pt.ancestor(t.commonAncestor(), pt.isCell), n = i()(e).closest("tr"), o = n.children("td, th").index(i()(e)), r = n[0].rowIndex, a = new At( e, At.where.Row, At.requestAction.Delete, i()(n).closest("table")[0] ).getActionList(), s = 0; s < a.length; s++ ) if (a[s]) { var l = a[s].baseCell, c = a[s].virtualTable, u = l.rowSpan && l.rowSpan > 1, d = u ? parseInt(l.rowSpan, 10) : 0; switch (a[s].action) { case At.resultAction.Ignore: continue; case At.resultAction.AddCell: var h = n.next("tr")[0]; if (!h) continue; var f = n[0].cells[o]; u && (d > 2 ? (d--, h.insertBefore(f, h.cells[o]), h.cells[o].setAttribute("rowSpan", d), (h.cells[o].innerHTML = "")) : 2 === d && (h.insertBefore(f, h.cells[o]), h.cells[o].removeAttribute("rowSpan"), (h.cells[o].innerHTML = ""))); continue; case At.resultAction.SubtractSpanCount: u && (d > 2 ? (d--, l.setAttribute("rowSpan", d), c.rowIndex !== r && l.cellIndex === o && (l.innerHTML = "")) : 2 === d && (l.removeAttribute("rowSpan"), c.rowIndex !== r && l.cellIndex === o && (l.innerHTML = ""))); continue; case At.resultAction.RemoveCell: continue; } } n.remove(); }, }, { key: "deleteCol", value: function (t) { for ( var e = pt.ancestor(t.commonAncestor(), pt.isCell), n = i()(e).closest("tr"), o = n.children("td, th").index(i()(e)), r = new At( e, At.where.Column, At.requestAction.Delete, i()(n).closest("table")[0] ).getActionList(), a = 0; a < r.length; a++ ) if (r[a]) switch (r[a].action) { case At.resultAction.Ignore: continue; case At.resultAction.SubtractSpanCount: var s = r[a].baseCell; if (s.colSpan && s.colSpan > 1) { var l = s.colSpan ? parseInt(s.colSpan, 10) : 0; l > 2 ? (l--, s.setAttribute("colSpan", l), s.cellIndex === o && (s.innerHTML = "")) : 2 === l && (s.removeAttribute("colSpan"), s.cellIndex === o && (s.innerHTML = "")); } continue; case At.resultAction.RemoveCell: pt.remove(r[a].baseCell, !0); continue; } }, }, { key: "createTable", value: function (t, e, n) { for (var o, r = [], a = 0; a < t; a++) r.push("" + pt.blank + ""); o = r.join(""); for (var s, l = [], c = 0; c < e; c++) l.push("" + o + ""); s = l.join(""); var u = i()("" + s + "
"); return ( n && n.tableClassName && u.addClass(n.tableClassName), u[0] ); }, }, { key: "deleteTable", value: function (t) { var e = pt.ancestor(t.commonAncestor(), pt.isCell); i()(e).closest("table").remove(); }, }, ]) && Lt(e.prototype, n), o && Lt(e, o), t ); })(); function Dt(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var Ht = (function () { function t(e) { var n = this; !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t), (this.context = e), (this.$note = e.layoutInfo.note), (this.$editor = e.layoutInfo.editor), (this.$editable = e.layoutInfo.editable), (this.options = e.options), (this.lang = this.options.langInfo), (this.editable = this.$editable[0]), (this.lastRange = null), (this.snapshot = null), (this.style = new $t()), (this.table = new Ft()), (this.typing = new Rt(e)), (this.bullet = new It()), (this.history = new Tt(e)), this.context.memo("help.escape", this.lang.help.escape), this.context.memo("help.undo", this.lang.help.undo), this.context.memo("help.redo", this.lang.help.redo), this.context.memo("help.tab", this.lang.help.tab), this.context.memo("help.untab", this.lang.help.untab), this.context.memo( "help.insertParagraph", this.lang.help.insertParagraph ), this.context.memo( "help.insertOrderedList", this.lang.help.insertOrderedList ), this.context.memo( "help.insertUnorderedList", this.lang.help.insertUnorderedList ), this.context.memo("help.indent", this.lang.help.indent), this.context.memo("help.outdent", this.lang.help.outdent), this.context.memo("help.formatPara", this.lang.help.formatPara), this.context.memo( "help.insertHorizontalRule", this.lang.help.insertHorizontalRule ), this.context.memo("help.fontName", this.lang.help.fontName); for ( var o = [ "bold", "italic", "underline", "strikethrough", "superscript", "subscript", "justifyLeft", "justifyCenter", "justifyRight", "justifyFull", "formatBlock", "removeFormat", "backColor", ], r = 0, a = o.length; r < a; r++ ) (this[o[r]] = (function (t) { return function (e) { n.beforeCommand(), document.execCommand(t, !1, e), n.afterCommand(!0); }; })(o[r])), this.context.memo("help." + o[r], this.lang.help[o[r]]); (this.fontName = this.wrapCommand(function (t) { return n.fontStyling("font-family", m.validFontName(t)); })), (this.fontSize = this.wrapCommand(function (t) { var e = n.currentStyle()["font-size-unit"]; return n.fontStyling("font-size", t + e); })), (this.fontSizeUnit = this.wrapCommand(function (t) { var e = n.currentStyle()["font-size"]; return n.fontStyling("font-size", e + t); })); for (var s = 1; s <= 6; s++) (this["formatH" + s] = (function (t) { return function () { n.formatBlock("H" + t); }; })(s)), this.context.memo( "help.formatH" + s, this.lang.help["formatH" + s] ); (this.insertParagraph = this.wrapCommand(function () { n.typing.insertParagraph(n.editable); })), (this.insertOrderedList = this.wrapCommand(function () { n.bullet.insertOrderedList(n.editable); })), (this.insertUnorderedList = this.wrapCommand(function () { n.bullet.insertUnorderedList(n.editable); })), (this.indent = this.wrapCommand(function () { n.bullet.indent(n.editable); })), (this.outdent = this.wrapCommand(function () { n.bullet.outdent(n.editable); })), (this.insertNode = this.wrapCommand(function (t) { n.isLimited(i()(t).text().length) || (n.getLastRange().insertNode(t), n.setLastRange(wt.createFromNodeAfter(t).select())); })), (this.insertText = this.wrapCommand(function (t) { if (!n.isLimited(t.length)) { var e = n.getLastRange().insertNode(pt.createText(t)); n.setLastRange(wt.create(e, pt.nodeLength(e)).select()); } })), (this.pasteHTML = this.wrapCommand(function (t) { if (!n.isLimited(t.length)) { t = n.context.invoke("codeview.purify", t); var e = n.getLastRange().pasteHTML(t); n.setLastRange(wt.createFromNodeAfter(C.last(e)).select()); } })), (this.formatBlock = this.wrapCommand(function (t, e) { var o = n.options.callbacks.onApplyCustomStyle; o ? o.call(n, e, n.context, n.onFormatBlock) : n.onFormatBlock(t, e); })), (this.insertHorizontalRule = this.wrapCommand(function () { var t = n.getLastRange().insertNode(pt.create("HR")); t.nextSibling && n.setLastRange( wt.create(t.nextSibling, 0).normalize().select() ); })), (this.lineHeight = this.wrapCommand(function (t) { n.style.stylePara(n.getLastRange(), { lineHeight: t }); })), (this.createLink = this.wrapCommand(function (t) { var e = t.url, o = t.text, r = t.isNewWindow, a = t.checkProtocol, s = t.range || n.getLastRange(), l = o.length - s.toString().length; if (!(l > 0 && n.isLimited(l))) { var c = s.toString() !== o; "string" == typeof e && (e = e.trim()), n.options.onCreateLink ? (e = n.options.onCreateLink(e)) : a && (e = /^([A-Za-z][A-Za-z0-9+-.]*\:|#|\/)/.test(e) ? e : n.options.defaultProtocol + e); var u = []; if (c) { var d = (s = s.deleteContents()).insertNode( i()("" + o + "")[0] ); u.push(d); } else u = n.style.styleNodes(s, { nodeName: "A", expandClosestSibling: !0, onlyPartialContains: !0, }); i.a.each(u, function (t, n) { i()(n).attr("href", e), r ? i()(n).attr("target", "_blank") : i()(n).removeAttr("target"); }), n.setLastRange(n.createRangeFromList(u).select()); } })), (this.color = this.wrapCommand(function (t) { var e = t.foreColor, n = t.backColor; e && document.execCommand("foreColor", !1, e), n && document.execCommand("backColor", !1, n); })), (this.foreColor = this.wrapCommand(function (t) { document.execCommand("foreColor", !1, t); })), (this.insertTable = this.wrapCommand(function (t) { var e = t.split("x"); n.getLastRange() .deleteContents() .insertNode(n.table.createTable(e[0], e[1], n.options)); })), (this.removeMedia = this.wrapCommand(function () { var t = i()(n.restoreTarget()).parent(); t.closest("figure").length ? t.closest("figure").remove() : (t = i()(n.restoreTarget()).detach()), n.context.triggerEvent("media.delete", t, n.$editable); })), (this.floatMe = this.wrapCommand(function (t) { var e = i()(n.restoreTarget()); e.toggleClass("note-float-left", "left" === t), e.toggleClass("note-float-right", "right" === t), e.css("float", "none" === t ? "" : t); })), (this.resize = this.wrapCommand(function (t) { var e = i()(n.restoreTarget()); 0 === (t = parseFloat(t)) ? e.css("width", "") : e.css({ width: 100 * t + "%", height: "" }); })); } var e, n, o; return ( (e = t), (n = [ { key: "initialize", value: function () { var t = this; this.$editable .on("keydown", function (e) { if ( (e.keyCode === xt.code.ENTER && t.context.triggerEvent("enter", e), t.context.triggerEvent("keydown", e), (t.snapshot = t.history.makeSnapshot()), (t.hasKeyShortCut = !1), e.isDefaultPrevented() || (t.options.shortcuts ? (t.hasKeyShortCut = t.handleKeyMap(e)) : t.preventDefaultEditableShortCuts(e)), t.isLimited(1, e)) ) { var n = t.getLastRange(); if (n.eo - n.so == 0) return !1; } t.setLastRange(), t.options.recordEveryKeystroke && !1 === t.hasKeyShortCut && t.history.recordUndo(); }) .on("keyup", function (e) { t.setLastRange(), t.context.triggerEvent("keyup", e); }) .on("focus", function (e) { t.setLastRange(), t.context.triggerEvent("focus", e); }) .on("blur", function (e) { t.context.triggerEvent("blur", e); }) .on("mousedown", function (e) { t.context.triggerEvent("mousedown", e); }) .on("mouseup", function (e) { t.setLastRange(), t.history.recordUndo(), t.context.triggerEvent("mouseup", e); }) .on("scroll", function (e) { t.context.triggerEvent("scroll", e); }) .on("paste", function (e) { t.setLastRange(), t.context.triggerEvent("paste", e); }) .on("input", function () { t.isLimited(0) && t.snapshot && t.history.applySnapshot(t.snapshot); }), this.$editable.attr("spellcheck", this.options.spellCheck), this.$editable.attr("autocorrect", this.options.spellCheck), this.options.disableGrammar && this.$editable.attr("data-gramm", !1), this.$editable.html(pt.html(this.$note) || pt.emptyPara), this.$editable.on( m.inputEventName, g.debounce(function () { t.context.triggerEvent( "change", t.$editable.html(), t.$editable ); }, 10) ), this.$editable .on("focusin", function (e) { t.context.triggerEvent("focusin", e); }) .on("focusout", function (e) { t.context.triggerEvent("focusout", e); }), this.options.airMode ? this.options.overrideContextMenu && this.$editor.on("contextmenu", function (e) { return t.context.triggerEvent("contextmenu", e), !1; }) : (this.options.width && this.$editor.outerWidth(this.options.width), this.options.height && this.$editable.outerHeight(this.options.height), this.options.maxHeight && this.$editable.css( "max-height", this.options.maxHeight ), this.options.minHeight && this.$editable.css( "min-height", this.options.minHeight )), this.history.recordUndo(), this.setLastRange(); }, }, { key: "destroy", value: function () { this.$editable.off(); }, }, { key: "handleKeyMap", value: function (t) { var e = this.options.keyMap[m.isMac ? "mac" : "pc"], n = []; t.metaKey && n.push("CMD"), t.ctrlKey && !t.altKey && n.push("CTRL"), t.shiftKey && n.push("SHIFT"); var o = xt.nameFromCode[t.keyCode]; o && n.push(o); var i = e[n.join("+")]; if ("TAB" !== o || this.options.tabDisable) if (i) { if (!1 !== this.context.invoke(i)) return t.preventDefault(), !0; } else xt.isEdit(t.keyCode) && this.afterCommand(); else this.afterCommand(); return !1; }, }, { key: "preventDefaultEditableShortCuts", value: function (t) { (t.ctrlKey || t.metaKey) && C.contains([66, 73, 85], t.keyCode) && t.preventDefault(); }, }, { key: "isLimited", value: function (t, e) { return ( (t = t || 0), (void 0 === e || !( xt.isMove(e.keyCode) || xt.isNavigation(e.keyCode) || e.ctrlKey || e.metaKey || C.contains([xt.code.BACKSPACE, xt.code.DELETE], e.keyCode) )) && this.options.maxTextLength > 0 && this.$editable.text().length + t > this.options.maxTextLength ); }, }, { key: "createRange", value: function () { return this.focus(), this.setLastRange(), this.getLastRange(); }, }, { key: "createRangeFromList", value: function (t) { var e = wt.createFromNodeBefore(C.head(t)).getStartPoint(), n = wt.createFromNodeAfter(C.last(t)).getEndPoint(); return wt.create(e.node, e.offset, n.node, n.offset); }, }, { key: "setLastRange", value: function (t) { t ? (this.lastRange = t) : ((this.lastRange = wt.create(this.editable)), 0 === i()(this.lastRange.sc).closest(".note-editable").length && (this.lastRange = wt.createFromBodyElement( this.editable ))); }, }, { key: "getLastRange", value: function () { return this.lastRange || this.setLastRange(), this.lastRange; }, }, { key: "saveRange", value: function (t) { t && this.getLastRange().collapse().select(); }, }, { key: "restoreRange", value: function () { this.lastRange && (this.lastRange.select(), this.focus()); }, }, { key: "saveTarget", value: function (t) { this.$editable.data("target", t); }, }, { key: "clearTarget", value: function () { this.$editable.removeData("target"); }, }, { key: "restoreTarget", value: function () { return this.$editable.data("target"); }, }, { key: "currentStyle", value: function () { var t = wt.create(); return ( t && (t = t.normalize()), t ? this.style.current(t) : this.style.fromNode(this.$editable) ); }, }, { key: "styleFromNode", value: function (t) { return this.style.fromNode(t); }, }, { key: "undo", value: function () { this.context.triggerEvent( "before.command", this.$editable.html() ), this.history.undo(), this.context.triggerEvent( "change", this.$editable.html(), this.$editable ); }, }, { key: "commit", value: function () { this.context.triggerEvent( "before.command", this.$editable.html() ), this.history.commit(), this.context.triggerEvent( "change", this.$editable.html(), this.$editable ); }, }, { key: "redo", value: function () { this.context.triggerEvent( "before.command", this.$editable.html() ), this.history.redo(), this.context.triggerEvent( "change", this.$editable.html(), this.$editable ); }, }, { key: "beforeCommand", value: function () { this.context.triggerEvent( "before.command", this.$editable.html() ), document.execCommand( "styleWithCSS", !1, this.options.styleWithCSS ), this.focus(); }, }, { key: "afterCommand", value: function (t) { this.normalizeContent(), this.history.recordUndo(), t || this.context.triggerEvent( "change", this.$editable.html(), this.$editable ); }, }, { key: "tab", value: function () { var t = this.getLastRange(); if (t.isCollapsed() && t.isOnCell()) this.table.tab(t); else { if (0 === this.options.tabSize) return !1; this.isLimited(this.options.tabSize) || (this.beforeCommand(), this.typing.insertTab(t, this.options.tabSize), this.afterCommand()); } }, }, { key: "untab", value: function () { var t = this.getLastRange(); if (t.isCollapsed() && t.isOnCell()) this.table.tab(t, !0); else if (0 === this.options.tabSize) return !1; }, }, { key: "wrapCommand", value: function (t) { return function () { this.beforeCommand(), t.apply(this, arguments), this.afterCommand(); }; }, }, { key: "insertImage", value: function (t, e) { var n, o = this; return ((n = t), i.a .Deferred(function (t) { var e = i()(""); e.one("load", function () { e.off("error abort"), t.resolve(e); }) .one("error abort", function () { e.off("load").detach(), t.reject(e); }) .css({ display: "none" }) .appendTo(document.body) .attr("src", n); }) .promise()) .then(function (t) { o.beforeCommand(), "function" == typeof e ? e(t) : ("string" == typeof e && t.attr("data-filename", e), t.css( "width", Math.min(o.$editable.width(), t.width()) )), t.show(), o.getLastRange().insertNode(t[0]), o.setLastRange(wt.createFromNodeAfter(t[0]).select()), o.afterCommand(); }) .fail(function (t) { o.context.triggerEvent("image.upload.error", t); }); }, }, { key: "insertImagesAsDataURL", value: function (t) { var e = this; i.a.each(t, function (t, n) { var o = n.name; e.options.maximumImageFileSize && e.options.maximumImageFileSize < n.size ? e.context.triggerEvent( "image.upload.error", e.lang.image.maximumFileSizeError ) : (function (t) { return i.a .Deferred(function (e) { i.a .extend(new FileReader(), { onload: function (t) { var n = t.target.result; e.resolve(n); }, onerror: function (t) { e.reject(t); }, }) .readAsDataURL(t); }) .promise(); })(n) .then(function (t) { return e.insertImage(t, o); }) .fail(function () { e.context.triggerEvent("image.upload.error"); }); }); }, }, { key: "insertImagesOrCallback", value: function (t) { this.options.callbacks.onImageUpload ? this.context.triggerEvent("image.upload", t) : this.insertImagesAsDataURL(t); }, }, { key: "getSelectedText", value: function () { var t = this.getLastRange(); return ( t.isOnAnchor() && (t = wt.createFromNode(pt.ancestor(t.sc, pt.isAnchor))), t.toString() ); }, }, { key: "onFormatBlock", value: function (t, e) { if ( (document.execCommand( "FormatBlock", !1, m.isMSIE ? "<" + t + ">" : t ), e && e.length && (e[0].tagName.toUpperCase() !== t.toUpperCase() && (e = e.find(t)), e && e.length)) ) { var n = e[0].className || ""; if (n) { var o = this.createRange(); i()([o.sc, o.ec]).closest(t).addClass(n); } } }, }, { key: "formatPara", value: function () { this.formatBlock("P"); }, }, { key: "fontStyling", value: function (t, e) { var n = this.getLastRange(); if ("" !== n) { var o = this.style.styleNodes(n); if ( (this.$editor.find(".note-status-output").html(""), i()(o).css(t, e), n.isCollapsed()) ) { var r = C.head(o); r && !pt.nodeLength(r) && ((r.innerHTML = pt.ZERO_WIDTH_NBSP_CHAR), wt.createFromNode(r.firstChild).select(), this.setLastRange(), this.$editable.data("bogus", r)); } else this.setLastRange(this.createRangeFromList(o).select()); } else { var a = i.a.now(); this.$editor .find(".note-status-output") .html( '
' + this.lang.output.noSelection + "
" ), setTimeout(function () { i()("#note-status-output-" + a).remove(); }, 5e3); } }, }, { key: "unlink", value: function () { var t = this.getLastRange(); if (t.isOnAnchor()) { var e = pt.ancestor(t.sc, pt.isAnchor); (t = wt.createFromNode(e)).select(), this.setLastRange(), this.beforeCommand(), document.execCommand("unlink"), this.afterCommand(); } }, }, { key: "getLinkInfo", value: function () { var t = this.getLastRange().expand(pt.isAnchor), e = i()(C.head(t.nodes(pt.isAnchor))), n = { range: t, text: t.toString(), url: e.length ? e.attr("href") : "", }; return ( e.length && (n.isNewWindow = "_blank" === e.attr("target")), n ); }, }, { key: "addRow", value: function (t) { var e = this.getLastRange(this.$editable); e.isCollapsed() && e.isOnCell() && (this.beforeCommand(), this.table.addRow(e, t), this.afterCommand()); }, }, { key: "addCol", value: function (t) { var e = this.getLastRange(this.$editable); e.isCollapsed() && e.isOnCell() && (this.beforeCommand(), this.table.addCol(e, t), this.afterCommand()); }, }, { key: "deleteRow", value: function () { var t = this.getLastRange(this.$editable); t.isCollapsed() && t.isOnCell() && (this.beforeCommand(), this.table.deleteRow(t), this.afterCommand()); }, }, { key: "deleteCol", value: function () { var t = this.getLastRange(this.$editable); t.isCollapsed() && t.isOnCell() && (this.beforeCommand(), this.table.deleteCol(t), this.afterCommand()); }, }, { key: "deleteTable", value: function () { var t = this.getLastRange(this.$editable); t.isCollapsed() && t.isOnCell() && (this.beforeCommand(), this.table.deleteTable(t), this.afterCommand()); }, }, { key: "resizeTo", value: function (t, e, n) { var o; if (n) { var i = t.y / t.x, r = e.data("ratio"); o = { width: r > i ? t.x : t.y / r, height: r > i ? t.x * r : t.y, }; } else o = { width: t.x, height: t.y }; e.css(o); }, }, { key: "hasFocus", value: function () { return this.$editable.is(":focus"); }, }, { key: "focus", value: function () { this.hasFocus() || this.$editable.focus(); }, }, { key: "isEmpty", value: function () { return ( pt.isEmpty(this.$editable[0]) || pt.emptyPara === this.$editable.html() ); }, }, { key: "empty", value: function () { this.context.invoke("code", pt.emptyPara); }, }, { key: "normalizeContent", value: function () { this.$editable[0].normalize(); }, }, ]) && Dt(e.prototype, n), o && Dt(e, o), t ); })(); function Bt(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var zt = (function () { function t(e) { !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t), (this.context = e), (this.$editable = e.layoutInfo.editable); } var e, n, o; return ( (e = t), (n = [ { key: "initialize", value: function () { this.$editable.on("paste", this.pasteByEvent.bind(this)); }, }, { key: "pasteByEvent", value: function (t) { var e = this, n = t.originalEvent.clipboardData; if (n && n.items && n.items.length) { var o = n.items.length > 1 ? n.items[1] : C.head(n.items); "file" === o.kind && -1 !== o.type.indexOf("image/") ? (this.context.invoke("editor.insertImagesOrCallback", [ o.getAsFile(), ]), t.preventDefault()) : "string" === o.kind && this.context.invoke( "editor.isLimited", n.getData("Text").length ) && t.preventDefault(); } else if (window.clipboardData) { var i = window.clipboardData.getData("text"); this.context.invoke("editor.isLimited", i.length) && t.preventDefault(); } setTimeout(function () { e.context.invoke("editor.afterCommand"); }, 10); }, }, ]) && Bt(e.prototype, n), o && Bt(e, o), t ); })(); function Mt(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var Ot = (function () { function t(e) { !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t), (this.context = e), (this.$eventListener = i()(document)), (this.$editor = e.layoutInfo.editor), (this.$editable = e.layoutInfo.editable), (this.options = e.options), (this.lang = this.options.langInfo), (this.documentEventHandlers = {}), (this.$dropzone = i()( [ '
', '
', "
", ].join("") ).prependTo(this.$editor)); } var e, n, o; return ( (e = t), (n = [ { key: "initialize", value: function () { this.options.disableDragAndDrop ? ((this.documentEventHandlers.onDrop = function (t) { t.preventDefault(); }), (this.$eventListener = this.$dropzone), this.$eventListener.on( "drop", this.documentEventHandlers.onDrop )) : this.attachDragAndDropEvent(); }, }, { key: "attachDragAndDropEvent", value: function () { var t = this, e = i()(), n = this.$dropzone.find(".note-dropzone-message"); (this.documentEventHandlers.onDragenter = function (o) { var i = t.context.invoke("codeview.isActivated"), r = t.$editor.width() > 0 && t.$editor.height() > 0; i || e.length || !r || (t.$editor.addClass("dragover"), t.$dropzone.width(t.$editor.width()), t.$dropzone.height(t.$editor.height()), n.text(t.lang.image.dragImageHere)), (e = e.add(o.target)); }), (this.documentEventHandlers.onDragleave = function (n) { ((e = e.not(n.target)).length && "BODY" !== n.target.nodeName) || ((e = i()()), t.$editor.removeClass("dragover")); }), (this.documentEventHandlers.onDrop = function () { (e = i()()), t.$editor.removeClass("dragover"); }), this.$eventListener .on("dragenter", this.documentEventHandlers.onDragenter) .on("dragleave", this.documentEventHandlers.onDragleave) .on("drop", this.documentEventHandlers.onDrop), this.$dropzone .on("dragenter", function () { t.$dropzone.addClass("hover"), n.text(t.lang.image.dropImage); }) .on("dragleave", function () { t.$dropzone.removeClass("hover"), n.text(t.lang.image.dragImageHere); }), this.$dropzone .on("drop", function (e) { var n = e.originalEvent.dataTransfer; e.preventDefault(), n && n.files && n.files.length ? (t.$editable.focus(), t.context.invoke( "editor.insertImagesOrCallback", n.files )) : i.a.each(n.types, function (e, o) { if (!(o.toLowerCase().indexOf("_moz_") > -1)) { var r = n.getData(o); o.toLowerCase().indexOf("text") > -1 ? t.context.invoke("editor.pasteHTML", r) : i()(r).each(function (e, n) { t.context.invoke("editor.insertNode", n); }); } }); }) .on("dragover", !1); }, }, { key: "destroy", value: function () { var t = this; Object.keys(this.documentEventHandlers).forEach(function (e) { t.$eventListener.off( e.substr(2).toLowerCase(), t.documentEventHandlers[e] ); }), (this.documentEventHandlers = {}); }, }, ]) && Mt(e.prototype, n), o && Mt(e, o), t ); })(); function jt(t) { if ("undefined" == typeof Symbol || null == t[Symbol.iterator]) { if ( Array.isArray(t) || (t = (function (t, e) { if (!t) return; if ("string" == typeof t) return Ut(t, e); var n = Object.prototype.toString.call(t).slice(8, -1); "Object" === n && t.constructor && (n = t.constructor.name); if ("Map" === n || "Set" === n) return Array.from(n); if ( "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ) return Ut(t, e); })(t)) ) { var e = 0, n = function () {}; return { s: n, n: function () { return e >= t.length ? { done: !0 } : { done: !1, value: t[e++] }; }, e: function (t) { throw t; }, f: n, }; } throw new TypeError( "Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method." ); } var o, i, r = !0, a = !1; return { s: function () { o = t[Symbol.iterator](); }, n: function () { var t = o.next(); return (r = t.done), t; }, e: function (t) { (a = !0), (i = t); }, f: function () { try { r || null == o.return || o.return(); } finally { if (a) throw i; } }, }; } function Ut(t, e) { (null == e || e > t.length) && (e = t.length); for (var n = 0, o = new Array(e); n < e; n++) o[n] = t[n]; return o; } function Wt(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var Kt = (function () { function t(e) { !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t), (this.context = e), (this.$editor = e.layoutInfo.editor), (this.$editable = e.layoutInfo.editable), (this.$codable = e.layoutInfo.codable), (this.options = e.options), (this.CodeMirrorConstructor = window.CodeMirror), this.options.codemirror.CodeMirrorConstructor && (this.CodeMirrorConstructor = this.options.codemirror.CodeMirrorConstructor); } var e, n, o; return ( (e = t), (n = [ { key: "sync", value: function (t) { var e = this.isActivated(), n = this.CodeMirrorConstructor; e && (t ? n ? this.$codable.data("cmEditor").getDoc().setValue(t) : this.$codable.val(t) : n && this.$codable.data("cmEditor").save()); }, }, { key: "initialize", value: function () { var t = this; this.$codable.on("keyup", function (e) { e.keyCode === xt.code.ESCAPE && t.deactivate(); }); }, }, { key: "isActivated", value: function () { return this.$editor.hasClass("codeview"); }, }, { key: "toggle", value: function () { this.isActivated() ? this.deactivate() : this.activate(), this.context.triggerEvent("codeview.toggled"); }, }, { key: "purify", value: function (t) { if ( this.options.codeviewFilter && ((t = t.replace(this.options.codeviewFilterRegex, "")), this.options.codeviewIframeFilter) ) { var e = this.options.codeviewIframeWhitelistSrc.concat( this.options.codeviewIframeWhitelistSrcBase ); t = t.replace( /(.*?(?:<\/iframe>)?)/gi, function (t) { if ( /<.+src(?==?('|"|\s)?)[\s\S]+src(?=('|"|\s)?)[^>]*?>/i.test( t ) ) return ""; var n, o = jt(e); try { for (o.s(); !(n = o.n()).done; ) { var i = n.value; if ( new RegExp( 'src="(https?:)?//' + i.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&") + '/(.+)"' ).test(t) ) return t; } } catch (t) { o.e(t); } finally { o.f(); } return ""; } ); } return t; }, }, { key: "activate", value: function () { var t = this, e = this.CodeMirrorConstructor; if ( (this.$codable.val( pt.html(this.$editable, this.options.prettifyHtml) ), this.$codable.height(this.$editable.height()), this.context.invoke("toolbar.updateCodeview", !0), this.context.invoke("airPopover.updateCodeview", !0), this.$editor.addClass("codeview"), this.$codable.focus(), e) ) { var n = e.fromTextArea( this.$codable[0], this.options.codemirror ); if (this.options.codemirror.tern) { var o = new e.TernServer(this.options.codemirror.tern); (n.ternServer = o), n.on("cursorActivity", function (t) { o.updateArgHints(t); }); } n.on("blur", function (e) { t.context.triggerEvent("blur.codeview", n.getValue(), e); }), n.on("change", function () { t.context.triggerEvent( "change.codeview", n.getValue(), n ); }), n.setSize(null, this.$editable.outerHeight()), this.$codable.data("cmEditor", n); } else this.$codable.on("blur", function (e) { t.context.triggerEvent( "blur.codeview", t.$codable.val(), e ); }), this.$codable.on("input", function () { t.context.triggerEvent( "change.codeview", t.$codable.val(), t.$codable ); }); }, }, { key: "deactivate", value: function () { if (this.CodeMirrorConstructor) { var t = this.$codable.data("cmEditor"); this.$codable.val(t.getValue()), t.toTextArea(); } var e = this.purify( pt.value(this.$codable, this.options.prettifyHtml) || pt.emptyPara ), n = this.$editable.html() !== e; this.$editable.html(e), this.$editable.height( this.options.height ? this.$codable.height() : "auto" ), this.$editor.removeClass("codeview"), n && this.context.triggerEvent( "change", this.$editable.html(), this.$editable ), this.$editable.focus(), this.context.invoke("toolbar.updateCodeview", !1), this.context.invoke("airPopover.updateCodeview", !1); }, }, { key: "destroy", value: function () { this.isActivated() && this.deactivate(); }, }, ]) && Wt(e.prototype, n), o && Wt(e, o), t ); })(); function Vt(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var qt = (function () { function t(e) { !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t), (this.$document = i()(document)), (this.$statusbar = e.layoutInfo.statusbar), (this.$editable = e.layoutInfo.editable), (this.options = e.options); } var e, n, o; return ( (e = t), (n = [ { key: "initialize", value: function () { var t = this; this.options.airMode || this.options.disableResizeEditor ? this.destroy() : this.$statusbar.on("mousedown", function (e) { e.preventDefault(), e.stopPropagation(); var n = t.$editable.offset().top - t.$document.scrollTop(), o = function (e) { var o = e.clientY - (n + 24); (o = t.options.minheight > 0 ? Math.max(o, t.options.minheight) : o), (o = t.options.maxHeight > 0 ? Math.min(o, t.options.maxHeight) : o), t.$editable.height(o); }; t.$document .on("mousemove", o) .one("mouseup", function () { t.$document.off("mousemove", o); }); }); }, }, { key: "destroy", value: function () { this.$statusbar.off(), this.$statusbar.addClass("locked"); }, }, ]) && Vt(e.prototype, n), o && Vt(e, o), t ); })(); function _t(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var Gt = (function () { function t(e) { var n = this; !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t), (this.context = e), (this.$editor = e.layoutInfo.editor), (this.$toolbar = e.layoutInfo.toolbar), (this.$editable = e.layoutInfo.editable), (this.$codable = e.layoutInfo.codable), (this.$window = i()(window)), (this.$scrollbar = i()("html, body")), (this.onResize = function () { n.resizeTo({ h: n.$window.height() - n.$toolbar.outerHeight() }); }); } var e, n, o; return ( (e = t), (n = [ { key: "resizeTo", value: function (t) { this.$editable.css("height", t.h), this.$codable.css("height", t.h), this.$codable.data("cmeditor") && this.$codable.data("cmeditor").setsize(null, t.h); }, }, { key: "toggle", value: function () { this.$editor.toggleClass("fullscreen card"), this.isFullscreen() ? (this.$editable.data( "orgHeight", this.$editable.css("height") ), this.$editable.data( "orgMaxHeight", this.$editable.css("maxHeight") ), this.$editable.css("maxHeight", ""), this.$window .on("resize", this.onResize) .trigger("resize"), this.$scrollbar.css("overflow", "hidden")) : (this.$window.off("resize", this.onResize), this.resizeTo({ h: this.$editable.data("orgHeight") }), this.$editable.css( "maxHeight", this.$editable.css("orgMaxHeight") ), this.$scrollbar.css("overflow", "visible")), this.context.invoke( "toolbar.updateFullscreen", this.isFullscreen() ); }, }, { key: "isFullscreen", value: function () { return this.$editor.hasClass("fullscreen"); }, }, ]) && _t(e.prototype, n), o && _t(e, o), t ); })(); function Yt(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var Zt = (function () { function t(e) { var n = this; !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t), (this.context = e), (this.$document = i()(document)), (this.$editingArea = e.layoutInfo.editingArea), (this.options = e.options), (this.lang = this.options.langInfo), (this.events = { "summernote.mousedown": function (t, e) { n.update(e.target, e) && e.preventDefault(); }, "summernote.keyup summernote.scroll summernote.change summernote.dialog.shown": function () { n.update(); }, "summernote.disable summernote.blur": function () { n.hide(); }, "summernote.codeview.toggled": function () { n.update(); }, }); } var e, n, o; return ( (e = t), (n = [ { key: "initialize", value: function () { var t = this; (this.$handle = i()( [ '
', '
', '
', '
', '
', '
', '
', this.options.disableResizeImage ? "" : '
', "
", "
", ].join("") ).prependTo(this.$editingArea)), this.$handle.on("mousedown", function (e) { if (pt.isControlSizing(e.target)) { e.preventDefault(), e.stopPropagation(); var n = t.$handle .find(".note-control-selection") .data("target"), o = n.offset(), i = t.$document.scrollTop(), r = function (e) { t.context.invoke( "editor.resizeTo", { x: e.clientX - o.left, y: e.clientY - (o.top - i), }, n, !e.shiftKey ), t.update(n[0], e); }; t.$document .on("mousemove", r) .one("mouseup", function (e) { e.preventDefault(), t.$document.off("mousemove", r), t.context.invoke("editor.afterCommand"); }), n.data("ratio") || n.data("ratio", n.height() / n.width()); } }), this.$handle.on("wheel", function (e) { e.preventDefault(), t.update(); }); }, }, { key: "destroy", value: function () { this.$handle.remove(); }, }, { key: "update", value: function (t, e) { if (this.context.isDisabled()) return !1; var n = pt.isImg(t), o = this.$handle.find(".note-control-selection"); if ((this.context.invoke("imagePopover.update", t, e), n)) { var r = i()(t), a = r.position(), s = { left: a.left + parseInt(r.css("marginLeft"), 10), top: a.top + parseInt(r.css("marginTop"), 10), }, l = { w: r.outerWidth(!1), h: r.outerHeight(!1) }; o.css({ display: "block", left: s.left, top: s.top, width: l.w, height: l.h, }).data("target", r); var c = new Image(); c.src = r.attr("src"); var u = l.w + "x" + l.h + " (" + this.lang.image.original + ": " + c.width + "x" + c.height + ")"; o.find(".note-control-selection-info").text(u), this.context.invoke("editor.saveTarget", t); } else this.hide(); return n; }, }, { key: "hide", value: function () { this.context.invoke("editor.clearTarget"), this.$handle.children().hide(); }, }, ]) && Yt(e.prototype, n), o && Yt(e, o), t ); })(); function Xt(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var Qt = /^([A-Za-z][A-Za-z0-9+-.]*\:[\/]{2}|tel:|mailto:[A-Z0-9._%+-]+@)?(www\.)?(.+)$/i, Jt = (function () { function t(e) { var n = this; !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t), (this.context = e), (this.options = e.options), (this.events = { "summernote.keyup": function (t, e) { e.isDefaultPrevented() || n.handleKeyup(e); }, "summernote.keydown": function (t, e) { n.handleKeydown(e); }, }); } var e, n, o; return ( (e = t), (n = [ { key: "initialize", value: function () { this.lastWordRange = null; }, }, { key: "destroy", value: function () { this.lastWordRange = null; }, }, { key: "replace", value: function () { if (this.lastWordRange) { var t = this.lastWordRange.toString(), e = t.match(Qt); if (e && (e[1] || e[2])) { var n = e[1] ? t : "http://" + t, o = this.options.showDomainOnlyForAutolink ? t .replace( /^(?:https?:\/\/)?(?:tel?:?)?(?:mailto?:?)?(?:www\.)?/i, "" ) .split("/")[0] : t, r = i()("").html(o).attr("href", n)[0]; this.context.options.linkTargetBlank && i()(r).attr("target", "_blank"), this.lastWordRange.insertNode(r), (this.lastWordRange = null), this.context.invoke("editor.focus"); } } }, }, { key: "handleKeydown", value: function (t) { if (C.contains([xt.code.ENTER, xt.code.SPACE], t.keyCode)) { var e = this.context .invoke("editor.createRange") .getWordRange(); this.lastWordRange = e; } }, }, { key: "handleKeyup", value: function (t) { C.contains([xt.code.ENTER, xt.code.SPACE], t.keyCode) && this.replace(); }, }, ]) && Xt(e.prototype, n), o && Xt(e, o), t ); })(); function te(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var ee = (function () { function t(e) { var n = this; !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t), (this.$note = e.layoutInfo.note), (this.events = { "summernote.change": function () { n.$note.val(e.invoke("code")); }, }); } var e, n, o; return ( (e = t), (n = [ { key: "shouldInitialize", value: function () { return pt.isTextarea(this.$note[0]); }, }, ]) && te(e.prototype, n), o && te(e, o), t ); })(); function ne(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var oe = (function () { function t(e) { var n = this; !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t), (this.context = e), (this.options = e.options.replace || {}), (this.keys = [ xt.code.ENTER, xt.code.SPACE, xt.code.PERIOD, xt.code.COMMA, xt.code.SEMICOLON, xt.code.SLASH, ]), (this.previousKeydownCode = null), (this.events = { "summernote.keyup": function (t, e) { e.isDefaultPrevented() || n.handleKeyup(e); }, "summernote.keydown": function (t, e) { n.handleKeydown(e); }, }); } var e, n, o; return ( (e = t), (n = [ { key: "shouldInitialize", value: function () { return !!this.options.match; }, }, { key: "initialize", value: function () { this.lastWord = null; }, }, { key: "destroy", value: function () { this.lastWord = null; }, }, { key: "replace", value: function () { if (this.lastWord) { var t = this, e = this.lastWord.toString(); this.options.match(e, function (e) { if (e) { var n = ""; if ( ("string" == typeof e ? (n = pt.createText(e)) : e instanceof jQuery ? (n = e[0]) : e instanceof Node && (n = e), !n) ) return; t.lastWord.insertNode(n), (t.lastWord = null), t.context.invoke("editor.focus"); } }); } }, }, { key: "handleKeydown", value: function (t) { if ( this.previousKeydownCode && C.contains(this.keys, this.previousKeydownCode) ) this.previousKeydownCode = t.keyCode; else { if (C.contains(this.keys, t.keyCode)) { var e = this.context .invoke("editor.createRange") .getWordRange(); this.lastWord = e; } this.previousKeydownCode = t.keyCode; } }, }, { key: "handleKeyup", value: function (t) { C.contains(this.keys, t.keyCode) && this.replace(); }, }, ]) && ne(e.prototype, n), o && ne(e, o), t ); })(); function ie(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var re = (function () { function t(e) { var n = this; !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t), (this.context = e), (this.$editingArea = e.layoutInfo.editingArea), (this.options = e.options), !0 === this.options.inheritPlaceholder && (this.options.placeholder = this.context.$note.attr("placeholder") || this.options.placeholder), (this.events = { "summernote.init summernote.change": function () { n.update(); }, "summernote.codeview.toggled": function () { n.update(); }, }); } var e, n, o; return ( (e = t), (n = [ { key: "shouldInitialize", value: function () { return !!this.options.placeholder; }, }, { key: "initialize", value: function () { var t = this; (this.$placeholder = i()('
')), this.$placeholder .on("click", function () { t.context.invoke("focus"); }) .html(this.options.placeholder) .prependTo(this.$editingArea), this.update(); }, }, { key: "destroy", value: function () { this.$placeholder.remove(); }, }, { key: "update", value: function () { var t = !this.context.invoke("codeview.isActivated") && this.context.invoke("editor.isEmpty"); this.$placeholder.toggle(t); }, }, ]) && ie(e.prototype, n), o && ie(e, o), t ); })(); function ae(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var se = (function () { function t(e) { !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t), (this.ui = i.a.summernote.ui), (this.context = e), (this.$toolbar = e.layoutInfo.toolbar), (this.options = e.options), (this.lang = this.options.langInfo), (this.invertedKeyMap = g.invertObject( this.options.keyMap[m.isMac ? "mac" : "pc"] )); } var e, n, o; return ( (e = t), (n = [ { key: "representShortcut", value: function (t) { var e = this.invertedKeyMap[t]; return this.options.shortcuts && e ? (m.isMac && (e = e.replace("CMD", "⌘").replace("SHIFT", "⇧")), " (" + (e = e .replace("BACKSLASH", "\\") .replace("SLASH", "/") .replace("LEFTBRACKET", "[") .replace("RIGHTBRACKET", "]")) + ")") : ""; }, }, { key: "button", value: function (t) { return ( !this.options.tooltip && t.tooltip && delete t.tooltip, (t.container = this.options.container), this.ui.button(t) ); }, }, { key: "initialize", value: function () { this.addToolbarButtons(), this.addImagePopoverButtons(), this.addLinkPopoverButtons(), this.addTablePopoverButtons(), (this.fontInstalledMap = {}); }, }, { key: "destroy", value: function () { delete this.fontInstalledMap; }, }, { key: "isFontInstalled", value: function (t) { return ( Object.prototype.hasOwnProperty.call( this.fontInstalledMap, t ) || (this.fontInstalledMap[t] = m.isFontInstalled(t) || C.contains(this.options.fontNamesIgnoreCheck, t)), this.fontInstalledMap[t] ); }, }, { key: "isFontDeservedToAdd", value: function (t) { return ( "" !== (t = t.toLowerCase()) && this.isFontInstalled(t) && -1 === m.genericFontFamilies.indexOf(t) ); }, }, { key: "colorPalette", value: function (t, e, n, o) { var r = this; return this.ui .buttonGroup({ className: "note-color " + t, children: [ this.button({ className: "note-current-color-button", contents: this.ui.icon( this.options.icons.font + " note-recent-color" ), tooltip: e, click: function (t) { var e = i()(t.currentTarget); n && o ? r.context.invoke("editor.color", { backColor: e.attr("data-backColor"), foreColor: e.attr("data-foreColor"), }) : n ? r.context.invoke("editor.color", { backColor: e.attr("data-backColor"), }) : o && r.context.invoke("editor.color", { foreColor: e.attr("data-foreColor"), }); }, callback: function (t) { var e = t.find(".note-recent-color"); n && (e.css( "background-color", r.options.colorButton.backColor ), t.attr( "data-backColor", r.options.colorButton.backColor )), o ? (e.css( "color", r.options.colorButton.foreColor ), t.attr( "data-foreColor", r.options.colorButton.foreColor )) : e.css("color", "transparent"); }, }), this.button({ className: "dropdown-toggle", contents: this.ui.dropdownButtonContents( "", this.options ), tooltip: this.lang.color.more, data: { toggle: "dropdown" }, }), this.ui.dropdown({ items: (n ? [ '
', '
' + this.lang.color.background + "
", "
", '", "
", '
\x3c!-- back colors --\x3e
', "
", '", '', "
", '
', "
", ].join("") : "") + (o ? [ '
', '
' + this.lang.color.foreground + "
", "
", '", "
", '
\x3c!-- fore colors --\x3e
', "
", '", '', "
", '
', "
", ].join("") : ""), callback: function (t) { t.find(".note-holder").each(function (t, e) { var n = i()(e); n.append( r.ui .palette({ colors: r.options.colors, colorsName: r.options.colorsName, eventName: n.data("event"), container: r.options.container, tooltip: r.options.tooltip, }) .render() ); }); var e = [ [ "#FFFFFF", "#FFFFFF", "#FFFFFF", "#FFFFFF", "#FFFFFF", "#FFFFFF", "#FFFFFF", "#FFFFFF", ], ]; t.find(".note-holder-custom").each(function (t, n) { var o = i()(n); o.append( r.ui .palette({ colors: e, colorsName: e, eventName: o.data("event"), container: r.options.container, tooltip: r.options.tooltip, }) .render() ); }), t.find("input[type=color]").each(function (e, n) { i()(n).change(function () { var e = t .find("#" + i()(this).data("event")) .find(".note-color-btn") .first(), n = this.value.toUpperCase(); e .css("background-color", n) .attr("aria-label", n) .attr("data-value", n) .attr("data-original-title", n), e.click(); }); }); }, click: function (e) { e.stopPropagation(); var n = i()("." + t).find(".note-dropdown-menu"), o = i()(e.target), a = o.data("event"), s = o.attr("data-value"); if ("openPalette" === a) { var l = n.find("#" + s), c = i()( n .find("#" + l.data("event")) .find(".note-color-row")[0] ), u = c.find(".note-color-btn").last().detach(), d = l.val(); u .css("background-color", d) .attr("aria-label", d) .attr("data-value", d) .attr("data-original-title", d), c.prepend(u), l.click(); } else { if (C.contains(["backColor", "foreColor"], a)) { var h = "backColor" === a ? "background-color" : "color", f = o .closest(".note-color") .find(".note-recent-color"), p = o .closest(".note-color") .find(".note-current-color-button"); f.css(h, s), p.attr("data-" + a, s); } r.context.invoke("editor." + a, s); } }, }), ], }) .render(); }, }, { key: "addToolbarButtons", value: function () { var t = this; this.context.memo("button.style", function () { return t.ui .buttonGroup([ t.button({ className: "dropdown-toggle", contents: t.ui.dropdownButtonContents( t.ui.icon(t.options.icons.magic), t.options ), tooltip: t.lang.style.style, data: { toggle: "dropdown" }, }), t.ui.dropdown({ className: "dropdown-style", items: t.options.styleTags, title: t.lang.style.style, template: function (e) { "string" == typeof e && (e = { tag: e, title: Object.prototype.hasOwnProperty.call( t.lang.style, e ) ? t.lang.style[e] : e, }); var n = e.tag, o = e.title; return ( "<" + n + (e.style ? ' style="' + e.style + '" ' : "") + (e.className ? ' class="' + e.className + '"' : "") + ">" + o + "" ); }, click: t.context.createInvokeHandler("editor.formatBlock"), }), ]) .render(); }); for ( var e = function (e, n) { var o = t.options.styleTags[e]; t.context.memo("button.style." + o, function () { return t .button({ className: "note-btn-style-" + o, contents: '
' + o.toUpperCase() + "
", tooltip: t.lang.style[o], click: t.context.createInvokeHandler( "editor.formatBlock" ), }) .render(); }); }, n = 0, o = this.options.styleTags.length; n < o; n++ ) e(n); this.context.memo("button.bold", function () { return t .button({ className: "note-btn-bold", contents: t.ui.icon(t.options.icons.bold), tooltip: t.lang.font.bold + t.representShortcut("bold"), click: t.context.createInvokeHandlerAndUpdateState( "editor.bold" ), }) .render(); }), this.context.memo("button.italic", function () { return t .button({ className: "note-btn-italic", contents: t.ui.icon(t.options.icons.italic), tooltip: t.lang.font.italic + t.representShortcut("italic"), click: t.context.createInvokeHandlerAndUpdateState( "editor.italic" ), }) .render(); }), this.context.memo("button.underline", function () { return t .button({ className: "note-btn-underline", contents: t.ui.icon(t.options.icons.underline), tooltip: t.lang.font.underline + t.representShortcut("underline"), click: t.context.createInvokeHandlerAndUpdateState( "editor.underline" ), }) .render(); }), this.context.memo("button.clear", function () { return t .button({ contents: t.ui.icon(t.options.icons.eraser), tooltip: t.lang.font.clear + t.representShortcut("removeFormat"), click: t.context.createInvokeHandler( "editor.removeFormat" ), }) .render(); }), this.context.memo("button.strikethrough", function () { return t .button({ className: "note-btn-strikethrough", contents: t.ui.icon(t.options.icons.strikethrough), tooltip: t.lang.font.strikethrough + t.representShortcut("strikethrough"), click: t.context.createInvokeHandlerAndUpdateState( "editor.strikethrough" ), }) .render(); }), this.context.memo("button.superscript", function () { return t .button({ className: "note-btn-superscript", contents: t.ui.icon(t.options.icons.superscript), tooltip: t.lang.font.superscript, click: t.context.createInvokeHandlerAndUpdateState( "editor.superscript" ), }) .render(); }), this.context.memo("button.subscript", function () { return t .button({ className: "note-btn-subscript", contents: t.ui.icon(t.options.icons.subscript), tooltip: t.lang.font.subscript, click: t.context.createInvokeHandlerAndUpdateState( "editor.subscript" ), }) .render(); }), this.context.memo("button.fontname", function () { var e = t.context.invoke("editor.currentStyle"); return ( t.options.addDefaultFonts && i.a.each(e["font-family"].split(","), function (e, n) { (n = n.trim().replace(/['"]+/g, "")), t.isFontDeservedToAdd(n) && -1 === t.options.fontNames.indexOf(n) && t.options.fontNames.push(n); }), t.ui .buttonGroup([ t.button({ className: "dropdown-toggle", contents: t.ui.dropdownButtonContents( '', t.options ), tooltip: t.lang.font.name, data: { toggle: "dropdown" }, }), t.ui.dropdownCheck({ className: "dropdown-fontname", checkClassName: t.options.icons.menuCheck, items: t.options.fontNames.filter( t.isFontInstalled.bind(t) ), title: t.lang.font.name, template: function (t) { return ( '' + t + "" ); }, click: t.context.createInvokeHandlerAndUpdateState( "editor.fontName" ), }), ]) .render() ); }), this.context.memo("button.fontsize", function () { return t.ui .buttonGroup([ t.button({ className: "dropdown-toggle", contents: t.ui.dropdownButtonContents( '', t.options ), tooltip: t.lang.font.size, data: { toggle: "dropdown" }, }), t.ui.dropdownCheck({ className: "dropdown-fontsize", checkClassName: t.options.icons.menuCheck, items: t.options.fontSizes, title: t.lang.font.size, click: t.context.createInvokeHandlerAndUpdateState( "editor.fontSize" ), }), ]) .render(); }), this.context.memo("button.fontsizeunit", function () { return t.ui .buttonGroup([ t.button({ className: "dropdown-toggle", contents: t.ui.dropdownButtonContents( '', t.options ), tooltip: t.lang.font.sizeunit, data: { toggle: "dropdown" }, }), t.ui.dropdownCheck({ className: "dropdown-fontsizeunit", checkClassName: t.options.icons.menuCheck, items: t.options.fontSizeUnits, title: t.lang.font.sizeunit, click: t.context.createInvokeHandlerAndUpdateState( "editor.fontSizeUnit" ), }), ]) .render(); }), this.context.memo("button.color", function () { return t.colorPalette( "note-color-all", t.lang.color.recent, !0, !0 ); }), this.context.memo("button.forecolor", function () { return t.colorPalette( "note-color-fore", t.lang.color.foreground, !1, !0 ); }), this.context.memo("button.backcolor", function () { return t.colorPalette( "note-color-back", t.lang.color.background, !0, !1 ); }), this.context.memo("button.ul", function () { return t .button({ contents: t.ui.icon(t.options.icons.unorderedlist), tooltip: t.lang.lists.unordered + t.representShortcut("insertUnorderedList"), click: t.context.createInvokeHandler( "editor.insertUnorderedList" ), }) .render(); }), this.context.memo("button.ol", function () { return t .button({ contents: t.ui.icon(t.options.icons.orderedlist), tooltip: t.lang.lists.ordered + t.representShortcut("insertOrderedList"), click: t.context.createInvokeHandler( "editor.insertOrderedList" ), }) .render(); }); var r = this.button({ contents: this.ui.icon(this.options.icons.alignLeft), tooltip: this.lang.paragraph.left + this.representShortcut("justifyLeft"), click: this.context.createInvokeHandler("editor.justifyLeft"), }), a = this.button({ contents: this.ui.icon(this.options.icons.alignCenter), tooltip: this.lang.paragraph.center + this.representShortcut("justifyCenter"), click: this.context.createInvokeHandler( "editor.justifyCenter" ), }), s = this.button({ contents: this.ui.icon(this.options.icons.alignRight), tooltip: this.lang.paragraph.right + this.representShortcut("justifyRight"), click: this.context.createInvokeHandler( "editor.justifyRight" ), }), l = this.button({ contents: this.ui.icon(this.options.icons.alignJustify), tooltip: this.lang.paragraph.justify + this.representShortcut("justifyFull"), click: this.context.createInvokeHandler("editor.justifyFull"), }), c = this.button({ contents: this.ui.icon(this.options.icons.outdent), tooltip: this.lang.paragraph.outdent + this.representShortcut("outdent"), click: this.context.createInvokeHandler("editor.outdent"), }), u = this.button({ contents: this.ui.icon(this.options.icons.indent), tooltip: this.lang.paragraph.indent + this.representShortcut("indent"), click: this.context.createInvokeHandler("editor.indent"), }); this.context.memo("button.justifyLeft", g.invoke(r, "render")), this.context.memo( "button.justifyCenter", g.invoke(a, "render") ), this.context.memo( "button.justifyRight", g.invoke(s, "render") ), this.context.memo( "button.justifyFull", g.invoke(l, "render") ), this.context.memo("button.outdent", g.invoke(c, "render")), this.context.memo("button.indent", g.invoke(u, "render")), this.context.memo("button.paragraph", function () { return t.ui .buttonGroup([ t.button({ className: "dropdown-toggle", contents: t.ui.dropdownButtonContents( t.ui.icon(t.options.icons.alignLeft), t.options ), tooltip: t.lang.paragraph.paragraph, data: { toggle: "dropdown" }, }), t.ui.dropdown([ t.ui.buttonGroup({ className: "note-align", children: [r, a, s, l], }), t.ui.buttonGroup({ className: "note-list", children: [c, u], }), ]), ]) .render(); }), this.context.memo("button.height", function () { return t.ui .buttonGroup([ t.button({ className: "dropdown-toggle", contents: t.ui.dropdownButtonContents( t.ui.icon(t.options.icons.textHeight), t.options ), tooltip: t.lang.font.height, data: { toggle: "dropdown" }, }), t.ui.dropdownCheck({ items: t.options.lineHeights, checkClassName: t.options.icons.menuCheck, className: "dropdown-line-height", title: t.lang.font.height, click: t.context.createInvokeHandler("editor.lineHeight"), }), ]) .render(); }), this.context.memo("button.table", function () { return t.ui .buttonGroup( [ t.button({ className: "dropdown-toggle", contents: t.ui.dropdownButtonContents( t.ui.icon(t.options.icons.table), t.options ), tooltip: t.lang.table.table, data: { toggle: "dropdown" }, }), t.ui.dropdown({ title: t.lang.table.table, className: "note-table", items: [ '
', '
', '
', '
', "
", '
1 x 1
', ].join(""), }), ], { callback: function (e) { e.find(".note-dimension-picker-mousecatcher") .css({ width: t.options.insertTableMaxSize.col + "em", height: t.options.insertTableMaxSize.row + "em", }) .mousedown( t.context.createInvokeHandler( "editor.insertTable" ) ) .on("mousemove", t.tableMoveHandler.bind(t)); }, } ) .render(); }), this.context.memo("button.link", function () { return t .button({ contents: t.ui.icon(t.options.icons.link), tooltip: t.lang.link.link + t.representShortcut("linkDialog.show"), click: t.context.createInvokeHandler("linkDialog.show"), }) .render(); }), this.context.memo("button.picture", function () { return t .button({ contents: t.ui.icon(t.options.icons.picture), tooltip: t.lang.image.image, click: t.context.createInvokeHandler("imageDialog.show"), }) .render(); }), this.context.memo("button.video", function () { return t .button({ contents: t.ui.icon(t.options.icons.video), tooltip: t.lang.video.video, click: t.context.createInvokeHandler("videoDialog.show"), }) .render(); }), this.context.memo("button.hr", function () { return t .button({ contents: t.ui.icon(t.options.icons.minus), tooltip: t.lang.hr.insert + t.representShortcut("insertHorizontalRule"), click: t.context.createInvokeHandler( "editor.insertHorizontalRule" ), }) .render(); }), this.context.memo("button.fullscreen", function () { return t .button({ className: "btn-fullscreen note-codeview-keep", contents: t.ui.icon(t.options.icons.arrowsAlt), tooltip: t.lang.options.fullscreen, click: t.context.createInvokeHandler("fullscreen.toggle"), }) .render(); }), this.context.memo("button.codeview", function () { return t .button({ className: "btn-codeview note-codeview-keep", contents: t.ui.icon(t.options.icons.code), tooltip: t.lang.options.codeview, click: t.context.createInvokeHandler("codeview.toggle"), }) .render(); }), this.context.memo("button.redo", function () { return t .button({ contents: t.ui.icon(t.options.icons.redo), tooltip: t.lang.history.redo + t.representShortcut("redo"), click: t.context.createInvokeHandler("editor.redo"), }) .render(); }), this.context.memo("button.undo", function () { return t .button({ contents: t.ui.icon(t.options.icons.undo), tooltip: t.lang.history.undo + t.representShortcut("undo"), click: t.context.createInvokeHandler("editor.undo"), }) .render(); }), this.context.memo("button.help", function () { return t .button({ contents: t.ui.icon(t.options.icons.question), tooltip: t.lang.options.help, click: t.context.createInvokeHandler("helpDialog.show"), }) .render(); }); }, }, { key: "addImagePopoverButtons", value: function () { var t = this; this.context.memo("button.resizeFull", function () { return t .button({ contents: '100%', tooltip: t.lang.image.resizeFull, click: t.context.createInvokeHandler( "editor.resize", "1" ), }) .render(); }), this.context.memo("button.resizeHalf", function () { return t .button({ contents: '50%', tooltip: t.lang.image.resizeHalf, click: t.context.createInvokeHandler( "editor.resize", "0.5" ), }) .render(); }), this.context.memo("button.resizeQuarter", function () { return t .button({ contents: '25%', tooltip: t.lang.image.resizeQuarter, click: t.context.createInvokeHandler( "editor.resize", "0.25" ), }) .render(); }), this.context.memo("button.resizeNone", function () { return t .button({ contents: t.ui.icon(t.options.icons.rollback), tooltip: t.lang.image.resizeNone, click: t.context.createInvokeHandler( "editor.resize", "0" ), }) .render(); }), this.context.memo("button.floatLeft", function () { return t .button({ contents: t.ui.icon(t.options.icons.floatLeft), tooltip: t.lang.image.floatLeft, click: t.context.createInvokeHandler( "editor.floatMe", "left" ), }) .render(); }), this.context.memo("button.floatRight", function () { return t .button({ contents: t.ui.icon(t.options.icons.floatRight), tooltip: t.lang.image.floatRight, click: t.context.createInvokeHandler( "editor.floatMe", "right" ), }) .render(); }), this.context.memo("button.floatNone", function () { return t .button({ contents: t.ui.icon(t.options.icons.rollback), tooltip: t.lang.image.floatNone, click: t.context.createInvokeHandler( "editor.floatMe", "none" ), }) .render(); }), this.context.memo("button.removeMedia", function () { return t .button({ contents: t.ui.icon(t.options.icons.trash), tooltip: t.lang.image.remove, click: t.context.createInvokeHandler("editor.removeMedia"), }) .render(); }); }, }, { key: "addLinkPopoverButtons", value: function () { var t = this; this.context.memo("button.linkDialogShow", function () { return t .button({ contents: t.ui.icon(t.options.icons.link), tooltip: t.lang.link.edit, click: t.context.createInvokeHandler("linkDialog.show"), }) .render(); }), this.context.memo("button.unlink", function () { return t .button({ contents: t.ui.icon(t.options.icons.unlink), tooltip: t.lang.link.unlink, click: t.context.createInvokeHandler("editor.unlink"), }) .render(); }); }, }, { key: "addTablePopoverButtons", value: function () { var t = this; this.context.memo("button.addRowUp", function () { return t .button({ className: "btn-md", contents: t.ui.icon(t.options.icons.rowAbove), tooltip: t.lang.table.addRowAbove, click: t.context.createInvokeHandler( "editor.addRow", "top" ), }) .render(); }), this.context.memo("button.addRowDown", function () { return t .button({ className: "btn-md", contents: t.ui.icon(t.options.icons.rowBelow), tooltip: t.lang.table.addRowBelow, click: t.context.createInvokeHandler( "editor.addRow", "bottom" ), }) .render(); }), this.context.memo("button.addColLeft", function () { return t .button({ className: "btn-md", contents: t.ui.icon(t.options.icons.colBefore), tooltip: t.lang.table.addColLeft, click: t.context.createInvokeHandler( "editor.addCol", "left" ), }) .render(); }), this.context.memo("button.addColRight", function () { return t .button({ className: "btn-md", contents: t.ui.icon(t.options.icons.colAfter), tooltip: t.lang.table.addColRight, click: t.context.createInvokeHandler( "editor.addCol", "right" ), }) .render(); }), this.context.memo("button.deleteRow", function () { return t .button({ className: "btn-md", contents: t.ui.icon(t.options.icons.rowRemove), tooltip: t.lang.table.delRow, click: t.context.createInvokeHandler("editor.deleteRow"), }) .render(); }), this.context.memo("button.deleteCol", function () { return t .button({ className: "btn-md", contents: t.ui.icon(t.options.icons.colRemove), tooltip: t.lang.table.delCol, click: t.context.createInvokeHandler("editor.deleteCol"), }) .render(); }), this.context.memo("button.deleteTable", function () { return t .button({ className: "btn-md", contents: t.ui.icon(t.options.icons.trash), tooltip: t.lang.table.delTable, click: t.context.createInvokeHandler("editor.deleteTable"), }) .render(); }); }, }, { key: "build", value: function (t, e) { for (var n = 0, o = e.length; n < o; n++) { for ( var i = e[n], r = Array.isArray(i) ? i[0] : i, a = Array.isArray(i) ? 1 === i.length ? [i[0]] : i[1] : [i], s = this.ui .buttonGroup({ className: "note-" + r }) .render(), l = 0, c = a.length; l < c; l++ ) { var u = this.context.memo("button." + a[l]); u && s.append("function" == typeof u ? u(this.context) : u); } s.appendTo(t); } }, }, { key: "updateCurrentStyle", value: function (t) { var e = this, n = t || this.$toolbar, o = this.context.invoke("editor.currentStyle"); if ( (this.updateBtnStates(n, { ".note-btn-bold": function () { return "bold" === o["font-bold"]; }, ".note-btn-italic": function () { return "italic" === o["font-italic"]; }, ".note-btn-underline": function () { return "underline" === o["font-underline"]; }, ".note-btn-subscript": function () { return "subscript" === o["font-subscript"]; }, ".note-btn-superscript": function () { return "superscript" === o["font-superscript"]; }, ".note-btn-strikethrough": function () { return "strikethrough" === o["font-strikethrough"]; }, }), o["font-family"]) ) { var r = o["font-family"].split(",").map(function (t) { return t .replace(/[\'\"]/g, "") .replace(/\s+$/, "") .replace(/^\s+/, ""); }), a = C.find(r, this.isFontInstalled.bind(this)); n.find(".dropdown-fontname a").each(function (t, e) { var n = i()(e), o = n.data("value") + "" == a + ""; n.toggleClass("checked", o); }), n .find(".note-current-fontname") .text(a) .css("font-family", a); } if (o["font-size"]) { var s = o["font-size"]; n.find(".dropdown-fontsize a").each(function (t, e) { var n = i()(e), o = n.data("value") + "" == s + ""; n.toggleClass("checked", o); }), n.find(".note-current-fontsize").text(s); var l = o["font-size-unit"]; n.find(".dropdown-fontsizeunit a").each(function (t, e) { var n = i()(e), o = n.data("value") + "" == l + ""; n.toggleClass("checked", o); }), n.find(".note-current-fontsizeunit").text(l); } if (o["line-height"]) { var c = o["line-height"]; n.find(".dropdown-line-height li a").each(function (t, n) { var o = i()(n).data("value") + "" == c + ""; e.className = o ? "checked" : ""; }); } }, }, { key: "updateBtnStates", value: function (t, e) { var n = this; i.a.each(e, function (e, o) { n.ui.toggleBtnActive(t.find(e), o()); }); }, }, { key: "tableMoveHandler", value: function (t) { var e, n = i()(t.target.parentNode), o = n.next(), r = n.find(".note-dimension-picker-mousecatcher"), a = n.find(".note-dimension-picker-highlighted"), s = n.find(".note-dimension-picker-unhighlighted"); if (void 0 === t.offsetX) { var l = i()(t.target).offset(); e = { x: t.pageX - l.left, y: t.pageY - l.top }; } else e = { x: t.offsetX, y: t.offsetY }; var c = Math.ceil(e.x / 18) || 1, u = Math.ceil(e.y / 18) || 1; a.css({ width: c + "em", height: u + "em" }), r.data("value", c + "x" + u), c > 3 && c < this.options.insertTableMaxSize.col && s.css({ width: c + 1 + "em" }), u > 3 && u < this.options.insertTableMaxSize.row && s.css({ height: u + 1 + "em" }), o.html(c + " x " + u); }, }, ]) && ae(e.prototype, n), o && ae(e, o), t ); })(); function le(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var ce = (function () { function t(e) { !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t), (this.context = e), (this.$window = i()(window)), (this.$document = i()(document)), (this.ui = i.a.summernote.ui), (this.$note = e.layoutInfo.note), (this.$editor = e.layoutInfo.editor), (this.$toolbar = e.layoutInfo.toolbar), (this.$editable = e.layoutInfo.editable), (this.$statusbar = e.layoutInfo.statusbar), (this.options = e.options), (this.isFollowing = !1), (this.followScroll = this.followScroll.bind(this)); } var e, n, o; return ( (e = t), (n = [ { key: "shouldInitialize", value: function () { return !this.options.airMode; }, }, { key: "initialize", value: function () { var t = this; (this.options.toolbar = this.options.toolbar || []), this.options.toolbar.length ? this.context.invoke( "buttons.build", this.$toolbar, this.options.toolbar ) : this.$toolbar.hide(), this.options.toolbarContainer && this.$toolbar.appendTo(this.options.toolbarContainer), this.changeContainer(!1), this.$note.on( "summernote.keyup summernote.mouseup summernote.change", function () { t.context.invoke("buttons.updateCurrentStyle"); } ), this.context.invoke("buttons.updateCurrentStyle"), this.options.followingToolbar && this.$window.on("scroll resize", this.followScroll); }, }, { key: "destroy", value: function () { this.$toolbar.children().remove(), this.options.followingToolbar && this.$window.off("scroll resize", this.followScroll); }, }, { key: "followScroll", value: function () { if (this.$editor.hasClass("fullscreen")) return !1; var t = this.$editor.outerHeight(), e = this.$editor.width(), n = this.$toolbar.height(), o = this.$statusbar.height(), r = 0; this.options.otherStaticBar && (r = i()(this.options.otherStaticBar).outerHeight()); var a = this.$document.scrollTop(), s = this.$editor.offset().top, l = s - r, c = s + t - r - n - o; !this.isFollowing && a > l && a < c - n ? ((this.isFollowing = !0), this.$editable.css({ marginTop: this.$toolbar.outerHeight(), }), this.$toolbar.css({ position: "fixed", top: r, width: e, zIndex: 1e3, })) : this.isFollowing && (a < l || a > c) && ((this.isFollowing = !1), this.$toolbar.css({ position: "relative", top: 0, width: "100%", zIndex: "auto", }), this.$editable.css({ marginTop: "" })); }, }, { key: "changeContainer", value: function (t) { t ? this.$toolbar.prependTo(this.$editor) : this.options.toolbarContainer && this.$toolbar.appendTo(this.options.toolbarContainer), this.options.followingToolbar && this.followScroll(); }, }, { key: "updateFullscreen", value: function (t) { this.ui.toggleBtnActive( this.$toolbar.find(".btn-fullscreen"), t ), this.changeContainer(t); }, }, { key: "updateCodeview", value: function (t) { this.ui.toggleBtnActive(this.$toolbar.find(".btn-codeview"), t), t ? this.deactivate() : this.activate(); }, }, { key: "activate", value: function (t) { var e = this.$toolbar.find("button"); t || (e = e.not(".note-codeview-keep")), this.ui.toggleBtn(e, !0); }, }, { key: "deactivate", value: function (t) { var e = this.$toolbar.find("button"); t || (e = e.not(".note-codeview-keep")), this.ui.toggleBtn(e, !1); }, }, ]) && le(e.prototype, n), o && le(e, o), t ); })(); function ue(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var de = (function () { function t(e) { !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t), (this.context = e), (this.ui = i.a.summernote.ui), (this.$body = i()(document.body)), (this.$editor = e.layoutInfo.editor), (this.options = e.options), (this.lang = this.options.langInfo), e.memo( "help.linkDialog.show", this.options.langInfo.help["linkDialog.show"] ); } var e, n, o; return ( (e = t), (n = [ { key: "initialize", value: function () { var t = this.options.dialogsInBody ? this.$body : this.options.container, e = [ '
', '"), '' ), "
", '
', '"), '' ), "
", this.options.disableLinkTarget ? "" : i()("
") .append( this.ui .checkbox({ className: "sn-checkbox-open-in-new-window", text: this.lang.link.openInNewWindow, checked: !0, }) .render() ) .html(), i()("
") .append( this.ui .checkbox({ className: "sn-checkbox-use-protocol", text: this.lang.link.useProtocol, checked: !0, }) .render() ) .html(), ].join(""), n = ''); this.$dialog = this.ui .dialog({ className: "link-dialog", title: this.lang.link.insert, fade: this.options.dialogsFade, body: e, footer: n, }) .render() .appendTo(t); }, }, { key: "destroy", value: function () { this.ui.hideDialog(this.$dialog), this.$dialog.remove(); }, }, { key: "bindEnterKey", value: function (t, e) { t.on("keypress", function (t) { t.keyCode === xt.code.ENTER && (t.preventDefault(), e.trigger("click")); }); }, }, { key: "toggleLinkBtn", value: function (t, e, n) { this.ui.toggleBtn(t, e.val() && n.val()); }, }, { key: "showLinkDialog", value: function (t) { var e = this; return i.a .Deferred(function (n) { var o = e.$dialog.find(".note-link-text"), i = e.$dialog.find(".note-link-url"), r = e.$dialog.find(".note-link-btn"), a = e.$dialog.find( ".sn-checkbox-open-in-new-window input[type=checkbox]" ), s = e.$dialog.find( ".sn-checkbox-use-protocol input[type=checkbox]" ); e.ui.onDialogShown(e.$dialog, function () { e.context.triggerEvent("dialog.shown"), !t.url && g.isValidUrl(t.text) && (t.url = t.text), o .on("input paste propertychange", function () { (t.text = o.val()), e.toggleLinkBtn(r, o, i); }) .val(t.text), i .on("input paste propertychange", function () { t.text || o.val(i.val()), e.toggleLinkBtn(r, o, i); }) .val(t.url), m.isSupportTouch || i.trigger("focus"), e.toggleLinkBtn(r, o, i), e.bindEnterKey(i, r), e.bindEnterKey(o, r); var l = void 0 !== t.isNewWindow ? t.isNewWindow : e.context.options.linkTargetBlank; a.prop("checked", l); var c = !t.url && e.context.options.useProtocol; s.prop("checked", c), r.one("click", function (r) { r.preventDefault(), n.resolve({ range: t.range, url: i.val(), text: o.val(), isNewWindow: a.is(":checked"), checkProtocol: s.is(":checked"), }), e.ui.hideDialog(e.$dialog); }); }), e.ui.onDialogHidden(e.$dialog, function () { o.off(), i.off(), r.off(), "pending" === n.state() && n.reject(); }), e.ui.showDialog(e.$dialog); }) .promise(); }, }, { key: "show", value: function () { var t = this, e = this.context.invoke("editor.getLinkInfo"); this.context.invoke("editor.saveRange"), this.showLinkDialog(e) .then(function (e) { t.context.invoke("editor.restoreRange"), t.context.invoke("editor.createLink", e); }) .fail(function () { t.context.invoke("editor.restoreRange"); }); }, }, ]) && ue(e.prototype, n), o && ue(e, o), t ); })(); function he(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var fe = (function () { function t(e) { var n = this; !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t), (this.context = e), (this.ui = i.a.summernote.ui), (this.options = e.options), (this.events = { "summernote.keyup summernote.mouseup summernote.change summernote.scroll": function () { n.update(); }, "summernote.disable summernote.dialog.shown summernote.blur": function () { n.hide(); }, }); } var e, n, o; return ( (e = t), (n = [ { key: "shouldInitialize", value: function () { return !C.isEmpty(this.options.popover.link); }, }, { key: "initialize", value: function () { this.$popover = this.ui .popover({ className: "note-link-popover", callback: function (t) { t.find(".popover-content,.note-popover-content").prepend( ' ' ); }, }) .render() .appendTo(this.options.container); var t = this.$popover.find( ".popover-content,.note-popover-content" ); this.context.invoke( "buttons.build", t, this.options.popover.link ), this.$popover.on("mousedown", function (t) { t.preventDefault(); }); }, }, { key: "destroy", value: function () { this.$popover.remove(); }, }, { key: "update", value: function () { if (this.context.invoke("editor.hasFocus")) { var t = this.context.invoke("editor.getLastRange"); if (t.isCollapsed() && t.isOnAnchor()) { var e = pt.ancestor(t.sc, pt.isAnchor), n = i()(e).attr("href"); this.$popover.find("a").attr("href", n).text(n); var o = pt.posFromPlaceholder(e), r = i()(this.options.container).offset(); (o.top -= r.top), (o.left -= r.left), this.$popover.css({ display: "block", left: o.left, top: o.top, }); } else this.hide(); } else this.hide(); }, }, { key: "hide", value: function () { this.$popover.hide(); }, }, ]) && he(e.prototype, n), o && he(e, o), t ); })(); function pe(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var me = (function () { function t(e) { !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t), (this.context = e), (this.ui = i.a.summernote.ui), (this.$body = i()(document.body)), (this.$editor = e.layoutInfo.editor), (this.options = e.options), (this.lang = this.options.langInfo); } var e, n, o; return ( (e = t), (n = [ { key: "initialize", value: function () { var t = ""; if (this.options.maximumImageFileSize) { var e = Math.floor( Math.log(this.options.maximumImageFileSize) / Math.log(1024) ), n = 1 * ( this.options.maximumImageFileSize / Math.pow(1024, e) ).toFixed(2) + " " + " KMGTP"[e] + "B"; t = "".concat( this.lang.image.maximumFileSize + " : " + n, "" ); } var o = this.options.dialogsInBody ? this.$body : this.options.container, i = [ '
', '", '', t, "
", '
', '", '', "
", ].join(""), r = ''); this.$dialog = this.ui .dialog({ title: this.lang.image.insert, fade: this.options.dialogsFade, body: i, footer: r, }) .render() .appendTo(o); }, }, { key: "destroy", value: function () { this.ui.hideDialog(this.$dialog), this.$dialog.remove(); }, }, { key: "bindEnterKey", value: function (t, e) { t.on("keypress", function (t) { t.keyCode === xt.code.ENTER && (t.preventDefault(), e.trigger("click")); }); }, }, { key: "show", value: function () { var t = this; this.context.invoke("editor.saveRange"), this.showImageDialog() .then(function (e) { t.ui.hideDialog(t.$dialog), t.context.invoke("editor.restoreRange"), "string" == typeof e ? t.options.callbacks.onImageLinkInsert ? t.context.triggerEvent("image.link.insert", e) : t.context.invoke("editor.insertImage", e) : t.context.invoke( "editor.insertImagesOrCallback", e ); }) .fail(function () { t.context.invoke("editor.restoreRange"); }); }, }, { key: "showImageDialog", value: function () { var t = this; return i.a.Deferred(function (e) { var n = t.$dialog.find(".note-image-input"), o = t.$dialog.find(".note-image-url"), i = t.$dialog.find(".note-image-btn"); t.ui.onDialogShown(t.$dialog, function () { t.context.triggerEvent("dialog.shown"), n.replaceWith( n .clone() .on("change", function (t) { e.resolve(t.target.files || t.target.value); }) .val("") ), o .on("input paste propertychange", function () { t.ui.toggleBtn(i, o.val()); }) .val(""), m.isSupportTouch || o.trigger("focus"), i.click(function (t) { t.preventDefault(), e.resolve(o.val()); }), t.bindEnterKey(o, i); }), t.ui.onDialogHidden(t.$dialog, function () { n.off(), o.off(), i.off(), "pending" === e.state() && e.reject(); }), t.ui.showDialog(t.$dialog); }); }, }, ]) && pe(e.prototype, n), o && pe(e, o), t ); })(); function ve(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var ge = (function () { function t(e) { var n = this; !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t), (this.context = e), (this.ui = i.a.summernote.ui), (this.editable = e.layoutInfo.editable[0]), (this.options = e.options), (this.events = { "summernote.disable summernote.blur": function () { n.hide(); }, }); } var e, n, o; return ( (e = t), (n = [ { key: "shouldInitialize", value: function () { return !C.isEmpty(this.options.popover.image); }, }, { key: "initialize", value: function () { this.$popover = this.ui .popover({ className: "note-image-popover" }) .render() .appendTo(this.options.container); var t = this.$popover.find( ".popover-content,.note-popover-content" ); this.context.invoke( "buttons.build", t, this.options.popover.image ), this.$popover.on("mousedown", function (t) { t.preventDefault(); }); }, }, { key: "destroy", value: function () { this.$popover.remove(); }, }, { key: "update", value: function (t, e) { if (pt.isImg(t)) { var n = i()(t).offset(), o = i()(this.options.container).offset(), r = {}; this.options.popatmouse ? ((r.left = e.pageX - 20), (r.top = e.pageY)) : (r = n), (r.top -= o.top), (r.left -= o.left), this.$popover.css({ display: "block", left: r.left, top: r.top, }); } else this.hide(); }, }, { key: "hide", value: function () { this.$popover.hide(); }, }, ]) && ve(e.prototype, n), o && ve(e, o), t ); })(); function be(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var ke = (function () { function t(e) { var n = this; !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t), (this.context = e), (this.ui = i.a.summernote.ui), (this.options = e.options), (this.events = { "summernote.mousedown": function (t, e) { n.update(e.target); }, "summernote.keyup summernote.scroll summernote.change": function () { n.update(); }, "summernote.disable summernote.blur": function () { n.hide(); }, }); } var e, n, o; return ( (e = t), (n = [ { key: "shouldInitialize", value: function () { return !C.isEmpty(this.options.popover.table); }, }, { key: "initialize", value: function () { this.$popover = this.ui .popover({ className: "note-table-popover" }) .render() .appendTo(this.options.container); var t = this.$popover.find( ".popover-content,.note-popover-content" ); this.context.invoke( "buttons.build", t, this.options.popover.table ), m.isFF && document.execCommand("enableInlineTableEditing", !1, !1), this.$popover.on("mousedown", function (t) { t.preventDefault(); }); }, }, { key: "destroy", value: function () { this.$popover.remove(); }, }, { key: "update", value: function (t) { if (this.context.isDisabled()) return !1; var e = pt.isCell(t); if (e) { var n = pt.posFromPlaceholder(t), o = i()(this.options.container).offset(); (n.top -= o.top), (n.left -= o.left), this.$popover.css({ display: "block", left: n.left, top: n.top, }); } else this.hide(); return e; }, }, { key: "hide", value: function () { this.$popover.hide(); }, }, ]) && be(e.prototype, n), o && be(e, o), t ); })(); function ye(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); } } var we = (function () { function t(e) { !(function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); })(this, t), (this.context = e), (this.ui = i.a.summernote.ui), (this.$body = i()(document.body)), (this.$editor = e.layoutInfo.editor), (this.options = e.options), (this.lang = this.options.langInfo); } var e, n, o; return ( (e = t), (n = [ { key: "initialize", value: function () { var t = this.options.dialogsInBody ? this.$body : this.options.container, e = [ '
', '"), '' ), "
", ].join(""), n = ''); this.$dialog = this.ui .dialog({ title: this.lang.video.insert, fade: this.options.dialogsFade, body: e, footer: n, }) .render() .appendTo(t); }, }, { key: "destroy", value: function () { this.ui.hideDialog(this.$dialog), this.$dialog.remove(); }, }, { key: "bindEnterKey", value: function (t, e) { t.on("keypress", function (t) { t.keyCode === xt.code.ENTER && (t.preventDefault(), e.trigger("click")); }); }, }, { key: "createVideoNode", value: function (t) { var e, n = t.match( /\/\/(?:(?:www|m)\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))([\w|-]{11})(?:(?:[\?&]t=)(\S+))?$/ ), o = t.match( /(?:www\.|\/\/)instagram\.com\/p\/(.[a-zA-Z0-9_-]*)/ ), r = t.match(/\/\/vine\.co\/v\/([a-zA-Z0-9]+)/), a = t.match( /\/\/(player\.)?vimeo\.com\/([a-z]*\/)*(\d+)[?]?.*/ ), s = t.match( /.+dailymotion.com\/(video|hub)\/([^_]+)[^#]*(#video=([^_&]+))?/ ), l = t.match(/\/\/v\.youku\.com\/v_show\/id_(\w+)=*\.html/), c = t.match(/\/\/v\.qq\.com.*?vid=(.+)/), u = t.match( /\/\/v\.qq\.com\/x?\/?(page|cover).*?\/([^\/]+)\.html\??.*/ ), d = t.match(/^.+.(mp4|m4v)$/), h = t.match(/^.+.(ogg|ogv)$/), f = t.match(/^.+.(webm)$/), p = t.match( /(?:www\.|\/\/)facebook\.com\/([^\/]+)\/videos\/([0-9]+)/ ); if (n && 11 === n[1].length) { var m = n[1], v = 0; if (void 0 !== n[2]) { var g = n[2].match(/^(?:(\d+)h)?(?:(\d+)m)?(?:(\d+)s)?$/); if (g) for ( var b = [3600, 60, 1], k = 0, y = b.length; k < y; k++ ) v += void 0 !== g[k + 1] ? b[k] * parseInt(g[k + 1], 10) : 0; } e = i()("