plugin.js 2.3 KB

12345
  1. /*
  2. Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
  3. For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
  4. */
  5. !function(){function e(e,t){var a,n=e.editable().findOne('a[data-cke-autoembed="'+t+'"]'),i=e.lang.autoembed;if(n&&n.data("cke-saved-href")){var n=n.data("cke-saved-href"),o=CKEDITOR.plugins.autoEmbed.getWidgetDefinition(e,n);if(o){var d,r="function"==typeof o.defaults?o.defaults():o.defaults,r=CKEDITOR.dom.element.createFromHtml(o.template.output(r)),s=e.widgets.wrapElement(r,o.name),l=new CKEDITOR.dom.documentFragment(s.getDocument());l.append(s),(d=e.widgets.initOn(r,o))?(a=e.showNotification(i.embeddingInProgress,"info"),d.loadContent(n,{noNotifications:!0,callback:function(){var n=e.editable().findOne('a[data-cke-autoembed="'+t+'"]');if(n){var i=e.getSelection(),o=e.createRange(),d=e.editable();e.fire("saveSnapshot"),e.fire("lockSnapshot",{dontUpdate:!0});var r=i.createBookmarks(!1)[0],u=r.startNode,f=r.endNode||u;CKEDITOR.env.ie&&9>CKEDITOR.env.version&&!r.endNode&&u.equals(n.getNext())&&n.append(u),o.setStartBefore(n),o.setEndAfter(n),d.insertElement(s,o),d.contains(u)&&d.contains(f)?i.selectBookmarks([r]):(u.remove(),f.remove()),e.fire("unlockSnapshot")}a.hide(),e.widgets.finalizeCreation(l)},errorCallback:function(){a.hide(),e.widgets.destroy(d,!0),e.showNotification(i.embeddingFailed,"info")}})):e.widgets.finalizeCreation(l)}else CKEDITOR.warn("autoembed-no-widget-def")}}var t=/^<a[^>]+href="([^"]+)"[^>]*>([^<]+)<\/a>$/i;CKEDITOR.plugins.add("autoembed",{requires:"autolink,undo",lang:"ar,az,bg,ca,cs,da,de,de-ch,el,en,en-au,eo,es,es-mx,et,eu,fa,fr,gl,hr,hu,id,it,ja,km,ko,ku,lt,lv,mk,nb,nl,oc,pl,pt,pt-br,ro,ru,sk,sq,sr,sr-latn,sv,tr,ug,uk,vi,zh,zh-cn",init:function(a){var n,i=1;a.on("paste",function(e){if(e.data.dataTransfer.getTransferType(a)==CKEDITOR.DATA_TRANSFER_INTERNAL)n=0;else{var o=e.data.dataValue.match(t);(n=null!=o&&decodeURI(o[1])==decodeURI(o[2]))&&(e.data.dataValue='<a data-cke-autoembed="'+ ++i+'"'+e.data.dataValue.substr(2))}},null,null,20),a.on("afterPaste",function(){n&&e(a,i)})}}),CKEDITOR.plugins.autoEmbed={getWidgetDefinition:function(e,t){var a,n=e.config.autoEmbed_widget||"embed,embedSemantic",i=e.widgets.registered;if("string"==typeof n){for(n=n.split(",");a=n.shift();)if(i[a])return i[a]}else if("function"==typeof n)return i[n(t)];return null}}}();