Subversion Repositories oidplus

Rev

Rev 637 | Rev 759 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 637 Rev 679
Line 2... Line 2...
2
 * Copyright (c) Tiny Technologies, Inc. All rights reserved.
2
 * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3
 * Licensed under the LGPL or a commercial license.
3
 * Licensed under the LGPL or a commercial license.
4
 * For LGPL see License.txt in the project root for license information.
4
 * For LGPL see License.txt in the project root for license information.
5
 * For commercial licenses see https://www.tiny.cloud/
5
 * For commercial licenses see https://www.tiny.cloud/
6
 *
6
 *
7
 * Version: 5.9.2 (2021-09-08)
7
 * Version: 5.10.2 (2021-11-17)
8
 */
8
 */
9
(function () {
9
(function () {
10
    'use strict';
10
    'use strict';
11
 
11
 
12
    var global$6 = tinymce.util.Tools.resolve('tinymce.PluginManager');
12
    var global$7 = tinymce.util.Tools.resolve('tinymce.PluginManager');
13
 
13
 
14
    var global$5 = tinymce.util.Tools.resolve('tinymce.util.VK');
14
    var global$6 = tinymce.util.Tools.resolve('tinymce.util.VK');
15
 
15
 
16
    var typeOf = function (x) {
16
    var typeOf = function (x) {
17
      var t = typeof x;
17
      var t = typeof x;
18
      if (x === null) {
18
      if (x === null) {
19
        return 'null';
19
        return 'null';
Line 263... Line 263...
263
    };
263
    };
264
    var getDefaultLinkProtocol = function (editor) {
264
    var getDefaultLinkProtocol = function (editor) {
265
      return editor.getParam('link_default_protocol', 'http', 'string');
265
      return editor.getParam('link_default_protocol', 'http', 'string');
266
    };
266
    };
267
 
267
 
268
    var global$4 = tinymce.util.Tools.resolve('tinymce.util.Tools');
268
    var global$5 = tinymce.util.Tools.resolve('tinymce.util.Tools');
269
 
269
 
270
    var getValue = function (item) {
270
    var getValue = function (item) {
271
      return isString(item.value) ? item.value : '';
271
      return isString(item.value) ? item.value : '';
272
    };
272
    };
273
    var getText = function (item) {
273
    var getText = function (item) {
Line 279... Line 279...
279
        return '';
279
        return '';
280
      }
280
      }
281
    };
281
    };
282
    var sanitizeList = function (list, extractValue) {
282
    var sanitizeList = function (list, extractValue) {
283
      var out = [];
283
      var out = [];
284
      global$4.each(list, function (item) {
284
      global$5.each(list, function (item) {
285
        var text = getText(item);
285
        var text = getText(item);
286
        if (item.menu !== undefined) {
286
        if (item.menu !== undefined) {
287
          var items = sanitizeList(item.menu, extractValue);
287
          var items = sanitizeList(item.menu, extractValue);
288
          out.push({
288
          out.push({
289
            text: text,
289
            text: text,
Line 374... Line 374...
374
    };
374
    };
375
    var hasNonNullableKey = function (obj, key) {
375
    var hasNonNullableKey = function (obj, key) {
376
      return has(obj, key) && obj[key] !== undefined && obj[key] !== null;
376
      return has(obj, key) && obj[key] !== undefined && obj[key] !== null;
377
    };
377
    };
378
 
378
 
379
    var global$3 = tinymce.util.Tools.resolve('tinymce.dom.TreeWalker');
379
    var global$4 = tinymce.util.Tools.resolve('tinymce.dom.TreeWalker');
-
 
380
 
-
 
381
    var global$3 = tinymce.util.Tools.resolve('tinymce.util.URI');
380
 
382
 
381
    var isAnchor = function (elm) {
383
    var isAnchor = function (elm) {
382
      return elm && elm.nodeName.toLowerCase() === 'a';
384
      return elm && elm.nodeName.toLowerCase() === 'a';
383
    };
385
    };
384
    var isLink = function (elm) {
386
    var isLink = function (elm) {
Line 387... Line 389...
387
    var collectNodesInRange = function (rng, predicate) {
389
    var collectNodesInRange = function (rng, predicate) {
388
      if (rng.collapsed) {
390
      if (rng.collapsed) {
389
        return [];
391
        return [];
390
      } else {
392
      } else {
391
        var contents = rng.cloneContents();
393
        var contents = rng.cloneContents();
392
        var walker = new global$3(contents.firstChild, contents);
394
        var walker = new global$4(contents.firstChild, contents);
393
        var elements = [];
395
        var elements = [];
394
        var current = contents.firstChild;
396
        var current = contents.firstChild;
395
        do {
397
        do {
396
          if (predicate(current)) {
398
          if (predicate(current)) {
397
            elements.push(current);
399
            elements.push(current);
Line 409... Line 411...
409
    };
411
    };
410
    var applyRelTargetRules = function (rel, isUnsafe) {
412
    var applyRelTargetRules = function (rel, isUnsafe) {
411
      var rules = ['noopener'];
413
      var rules = ['noopener'];
412
      var rels = rel ? rel.split(/\s+/) : [];
414
      var rels = rel ? rel.split(/\s+/) : [];
413
      var toString = function (rels) {
415
      var toString = function (rels) {
414
        return global$4.trim(rels.sort().join(' '));
416
        return global$5.trim(rels.sort().join(' '));
415
      };
417
      };
416
      var addTargetRules = function (rels) {
418
      var addTargetRules = function (rels) {
417
        rels = removeTargetRules(rels);
419
        rels = removeTargetRules(rels);
418
        return rels.length > 0 ? rels.concat(rules) : rules;
420
        return rels.length > 0 ? rels.concat(rules) : rules;
419
      };
421
      };
420
      var removeTargetRules = function (rels) {
422
      var removeTargetRules = function (rels) {
421
        return rels.filter(function (val) {
423
        return rels.filter(function (val) {
422
          return global$4.inArray(rules, val) === -1;
424
          return global$5.inArray(rules, val) === -1;
423
        });
425
        });
424
      };
426
      };
425
      var newRels = isUnsafe ? addTargetRules(rels) : removeTargetRules(rels);
427
      var newRels = isUnsafe ? addTargetRules(rels) : removeTargetRules(rels);
426
      return newRels.length > 0 ? toString(newRels) : '';
428
      return newRels.length > 0 ? toString(newRels) : '';
427
    };
429
    };
Line 439... Line 441...
439
    var getAnchorText = function (selection, anchorElm) {
441
    var getAnchorText = function (selection, anchorElm) {
440
      var text = anchorElm ? anchorElm.innerText || anchorElm.textContent : selection.getContent({ format: 'text' });
442
      var text = anchorElm ? anchorElm.innerText || anchorElm.textContent : selection.getContent({ format: 'text' });
441
      return trimCaretContainers(text);
443
      return trimCaretContainers(text);
442
    };
444
    };
443
    var hasLinks = function (elements) {
445
    var hasLinks = function (elements) {
444
      return global$4.grep(elements, isLink).length > 0;
446
      return global$5.grep(elements, isLink).length > 0;
445
    };
447
    };
446
    var hasLinksInSelection = function (rng) {
448
    var hasLinksInSelection = function (rng) {
447
      return collectNodesInRange(rng, isLink).length > 0;
449
      return collectNodesInRange(rng, isLink).length > 0;
448
    };
450
    };
449
    var isOnlyTextSelected = function (editor) {
451
    var isOnlyTextSelected = function (editor) {
Line 565... Line 567...
565
        title: title.getOrNull()
567
        title: title.getOrNull()
566
      }, function (v, _k) {
568
      }, function (v, _k) {
567
        return isNull(v) === false;
569
        return isNull(v) === false;
568
      });
570
      });
569
    };
571
    };
-
 
572
    var sanitizeData = function (editor, data) {
-
 
573
      var href = data.href;
-
 
574
      return __assign(__assign({}, data), { href: global$3.isDomSafe(href, 'a', editor.settings) ? href : '' });
-
 
575
    };
570
    var link = function (editor, attachState, data) {
576
    var link = function (editor, attachState, data) {
-
 
577
      var sanitizedData = sanitizeData(editor, data);
571
      editor.hasPlugin('rtc', true) ? editor.execCommand('createlink', false, unwrapOptions(data)) : linkDomMutation(editor, attachState, data);
578
      editor.hasPlugin('rtc', true) ? editor.execCommand('createlink', false, unwrapOptions(sanitizedData)) : linkDomMutation(editor, attachState, sanitizedData);
572
    };
579
    };
573
    var unlink = function (editor) {
580
    var unlink = function (editor) {
574
      editor.hasPlugin('rtc', true) ? editor.execCommand('unlink') : unlinkDomMutation(editor);
581
      editor.hasPlugin('rtc', true) ? editor.execCommand('unlink') : unlinkDomMutation(editor);
575
    };
582
    };
576
    var unlinkImageFigure = function (editor, fig) {
583
    var unlinkImageFigure = function (editor, fig) {
Line 1060... Line 1067...
1060
      };
1067
      };
1061
    };
1068
    };
1062
    var setupGotoLinks = function (editor) {
1069
    var setupGotoLinks = function (editor) {
1063
      editor.on('click', function (e) {
1070
      editor.on('click', function (e) {
1064
        var link = getLink(editor, e.target);
1071
        var link = getLink(editor, e.target);
1065
        if (link && global$5.metaKeyPressed(e)) {
1072
        if (link && global$6.metaKeyPressed(e)) {
1066
          e.preventDefault();
1073
          e.preventDefault();
1067
          gotoLink(editor, link);
1074
          gotoLink(editor, link);
1068
        }
1075
        }
1069
      });
1076
      });
1070
      editor.on('keydown', function (e) {
1077
      editor.on('keydown', function (e) {
Line 1268... Line 1275...
1268
        ]
1275
        ]
1269
      });
1276
      });
1270
    };
1277
    };
1271
 
1278
 
1272
    function Plugin () {
1279
    function Plugin () {
1273
      global$6.add('link', function (editor) {
1280
      global$7.add('link', function (editor) {
1274
        setupButtons(editor);
1281
        setupButtons(editor);
1275
        setupMenuItems(editor);
1282
        setupMenuItems(editor);
1276
        setupContextMenu(editor);
1283
        setupContextMenu(editor);
1277
        setupContextToolbars(editor);
1284
        setupContextToolbars(editor);
1278
        setupGotoLinks(editor);
1285
        setupGotoLinks(editor);