plugin.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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.0.1 (2019-02-21)
  8. */
  9. (function () {
  10. var code = (function () {
  11. 'use strict';
  12. var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
  13. var setContent = function (editor, html) {
  14. editor.focus();
  15. editor.undoManager.transact(function () {
  16. editor.setContent(html);
  17. });
  18. editor.selection.setCursorLocation();
  19. editor.nodeChanged();
  20. };
  21. var getContent = function (editor) {
  22. return editor.getContent({ source_view: true });
  23. };
  24. var Content = {
  25. setContent: setContent,
  26. getContent: getContent
  27. };
  28. var open = function (editor) {
  29. var editorContent = Content.getContent(editor);
  30. editor.windowManager.open({
  31. title: 'Source Code',
  32. size: 'large',
  33. body: {
  34. type: 'panel',
  35. items: [{
  36. type: 'textarea',
  37. name: 'code'
  38. }]
  39. },
  40. buttons: [
  41. {
  42. type: 'cancel',
  43. name: 'cancel',
  44. text: 'Cancel'
  45. },
  46. {
  47. type: 'submit',
  48. name: 'save',
  49. text: 'Save',
  50. primary: true
  51. }
  52. ],
  53. initialData: { code: editorContent },
  54. onSubmit: function (api) {
  55. Content.setContent(editor, api.getData().code);
  56. api.close();
  57. }
  58. });
  59. };
  60. var Dialog = { open: open };
  61. var register = function (editor) {
  62. editor.addCommand('mceCodeEditor', function () {
  63. Dialog.open(editor);
  64. });
  65. };
  66. var Commands = { register: register };
  67. var register$1 = function (editor) {
  68. editor.ui.registry.addButton('code', {
  69. icon: 'sourcecode',
  70. tooltip: 'Source code',
  71. onAction: function () {
  72. return Dialog.open(editor);
  73. }
  74. });
  75. editor.ui.registry.addMenuItem('code', {
  76. icon: 'sourcecode',
  77. text: 'Source code',
  78. onAction: function () {
  79. return Dialog.open(editor);
  80. }
  81. });
  82. };
  83. var Buttons = { register: register$1 };
  84. global.add('code', function (editor) {
  85. Commands.register(editor);
  86. Buttons.register(editor);
  87. return {};
  88. });
  89. function Plugin () {
  90. }
  91. return Plugin;
  92. }());
  93. })();