<?php

namespace Contao;

if ($GLOBALS['TL_CONFIG']['useRTE']):

// Use document.write() here in case TinyMCE is loaded in a subpalette (see #1424)
?>
<script>window.tinymce || document.write('<script src="<?= $this->asset('js/tinymce.min.js', 'contao-components/tinymce4') ?>">\x3C/script>')</script>
<script>
window.tinymce && tinymce.init({
  selector: '#<?= $this->selector ?>',
  min_height: 336,
  language: '<?= Backend::getTinyMceLanguage() ?>',
  element_format: 'html',
  document_base_url: '<?= Environment::get('base') ?>',
  entities: '160,nbsp,60,lt,62,gt,173,shy',
  branding: false,
  setup: function(editor) {
    editor.getElement().removeAttribute('required');
    document.querySelectorAll('[accesskey]').forEach(function(el) {
      editor.addShortcut('access+' + el.accessKey, el.id, function() { el.click(); });
    });
  },
  init_instance_callback: function(editor) {
    if (document.activeElement && document.activeElement.id && document.activeElement.id == editor.id) {
      editor.editorManager.get(editor.id).focus();
    }
    editor.on('focus', function() { Backend.getScrollOffset(); });
  },

  <?php $this->block('picker'); ?>
    file_picker_callback: function (callback, value, meta) {
      Backend.openModalSelector({
        'id': 'tl_listing',
        'title': document.getElement('.tox-dialog__title').get('text'),
        'url': Contao.routes.backend_picker + '?context=' + (meta.filetype == 'file' ? 'link' : 'file') + '&amp;extras[fieldType]=radio&amp;extras[filesOnly]=true&amp;extras[source]=<?= $this->source ?>&amp;value=' + value + '&amp;popup=1',
        'callback': function(table, val) {
          callback(val.join(','));
        }
      });
    },
    file_picker_types: <?= json_encode($this->fileBrowserTypes) ?>,
  <?php $this->endblock(); ?>

  <?php $this->block('content_css'); ?>
    content_css: 'system/themes/<?= Backend::getTheme() ?>/tinymce.min.css,files/themes/aldegott_2022/assets/css/tinymce/formats.css',
  <?php $this->endblock(); ?>

  <?php $this->block('plugins'); ?>
    plugins: 'autosave charmap code fullscreen image importcss link lists paste searchreplace stripnbsp tabfocus table visualblocks visualchars',
  <?php $this->endblock(); ?>

  <?php $this->block('valid_elements'); ?>
    extended_valid_elements: 'q[cite|class|title],article,section,hgroup,figure,figcaption',
  <?php $this->endblock(); ?>

  <?php $this->block('menubar'); ?>
    menubar: 'file edit insert view format table',
  <?php $this->endblock(); ?>

  <?php $this->block('toolbar'); ?>
    toolbar: 'link unlink | image | formatselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | code',
  <?php $this->endblock(); ?>

  <?php $this->block('contextmenu'); ?>
    contextmenu: false,
  <?php $this->endblock(); ?>

  <?php $this->block('cache_suffix'); ?>
    cache_suffix: '?v=<?= $this->assetVersion('js/tinymce.min.js', 'contao-components/tinymce4') ?>',
  <?php $this->endblock(); ?>

  <?php $this->block('custom'); ?>
  <?php $this->endblock(); ?>

  browser_spellcheck: true,
  tabfocus_elements: ':prev,:next',
  importcss_append: true,
  link_class_list: [
    {title: 'None', value: ''},
    {title: 'Standalone hervorgehoben', value: '-emphasised-block'},
    {title: 'Button (neutral)', value: 'button'}
  ],
  formats: {
    emphasise: { inline: 'span', classes: 'emphasised' },
    brown: { inline: 'span', classes: 'color-brown' },
    platin: { inline: 'span', classes: 'color-platin' },
    sansSerif: { inline: 'span', classes: 'ff-sans' }
  },
  style_formats: [
    { title: 'Hervorgehoben', format: 'emphasise' },
    { title: 'Braun', format: 'brown' },
    { title: 'Platin', format: 'platin' },
    { title: 'Sans-Serif', format: 'sansSerif' }
  ]
});
</script>
<?php endif; ?>