[ Index ] |
PHP Cross Reference of Joomla 4.2.2 documentation |
[Summary view] [Print] [Text view]
1 /** 2 * Copyright (c) Tiny Technologies, Inc. All rights reserved. 3 * Licensed under the LGPL or a commercial license. 4 * For LGPL see License.txt in the project root for license information. 5 * For commercial licenses see https://www.tiny.cloud/ 6 * 7 * Version: 5.10.5 (2022-05-25) 8 */ 9 (function () { 10 'use strict'; 11 12 var Cell = function (initial) { 13 var value = initial; 14 var get = function () { 15 return value; 16 }; 17 var set = function (v) { 18 value = v; 19 }; 20 return { 21 get: get, 22 set: set 23 }; 24 }; 25 26 var global$3 = tinymce.util.Tools.resolve('tinymce.PluginManager'); 27 28 var get$1 = function (customTabs) { 29 var addTab = function (spec) { 30 var currentCustomTabs = customTabs.get(); 31 currentCustomTabs[spec.name] = spec; 32 customTabs.set(currentCustomTabs); 33 }; 34 return { addTab: addTab }; 35 }; 36 37 var register$1 = function (editor, dialogOpener) { 38 editor.addCommand('mceHelp', dialogOpener); 39 }; 40 41 var register = function (editor, dialogOpener) { 42 editor.ui.registry.addButton('help', { 43 icon: 'help', 44 tooltip: 'Help', 45 onAction: dialogOpener 46 }); 47 editor.ui.registry.addMenuItem('help', { 48 text: 'Help', 49 icon: 'help', 50 shortcut: 'Alt+0', 51 onAction: dialogOpener 52 }); 53 }; 54 55 var __assign = function () { 56 __assign = Object.assign || function __assign(t) { 57 for (var s, i = 1, n = arguments.length; i < n; i++) { 58 s = arguments[i]; 59 for (var p in s) 60 if (Object.prototype.hasOwnProperty.call(s, p)) 61 t[p] = s[p]; 62 } 63 return t; 64 }; 65 return __assign.apply(this, arguments); 66 }; 67 68 var noop = function () { 69 }; 70 var constant = function (value) { 71 return function () { 72 return value; 73 }; 74 }; 75 var identity = function (x) { 76 return x; 77 }; 78 var never = constant(false); 79 var always = constant(true); 80 81 var none = function () { 82 return NONE; 83 }; 84 var NONE = function () { 85 var call = function (thunk) { 86 return thunk(); 87 }; 88 var id = identity; 89 var me = { 90 fold: function (n, _s) { 91 return n(); 92 }, 93 isSome: never, 94 isNone: always, 95 getOr: id, 96 getOrThunk: call, 97 getOrDie: function (msg) { 98 throw new Error(msg || 'error: getOrDie called on none.'); 99 }, 100 getOrNull: constant(null), 101 getOrUndefined: constant(undefined), 102 or: id, 103 orThunk: call, 104 map: none, 105 each: noop, 106 bind: none, 107 exists: never, 108 forall: always, 109 filter: function () { 110 return none(); 111 }, 112 toArray: function () { 113 return []; 114 }, 115 toString: constant('none()') 116 }; 117 return me; 118 }(); 119 var some = function (a) { 120 var constant_a = constant(a); 121 var self = function () { 122 return me; 123 }; 124 var bind = function (f) { 125 return f(a); 126 }; 127 var me = { 128 fold: function (n, s) { 129 return s(a); 130 }, 131 isSome: always, 132 isNone: never, 133 getOr: constant_a, 134 getOrThunk: constant_a, 135 getOrDie: constant_a, 136 getOrNull: constant_a, 137 getOrUndefined: constant_a, 138 or: self, 139 orThunk: self, 140 map: function (f) { 141 return some(f(a)); 142 }, 143 each: function (f) { 144 f(a); 145 }, 146 bind: bind, 147 exists: bind, 148 forall: bind, 149 filter: function (f) { 150 return f(a) ? me : NONE; 151 }, 152 toArray: function () { 153 return [a]; 154 }, 155 toString: function () { 156 return 'some(' + a + ')'; 157 } 158 }; 159 return me; 160 }; 161 var from = function (value) { 162 return value === null || value === undefined ? NONE : some(value); 163 }; 164 var Optional = { 165 some: some, 166 none: none, 167 from: from 168 }; 169 170 var nativeIndexOf = Array.prototype.indexOf; 171 var rawIndexOf = function (ts, t) { 172 return nativeIndexOf.call(ts, t); 173 }; 174 var contains = function (xs, x) { 175 return rawIndexOf(xs, x) > -1; 176 }; 177 var map = function (xs, f) { 178 var len = xs.length; 179 var r = new Array(len); 180 for (var i = 0; i < len; i++) { 181 var x = xs[i]; 182 r[i] = f(x, i); 183 } 184 return r; 185 }; 186 var filter = function (xs, pred) { 187 var r = []; 188 for (var i = 0, len = xs.length; i < len; i++) { 189 var x = xs[i]; 190 if (pred(x, i)) { 191 r.push(x); 192 } 193 } 194 return r; 195 }; 196 var findUntil = function (xs, pred, until) { 197 for (var i = 0, len = xs.length; i < len; i++) { 198 var x = xs[i]; 199 if (pred(x, i)) { 200 return Optional.some(x); 201 } else if (until(x, i)) { 202 break; 203 } 204 } 205 return Optional.none(); 206 }; 207 var find = function (xs, pred) { 208 return findUntil(xs, pred, never); 209 }; 210 211 var keys = Object.keys; 212 var hasOwnProperty = Object.hasOwnProperty; 213 var get = function (obj, key) { 214 return has(obj, key) ? Optional.from(obj[key]) : Optional.none(); 215 }; 216 var has = function (obj, key) { 217 return hasOwnProperty.call(obj, key); 218 }; 219 220 var cat = function (arr) { 221 var r = []; 222 var push = function (x) { 223 r.push(x); 224 }; 225 for (var i = 0; i < arr.length; i++) { 226 arr[i].each(push); 227 } 228 return r; 229 }; 230 231 var getHelpTabs = function (editor) { 232 return Optional.from(editor.getParam('help_tabs')); 233 }; 234 var getForcedPlugins = function (editor) { 235 return editor.getParam('forced_plugins'); 236 }; 237 238 var description = '<h1>Editor UI keyboard navigation</h1>\n\n<h2>Activating keyboard navigation</h2>\n\n<p>The sections of the outer UI of the editor - the menubar, toolbar, sidebar and footer - are all keyboard navigable. As such, there are multiple ways to activate keyboard navigation:</p>\n<ul>\n <li>Focus the menubar: Alt + F9 (Windows) or ⌥F9 (MacOS)</li>\n <li>Focus the toolbar: Alt + F10 (Windows) or ⌥F10 (MacOS)</li>\n <li>Focus the footer: Alt + F11 (Windows) or ⌥F11 (MacOS)</li>\n</ul>\n\n<p>Focusing the menubar or toolbar will start keyboard navigation at the first item in the menubar or toolbar, which will be highlighted with a gray background. Focusing the footer will start keyboard navigation at the first item in the element path, which will be highlighted with an underline. </p>\n\n<h2>Moving between UI sections</h2>\n\n<p>When keyboard navigation is active, pressing tab will move the focus to the next major section of the UI, where applicable. These sections are:</p>\n<ul>\n <li>the menubar</li>\n <li>each group of the toolbar </li>\n <li>the sidebar</li>\n <li>the element path in the footer </li>\n <li>the wordcount toggle button in the footer </li>\n <li>the branding link in the footer </li>\n <li>the editor resize handle in the footer</li>\n</ul>\n\n<p>Pressing shift + tab will move backwards through the same sections, except when moving from the footer to the toolbar. Focusing the element path then pressing shift + tab will move focus to the first toolbar group, not the last.</p>\n\n<h2>Moving within UI sections</h2>\n\n<p>Keyboard navigation within UI sections can usually be achieved using the left and right arrow keys. This includes:</p>\n<ul>\n <li>moving between menus in the menubar</li>\n <li>moving between buttons in a toolbar group</li>\n <li>moving between items in the element path</li>\n</ul>\n\n<p>In all these UI sections, keyboard navigation will cycle within the section. For example, focusing the last button in a toolbar group then pressing right arrow will move focus to the first item in the same toolbar group. </p>\n\n<h1>Executing buttons</h1>\n\n<p>To execute a button, navigate the selection to the desired button and hit space or enter.</p>\n\n<h1>Opening, navigating and closing menus</h1>\n\n<p>When focusing a menubar button or a toolbar button with a menu, pressing space, enter or down arrow will open the menu. When the menu opens the first item will be selected. To move up or down the menu, press the up or down arrow key respectively. This is the same for submenus, which can also be opened and closed using the left and right arrow keys.</p>\n\n<p>To close any active menu, hit the escape key. When a menu is closed the selection will be restored to its previous selection. This also works for closing submenus.</p>\n\n<h1>Context toolbars and menus</h1>\n\n<p>To focus an open context toolbar such as the table context toolbar, press Ctrl + F9 (Windows) or ⌃F9 (MacOS).</p>\n\n<p>Context toolbar navigation is the same as toolbar navigation, and context menu navigation is the same as standard menu navigation.</p>\n\n<h1>Dialog navigation</h1>\n\n<p>There are two types of dialog UIs in TinyMCE: tabbed dialogs and non-tabbed dialogs.</p>\n\n<p>When a non-tabbed dialog is opened, the first interactive component in the dialog will be focused. Users can navigate between interactive components by pressing tab. This includes any footer buttons. Navigation will cycle back to the first dialog component if tab is pressed while focusing the last component in the dialog. Pressing shift + tab will navigate backwards.</p>\n\n<p>When a tabbed dialog is opened, the first button in the tab menu is focused. Pressing tab will navigate to the first interactive component in that tab, and will cycle through the tab\u2019s components, the footer buttons, then back to the tab button. To switch to another tab, focus the tab button for the current tab, then use the arrow keys to cycle through the tab buttons.</p>'; 239 var tab$3 = function () { 240 var body = { 241 type: 'htmlpanel', 242 presets: 'document', 243 html: description 244 }; 245 return { 246 name: 'keyboardnav', 247 title: 'Keyboard Navigation', 248 items: [body] 249 }; 250 }; 251 252 var global$2 = tinymce.util.Tools.resolve('tinymce.Env'); 253 254 var convertText = function (source) { 255 var mac = { 256 alt: '⌥', 257 ctrl: '⌃', 258 shift: '⇧', 259 meta: '⌘', 260 access: '⌃⌥' 261 }; 262 var other = { 263 meta: 'Ctrl ', 264 access: 'Shift + Alt ' 265 }; 266 var replace = global$2.mac ? mac : other; 267 var shortcut = source.split('+'); 268 var updated = map(shortcut, function (segment) { 269 var search = segment.toLowerCase().trim(); 270 return has(replace, search) ? replace[search] : segment; 271 }); 272 return global$2.mac ? updated.join('').replace(/\s/, '') : updated.join('+'); 273 }; 274 275 var shortcuts = [ 276 { 277 shortcuts: ['Meta + B'], 278 action: 'Bold' 279 }, 280 { 281 shortcuts: ['Meta + I'], 282 action: 'Italic' 283 }, 284 { 285 shortcuts: ['Meta + U'], 286 action: 'Underline' 287 }, 288 { 289 shortcuts: ['Meta + A'], 290 action: 'Select all' 291 }, 292 { 293 shortcuts: [ 294 'Meta + Y', 295 'Meta + Shift + Z' 296 ], 297 action: 'Redo' 298 }, 299 { 300 shortcuts: ['Meta + Z'], 301 action: 'Undo' 302 }, 303 { 304 shortcuts: ['Access + 1'], 305 action: 'Heading 1' 306 }, 307 { 308 shortcuts: ['Access + 2'], 309 action: 'Heading 2' 310 }, 311 { 312 shortcuts: ['Access + 3'], 313 action: 'Heading 3' 314 }, 315 { 316 shortcuts: ['Access + 4'], 317 action: 'Heading 4' 318 }, 319 { 320 shortcuts: ['Access + 5'], 321 action: 'Heading 5' 322 }, 323 { 324 shortcuts: ['Access + 6'], 325 action: 'Heading 6' 326 }, 327 { 328 shortcuts: ['Access + 7'], 329 action: 'Paragraph' 330 }, 331 { 332 shortcuts: ['Access + 8'], 333 action: 'Div' 334 }, 335 { 336 shortcuts: ['Access + 9'], 337 action: 'Address' 338 }, 339 { 340 shortcuts: ['Alt + 0'], 341 action: 'Open help dialog' 342 }, 343 { 344 shortcuts: ['Alt + F9'], 345 action: 'Focus to menubar' 346 }, 347 { 348 shortcuts: ['Alt + F10'], 349 action: 'Focus to toolbar' 350 }, 351 { 352 shortcuts: ['Alt + F11'], 353 action: 'Focus to element path' 354 }, 355 { 356 shortcuts: ['Ctrl + F9'], 357 action: 'Focus to contextual toolbar' 358 }, 359 { 360 shortcuts: ['Shift + Enter'], 361 action: 'Open popup menu for split buttons' 362 }, 363 { 364 shortcuts: ['Meta + K'], 365 action: 'Insert link (if link plugin activated)' 366 }, 367 { 368 shortcuts: ['Meta + S'], 369 action: 'Save (if save plugin activated)' 370 }, 371 { 372 shortcuts: ['Meta + F'], 373 action: 'Find (if searchreplace plugin activated)' 374 }, 375 { 376 shortcuts: ['Meta + Shift + F'], 377 action: 'Switch to or from fullscreen mode' 378 } 379 ]; 380 381 var tab$2 = function () { 382 var shortcutList = map(shortcuts, function (shortcut) { 383 var shortcutText = map(shortcut.shortcuts, convertText).join(' or '); 384 return [ 385 shortcut.action, 386 shortcutText 387 ]; 388 }); 389 var tablePanel = { 390 type: 'table', 391 header: [ 392 'Action', 393 'Shortcut' 394 ], 395 cells: shortcutList 396 }; 397 return { 398 name: 'shortcuts', 399 title: 'Handy Shortcuts', 400 items: [tablePanel] 401 }; 402 }; 403 404 var global$1 = tinymce.util.Tools.resolve('tinymce.util.I18n'); 405 406 var urls = map([ 407 { 408 key: 'advlist', 409 name: 'Advanced List' 410 }, 411 { 412 key: 'anchor', 413 name: 'Anchor' 414 }, 415 { 416 key: 'autolink', 417 name: 'Autolink' 418 }, 419 { 420 key: 'autoresize', 421 name: 'Autoresize' 422 }, 423 { 424 key: 'autosave', 425 name: 'Autosave' 426 }, 427 { 428 key: 'bbcode', 429 name: 'BBCode' 430 }, 431 { 432 key: 'charmap', 433 name: 'Character Map' 434 }, 435 { 436 key: 'code', 437 name: 'Code' 438 }, 439 { 440 key: 'codesample', 441 name: 'Code Sample' 442 }, 443 { 444 key: 'colorpicker', 445 name: 'Color Picker' 446 }, 447 { 448 key: 'directionality', 449 name: 'Directionality' 450 }, 451 { 452 key: 'emoticons', 453 name: 'Emoticons' 454 }, 455 { 456 key: 'fullpage', 457 name: 'Full Page' 458 }, 459 { 460 key: 'fullscreen', 461 name: 'Full Screen' 462 }, 463 { 464 key: 'help', 465 name: 'Help' 466 }, 467 { 468 key: 'hr', 469 name: 'Horizontal Rule' 470 }, 471 { 472 key: 'image', 473 name: 'Image' 474 }, 475 { 476 key: 'imagetools', 477 name: 'Image Tools' 478 }, 479 { 480 key: 'importcss', 481 name: 'Import CSS' 482 }, 483 { 484 key: 'insertdatetime', 485 name: 'Insert Date/Time' 486 }, 487 { 488 key: 'legacyoutput', 489 name: 'Legacy Output' 490 }, 491 { 492 key: 'link', 493 name: 'Link' 494 }, 495 { 496 key: 'lists', 497 name: 'Lists' 498 }, 499 { 500 key: 'media', 501 name: 'Media' 502 }, 503 { 504 key: 'nonbreaking', 505 name: 'Nonbreaking' 506 }, 507 { 508 key: 'noneditable', 509 name: 'Noneditable' 510 }, 511 { 512 key: 'pagebreak', 513 name: 'Page Break' 514 }, 515 { 516 key: 'paste', 517 name: 'Paste' 518 }, 519 { 520 key: 'preview', 521 name: 'Preview' 522 }, 523 { 524 key: 'print', 525 name: 'Print' 526 }, 527 { 528 key: 'quickbars', 529 name: 'Quick Toolbars' 530 }, 531 { 532 key: 'save', 533 name: 'Save' 534 }, 535 { 536 key: 'searchreplace', 537 name: 'Search and Replace' 538 }, 539 { 540 key: 'spellchecker', 541 name: 'Spell Checker' 542 }, 543 { 544 key: 'tabfocus', 545 name: 'Tab Focus' 546 }, 547 { 548 key: 'table', 549 name: 'Table' 550 }, 551 { 552 key: 'template', 553 name: 'Template' 554 }, 555 { 556 key: 'textcolor', 557 name: 'Text Color' 558 }, 559 { 560 key: 'textpattern', 561 name: 'Text Pattern' 562 }, 563 { 564 key: 'toc', 565 name: 'Table of Contents' 566 }, 567 { 568 key: 'visualblocks', 569 name: 'Visual Blocks' 570 }, 571 { 572 key: 'visualchars', 573 name: 'Visual Characters' 574 }, 575 { 576 key: 'wordcount', 577 name: 'Word Count' 578 }, 579 { 580 key: 'a11ychecker', 581 name: 'Accessibility Checker', 582 type: 'premium' 583 }, 584 { 585 key: 'advcode', 586 name: 'Advanced Code Editor', 587 type: 'premium' 588 }, 589 { 590 key: 'advtable', 591 name: 'Advanced Tables', 592 type: 'premium' 593 }, 594 { 595 key: 'autocorrect', 596 name: 'Autocorrect', 597 type: 'premium' 598 }, 599 { 600 key: 'casechange', 601 name: 'Case Change', 602 type: 'premium' 603 }, 604 { 605 key: 'checklist', 606 name: 'Checklist', 607 type: 'premium' 608 }, 609 { 610 key: 'export', 611 name: 'Export', 612 type: 'premium' 613 }, 614 { 615 key: 'mediaembed', 616 name: 'Enhanced Media Embed', 617 type: 'premium' 618 }, 619 { 620 key: 'formatpainter', 621 name: 'Format Painter', 622 type: 'premium' 623 }, 624 { 625 key: 'linkchecker', 626 name: 'Link Checker', 627 type: 'premium' 628 }, 629 { 630 key: 'mentions', 631 name: 'Mentions', 632 type: 'premium' 633 }, 634 { 635 key: 'pageembed', 636 name: 'Page Embed', 637 type: 'premium' 638 }, 639 { 640 key: 'permanentpen', 641 name: 'Permanent Pen', 642 type: 'premium' 643 }, 644 { 645 key: 'powerpaste', 646 name: 'PowerPaste', 647 type: 'premium' 648 }, 649 { 650 key: 'rtc', 651 name: 'Real-Time Collaboration', 652 type: 'premium' 653 }, 654 { 655 key: 'tinymcespellchecker', 656 name: 'Spell Checker Pro', 657 type: 'premium' 658 }, 659 { 660 key: 'tinycomments', 661 name: 'Tiny Comments', 662 type: 'premium', 663 slug: 'comments' 664 }, 665 { 666 key: 'tinydrive', 667 name: 'Tiny Drive', 668 type: 'premium' 669 } 670 ], function (item) { 671 return __assign(__assign({}, item), { 672 type: item.type || 'opensource', 673 slug: item.slug || item.key 674 }); 675 }); 676 677 var tab$1 = function (editor) { 678 var availablePlugins = function () { 679 var premiumPlugins = filter(urls, function (_a) { 680 var key = _a.key, type = _a.type; 681 return key !== 'autocorrect' && type === 'premium'; 682 }); 683 var premiumPluginList = map(premiumPlugins, function (plugin) { 684 return '<li>' + global$1.translate(plugin.name) + '</li>'; 685 }).join(''); 686 return '<div data-mce-tabstop="1" tabindex="-1">' + '<p><b>' + global$1.translate('Premium plugins:') + '</b></p>' + '<ul>' + premiumPluginList + '<li class="tox-help__more-link" "><a href="https://www.tiny.cloud/pricing/?utm_campaign=editor_referral&utm_medium=help_dialog&utm_source=tinymce" target="_blank">' + global$1.translate('Learn more...') + '</a></li>' + '</ul>' + '</div>'; 687 }; 688 var makeLink = function (p) { 689 return '<a href="' + p.url + '" target="_blank" rel="noopener">' + p.name + '</a>'; 690 }; 691 var maybeUrlize = function (editor, key) { 692 return find(urls, function (x) { 693 return x.key === key; 694 }).fold(function () { 695 var getMetadata = editor.plugins[key].getMetadata; 696 return typeof getMetadata === 'function' ? makeLink(getMetadata()) : key; 697 }, function (x) { 698 var name = x.type === 'premium' ? x.name + '*' : x.name; 699 return makeLink({ 700 name: name, 701 url: 'https://www.tiny.cloud/docs/plugins/' + x.type + '/' + x.slug 702 }); 703 }); 704 }; 705 var getPluginKeys = function (editor) { 706 var keys$1 = keys(editor.plugins); 707 var forced_plugins = getForcedPlugins(editor); 708 return forced_plugins === undefined ? keys$1 : filter(keys$1, function (k) { 709 return !contains(forced_plugins, k); 710 }); 711 }; 712 var pluginLister = function (editor) { 713 var pluginKeys = getPluginKeys(editor); 714 var pluginLis = map(pluginKeys, function (key) { 715 return '<li>' + maybeUrlize(editor, key) + '</li>'; 716 }); 717 var count = pluginLis.length; 718 var pluginsString = pluginLis.join(''); 719 var html = '<p><b>' + global$1.translate([ 720 'Plugins installed ({0}):', 721 count 722 ]) + '</b></p>' + '<ul>' + pluginsString + '</ul>'; 723 return html; 724 }; 725 var installedPlugins = function (editor) { 726 if (editor == null) { 727 return ''; 728 } 729 return '<div data-mce-tabstop="1" tabindex="-1">' + pluginLister(editor) + '</div>'; 730 }; 731 var htmlPanel = { 732 type: 'htmlpanel', 733 presets: 'document', 734 html: [ 735 installedPlugins(editor), 736 availablePlugins() 737 ].join('') 738 }; 739 return { 740 name: 'plugins', 741 title: 'Plugins', 742 items: [htmlPanel] 743 }; 744 }; 745 746 var global = tinymce.util.Tools.resolve('tinymce.EditorManager'); 747 748 var tab = function () { 749 var getVersion = function (major, minor) { 750 return major.indexOf('@') === 0 ? 'X.X.X' : major + '.' + minor; 751 }; 752 var version = getVersion(global.majorVersion, global.minorVersion); 753 var changeLogLink = '<a href="https://www.tiny.cloud/docs/changelog/?utm_campaign=editor_referral&utm_medium=help_dialog&utm_source=tinymce" target="_blank">TinyMCE ' + version + '</a>'; 754 var htmlPanel = { 755 type: 'htmlpanel', 756 html: '<p>' + global$1.translate([ 757 'You are using {0}', 758 changeLogLink 759 ]) + '</p>', 760 presets: 'document' 761 }; 762 return { 763 name: 'versions', 764 title: 'Version', 765 items: [htmlPanel] 766 }; 767 }; 768 769 var parseHelpTabsSetting = function (tabsFromSettings, tabs) { 770 var newTabs = {}; 771 var names = map(tabsFromSettings, function (t) { 772 if (typeof t === 'string') { 773 if (has(tabs, t)) { 774 newTabs[t] = tabs[t]; 775 } 776 return t; 777 } else { 778 newTabs[t.name] = t; 779 return t.name; 780 } 781 }); 782 return { 783 tabs: newTabs, 784 names: names 785 }; 786 }; 787 var getNamesFromTabs = function (tabs) { 788 var names = keys(tabs); 789 var idx = names.indexOf('versions'); 790 if (idx !== -1) { 791 names.splice(idx, 1); 792 names.push('versions'); 793 } 794 return { 795 tabs: tabs, 796 names: names 797 }; 798 }; 799 var parseCustomTabs = function (editor, customTabs) { 800 var _a; 801 var shortcuts = tab$2(); 802 var nav = tab$3(); 803 var plugins = tab$1(editor); 804 var versions = tab(); 805 var tabs = __assign((_a = {}, _a[shortcuts.name] = shortcuts, _a[nav.name] = nav, _a[plugins.name] = plugins, _a[versions.name] = versions, _a), customTabs.get()); 806 return getHelpTabs(editor).fold(function () { 807 return getNamesFromTabs(tabs); 808 }, function (tabsFromSettings) { 809 return parseHelpTabsSetting(tabsFromSettings, tabs); 810 }); 811 }; 812 var init = function (editor, customTabs) { 813 return function () { 814 var _a = parseCustomTabs(editor, customTabs), tabs = _a.tabs, names = _a.names; 815 var foundTabs = map(names, function (name) { 816 return get(tabs, name); 817 }); 818 var dialogTabs = cat(foundTabs); 819 var body = { 820 type: 'tabpanel', 821 tabs: dialogTabs 822 }; 823 editor.windowManager.open({ 824 title: 'Help', 825 size: 'medium', 826 body: body, 827 buttons: [{ 828 type: 'cancel', 829 name: 'close', 830 text: 'Close', 831 primary: true 832 }], 833 initialData: {} 834 }); 835 }; 836 }; 837 838 function Plugin () { 839 global$3.add('help', function (editor) { 840 var customTabs = Cell({}); 841 var api = get$1(customTabs); 842 var dialogOpener = init(editor, customTabs); 843 register(editor, dialogOpener); 844 register$1(editor, dialogOpener); 845 editor.shortcuts.add('Alt+0', 'Open help dialog', 'mceHelp'); 846 return api; 847 }); 848 } 849 850 Plugin(); 851 852 }());
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Sep 7 05:41:13 2022 | Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer |