diff --git a/example/lib/main.dart b/example/lib/main.dart index 410f7063..4b7ea32e 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -125,26 +125,21 @@ class _HtmlEditorExampleState extends State { debugPrint('codeview either focused or unfocused'); }, onInit: () { debugPrint('init'); - // }, + }, //this is commented because it overrides the default Summernote handlers - /*onImageLinkInsert: (String? url) { - debugPrint(url ?? "unknown url"); - }, - onImageUpload: (FileUpload file) async { - debugPrint(file.name); - debugPrint(file.size); - debugPrint(file.type); - debugPrint(file.base64); - },*/ - // onImageUploadError: (FileUpload? file, String? base64Str, - // UploadError error) { - // debugPrint(describeEnum(error)); - // debugPrint(base64Str ?? ''); - // if (file != null) { - // debugPrint(file.name); - // debugPrint(file.size); - // debugPrint(file.type); - // } + // onImageLinkInsert: (String? url) { + // debugPrint(url ?? "unknown url"); + // }, + onImageUpload: (files) async { + for (var i = 0; i < files.length; i++ ) { + debugPrint('onImageUpload::INDEX = $i | ${files[i].name}'); + debugPrint('onImageUpload::${files[i].size}'); + debugPrint('onImageUpload::${files[i].type}'); + debugPrint('onImageUpload::${files[i].base64}'); + } + }, + onImageUploadError: (files, base64Str, error) { + debugPrint('onImageUploadError:: $error'); }, onKeyDown: (int? keyCode) { debugPrint('$keyCode key downed'); debugPrint( diff --git a/lib/assets/summernote-lite-unminified.js b/lib/assets/summernote-lite-unminified.js index a774f31d..75d90036 100644 --- a/lib/assets/summernote-lite-unminified.js +++ b/lib/assets/summernote-lite-unminified.js @@ -1,264 +1,299 @@ -/*! For license information please see summernote-lite.min.js.LICENSE.txt */ -!(function (t, e) { +/*! For license information please see summernote-lite.min-v2.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]; + var n = e("object" == typeof exports ? require("jquery") : t.jQuery); + for (var o in n)("object" == typeof exports ? exports : t)[o] = n[o] } -})(window, function (t) { - return (function (t) { +}(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; + 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; + 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 || 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) { + 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) { + return (a = "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) { + + function r(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); + 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 s = function() { + var t, e, n; + + function o(t, e, n, i) { + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o), this.markup = t, this.children = e, this.options = n, 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 - ); - })(); + return t = o, e = [{ + 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 + } + }, ], r(t.prototype, e), n && r(t, n), o + }(); e.a = { - create: function (t, e) { - return function () { - var n = "object" === r(arguments[1]) ? arguments[1] : arguments[0], + create: function(t, e) { + return function() { + var n = "object" === a(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); - }; - }, - }; + return n && n.children && (o = n.children), new s(t, o, n, e) + } + } + } }, - 2: function (t, e) { - (function (e) { - t.exports = e; - }.call(this, {})); + 2: function(t, e) { + (function(e) { + t.exports = e + }).call(this, {}) }, - 3: function (t, e, n) { + 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: "Drop file here to attach them", - dropImage: "Drop file here to attach them", - 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!" }, + 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: "Drop file here to attach them", + dropImage: "Drop file here to attach them", + 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" }, - }); - var r = "function" == typeof define && n(2), - a = ["sans-serif", "serif", "monospace", "cursive", "fantasy"]; + 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 a = "function" == typeof define && n(2), + r = ["sans-serif", "serif", "monospace", "cursive", "fantasy"]; + function s(t) { - return -1 === i.a.inArray(t.toLowerCase(), a) ? "'".concat(t, "'") : t; + return -1 === i.a.inArray(t.toLowerCase(), r) ? "'".concat(t, "'") : t } - var l, - c = navigator.userAgent, + 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])); + 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 = { + p = { isMac: navigator.appVersion.indexOf("Mac") > -1, isMSIE: u, isEdge: h, @@ -269,1263 +304,1218 @@ isSafari: !h && /safari/i.test(c) && !/chrome/i.test(c), browserVersion: l, jqueryVersion: parseFloat(i.a.fn.jquery), - isSupportAmd: r, + isSupportAmd: a, isSupportTouch: f, - isFontInstalled: function (t) { + 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; + 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); - }; + inputEventName: u ? "DOMCharacterDataModified DOMSubtreeModified DOMNodeInserted" : "input", + genericFontFamilies: r, + validFontName: s }, - 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); + v = 0, + m = { + eq: function(t) { + return function(e) { + return t === e + } + }, + eq2: function(t, e) { + return t === e }, - tail: y, - prev: function (t, e) { - if (t && t.length && e) { - var n = t.indexOf(e); - return -1 === n ? null : t[n - 1]; + peq2: function(t) { + return function(e, n) { + return e[t] === n[t] } - return null; }, - next: function (t, e) { - if (t && t.length && e) { - var n = t.indexOf(e); - return -1 === n ? null : t[n + 1]; + ok: function() { + return !0 + }, + fail: function() { + return !1 + }, + self: function(t) { + return t + }, + not: function(t) { + return function() { + return !t.apply(t, arguments) } - 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; + and: function(t, e) { + return function(n) { + return t(n) && e(n) } }, - contains: w, - all: function (t, e) { - for (var n = 0, o = t.length; n < o; n++) if (!e(t[n])) return !1; - return !0; + invoke: function(t, e) { + return function() { + return t[e].apply(t, arguments) + } }, - sum: function (t, e) { - return ( - (e = e || g.self), - t.reduce(function (t, n) { - return t + e(n); - }, 0) - ); + resetUniqueId: function() { + v = 0 }, - from: function (t) { - for (var e = [], n = t.length, o = -1; ++o < n; ) e[o] = t[o]; - return e; + uniqueId: function(t) { + var e = ++v + ""; + return t ? t + e : e }, - isEmpty: function (t) { - return !t || !t.length; + 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 + } }, - 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)]] - ) - : []; + invertObject: function(t) { + var e = {}; + for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[t[n]] = n); + return e }, - compact: function (t) { - for (var e = [], n = 0, o = t.length; n < o; n++) t[n] && e.push(t[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("") }, - unique: function (t) { - for (var e = [], n = 0, o = t.length; n < o; n++) w(e, t[n]) || e.push(t[n]); - return e; + debounce: function(t, e, n) { + var o; + return function() { + var i = this, + a = arguments, + r = function() { + o = null, n || t.apply(i, a) + }, + s = n && !o; + clearTimeout(o), o = setTimeout(r, e), s && t.apply(i, a) + } }, - }, - x = String.fromCharCode(160); - function S(t) { - return t && i()(t).hasClass("note-editable"); + isValidUrl: function(t) { + return /[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/gi.test(t) + } + }; + + function g(t) { + return t[0] + } + + function b(t) { + return t[t.length - 1] + } + + function k(t) { + return t.slice(1) + } + + function y(t, e) { + if (t && t.length && e) { + if (t.indexOf) return -1 !== t.indexOf(e); + if (t.contains) return t.contains(e) + } + return !1 } - function T(t) { - return ( - (t = t.toUpperCase()), - function (e) { - return e && e.nodeName.toUpperCase() === t; + var C = { + head: g, + last: b, + initial: function(t) { + return t.slice(0, t.length - 1) + }, + tail: k, + 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: y, + 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 || m.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) { + var n; + return t.length ? k(t).reduce(function(t, n) { + var o = b(t); + return e(b(o), n) ? o[o.length] = n : t[t.length] = [n], t + }, [ + [(n = t)[0]] + ]) : [] + }, + 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++) y(e, t[n]) || e.push(t[n]); + return e + } + }; + + function w(t) { + return t && i()(t).hasClass("note-editable") } - function E(t) { - return t && 3 === t.nodeType; + + function x(t) { + return t = t.toUpperCase(), + function(e) { + return e && e.nodeName.toUpperCase() === t + } } + function $(t) { - return t && /^BR|^IMG|^HR|^IFRAME|^BUTTON|^INPUT|^AUDIO|^VIDEO|^EMBED/.test(t.nodeName.toUpperCase()); + return t && 3 === t.nodeType + } + + function S(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()); + + function _(t) { + return !w(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)); + var N = x("PRE"), + T = x("LI"), + I = x("TABLE"), + E = x("DATA"); + + function P(t) { + return !(D(t) || R(t) || L(t) || _(t) || I(t) || F(t) || E(t)) } - function F(t) { - return t && /^UL|^OL/.test(t.nodeName.toUpperCase()); + + function R(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 L = x("HR"); + + function A(t) { + return t && /^TD|^TH/.test(t.nodeName.toUpperCase()) } - var B = T("BLOCKQUOTE"); - function z(t) { - return H(t) || B(t) || S(t); + var F = x("BLOCKQUOTE"); + + function D(t) { + return A(t) || F(t) || w(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; + var H = x("A"), + B = x("BODY"), + z = p.isMSIE && p.browserVersion < 11 ? " " : "
"; + + function M(t) { + return $(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 O(t) { + var e = M(t); + return 0 === e || !$(t) && 1 === e && t.innerHTML === z || !(!C.all(t.childNodes, $) || "" !== t.innerHTML) } - function K(t) { - $(t) || U(t) || (t.innerHTML = j); + + function U(t) { + S(t) || M(t) || (t.innerHTML = z) } - function V(t, e) { - for (; t; ) { + + function W(t, e) { + for (; t;) { if (e(t)) return t; - if (S(t)) break; - t = t.parentNode; + if (w(t)) break; + t = t.parentNode } - return null; + return null } - function q(t, e) { - e = e || g.fail; + + function j(t, e) { + e = e || m.fail; var n = []; - return ( - V(t, function (t) { - return S(t) || n.push(t), e(t); - }), - n - ); + return W(t, function(t) { + return w(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 K(t, e) { + e = e || m.fail; + for (var n = []; t && !e(t);) n.push(t), t = t.nextSibling; + return n } - function G(t, e) { + + function V(t, e) { var n = e.nextSibling, o = e.parentNode; - return n ? o.insertBefore(t, n) : o.appendChild(t), t; + 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 q(t, e) { + return i.a.each(e, function(e, n) { + t.appendChild(n) + }), t } - function Z(t) { - return 0 === t.offset; + + function G(t) { + return 0 === t.offset } - function X(t) { - return t.offset === U(t.node); + + function Y(t) { + return t.offset === M(t.node) } - function Q(t) { - return Z(t) || X(t); + + function Z(t) { + return G(t) || Y(t) } - function J(t, e) { - for (; t && t !== e; ) { - if (0 !== et(t)) return !1; - t = t.parentNode; + + function X(t, e) { + for (; t && t !== e;) { + if (0 !== J(t)) return !1; + t = t.parentNode } - return !0; + return !0 } - function tt(t, e) { + + function Q(t, e) { if (!e) return !1; - for (; t && t !== e; ) { - if (et(t) !== U(t.parentNode) - 1) return !1; - t = t.parentNode; + for (; t && t !== e;) { + if (J(t) !== M(t.parentNode) - 1) return !1; + t = t.parentNode } - return !0; + return !0 } - function et(t) { - for (var e = 0; (t = t.previousSibling); ) e += 1; - return e; + + function J(t) { + for (var e = 0; t = t.previousSibling;) e += 1; + return e } - function nt(t) { - return !!(t && t.childNodes && t.childNodes.length); + + function tt(t) { + return !!(t && t.childNodes && t.childNodes.length) } - function ot(t, e) { + + function te(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 }; + if (w(t.node)) return null; + n = t.node.parentNode, o = J(t.node) + } else tt(t.node) ? o = M(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) { + + function tn(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 }; + if (M(t.node) === t.offset) { + if (w(t.node)) return null; + var i = ti(t.node); + i ? (n = i, o = 0) : (n = t.node.parentNode, o = J(t.node) + 1) + } else tt(t.node) ? (n = t.node.childNodes[t.offset], o = 0) : (n = t.node, o = e ? M(t.node) : t.offset + 1); + return { + node: n, + offset: o + } } - function rt(t, e) { + + function to(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 }; + if (O(t.node)) return { + node: n = t.node.nextSibling, + offset: o = 0 + }; + if (M(t.node) === t.offset) { + if (w(t.node)) return null; + var i = ti(t.node); + i ? (n = i, o = 0) : (n = t.node.parentNode, o = J(t.node) + 1), w(n) && (n = t.node.nextSibling, o = 0) + } else if (tt(t.node)) { + if (o = 0, O(n = t.node.childNodes[t.offset])) return null + } else if (n = t.node, o = e ? M(t.node) : t.offset + 1, O(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 ti(t) { + if (t.nextSibling && t.parent === t.nextSibling.parent) return $(t.nextSibling) ? t.nextSibling : ti(t.nextSibling) } - function st(t, e) { - return t.node === e.node && t.offset === e.offset; + + function ta(t, e) { + return t.node === e.node && t.offset === e.offset } - function lt(t, e) { + + function tr(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 (i && (n = !0), Z(t) && ($(t.node) || o)) { + if (G(t)) return t.node; + if (Y(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; + if ($(t.node)) return t.node.splitText(t.offset); + var a = t.node.childNodes[t.offset], + r = V(t.node.cloneNode(!1), t.node); + return q(r, K(a)), n || (U(t.node), U(r)), i && (O(t.node) && tc(t.node), O(r)) ? (tc(r), t.node.nextSibling) : r } - 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 ts(t, e, n) { + var o = j(e.node, m.eq(t)); + return o.length ? 1 === o.length ? tr(e, n) : o.reduce(function(t, o) { + return t === e.node && (t = tr(e, n)), tr({ + node: o, + offset: t ? J(t) : M(o) + }, n) + }) : null } - function ut(t) { - return document.createElement(t); + + function tl(t) { + return document.createElement(t) } - function dt(t, e) { + + function tc(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); + for (var o = [], i = 0, a = t.childNodes.length; i < a; i++) o.push(t.childNodes[i]); + for (var r = 0, s = o.length; r < s; r++) n.insertBefore(o[r], t) } - n.removeChild(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 tu = x("TEXTAREA"); + + function td(t, e) { + var n = tu(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"); + var th = { + NBSP_CHAR: "\xa0", + ZERO_WIDTH_NBSP_CHAR: "\uFEFF", + blank: z, + emptyPara: "

".concat(z, "

"), + makePredByNodeName: x, + isEditable: w, + isControlSizing: function(t) { + return t && i()(t).hasClass("note-control-sizing") }, - isText: E, - isElement: function (t) { - return t && 1 === t.nodeType; + isText: $, + isElement: function(t) { + return t && 1 === t.nodeType }, - isVoid: $, - isPara: N, - isPurePara: function (t) { - return N(t) && !P(t); + isVoid: S, + isPara: _, + isPurePara: function(t) { + return _(t) && !T(t) }, - isHeading: function (t) { - return t && /^H[1-7]/.test(t.nodeName.toUpperCase()); + 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); + isInline: P, + isBlock: m.not(P), + isBodyInline: function(t) { + return P(t) && !W(t, _) }, - isBody: O, - isParaInline: function (t) { - return A(t) && !!V(t, N); + isBody: B, + isParaInline: function(t) { + return P(t) && !!W(t, _) }, - 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); + isPre: N, + isList: R, + isTable: I, + isData: E, + isCell: A, + isBlockquote: F, + isBodyContainer: D, + isAnchor: H, + isDiv: x("DIV"), + isLi: T, + isBR: x("BR"), + isSpan: x("SPAN"), + isB: x("B"), + isU: x("U"), + isS: x("S"), + isI: x("I"), + isImg: x("IMG"), + isTextarea: tu, + deepestChildIsEmpty: function(t) { + do + if (null === t.firstElementChild || "" === t.firstElementChild.innerHTML) break; while (t = t.firstElementChild); + return O(t) }, - isEmpty: W, - isEmptyAnchor: g.and(M, W), - isClosestSibling: function (t, e) { - return t.nextSibling === e || t.previousSibling === e; + isEmpty: O, + isEmptyAnchor: m.and(H, O), + isClosestSibling: function(t, e) { + return t.nextSibling === e || t.previousSibling === e }, - withClosestSiblings: function (t, e) { - e = e || g.ok; + withClosestSiblings: function(t, e) { + e = e || m.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; + 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); + nodeLength: M, + isLeftEdgePoint: G, + isRightEdgePoint: Y, + isEdgePoint: Z, + isLeftEdgeOf: X, + isRightEdgeOf: Q, + isLeftEdgePointOf: function(t, e) { + return G(t) && X(t.node, e) }, - isRightEdgePointOf: function (t, e) { - return X(t) && tt(t.node, e); + isRightEdgePointOf: function(t, e) { + return Y(t) && Q(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; + prevPoint: te, + nextPoint: tn, + nextPointWithEmptyNode: to, + isSamePoint: ta, + isVisiblePoint: function(t) { + if ($(t.node) || !tt(t.node) || O(t.node)) return !0; var e = t.node.childNodes[t.offset - 1], n = t.node.childNodes[t.offset]; - return !((e && !$(e)) || (n && !$(n))); + return !(e && !S(e) || n && !S(n)) }, - prevPointUntil: function (t, e) { - for (; t; ) { + prevPointUntil: function(t, e) { + for (; t;) { if (e(t)) return t; - t = ot(t); + t = te(t) } - return null; + return null }, - nextPointUntil: function (t, e) { - for (; t; ) { + nextPointUntil: function(t, e) { + for (; t;) { if (e(t)) return t; - t = it(t); + t = tn(t) } - return null; + return null }, - isCharPoint: function (t) { - if (!E(t.node)) return !1; + isCharPoint: function(t) { + if (!$(t.node)) return !1; var e = t.node.nodeValue.charAt(t.offset - 1); - return e && " " !== e && e !== x; + return e && " " !== e && "\xa0" !== e }, - isSpacePoint: function (t) { - if (!E(t.node)) return !1; + isSpacePoint: function(t) { + if (!$(t.node)) return !1; var e = t.node.nodeValue.charAt(t.offset - 1); - return " " === e || e === x; + return " " === e || "\xa0" === e }, - 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); - } + walkPoint: function(t, e, n, o) { + for (var i = t; i && (n(i), !ta(i, e));) i = to(i, o && t.node !== i.node && e.node !== i.node) }, - ancestor: V, - singleChildAncestor: function (t, e) { - for (t = t.parentNode; t && 1 === U(t); ) { + ancestor: W, + singleChildAncestor: function(t, e) { + for (t = t.parentNode; t && 1 === M(t);) { if (e(t)) return t; - if (S(t)) break; - t = t.parentNode; + if (w(t)) break; + t = t.parentNode } - return null; + return null }, - listAncestor: q, - lastAncestor: function (t, e) { - var n = q(t); - return C.last(n.filter(e)); + listAncestor: j, + lastAncestor: function(t, e) { + var n = j(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; + listNext: K, + listPrev: function(t, e) { + e = e || m.fail; + for (var n = []; t && !e(t);) n.push(t), t = t.previousSibling; + return n }, - listDescendant: function (t, e) { + listDescendant: function(t, e) { var n = []; - return ( - (e = e || g.ok), - (function o(i) { + return e = e || m.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 - ); + for (var a = 0, r = i.childNodes.length; a < r; a++) o(i.childNodes[a]) + }(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; + commonAncestor: function(t, e) { + for (var n = j(t), o = e; o; o = o.parentNode) + if (n.indexOf(o) > -1) return o; + return null }, - wrap: function (t, e) { + wrap: function(t, e) { var n = t.parentNode, o = i()("<" + e + ">")[0]; - return n.insertBefore(o, t), o.appendChild(t), o; + 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(); + insertAfter: V, + appendChildNodes: q, + position: J, + hasChildren: tt, + makeOffsetPath: function(t, e) { + return j(e, m.eq(t)).map(J).reverse() }, - fromOffsetPath: function (t, e) { + 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; + 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 }; + splitTree: ts, + splitPoint: function(t, e) { + var n, o, i = e ? _ : D, + a = j(t.node, i), + r = C.last(a) || t.node; + i(r) ? (n = a[a.length - 2], o = r) : o = (n = r).parentNode; + var s = n && ts(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); + create: tl, + createText: function(t) { + return document.createTextNode(t) }, - remove: dt, - removeWhile: function (t, e) { - for (; t && !S(t) && e(t); ) { + remove: tc, + removeWhile: function(t, e) { + for (; t && !w(t) && e(t);) { var n = t.parentNode; - dt(t), (t = n); + tc(t), t = n } }, - replace: function (t, e) { + 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; + var n = tl(e); + return t.style.cssText && (n.style.cssText = t.style.cssText), q(n, C.from(t.childNodes)), V(n, t), tc(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; + html: function(t, e) { + var n = td(t); + return 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()), n }, - value: ft, - posFromPlaceholder: function (t) { + value: td, + 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]); - }); + return { + left: n.left, + top: n.top + o + } }, - detachEvents: function (t, e) { - Object.keys(e).forEach(function (n) { - t.off(n, e[n]); - }); + attachEvents: function(t, e) { + Object.keys(e).forEach(function(n) { + t.on(n, e[n]) + }) }, - isCustomStyleTag: function (t) { - return t && !E(t) && C.contains(t.classList, "note-styletag"); + detachEvents: function(t, e) { + Object.keys(e).forEach(function(n) { + t.off(n, e[n]) + }) }, + isCustomStyleTag: function(t) { + return t && !$(t) && C.contains(t.classList, "note-styletag") + } }; - function mt(t, e) { + + function tf(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); + 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 tp = function() { + var t, e, n; + + function o(t, e) { + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o), this.$note = t, this.memos = {}, this.modules = {}, this.layoutInfo = {}, this.options = i.a.extend(!0, {}, e), 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) { + return t = o, e = [{ + 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(th.emptyPara), this._destroy(), this._initialize(), t && this.disable() + } + }, { + key: "_initialize", + value: function() { + var t = this; + this.options.id = m.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[m.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 || m.ok, e.shouldInitialize() && (e.initialize && e.initialize(), e.events && th.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 && th.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 a = i()(o.target); + n.invoke(t, e || a.closest("[data-value]").data("value"), a) + } + } + }, { + 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), + a = o ? C.last(n) : C.head(n), + r = this.modules[i || "editor"]; + return !i && this[a] ? this[a].apply(this, e) : r && r[a] && r.shouldInitialize() ? r[a].apply(r, e) : void 0 + } + }, ], tf(t.prototype, e), n && tf(t, n), o + }(); + + function tv(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); + 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])) { + + function tm(t, e) { + var n, o, i = t.parentElement(), + a = document.body.createTextRange(), + r = C.from(i.childNodes); + for (n = 0; n < r.length; n++) + if (!th.isText(r[n])) { + if (a.moveToElementText(r[n]), a.compareEndPoints("StartToStart", t) >= 0) break; + o = r[n] + } if (0 !== n && th.isText(r[n - 1])) { var s = document.body.createTextRange(), l = null; - s.moveToElementText(o || i), s.collapse(!o), (l = o ? o.nextSibling : i.firstChild); + 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); + 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 && th.isText(l.nextSibling) && u === l.nodeValue.length && (u -= l.nodeValue.length, l = l.nextSibling), i = l, n = u + } + return { + cont: i, + offset: n } - return { cont: i, offset: n }; } - function kt(t) { + + function tg(t) { var e = document.body.createTextRange(), - n = (function t(e, n) { + 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); + if (th.isText(e)) { + var a = th.listPrev(e, m.not(th.isText)), + r = C.last(a).previousSibling; + o = r || e.parentNode, n += C.sum(C.tail(a), th.nodeLength), i = !r } else { - if (((o = e.childNodes[n] || e), pt.isText(o))) return t(o, 0); - (n = 0), (i = !1); + if (o = e.childNodes[n] || e, th.isText(o)) return t(o, 0); + n = 0, i = !1 + } + return { + node: o, + collapseToStart: i, + offset: n } - 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; + }(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 () { + 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"); + e = i.a.extend({}, i.a.summernote.options, "object" === t ? C.head(arguments) : {}); + e.langInfo = i.a.extend(!0, {}, i.a.summernote.lang["en-US"], i.a.summernote.lang[e.lang]), e.icons = i.a.extend(!0, {}, i.a.summernote.options.icons, e.icons), e.tooltip = "auto" === e.tooltip ? !p.isSupportTouch : e.tooltip, this.each(function(t, n) { + var o = i()(n); + if (!o.data("summernote")) { + var a = new tp(o, e); + o.data("summernote", a), o.data("summernote").triggerEvent("init", a.layoutInfo) + } + }); + var n = this.first(); + if (n.length) { + var o = n.data("summernote"); + if ("string" === t) return o.invoke.apply(o, C.from(arguments)); + e.focus && o.invoke("editor.focus") } - return this; - }, + 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 tb = function() { + var t, e, n; + + function o(t, e, n, i) { + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o), this.sc = t, this.so = e, this.ec = n, this.eo = i, this.isOnEditable = this.makeIsOn(th.isEditable), this.isOnList = this.makeIsOn(th.isList), this.isOnAnchor = this.makeIsOn(th.isAnchor), this.isOnCell = this.makeIsOn(th.isCell), this.isOnData = this.makeIsOn(th.isData) + } + return t = o, e = [{ + key: "nativeRange", + value: function() { + if (p.isW3CRangeSupport) { + var t = document.createRange(); + return t.setStart(this.sc, this.so), t.setEnd(this.ec, this.eo), t + } + var e = tg({ + node: this.sc, + offset: this.so + }); + return e.setEndPoint("EndToEnd", tg({ + 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 (p.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 t = function(t, e) { + if (!t || th.isVisiblePoint(t) && (!th.isEdgePoint(t) || th.isRightEdgePoint(t) && !e || th.isLeftEdgePoint(t) && e || th.isRightEdgePoint(t) && e && th.isVoid(t.node.nextSibling) || th.isLeftEdgePoint(t) && !e && th.isVoid(t.node.previousSibling) || th.isBlock(t.node) && th.isEmpty(t.node))) return t; + var n = th.ancestor(t.node, th.isBlock), + o = !1; + if (!o) { + var i = th.prevPoint(t) || { + node: null + }; + o = (th.isLeftEdgePointOf(t, n) || th.isVoid(i.node)) && !e + } + var a = !1; + if (!a) { + var r = th.nextPoint(t) || { + node: null + }; + a = (th.isRightEdgePointOf(t, n) || th.isVoid(r.node)) && e } - var e = kt({ node: this.sc, offset: this.so }); - return e.setEndPoint("EndToEnd", kt({ node: this.ec, offset: this.eo })), e; + if (o || a) { + if (th.isVisiblePoint(t)) return t; + e = !e + } + return (e ? th.nextPointUntil(th.nextPoint(t), th.isVisiblePoint) : th.prevPointUntil(th.prevPoint(t), th.isVisiblePoint)) || t }, - }, - { - key: "getPoints", - value: function () { - return { sc: this.sc, so: this.so, ec: this.ec, eo: this.eo }; + e = t(this.getEndPoint(), !1), + n = this.isCollapsed() ? e : t(this.getStartPoint(), !0); + return new o(n.node, n.offset, e.node, e.offset) + } + }, { + key: "nodes", + value: function(t, e) { + t = t || m.ok; + var n = e && e.includeAncestor, + o = e && e.fullyContains, + i = this.getStartPoint(), + a = this.getEndPoint(), + r = [], + s = []; + return th.walkPoint(i, a, function(e) { + var i; + th.isEditable(e.node) || (o ? (th.isLeftEdgePoint(e) && s.push(e.node), th.isRightEdgePoint(e) && C.contains(s, e.node) && (i = e.node)) : i = n ? th.ancestor(e.node, t) : e.node, i && t(i) && r.push(i)) + }, !0), C.unique(r) + } + }, { + key: "commonAncestor", + value: function() { + return th.commonAncestor(this.sc, this.ec) + } + }, { + key: "expand", + value: function(t) { + var e = th.ancestor(this.sc, t), + n = th.ancestor(this.ec, t); + if (!e && !n) return new o(this.sc, this.so, this.ec, this.eo); + var i = this.getPoints(); + return e && (i.sc = e, i.so = 0), n && (i.ec = n, i.eo = th.nodeLength(n)), new o(i.sc, i.so, i.ec, i.eo) + } + }, { + key: "collapse", + value: function(t) { + return t ? new o(this.sc, this.so, this.sc, this.so) : new o(this.ec, this.eo, this.ec, this.eo) + } + }, { + key: "splitText", + value: function() { + var t = this.sc === this.ec, + e = this.getPoints(); + return th.isText(this.ec) && !th.isEdgePoint(this.getEndPoint()) && this.ec.splitText(this.eo), th.isText(this.sc) && !th.isEdgePoint(this.getStartPoint()) && (e.sc = this.sc.splitText(this.so), e.so = 0, t && (e.ec = e.sc, e.eo = this.eo - this.so)), new o(e.sc, e.so, e.ec, e.eo) + } + }, { + key: "deleteContents", + value: function() { + if (this.isCollapsed()) return this; + var t = this.splitText(), + e = t.nodes(null, { + fullyContains: !0 + }), + n = th.prevPointUntil(t.getStartPoint(), function(t) { + return !C.contains(e, t.node) + }), + a = []; + return i.a.each(e, function(t, e) { + var o = e.parentNode; + n.node !== o && 1 === th.nodeLength(o) && a.push(o), th.remove(e, !1) + }), i.a.each(a, function(t, e) { + th.remove(e, !1) + }), new o(n.node, n.offset, n.node, n.offset).normalize() + } + }, { + key: "makeIsOn", + value: function(t) { + return function() { + var e = th.ancestor(this.sc, t); + return !!e && e === th.ancestor(this.ec, t) + } + } + }, { + key: "isLeftEdgeOf", + value: function(t) { + if (!th.isLeftEdgePoint(this.getStartPoint())) return !1; + var e = th.ancestor(this.sc, t); + return e && th.isLeftEdgeOf(this.sc, e) + } + }, { + key: "isCollapsed", + value: function() { + return this.sc === this.ec && this.so === this.eo + } + }, { + key: "wrapBodyInlineWithPara", + value: function() { + if (th.isBodyContainer(this.sc) && th.isEmpty(this.sc)) return this.sc.innerHTML = th.emptyPara, new o(this.sc.firstChild, 0, this.sc.firstChild, 0); + var t, e = this.normalize(); + if (th.isParaInline(this.sc) || th.isPara(this.sc)) return e; + if (th.isInline(e.sc)) { + var n = th.listAncestor(e.sc, m.not(th.isInline)); + t = C.last(n), th.isInline(t) || (t = n[n.length - 2] || e.sc.childNodes[e.so]) + } else t = e.sc.childNodes[e.so > 0 ? e.so - 1 : 0]; + if (t) { + var i = th.listPrev(t, th.isParaInline).reverse(); + if ((i = i.concat(th.listNext(t.nextSibling, th.isParaInline))).length) { + var a = th.wrap(C.head(i), "p"); + th.appendChildNodes(a, C.tail(i)) + } + } + return this.normalize() + } + }, { + key: "insertNode", + value: function(t) { + var e = this; + (th.isText(t) || th.isInline(t)) && (e = this.wrapBodyInlineWithPara().deleteContents()); + var n = th.splitPoint(e.getStartPoint(), th.isInline(t)); + return n.rightNode ? (n.rightNode.parentNode.insertBefore(t, n.rightNode), th.isEmpty(n.rightNode) && th.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, + a = !1; + return o.so >= 0 && (n = n.reverse(), a = !0), n = n.map(function(t) { + return o.insertNode(t) + }), a && (n = n.reverse()), n + } + }, { + key: "toString", + value: function() { + var t = this.nativeRange(); + return p.isW3CRangeSupport ? t.toString() : t.text + } + }, { + key: "getWordRange", + value: function(t) { + var e = this.getEndPoint(); + if (!th.isCharPoint(e)) return this; + var n = th.prevPointUntil(e, function(t) { + return !th.isCharPoint(t) + }); + return t && (e = th.nextPointUntil(e, function(t) { + return !th.isCharPoint(t) + })), new o(n.node, n.offset, e.node, e.offset) + } + }, { + key: "getWordsRange", + value: function(t) { + var e = this.getEndPoint(), + n = function(t) { + return !th.isCharPoint(t) && !th.isSpacePoint(t) + }; + if (n(e)) return this; + var i = th.prevPointUntil(e, n); + return t && (e = th.nextPointUntil(e, n)), new o(i.node, i.offset, e.node, e.offset) + } + }, { + key: "getWordsMatchRange", + value: function(t) { + var e = this.getEndPoint(), + n = th.prevPointUntil(e, function(n) { + if (!th.isCharPoint(n) && !th.isSpacePoint(n)) return !0; + var i = new o(n.node, n.offset, e.node, e.offset), + a = t.exec(i.toString()); + return a && 0 === a.index + }), + i = new o(n.node, n.offset, e.node, e.offset), + a = i.toString(), + r = t.exec(a); + return r && r[0].length === a.length ? i : null + } + }, { + key: "bookmark", + value: function(t) { + return { + s: { + path: th.makeOffsetPath(t, this.sc), + offset: this.so }, - }, - { - 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(); + e: { + path: th.makeOffsetPath(t, this.ec), + offset: this.eo + } + } + } + }, { + key: "paraBookmark", + value: function(t) { + return { + s: { + path: C.tail(th.makeOffsetPath(C.head(t), this.sc)), + offset: this.so }, - }, - ]) && 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)); + e: { + path: C.tail(th.makeOffsetPath(C.last(t), this.ec)), + offset: this.eo + } + } + } + }, { + key: "getClientRects", + value: function() { + return this.nativeRange().getClientRects() + } + }, ], tv(t.prototype, e), n && tv(t, n), o + }(), + tk = { + create: function(t, e, n, o) { + if (4 === arguments.length) return new tb(t, e, n, o); + if (2 === arguments.length) return new tb(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); + var a = arguments[0]; + return th.isEditable(a) && (a = a.lastChild), this.createFromBodyElement(a, th.emptyPara === arguments[0].innerHTML) } - return i; + return i }, - createFromBodyElement: function (t) { - var e = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], - n = this.createFromNode(t); - return n.collapse(e); + createFromBodyElement: function(t) { + var e = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; + return this.createFromNode(t).collapse(e) }, - createFromSelection: function () { + createFromSelection: function() { var t, e, n, o; - if (m.isW3CRangeSupport) { + if (p.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); + if (!i || 0 === i.rangeCount || th.isBody(i.anchorNode)) return null; + var a = i.getRangeAt(0); + t = a.startContainer, e = a.startOffset, n = a.endContainer, o = a.endOffset } else { - var a = document.selection.createRange(), - s = a.duplicate(); + var r = document.selection.createRange(), + s = r.duplicate(); s.collapse(!1); - var l = a; + var l = r; 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); + var c = tm(l, !0), + u = tm(s, !1); + th.isText(c.node) && th.isLeftEdgePoint(c) && th.isTextNode(u.node) && th.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); + return new tb(t, e, n, o) }, - createFromNode: function (t) { + 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) - ); + i = th.nodeLength(o); + return th.isVoid(e) && (n = th.listPrev(e).length - 1, e = e.parentNode), th.isBR(o) ? (i = th.listPrev(o).length - 1, o = o.parentNode) : th.isVoid(o) && (i = th.listPrev(o).length, o = o.parentNode), this.create(e, n, o, i) }, - createFromNodeBefore: function (t) { - return this.createFromNode(t).collapse(!0); + createFromNodeBefore: function(t) { + return this.createFromNode(t).collapse(!0) }, - createFromNodeAfter: function (t) { - return this.createFromNode(t).collapse(); + createFromNodeAfter: function(t) { + return this.createFromNode(t).collapse() }, - createFromBookmark: function (t, e) { - var n = pt.fromOffsetPath(t, e.s.path), + createFromBookmark: function(t, e) { + var n = th.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); + i = th.fromOffsetPath(t, e.e.path), + a = e.e.offset; + return new tb(n, o, i, a) }, - createFromParaBookmark: function (t, e) { + 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); - }, + i = th.fromOffsetPath(C.head(e), t.s.path), + a = th.fromOffsetPath(C.last(e), t.e.path); + return new tb(i, n, a, o) + } }, - Ct = { + ty = { BACKSPACE: 8, TAB: 9, ENTER: 13, @@ -1564,514 +1554,483 @@ HOME: 36, END: 35, PAGEUP: 33, - PAGEDOWN: 34, + PAGEDOWN: 34 }, - xt = { - isEdit: function (t) { - return C.contains([Ct.BACKSPACE, Ct.TAB, Ct.ENTER, Ct.SPACE, Ct.DELETE], t); + tC = { + isEdit: function(t) { + return C.contains([ty.BACKSPACE, ty.TAB, ty.ENTER, ty.SPACE, ty.DELETE], t) }, - isMove: function (t) { - return C.contains([Ct.LEFT, Ct.UP, Ct.RIGHT, Ct.DOWN], t); + isMove: function(t) { + return C.contains([ty.LEFT, ty.UP, ty.RIGHT, ty.DOWN], t) }, - isNavigation: function (t) { - return C.contains([Ct.HOME, Ct.END, Ct.PAGEUP, Ct.PAGEDOWN], t); + isNavigation: function(t) { + return C.contains([ty.HOME, ty.END, ty.PAGEUP, ty.PAGEDOWN], t) }, - nameFromCode: g.invertObject(Ct), - code: Ct, + nameFromCode: m.invertObject(ty), + code: ty }; - function St(t, e) { + + function tw(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); + 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 tx = function() { + var t, e, n; + + function o(t) { + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o), this.stack = [], this.stackOffset = -1, this.context = t, this.$editable = t.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) { + return t = o, e = [{ + key: "makeSnapshot", + value: function() { + var t = tk.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 && tk.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) + } + }, ], tw(t.prototype, e), n && tw(t, n), o + }(); + + 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); + 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 tS = function() { + var t, e, n; + + function o() { + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o) } - 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) { + return t = o, e = [{ + key: "jQueryCSS", + value: function(t, e) { + if (p.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(th.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), + a = !(!e || !e.onlyPartialContains); + if (t.isCollapsed()) return [t.insertNode(th.create(n))]; + var r = th.makePredByNodeName(n), + s = t.nodes(th.isText, { + fullyContains: !0 + }).map(function(t) { + return th.singleChildAncestor(t, r) || th.wrap(t, n) + }); + if (o) { + if (a) { + var l = t.nodes(); + r = m.and(r, function(t) { + return C.contains(l, t) + }) + } + return s.map(function(t) { + var e = th.withClosestSiblings(t, r), + n = C.head(e), + o = C.tail(e); + return i.a.each(o, function(t, e) { + th.appendChildNodes(n, e.childNodes), th.remove(e) + }), C.head(e) + }) + } + return s + } + }, { + key: "current", + value: function(t) { + var e = i()(th.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 (o) {} + if (t.isOnList()) { + var a = ["circle", "disc", "disc-leading-zero", "square"].indexOf(n["list-style-type"]) > -1; + n["list-style"] = a ? "unordered" : "ordered" + } else n["list-style"] = "none"; + var r = th.ancestor(t.sc, th.isPara); + if (r && r.style["line-height"]) n["line-height"] = r.style.lineHeight; + else { + var s = parseInt(n["line-height"], 10) / parseInt(n["font-size"], 10); + n["line-height"] = s.toFixed(1) + } + return n.anchor = t.isOnAnchor() && th.ancestor(t.sc, th.isAnchor), n.ancestors = th.listAncestor(t.sc, th.isEditable), n.range = t, n + } + }, ], t$(t.prototype, e), n && t$(t, n), o + }(); + + 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); + 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 t9 = function() { + var t, e, n; + + function o() { + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o) } - 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); + return t = o, e = [{ + 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 = tk.create(t).wrapBodyInlineWithPara(), + o = n.nodes(th.isPara, { + includeAncestor: !0 + }), + a = C.clusterBy(o, m.peq2("parentNode")); + i.a.each(a, function(t, n) { + var o = C.head(n); + if (th.isLi(o)) { + var a = e.findList(o.previousSibling); + a ? n.map(function(t) { + return a.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 = tk.create(t).wrapBodyInlineWithPara(), + o = n.nodes(th.isPara, { + includeAncestor: !0 + }), + a = C.clusterBy(o, m.peq2("parentNode")); + i.a.each(a, function(t, n) { + var o = C.head(n); + th.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 = tk.create(e).wrapBodyInlineWithPara(), + a = o.nodes(th.isPara, { + includeAncestor: !0 + }), + r = o.paraBookmark(a), + s = C.clusterBy(a, m.peq2("parentNode")); + if (C.find(a, th.isPurePara)) { + var l = []; + i.a.each(s, function(e, o) { + l = l.concat(n.wrapList(o, t)) + }), a = l + } else { + var c = o.nodes(th.isList, { + includeAncestor: !0 + }).filter(function(e) { + return !i.a.nodeName(e, t) + }); + c.length ? i.a.each(c, function(e, n) { + th.replace(n, t) + }) : a = this.releaseList(s, !0) + } + tk.createFromParaBookmark(r, a).select() + } + }, { + key: "wrapList", + value: function(t, e) { + var n = C.head(t), + o = C.last(t), + i = th.isList(n.previousSibling) && n.previousSibling, + a = th.isList(o.nextSibling) && o.nextSibling, + r = i || th.insertAfter(th.create(e || "UL"), o); + return t = t.map(function(t) { + return th.isPurePara(t) ? th.replace(t, "LI") : t + }), th.appendChildNodes(r, t), a && (th.appendChildNodes(r, C.from(a.childNodes)), th.remove(a)), t + } + }, { + key: "releaseList", + value: function(t, e) { + var n = this, + o = []; + return i.a.each(t, function(t, a) { + var r = C.head(a), + s = C.last(a), + l = e ? th.lastAncestor(r, th.isList) : r.parentNode, + c = l.parentNode; + if ("LI" === l.parentNode.nodeName) a.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 ? th.splitTree(l, { + node: s.parentNode, + offset: th.position(s) + 1 + }, { + isSkipPaddingBlankHTML: !0 + }) : null, + d = th.splitTree(l, { + node: r.parentNode, + offset: th.position(r) + }, { + isSkipPaddingBlankHTML: !0 }); - 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) { + a = e ? th.listDescendant(d, th.isLi) : C.from(d.childNodes).filter(th.isLi), !e && th.isList(l.parentNode) || (a = a.map(function(t) { + return th.replace(t, "P") + })), i.a.each(C.from(a).reverse(), function(t, e) { + th.insertAfter(e, l) + }); + var h = C.compact([l, d, u]); + i.a.each(h, function(t, e) { + var n = [e].concat(th.listDescendant(e, th.isList)); + i.a.each(n.reverse(), function(t, e) { + th.nodeLength(e) || th.remove(e, !0) + }) + }) + } + o = o.concat(a) + }), o + } + }, { + key: "appendToPrevious", + value: function(t) { + return t.previousSibling ? th.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 + } + }, ], t_(t.prototype, e), n && t_(t, n), o + }(); + + function tN(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); + 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 tT = function() { + var t, e, n; + + function o(t) { + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o), this.bullet = new t9, this.options = t.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) { + return t = o, e = [{ + key: "insertTab", + value: function(t, e) { + var n = th.createText(Array(e + 1).join(th.NBSP_CHAR)); + (t = t.deleteContents()).insertNode(n, !0), (t = tk.create(n, e)).select() + } + }, { + key: "insertParagraph", + value: function(t, e) { + e = (e = (e = e || tk.create(t)).deleteContents()).wrapBodyInlineWithPara(); + var n, o = th.ancestor(e.sc, th.isPara); + if (o) { + if (th.isLi(o) && (th.isEmpty(o) || th.deepestChildIsEmpty(o))) return void this.bullet.toggleList(o.parentNode.nodeName); + var a = null; + if (1 === this.options.blockquoteBreakingLevel ? a = th.ancestor(o, th.isBlockquote) : 2 === this.options.blockquoteBreakingLevel && (a = th.lastAncestor(o, th.isBlockquote)), a) { + n = i()(th.emptyPara)[0], th.isRightEdgePoint(e.getStartPoint()) && th.isBR(e.sc.nextSibling) && i()(e.sc.nextSibling).remove(); + var r = th.splitTree(a, e.getStartPoint(), { + isDiscardEmptySplits: !0 + }); + r ? r.parentNode.insertBefore(n, r) : th.insertAfter(n, a) + } else { + n = th.splitTree(o, e.getStartPoint()); + var s = th.listDescendant(o, th.isEmptyAnchor); + s = s.concat(th.listDescendant(n, th.isEmptyAnchor)), i.a.each(s, function(t, e) { + th.remove(e) + }), (th.isHeading(n) || th.isPre(n) || th.isCustomStyleTag(n)) && th.isEmpty(n) && (n = th.replace(n, "p")) + } + } else { + var l = e.sc.childNodes[e.so]; + n = i()(th.emptyPara)[0], l ? e.sc.insertBefore(n, l) : e.sc.appendChild(n) + } + tk.create(n, 0).normalize().select().scrollIntoView(t) + } + }, ], tN(t.prototype, e), n && tN(t, n), o + }(); + + function tI(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); + 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 = [], + var tE = function t(e, n, o, i) { + var a = { + colPos: 0, + rowPos: 0 + }, + r = [], 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 l(t, e, n, o, i, a, s) { + r[t] || (r[t] = []), r[t][e] = { + baseRow: n, + baseCell: o, + isRowSpan: i, + isColSpan: a, + isVirtual: s + } } + function c(t, e, n, o) { - return { baseCell: t.baseCell, action: e, virtualTable: { rowIndex: n, cellIndex: 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; + if (!r[t] || !r[t][e]) return e; + for (var n = e; r[t][n];) + if (n++, !r[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; + r = t.rowIndex === a.rowPos && e.cellIndex === a.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); + h(d, n, e, r), 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); + var v = u(t.rowIndex, n + p); + h(t.rowIndex, v, e, r), l(t.rowIndex, v, t, e, i, !0, !0) } } + function h(t, e, n, o) { - t === r.rowPos && r.colPos >= n.cellIndex && n.cellIndex <= e && !o && r.colPos++; + t === a.rowPos && a.colPos >= n.cellIndex && n.cellIndex <= e && !o && a.colPos++ } + function f(e) { switch (n) { case t.where.Column: @@ -2079,10 +2038,11 @@ break; case t.where.Row: if (!e.isVirtual && e.isRowSpan) return t.resultAction.AddCell; - if (e.isRowSpan) return t.resultAction.SubtractSpanCount; + if (e.isRowSpan) return t.resultAction.SubtractSpanCount } - return t.resultAction.RemoveCell; + return t.resultAction.RemoveCell } + function p(e) { switch (n) { case t.where.Column: @@ -2091,3510 +2051,2940 @@ break; case t.where.Row: if (e.isRowSpan) return t.resultAction.SumSpanCount; - if (e.isColSpan && e.isVirtual) return t.resultAction.Ignore; + if (e.isColSpan && e.isVirtual) return t.resultAction.Ignore } - return t.resultAction.AddCell; + 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); + this.getActionList = function() { + for (var e = n === t.where.Row ? a.rowPos : -1, i = n === t.where.Column ? a.colPos : -1, l = 0, u = !0; u;) { + var d = e >= 0 ? e : l, + h = i >= 0 ? i : l, + v = r[d]; + if (!v) return u = !1, s; + var m = v[h]; + if (!m) return u = !1, s; + var g = t.resultAction.Ignore; + switch (o) { + case t.requestAction.Add: + g = p(m); + break; + case t.requestAction.Delete: + g = f(m) + } + s.push(c(m, g, d, h)), l++ } - 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]); - })(); + return s + }, e && e.tagName && ("td" === e.tagName.toLowerCase() || "th" === e.tagName.toLowerCase()) && (a.colPos = e.cellIndex, e.parentElement && e.parentElement.tagName && "tr" === e.parentElement.tagName.toLowerCase() && (a.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]) + }() + }; + tE.where = { + Row: 0, + Column: 1 + }, tE.requestAction = { + Add: 0, + Delete: 1 + }, tE.resultAction = { + Ignore: 0, + SubtractSpanCount: 1, + RemoveCell: 2, + AddCell: 3, + SumSpanCount: 4 }; - (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 tP = function() { + var t, e, n; + + function o() { + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o) } - 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 + ""); + return t = o, e = [{ + key: "tab", + value: function(t, e) { + var n = th.ancestor(t.commonAncestor(), th.isCell), + o = th.ancestor(n, th.isTable), + i = th.listDescendant(o, th.isCell), + a = C[e ? "prev" : "next"](i, n); + a && tk.create(a, 0).select() + } + }, { + key: "addRow", + value: function(t, e) { + for (var n = th.ancestor(t.commonAncestor(), th.isCell), o = i()(n).closest("tr"), a = this.recoverAttributes(o), r = i()(""), s = new tE(n, tE.where.Row, tE.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 tE.resultAction.AddCell: + r.append("" + th.blank + ""); + break; + case tE.resultAction.SumSpanCount: + if ("top" === e && (c.baseCell.parent ? c.baseCell.closest("tr").rowIndex : 0) <= o[0].rowIndex) { + var d = i()("
").append(i()("" + th.blank + "").removeAttr("rowspan")).html(); + r.append(d); + break } + var h = parseInt(c.baseCell.rowSpan, 10); + h++, c.baseCell.setAttribute("rowSpan", h) + } + } + if ("top" === e) o.before(r); + else { + if (n.rowSpan > 1) { + var f = o[0].rowIndex + (n.rowSpan - 2); + return void i()(i()(o).parent().find("tr")[f]).after(i()(r)) + } + o.after(r) + } + } + }, { + key: "addCol", + value: function(t, e) { + var n = th.ancestor(t.commonAncestor(), th.isCell), + o = i()(n).closest("tr"); + i()(o).siblings().push(o); + for (var a = new tE(n, tE.where.Column, tE.requestAction.Add, i()(o).closest("table")[0]).getActionList(), r = 0; r < a.length; r++) { + var s = a[r], + l = this.recoverAttributes(s.baseCell); + switch (s.action) { + case tE.resultAction.AddCell: + "right" === e ? i()(s.baseCell).after("" + th.blank + "") : i()(s.baseCell).before("" + th.blank + ""); + break; + case tE.resultAction.SumSpanCount: + if ("right" === e) { + var c = parseInt(s.baseCell.colSpan, 10); + c++, s.baseCell.setAttribute("colSpan", c) + } else i()(s.baseCell).before("" + th.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 = th.ancestor(t.commonAncestor(), th.isCell), n = i()(e).closest("tr"), o = n.children("td, th").index(i()(e)), a = n[0].rowIndex, r = new tE(e, tE.where.Row, tE.requestAction.Delete, i()(n).closest("table")[0]).getActionList(), s = 0; s < r.length; s++) + if (r[s]) { + var l = r[s].baseCell, + c = r[s].virtualTable, + u = l.rowSpan && l.rowSpan > 1, + d = u ? parseInt(l.rowSpan, 10) : 0; + switch (r[s].action) { + case tE.resultAction.Ignore: + continue; + case tE.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 tE.resultAction.SubtractSpanCount: + u && (d > 2 ? (d--, l.setAttribute("rowSpan", d), c.rowIndex !== a && l.cellIndex === o && (l.innerHTML = "")) : 2 === d && (l.removeAttribute("rowSpan"), c.rowIndex !== a && l.cellIndex === o && (l.innerHTML = ""))); + continue; + case tE.resultAction.RemoveCell: + continue } - }, - }, - { - 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 = th.ancestor(t.commonAncestor(), th.isCell), n = i()(e).closest("tr"), o = n.children("td, th").index(i()(e)), a = new tE(e, tE.where.Column, tE.requestAction.Delete, i()(n).closest("table")[0]).getActionList(), r = 0; r < a.length; r++) + if (a[r]) switch (a[r].action) { + case tE.resultAction.Ignore: + continue; + case tE.resultAction.SubtractSpanCount: + var s = a[r].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 = "")) } - 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) { + continue; + case tE.resultAction.RemoveCell: + th.remove(a[r].baseCell, !0); + continue + } + } + }, { + key: "createTable", + value: function(t, e, n) { + for (var o, a = [], r = 0; r < t; r++) a.push("" + th.blank + ""); + o = a.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 = th.ancestor(t.commonAncestor(), th.isCell); + i()(e).closest("table").remove() + } + }, ], tI(t.prototype, e), n && tI(t, n), o + }(); + + function tR(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); + 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 tL = function() { + var t, e, n; + + function o(t) { + var e = this; + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o), this.context = t, this.$note = t.layoutInfo.note, this.$editor = t.layoutInfo.editor, this.$editable = t.layoutInfo.editable, this.options = t.options, this.lang = this.options.langInfo, this.editable = this.$editable[0], this.lastRange = null, this.snapshot = null, this.style = new tS, this.table = new tP, this.typing = new tT(t), this.bullet = new t9, this.history = new tx(t), 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 n = ["bold", "italic", "underline", "strikethrough", "superscript", "subscript", "justifyLeft", "justifyCenter", "justifyRight", "justifyFull", "formatBlock", "removeFormat", "backColor"], a = 0, r = n.length; a < r; a++) this[n[a]] = function(t) { + return function(n) { + e.beforeCommand(), document.execCommand(t, !1, n), e.afterCommand(!0) + } + }(n[a]), this.context.memo("help." + n[a], this.lang.help[n[a]]); + this.fontName = this.wrapCommand(function(t) { + return e.fontStyling("font-family", p.validFontName(t)) + }), this.fontSize = this.wrapCommand(function(t) { + var n = e.currentStyle()["font-size-unit"]; + return e.fontStyling("font-size", t + n) + }), this.fontSizeUnit = this.wrapCommand(function(t) { + var n = e.currentStyle()["font-size"]; + return e.fontStyling("font-size", n + t) + }); + for (var s = 1; s <= 6; s++) this["formatH" + s] = function(t) { + return function() { + e.formatBlock("H" + t) + } + }(s), this.context.memo("help.formatH" + s, this.lang.help["formatH" + s]); + this.insertParagraph = this.wrapCommand(function() { + e.typing.insertParagraph(e.editable) + }), this.insertOrderedList = this.wrapCommand(function() { + e.bullet.insertOrderedList(e.editable) + }), this.insertUnorderedList = this.wrapCommand(function() { + e.bullet.insertUnorderedList(e.editable) + }), this.indent = this.wrapCommand(function() { + e.bullet.indent(e.editable) + }), this.outdent = this.wrapCommand(function() { + e.bullet.outdent(e.editable) + }), this.insertNode = this.wrapCommand(function(t) { + e.isLimited(i()(t).text().length) || (e.getLastRange().insertNode(t), e.setLastRange(tk.createFromNodeAfter(t).select())) + }), this.insertText = this.wrapCommand(function(t) { + if (!e.isLimited(t.length)) { + var n = e.getLastRange().insertNode(th.createText(t)); + e.setLastRange(tk.create(n, th.nodeLength(n)).select()) + } + }), this.pasteHTML = this.wrapCommand(function(t) { + if (!e.isLimited(t.length)) { + t = e.context.invoke("codeview.purify", t); + var n = e.getLastRange().pasteHTML(t); + e.setLastRange(tk.createFromNodeAfter(C.last(n)).select()) + } + }), this.formatBlock = this.wrapCommand(function(t, n) { + var o = e.options.callbacks.onApplyCustomStyle; + o ? o.call(e, n, e.context, e.onFormatBlock) : e.onFormatBlock(t, n) + }), this.insertHorizontalRule = this.wrapCommand(function() { + var t = e.getLastRange().insertNode(th.create("HR")); + t.nextSibling && e.setLastRange(tk.create(t.nextSibling, 0).normalize().select()) + }), this.lineHeight = this.wrapCommand(function(t) { + e.style.stylePara(e.getLastRange(), { + lineHeight: t + }) + }), this.createLink = this.wrapCommand(function(t) { + var n = t.url, + o = t.text, + a = t.isNewWindow, + r = t.checkProtocol, + s = t.range || e.getLastRange(), + l = o.length - s.toString().length; + if (!(l > 0 && e.isLimited(l))) { + var c = s.toString() !== o; + "string" == typeof n && (n = n.trim()), e.options.onCreateLink ? n = e.options.onCreateLink(n) : r && (n = /^([A-Za-z][A-Za-z0-9+-.]*\:|#|\/)/.test(n) ? n : e.options.defaultProtocol + n); + var u = []; + if (c) { + var d = (s = s.deleteContents()).insertNode(i()("" + o + "")[0]); + u.push(d) + } else u = e.style.styleNodes(s, { + nodeName: "A", + expandClosestSibling: !0, + onlyPartialContains: !0 + }); + i.a.each(u, function(t, e) { + i()(e).attr("href", n), a ? i()(e).attr("target", "_blank") : i()(e).removeAttr("target") + }), e.setLastRange(e.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 n = t.split("x"); + e.getLastRange().deleteContents().insertNode(e.table.createTable(n[0], n[1], e.options)) + }), this.removeMedia = this.wrapCommand(function() { + var t = i()(e.restoreTarget()).parent(); + t.closest("figure").length ? t.closest("figure").remove() : t = i()(e.restoreTarget()).detach(), e.context.triggerEvent("media.delete", t, e.$editable) + }), this.floatMe = this.wrapCommand(function(t) { + var n = i()(e.restoreTarget()); + n.toggleClass("note-float-left", "left" === t), n.toggleClass("note-float-right", "right" === t), n.css("float", "none" === t ? "" : t) + }), this.resize = this.wrapCommand(function(t) { + var n = i()(e.restoreTarget()); + 0 === (t = parseFloat(t)) ? n.css("width", "") : n.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", src, 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", file, 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", file, "base64 failed"); - }); - }); - }, - }, - { - 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); + return t = o, e = [{ + key: "initialize", + value: function() { + var t = this; + this.$editable.on("keydown", function(e) { + if (e.keyCode === tC.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(th.html(this.$note) || th.emptyPara), this.$editable.on(p.inputEventName, m.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[p.isMac ? "mac" : "pc"], + n = []; + t.metaKey && n.push("CMD"), t.ctrlKey && !t.altKey && n.push("CTRL"), t.shiftKey && n.push("SHIFT"); + var o = tC.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 tC.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 || !(tC.isMove(e.keyCode) || tC.isNavigation(e.keyCode) || e.ctrlKey || e.metaKey || C.contains([tC.code.BACKSPACE, tC.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 = tk.createFromNodeBefore(C.head(t)).getStartPoint(), + n = tk.createFromNodeAfter(C.last(t)).getEndPoint(); + return tk.create(e.node, e.offset, n.node, n.offset) + } + }, { + key: "setLastRange", + value: function(t) { + t ? this.lastRange = t : (this.lastRange = tk.create(this.editable), 0 === i()(this.lastRange.sc).closest(".note-editable").length && (this.lastRange = tk.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 = tk.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(tk.createFromNodeAfter(t[0]).select()), o.afterCommand() + }).fail(function(t) { + o.context.triggerEvent("image.upload.error", src, t) + }) + } + }, { + key: "insertImagesAsDataURL", + value: function(t) { + var e = this; + i.a.each(t, function(t, n) { + var o, a = n.name; + e.options.maximumImageFileSize && e.options.maximumImageFileSize < n.size ? e.context.triggerEvent("image.upload.error", file, e.lang.image.maximumFileSizeError) : (o = n, i.a.Deferred(function(t) { + i.a.extend(new FileReader, { + onload: function(e) { + var n = e.target.result; + t.resolve(n) + }, + onerror: function(e) { + t.reject(e) } - } - }, - }, - { - 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) { + }).readAsDataURL(o) + }).promise()).then(function(t) { + return e.insertImage(t, a) + }).fail(function() { + e.context.triggerEvent("image.upload.error", file, "base64 failed") + }) + }) + } + }, { + 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 = tk.createFromNode(th.ancestor(t.sc, th.isAnchor))), t.toString() + } + }, { + key: "onFormatBlock", + value: function(t, e) { + if (document.execCommand("FormatBlock", !1, p.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 a = C.head(o); + a && !th.nodeLength(a) && (a.innerHTML = th.ZERO_WIDTH_NBSP_CHAR, tk.createFromNode(a.firstChild).select(), this.setLastRange(), this.$editable.data("bogus", a)) + } else this.setLastRange(this.createRangeFromList(o).select()) + } else { + var r = i.a.now(); + this.$editor.find(".note-status-output").html('
' + this.lang.output.noSelection + "
"), setTimeout(function() { + i()("#note-status-output-" + r).remove() + }, 5e3) + } + } + }, { + key: "unlink", + value: function() { + var t = this.getLastRange(); + if (t.isOnAnchor()) { + var e = th.ancestor(t.sc, th.isAnchor); + (t = tk.createFromNode(e)).select(), this.setLastRange(), this.beforeCommand(), document.execCommand("unlink"), this.afterCommand() + } + } + }, { + key: "getLinkInfo", + value: function() { + var t = this.getLastRange().expand(th.isAnchor), + e = i()(C.head(t.nodes(th.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, + a = e.data("ratio"); + o = { + width: a > i ? t.x : t.y / a, + height: a > i ? t.x * a : 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 th.isEmpty(this.$editable[0]) || th.emptyPara === this.$editable.html() + } + }, { + key: "empty", + value: function() { + this.context.invoke("code", th.emptyPara) + } + }, { + key: "normalizeContent", + value: function() { + this.$editable[0].normalize() + } + }, ], tR(t.prototype, e), n && tR(t, n), o + }(); + + function tA(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); + 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 tF = function() { + var t, e, n; + + function o(t) { + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o), this.context = t, this.$editable = t.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(); + return t = o, e = [{ + 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) { + if (n.items.length > 1) { + const filteredItems = Array.from(n.items) + .filter(item => item.kind === "file" && item.type.indexOf("image/") !== -1); + if (filteredItems && filteredItems.length > 0) { + const files = filteredItems + .map(item => item.getAsFile()) + .filter(file => file !== null); + this.context.invoke("editor.insertImagesOrCallback", files); + t.preventDefault(); + } else { + var o = n.items[1]; + "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() } - setTimeout(function () { - e.context.invoke("editor.afterCommand"); - }, 10); - }, - }, - ]) && Bt(e.prototype, n), - o && Bt(e, o), - t - ); - })(); - function Mt(t, e) { + } else { + var o = 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) + } + }, ], tA(t.prototype, e), n && tA(t, n), o + }(); + + function tD(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); + 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 tH = function() { + var t, e, n; + + function o(t) { + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o), this.context = t, this.$eventListener = i()(document), this.$editor = t.layoutInfo.editor, this.$editable = t.layoutInfo.editable, this.options = t.options, this.lang = this.options.langInfo, this.documentEventHandlers = {}, this.$dropzone = i()('
').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) { - let dataTransfer = o.originalEvent.dataTransfer; - const matchedFileTypes = dataTransfer.types.filter(type => "Files" === type); - if (matchedFileTypes && matchedFileTypes.length) { - var i = t.context.invoke("codeview.isActivated"); - var r = t.$editor.width() > 0 && t.$editor.height() > 0; - if (!i && !e.length && r) { - t.$editor.addClass('dragover'); - if (!t.$dropzone.width()) { - t.$dropzone.width(t.$editor.width()); - } - if (!t.$dropzone.height()) { - 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, - }; + return t = o, e = [{ + 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() } - 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) { + }, { + key: "attachDragAndDropEvent", + value: function() { + var t = this, + e = i()(), + n = this.$dropzone.find(".note-dropzone-message"); + this.documentEventHandlers.onDragenter = function(o) { + let i = o.originalEvent.dataTransfer, + a = i.types.filter(t => "Files" === t); + if (a && a.length) { + var r = t.context.invoke("codeview.isActivated"), + s = t.$editor.width() > 0 && t.$editor.height() > 0; + r || e.length || !s || (t.$editor.addClass("dragover"), t.$dropzone.width() || t.$dropzone.width(t.$editor.width()), t.$dropzone.height() || 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 a = n.getData(o); + o.toLowerCase().indexOf("text") > -1 ? t.context.invoke("editor.pasteHTML", a) : i()(a).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 = {} + } + }, ], tD(t.prototype, e), n && tD(t, n), o + }(); + + function t1(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; + for (var n = 0, o = Array(e); n < e; n++) o[n] = t[n]; + return o } - function Wt(t, e) { + + function tB(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); + 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 tz = function() { + var t, e, n; + + function o(t) { + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o), this.context = t, this.$editor = t.layoutInfo.editor, this.$editable = t.layoutInfo.editable, this.$codable = t.layoutInfo.codable, this.options = t.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; + return t = o, e = [{ + 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 === tC.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 = function t(e) { + if ("undefined" == typeof Symbol || null == e[Symbol.iterator]) { + if (Array.isArray(e) || (e = function(t, e) { + if (t) { + if ("string" == typeof t) return t1(t, e); + var n = Object.prototype.toString.call(t).slice(8, -1); + if ("Object" === n && t.constructor && (n = t.constructor.name), "Map" === n || "Set" === n) return Array.from(n); + if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return t1(t, e) + } + }(e))) { + var n = 0, + o = function() {}; + return { + s: o, + n: function() { + return n >= e.length ? { + done: !0 + } : { + done: !1, + value: e[n++] + } + }, + e: function(t) { + throw t + }, + f: o } - } 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); - }); + throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") } - 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 i, a, r = !0, + s = !1; + return { + s: function() { + i = e[Symbol.iterator]() + }, + n: function() { + var t = i.next(); + return r = t.done, t + }, + e: function(t) { + s = !0, a = t + }, + f: function() { + try { + r || null == i.return || i.return() + } finally { + if (s) throw a + } + } + } + }(e); + try { + for (o.s(); !(n = o.n()).done;) { + var i = n.value; + if (RegExp('src="(https?:)?//' + i.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&") + '/(.+)"').test(t)) return t + } + } catch (a) { + o.e(a) + } finally { + o.f() } - 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) { + return "" + }) + } + return t + } + }, { + key: "activate", + value: function() { + var t = this, + e = this.CodeMirrorConstructor; + if (this.$codable.val(th.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(th.value(this.$codable, this.options.prettifyHtml) || th.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() + } + }, ], tB(t.prototype, e), n && tB(t, n), o + }(); + + function t0(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); + 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 tM = function() { + var t, e, n; + + function o(t) { + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o), this.$document = i()(document), this.$statusbar = t.layoutInfo.statusbar, this.$editable = t.layoutInfo.editable, this.options = t.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) { + return t = o, e = [{ + 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") + } + }, ], t0(t.prototype, e), n && t0(t, n), o + }(); + + function t4(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); + 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 t2 = function() { + var t, e, n; + + function o(t) { + var e = this; + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o), this.context = t, this.$editor = t.layoutInfo.editor, this.$toolbar = t.layoutInfo.toolbar, this.$editable = t.layoutInfo.editable, this.$codable = t.layoutInfo.codable, this.$window = i()(window), this.$scrollbar = i()("html, body"), this.onResize = function() { + e.resizeTo({ + h: e.$window.height() - e.$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"), - 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) { + return t = o, e = [{ + 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"), 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") + } + }, ], t4(t.prototype, e), n && t4(t, n), o + }(); + + function tO(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); + 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 tU = function() { + var t, e, n; + + function o(t) { + var e = this; + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o), this.context = t, this.$document = i()(document), this.$editingArea = t.layoutInfo.editingArea, this.options = t.options, this.lang = this.options.langInfo, this.events = { + "summernote.mousedown": function(t, n) { + e.update(n.target, n) && n.preventDefault() + }, + "summernote.keyup summernote.scroll summernote.change summernote.dialog.shown": function() { + e.update() + }, + "summernote.disable summernote.blur": function() { + e.hide() + }, + "summernote.codeview.toggled": function() { + e.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) { + return t = o, e = [{ + key: "initialize", + value: function() { + var t = this; + this.$handle = i()(['
', '
', '
', '
', '
', '
', '
', this.options.disableResizeImage ? "" : '
', "
", "
", ].join("")).prependTo(this.$editingArea), this.$handle.on("mousedown", function(e) { + if (th.isControlSizing(e.target)) { + e.preventDefault(), e.stopPropagation(); + var n = t.$handle.find(".note-control-selection").data("target"), + o = n.offset(), + i = t.$document.scrollTop(), + a = 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", a).one("mouseup", function(e) { + e.preventDefault(), t.$document.off("mousemove", a), 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 = th.isImg(t), + o = this.$handle.find(".note-control-selection"); + if (this.context.invoke("imagePopover.update", t, e), n) { + var a = i()(t), + r = a.position(), + s = { + left: r.left + parseInt(a.css("marginLeft"), 10), + top: r.top + parseInt(a.css("marginTop"), 10) + }, + l = { + w: a.outerWidth(!1), + h: a.outerHeight(!1) + }; + o.css({ + display: "block", + left: s.left, + top: s.top, + width: l.w, + height: l.h + }).data("target", a); + var c = new Image; + c.src = a.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() + } + }, ], tO(t.prototype, e), n && tO(t, n), o + }(); + + function t7(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); + 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 t3 = /^([A-Za-z][A-Za-z0-9+-.]*\:[\/]{2}|tel:|mailto:[A-Z0-9._%+-]+@)?(www\.)?(.+)$/i, + t5 = function() { + var t, e, n; + + function o(t) { + var e = this; + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o), this.context = t, this.options = t.options, this.events = { + "summernote.keyup": function(t, n) { + n.isDefaultPrevented() || e.handleKeyup(n) + }, + "summernote.keydown": function(t, n) { + e.handleKeydown(n) + } + } } - 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) { + return t = o, e = [{ + 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(t3); + 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, + a = i()("").html(o).attr("href", n)[0]; + this.context.options.linkTargetBlank && i()(a).attr("target", "_blank"), this.lastWordRange.insertNode(a), this.lastWordRange = null, this.context.invoke("editor.focus") + } + } + } + }, { + key: "handleKeydown", + value: function(t) { + if (C.contains([tC.code.ENTER, tC.code.SPACE], t.keyCode)) { + var e = this.context.invoke("editor.createRange").getWordRange(); + this.lastWordRange = e + } + } + }, { + key: "handleKeyup", + value: function(t) { + C.contains([tC.code.ENTER, tC.code.SPACE], t.keyCode) && this.replace() + } + }, ], t7(t.prototype, e), n && t7(t, n), o + }(); + + function t6(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); + 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 tW = function() { + var t, e, n; + + function o(t) { + var e = this; + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o), this.$note = t.layoutInfo.note, this.events = { + "summernote.change": function() { + e.$note.val(t.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) { + return t = o, e = [{ + key: "shouldInitialize", + value: function() { + return th.isTextarea(this.$note[0]) + } + }, ], t6(t.prototype, e), n && t6(t, n), o + }(); + + function tj(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); + 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 tK = function() { + var t, e, n; + + function o(t) { + var e = this; + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o), this.context = t, this.options = t.options.replace || {}, this.keys = [tC.code.ENTER, tC.code.SPACE, tC.code.PERIOD, tC.code.COMMA, tC.code.SEMICOLON, tC.code.SLASH], this.previousKeydownCode = null, this.events = { + "summernote.keyup": function(t, n) { + n.isDefaultPrevented() || e.handleKeyup(n) + }, + "summernote.keydown": function(t, n) { + e.handleKeydown(n) + } + } } - 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; + return t = o, e = [{ + 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 = ""; + "string" == typeof e ? n = th.createText(e) : e instanceof jQuery ? n = e[0] : e instanceof Node && (n = e), n && (t.lastWord.insertNode(n), t.lastWord = null, t.context.invoke("editor.focus")) } - }, - }, - { - 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) { + }) + } + } + }, { + 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() + } + }, ], tj(t.prototype, e), n && tj(t, n), o + }(); + + function tV(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); + 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 tq = function() { + var t, e, n; + + function o(t) { + var e = this; + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o), this.context = t, this.$editingArea = t.layoutInfo.editingArea, this.options = t.options, !0 === this.options.inheritPlaceholder && (this.options.placeholder = this.context.$note.attr("placeholder") || this.options.placeholder), this.events = { + "summernote.init summernote.change": function() { + e.update() + }, + "summernote.codeview.toggled": function() { + e.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) { + return t = o, e = [{ + 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) + } + }, ], tV(t.prototype, e), n && tV(t, n), o + }(); + + function t8(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); + 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 tG = function() { + var t, e, n; + + function o(t) { + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o), this.ui = i.a.summernote.ui, this.context = t, this.$toolbar = t.layoutInfo.toolbar, this.options = t.options, this.lang = this.options.langInfo, this.invertedKeyMap = m.invertObject(this.options.keyMap[p.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); - } - }, - }), - ], + return t = o, e = [{ + key: "representShortcut", + value: function(t) { + var e = this.invertedKeyMap[t]; + return this.options.shortcuts && e ? (p.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] = p.isFontInstalled(t) || C.contains(this.options.fontNamesIgnoreCheck, t)), this.fontInstalledMap[t] + } + }, { + key: "isFontDeservedToAdd", + value: function(t) { + return "" !== (t = t.toLowerCase()) && this.isFontInstalled(t) && -1 === p.genericFontFamilies.indexOf(t) + } + }, { + key: "colorPalette", + value: function(t, e, n, o) { + var a = 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 ? a.context.invoke("editor.color", { + backColor: e.attr("data-backColor"), + foreColor: e.attr("data-foreColor") + }) : n ? a.context.invoke("editor.color", { + backColor: e.attr("data-backColor") + }) : o && a.context.invoke("editor.color", { + foreColor: e.attr("data-foreColor") }) - .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(); + }, + callback: function(t) { + var e = t.find(".note-recent-color"); + n && (e.css("background-color", a.options.colorButton.backColor), t.attr("data-backColor", a.options.colorButton.backColor)), o ? (e.css("color", a.options.colorButton.foreColor), t.attr("data-foreColor", a.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 + "
", "
", '", "
", '
', "
", '", '', "
", '
', "
", ].join("") : "") + (o ? ['
', '
' + this.lang.color.foreground + "
", "
", '", "
", '
', "
", '", '', "
", '
', "
", ].join("") : ""), + callback: function(t) { + t.find(".note-holder").each(function(t, e) { + var n = i()(e); + n.append(a.ui.palette({ + colors: a.options.colors, + colorsName: a.options.colorsName, + eventName: n.data("event"), + container: a.options.container, + tooltip: a.options.tooltip + }).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); + 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(a.ui.palette({ + colors: e, + colorsName: e, + eventName: o.data("event"), + container: a.options.container, + tooltip: a.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), + r = o.data("event"), + s = o.attr("data-value"); + if ("openPalette" === r) { + 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"], r)) { + var h = o.closest(".note-color").find(".note-recent-color"), + f = o.closest(".note-color").find(".note-current-color-button"); + h.css("backColor" === r ? "background-color" : "color", s), f.attr("data-" + r, s) + } + a.context.invoke("editor." + r, s) } - 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); + }), ] + }).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" } - 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" : ""; + }), 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 = 0, n = this.options.styleTags.length; e < n; 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() + }) + })(e); + 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" } - }, - }, - { - 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) { + }), 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 o = 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") + }), + r = this.button({ + contents: this.ui.icon(this.options.icons.alignRight), + tooltip: this.lang.paragraph.right + this.representShortcut("justifyRight"), + click: this.context.createInvokeHandler("editor.justifyRight") + }), + s = this.button({ + contents: this.ui.icon(this.options.icons.alignJustify), + tooltip: this.lang.paragraph.justify + this.representShortcut("justifyFull"), + click: this.context.createInvokeHandler("editor.justifyFull") + }), + l = this.button({ + contents: this.ui.icon(this.options.icons.outdent), + tooltip: this.lang.paragraph.outdent + this.representShortcut("outdent"), + click: this.context.createInvokeHandler("editor.outdent") + }), + c = 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", m.invoke(o, "render")), this.context.memo("button.justifyCenter", m.invoke(a, "render")), this.context.memo("button.justifyRight", m.invoke(r, "render")), this.context.memo("button.justifyFull", m.invoke(s, "render")), this.context.memo("button.outdent", m.invoke(l, "render")), this.context.memo("button.indent", m.invoke(c, "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: [o, a, r, s] + }), t.ui.buttonGroup({ + className: "note-list", + children: [l, c] + })]), ]).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
' + }), ], { + 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], a = Array.isArray(i) ? i[0] : i, r = Array.isArray(i) ? 1 === i.length ? [i[0]] : i[1] : [i], s = this.ui.buttonGroup({ + className: "note-" + a + }).render(), l = 0, c = r.length; l < c; l++) { + var u = this.context.memo("button." + r[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 a = o["font-family"].split(",").map(function(t) { + return t.replace(/[\'\"]/g, "").replace(/\s+$/, "").replace(/^\s+/, "") + }), + r = C.find(a, this.isFontInstalled.bind(this)); + n.find(".dropdown-fontname a").each(function(t, e) { + var n = i()(e), + o = n.data("value") + "" == r + ""; + n.toggleClass("checked", o) + }), n.find(".note-current-fontname").text(r).css("font-family", r) + } + 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(), + a = n.find(".note-dimension-picker-mousecatcher"), + r = 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; + r.css({ + width: c + "em", + height: u + "em" + }), a.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) + } + }, ], t8(t.prototype, e), n && t8(t, n), o + }(); + + function tY(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); + 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 tZ = function() { + var t, e, n; + + function o(t) { + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o), this.context = t, this.$window = i()(window), this.$document = i()(document), this.ui = i.a.summernote.ui, this.$note = t.layoutInfo.note, this.$editor = t.layoutInfo.editor, this.$toolbar = t.layoutInfo.toolbar, this.$editable = t.layoutInfo.editable, this.$statusbar = t.layoutInfo.statusbar, this.options = t.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) { + return t = o, e = [{ + 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(), + a = 0; + this.options.otherStaticBar && (a = i()(this.options.otherStaticBar).outerHeight()); + var r = this.$document.scrollTop(), + s = this.$editor.offset().top, + l = s - a, + c = s + t - a - n - o; + !this.isFollowing && r > l && r < c - n ? (this.isFollowing = !0, this.$editable.css({ + marginTop: this.$toolbar.outerHeight() + }), this.$toolbar.css({ + position: "fixed", + top: a, + width: e, + zIndex: 1e3 + })) : this.isFollowing && (r < l || r > 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) + } + }, ], tY(t.prototype, e), n && tY(t, n), o + }(); + + function tX(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); + 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 tQ = function() { + var t, e, n; + + function o(t) { + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o), this.context = t, this.ui = i.a.summernote.ui, this.$body = i()(document.body), this.$editor = t.layoutInfo.editor, this.options = t.options, this.lang = this.options.langInfo, t.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) { + return t = o, e = [{ + 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 === tC.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"), + a = e.$dialog.find(".note-link-btn"), + r = 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 && m.isValidUrl(t.text) && (t.url = t.text), o.on("input paste propertychange", function() { + t.text = o.val(), e.toggleLinkBtn(a, o, i) + }).val(t.text), i.on("input paste propertychange", function() { + t.text || o.val(i.val()), e.toggleLinkBtn(a, o, i) + }).val(t.url), p.isSupportTouch || i.trigger("focus"), e.toggleLinkBtn(a, o, i), e.bindEnterKey(i, a), e.bindEnterKey(o, a); + var l = void 0 !== t.isNewWindow ? t.isNewWindow : e.context.options.linkTargetBlank; + r.prop("checked", l); + var c = !t.url && e.context.options.useProtocol; + s.prop("checked", c), a.one("click", function(a) { + a.preventDefault(), n.resolve({ + range: t.range, + url: i.val(), + text: o.val(), + isNewWindow: r.is(":checked"), + checkProtocol: s.is(":checked") + }), e.ui.hideDialog(e.$dialog) + }) + }), e.ui.onDialogHidden(e.$dialog, function() { + o.off(), i.off(), a.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") + }) + } + }, ], tX(t.prototype, e), n && tX(t, n), o + }(); + + function tJ(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); + 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 et = function() { + var t, e, n; + + function o(t) { + var e = this; + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o), this.context = t, this.ui = i.a.summernote.ui, this.options = t.options, this.events = { + "summernote.keyup summernote.mouseup summernote.change summernote.scroll": function() { + e.update() + }, + "summernote.disable summernote.dialog.shown summernote.blur": function() { + e.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) { + return t = o, e = [{ + 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 = th.ancestor(t.sc, th.isAnchor), + n = i()(e).attr("href"); + this.$popover.find("a").attr("href", n).text(n); + var o = th.posFromPlaceholder(e), + a = i()(this.options.container).offset(); + o.top -= a.top, o.left -= a.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() + } + }, ], tJ(t.prototype, e), n && tJ(t, n), o + }(); + + function ee(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); + 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 en = function() { + var t, e, n; + + function o(t) { + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o), this.context = t, this.ui = i.a.summernote.ui, this.$body = i()(document.body), this.$editor = t.layoutInfo.editor, this.options = t.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) { + return t = o, e = [{ + 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(""), + a = ''); + this.$dialog = this.ui.dialog({ + title: this.lang.image.insert, + fade: this.options.dialogsFade, + body: i, + footer: a + }).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 === tC.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(""), p.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) + }) + } + }, ], ee(t.prototype, e), n && ee(t, n), o + }(); + + function eo(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) { + 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 ei = function() { + var t, e, n; + + function o(t) { + var e = this; + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o), this.context = t, this.ui = i.a.summernote.ui, this.editable = t.layoutInfo.editable[0], this.options = t.options, this.events = { + "summernote.disable summernote.blur": function() { + e.hide() + } + } + } + return t = o, e = [{ + 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 (th.isImg(t)) { + var n = i()(t).offset(), + o = i()(this.options.container).offset(), + a = {}; + this.options.popatmouse ? (a.left = e.pageX - 20, a.top = e.pageY) : a = n, a.top -= o.top, a.left -= o.left, this.$popover.css({ + display: "block", + left: a.left, + top: a.top + }) + } else this.hide() + } + }, { + key: "hide", + value: function() { + this.$popover.hide() + } + }, ], eo(t.prototype, e), n && eo(t, n), o + }(); + + function ea(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); + 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 er = function() { + var t, e, n; + + function o(t) { + var e = this; + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o), this.context = t, this.ui = i.a.summernote.ui, this.options = t.options, this.events = { + "summernote.mousedown": function(t, n) { + e.update(n.target) + }, + "summernote.keyup summernote.scroll summernote.change": function() { + e.update() + }, + "summernote.disable summernote.blur": function() { + e.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) { + return t = o, e = [{ + 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), p.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 = th.isCell(t); + if (e) { + var n = th.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() + } + }, ], ea(t.prototype, e), n && ea(t, n), o + }(); + + function es(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); + 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 el = function() { + var t, e, n; + + function o(t) { + ! function(t, e) { + if (!(t instanceof e)) throw TypeError("Cannot call a class as a function") + }(this, o), this.context = t, this.ui = i.a.summernote.ui, this.$body = i()(document.body), this.$editor = t.layoutInfo.editor, this.options = t.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()("