--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/pyams_skin/resources/js/ext/tinymce/dev/classes/ui/SplitButton.js Thu Feb 13 11:43:31 2020 +0100
@@ -0,0 +1,135 @@
+/**
+ * SplitButton.js
+ *
+ * Copyright, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://www.tinymce.com/license
+ * Contributing: http://www.tinymce.com/contributing
+ */
+
+/**
+ * Creates a split button.
+ *
+ * @-x-less SplitButton.less
+ * @class tinymce.ui.SplitButton
+ * @extends tinymce.ui.MenuButton
+ */
+define("tinymce/ui/SplitButton", [
+ "tinymce/ui/MenuButton",
+ "tinymce/ui/DomUtils"
+], function(MenuButton, DomUtils) {
+ return MenuButton.extend({
+ Defaults: {
+ classes: "widget btn splitbtn",
+ role: "button"
+ },
+
+ /**
+ * Repaints the control after a layout operation.
+ *
+ * @method repaint
+ */
+ repaint: function() {
+ var self = this, elm = self.getEl(), rect = self.layoutRect(), mainButtonElm, menuButtonElm;
+
+ self._super();
+
+ mainButtonElm = elm.firstChild;
+ menuButtonElm = elm.lastChild;
+
+ DomUtils.css(mainButtonElm, {
+ width: rect.w - DomUtils.getSize(menuButtonElm).width,
+ height: rect.h - 2
+ });
+
+ DomUtils.css(menuButtonElm, {
+ height: rect.h - 2
+ });
+
+ return self;
+ },
+
+ /**
+ * Sets the active menu state.
+ *
+ * @private
+ */
+ activeMenu: function(state) {
+ var self = this;
+
+ DomUtils.toggleClass(self.getEl().lastChild, self.classPrefix + 'active', state);
+ },
+
+ /**
+ * Renders the control as a HTML string.
+ *
+ * @method renderHtml
+ * @return {String} HTML representing the control.
+ */
+ renderHtml: function() {
+ var self = this, id = self._id, prefix = self.classPrefix, image;
+ var icon = self.settings.icon;
+
+ image = self.settings.image;
+ if (image) {
+ icon = 'none';
+
+ // Support for [high dpi, low dpi] image sources
+ if (typeof image != "string") {
+ image = window.getSelection ? image[0] : image[1];
+ }
+
+ image = ' style="background-image: url(\'' + image + '\')"';
+ } else {
+ image = '';
+ }
+
+ icon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + icon : '';
+
+ return (
+ '<div id="' + id + '" class="' + self.classes() + '" role="button" tabindex="-1">' +
+ '<button type="button" hidefocus="1" tabindex="-1">' +
+ (icon ? '<i class="' + icon + '"' + image + '></i>' : '') +
+ (self._text ? (icon ? ' ' : '') + self._text : '') +
+ '</button>' +
+ '<button type="button" class="' + prefix + 'open" hidefocus="1" tabindex="-1">' +
+ //(icon ? '<i class="' + icon + '"></i>' : '') +
+ (self._menuBtnText ? (icon ? '\u00a0' : '') + self._menuBtnText : '') +
+ ' <i class="' + prefix + 'caret"></i>' +
+ '</button>' +
+ '</div>'
+ );
+ },
+
+ /**
+ * Called after the control has been rendered.
+ *
+ * @method postRender
+ */
+ postRender: function() {
+ var self = this, onClickHandler = self.settings.onclick;
+
+ self.on('click', function(e) {
+ var node = e.target;
+
+ if (e.control == this) {
+ // Find clicks that is on the main button
+ while (node) {
+ if ((e.aria && e.aria.key != 'down') || (node.nodeName == 'BUTTON' && node.className.indexOf('open') == -1)) {
+ e.stopImmediatePropagation();
+ onClickHandler.call(this, e);
+ return;
+ }
+
+ node = node.parentNode;
+ }
+ }
+ });
+
+ delete self.settings.onclick;
+
+ return self._super();
+ }
+ });
+});
\ No newline at end of file