81
81
define(id, [], function () { return ref; });
84
["tinymce/inlite/Theme","global!tinymce.ThemeManager","global!tinymce.util.Delay","tinymce/inlite/ui/Panel","tinymce/inlite/ui/Buttons","tinymce/inlite/core/SkinLoader","tinymce/inlite/core/SelectionMatcher","tinymce/inlite/core/ElementMatcher","tinymce/inlite/core/Matcher","tinymce/inlite/alien/Arr","tinymce/inlite/core/PredicateId","global!tinymce.util.Tools","global!tinymce.ui.Factory","global!tinymce.DOM","tinymce/inlite/ui/Toolbar","tinymce/inlite/ui/Forms","tinymce/inlite/core/Measure","tinymce/inlite/core/Layout","tinymce/inlite/file/Conversions","tinymce/inlite/file/Picker","tinymce/inlite/core/Actions","global!tinymce.EditorManager","global!tinymce.util.Promise","tinymce/inlite/alien/Uuid","tinymce/inlite/alien/Unlink","tinymce/inlite/core/UrlType","global!tinymce.geom.Rect","tinymce/inlite/core/Convert","tinymce/inlite/alien/Bookmark","global!tinymce.dom.TreeWalker","global!tinymce.dom.RangeUtils"]
84
["tinymce/inlite/Theme","global!tinymce.ThemeManager","global!tinymce.util.Delay","tinymce/inlite/ui/Panel","tinymce/inlite/ui/Buttons","tinymce/inlite/core/SkinLoader","tinymce/inlite/core/SelectionMatcher","tinymce/inlite/core/ElementMatcher","tinymce/inlite/core/Matcher","tinymce/inlite/alien/Arr","tinymce/inlite/alien/EditorSettings","tinymce/inlite/core/PredicateId","global!tinymce.util.Tools","global!tinymce.ui.Factory","global!tinymce.DOM","tinymce/inlite/ui/Toolbar","tinymce/inlite/ui/Forms","tinymce/inlite/core/Measure","tinymce/inlite/core/Layout","tinymce/inlite/alien/Type","tinymce/inlite/file/Conversions","tinymce/inlite/file/Picker","tinymce/inlite/core/Actions","global!tinymce.EditorManager","global!tinymce.util.Promise","tinymce/inlite/alien/Uuid","tinymce/inlite/alien/Unlink","tinymce/inlite/core/UrlType","global!tinymce.geom.Rect","tinymce/inlite/core/Convert","tinymce/inlite/alien/Bookmark","global!tinymce.dom.TreeWalker","global!tinymce.dom.RangeUtils"]
86
86
defineGlobal("global!tinymce.ThemeManager", tinymce.ThemeManager);
87
87
defineGlobal("global!tinymce.util.Delay", tinymce.util.Delay);
89
89
defineGlobal("global!tinymce.ui.Factory", tinymce.ui.Factory);
90
90
defineGlobal("global!tinymce.DOM", tinymce.DOM);
94
* Released under LGPL License.
95
* Copyright (c) 1999-2016 Ephox Corp. All rights reserved
97
* License: http://www.tinymce.com/license
98
* Contributing: http://www.tinymce.com/contributing
101
define('tinymce/inlite/alien/Type', [
103
var isType = function (type) {
104
return function (value) {
105
return typeof value === type;
109
var isArray = function (value) {
110
return Array.isArray(value);
113
var isNull = function (value) {
114
return value === null;
117
var isObject = function (predicate) {
118
return function (value) {
119
return !isNull(value) && !isArray(value) && predicate(value);
124
isString: isType("string"),
125
isNumber: isType("number"),
126
isBoolean: isType("boolean"),
127
isFunction: isType("function"),
128
isObject: isObject(isType("object")),
94
137
* Released under LGPL License.
101
144
define('tinymce/inlite/ui/Toolbar', [
102
145
'global!tinymce.util.Tools',
103
'global!tinymce.ui.Factory'
104
], function (Tools, Factory) {
146
'global!tinymce.ui.Factory',
147
'tinymce/inlite/alien/Type'
148
], function (Tools, Factory, Type) {
105
149
var setActiveItem = function (item, name) {
106
150
return function(state, args) {
107
151
var nodeName, i = args.parents.length;
208
var itemsToArray = function (items) {
209
if (Type.isArray(items)) {
211
} else if (Type.isString(items)) {
212
return items.split(/[ ,]/);
164
218
var create = function (editor, name, items) {
165
219
var toolbarItems = [], buttonGroup;
179
233
toolbarItems.push(item);
180
234
buttonGroup = null;
183
buttonGroup = {type: 'buttongroup', items: []};
184
toolbarItems.push(buttonGroup);
187
236
if (editor.buttons[item]) {
238
buttonGroup = {type: 'buttongroup', items: []};
239
toolbarItems.push(buttonGroup);
189
243
item = editor.buttons[itemName];
897
951
return panelRect;
954
var defaultHandler = function (rects) {
955
return rects.panelRect;
901
959
calcInsert: calcInsert,
903
userConstrain: userConstrain
961
userConstrain: userConstrain,
962
defaultHandler: defaultHandler
969
* Released under LGPL License.
970
* Copyright (c) 1999-2016 Ephox Corp. All rights reserved
972
* License: http://www.tinymce.com/license
973
* Contributing: http://www.tinymce.com/contributing
976
define('tinymce/inlite/alien/EditorSettings', [
977
'tinymce/inlite/alien/Type'
979
var validDefaultOrDie = function (value, predicate) {
980
if (predicate(value)) {
984
throw new Error('Default value doesn\'t match requested type.');
987
var getByTypeOr = function (predicate) {
988
return function (editor, name, defaultValue) {
989
var settings = editor.settings;
990
validDefaultOrDie(defaultValue, predicate);
991
return name in settings && predicate(settings[name]) ? settings[name] : defaultValue;
995
var splitNoEmpty = function (str, delim) {
996
return str.split(delim).filter(function (item) {
997
return item.length > 0;
1001
var itemsToArray = function (value, defaultValue) {
1002
var stringToItemsArray = function (value) {
1003
return typeof value === 'string' ? splitNoEmpty(value, /[ ,]/) : value;
1006
var boolToItemsArray = function (value, defaultValue) {
1007
return value === false ? [ ] : defaultValue;
1010
if (Type.isArray(value)) {
1012
} else if (Type.isString(value)) {
1013
return stringToItemsArray(value);
1014
} else if (Type.isBoolean(value)) {
1015
return boolToItemsArray(value, defaultValue);
1018
return defaultValue;
1021
var getToolbarItemsOr = function (predicate) {
1022
return function (editor, name, defaultValue) {
1023
var value = name in editor.settings ? editor.settings[name] : defaultValue;
1024
validDefaultOrDie(defaultValue, predicate);
1025
return itemsToArray(value, defaultValue);
1030
// TODO: Add Option based getString, getBool if merged with core
1031
getStringOr: getByTypeOr(Type.isString),
1032
getBoolOr: getByTypeOr(Type.isBoolean),
1033
getNumberOr: getByTypeOr(Type.isNumber),
1034
getHandlerOr: getByTypeOr(Type.isFunction),
1035
getToolbarItemsOr: getToolbarItemsOr(Type.isArray)
921
1053
'tinymce/inlite/ui/Toolbar',
922
1054
'tinymce/inlite/ui/Forms',
923
1055
'tinymce/inlite/core/Measure',
924
'tinymce/inlite/core/Layout'
925
], function (Tools, Factory, DOM, Toolbar, Forms, Measure, Layout) {
1056
'tinymce/inlite/core/Layout',
1057
'tinymce/inlite/alien/EditorSettings'
1058
], function (Tools, Factory, DOM, Toolbar, Forms, Measure, Layout, EditorSettings) {
926
1059
return function () {
927
var DEFAULT_TEXT_SELECTION_ITEMS = 'bold italic | quicklink h2 h3 blockquote';
928
var DEFAULT_INSERT_TOOLBAR_ITEMS = 'quickimage quicktable';
1060
var DEFAULT_TEXT_SELECTION_ITEMS = ['bold', 'italic', '|', 'quicklink', 'h2', 'h3', 'blockquote'];
1061
var DEFAULT_INSERT_TOOLBAR_ITEMS = ['quickimage', 'quicktable'];
929
1062
var panel, currentRect;
931
1064
var createToolbars = function (editor, toolbars) {
937
var getTextSelectionToolbarItems = function (settings) {
938
var value = settings.selection_toolbar;
939
return value ? value : DEFAULT_TEXT_SELECTION_ITEMS;
942
var getInsertToolbarItems = function (settings) {
943
var value = settings.insert_toolbar;
944
return value ? value : DEFAULT_INSERT_TOOLBAR_ITEMS;
1070
var getTextSelectionToolbarItems = function (editor) {
1071
return EditorSettings.getToolbarItemsOr(editor, 'selection_toolbar', DEFAULT_TEXT_SELECTION_ITEMS);
1074
var getInsertToolbarItems = function (editor) {
1075
return EditorSettings.getToolbarItemsOr(editor, 'insert_toolbar', DEFAULT_INSERT_TOOLBAR_ITEMS);
1078
var hasToolbarItems = function (toolbar) {
1079
return toolbar.items().length > 0;
947
1082
var create = function (editor, toolbars) {
948
var items, settings = editor.settings;
950
items = createToolbars(editor, toolbars);
951
items = items.concat([
952
Toolbar.create(editor, 'text', getTextSelectionToolbarItems(settings)),
953
Toolbar.create(editor, 'insert', getInsertToolbarItems(settings)),
1083
var items = createToolbars(editor, toolbars).concat([
1084
Toolbar.create(editor, 'text', getTextSelectionToolbarItems(editor)),
1085
Toolbar.create(editor, 'insert', getInsertToolbarItems(editor)),
954
1086
Forms.createQuickLinkForm(editor, hide)
1025
1160
showPanel(panel);
1026
1161
panel.items().hide();
1027
showToolbar(panel, id);
1029
userConstainHandler = editor.settings.inline_toolbar_position_handler;
1163
if (!showToolbar(panel, id)) {
1168
userConstainHandler = EditorSettings.getHandlerOr(editor, 'inline_toolbar_position_handler', Layout.defaultHandler);
1030
1169
contentAreaRect = Measure.getContentAreaRect(editor);
1031
1170
panelRect = DOM.getRect(panel.getEl());
1308
var load = function (editor, skin, callback) {
1309
var baseUrl = EditorManager.baseURL;
1310
var skinUrl = baseUrl + '/skins/' + skin;
1449
var urlFromName = function (name) {
1450
var prefix = EditorManager.baseURL + '/skins/';
1451
return name ? prefix + name : prefix + 'lightgray';
1454
var toAbsoluteUrl = function (editor, url) {
1455
return editor.documentBaseURI.toAbsolute(url);
1458
var load = function (editor, callback) {
1459
var settings = editor.settings;
1460
var skinUrl = settings.skin_url ? toAbsoluteUrl(editor, settings.skin_url) : urlFromName(settings.skin);
1312
1462
var done = function () {
1313
1463
fireSkinLoaded(editor, callback);
1544
1694
'tinymce/inlite/core/ElementMatcher',
1545
1695
'tinymce/inlite/core/Matcher',
1546
1696
'tinymce/inlite/alien/Arr',
1697
'tinymce/inlite/alien/EditorSettings',
1547
1698
'tinymce/inlite/core/PredicateId'
1548
], function(ThemeManager, Delay, Panel, Buttons, SkinLoader, SelectionMatcher, ElementMatcher, Matcher, Arr, PredicateId) {
1699
], function(ThemeManager, Delay, Panel, Buttons, SkinLoader, SelectionMatcher, ElementMatcher, Matcher, Arr, EditorSettings, PredicateId) {
1549
1700
var getSelectionElements = function (editor) {
1550
1701
var node = editor.selection.getNode();
1551
1702
var elms = editor.dom.getParents(node);
1646
1797
var renderInlineUI = function (editor, panel) {
1647
var skinName = editor.settings.skin || 'lightgray';
1649
SkinLoader.load(editor, skinName, function () {
1798
SkinLoader.load(editor, function () {
1650
1799
bindContextualToolbarsEvents(editor, panel);
1651
1800
overrideLinkShortcut(editor, panel);