| 1 |
!(function () { |
| 2 |
'use strict'; |
| 3 |
var t = tinymce.util.Tools.resolve('tinymce.PluginManager'), |
| 4 |
a = tinymce.util.Tools.resolve('tinymce.util.Tools'), |
| 5 |
s = function (t, e, n) { |
| 6 |
var r = 'UL' === e ? 'InsertUnorderedList' : 'InsertOrderedList'; |
| 7 |
t.execCommand(r, !1, !1 === n ? null : { 'list-style-type': n }); |
| 8 |
}, |
| 9 |
o = function (n) { |
| 10 |
n.addCommand('ApplyUnorderedListStyle', function (t, e) { |
| 11 |
s(n, 'UL', e['list-style-type']); |
| 12 |
}), |
| 13 |
n.addCommand('ApplyOrderedListStyle', function (t, e) { |
| 14 |
s(n, 'OL', e['list-style-type']); |
| 15 |
}); |
| 16 |
}, |
| 17 |
e = function (t) { |
| 18 |
var e = t.getParam( |
| 19 |
'advlist_number_styles', |
| 20 |
'default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman', |
| 21 |
); |
| 22 |
return e ? e.split(/[ ,]/) : []; |
| 23 |
}, |
| 24 |
n = function (t) { |
| 25 |
var e = t.getParam('advlist_bullet_styles', 'default,circle,disc,square'); |
| 26 |
return e ? e.split(/[ ,]/) : []; |
| 27 |
}, |
| 28 |
u = function (t) { |
| 29 |
return t && /^(TH|TD)$/.test(t.nodeName); |
| 30 |
}, |
| 31 |
c = function (r) { |
| 32 |
return function (t) { |
| 33 |
return ( |
| 34 |
t && /^(OL|UL|DL)$/.test(t.nodeName) && ((n = t), (e = r).$.contains(e.getBody(), n)) |
| 35 |
); |
| 36 |
var e, n; |
| 37 |
}; |
| 38 |
}, |
| 39 |
d = function (t) { |
| 40 |
var e = t.dom.getParent(t.selection.getNode(), 'ol,ul'); |
| 41 |
return t.dom.getStyle(e, 'listStyleType') || ''; |
| 42 |
}, |
| 43 |
p = function (t) { |
| 44 |
return a.map(t, function (t) { |
| 45 |
return { |
| 46 |
text: t.replace(/\-/g, ' ').replace(/\b\w/g, function (t) { |
| 47 |
return t.toUpperCase(); |
| 48 |
}), |
| 49 |
data: 'default' === t ? '' : t, |
| 50 |
}; |
| 51 |
}); |
| 52 |
}, |
| 53 |
f = function (i, l) { |
| 54 |
return function (t) { |
| 55 |
var o = t.control; |
| 56 |
i.on('NodeChange', function (t) { |
| 57 |
var e = (function (t, e) { |
| 58 |
for (var n = 0; n < t.length; n++) if (e(t[n])) return n; |
| 59 |
return -1; |
| 60 |
})(t.parents, u), |
| 61 |
n = -1 !== e ? t.parents.slice(0, e) : t.parents, |
| 62 |
r = a.grep(n, c(i)); |
| 63 |
o.active(0 < r.length && r[0].nodeName === l); |
| 64 |
}); |
| 65 |
}; |
| 66 |
}, |
| 67 |
m = function (e, t, n, r, o, i) { |
| 68 |
var l; |
| 69 |
e.addButton(t, { |
| 70 |
active: !1, |
| 71 |
type: 'splitbutton', |
| 72 |
tooltip: n, |
| 73 |
menu: p(i), |
| 74 |
onPostRender: f(e, o), |
| 75 |
onshow: |
| 76 |
((l = e), |
| 77 |
function (t) { |
| 78 |
var e = d(l); |
| 79 |
t.control.items().each(function (t) { |
| 80 |
t.active(t.settings.data === e); |
| 81 |
}); |
| 82 |
}), |
| 83 |
onselect: function (t) { |
| 84 |
s(e, o, t.control.settings.data); |
| 85 |
}, |
| 86 |
onclick: function () { |
| 87 |
e.execCommand(r); |
| 88 |
}, |
| 89 |
}); |
| 90 |
}, |
| 91 |
r = function (t, e, n, r, o, i) { |
| 92 |
var l, a, s, u, c; |
| 93 |
0 < i.length |
| 94 |
? m(t, e, n, r, o, i) |
| 95 |
: ((a = e), |
| 96 |
(s = n), |
| 97 |
(u = r), |
| 98 |
(c = o), |
| 99 |
(l = t).addButton(a, { |
| 100 |
active: !1, |
| 101 |
type: 'button', |
| 102 |
tooltip: s, |
| 103 |
onPostRender: f(l, c), |
| 104 |
onclick: function () { |
| 105 |
l.execCommand(u); |
| 106 |
}, |
| 107 |
})); |
| 108 |
}, |
| 109 |
i = function (t) { |
| 110 |
r(t, 'numlist', 'Numbered list', 'InsertOrderedList', 'OL', e(t)), |
| 111 |
r(t, 'bullist', 'Bullet list', 'InsertUnorderedList', 'UL', n(t)); |
| 112 |
}; |
| 113 |
t.add('advlist', function (t) { |
| 114 |
var e, n, r; |
| 115 |
(n = 'lists'), |
| 116 |
(r = (e = t).settings.plugins ? e.settings.plugins : ''), |
| 117 |
-1 !== a.inArray(r.split(/[ ,]/), n) && (i(t), o(t)); |
| 118 |
}); |
| 119 |
})(); |
| 120 |
|