aboutsummaryrefslogtreecommitdiff
path: root/srcs/wordpress/wp-includes/js/tinymce/plugins/lists
diff options
context:
space:
mode:
Diffstat (limited to 'srcs/wordpress/wp-includes/js/tinymce/plugins/lists')
-rw-r--r--srcs/wordpress/wp-includes/js/tinymce/plugins/lists/plugin.js2182
-rw-r--r--srcs/wordpress/wp-includes/js/tinymce/plugins/lists/plugin.min.js1
2 files changed, 0 insertions, 2183 deletions
diff --git a/srcs/wordpress/wp-includes/js/tinymce/plugins/lists/plugin.js b/srcs/wordpress/wp-includes/js/tinymce/plugins/lists/plugin.js
deleted file mode 100644
index b79a08c..0000000
--- a/srcs/wordpress/wp-includes/js/tinymce/plugins/lists/plugin.js
+++ /dev/null
@@ -1,2182 +0,0 @@
-(function () {
-var lists = (function (domGlobals) {
- 'use strict';
-
- var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
-
- var global$1 = tinymce.util.Tools.resolve('tinymce.dom.RangeUtils');
-
- var global$2 = tinymce.util.Tools.resolve('tinymce.dom.TreeWalker');
-
- var global$3 = tinymce.util.Tools.resolve('tinymce.util.VK');
-
- var global$4 = tinymce.util.Tools.resolve('tinymce.dom.BookmarkManager');
-
- var global$5 = tinymce.util.Tools.resolve('tinymce.util.Tools');
-
- var global$6 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
-
- var isTextNode = function (node) {
- return node && node.nodeType === 3;
- };
- var isListNode = function (node) {
- return node && /^(OL|UL|DL)$/.test(node.nodeName);
- };
- var isOlUlNode = function (node) {
- return node && /^(OL|UL)$/.test(node.nodeName);
- };
- var isListItemNode = function (node) {
- return node && /^(LI|DT|DD)$/.test(node.nodeName);
- };
- var isDlItemNode = function (node) {
- return node && /^(DT|DD)$/.test(node.nodeName);
- };
- var isTableCellNode = function (node) {
- return node && /^(TH|TD)$/.test(node.nodeName);
- };
- var isBr = function (node) {
- return node && node.nodeName === 'BR';
- };
- var isFirstChild = function (node) {
- return node.parentNode.firstChild === node;
- };
- var isLastChild = function (node) {
- return node.parentNode.lastChild === node;
- };
- var isTextBlock = function (editor, node) {
- return node && !!editor.schema.getTextBlockElements()[node.nodeName];
- };
- var isBlock = function (node, blockElements) {
- return node && node.nodeName in blockElements;
- };
- var isBogusBr = function (dom, node) {
- if (!isBr(node)) {
- return false;
- }
- if (dom.isBlock(node.nextSibling) && !isBr(node.previousSibling)) {
- return true;
- }
- return false;
- };
- var isEmpty = function (dom, elm, keepBookmarks) {
- var empty = dom.isEmpty(elm);
- if (keepBookmarks && dom.select('span[data-mce-type=bookmark]', elm).length > 0) {
- return false;
- }
- return empty;
- };
- var isChildOfBody = function (dom, elm) {
- return dom.isChildOf(elm, dom.getRoot());
- };
- var NodeType = {
- isTextNode: isTextNode,
- isListNode: isListNode,
- isOlUlNode: isOlUlNode,
- isDlItemNode: isDlItemNode,
- isListItemNode: isListItemNode,
- isTableCellNode: isTableCellNode,
- isBr: isBr,
- isFirstChild: isFirstChild,
- isLastChild: isLastChild,
- isTextBlock: isTextBlock,
- isBlock: isBlock,
- isBogusBr: isBogusBr,
- isEmpty: isEmpty,
- isChildOfBody: isChildOfBody
- };
-
- var getNormalizedPoint = function (container, offset) {
- if (NodeType.isTextNode(container)) {
- return {
- container: container,
- offset: offset
- };
- }
- var node = global$1.getNode(container, offset);
- if (NodeType.isTextNode(node)) {
- return {
- container: node,
- offset: offset >= container.childNodes.length ? node.data.length : 0
- };
- } else if (node.previousSibling && NodeType.isTextNode(node.previousSibling)) {
- return {
- container: node.previousSibling,
- offset: node.previousSibling.data.length
- };
- } else if (node.nextSibling && NodeType.isTextNode(node.nextSibling)) {
- return {
- container: node.nextSibling,
- offset: 0
- };
- }
- return {
- container: container,
- offset: offset
- };
- };
- var normalizeRange = function (rng) {
- var outRng = rng.cloneRange();
- var rangeStart = getNormalizedPoint(rng.startContainer, rng.startOffset);
- outRng.setStart(rangeStart.container, rangeStart.offset);
- var rangeEnd = getNormalizedPoint(rng.endContainer, rng.endOffset);
- outRng.setEnd(rangeEnd.container, rangeEnd.offset);
- return outRng;
- };
- var Range = {
- getNormalizedPoint: getNormalizedPoint,
- normalizeRange: normalizeRange
- };
-
- var DOM = global$6.DOM;
- var createBookmark = function (rng) {
- var bookmark = {};
- var setupEndPoint = function (start) {
- var offsetNode, container, offset;
- container = rng[start ? 'startContainer' : 'endContainer'];
- offset = rng[start ? 'startOffset' : 'endOffset'];
- if (container.nodeType === 1) {
- offsetNode = DOM.create('span', { 'data-mce-type': 'bookmark' });
- if (container.hasChildNodes()) {
- offset = Math.min(offset, container.childNodes.length - 1);
- if (start) {
- container.insertBefore(offsetNode, container.childNodes[offset]);
- } else {
- DOM.insertAfter(offsetNode, container.childNodes[offset]);
- }
- } else {
- container.appendChild(offsetNode);
- }
- container = offsetNode;
- offset = 0;
- }
- bookmark[start ? 'startContainer' : 'endContainer'] = container;
- bookmark[start ? 'startOffset' : 'endOffset'] = offset;
- };
- setupEndPoint(true);
- if (!rng.collapsed) {
- setupEndPoint();
- }
- return bookmark;
- };
- var resolveBookmark = function (bookmark) {
- function restoreEndPoint(start) {
- var container, offset, node;
- var nodeIndex = function (container) {
- var node = container.parentNode.firstChild, idx = 0;
- while (node) {
- if (node === container) {
- return idx;
- }
- if (node.nodeType !== 1 || node.getAttribute('data-mce-type') !== 'bookmark') {
- idx++;
- }
- node = node.nextSibling;
- }
- return -1;
- };
- container = node = bookmark[start ? 'startContainer' : 'endContainer'];
- offset = bookmark[start ? 'startOffset' : 'endOffset'];
- if (!container) {
- return;
- }
- if (container.nodeType === 1) {
- offset = nodeIndex(container);
- container = container.parentNode;
- DOM.remove(node);
- if (!container.hasChildNodes() && DOM.isBlock(container)) {
- container.appendChild(DOM.create('br'));
- }
- }
- bookmark[start ? 'startContainer' : 'endContainer'] = container;
- bookmark[start ? 'startOffset' : 'endOffset'] = offset;
- }
- restoreEndPoint(true);
- restoreEndPoint();
- var rng = DOM.createRng();
- rng.setStart(bookmark.startContainer, bookmark.startOffset);
- if (bookmark.endContainer) {
- rng.setEnd(bookmark.endContainer, bookmark.endOffset);
- }
- return Range.normalizeRange(rng);
- };
- var Bookmark = {
- createBookmark: createBookmark,
- resolveBookmark: resolveBookmark
- };
-
- var constant = function (value) {
- return function () {
- return value;
- };
- };
- var not = function (f) {
- return function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- return !f.apply(null, args);
- };
- };
- var never = constant(false);
- var always = constant(true);
-
- var never$1 = never;
- var always$1 = always;
- var none = function () {
- return NONE;
- };
- var NONE = function () {
- var eq = function (o) {
- return o.isNone();
- };
- var call = function (thunk) {
- return thunk();
- };
- var id = function (n) {
- return n;
- };
- var noop = function () {
- };
- var nul = function () {
- return null;
- };
- var undef = function () {
- return undefined;
- };
- var me = {
- fold: function (n, s) {
- return n();
- },
- is: never$1,
- isSome: never$1,
- isNone: always$1,
- getOr: id,
- getOrThunk: call,
- getOrDie: function (msg) {
- throw new Error(msg || 'error: getOrDie called on none.');
- },
- getOrNull: nul,
- getOrUndefined: undef,
- or: id,
- orThunk: call,
- map: none,
- ap: none,
- each: noop,
- bind: none,
- flatten: none,
- exists: never$1,
- forall: always$1,
- filter: none,
- equals: eq,
- equals_: eq,
- toArray: function () {
- return [];
- },
- toString: constant('none()')
- };
- if (Object.freeze) {
- Object.freeze(me);
- }
- return me;
- }();
- var some = function (a) {
- var constant_a = function () {
- return a;
- };
- var self = function () {
- return me;
- };
- var map = function (f) {
- return some(f(a));
- };
- var bind = function (f) {
- return f(a);
- };
- var me = {
- fold: function (n, s) {
- return s(a);
- },
- is: function (v) {
- return a === v;
- },
- isSome: always$1,
- isNone: never$1,
- getOr: constant_a,
- getOrThunk: constant_a,
- getOrDie: constant_a,
- getOrNull: constant_a,
- getOrUndefined: constant_a,
- or: self,
- orThunk: self,
- map: map,
- ap: function (optfab) {
- return optfab.fold(none, function (fab) {
- return some(fab(a));
- });
- },
- each: function (f) {
- f(a);
- },
- bind: bind,
- flatten: constant_a,
- exists: bind,
- forall: bind,
- filter: function (f) {
- return f(a) ? me : NONE;
- },
- equals: function (o) {
- return o.is(a);
- },
- equals_: function (o, elementEq) {
- return o.fold(never$1, function (b) {
- return elementEq(a, b);
- });
- },
- toArray: function () {
- return [a];
- },
- toString: function () {
- return 'some(' + a + ')';
- }
- };
- return me;
- };
- var from = function (value) {
- return value === null || value === undefined ? NONE : some(value);
- };
- var Option = {
- some: some,
- none: none,
- from: from
- };
-
- var typeOf = function (x) {
- if (x === null) {
- return 'null';
- }
- var t = typeof x;
- if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {
- return 'array';
- }
- if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {
- return 'string';
- }
- return t;
- };
- var isType = function (type) {
- return function (value) {
- return typeOf(value) === type;
- };
- };
- var isString = isType('string');
- var isArray = isType('array');
- var isBoolean = isType('boolean');
- var isFunction = isType('function');
- var isNumber = isType('number');
-
- var slice = Array.prototype.slice;
- var map = function (xs, f) {
- var len = xs.length;
- var r = new Array(len);
- for (var i = 0; i < len; i++) {
- var x = xs[i];
- r[i] = f(x, i, xs);
- }
- return r;
- };
- var each = function (xs, f) {
- for (var i = 0, len = xs.length; i < len; i++) {
- var x = xs[i];
- f(x, i, xs);
- }
- };
- var filter = function (xs, pred) {
- var r = [];
- for (var i = 0, len = xs.length; i < len; i++) {
- var x = xs[i];
- if (pred(x, i, xs)) {
- r.push(x);
- }
- }
- return r;
- };
- var groupBy = function (xs, f) {
- if (xs.length === 0) {
- return [];
- } else {
- var wasType = f(xs[0]);
- var r = [];
- var group = [];
- for (var i = 0, len = xs.length; i < len; i++) {
- var x = xs[i];
- var type = f(x);
- if (type !== wasType) {
- r.push(group);
- group = [];
- }
- wasType = type;
- group.push(x);
- }
- if (group.length !== 0) {
- r.push(group);
- }
- return r;
- }
- };
- var foldl = function (xs, f, acc) {
- each(xs, function (x) {
- acc = f(acc, x);
- });
- return acc;
- };
- var find = function (xs, pred) {
- for (var i = 0, len = xs.length; i < len; i++) {
- var x = xs[i];
- if (pred(x, i, xs)) {
- return Option.some(x);
- }
- }
- return Option.none();
- };
- var push = Array.prototype.push;
- var flatten = function (xs) {
- var r = [];
- for (var i = 0, len = xs.length; i < len; ++i) {
- if (!isArray(xs[i])) {
- throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);
- }
- push.apply(r, xs[i]);
- }
- return r;
- };
- var bind = function (xs, f) {
- var output = map(xs, f);
- return flatten(output);
- };
- var reverse = function (xs) {
- var r = slice.call(xs, 0);
- r.reverse();
- return r;
- };
- var head = function (xs) {
- return xs.length === 0 ? Option.none() : Option.some(xs[0]);
- };
- var last = function (xs) {
- return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]);
- };
- var from$1 = isFunction(Array.from) ? Array.from : function (x) {
- return slice.call(x);
- };
-
- var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')();
-
- var path = function (parts, scope) {
- var o = scope !== undefined && scope !== null ? scope : Global;
- for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i) {
- o = o[parts[i]];
- }
- return o;
- };
- var resolve = function (p, scope) {
- var parts = p.split('.');
- return path(parts, scope);
- };
-
- var unsafe = function (name, scope) {
- return resolve(name, scope);
- };
- var getOrDie = function (name, scope) {
- var actual = unsafe(name, scope);
- if (actual === undefined || actual === null) {
- throw new Error(name + ' not available on this browser');
- }
- return actual;
- };
- var Global$1 = { getOrDie: getOrDie };
-
- var htmlElement = function (scope) {
- return Global$1.getOrDie('HTMLElement', scope);
- };
- var isPrototypeOf = function (x) {
- var scope = resolve('ownerDocument.defaultView', x);
- return htmlElement(scope).prototype.isPrototypeOf(x);
- };
- var HTMLElement = { isPrototypeOf: isPrototypeOf };
-
- var global$7 = tinymce.util.Tools.resolve('tinymce.dom.DomQuery');
-
- var getParentList = function (editor) {
- var selectionStart = editor.selection.getStart(true);
- return editor.dom.getParent(selectionStart, 'OL,UL,DL', getClosestListRootElm(editor, selectionStart));
- };
- var isParentListSelected = function (parentList, selectedBlocks) {
- return parentList && selectedBlocks.length === 1 && selectedBlocks[0] === parentList;
- };
- var findSubLists = function (parentList) {
- return global$5.grep(parentList.querySelectorAll('ol,ul,dl'), function (elm) {
- return NodeType.isListNode(elm);
- });
- };
- var getSelectedSubLists = function (editor) {
- var parentList = getParentList(editor);
- var selectedBlocks = editor.selection.getSelectedBlocks();
- if (isParentListSelected(parentList, selectedBlocks)) {
- return findSubLists(parentList);
- } else {
- return global$5.grep(selectedBlocks, function (elm) {
- return NodeType.isListNode(elm) && parentList !== elm;
- });
- }
- };
- var findParentListItemsNodes = function (editor, elms) {
- var listItemsElms = global$5.map(elms, function (elm) {
- var parentLi = editor.dom.getParent(elm, 'li,dd,dt', getClosestListRootElm(editor, elm));
- return parentLi ? parentLi : elm;
- });
- return global$7.unique(listItemsElms);
- };
- var getSelectedListItems = function (editor) {
- var selectedBlocks = editor.selection.getSelectedBlocks();
- return global$5.grep(findParentListItemsNodes(editor, selectedBlocks), function (block) {
- return NodeType.isListItemNode(block);
- });
- };
- var getSelectedDlItems = function (editor) {
- return filter(getSelectedListItems(editor), NodeType.isDlItemNode);
- };
- var getClosestListRootElm = function (editor, elm) {
- var parentTableCell = editor.dom.getParents(elm, 'TD,TH');
- var root = parentTableCell.length > 0 ? parentTableCell[0] : editor.getBody();
- return root;
- };
- var findLastParentListNode = function (editor, elm) {
- var parentLists = editor.dom.getParents(elm, 'ol,ul', getClosestListRootElm(editor, elm));
- return last(parentLists);
- };
- var getSelectedLists = function (editor) {
- var firstList = findLastParentListNode(editor, editor.selection.getStart());
- var subsequentLists = filter(editor.selection.getSelectedBlocks(), NodeType.isOlUlNode);
- return firstList.toArray().concat(subsequentLists);
- };
- var getSelectedListRoots = function (editor) {
- var selectedLists = getSelectedLists(editor);
- return getUniqueListRoots(editor, selectedLists);
- };
- var getUniqueListRoots = function (editor, lists) {
- var listRoots = map(lists, function (list) {
- return findLastParentListNode(editor, list).getOr(list);
- });
- return global$7.unique(listRoots);
- };
- var isList = function (editor) {
- var list = getParentList(editor);
- return HTMLElement.isPrototypeOf(list);
- };
- var Selection = {
- isList: isList,
- getParentList: getParentList,
- getSelectedSubLists: getSelectedSubLists,
- getSelectedListItems: getSelectedListItems,
- getClosestListRootElm: getClosestListRootElm,
- getSelectedDlItems: getSelectedDlItems,
- getSelectedListRoots: getSelectedListRoots
- };
-
- var fromHtml = function (html, scope) {
- var doc = scope || domGlobals.document;
- var div = doc.createElement('div');
- div.innerHTML = html;
- if (!div.hasChildNodes() || div.childNodes.length > 1) {
- domGlobals.console.error('HTML does not have a single root node', html);
- throw new Error('HTML must have a single root node');
- }
- return fromDom(div.childNodes[0]);
- };
- var fromTag = function (tag, scope) {
- var doc = scope || domGlobals.document;
- var node = doc.createElement(tag);
- return fromDom(node);
- };
- var fromText = function (text, scope) {
- var doc = scope || domGlobals.document;
- var node = doc.createTextNode(text);
- return fromDom(node);
- };
- var fromDom = function (node) {
- if (node === null || node === undefined) {
- throw new Error('Node cannot be null or undefined');
- }
- return { dom: constant(node) };
- };
- var fromPoint = function (docElm, x, y) {
- var doc = docElm.dom();
- return Option.from(doc.elementFromPoint(x, y)).map(fromDom);
- };
- var Element = {
- fromHtml: fromHtml,
- fromTag: fromTag,
- fromText: fromText,
- fromDom: fromDom,
- fromPoint: fromPoint
- };
-
- var liftN = function (arr, f) {
- var r = [];
- for (var i = 0; i < arr.length; i++) {
- var x = arr[i];
- if (x.isSome()) {
- r.push(x.getOrDie());
- } else {
- return Option.none();
- }
- }
- return Option.some(f.apply(null, r));
- };
-
- var fromElements = function (elements, scope) {
- var doc = scope || domGlobals.document;
- var fragment = doc.createDocumentFragment();
- each(elements, function (element) {
- fragment.appendChild(element.dom());
- });
- return Element.fromDom(fragment);
- };
-
- var Immutable = function () {
- var fields = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- fields[_i] = arguments[_i];
- }
- return function () {
- var values = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- values[_i] = arguments[_i];
- }
- if (fields.length !== values.length) {
- throw new Error('Wrong number of arguments to struct. Expected "[' + fields.length + ']", got ' + values.length + ' arguments');
- }
- var struct = {};
- each(fields, function (name, i) {
- struct[name] = constant(values[i]);
- });
- return struct;
- };
- };
-
- var keys = Object.keys;
- var each$1 = function (obj, f) {
- var props = keys(obj);
- for (var k = 0, len = props.length; k < len; k++) {
- var i = props[k];
- var x = obj[i];
- f(x, i, obj);
- }
- };
-
- var node = function () {
- var f = Global$1.getOrDie('Node');
- return f;
- };
- var compareDocumentPosition = function (a, b, match) {
- return (a.compareDocumentPosition(b) & match) !== 0;
- };
- var documentPositionPreceding = function (a, b) {
- return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_PRECEDING);
- };
- var documentPositionContainedBy = function (a, b) {
- return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_CONTAINED_BY);
- };
- var Node = {
- documentPositionPreceding: documentPositionPreceding,
- documentPositionContainedBy: documentPositionContainedBy
- };
-
- var cached = function (f) {
- var called = false;
- var r;
- return function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- if (!called) {
- called = true;
- r = f.apply(null, args);
- }
- return r;
- };
- };
-
- var firstMatch = function (regexes, s) {
- for (var i = 0; i < regexes.length; i++) {
- var x = regexes[i];
- if (x.test(s)) {
- return x;
- }
- }
- return undefined;
- };
- var find$1 = function (regexes, agent) {
- var r = firstMatch(regexes, agent);
- if (!r) {
- return {
- major: 0,
- minor: 0
- };
- }
- var group = function (i) {
- return Number(agent.replace(r, '$' + i));
- };
- return nu(group(1), group(2));
- };
- var detect = function (versionRegexes, agent) {
- var cleanedAgent = String(agent).toLowerCase();
- if (versionRegexes.length === 0) {
- return unknown();
- }
- return find$1(versionRegexes, cleanedAgent);
- };
- var unknown = function () {
- return nu(0, 0);
- };
- var nu = function (major, minor) {
- return {
- major: major,
- minor: minor
- };
- };
- var Version = {
- nu: nu,
- detect: detect,
- unknown: unknown
- };
-
- var edge = 'Edge';
- var chrome = 'Chrome';
- var ie = 'IE';
- var opera = 'Opera';
- var firefox = 'Firefox';
- var safari = 'Safari';
- var isBrowser = function (name, current) {
- return function () {
- return current === name;
- };
- };
- var unknown$1 = function () {
- return nu$1({
- current: undefined,
- version: Version.unknown()
- });
- };
- var nu$1 = function (info) {
- var current = info.current;
- var version = info.version;
- return {
- current: current,
- version: version,
- isEdge: isBrowser(edge, current),
- isChrome: isBrowser(chrome, current),
- isIE: isBrowser(ie, current),
- isOpera: isBrowser(opera, current),
- isFirefox: isBrowser(firefox, current),
- isSafari: isBrowser(safari, current)
- };
- };
- var Browser = {
- unknown: unknown$1,
- nu: nu$1,
- edge: constant(edge),
- chrome: constant(chrome),
- ie: constant(ie),
- opera: constant(opera),
- firefox: constant(firefox),
- safari: constant(safari)
- };
-
- var windows = 'Windows';
- var ios = 'iOS';
- var android = 'Android';
- var linux = 'Linux';
- var osx = 'OSX';
- var solaris = 'Solaris';
- var freebsd = 'FreeBSD';
- var isOS = function (name, current) {
- return function () {
- return current === name;
- };
- };
- var unknown$2 = function () {
- return nu$2({
- current: undefined,
- version: Version.unknown()
- });
- };
- var nu$2 = function (info) {
- var current = info.current;
- var version = info.version;
- return {
- current: current,
- version: version,
- isWindows: isOS(windows, current),
- isiOS: isOS(ios, current),
- isAndroid: isOS(android, current),
- isOSX: isOS(osx, current),
- isLinux: isOS(linux, current),
- isSolaris: isOS(solaris, current),
- isFreeBSD: isOS(freebsd, current)
- };
- };
- var OperatingSystem = {
- unknown: unknown$2,
- nu: nu$2,
- windows: constant(windows),
- ios: constant(ios),
- android: constant(android),
- linux: constant(linux),
- osx: constant(osx),
- solaris: constant(solaris),
- freebsd: constant(freebsd)
- };
-
- var DeviceType = function (os, browser, userAgent) {
- var isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;
- var isiPhone = os.isiOS() && !isiPad;
- var isAndroid3 = os.isAndroid() && os.version.major === 3;
- var isAndroid4 = os.isAndroid() && os.version.major === 4;
- var isTablet = isiPad || isAndroid3 || isAndroid4 && /mobile/i.test(userAgent) === true;
- var isTouch = os.isiOS() || os.isAndroid();
- var isPhone = isTouch && !isTablet;
- var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;
- return {
- isiPad: constant(isiPad),
- isiPhone: constant(isiPhone),
- isTablet: constant(isTablet),
- isPhone: constant(isPhone),
- isTouch: constant(isTouch),
- isAndroid: os.isAndroid,
- isiOS: os.isiOS,
- isWebView: constant(iOSwebview)
- };
- };
-
- var detect$1 = function (candidates, userAgent) {
- var agent = String(userAgent).toLowerCase();
- return find(candidates, function (candidate) {
- return candidate.search(agent);
- });
- };
- var detectBrowser = function (browsers, userAgent) {
- return detect$1(browsers, userAgent).map(function (browser) {
- var version = Version.detect(browser.versionRegexes, userAgent);
- return {
- current: browser.name,
- version: version
- };
- });
- };
- var detectOs = function (oses, userAgent) {
- return detect$1(oses, userAgent).map(function (os) {
- var version = Version.detect(os.versionRegexes, userAgent);
- return {
- current: os.name,
- version: version
- };
- });
- };
- var UaString = {
- detectBrowser: detectBrowser,
- detectOs: detectOs
- };
-
- var contains = function (str, substr) {
- return str.indexOf(substr) !== -1;
- };
-
- var normalVersionRegex = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/;
- var checkContains = function (target) {
- return function (uastring) {
- return contains(uastring, target);
- };
- };
- var browsers = [
- {
- name: 'Edge',
- versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],
- search: function (uastring) {
- return contains(uastring, 'edge/') && contains(uastring, 'chrome') && contains(uastring, 'safari') && contains(uastring, 'applewebkit');
- }
- },
- {
- name: 'Chrome',
- versionRegexes: [
- /.*?chrome\/([0-9]+)\.([0-9]+).*/,
- normalVersionRegex
- ],
- search: function (uastring) {
- return contains(uastring, 'chrome') && !contains(uastring, 'chromeframe');
- }
- },
- {
- name: 'IE',
- versionRegexes: [
- /.*?msie\ ?([0-9]+)\.([0-9]+).*/,
- /.*?rv:([0-9]+)\.([0-9]+).*/
- ],
- search: function (uastring) {
- return contains(uastring, 'msie') || contains(uastring, 'trident');
- }
- },
- {
- name: 'Opera',
- versionRegexes: [
- normalVersionRegex,
- /.*?opera\/([0-9]+)\.([0-9]+).*/
- ],
- search: checkContains('opera')
- },
- {
- name: 'Firefox',
- versionRegexes: [/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],
- search: checkContains('firefox')
- },
- {
- name: 'Safari',
- versionRegexes: [
- normalVersionRegex,
- /.*?cpu os ([0-9]+)_([0-9]+).*/
- ],
- search: function (uastring) {
- return (contains(uastring, 'safari') || contains(uastring, 'mobile/')) && contains(uastring, 'applewebkit');
- }
- }
- ];
- var oses = [
- {
- name: 'Windows',
- search: checkContains('win'),
- versionRegexes: [/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]
- },
- {
- name: 'iOS',
- search: function (uastring) {
- return contains(uastring, 'iphone') || contains(uastring, 'ipad');
- },
- versionRegexes: [
- /.*?version\/\ ?([0-9]+)\.([0-9]+).*/,
- /.*cpu os ([0-9]+)_([0-9]+).*/,
- /.*cpu iphone os ([0-9]+)_([0-9]+).*/
- ]
- },
- {
- name: 'Android',
- search: checkContains('android'),
- versionRegexes: [/.*?android\ ?([0-9]+)\.([0-9]+).*/]
- },
- {
- name: 'OSX',
- search: checkContains('os x'),
- versionRegexes: [/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]
- },
- {
- name: 'Linux',
- search: checkContains('linux'),
- versionRegexes: []
- },
- {
- name: 'Solaris',
- search: checkContains('sunos'),
- versionRegexes: []
- },
- {
- name: 'FreeBSD',
- search: checkContains('freebsd'),
- versionRegexes: []
- }
- ];
- var PlatformInfo = {
- browsers: constant(browsers),
- oses: constant(oses)
- };
-
- var detect$2 = function (userAgent) {
- var browsers = PlatformInfo.browsers();
- var oses = PlatformInfo.oses();
- var browser = UaString.detectBrowser(browsers, userAgent).fold(Browser.unknown, Browser.nu);
- var os = UaString.detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);
- var deviceType = DeviceType(os, browser, userAgent);
- return {
- browser: browser,
- os: os,
- deviceType: deviceType
- };
- };
- var PlatformDetection = { detect: detect$2 };
-
- var detect$3 = cached(function () {
- var userAgent = domGlobals.navigator.userAgent;
- return PlatformDetection.detect(userAgent);
- });
- var PlatformDetection$1 = { detect: detect$3 };
-
- var ATTRIBUTE = domGlobals.Node.ATTRIBUTE_NODE;
- var CDATA_SECTION = domGlobals.Node.CDATA_SECTION_NODE;
- var COMMENT = domGlobals.Node.COMMENT_NODE;
- var DOCUMENT = domGlobals.Node.DOCUMENT_NODE;
- var DOCUMENT_TYPE = domGlobals.Node.DOCUMENT_TYPE_NODE;
- var DOCUMENT_FRAGMENT = domGlobals.Node.DOCUMENT_FRAGMENT_NODE;
- var ELEMENT = domGlobals.Node.ELEMENT_NODE;
- var TEXT = domGlobals.Node.TEXT_NODE;
- var PROCESSING_INSTRUCTION = domGlobals.Node.PROCESSING_INSTRUCTION_NODE;
- var ENTITY_REFERENCE = domGlobals.Node.ENTITY_REFERENCE_NODE;
- var ENTITY = domGlobals.Node.ENTITY_NODE;
- var NOTATION = domGlobals.Node.NOTATION_NODE;
-
- var ELEMENT$1 = ELEMENT;
- var is = function (element, selector) {
- var dom = element.dom();
- if (dom.nodeType !== ELEMENT$1) {
- return false;
- } else {
- var elem = dom;
- if (elem.matches !== undefined) {
- return elem.matches(selector);
- } else if (elem.msMatchesSelector !== undefined) {
- return elem.msMatchesSelector(selector);
- } else if (elem.webkitMatchesSelector !== undefined) {
- return elem.webkitMatchesSelector(selector);
- } else if (elem.mozMatchesSelector !== undefined) {
- return elem.mozMatchesSelector(selector);
- } else {
- throw new Error('Browser lacks native selectors');
- }
- }
- };
-
- var eq = function (e1, e2) {
- return e1.dom() === e2.dom();
- };
- var regularContains = function (e1, e2) {
- var d1 = e1.dom();
- var d2 = e2.dom();
- return d1 === d2 ? false : d1.contains(d2);
- };
- var ieContains = function (e1, e2) {
- return Node.documentPositionContainedBy(e1.dom(), e2.dom());
- };
- var browser = PlatformDetection$1.detect().browser;
- var contains$1 = browser.isIE() ? ieContains : regularContains;
- var is$1 = is;
-
- var parent = function (element) {
- return Option.from(element.dom().parentNode).map(Element.fromDom);
- };
- var children = function (element) {
- return map(element.dom().childNodes, Element.fromDom);
- };
- var child = function (element, index) {
- var cs = element.dom().childNodes;
- return Option.from(cs[index]).map(Element.fromDom);
- };
- var firstChild = function (element) {
- return child(element, 0);
- };
- var lastChild = function (element) {
- return child(element, element.dom().childNodes.length - 1);
- };
- var spot = Immutable('element', 'offset');
-
- var before = function (marker, element) {
- var parent$1 = parent(marker);
- parent$1.each(function (v) {
- v.dom().insertBefore(element.dom(), marker.dom());
- });
- };
- var append = function (parent, element) {
- parent.dom().appendChild(element.dom());
- };
-
- var before$1 = function (marker, elements) {
- each(elements, function (x) {
- before(marker, x);
- });
- };
- var append$1 = function (parent, elements) {
- each(elements, function (x) {
- append(parent, x);
- });
- };
-
- var remove = function (element) {
- var dom = element.dom();
- if (dom.parentNode !== null) {
- dom.parentNode.removeChild(dom);
- }
- };
-
- var name = function (element) {
- var r = element.dom().nodeName;
- return r.toLowerCase();
- };
- var type = function (element) {
- return element.dom().nodeType;
- };
- var isType$1 = function (t) {
- return function (element) {
- return type(element) === t;
- };
- };
- var isElement = isType$1(ELEMENT);
-
- var rawSet = function (dom, key, value) {
- if (isString(value) || isBoolean(value) || isNumber(value)) {
- dom.setAttribute(key, value + '');
- } else {
- domGlobals.console.error('Invalid call to Attr.set. Key ', key, ':: Value ', value, ':: Element ', dom);
- throw new Error('Attribute value was not simple');
- }
- };
- var setAll = function (element, attrs) {
- var dom = element.dom();
- each$1(attrs, function (v, k) {
- rawSet(dom, k, v);
- });
- };
- var clone = function (element) {
- return foldl(element.dom().attributes, function (acc, attr) {
- acc[attr.name] = attr.value;
- return acc;
- }, {});
- };
-
- var isSupported = function (dom) {
- return dom.style !== undefined && isFunction(dom.style.getPropertyValue);
- };
-
- var internalSet = function (dom, property, value) {
- if (!isString(value)) {
- domGlobals.console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);
- throw new Error('CSS value must be a string: ' + value);
- }
- if (isSupported(dom)) {
- dom.style.setProperty(property, value);
- }
- };
- var set = function (element, property, value) {
- var dom = element.dom();
- internalSet(dom, property, value);
- };
-
- var clone$1 = function (original, isDeep) {
- return Element.fromDom(original.dom().cloneNode(isDeep));
- };
- var deep = function (original) {
- return clone$1(original, true);
- };
- var shallowAs = function (original, tag) {
- var nu = Element.fromTag(tag);
- var attributes = clone(original);
- setAll(nu, attributes);
- return nu;
- };
- var mutate = function (original, tag) {
- var nu = shallowAs(original, tag);
- before(original, nu);
- var children$1 = children(original);
- append$1(nu, children$1);
- remove(original);
- return nu;
- };
-
- var joinSegment = function (parent, child) {
- append(parent.item, child.list);
- };
- var joinSegments = function (segments) {
- for (var i = 1; i < segments.length; i++) {
- joinSegment(segments[i - 1], segments[i]);
- }
- };
- var appendSegments = function (head$1, tail) {
- liftN([
- last(head$1),
- head(tail)
- ], joinSegment);
- };
- var createSegment = function (scope, listType) {
- var segment = {
- list: Element.fromTag(listType, scope),
- item: Element.fromTag('li', scope)
- };
- append(segment.list, segment.item);
- return segment;
- };
- var createSegments = function (scope, entry, size) {
- var segments = [];
- for (var i = 0; i < size; i++) {
- segments.push(createSegment(scope, entry.listType));
- }
- return segments;
- };
- var populateSegments = function (segments, entry) {
- for (var i = 0; i < segments.length - 1; i++) {
- set(segments[i].item, 'list-style-type', 'none');
- }
- last(segments).each(function (segment) {
- setAll(segment.list, entry.listAttributes);
- setAll(segment.item, entry.itemAttributes);
- append$1(segment.item, entry.content);
- });
- };
- var normalizeSegment = function (segment, entry) {
- if (name(segment.list) !== entry.listType) {
- segment.list = mutate(segment.list, entry.listType);
- }
- setAll(segment.list, entry.listAttributes);
- };
- var createItem = function (scope, attr, content) {
- var item = Element.fromTag('li', scope);
- setAll(item, attr);
- append$1(item, content);
- return item;
- };
- var appendItem = function (segment, item) {
- append(segment.list, item);
- segment.item = item;
- };
- var writeShallow = function (scope, cast, entry) {
- var newCast = cast.slice(0, entry.depth);
- last(newCast).each(function (segment) {
- var item = createItem(scope, entry.itemAttributes, entry.content);
- appendItem(segment, item);
- normalizeSegment(segment, entry);
- });
- return newCast;
- };
- var writeDeep = function (scope, cast, entry) {
- var segments = createSegments(scope, entry, entry.depth - cast.length);
- joinSegments(segments);
- populateSegments(segments, entry);
- appendSegments(cast, segments);
- return cast.concat(segments);
- };
- var composeList = function (scope, entries) {
- var cast = foldl(entries, function (cast, entry) {
- return entry.depth > cast.length ? writeDeep(scope, cast, entry) : writeShallow(scope, cast, entry);
- }, []);
- return head(cast).map(function (segment) {
- return segment.list;
- });
- };
-
- var isList$1 = function (el) {
- return is$1(el, 'OL,UL');
- };
- var hasFirstChildList = function (el) {
- return firstChild(el).map(isList$1).getOr(false);
- };
- var hasLastChildList = function (el) {
- return lastChild(el).map(isList$1).getOr(false);
- };
-
- var isIndented = function (entry) {
- return entry.depth > 0;
- };
- var isSelected = function (entry) {
- return entry.isSelected;
- };
- var cloneItemContent = function (li) {
- var children$1 = children(li);
- var content = hasLastChildList(li) ? children$1.slice(0, -1) : children$1;
- return map(content, deep);
- };
- var createEntry = function (li, depth, isSelected) {
- return parent(li).filter(isElement).map(function (list) {
- return {
- depth: depth,
- isSelected: isSelected,
- content: cloneItemContent(li),
- itemAttributes: clone(li),
- listAttributes: clone(list),
- listType: name(list)
- };
- });
- };
-
- var indentEntry = function (indentation, entry) {
- switch (indentation) {
- case 'Indent':
- entry.depth++;
- break;
- case 'Outdent':
- entry.depth--;
- break;
- case 'Flatten':
- entry.depth = 0;
- }
- };
-
- var hasOwnProperty = Object.prototype.hasOwnProperty;
- var shallow = function (old, nu) {
- return nu;
- };
- var baseMerge = function (merger) {
- return function () {
- var objects = new Array(arguments.length);
- for (var i = 0; i < objects.length; i++) {
- objects[i] = arguments[i];
- }
- if (objects.length === 0) {
- throw new Error('Can\'t merge zero objects');
- }
- var ret = {};
- for (var j = 0; j < objects.length; j++) {
- var curObject = objects[j];
- for (var key in curObject) {
- if (hasOwnProperty.call(curObject, key)) {
- ret[key] = merger(ret[key], curObject[key]);
- }
- }
- }
- return ret;
- };
- };
- var merge = baseMerge(shallow);
-
- var cloneListProperties = function (target, source) {
- target.listType = source.listType;
- target.listAttributes = merge({}, source.listAttributes);
- };
- var previousSiblingEntry = function (entries, start) {
- var depth = entries[start].depth;
- for (var i = start - 1; i >= 0; i--) {
- if (entries[i].depth === depth) {
- return Option.some(entries[i]);
- }
- if (entries[i].depth < depth) {
- break;
- }
- }
- return Option.none();
- };
- var normalizeEntries = function (entries) {
- each(entries, function (entry, i) {
- previousSiblingEntry(entries, i).each(function (matchingEntry) {
- cloneListProperties(entry, matchingEntry);
- });
- });
- };
-
- var Cell = function (initial) {
- var value = initial;
- var get = function () {
- return value;
- };
- var set = function (v) {
- value = v;
- };
- var clone = function () {
- return Cell(get());
- };
- return {
- get: get,
- set: set,
- clone: clone
- };
- };
-
- var parseItem = function (depth, itemSelection, selectionState, item) {
- return firstChild(item).filter(isList$1).fold(function () {
- itemSelection.each(function (selection) {
- if (eq(selection.start, item)) {
- selectionState.set(true);
- }
- });
- var currentItemEntry = createEntry(item, depth, selectionState.get());
- itemSelection.each(function (selection) {
- if (eq(selection.end, item)) {
- selectionState.set(false);
- }
- });
- var childListEntries = lastChild(item).filter(isList$1).map(function (list) {
- return parseList(depth, itemSelection, selectionState, list);
- }).getOr([]);
- return currentItemEntry.toArray().concat(childListEntries);
- }, function (list) {
- return parseList(depth, itemSelection, selectionState, list);
- });
- };
- var parseList = function (depth, itemSelection, selectionState, list) {
- return bind(children(list), function (element) {
- var parser = isList$1(element) ? parseList : parseItem;
- var newDepth = depth + 1;
- return parser(newDepth, itemSelection, selectionState, element);
- });
- };
- var parseLists = function (lists, itemSelection) {
- var selectionState = Cell(false);
- var initialDepth = 0;
- return map(lists, function (list) {
- return {
- sourceList: list,
- entries: parseList(initialDepth, itemSelection, selectionState, list)
- };
- });
- };
-
- var global$8 = tinymce.util.Tools.resolve('tinymce.Env');
-
- var createTextBlock = function (editor, contentNode) {
- var dom = editor.dom;
- var blockElements = editor.schema.getBlockElements();
- var fragment = dom.createFragment();
- var node, textBlock, blockName, hasContentNode;
- if (editor.settings.forced_root_block) {
- blockName = editor.settings.forced_root_block;
- }
- if (blockName) {
- textBlock = dom.create(blockName);
- if (textBlock.tagName === editor.settings.forced_root_block) {
- dom.setAttribs(textBlock, editor.settings.forced_root_block_attrs);
- }
- if (!NodeType.isBlock(contentNode.firstChild, blockElements)) {
- fragment.appendChild(textBlock);
- }
- }
- if (contentNode) {
- while (node = contentNode.firstChild) {
- var nodeName = node.nodeName;
- if (!hasContentNode && (nodeName !== 'SPAN' || node.getAttribute('data-mce-type') !== 'bookmark')) {
- hasContentNode = true;
- }
- if (NodeType.isBlock(node, blockElements)) {
- fragment.appendChild(node);
- textBlock = null;
- } else {
- if (blockName) {
- if (!textBlock) {
- textBlock = dom.create(blockName);
- fragment.appendChild(textBlock);
- }
- textBlock.appendChild(node);
- } else {
- fragment.appendChild(node);
- }
- }
- }
- }
- if (!editor.settings.forced_root_block) {
- fragment.appendChild(dom.create('br'));
- } else {
- if (!hasContentNode && (!global$8.ie || global$8.ie > 10)) {
- textBlock.appendChild(dom.create('br', { 'data-mce-bogus': '1' }));
- }
- }
- return fragment;
- };
-
- var outdentedComposer = function (editor, entries) {
- return map(entries, function (entry) {
- var content = fromElements(entry.content);
- return Element.fromDom(createTextBlock(editor, content.dom()));
- });
- };
- var indentedComposer = function (editor, entries) {
- normalizeEntries(entries);
- return composeList(editor.contentDocument, entries).toArray();
- };
- var composeEntries = function (editor, entries) {
- return bind(groupBy(entries, isIndented), function (entries) {
- var groupIsIndented = head(entries).map(isIndented).getOr(false);
- return groupIsIndented ? indentedComposer(editor, entries) : outdentedComposer(editor, entries);
- });
- };
- var indentSelectedEntries = function (entries, indentation) {
- each(filter(entries, isSelected), function (entry) {
- return indentEntry(indentation, entry);
- });
- };
- var getItemSelection = function (editor) {
- var selectedListItems = map(Selection.getSelectedListItems(editor), Element.fromDom);
- return liftN([
- find(selectedListItems, not(hasFirstChildList)),
- find(reverse(selectedListItems), not(hasFirstChildList))
- ], function (start, end) {
- return {
- start: start,
- end: end
- };
- });
- };
- var listsIndentation = function (editor, lists, indentation) {
- var entrySets = parseLists(lists, getItemSelection(editor));
- each(entrySets, function (entrySet) {
- indentSelectedEntries(entrySet.entries, indentation);
- before$1(entrySet.sourceList, composeEntries(editor, entrySet.entries));
- remove(entrySet.sourceList);
- });
- };
-
- var DOM$1 = global$6.DOM;
- var splitList = function (editor, ul, li) {
- var tmpRng, fragment, bookmarks, node, newBlock;
- var removeAndKeepBookmarks = function (targetNode) {
- global$5.each(bookmarks, function (node) {
- targetNode.parentNode.insertBefore(node, li.parentNode);
- });
- DOM$1.remove(targetNode);
- };
- bookmarks = DOM$1.select('span[data-mce-type="bookmark"]', ul);
- newBlock = createTextBlock(editor, li);
- tmpRng = DOM$1.createRng();
- tmpRng.setStartAfter(li);
- tmpRng.setEndAfter(ul);
- fragment = tmpRng.extractContents();
- for (node = fragment.firstChild; node; node = node.firstChild) {
- if (node.nodeName === 'LI' && editor.dom.isEmpty(node)) {
- DOM$1.remove(node);
- break;
- }
- }
- if (!editor.dom.isEmpty(fragment)) {
- DOM$1.insertAfter(fragment, ul);
- }
- DOM$1.insertAfter(newBlock, ul);
- if (NodeType.isEmpty(editor.dom, li.parentNode)) {
- removeAndKeepBookmarks(li.parentNode);
- }
- DOM$1.remove(li);
- if (NodeType.isEmpty(editor.dom, ul)) {
- DOM$1.remove(ul);
- }
- };
- var SplitList = { splitList: splitList };
-
- var outdentDlItem = function (editor, item) {
- if (is$1(item, 'dd')) {
- mutate(item, 'dt');
- } else if (is$1(item, 'dt')) {
- parent(item).each(function (dl) {
- return SplitList.splitList(editor, dl.dom(), item.dom());
- });
- }
- };
- var indentDlItem = function (item) {
- if (is$1(item, 'dt')) {
- mutate(item, 'dd');
- }
- };
- var dlIndentation = function (editor, indentation, dlItems) {
- if (indentation === 'Indent') {
- each(dlItems, indentDlItem);
- } else {
- each(dlItems, function (item) {
- return outdentDlItem(editor, item);
- });
- }
- };
-
- var selectionIndentation = function (editor, indentation) {
- var lists = map(Selection.getSelectedListRoots(editor), Element.fromDom);
- var dlItems = map(Selection.getSelectedDlItems(editor), Element.fromDom);
- var isHandled = false;
- if (lists.length || dlItems.length) {
- var bookmark = editor.selection.getBookmark();
- listsIndentation(editor, lists, indentation);
- dlIndentation(editor, indentation, dlItems);
- editor.selection.moveToBookmark(bookmark);
- editor.selection.setRng(Range.normalizeRange(editor.selection.getRng()));
- editor.nodeChanged();
- isHandled = true;
- }
- return isHandled;
- };
- var indentListSelection = function (editor) {
- return selectionIndentation(editor, 'Indent');
- };
- var outdentListSelection = function (editor) {
- return selectionIndentation(editor, 'Outdent');
- };
- var flattenListSelection = function (editor) {
- return selectionIndentation(editor, 'Flatten');
- };
-
- var updateListStyle = function (dom, el, detail) {
- var type = detail['list-style-type'] ? detail['list-style-type'] : null;
- dom.setStyle(el, 'list-style-type', type);
- };
- var setAttribs = function (elm, attrs) {
- global$5.each(attrs, function (value, key) {
- elm.setAttribute(key, value);
- });
- };
- var updateListAttrs = function (dom, el, detail) {
- setAttribs(el, detail['list-attributes']);
- global$5.each(dom.select('li', el), function (li) {
- setAttribs(li, detail['list-item-attributes']);
- });
- };
- var updateListWithDetails = function (dom, el, detail) {
- updateListStyle(dom, el, detail);
- updateListAttrs(dom, el, detail);
- };
- var removeStyles = function (dom, element, styles) {
- global$5.each(styles, function (style) {
- var _a;
- return dom.setStyle(element, (_a = {}, _a[style] = '', _a));
- });
- };
- var getEndPointNode = function (editor, rng, start, root) {
- var container, offset;
- container = rng[start ? 'startContainer' : 'endContainer'];
- offset = rng[start ? 'startOffset' : 'endOffset'];
- if (container.nodeType === 1) {
- container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;
- }
- if (!start && NodeType.isBr(container.nextSibling)) {
- container = container.nextSibling;
- }
- while (container.parentNode !== root) {
- if (NodeType.isTextBlock(editor, container)) {
- return container;
- }
- if (/^(TD|TH)$/.test(container.parentNode.nodeName)) {
- return container;
- }
- container = container.parentNode;
- }
- return container;
- };
- var getSelectedTextBlocks = function (editor, rng, root) {
- var textBlocks = [], dom = editor.dom;
- var startNode = getEndPointNode(editor, rng, true, root);
- var endNode = getEndPointNode(editor, rng, false, root);
- var block;
- var siblings = [];
- for (var node = startNode; node; node = node.nextSibling) {
- siblings.push(node);
- if (node === endNode) {
- break;
- }
- }
- global$5.each(siblings, function (node) {
- if (NodeType.isTextBlock(editor, node)) {
- textBlocks.push(node);
- block = null;
- return;
- }
- if (dom.isBlock(node) || NodeType.isBr(node)) {
- if (NodeType.isBr(node)) {
- dom.remove(node);
- }
- block = null;
- return;
- }
- var nextSibling = node.nextSibling;
- if (global$4.isBookmarkNode(node)) {
- if (NodeType.isTextBlock(editor, nextSibling) || !nextSibling && node.parentNode === root) {
- block = null;
- return;
- }
- }
- if (!block) {
- block = dom.create('p');
- node.parentNode.insertBefore(block, node);
- textBlocks.push(block);
- }
- block.appendChild(node);
- });
- return textBlocks;
- };
- var hasCompatibleStyle = function (dom, sib, detail) {
- var sibStyle = dom.getStyle(sib, 'list-style-type');
- var detailStyle = detail ? detail['list-style-type'] : '';
- detailStyle = detailStyle === null ? '' : detailStyle;
- return sibStyle === detailStyle;
- };
- var applyList = function (editor, listName, detail) {
- if (detail === void 0) {
- detail = {};
- }
- var rng = editor.selection.getRng(true);
- var bookmark;
- var listItemName = 'LI';
- var root = Selection.getClosestListRootElm(editor, editor.selection.getStart(true));
- var dom = editor.dom;
- if (dom.getContentEditable(editor.selection.getNode()) === 'false') {
- return;
- }
- listName = listName.toUpperCase();
- if (listName === 'DL') {
- listItemName = 'DT';
- }
- bookmark = Bookmark.createBookmark(rng);
- global$5.each(getSelectedTextBlocks(editor, rng, root), function (block) {
- var listBlock, sibling;
- sibling = block.previousSibling;
- if (sibling && NodeType.isListNode(sibling) && sibling.nodeName === listName && hasCompatibleStyle(dom, sibling, detail)) {
- listBlock = sibling;
- block = dom.rename(block, listItemName);
- sibling.appendChild(block);
- } else {
- listBlock = dom.create(listName);
- block.parentNode.insertBefore(listBlock, block);
- listBlock.appendChild(block);
- block = dom.rename(block, listItemName);
- }
- removeStyles(dom, block, [
- 'margin',
- 'margin-right',
- 'margin-bottom',
- 'margin-left',
- 'margin-top',
- 'padding',
- 'padding-right',
- 'padding-bottom',
- 'padding-left',
- 'padding-top'
- ]);
- updateListWithDetails(dom, listBlock, detail);
- mergeWithAdjacentLists(editor.dom, listBlock);
- });
- editor.selection.setRng(Bookmark.resolveBookmark(bookmark));
- };
- var isValidLists = function (list1, list2) {
- return list1 && list2 && NodeType.isListNode(list1) && list1.nodeName === list2.nodeName;
- };
- var hasSameListStyle = function (dom, list1, list2) {
- var targetStyle = dom.getStyle(list1, 'list-style-type', true);
- var style = dom.getStyle(list2, 'list-style-type', true);
- return targetStyle === style;
- };
- var hasSameClasses = function (elm1, elm2) {
- return elm1.className === elm2.className;
- };
- var shouldMerge = function (dom, list1, list2) {
- return isValidLists(list1, list2) && hasSameListStyle(dom, list1, list2) && hasSameClasses(list1, list2);
- };
- var mergeWithAdjacentLists = function (dom, listBlock) {
- var sibling, node;
- sibling = listBlock.nextSibling;
- if (shouldMerge(dom, listBlock, sibling)) {
- while (node = sibling.firstChild) {
- listBlock.appendChild(node);
- }
- dom.remove(sibling);
- }
- sibling = listBlock.previousSibling;
- if (shouldMerge(dom, listBlock, sibling)) {
- while (node = sibling.lastChild) {
- listBlock.insertBefore(node, listBlock.firstChild);
- }
- dom.remove(sibling);
- }
- };
- var updateList = function (dom, list, listName, detail) {
- if (list.nodeName !== listName) {
- var newList = dom.rename(list, listName);
- updateListWithDetails(dom, newList, detail);
- } else {
- updateListWithDetails(dom, list, detail);
- }
- };
- var toggleMultipleLists = function (editor, parentList, lists, listName, detail) {
- if (parentList.nodeName === listName && !hasListStyleDetail(detail)) {
- flattenListSelection(editor);
- } else {
- var bookmark = Bookmark.createBookmark(editor.selection.getRng(true));
- global$5.each([parentList].concat(lists), function (elm) {
- updateList(editor.dom, elm, listName, detail);
- });
- editor.selection.setRng(Bookmark.resolveBookmark(bookmark));
- }
- };
- var hasListStyleDetail = function (detail) {
- return 'list-style-type' in detail;
- };
- var toggleSingleList = function (editor, parentList, listName, detail) {
- if (parentList === editor.getBody()) {
- return;
- }
- if (parentList) {
- if (parentList.nodeName === listName && !hasListStyleDetail(detail)) {
- flattenListSelection(editor);
- } else {
- var bookmark = Bookmark.createBookmark(editor.selection.getRng(true));
- updateListWithDetails(editor.dom, parentList, detail);
- mergeWithAdjacentLists(editor.dom, editor.dom.rename(parentList, listName));
- editor.selection.setRng(Bookmark.resolveBookmark(bookmark));
- }
- } else {
- applyList(editor, listName, detail);
- }
- };
- var toggleList = function (editor, listName, detail) {
- var parentList = Selection.getParentList(editor);
- var selectedSubLists = Selection.getSelectedSubLists(editor);
- detail = detail ? detail : {};
- if (parentList && selectedSubLists.length > 0) {
- toggleMultipleLists(editor, parentList, selectedSubLists, listName, detail);
- } else {
- toggleSingleList(editor, parentList, listName, detail);
- }
- };
- var ToggleList = {
- toggleList: toggleList,
- mergeWithAdjacentLists: mergeWithAdjacentLists
- };
-
- var DOM$2 = global$6.DOM;
- var normalizeList = function (dom, ul) {
- var sibling;
- var parentNode = ul.parentNode;
- if (parentNode.nodeName === 'LI' && parentNode.firstChild === ul) {
- sibling = parentNode.previousSibling;
- if (sibling && sibling.nodeName === 'LI') {
- sibling.appendChild(ul);
- if (NodeType.isEmpty(dom, parentNode)) {
- DOM$2.remove(parentNode);
- }
- } else {
- DOM$2.setStyle(parentNode, 'listStyleType', 'none');
- }
- }
- if (NodeType.isListNode(parentNode)) {
- sibling = parentNode.previousSibling;
- if (sibling && sibling.nodeName === 'LI') {
- sibling.appendChild(ul);
- }
- }
- };
- var normalizeLists = function (dom, element) {
- global$5.each(global$5.grep(dom.select('ol,ul', element)), function (ul) {
- normalizeList(dom, ul);
- });
- };
- var NormalizeLists = {
- normalizeList: normalizeList,
- normalizeLists: normalizeLists
- };
-
- var findNextCaretContainer = function (editor, rng, isForward, root) {
- var node = rng.startContainer;
- var offset = rng.startOffset;
- var nonEmptyBlocks, walker;
- if (node.nodeType === 3 && (isForward ? offset < node.data.length : offset > 0)) {
- return node;
- }
- nonEmptyBlocks = editor.schema.getNonEmptyElements();
- if (node.nodeType === 1) {
- node = global$1.getNode(node, offset);
- }
- walker = new global$2(node, root);
- if (isForward) {
- if (NodeType.isBogusBr(editor.dom, node)) {
- walker.next();
- }
- }
- while (node = walker[isForward ? 'next' : 'prev2']()) {
- if (node.nodeName === 'LI' && !node.hasChildNodes()) {
- return node;
- }
- if (nonEmptyBlocks[node.nodeName]) {
- return node;
- }
- if (node.nodeType === 3 && node.data.length > 0) {
- return node;
- }
- }
- };
- var hasOnlyOneBlockChild = function (dom, elm) {
- var childNodes = elm.childNodes;
- return childNodes.length === 1 && !NodeType.isListNode(childNodes[0]) && dom.isBlock(childNodes[0]);
- };
- var unwrapSingleBlockChild = function (dom, elm) {
- if (hasOnlyOneBlockChild(dom, elm)) {
- dom.remove(elm.firstChild, true);
- }
- };
- var moveChildren = function (dom, fromElm, toElm) {
- var node, targetElm;
- targetElm = hasOnlyOneBlockChild(dom, toElm) ? toElm.firstChild : toElm;
- unwrapSingleBlockChild(dom, fromElm);
- if (!NodeType.isEmpty(dom, fromElm, true)) {
- while (node = fromElm.firstChild) {
- targetElm.appendChild(node);
- }
- }
- };
- var mergeLiElements = function (dom, fromElm, toElm) {
- var node, listNode;
- var ul = fromElm.parentNode;
- if (!NodeType.isChildOfBody(dom, fromElm) || !NodeType.isChildOfBody(dom, toElm)) {
- return;
- }
- if (NodeType.isListNode(toElm.lastChild)) {
- listNode = toElm.lastChild;
- }
- if (ul === toElm.lastChild) {
- if (NodeType.isBr(ul.previousSibling)) {
- dom.remove(ul.previousSibling);
- }
- }
- node = toElm.lastChild;
- if (node && NodeType.isBr(node) && fromElm.hasChildNodes()) {
- dom.remove(node);
- }
- if (NodeType.isEmpty(dom, toElm, true)) {
- dom.$(toElm).empty();
- }
- moveChildren(dom, fromElm, toElm);
- if (listNode) {
- toElm.appendChild(listNode);
- }
- var contains = contains$1(Element.fromDom(toElm), Element.fromDom(fromElm));
- var nestedLists = contains ? dom.getParents(fromElm, NodeType.isListNode, toElm) : [];
- dom.remove(fromElm);
- each(nestedLists, function (list) {
- if (NodeType.isEmpty(dom, list) && list !== dom.getRoot()) {
- dom.remove(list);
- }
- });
- };
- var mergeIntoEmptyLi = function (editor, fromLi, toLi) {
- editor.dom.$(toLi).empty();
- mergeLiElements(editor.dom, fromLi, toLi);
- editor.selection.setCursorLocation(toLi);
- };
- var mergeForward = function (editor, rng, fromLi, toLi) {
- var dom = editor.dom;
- if (dom.isEmpty(toLi)) {
- mergeIntoEmptyLi(editor, fromLi, toLi);
- } else {
- var bookmark = Bookmark.createBookmark(rng);
- mergeLiElements(dom, fromLi, toLi);
- editor.selection.setRng(Bookmark.resolveBookmark(bookmark));
- }
- };
- var mergeBackward = function (editor, rng, fromLi, toLi) {
- var bookmark = Bookmark.createBookmark(rng);
- mergeLiElements(editor.dom, fromLi, toLi);
- var resolvedBookmark = Bookmark.resolveBookmark(bookmark);
- editor.selection.setRng(resolvedBookmark);
- };
- var backspaceDeleteFromListToListCaret = function (editor, isForward) {
- var dom = editor.dom, selection = editor.selection;
- var selectionStartElm = selection.getStart();
- var root = Selection.getClosestListRootElm(editor, selectionStartElm);
- var li = dom.getParent(selection.getStart(), 'LI', root);
- var ul, rng, otherLi;
- if (li) {
- ul = li.parentNode;
- if (ul === editor.getBody() && NodeType.isEmpty(dom, ul)) {
- return true;
- }
- rng = Range.normalizeRange(selection.getRng(true));
- otherLi = dom.getParent(findNextCaretContainer(editor, rng, isForward, root), 'LI', root);
- if (otherLi && otherLi !== li) {
- if (isForward) {
- mergeForward(editor, rng, otherLi, li);
- } else {
- mergeBackward(editor, rng, li, otherLi);
- }
- return true;
- } else if (!otherLi) {
- if (!isForward) {
- flattenListSelection(editor);
- return true;
- }
- }
- }
- return false;
- };
- var removeBlock = function (dom, block, root) {
- var parentBlock = dom.getParent(block.parentNode, dom.isBlock, root);
- dom.remove(block);
- if (parentBlock && dom.isEmpty(parentBlock)) {
- dom.remove(parentBlock);
- }
- };
- var backspaceDeleteIntoListCaret = function (editor, isForward) {
- var dom = editor.dom;
- var selectionStartElm = editor.selection.getStart();
- var root = Selection.getClosestListRootElm(editor, selectionStartElm);
- var block = dom.getParent(selectionStartElm, dom.isBlock, root);
- if (block && dom.isEmpty(block)) {
- var rng = Range.normalizeRange(editor.selection.getRng(true));
- var otherLi_1 = dom.getParent(findNextCaretContainer(editor, rng, isForward, root), 'LI', root);
- if (otherLi_1) {
- editor.undoManager.transact(function () {
- removeBlock(dom, block, root);
- ToggleList.mergeWithAdjacentLists(dom, otherLi_1.parentNode);
- editor.selection.select(otherLi_1, true);
- editor.selection.collapse(isForward);
- });
- return true;
- }
- }
- return false;
- };
- var backspaceDeleteCaret = function (editor, isForward) {
- return backspaceDeleteFromListToListCaret(editor, isForward) || backspaceDeleteIntoListCaret(editor, isForward);
- };
- var backspaceDeleteRange = function (editor) {
- var selectionStartElm = editor.selection.getStart();
- var root = Selection.getClosestListRootElm(editor, selectionStartElm);
- var startListParent = editor.dom.getParent(selectionStartElm, 'LI,DT,DD', root);
- if (startListParent || Selection.getSelectedListItems(editor).length > 0) {
- editor.undoManager.transact(function () {
- editor.execCommand('Delete');
- NormalizeLists.normalizeLists(editor.dom, editor.getBody());
- });
- return true;
- }
- return false;
- };
- var backspaceDelete = function (editor, isForward) {
- return editor.selection.isCollapsed() ? backspaceDeleteCaret(editor, isForward) : backspaceDeleteRange(editor);
- };
- var setup = function (editor) {
- editor.on('keydown', function (e) {
- if (e.keyCode === global$3.BACKSPACE) {
- if (backspaceDelete(editor, false)) {
- e.preventDefault();
- }
- } else if (e.keyCode === global$3.DELETE) {
- if (backspaceDelete(editor, true)) {
- e.preventDefault();
- }
- }
- });
- };
- var Delete = {
- setup: setup,
- backspaceDelete: backspaceDelete
- };
-
- var get = function (editor) {
- return {
- backspaceDelete: function (isForward) {
- Delete.backspaceDelete(editor, isForward);
- }
- };
- };
- var Api = { get: get };
-
- var queryListCommandState = function (editor, listName) {
- return function () {
- var parentList = editor.dom.getParent(editor.selection.getStart(), 'UL,OL,DL');
- return parentList && parentList.nodeName === listName;
- };
- };
- var register = function (editor) {
- editor.on('BeforeExecCommand', function (e) {
- var cmd = e.command.toLowerCase();
- if (cmd === 'indent') {
- indentListSelection(editor);
- } else if (cmd === 'outdent') {
- outdentListSelection(editor);
- }
- });
- editor.addCommand('InsertUnorderedList', function (ui, detail) {
- ToggleList.toggleList(editor, 'UL', detail);
- });
- editor.addCommand('InsertOrderedList', function (ui, detail) {
- ToggleList.toggleList(editor, 'OL', detail);
- });
- editor.addCommand('InsertDefinitionList', function (ui, detail) {
- ToggleList.toggleList(editor, 'DL', detail);
- });
- editor.addCommand('RemoveList', function () {
- flattenListSelection(editor);
- });
- editor.addQueryStateHandler('InsertUnorderedList', queryListCommandState(editor, 'UL'));
- editor.addQueryStateHandler('InsertOrderedList', queryListCommandState(editor, 'OL'));
- editor.addQueryStateHandler('InsertDefinitionList', queryListCommandState(editor, 'DL'));
- };
- var Commands = { register: register };
-
- var shouldIndentOnTab = function (editor) {
- return editor.getParam('lists_indent_on_tab', true);
- };
- var Settings = { shouldIndentOnTab: shouldIndentOnTab };
-
- var setupTabKey = function (editor) {
- editor.on('keydown', function (e) {
- if (e.keyCode !== global$3.TAB || global$3.metaKeyPressed(e)) {
- return;
- }
- editor.undoManager.transact(function () {
- if (e.shiftKey ? outdentListSelection(editor) : indentListSelection(editor)) {
- e.preventDefault();
- }
- });
- });
- };
- var setup$1 = function (editor) {
- if (Settings.shouldIndentOnTab(editor)) {
- setupTabKey(editor);
- }
- Delete.setup(editor);
- };
- var Keyboard = { setup: setup$1 };
-
- var findIndex = function (list, predicate) {
- for (var index = 0; index < list.length; index++) {
- var element = list[index];
- if (predicate(element)) {
- return index;
- }
- }
- return -1;
- };
- var listState = function (editor, listName) {
- return function (e) {
- var ctrl = e.control;
- editor.on('NodeChange', function (e) {
- var tableCellIndex = findIndex(e.parents, NodeType.isTableCellNode);
- var parents = tableCellIndex !== -1 ? e.parents.slice(0, tableCellIndex) : e.parents;
- var lists = global$5.grep(parents, NodeType.isListNode);
- ctrl.active(lists.length > 0 && lists[0].nodeName === listName);
- });
- };
- };
- var register$1 = function (editor) {
- var hasPlugin = function (editor, plugin) {
- var plugins = editor.settings.plugins ? editor.settings.plugins : '';
- return global$5.inArray(plugins.split(/[ ,]/), plugin) !== -1;
- };
- if (!hasPlugin(editor, 'advlist')) {
- editor.addButton('numlist', {
- active: false,
- title: 'Numbered list',
- cmd: 'InsertOrderedList',
- onPostRender: listState(editor, 'OL')
- });
- editor.addButton('bullist', {
- active: false,
- title: 'Bullet list',
- cmd: 'InsertUnorderedList',
- onPostRender: listState(editor, 'UL')
- });
- }
- editor.addButton('indent', {
- icon: 'indent',
- title: 'Increase indent',
- cmd: 'Indent'
- });
- };
- var Buttons = { register: register$1 };
-
- global.add('lists', function (editor) {
- Keyboard.setup(editor);
- Buttons.register(editor);
- Commands.register(editor);
- return Api.get(editor);
- });
- function Plugin () {
- }
-
- return Plugin;
-
-}(window));
-})();
diff --git a/srcs/wordpress/wp-includes/js/tinymce/plugins/lists/plugin.min.js b/srcs/wordpress/wp-includes/js/tinymce/plugins/lists/plugin.min.js
deleted file mode 100644
index e177a33..0000000
--- a/srcs/wordpress/wp-includes/js/tinymce/plugins/lists/plugin.min.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(u){"use strict";var e,n,t,r,o,i,a,s,c,f=tinymce.util.Tools.resolve("tinymce.PluginManager"),d=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),l=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),m=tinymce.util.Tools.resolve("tinymce.util.VK"),p=tinymce.util.Tools.resolve("tinymce.dom.BookmarkManager"),v=tinymce.util.Tools.resolve("tinymce.util.Tools"),g=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),h=function(e){return e&&"BR"===e.nodeName},y=function(e){return e&&3===e.nodeType},N=function(e){return e&&/^(OL|UL|DL)$/.test(e.nodeName)},S=function(e){return e&&/^(OL|UL)$/.test(e.nodeName)},C=function(e){return e&&/^(DT|DD)$/.test(e.nodeName)},O=function(e){return e&&/^(LI|DT|DD)$/.test(e.nodeName)},b=function(e){return e&&/^(TH|TD)$/.test(e.nodeName)},T=h,E=function(e,n){return n&&!!e.schema.getTextBlockElements()[n.nodeName]},L=function(e,n){return e&&e.nodeName in n},D=function(e,n){return!!h(n)&&!(!e.isBlock(n.nextSibling)||h(n.previousSibling))},w=function(e,n,t){var r=e.isEmpty(n);return!(t&&0<e.select("span[data-mce-type=bookmark]",n).length)&&r},k=function(e,n){return e.isChildOf(n,e.getRoot())},A=function(e,n){if(y(e))return{container:e,offset:n};var t=d.getNode(e,n);return y(t)?{container:t,offset:n>=e.childNodes.length?t.data.length:0}:t.previousSibling&&y(t.previousSibling)?{container:t.previousSibling,offset:t.previousSibling.data.length}:t.nextSibling&&y(t.nextSibling)?{container:t.nextSibling,offset:0}:{container:e,offset:n}},x=function(e){var n=e.cloneRange(),t=A(e.startContainer,e.startOffset);n.setStart(t.container,t.offset);var r=A(e.endContainer,e.endOffset);return n.setEnd(r.container,r.offset),n},R=g.DOM,I=function(o){var i={},e=function(e){var n,t,r;t=o[e?"startContainer":"endContainer"],r=o[e?"startOffset":"endOffset"],1===t.nodeType&&(n=R.create("span",{"data-mce-type":"bookmark"}),t.hasChildNodes()?(r=Math.min(r,t.childNodes.length-1),e?t.insertBefore(n,t.childNodes[r]):R.insertAfter(n,t.childNodes[r])):t.appendChild(n),t=n,r=0),i[e?"startContainer":"endContainer"]=t,i[e?"startOffset":"endOffset"]=r};return e(!0),o.collapsed||e(),i},_=function(o){function e(e){var n,t,r;n=r=o[e?"startContainer":"endContainer"],t=o[e?"startOffset":"endOffset"],n&&(1===n.nodeType&&(t=function(e){for(var n=e.parentNode.firstChild,t=0;n;){if(n===e)return t;1===n.nodeType&&"bookmark"===n.getAttribute("data-mce-type")||t++,n=n.nextSibling}return-1}(n),n=n.parentNode,R.remove(r),!n.hasChildNodes()&&R.isBlock(n)&&n.appendChild(R.create("br"))),o[e?"startContainer":"endContainer"]=n,o[e?"startOffset":"endOffset"]=t)}e(!0),e();var n=R.createRng();return n.setStart(o.startContainer,o.startOffset),o.endContainer&&n.setEnd(o.endContainer,o.endOffset),x(n)},B=function(e){return function(){return e}},P=function(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return!t.apply(null,e)}},M=B(!1),U=B(!0),F=M,j=U,H=function(){return $},$=(r={fold:function(e,n){return e()},is:F,isSome:F,isNone:j,getOr:t=function(e){return e},getOrThunk:n=function(e){return e()},getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:function(){return null},getOrUndefined:function(){return undefined},or:t,orThunk:n,map:H,ap:H,each:function(){},bind:H,flatten:H,exists:F,forall:j,filter:H,equals:e=function(e){return e.isNone()},equals_:e,toArray:function(){return[]},toString:B("none()")},Object.freeze&&Object.freeze(r),r),q=function(t){var e=function(){return t},n=function(){return o},r=function(e){return e(t)},o={fold:function(e,n){return n(t)},is:function(e){return t===e},isSome:j,isNone:F,getOr:e,getOrThunk:e,getOrDie:e,getOrNull:e,getOrUndefined:e,or:n,orThunk:n,map:function(e){return q(e(t))},ap:function(e){return e.fold(H,function(e){return q(e(t))})},each:function(e){e(t)},bind:r,flatten:e,exists:r,forall:r,filter:function(e){return e(t)?o:$},equals:function(e){return e.is(t)},equals_:function(e,n){return e.fold(F,function(e){return n(t,e)})},toArray:function(){return[t]},toString:function(){return"some("+t+")"}};return o},W={some:q,none:H,from:function(e){return null===e||e===undefined?$:q(e)}},V=function(n){return function(e){return function(e){if(null===e)return"null";var n=typeof e;return"object"===n&&(Array.prototype.isPrototypeOf(e)||e.constructor&&"Array"===e.constructor.name)?"array":"object"===n&&(String.prototype.isPrototypeOf(e)||e.constructor&&"String"===e.constructor.name)?"string":n}(e)===n}},z=V("string"),K=V("array"),X=V("boolean"),Q=V("function"),Y=V("number"),G=Array.prototype.slice,J=function(e,n){for(var t=e.length,r=new Array(t),o=0;o<t;o++){var i=e[o];r[o]=n(i,o,e)}return r},Z=function(e,n){for(var t=0,r=e.length;t<r;t++)n(e[t],t,e)},ee=function(e,n){for(var t=[],r=0,o=e.length;r<o;r++){var i=e[r];n(i,r,e)&&t.push(i)}return t},ne=function(e,n,t){return Z(e,function(e){t=n(t,e)}),t},te=function(e,n){for(var t=0,r=e.length;t<r;t++){var o=e[t];if(n(o,t,e))return W.some(o)}return W.none()},re=Array.prototype.push,oe=function(e,n){return function(e){for(var n=[],t=0,r=e.length;t<r;++t){if(!K(e[t]))throw new Error("Arr.flatten item "+t+" was not an array, input: "+e);re.apply(n,e[t])}return n}(J(e,n))},ie=function(e){return 0===e.length?W.none():W.some(e[0])},ue=function(e){return 0===e.length?W.none():W.some(e[e.length-1])},ae=(Q(Array.from)&&Array.from,"undefined"!=typeof u.window?u.window:Function("return this;")()),se=function(e,n){return function(e,n){for(var t=n!==undefined&&null!==n?n:ae,r=0;r<e.length&&t!==undefined&&null!==t;++r)t=t[e[r]];return t}(e.split("."),n)},ce=function(e,n){var t=se(e,n);if(t===undefined||null===t)throw new Error(e+" not available on this browser");return t},fe=function(e){var n,t=se("ownerDocument.defaultView",e);return(n=t,ce("HTMLElement",n)).prototype.isPrototypeOf(e)},de=tinymce.util.Tools.resolve("tinymce.dom.DomQuery"),le=function(e){var n=e.selection.getStart(!0);return e.dom.getParent(n,"OL,UL,DL",ge(e,n))},me=function(e){var t,n,r,o=e.selection.getSelectedBlocks();return v.grep((t=e,n=o,r=v.map(n,function(e){var n=t.dom.getParent(e,"li,dd,dt",ge(t,e));return n||e}),de.unique(r)),function(e){return O(e)})},ge=function(e,n){var t=e.dom.getParents(n,"TD,TH");return 0<t.length?t[0]:e.getBody()},pe=function(e,n){var t=e.dom.getParents(n,"ol,ul",ge(e,n));return ue(t)},ve=function(n,e){var t=J(e,function(e){return pe(n,e).getOr(e)});return de.unique(t)},he={isList:function(e){var n=le(e);return fe(n)},getParentList:le,getSelectedSubLists:function(e){var n,t,r,o=le(e),i=e.selection.getSelectedBlocks();return r=i,(t=o)&&1===r.length&&r[0]===t?(n=o,v.grep(n.querySelectorAll("ol,ul,dl"),function(e){return N(e)})):v.grep(i,function(e){return N(e)&&o!==e})},getSelectedListItems:me,getClosestListRootElm:ge,getSelectedDlItems:function(e){return ee(me(e),C)},getSelectedListRoots:function(e){var n,t,r,o=(t=pe(n=e,n.selection.getStart()),r=ee(n.selection.getSelectedBlocks(),S),t.toArray().concat(r));return ve(e,o)}},ye=function(e){if(null===e||e===undefined)throw new Error("Node cannot be null or undefined");return{dom:B(e)}},Ne={fromHtml:function(e,n){var t=(n||u.document).createElement("div");if(t.innerHTML=e,!t.hasChildNodes()||1<t.childNodes.length)throw u.console.error("HTML does not have a single root node",e),new Error("HTML must have a single root node");return ye(t.childNodes[0])},fromTag:function(e,n){var t=(n||u.document).createElement(e);return ye(t)},fromText:function(e,n){var t=(n||u.document).createTextNode(e);return ye(t)},fromDom:ye,fromPoint:function(e,n,t){var r=e.dom();return W.from(r.elementFromPoint(n,t)).map(ye)}},Se=function(e,n){for(var t=[],r=0;r<e.length;r++){var o=e[r];if(!o.isSome())return W.none();t.push(o.getOrDie())}return W.some(n.apply(null,t))},Ce=Object.keys,Oe=function(){return ce("Node")},be=function(e,n,t){return 0!=(e.compareDocumentPosition(n)&t)},Te=function(e,n){return be(e,n,Oe().DOCUMENT_POSITION_CONTAINED_BY)},Ee=function(e,n){var t=function(e,n){for(var t=0;t<e.length;t++){var r=e[t];if(r.test(n))return r}return undefined}(e,n);if(!t)return{major:0,minor:0};var r=function(e){return Number(n.replace(t,"$"+e))};return De(r(1),r(2))},Le=function(){return De(0,0)},De=function(e,n){return{major:e,minor:n}},we={nu:De,detect:function(e,n){var t=String(n).toLowerCase();return 0===e.length?Le():Ee(e,t)},unknown:Le},ke="Firefox",Ae=function(e,n){return function(){return n===e}},xe=function(e){var n=e.current;return{current:n,version:e.version,isEdge:Ae("Edge",n),isChrome:Ae("Chrome",n),isIE:Ae("IE",n),isOpera:Ae("Opera",n),isFirefox:Ae(ke,n),isSafari:Ae("Safari",n)}},Re={unknown:function(){return xe({current:undefined,version:we.unknown()})},nu:xe,edge:B("Edge"),chrome:B("Chrome"),ie:B("IE"),opera:B("Opera"),firefox:B(ke),safari:B("Safari")},Ie="Windows",_e="Android",Be="Solaris",Pe="FreeBSD",Me=function(e,n){return function(){return n===e}},Ue=function(e){var n=e.current;return{current:n,version:e.version,isWindows:Me(Ie,n),isiOS:Me("iOS",n),isAndroid:Me(_e,n),isOSX:Me("OSX",n),isLinux:Me("Linux",n),isSolaris:Me(Be,n),isFreeBSD:Me(Pe,n)}},Fe={unknown:function(){return Ue({current:undefined,version:we.unknown()})},nu:Ue,windows:B(Ie),ios:B("iOS"),android:B(_e),linux:B("Linux"),osx:B("OSX"),solaris:B(Be),freebsd:B(Pe)},je=function(e,n){var t=String(n).toLowerCase();return te(e,function(e){return e.search(t)})},He=function(e,t){return je(e,t).map(function(e){var n=we.detect(e.versionRegexes,t);return{current:e.name,version:n}})},$e=function(e,t){return je(e,t).map(function(e){var n=we.detect(e.versionRegexes,t);return{current:e.name,version:n}})},qe=function(e,n){return-1!==e.indexOf(n)},We=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,Ve=function(n){return function(e){return qe(e,n)}},ze=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(e){return qe(e,"edge/")&&qe(e,"chrome")&&qe(e,"safari")&&qe(e,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,We],search:function(e){return qe(e,"chrome")&&!qe(e,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(e){return qe(e,"msie")||qe(e,"trident")}},{name:"Opera",versionRegexes:[We,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:Ve("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:Ve("firefox")},{name:"Safari",versionRegexes:[We,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(e){return(qe(e,"safari")||qe(e,"mobile/"))&&qe(e,"applewebkit")}}],Ke=[{name:"Windows",search:Ve("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(e){return qe(e,"iphone")||qe(e,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:Ve("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:Ve("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:Ve("linux"),versionRegexes:[]},{name:"Solaris",search:Ve("sunos"),versionRegexes:[]},{name:"FreeBSD",search:Ve("freebsd"),versionRegexes:[]}],Xe={browsers:B(ze),oses:B(Ke)},Qe=function(e){var n,t,r,o,i,u,a,s,c,f,d,l=Xe.browsers(),m=Xe.oses(),g=He(l,e).fold(Re.unknown,Re.nu),p=$e(m,e).fold(Fe.unknown,Fe.nu);return{browser:g,os:p,deviceType:(t=g,r=e,o=(n=p).isiOS()&&!0===/ipad/i.test(r),i=n.isiOS()&&!o,u=n.isAndroid()&&3===n.version.major,a=n.isAndroid()&&4===n.version.major,s=o||u||a&&!0===/mobile/i.test(r),c=n.isiOS()||n.isAndroid(),f=c&&!s,d=t.isSafari()&&n.isiOS()&&!1===/safari/i.test(r),{isiPad:B(o),isiPhone:B(i),isTablet:B(s),isPhone:B(f),isTouch:B(c),isAndroid:n.isAndroid,isiOS:n.isiOS,isWebView:B(d)})}},Ye={detect:(o=function(){var e=u.navigator.userAgent;return Qe(e)},a=!1,function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return a||(a=!0,i=o.apply(null,e)),i})},Ge=(u.Node.ATTRIBUTE_NODE,u.Node.CDATA_SECTION_NODE,u.Node.COMMENT_NODE,u.Node.DOCUMENT_NODE,u.Node.DOCUMENT_TYPE_NODE,u.Node.DOCUMENT_FRAGMENT_NODE,u.Node.ELEMENT_NODE),Je=(u.Node.TEXT_NODE,u.Node.PROCESSING_INSTRUCTION_NODE,u.Node.ENTITY_REFERENCE_NODE,u.Node.ENTITY_NODE,u.Node.NOTATION_NODE,Ge),Ze=function(e,n){return e.dom()===n.dom()},en=Ye.detect().browser.isIE()?function(e,n){return Te(e.dom(),n.dom())}:function(e,n){var t=e.dom(),r=n.dom();return t!==r&&t.contains(r)},nn=function(e,n){var t=e.dom();if(t.nodeType!==Je)return!1;var r=t;if(r.matches!==undefined)return r.matches(n);if(r.msMatchesSelector!==undefined)return r.msMatchesSelector(n);if(r.webkitMatchesSelector!==undefined)return r.webkitMatchesSelector(n);if(r.mozMatchesSelector!==undefined)return r.mozMatchesSelector(n);throw new Error("Browser lacks native selectors")},tn=function(e){return W.from(e.dom().parentNode).map(Ne.fromDom)},rn=function(e){return J(e.dom().childNodes,Ne.fromDom)},on=function(e,n){var t=e.dom().childNodes;return W.from(t[n]).map(Ne.fromDom)},un=function(e){return on(e,0)},an=function(e){return on(e,e.dom().childNodes.length-1)},sn=(function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n]}("element","offset"),function(n,t){tn(n).each(function(e){e.dom().insertBefore(t.dom(),n.dom())})}),cn=function(e,n){e.dom().appendChild(n.dom())},fn=function(n,e){Z(e,function(e){cn(n,e)})},dn=function(e){var n=e.dom();null!==n.parentNode&&n.parentNode.removeChild(n)},ln=function(e){return e.dom().nodeName.toLowerCase()},mn=(s=Ge,function(e){return e.dom().nodeType===s}),gn=function(e,n){var t=e.dom();!function(e,n){for(var t=Ce(e),r=0,o=t.length;r<o;r++){var i=t[r];n(e[i],i,e)}}(n,function(e,n){!function(e,n,t){if(!(z(t)||X(t)||Y(t)))throw u.console.error("Invalid call to Attr.set. Key ",n,":: Value ",t,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(n,t+"")}(t,n,e)})},pn=function(e){return ne(e.dom().attributes,function(e,n){return e[n.name]=n.value,e},{})},vn=function(e,n,t){if(!z(t))throw u.console.error("Invalid call to CSS.set. Property ",n,":: Value ",t,":: Element ",e),new Error("CSS value must be a string: "+t);var r;(r=e).style!==undefined&&Q(r.style.getPropertyValue)&&e.style.setProperty(n,t)},hn=function(e){return n=e,t=!0,Ne.fromDom(n.dom().cloneNode(t));var n,t},yn=function(e,n){var t,r,o,i,u=(t=e,r=n,o=Ne.fromTag(r),i=pn(t),gn(o,i),o);sn(e,u);var a=rn(e);return fn(u,a),dn(e),u},Nn=function(e,n){cn(e.item,n.list)},Sn=function(f,e,d){var n=e.slice(0,d.depth);return ue(n).each(function(e){var n,t,r,o,i,u,a,s,c=(n=f,t=d.itemAttributes,r=d.content,o=Ne.fromTag("li",n),gn(o,t),fn(o,r),o);u=c,cn((i=e).list,u),i.item=u,s=d,ln((a=e).list)!==s.listType&&(a.list=yn(a.list,s.listType)),gn(a.list,s.listAttributes)}),n},Cn=function(e,n,t){var r,o=function(e,n,t){for(var r,o,i,u=[],a=0;a<t;a++)u.push((r=e,o=n.listType,i={list:Ne.fromTag(o,r),item:Ne.fromTag("li",r)},cn(i.list,i.item),i));return u}(e,t,t.depth-n.length);return function(e){for(var n=1;n<e.length;n++)Nn(e[n-1],e[n])}(o),function(e,n){for(var t=0;t<e.length-1;t++)r=e[t].item,o="list-style-type",i="none",u=r.dom(),vn(u,o,i);var r,o,i,u;ue(e).each(function(e){gn(e.list,n.listAttributes),gn(e.item,n.itemAttributes),fn(e.item,n.content)})}(o,t),r=o,Se([ue(n),ie(r)],Nn),n.concat(o)},On=function(e){return nn(e,"OL,UL")},bn=function(e){return un(e).map(On).getOr(!1)},Tn=function(e){return 0<e.depth},En=function(e){return e.isSelected},Ln=function(e){var n=rn(e),t=an(e).map(On).getOr(!1)?n.slice(0,-1):n;return J(t,hn)},Dn=Object.prototype.hasOwnProperty,wn=(c=function(e,n){return n},function(){for(var e=new Array(arguments.length),n=0;n<e.length;n++)e[n]=arguments[n];if(0===e.length)throw new Error("Can't merge zero objects");for(var t={},r=0;r<e.length;r++){var o=e[r];for(var i in o)Dn.call(o,i)&&(t[i]=c(t[i],o[i]))}return t}),kn=function(n){Z(n,function(r,e){(function(e,n){for(var t=e[n].depth,r=n-1;0<=r;r--){if(e[r].depth===t)return W.some(e[r]);if(e[r].depth<t)break}return W.none()})(n,e).each(function(e){var n,t;t=e,(n=r).listType=t.listType,n.listAttributes=wn({},t.listAttributes)})})},An=function(e){var n=e,t=function(){return n};return{get:t,set:function(e){n=e},clone:function(){return An(t())}}},xn=function(i,u,a,s){return un(s).filter(On).fold(function(){u.each(function(e){Ze(e.start,s)&&a.set(!0)});var n,t,r,e=(n=s,t=i,r=a.get(),tn(n).filter(mn).map(function(e){return{depth:t,isSelected:r,content:Ln(n),itemAttributes:pn(n),listAttributes:pn(e),listType:ln(e)}}));u.each(function(e){Ze(e.end,s)&&a.set(!1)});var o=an(s).filter(On).map(function(e){return Rn(i,u,a,e)}).getOr([]);return e.toArray().concat(o)},function(e){return Rn(i,u,a,e)})},Rn=function(n,t,r,e){return oe(rn(e),function(e){return(On(e)?Rn:xn)(n+1,t,r,e)})},In=tinymce.util.Tools.resolve("tinymce.Env"),_n=function(e,n){var t,r,o,i,u=e.dom,a=e.schema.getBlockElements(),s=u.createFragment();if(e.settings.forced_root_block&&(o=e.settings.forced_root_block),o&&((r=u.create(o)).tagName===e.settings.forced_root_block&&u.setAttribs(r,e.settings.forced_root_block_attrs),L(n.firstChild,a)||s.appendChild(r)),n)for(;t=n.firstChild;){var c=t.nodeName;i||"SPAN"===c&&"bookmark"===t.getAttribute("data-mce-type")||(i=!0),L(t,a)?(s.appendChild(t),r=null):o?(r||(r=u.create(o),s.appendChild(r)),r.appendChild(t)):s.appendChild(t)}return e.settings.forced_root_block?i||In.ie&&!(10<In.ie)||r.appendChild(u.create("br",{"data-mce-bogus":"1"})):s.appendChild(u.create("br")),s},Bn=function(i,e){return J(e,function(e){var n,t,r,o=(n=e.content,r=(t||u.document).createDocumentFragment(),Z(n,function(e){r.appendChild(e.dom())}),Ne.fromDom(r));return Ne.fromDom(_n(i,o.dom()))})},Pn=function(e,n){return kn(n),(t=e.contentDocument,r=n,o=ne(r,function(e,n){return n.depth>e.length?Cn(t,e,n):Sn(t,e,n)},[]),ie(o).map(function(e){return e.list})).toArray();var t,r,o},Mn=function(e){var n,t,r=J(he.getSelectedListItems(e),Ne.fromDom);return Se([te(r,P(bn)),te((n=r,t=G.call(n,0),t.reverse(),t),P(bn))],function(e,n){return{start:e,end:n}})},Un=function(a,e,s){var n,t,r,o=(n=e,t=Mn(a),r=An(!1),J(n,function(e){return{sourceList:e,entries:Rn(0,t,r,e)}}));Z(o,function(e){var n,t,r,o,i,u;n=e.entries,t=s,Z(ee(n,En),function(e){return function(e,n){switch(e){case"Indent":n.depth++;break;case"Outdent":n.depth--;break;case"Flatten":n.depth=0}}(t,e)}),r=e.sourceList,i=a,u=e.entries,o=oe(function(e,n){if(0===e.length)return[];for(var t=n(e[0]),r=[],o=[],i=0,u=e.length;i<u;i++){var a=e[i],s=n(a);s!==t&&(r.push(o),o=[]),t=s,o.push(a)}return 0!==o.length&&r.push(o),r}(u,Tn),function(e){return ie(e).map(Tn).getOr(!1)?Pn(i,e):Bn(i,e)}),Z(o,function(e){sn(r,e)}),dn(e.sourceList)})},Fn=g.DOM,jn=function(e,n,t){var r,o,i,u,a,s;for(i=Fn.select('span[data-mce-type="bookmark"]',n),a=_n(e,t),(r=Fn.createRng()).setStartAfter(t),r.setEndAfter(n),u=(o=r.extractContents()).firstChild;u;u=u.firstChild)if("LI"===u.nodeName&&e.dom.isEmpty(u)){Fn.remove(u);break}e.dom.isEmpty(o)||Fn.insertAfter(o,n),Fn.insertAfter(a,n),w(e.dom,t.parentNode)&&(s=t.parentNode,v.each(i,function(e){s.parentNode.insertBefore(e,t.parentNode)}),Fn.remove(s)),Fn.remove(t),w(e.dom,n)&&Fn.remove(n)},Hn=function(e){nn(e,"dt")&&yn(e,"dd")},$n=function(r,e,n){Z(n,"Indent"===e?Hn:function(e){return n=r,void(nn(t=e,"dd")?yn(t,"dt"):nn(t,"dt")&&tn(t).each(function(e){return jn(n,e.dom(),t.dom())}));var n,t})},qn=function(e,n){var t=J(he.getSelectedListRoots(e),Ne.fromDom),r=J(he.getSelectedDlItems(e),Ne.fromDom),o=!1;if(t.length||r.length){var i=e.selection.getBookmark();Un(e,t,n),$n(e,n,r),e.selection.moveToBookmark(i),e.selection.setRng(x(e.selection.getRng())),e.nodeChanged(),o=!0}return o},Wn=function(e){return qn(e,"Indent")},Vn=function(e){return qn(e,"Outdent")},zn=function(e){return qn(e,"Flatten")},Kn=function(t,e){v.each(e,function(e,n){t.setAttribute(n,e)})},Xn=function(e,n,t){var r,o,i,u,a,s,c;r=e,o=n,u=(i=t)["list-style-type"]?i["list-style-type"]:null,r.setStyle(o,"list-style-type",u),a=e,Kn(s=n,(c=t)["list-attributes"]),v.each(a.select("li",s),function(e){Kn(e,c["list-item-attributes"])})},Qn=function(e,n,t,r){var o,i;for(o=n[t?"startContainer":"endContainer"],i=n[t?"startOffset":"endOffset"],1===o.nodeType&&(o=o.childNodes[Math.min(i,o.childNodes.length-1)]||o),!t&&T(o.nextSibling)&&(o=o.nextSibling);o.parentNode!==r;){if(E(e,o))return o;if(/^(TD|TH)$/.test(o.parentNode.nodeName))return o;o=o.parentNode}return o},Yn=function(f,d,l){void 0===l&&(l={});var e,n=f.selection.getRng(!0),m="LI",t=he.getClosestListRootElm(f,f.selection.getStart(!0)),g=f.dom;"false"!==g.getContentEditable(f.selection.getNode())&&("DL"===(d=d.toUpperCase())&&(m="DT"),e=I(n),v.each(function(t,e,r){for(var o,i=[],u=t.dom,n=Qn(t,e,!0,r),a=Qn(t,e,!1,r),s=[],c=n;c&&(s.push(c),c!==a);c=c.nextSibling);return v.each(s,function(e){if(E(t,e))return i.push(e),void(o=null);if(u.isBlock(e)||T(e))return T(e)&&u.remove(e),void(o=null);var n=e.nextSibling;p.isBookmarkNode(e)&&(E(t,n)||!n&&e.parentNode===r)?o=null:(o||(o=u.create("p"),e.parentNode.insertBefore(o,e),i.push(o)),o.appendChild(e))}),i}(f,n,t),function(e){var n,t,r,o,i,u,a,s,c;(t=e.previousSibling)&&N(t)&&t.nodeName===d&&(r=t,o=l,i=g.getStyle(r,"list-style-type"),u=o?o["list-style-type"]:"",i===(u=null===u?"":u))?(n=t,e=g.rename(e,m),t.appendChild(e)):(n=g.create(d),e.parentNode.insertBefore(n,e),n.appendChild(e),e=g.rename(e,m)),a=g,s=e,c=["margin","margin-right","margin-bottom","margin-left","margin-top","padding","padding-right","padding-bottom","padding-left","padding-top"],v.each(c,function(e){var n;return a.setStyle(s,((n={})[e]="",n))}),Xn(g,n,l),Jn(f.dom,n)}),f.selection.setRng(_(e)))},Gn=function(e,n,t){return s=t,(a=n)&&s&&N(a)&&a.nodeName===s.nodeName&&(i=n,u=t,(o=e).getStyle(i,"list-style-type",!0)===o.getStyle(u,"list-style-type",!0))&&(r=t,n.className===r.className);var r,o,i,u,a,s},Jn=function(e,n){var t,r;if(t=n.nextSibling,Gn(e,n,t)){for(;r=t.firstChild;)n.appendChild(r);e.remove(t)}if(t=n.previousSibling,Gn(e,n,t)){for(;r=t.lastChild;)n.insertBefore(r,n.firstChild);e.remove(t)}},Zn=function(n,e,t,r,o){if(e.nodeName!==r||et(o)){var i=I(n.selection.getRng(!0));v.each([e].concat(t),function(e){!function(e,n,t,r){if(n.nodeName!==t){var o=e.rename(n,t);Xn(e,o,r)}else Xn(e,n,r)}(n.dom,e,r,o)}),n.selection.setRng(_(i))}else zn(n)},et=function(e){return"list-style-type"in e},nt={toggleList:function(e,n,t){var r=he.getParentList(e),o=he.getSelectedSubLists(e);t=t||{},r&&0<o.length?Zn(e,r,o,n,t):function(e,n,t,r){if(n!==e.getBody())if(n)if(n.nodeName!==t||et(r)){var o=I(e.selection.getRng(!0));Xn(e.dom,n,r),Jn(e.dom,e.dom.rename(n,t)),e.selection.setRng(_(o))}else zn(e);else Yn(e,t,r)}(e,r,n,t)},mergeWithAdjacentLists:Jn},tt=g.DOM,rt=function(e,n){var t,r=n.parentNode;"LI"===r.nodeName&&r.firstChild===n&&((t=r.previousSibling)&&"LI"===t.nodeName?(t.appendChild(n),w(e,r)&&tt.remove(r)):tt.setStyle(r,"listStyleType","none")),N(r)&&(t=r.previousSibling)&&"LI"===t.nodeName&&t.appendChild(n)},ot=function(n,e){v.each(v.grep(n.select("ol,ul",e)),function(e){rt(n,e)})},it=function(e,n,t,r){var o,i,u=n.startContainer,a=n.startOffset;if(3===u.nodeType&&(t?a<u.data.length:0<a))return u;for(o=e.schema.getNonEmptyElements(),1===u.nodeType&&(u=d.getNode(u,a)),i=new l(u,r),t&&D(e.dom,u)&&i.next();u=i[t?"next":"prev2"]();){if("LI"===u.nodeName&&!u.hasChildNodes())return u;if(o[u.nodeName])return u;if(3===u.nodeType&&0<u.data.length)return u}},ut=function(e,n){var t=n.childNodes;return 1===t.length&&!N(t[0])&&e.isBlock(t[0])},at=function(e,n,t){var r,o,i,u;if(o=ut(e,t)?t.firstChild:t,ut(i=e,u=n)&&i.remove(u.firstChild,!0),!w(e,n,!0))for(;r=n.firstChild;)o.appendChild(r)},st=function(n,e,t){var r,o,i=e.parentNode;if(k(n,e)&&k(n,t)){N(t.lastChild)&&(o=t.lastChild),i===t.lastChild&&T(i.previousSibling)&&n.remove(i.previousSibling),(r=t.lastChild)&&T(r)&&e.hasChildNodes()&&n.remove(r),w(n,t,!0)&&n.$(t).empty(),at(n,e,t),o&&t.appendChild(o);var u=en(Ne.fromDom(t),Ne.fromDom(e))?n.getParents(e,N,t):[];n.remove(e),Z(u,function(e){w(n,e)&&e!==n.getRoot()&&n.remove(e)})}},ct=function(e,n,t,r){var o,i,u,a=e.dom;if(a.isEmpty(r))i=t,u=r,(o=e).dom.$(u).empty(),st(o.dom,i,u),o.selection.setCursorLocation(u);else{var s=I(n);st(a,t,r),e.selection.setRng(_(s))}},ft=function(e,n){var t,r,o,i=e.dom,u=e.selection,a=u.getStart(),s=he.getClosestListRootElm(e,a),c=i.getParent(u.getStart(),"LI",s);if(c){if((t=c.parentNode)===e.getBody()&&w(i,t))return!0;if(r=x(u.getRng(!0)),(o=i.getParent(it(e,r,n,s),"LI",s))&&o!==c)return n?ct(e,r,o,c):function(e,n,t,r){var o=I(n);st(e.dom,t,r);var i=_(o);e.selection.setRng(i)}(e,r,c,o),!0;if(!o&&!n)return zn(e),!0}return!1},dt=function(e,n){return ft(e,n)||function(o,i){var u=o.dom,e=o.selection.getStart(),a=he.getClosestListRootElm(o,e),s=u.getParent(e,u.isBlock,a);if(s&&u.isEmpty(s)){var n=x(o.selection.getRng(!0)),c=u.getParent(it(o,n,i,a),"LI",a);if(c)return o.undoManager.transact(function(){var e,n,t,r;n=s,t=a,r=(e=u).getParent(n.parentNode,e.isBlock,t),e.remove(n),r&&e.isEmpty(r)&&e.remove(r),nt.mergeWithAdjacentLists(u,c.parentNode),o.selection.select(c,!0),o.selection.collapse(i)}),!0}return!1}(e,n)},lt=function(e,n){return e.selection.isCollapsed()?dt(e,n):(r=(t=e).selection.getStart(),o=he.getClosestListRootElm(t,r),!!(t.dom.getParent(r,"LI,DT,DD",o)||0<he.getSelectedListItems(t).length)&&(t.undoManager.transact(function(){t.execCommand("Delete"),ot(t.dom,t.getBody())}),!0));var t,r,o},mt=function(n){n.on("keydown",function(e){e.keyCode===m.BACKSPACE?lt(n,!1)&&e.preventDefault():e.keyCode===m.DELETE&&lt(n,!0)&&e.preventDefault()})},gt=lt,pt=function(n){return{backspaceDelete:function(e){gt(n,e)}}},vt=function(n,t){return function(){var e=n.dom.getParent(n.selection.getStart(),"UL,OL,DL");return e&&e.nodeName===t}},ht=function(t){t.on("BeforeExecCommand",function(e){var n=e.command.toLowerCase();"indent"===n?Wn(t):"outdent"===n&&Vn(t)}),t.addCommand("InsertUnorderedList",function(e,n){nt.toggleList(t,"UL",n)}),t.addCommand("InsertOrderedList",function(e,n){nt.toggleList(t,"OL",n)}),t.addCommand("InsertDefinitionList",function(e,n){nt.toggleList(t,"DL",n)}),t.addCommand("RemoveList",function(){zn(t)}),t.addQueryStateHandler("InsertUnorderedList",vt(t,"UL")),t.addQueryStateHandler("InsertOrderedList",vt(t,"OL")),t.addQueryStateHandler("InsertDefinitionList",vt(t,"DL"))},yt=function(e){return e.getParam("lists_indent_on_tab",!0)},Nt=function(e){var n;yt(e)&&(n=e).on("keydown",function(e){e.keyCode!==m.TAB||m.metaKeyPressed(e)||n.undoManager.transact(function(){(e.shiftKey?Vn(n):Wn(n))&&e.preventDefault()})}),mt(e)},St=function(n,i){return function(e){var o=e.control;n.on("NodeChange",function(e){var n=function(e,n){for(var t=0;t<e.length;t++)if(n(e[t]))return t;return-1}(e.parents,b),t=-1!==n?e.parents.slice(0,n):e.parents,r=v.grep(t,N);o.active(0<r.length&&r[0].nodeName===i)})}},Ct=function(e){var n,t,r;t="advlist",r=(n=e).settings.plugins?n.settings.plugins:"",-1===v.inArray(r.split(/[ ,]/),t)&&(e.addButton("numlist",{active:!1,title:"Numbered list",cmd:"InsertOrderedList",onPostRender:St(e,"OL")}),e.addButton("bullist",{active:!1,title:"Bullet list",cmd:"InsertUnorderedList",onPostRender:St(e,"UL")})),e.addButton("indent",{icon:"indent",title:"Increase indent",cmd:"Indent"})};f.add("lists",function(e){return Nt(e),Ct(e),ht(e),pt(e)})}(window); \ No newline at end of file