@lotte-innovate/ui-component-test 0.2.9 → 0.2.10
Sign up to get free protection for your applications and to get access to all the features.
- package/package.json +2 -1
- package/post-tinymce.js +3 -2
- package/public/tinymce/CHANGELOG.md +3453 -0
- package/public/tinymce/README.md +73 -0
- package/public/tinymce/bower.json +27 -0
- package/public/tinymce/composer.json +52 -0
- package/public/tinymce/icons/default/icons.js +194 -0
- package/public/tinymce/icons/default/icons.min.js +1 -0
- package/public/tinymce/icons/default/icons.mjs +2 -0
- package/public/tinymce/icons/default/icons.mjs.map +1 -0
- package/public/tinymce/icons/default/index.d.ts +1 -0
- package/public/tinymce/icons/default/index.js +7 -0
- package/public/tinymce/icons/default/index.mjs +2 -0
- package/public/tinymce/icons/default/index.mjs.map +1 -0
- package/public/tinymce/license.txt +21 -0
- package/public/tinymce/models/dom/index.d.ts +1 -0
- package/public/tinymce/models/dom/index.js +7 -0
- package/public/tinymce/models/dom/index.mjs +2 -0
- package/public/tinymce/models/dom/index.mjs.map +1 -0
- package/public/tinymce/models/dom/model.js +8040 -0
- package/public/tinymce/models/dom/model.min.js +4 -0
- package/public/tinymce/models/dom/model.mjs +2 -0
- package/public/tinymce/models/dom/model.mjs.map +1 -0
- package/public/tinymce/package.json +32 -0
- package/public/tinymce/plugins/advlist/index.d.ts +1 -0
- package/public/tinymce/plugins/advlist/index.js +7 -0
- package/public/tinymce/plugins/advlist/index.mjs +2 -0
- package/public/tinymce/plugins/advlist/index.mjs.map +1 -0
- package/public/tinymce/plugins/advlist/plugin.js +259 -0
- package/public/tinymce/plugins/advlist/plugin.min.js +4 -0
- package/public/tinymce/plugins/advlist/plugin.mjs +2 -0
- package/public/tinymce/plugins/advlist/plugin.mjs.map +1 -0
- package/public/tinymce/plugins/autolink/index.js +7 -0
- package/public/tinymce/plugins/autolink/plugin.js +228 -0
- package/public/tinymce/plugins/autolink/plugin.min.js +4 -0
- package/public/tinymce/plugins/code/index.d.ts +1 -0
- package/public/tinymce/plugins/code/index.js +7 -0
- package/public/tinymce/plugins/code/index.mjs +2 -0
- package/public/tinymce/plugins/code/index.mjs.map +1 -0
- package/public/tinymce/plugins/code/plugin.js +85 -0
- package/public/tinymce/plugins/code/plugin.min.js +4 -0
- package/public/tinymce/plugins/code/plugin.mjs +2 -0
- package/public/tinymce/plugins/code/plugin.mjs.map +1 -0
- package/public/tinymce/plugins/codesample/index.d.ts +1 -0
- package/public/tinymce/plugins/codesample/index.js +7 -0
- package/public/tinymce/plugins/codesample/index.mjs +2 -0
- package/public/tinymce/plugins/codesample/index.mjs.map +1 -0
- package/public/tinymce/plugins/codesample/plugin.d.ts +45 -0
- package/public/tinymce/plugins/codesample/plugin.js +2463 -0
- package/public/tinymce/plugins/codesample/plugin.min.js +4 -0
- package/public/tinymce/plugins/codesample/plugin.mjs +2 -0
- package/public/tinymce/plugins/codesample/plugin.mjs.map +1 -0
- package/public/tinymce/plugins/image/index.d.ts +1 -0
- package/public/tinymce/plugins/image/index.js +7 -0
- package/public/tinymce/plugins/image/index.mjs +2 -0
- package/public/tinymce/plugins/image/index.mjs.map +1 -0
- package/public/tinymce/plugins/image/plugin.js +1505 -0
- package/public/tinymce/plugins/image/plugin.min.js +4 -0
- package/public/tinymce/plugins/image/plugin.mjs +2 -0
- package/public/tinymce/plugins/image/plugin.mjs.map +1 -0
- package/public/tinymce/plugins/link/index.d.ts +1 -0
- package/public/tinymce/plugins/link/index.js +7 -0
- package/public/tinymce/plugins/link/index.mjs +2 -0
- package/public/tinymce/plugins/link/index.mjs.map +1 -0
- package/public/tinymce/plugins/link/plugin.js +1242 -0
- package/public/tinymce/plugins/link/plugin.min.js +4 -0
- package/public/tinymce/plugins/link/plugin.mjs +2 -0
- package/public/tinymce/plugins/link/plugin.mjs.map +1 -0
- package/public/tinymce/plugins/lists/index.d.ts +1 -0
- package/public/tinymce/plugins/lists/index.js +7 -0
- package/public/tinymce/plugins/lists/index.mjs +2 -0
- package/public/tinymce/plugins/lists/index.mjs.map +1 -0
- package/public/tinymce/plugins/lists/plugin.js +2172 -0
- package/public/tinymce/plugins/lists/plugin.min.js +4 -0
- package/public/tinymce/plugins/lists/plugin.mjs +2 -0
- package/public/tinymce/plugins/lists/plugin.mjs.map +1 -0
- package/public/tinymce/plugins/table/index.d.ts +1 -0
- package/public/tinymce/plugins/table/index.js +7 -0
- package/public/tinymce/plugins/table/index.mjs +2 -0
- package/public/tinymce/plugins/table/index.mjs.map +1 -0
- package/public/tinymce/plugins/table/plugin.js +3462 -0
- package/public/tinymce/plugins/table/plugin.min.js +4 -0
- package/public/tinymce/plugins/table/plugin.mjs +2 -0
- package/public/tinymce/plugins/table/plugin.mjs.map +1 -0
- package/public/tinymce/skins/content/default/content.css +61 -0
- package/public/tinymce/skins/content/default/content.js +2 -0
- package/public/tinymce/skins/content/default/content.min.css +1 -0
- package/public/tinymce/skins/content/default/content.mjs +2 -0
- package/public/tinymce/skins/content/default/content.mjs.map +1 -0
- package/public/tinymce/skins/ui/oxide/content.css +785 -0
- package/public/tinymce/skins/ui/oxide/content.inline.css +779 -0
- package/public/tinymce/skins/ui/oxide/content.inline.js +2 -0
- package/public/tinymce/skins/ui/oxide/content.inline.min.css +1 -0
- package/public/tinymce/skins/ui/oxide/content.js +2 -0
- package/public/tinymce/skins/ui/oxide/content.min.css +1 -0
- package/public/tinymce/skins/ui/oxide/content.mjs +2 -0
- package/public/tinymce/skins/ui/oxide/content.mjs.map +1 -0
- package/public/tinymce/skins/ui/oxide/skin.css +3763 -0
- package/public/tinymce/skins/ui/oxide/skin.js +2 -0
- package/public/tinymce/skins/ui/oxide/skin.min.css +1 -0
- package/public/tinymce/skins/ui/oxide/skin.mjs +2 -0
- package/public/tinymce/skins/ui/oxide/skin.mjs.map +1 -0
- package/public/tinymce/skins/ui/oxide/skin.shadowdom.css +30 -0
- package/public/tinymce/skins/ui/oxide/skin.shadowdom.js +2 -0
- package/public/tinymce/skins/ui/oxide/skin.shadowdom.min.css +1 -0
- package/public/tinymce/skins/ui/oxide-dark/content.css +766 -0
- package/public/tinymce/skins/ui/oxide-dark/content.inline.css +779 -0
- package/public/tinymce/skins/ui/oxide-dark/content.inline.js +2 -0
- package/public/tinymce/skins/ui/oxide-dark/content.inline.min.css +1 -0
- package/public/tinymce/skins/ui/oxide-dark/content.js +2 -0
- package/public/tinymce/skins/ui/oxide-dark/content.min.css +1 -0
- package/public/tinymce/skins/ui/oxide-dark/skin.css +3766 -0
- package/public/tinymce/skins/ui/oxide-dark/skin.js +2 -0
- package/public/tinymce/skins/ui/oxide-dark/skin.min.css +1 -0
- package/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.css +30 -0
- package/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.js +2 -0
- package/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +1 -0
- package/public/tinymce/themes/silver/index.d.ts +1 -0
- package/public/tinymce/themes/silver/index.js +7 -0
- package/public/tinymce/themes/silver/index.mjs +2 -0
- package/public/tinymce/themes/silver/index.mjs.map +1 -0
- package/public/tinymce/themes/silver/theme.js +30775 -0
- package/public/tinymce/themes/silver/theme.min.js +384 -0
- package/public/tinymce/themes/silver/theme.mjs +2 -0
- package/public/tinymce/themes/silver/theme.mjs.map +1 -0
- package/public/tinymce/tinymce.d.ts +3238 -0
- package/public/tinymce/tinymce.js +31779 -0
- package/public/tinymce/tinymce.min.js +384 -0
- package/public/tinymce/tinymce.mjs +2 -0
- package/public/tinymce/tinymce.mjs.map +1 -0
@@ -0,0 +1,4 @@
|
|
1
|
+
/**
|
2
|
+
* TinyMCE version 6.8.5 (TBD)
|
3
|
+
*/
|
4
|
+
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(n=o=e,(r=String).prototype.isPrototypeOf(n)||(null===(l=o.constructor)||void 0===l?void 0:l.name)===r.name)?"string":t;var n,o,r,l})(t)===e,n=e=>t=>typeof t===e,o=t("string"),r=t("object"),l=t("array"),i=(null,e=>null===e);const a=n("boolean"),s=e=>!(e=>null==e)(e),c=n("function"),u=(e,t)=>{if(l(e)){for(let n=0,o=e.length;n<o;++n)if(!t(e[n]))return!1;return!0}return!1},g=()=>{},d=(e,t)=>e===t;class m{constructor(e,t){this.tag=e,this.value=t}static some(e){return new m(!0,e)}static none(){return m.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?m.some(e(this.value)):m.none()}bind(e){return this.tag?e(this.value):m.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:m.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return s(e)?m.some(e):m.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}m.singletonNone=new m(!1);const h=Array.prototype.indexOf,f=Array.prototype.push,p=e=>{const t=[];for(let n=0,o=e.length;n<o;++n){if(!l(e[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+e);f.apply(t,e[n])}return t},k=(e,t)=>{for(let n=0;n<e.length;n++){const o=t(e[n],n);if(o.isSome())return o}return m.none()},v=(e,t,n=d)=>e.exists((e=>n(e,t))),x=e=>{const t=[],n=e=>{t.push(e)};for(let t=0;t<e.length;t++)e[t].each(n);return t},y=(e,t)=>e?m.some(t):m.none(),b=e=>t=>t.options.get(e),_=b("link_assume_external_targets"),w=b("link_context_toolbar"),C=b("link_list"),O=b("link_default_target"),N=b("link_default_protocol"),A=b("link_target_list"),S=b("link_rel_list"),E=b("link_class_list"),T=b("link_title"),R=b("allow_unsafe_link_target"),P=b("link_quicklink");var L=tinymce.util.Tools.resolve("tinymce.util.Tools");const M=e=>o(e.value)?e.value:"",D=(e,t)=>{const n=[];return L.each(e,(e=>{const r=(e=>o(e.text)?e.text:o(e.title)?e.title:"")(e);if(void 0!==e.menu){const o=D(e.menu,t);n.push({text:r,items:o})}else{const o=t(e);n.push({text:r,value:o})}})),n},B=(e=M)=>t=>m.from(t).map((t=>D(t,e))),I=e=>B(M)(e),j=B,K=(e,t)=>n=>({name:e,type:"listbox",label:t,items:n}),U=M,q=Object.keys,F=Object.hasOwnProperty,V=(e,t)=>F.call(e,t);var $=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),z=tinymce.util.Tools.resolve("tinymce.util.URI");const G=e=>s(e)&&"a"===e.nodeName.toLowerCase(),H=e=>G(e)&&!!Q(e),J=(e,t)=>{if(e.collapsed)return[];{const n=e.cloneContents(),o=n.firstChild,r=new $(o,n),l=[];let i=o;do{t(i)&&l.push(i)}while(i=r.next());return l}},W=e=>/^\w+:/i.test(e),Q=e=>{var t,n;return null!==(n=null!==(t=e.getAttribute("data-mce-href"))&&void 0!==t?t:e.getAttribute("href"))&&void 0!==n?n:""},X=(e,t)=>{const n=["noopener"],o=e?e.split(/\s+/):[],r=e=>e.filter((e=>-1===L.inArray(n,e))),l=t?(e=>(e=r(e)).length>0?e.concat(n):n)(o):r(o);return l.length>0?(e=>L.trim(e.sort().join(" ")))(l):""},Y=(e,t)=>(t=t||te(e.selection.getRng())[0]||e.selection.getNode(),le(t)?m.from(e.dom.select("a[href]",t)[0]):m.from(e.dom.getParent(t,"a[href]"))),Z=(e,t)=>Y(e,t).isSome(),ee=(e,t)=>t.fold((()=>e.getContent({format:"text"})),(e=>e.innerText||e.textContent||"")).replace(/\uFEFF/g,""),te=e=>J(e,H),ne=e=>L.grep(e,H),oe=e=>ne(e).length>0,re=e=>{const t=e.schema.getTextInlineElements();if(Y(e).exists((e=>e.hasAttribute("data-mce-block"))))return!1;const n=e.selection.getRng();return!!n.collapsed||0===J(n,(e=>1===e.nodeType&&!G(e)&&!V(t,e.nodeName.toLowerCase()))).length},le=e=>s(e)&&"FIGURE"===e.nodeName&&/\bimage\b/i.test(e.className),ie=(e,t,n)=>{const o=e.selection.getNode(),r=Y(e,o),l=((e,t)=>{const n={...t};if(0===S(e).length&&!R(e)){const e=X(n.rel,"_blank"===n.target);n.rel=e||null}return m.from(n.target).isNone()&&!1===A(e)&&(n.target=O(e)),n.href=((e,t)=>"http"!==t&&"https"!==t||W(e)?e:t+"://"+e)(n.href,_(e)),n})(e,(e=>{return t=["title","rel","class","target"],n=(t,n)=>(e[n].each((e=>{t[n]=e.length>0?e:null})),t),o={href:e.href},((e,t)=>{for(let n=0,o=e.length;n<o;n++)t(e[n],n)})(t,((e,t)=>{o=n(o,e)})),o;var t,n,o})(n));e.undoManager.transact((()=>{n.href===t.href&&t.attach(),r.fold((()=>{((e,t,n,o)=>{const r=e.dom;le(t)?ge(r,t,o):n.fold((()=>{e.execCommand("mceInsertLink",!1,o)}),(t=>{e.insertContent(r.createHTML("a",o,r.encode(t)))}))})(e,o,n.text,l)}),(t=>{e.focus(),((e,t,n,o)=>{n.each((e=>{V(t,"innerText")?t.innerText=e:t.textContent=e})),e.dom.setAttribs(t,o),e.selection.select(t)})(e,t,n.text,l)}))}))},ae=e=>{const{class:t,href:n,rel:o,target:r,text:l,title:a}=e;return((e,t)=>{const n={};var o;return((e,t,n,o)=>{((e,t)=>{const n=q(e);for(let o=0,r=n.length;o<r;o++){const r=n[o];t(e[r],r)}})(e,((e,r)=>{(t(e,r)?n:o)(e,r)}))})(e,((e,t)=>!1===i(e)),(o=n,(e,t)=>{o[t]=e}),g),n})({class:t.getOrNull(),href:n,rel:o.getOrNull(),target:r.getOrNull(),text:l.getOrNull(),title:a.getOrNull()})},se=(e,t,n)=>{const o=((e,t)=>{const n=e.options.get,o={allow_html_data_urls:n("allow_html_data_urls"),allow_script_urls:n("allow_script_urls"),allow_svg_data_urls:n("allow_svg_data_urls")},r=t.href;return{...t,href:z.isDomSafe(r,"a",o)?r:""}})(e,n);e.hasPlugin("rtc",!0)?e.execCommand("createlink",!1,ae(o)):ie(e,t,o)},ce=e=>{e.hasPlugin("rtc",!0)?e.execCommand("unlink"):(e=>{e.undoManager.transact((()=>{const t=e.selection.getNode();le(t)?ue(e,t):(e=>{const t=e.dom,n=e.selection,o=n.getBookmark(),r=n.getRng().cloneRange(),l=t.getParent(r.startContainer,"a[href]",e.getBody()),i=t.getParent(r.endContainer,"a[href]",e.getBody());l&&r.setStartBefore(l),i&&r.setEndAfter(i),n.setRng(r),e.execCommand("unlink"),n.moveToBookmark(o)})(e),e.focus()}))})(e)},ue=(e,t)=>{var n;const o=e.dom.select("img",t)[0];if(o){const r=e.dom.getParents(o,"a[href]",t)[0];r&&(null===(n=r.parentNode)||void 0===n||n.insertBefore(o,r),e.dom.remove(r))}},ge=(e,t,n)=>{var o;const r=e.select("img",t)[0];if(r){const t=e.create("a",n);null===(o=r.parentNode)||void 0===o||o.insertBefore(t,r),t.appendChild(r)}},de=(e,t)=>k(t,(t=>(e=>{return V(t=e,n="items")&&void 0!==t[n]&&null!==t[n];var t,n})(t)?de(e,t.items):y(t.value===e,t))),me=(e,t)=>{const n={text:e.text,title:e.title},o=(e,o)=>{const r=(l=t,i=o,"link"===i?l.link:"anchor"===i?l.anchor:m.none()).getOr([]);var l,i;return((e,t,n,o)=>{const r=o[t],l=e.length>0;return void 0!==r?de(r,n).map((t=>({url:{value:t.value,meta:{text:l?e:t.text,attach:g}},text:l?e:t.text}))):m.none()})(n.text,o,r,e)};return{onChange:(e,t)=>{const r=t.name;return"url"===r?(e=>{const t=(o=e.url,y(n.text.length<=0,m.from(null===(r=o.meta)||void 0===r?void 0:r.text).getOr(o.value)));var o,r;const l=(e=>{var t;return y(n.title.length<=0,m.from(null===(t=e.meta)||void 0===t?void 0:t.title).getOr(""))})(e.url);return t.isSome()||l.isSome()?m.some({...t.map((e=>({text:e}))).getOr({}),...l.map((e=>({title:e}))).getOr({})}):m.none()})(e()):((e,t)=>h.call(e,t))(["anchor","link"],r)>-1?o(e(),r):"text"===r||"title"===r?(n[r]=e()[r],m.none()):m.none()}}};var he=tinymce.util.Tools.resolve("tinymce.util.Delay");const fe=e=>{const t=e.href;return t.indexOf("@")>0&&-1===t.indexOf("/")&&-1===t.indexOf("mailto:")?m.some({message:"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",preprocess:e=>({...e,href:"mailto:"+t})}):m.none()},pe=(e,t)=>n=>{const o=n.href;return 1===e&&!W(o)||0===e&&/^\s*www(\.|\d\.)/i.test(o)?m.some({message:`The URL you entered seems to be an external link. Do you want to add the required ${t}:// prefix?`,preprocess:e=>({...e,href:t+"://"+o})}):m.none()},ke=e=>{const t=e.dom.select("a:not([href])"),n=p(((e,t)=>{const n=e.length,o=new Array(n);for(let r=0;r<n;r++){const n=e[r];o[r]=t(n,r)}return o})(t,(e=>{const t=e.name||e.id;return t?[{text:t,value:"#"+t}]:[]})));return n.length>0?m.some([{text:"None",value:""}].concat(n)):m.none()},ve=e=>{const t=E(e);return t.length>0?I(t):m.none()},xe=e=>{try{return m.some(JSON.parse(e))}catch(e){return m.none()}},ye=(e,t)=>{const n=S(e);if(n.length>0){const o=v(t,"_blank"),r=e=>X(U(e),o);return(!1===R(e)?j(r):I)(n)}return m.none()},be=[{text:"Current window",value:""},{text:"New window",value:"_blank"}],_e=e=>{const t=A(e);return l(t)?I(t).orThunk((()=>m.some(be))):!1===t?m.none():m.some(be)},we=(e,t,n)=>{const o=e.getAttrib(t,n);return null!==o&&o.length>0?m.some(o):m.none()},Ce=(e,t)=>(e=>{const t=t=>e.convertURL(t.value||t.url||"","href"),n=C(e);return new Promise((e=>{o(n)?fetch(n).then((e=>e.ok?e.text().then(xe):Promise.reject())).then(e,(()=>e(m.none()))):c(n)?n((t=>e(m.some(t)))):e(m.from(n))})).then((e=>e.bind(j(t)).map((e=>e.length>0?[{text:"None",value:""}].concat(e):e))))})(e).then((n=>{const o=((e,t)=>{const n=e.dom,o=re(e)?m.some(ee(e.selection,t)):m.none(),r=t.bind((e=>m.from(n.getAttrib(e,"href")))),l=t.bind((e=>m.from(n.getAttrib(e,"target")))),i=t.bind((e=>we(n,e,"rel"))),a=t.bind((e=>we(n,e,"class")));return{url:r,text:o,title:t.bind((e=>we(n,e,"title"))),target:l,rel:i,linkClass:a}})(e,t);return{anchor:o,catalogs:{targets:_e(e),rels:ye(e,o.target),classes:ve(e),anchor:ke(e),link:n},optNode:t,flags:{titleEnabled:T(e)}}})),Oe=e=>{const t=(e=>{const t=Y(e);return Ce(e,t)})(e);t.then((t=>{const n=((e,t)=>n=>{const o=n.getData();if(!o.url.value)return ce(e),void n.close();const r=e=>m.from(o[e]).filter((n=>!v(t.anchor[e],n))),l={href:o.url.value,text:r("text"),target:r("target"),rel:r("rel"),class:r("linkClass"),title:r("title")},i={href:o.url.value,attach:void 0!==o.url.meta&&o.url.meta.attach?o.url.meta.attach:g};((e,t)=>k([fe,pe(_(e),N(e))],(e=>e(t))).fold((()=>Promise.resolve(t)),(n=>new Promise((o=>{((e,t,n)=>{const o=e.selection.getRng();he.setEditorTimeout(e,(()=>{e.windowManager.confirm(t,(t=>{e.selection.setRng(o),n(t)}))}))})(e,n.message,(e=>{o(e?n.preprocess(t):t)}))})))))(e,l).then((t=>{se(e,i,t)})),n.close()})(e,t);return((e,t,n)=>{const o=e.anchor.text.map((()=>({name:"text",type:"input",label:"Text to display"}))).toArray(),r=e.flags.titleEnabled?[{name:"title",type:"input",label:"Title"}]:[],l=((e,t)=>{const n=e.anchor,o=n.url.getOr("");return{url:{value:o,meta:{original:{value:o}}},text:n.text.getOr(""),title:n.title.getOr(""),anchor:o,link:o,rel:n.rel.getOr(""),target:n.target.or(t).getOr(""),linkClass:n.linkClass.getOr("")}})(e,m.from(O(n))),i=e.catalogs,a=me(l,i);return{title:"Insert/Edit Link",size:"normal",body:{type:"panel",items:p([[{name:"url",type:"urlinput",filetype:"file",label:"URL",picker_text:"Browse links"}],o,r,x([i.anchor.map(K("anchor","Anchors")),i.rels.map(K("rel","Rel")),i.targets.map(K("target","Open link in...")),i.link.map(K("link","Link list")),i.classes.map(K("linkClass","Class"))])])},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:l,onChange:(e,{name:t})=>{a.onChange(e.getData,{name:t}).each((t=>{e.setData(t)}))},onSubmit:t}})(t,n,e)})).then((t=>{e.windowManager.open(t)}))};var Ne=tinymce.util.Tools.resolve("tinymce.util.VK");const Ae=(e,t)=>e.dom.getParent(t,"a[href]"),Se=e=>Ae(e,e.selection.getStart()),Ee=(e,t)=>{if(t){const n=Q(t);if(/^#/.test(n)){const t=e.dom.select(n);t.length&&e.selection.scrollIntoView(t[0],!0)}else(e=>{const t=document.createElement("a");t.target="_blank",t.href=e,t.rel="noreferrer noopener";const n=document.createEvent("MouseEvents");n.initMouseEvent("click",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),((e,t)=>{document.body.appendChild(e),e.dispatchEvent(t),document.body.removeChild(e)})(t,n)})(t.href)}},Te=e=>()=>{e.execCommand("mceLink",!1,{dialog:!0})},Re=e=>()=>{Ee(e,Se(e))},Pe=(e,t)=>(e.on("NodeChange",t),()=>e.off("NodeChange",t)),Le=e=>t=>{const n=()=>{t.setActive(!e.mode.isReadOnly()&&Z(e,e.selection.getNode())),t.setEnabled(e.selection.isEditable())};return n(),Pe(e,n)},Me=e=>t=>{const n=()=>{t.setEnabled(e.selection.isEditable())};return n(),Pe(e,n)},De=e=>t=>{const n=()=>t.setEnabled((e=>1===(e.selection.isCollapsed()?ne(e.dom.getParents(e.selection.getStart())):te(e.selection.getRng())).length)(e));return n(),Pe(e,n)},Be=e=>t=>{const n=e.dom.getParents(e.selection.getStart()),o=n=>{t.setEnabled((t=>{return oe(t)||(n=e.selection.getRng(),te(n).length>0);var n})(n)&&e.selection.isEditable())};return o(n),Pe(e,(e=>o(e.parents)))};e.add("link",(e=>{(e=>{const t=e.options.register;t("link_assume_external_targets",{processor:e=>{const t=o(e)||a(e);return t?!0===e?{value:1,valid:t}:"http"===e||"https"===e?{value:e,valid:t}:{value:0,valid:t}:{valid:!1,message:"Must be a string or a boolean."}},default:!1}),t("link_context_toolbar",{processor:"boolean",default:!1}),t("link_list",{processor:e=>o(e)||c(e)||u(e,r)}),t("link_default_target",{processor:"string"}),t("link_default_protocol",{processor:"string",default:"https"}),t("link_target_list",{processor:e=>a(e)||u(e,r),default:!0}),t("link_rel_list",{processor:"object[]",default:[]}),t("link_class_list",{processor:"object[]",default:[]}),t("link_title",{processor:"boolean",default:!0}),t("allow_unsafe_link_target",{processor:"boolean",default:!1}),t("link_quicklink",{processor:"boolean",default:!1})})(e),(e=>{e.ui.registry.addToggleButton("link",{icon:"link",tooltip:"Insert/edit link",onAction:Te(e),onSetup:Le(e)}),e.ui.registry.addButton("openlink",{icon:"new-tab",tooltip:"Open link",onAction:Re(e),onSetup:De(e)}),e.ui.registry.addButton("unlink",{icon:"unlink",tooltip:"Remove link",onAction:()=>ce(e),onSetup:Be(e)})})(e),(e=>{e.ui.registry.addMenuItem("openlink",{text:"Open link",icon:"new-tab",onAction:Re(e),onSetup:De(e)}),e.ui.registry.addMenuItem("link",{icon:"link",text:"Link...",shortcut:"Meta+K",onSetup:Me(e),onAction:Te(e)}),e.ui.registry.addMenuItem("unlink",{icon:"unlink",text:"Remove link",onAction:()=>ce(e),onSetup:Be(e)})})(e),(e=>{e.ui.registry.addContextMenu("link",{update:t=>e.dom.isEditable(t)?oe(e.dom.getParents(t,"a"))?"link unlink openlink":"link":""})})(e),(e=>{const t=t=>{const n=e.selection.getNode();return t.setEnabled(Z(e,n)),g};e.ui.registry.addContextForm("quicklink",{launch:{type:"contextformtogglebutton",icon:"link",tooltip:"Link",onSetup:Le(e)},label:"Link",predicate:t=>w(e)&&Z(e,t),initValue:()=>Y(e).fold((()=>""),Q),commands:[{type:"contextformtogglebutton",icon:"link",tooltip:"Link",primary:!0,onSetup:t=>{const n=e.selection.getNode();return t.setActive(Z(e,n)),Le(e)(t)},onAction:t=>{const n=t.getValue(),o=(t=>{const n=Y(e),o=re(e);if(n.isNone()&&o){const o=ee(e.selection,n);return y(0===o.length,t)}return m.none()})(n);se(e,{href:n,attach:g},{href:n,text:o,title:m.none(),rel:m.none(),target:m.none(),class:m.none()}),(e=>{e.selection.collapse(!1)})(e),t.hide()}},{type:"contextformbutton",icon:"unlink",tooltip:"Remove link",onSetup:t,onAction:t=>{ce(e),t.hide()}},{type:"contextformbutton",icon:"new-tab",tooltip:"Open link",onSetup:t,onAction:t=>{Re(e)(),t.hide()}}]})})(e),(e=>{e.on("click",(t=>{const n=Ae(e,t.target);n&&Ne.metaKeyPressed(t)&&(t.preventDefault(),Ee(e,n))})),e.on("keydown",(t=>{if(!t.isDefaultPrevented()&&13===t.keyCode&&(e=>!0===e.altKey&&!1===e.shiftKey&&!1===e.ctrlKey&&!1===e.metaKey)(t)){const n=Se(e);n&&(t.preventDefault(),Ee(e,n))}}))})(e),(e=>{e.addCommand("mceLink",((t,n)=>{!0!==(null==n?void 0:n.dialog)&&P(e)?e.dispatch("contexttoolbar-show",{toolbarKey:"quicklink"}):Oe(e)}))})(e),(e=>{e.addShortcut("Meta+K","",(()=>{e.execCommand("mceLink")}))})(e)}))}();
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import{__exports as e}from"../../../../_virtual/plugin6.mjs";var t;function n(){return t||(t=1,function(){var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(n=o=e,r=(l=String).prototype,r.isPrototypeOf(n)||(null===(i=o.constructor)||void 0===i?void 0:i.name)===l.name)?"string":t;var n,r;var o,l,i})(t)===e,n=e=>t=>typeof t===e,r=t("string"),o=t("object"),l=t("array"),i=(a=null,e=>a===e);var a;const s=n("boolean"),c=e=>!(e=>null==e)(e),u=n("function"),g=(e,t)=>{if(l(e)){for(let n=0,r=e.length;n<r;++n)if(!t(e[n]))return!1;return!0}return!1},d=()=>{},m=(e,t)=>e===t;class h{constructor(e,t){this.tag=e,this.value=t}static some(e){return new h(!0,e)}static none(){return h.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?h.some(e(this.value)):h.none()}bind(e){return this.tag?e(this.value):h.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:h.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return c(e)?h.some(e):h.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}h.singletonNone=new h(!1);const f=Array.prototype.indexOf,p=Array.prototype.push,k=(e,t)=>((e,t)=>f.call(e,t))(e,t)>-1,v=e=>{const t=[];for(let n=0,r=e.length;n<r;++n){if(!l(e[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+e);p.apply(t,e[n])}return t},x=(e,t)=>v(((e,t)=>{const n=e.length,r=new Array(n);for(let o=0;o<n;o++){const n=e[o];r[o]=t(n,o)}return r})(e,t)),y=(e,t)=>{for(let n=0;n<e.length;n++){const r=t(e[n],n);if(r.isSome())return r}return h.none()},b=(e,t,n=m)=>e.exists((e=>n(e,t))),_=e=>{const t=[],n=e=>{t.push(e)};for(let t=0;t<e.length;t++)e[t].each(n);return t},w=(e,t)=>e?h.some(t):h.none(),C=e=>t=>t.options.get(e),O=C("link_assume_external_targets"),N=C("link_context_toolbar"),A=C("link_list"),S=C("link_default_target"),E=C("link_default_protocol"),T=C("link_target_list"),R=C("link_rel_list"),P=C("link_class_list"),L=C("link_title"),M=C("allow_unsafe_link_target"),D=C("link_quicklink");var U=tinymce.util.Tools.resolve("tinymce.util.Tools");const B=e=>r(e.value)?e.value:"",j=(e,t)=>{const n=[];return U.each(e,(e=>{const o=(e=>r(e.text)?e.text:r(e.title)?e.title:"")(e);if(void 0!==e.menu){const r=j(e.menu,t);n.push({text:o,items:r})}else{const r=t(e);n.push({text:o,value:r})}})),n},I=(e=B)=>t=>h.from(t).map((t=>j(t,e))),K={sanitize:e=>I(B)(e),sanitizeWith:I,createUi:(e,t)=>n=>({name:e,type:"listbox",label:t,items:n}),getValue:B},z=Object.keys,q=Object.hasOwnProperty,V=(e,t,n,r)=>{((e,t)=>{const n=z(e);for(let r=0,o=n.length;r<o;r++){const o=n[r];t(e[o],o)}})(e,((e,o)=>{(t(e,o)?n:r)(e,o)}))},F=(e,t)=>q.call(e,t);var W=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),$=tinymce.util.Tools.resolve("tinymce.util.URI");const G=e=>c(e)&&"a"===e.nodeName.toLowerCase(),H=e=>G(e)&&!!X(e),J=(e,t)=>{if(e.collapsed)return[];{const n=e.cloneContents(),r=n.firstChild,o=new W(r,n),l=[];let i=r;do{t(i)&&l.push(i)}while(i=o.next());return l}},Q=e=>/^\w+:/i.test(e),X=e=>{var t,n;return null!==(n=null!==(t=e.getAttribute("data-mce-href"))&&void 0!==t?t:e.getAttribute("href"))&&void 0!==n?n:""},Y=(e,t)=>{const n=["noopener"],r=e?e.split(/\s+/):[],o=e=>e.filter((e=>-1===U.inArray(n,e))),l=t?(e=>(e=o(e)).length>0?e.concat(n):n)(r):o(r);return l.length>0?(e=>U.trim(e.sort().join(" ")))(l):""},Z=(e,t)=>(t=t||ne(e.selection.getRng())[0]||e.selection.getNode(),ie(t)?h.from(e.dom.select("a[href]",t)[0]):h.from(e.dom.getParent(t,"a[href]"))),ee=(e,t)=>Z(e,t).isSome(),te=(e,t)=>(e=>e.replace(/\uFEFF/g,""))(t.fold((()=>e.getContent({format:"text"})),(e=>e.innerText||e.textContent||""))),ne=e=>J(e,H),re=e=>U.grep(e,H),oe=e=>re(e).length>0,le=e=>{const t=e.schema.getTextInlineElements(),n=e=>1===e.nodeType&&!G(e)&&!F(t,e.nodeName.toLowerCase());if(Z(e).exists((e=>e.hasAttribute("data-mce-block"))))return!1;const r=e.selection.getRng();if(r.collapsed)return!0;return 0===J(r,n).length},ie=e=>c(e)&&"FIGURE"===e.nodeName&&/\bimage\b/i.test(e.className),ae=(e,t)=>{const n={...t};if(0===R(e).length&&!M(e)){const e=Y(n.rel,"_blank"===n.target);n.rel=e||null}return h.from(n.target).isNone()&&!1===T(e)&&(n.target=S(e)),n.href=((e,t)=>"http"!==t&&"https"!==t||Q(e)?e:t+"://"+e)(n.href,O(e)),n},se=(e,t,n)=>{const r=e.selection.getNode(),o=Z(e,r),l=ae(e,(e=>{return t=["title","rel","class","target"],n=(t,n)=>(e[n].each((e=>{t[n]=e.length>0?e:null})),t),r={href:e.href},((e,t)=>{for(let n=0,r=e.length;n<r;n++)t(e[n],n)})(t,((e,t)=>{r=n(r,e,t)})),r;var t,n,r})(n));e.undoManager.transact((()=>{n.href===t.href&&t.attach(),o.fold((()=>{((e,t,n,r)=>{const o=e.dom;ie(t)?me(o,t,r):n.fold((()=>{e.execCommand("mceInsertLink",!1,r)}),(t=>{e.insertContent(o.createHTML("a",r,o.encode(t)))}))})(e,r,n.text,l)}),(t=>{e.focus(),((e,t,n,r)=>{n.each((e=>{F(t,"innerText")?t.innerText=e:t.textContent=e})),e.dom.setAttribs(t,r),e.selection.select(t)})(e,t,n.text,l)}))}))},ce=e=>{const{class:t,href:n,rel:r,target:o,text:l,title:a}=e;return((e,t)=>{const n={};var r;return V(e,t,(r=n,(e,t)=>{r[t]=e}),d),n})({class:t.getOrNull(),href:n,rel:r.getOrNull(),target:o.getOrNull(),text:l.getOrNull(),title:a.getOrNull()},((e,t)=>!1===i(e)))},ue=(e,t,n)=>{const r=((e,t)=>{const n=e.options.get,r={allow_html_data_urls:n("allow_html_data_urls"),allow_script_urls:n("allow_script_urls"),allow_svg_data_urls:n("allow_svg_data_urls")},o=t.href;return{...t,href:$.isDomSafe(o,"a",r)?o:""}})(e,n);e.hasPlugin("rtc",!0)?e.execCommand("createlink",!1,ce(r)):se(e,t,r)},ge=e=>{e.hasPlugin("rtc",!0)?e.execCommand("unlink"):(e=>{e.undoManager.transact((()=>{const t=e.selection.getNode();ie(t)?de(e,t):(e=>{const t=e.dom,n=e.selection,r=n.getBookmark(),o=n.getRng().cloneRange(),l=t.getParent(o.startContainer,"a[href]",e.getBody()),i=t.getParent(o.endContainer,"a[href]",e.getBody());l&&o.setStartBefore(l),i&&o.setEndAfter(i),n.setRng(o),e.execCommand("unlink"),n.moveToBookmark(r)})(e),e.focus()}))})(e)},de=(e,t)=>{var n;const r=e.dom.select("img",t)[0];if(r){const o=e.dom.getParents(r,"a[href]",t)[0];o&&(null===(n=o.parentNode)||void 0===n||n.insertBefore(r,o),e.dom.remove(o))}},me=(e,t,n)=>{var r;const o=e.select("img",t)[0];if(o){const t=e.create("a",n);null===(r=o.parentNode)||void 0===r||r.insertBefore(t,o),t.appendChild(o)}},he=e=>{return F(t=e,n="items")&&void 0!==t[n]&&null!==t[n];var t,n},fe=(e,t)=>y(t,(t=>he(t)?fe(e,t.items):w(t.value===e,t))),pe=(e,t,n,r)=>{const o=r[t],l=e.length>0;return void 0!==o?fe(o,n).map((t=>({url:{value:t.value,meta:{text:l?e:t.text,attach:d}},text:l?e:t.text}))):h.none()},ke=(e,t)=>{const n={text:e.text,title:e.title},r=e=>{const t=(r=e.url,w(n.text.length<=0,h.from(null===(o=r.meta)||void 0===o?void 0:o.text).getOr(r.value)));var r,o;const l=(e=>{var t;return w(n.title.length<=0,h.from(null===(t=e.meta)||void 0===t?void 0:t.title).getOr(""))})(e.url);return t.isSome()||l.isSome()?h.some({...t.map((e=>({text:e}))).getOr({}),...l.map((e=>({title:e}))).getOr({})}):h.none()},o=(e,r)=>{const o=(l=t,i=r,"link"===i?l.link:"anchor"===i?l.anchor:h.none()).getOr([]);var l,i;return pe(n.text,r,o,e)};return{onChange:(e,t)=>{const l=t.name;return"url"===l?r(e()):k(["anchor","link"],l)?o(e(),l):"text"===l||"title"===l?(n[l]=e()[l],h.none()):h.none()}}};var ve=tinymce.util.Tools.resolve("tinymce.util.Delay");const xe=e=>{const t=e.href;return t.indexOf("@")>0&&-1===t.indexOf("/")&&-1===t.indexOf("mailto:")?h.some({message:"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",preprocess:e=>({...e,href:"mailto:"+t})}):h.none()},ye=(e,t)=>n=>{const r=n.href;return 1===e&&!Q(r)||0===e&&/^\s*www(\.|\d\.)/i.test(r)?h.some({message:`The URL you entered seems to be an external link. Do you want to add the required ${t}:// prefix?`,preprocess:e=>({...e,href:t+"://"+r})}):h.none()},be=(e,t)=>y([xe,ye(O(e),E(e))],(e=>e(t))).fold((()=>Promise.resolve(t)),(n=>new Promise((r=>{((e,t,n)=>{const r=e.selection.getRng();ve.setEditorTimeout(e,(()=>{e.windowManager.confirm(t,(t=>{e.selection.setRng(r),n(t)}))}))})(e,n.message,(e=>{r(e?n.preprocess(t):t)}))})))),_e=e=>{const t=e.dom.select("a:not([href])"),n=x(t,(e=>{const t=e.name||e.id;return t?[{text:t,value:"#"+t}]:[]}));return n.length>0?h.some([{text:"None",value:""}].concat(n)):h.none()},we=e=>{const t=P(e);return t.length>0?K.sanitize(t):h.none()},Ce=e=>{try{return h.some(JSON.parse(e))}catch(e){return h.none()}},Oe=e=>{const t=t=>e.convertURL(t.value||t.url||"","href"),n=A(e);return new Promise((e=>{r(n)?fetch(n).then((e=>e.ok?e.text().then(Ce):Promise.reject())).then(e,(()=>e(h.none()))):u(n)?n((t=>e(h.some(t)))):e(h.from(n))})).then((e=>e.bind(K.sanitizeWith(t)).map((e=>{if(e.length>0){return[{text:"None",value:""}].concat(e)}return e}))))},Ne=(e,t)=>{const n=R(e);if(n.length>0){const r=b(t,"_blank"),o=e=>Y(K.getValue(e),r);return(!1===M(e)?K.sanitizeWith(o):K.sanitize)(n)}return h.none()},Ae=[{text:"Current window",value:""},{text:"New window",value:"_blank"}],Se=e=>{const t=T(e);return l(t)?K.sanitize(t).orThunk((()=>h.some(Ae))):!1===t?h.none():h.some(Ae)},Ee=(e,t,n)=>{const r=e.getAttrib(t,n);return null!==r&&r.length>0?h.some(r):h.none()},Te=(e,t)=>Oe(e).then((n=>{const r=((e,t)=>{const n=e.dom,r=le(e)?h.some(te(e.selection,t)):h.none(),o=t.bind((e=>h.from(n.getAttrib(e,"href")))),l=t.bind((e=>h.from(n.getAttrib(e,"target")))),i=t.bind((e=>Ee(n,e,"rel"))),a=t.bind((e=>Ee(n,e,"class")));return{url:o,text:r,title:t.bind((e=>Ee(n,e,"title"))),target:l,rel:i,linkClass:a}})(e,t);return{anchor:r,catalogs:{targets:Se(e),rels:Ne(e,r.target),classes:we(e),anchor:_e(e),link:n},optNode:t,flags:{titleEnabled:L(e)}}})),Re=e=>{const t=(e=>{const t=Z(e);return Te(e,t)})(e);t.then((t=>{const n=((e,t)=>n=>{const r=n.getData();if(!r.url.value)return ge(e),void n.close();const o=e=>h.from(r[e]).filter((n=>!b(t.anchor[e],n))),l={href:r.url.value,text:o("text"),target:o("target"),rel:o("rel"),class:o("linkClass"),title:o("title")},i={href:r.url.value,attach:void 0!==r.url.meta&&r.url.meta.attach?r.url.meta.attach:d};be(e,l).then((t=>{ue(e,i,t)})),n.close()})(e,t);return((e,t,n)=>{const r=e.anchor.text.map((()=>({name:"text",type:"input",label:"Text to display"}))).toArray(),o=e.flags.titleEnabled?[{name:"title",type:"input",label:"Title"}]:[],l=((e,t)=>{const n=e.anchor,r=n.url.getOr("");return{url:{value:r,meta:{original:{value:r}}},text:n.text.getOr(""),title:n.title.getOr(""),anchor:r,link:r,rel:n.rel.getOr(""),target:n.target.or(t).getOr(""),linkClass:n.linkClass.getOr("")}})(e,h.from(S(n))),i=e.catalogs,a=ke(l,i);return{title:"Insert/Edit Link",size:"normal",body:{type:"panel",items:v([[{name:"url",type:"urlinput",filetype:"file",label:"URL",picker_text:"Browse links"}],r,o,_([i.anchor.map(K.createUi("anchor","Anchors")),i.rels.map(K.createUi("rel","Rel")),i.targets.map(K.createUi("target","Open link in...")),i.link.map(K.createUi("link","Link list")),i.classes.map(K.createUi("linkClass","Class"))])])},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:l,onChange:(e,{name:t})=>{a.onChange(e.getData,{name:t}).each((t=>{e.setData(t)}))},onSubmit:t}})(t,n,e)})).then((t=>{e.windowManager.open(t)}))};var Pe=tinymce.util.Tools.resolve("tinymce.util.VK");const Le=e=>{const t=document.createElement("a");t.target="_blank",t.href=e,t.rel="noreferrer noopener";const n=document.createEvent("MouseEvents");n.initMouseEvent("click",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),((e,t)=>{document.body.appendChild(e),e.dispatchEvent(t),document.body.removeChild(e)})(t,n)},Me=(e,t)=>e.dom.getParent(t,"a[href]"),De=e=>Me(e,e.selection.getStart()),Ue=(e,t)=>{if(t){const n=X(t);if(/^#/.test(n)){const t=e.dom.select(n);t.length&&e.selection.scrollIntoView(t[0],!0)}else Le(t.href)}},Be=e=>()=>{e.execCommand("mceLink",!1,{dialog:!0})},je=e=>()=>{Ue(e,De(e))},Ie=(e,t)=>(e.on("NodeChange",t),()=>e.off("NodeChange",t)),Ke=e=>t=>{const n=()=>{t.setActive(!e.mode.isReadOnly()&&ee(e,e.selection.getNode())),t.setEnabled(e.selection.isEditable())};return n(),Ie(e,n)},ze=e=>t=>{const n=()=>{t.setEnabled(e.selection.isEditable())};return n(),Ie(e,n)},qe=e=>t=>{const n=()=>t.setEnabled((e=>1===(e.selection.isCollapsed()?re(e.dom.getParents(e.selection.getStart())):ne(e.selection.getRng())).length)(e));return n(),Ie(e,n)},Ve=e=>t=>{const n=t=>{return oe(t)||(n=e.selection.getRng(),ne(n).length>0);var n},r=e.dom.getParents(e.selection.getStart()),o=r=>{t.setEnabled(n(r)&&e.selection.isEditable())};return o(r),Ie(e,(e=>o(e.parents)))},Fe=e=>{const t=t=>{const n=e.selection.getNode();return t.setEnabled(ee(e,n)),d};e.ui.registry.addContextForm("quicklink",{launch:{type:"contextformtogglebutton",icon:"link",tooltip:"Link",onSetup:Ke(e)},label:"Link",predicate:t=>N(e)&&ee(e,t),initValue:()=>{return Z(e).fold((t="",()=>t),X);var t},commands:[{type:"contextformtogglebutton",icon:"link",tooltip:"Link",primary:!0,onSetup:t=>{const n=e.selection.getNode();return t.setActive(ee(e,n)),Ke(e)(t)},onAction:t=>{const n=t.getValue(),r=(t=>{const n=Z(e),r=le(e);if(n.isNone()&&r){const r=te(e.selection,n);return w(0===r.length,t)}return h.none()})(n);ue(e,{href:n,attach:d},{href:n,text:r,title:h.none(),rel:h.none(),target:h.none(),class:h.none()}),(e=>{e.selection.collapse(!1)})(e),t.hide()}},{type:"contextformbutton",icon:"unlink",tooltip:"Remove link",onSetup:t,onAction:t=>{ge(e),t.hide()}},{type:"contextformbutton",icon:"new-tab",tooltip:"Open link",onSetup:t,onAction:t=>{je(e)(),t.hide()}}]})};e.add("link",(e=>{(e=>{const t=e.options.register;t("link_assume_external_targets",{processor:e=>{const t=r(e)||s(e);return t?!0===e?{value:1,valid:t}:"http"===e||"https"===e?{value:e,valid:t}:{value:0,valid:t}:{valid:!1,message:"Must be a string or a boolean."}},default:!1}),t("link_context_toolbar",{processor:"boolean",default:!1}),t("link_list",{processor:e=>r(e)||u(e)||g(e,o)}),t("link_default_target",{processor:"string"}),t("link_default_protocol",{processor:"string",default:"https"}),t("link_target_list",{processor:e=>s(e)||g(e,o),default:!0}),t("link_rel_list",{processor:"object[]",default:[]}),t("link_class_list",{processor:"object[]",default:[]}),t("link_title",{processor:"boolean",default:!0}),t("allow_unsafe_link_target",{processor:"boolean",default:!1}),t("link_quicklink",{processor:"boolean",default:!1})})(e),(e=>{e.ui.registry.addToggleButton("link",{icon:"link",tooltip:"Insert/edit link",onAction:Be(e),onSetup:Ke(e)}),e.ui.registry.addButton("openlink",{icon:"new-tab",tooltip:"Open link",onAction:je(e),onSetup:qe(e)}),e.ui.registry.addButton("unlink",{icon:"unlink",tooltip:"Remove link",onAction:()=>ge(e),onSetup:Ve(e)})})(e),(e=>{e.ui.registry.addMenuItem("openlink",{text:"Open link",icon:"new-tab",onAction:je(e),onSetup:qe(e)}),e.ui.registry.addMenuItem("link",{icon:"link",text:"Link...",shortcut:"Meta+K",onSetup:ze(e),onAction:Be(e)}),e.ui.registry.addMenuItem("unlink",{icon:"unlink",text:"Remove link",onAction:()=>ge(e),onSetup:Ve(e)})})(e),(e=>{e.ui.registry.addContextMenu("link",{update:t=>e.dom.isEditable(t)?oe(e.dom.getParents(t,"a"))?"link unlink openlink":"link":""})})(e),Fe(e),(e=>{e.on("click",(t=>{const n=Me(e,t.target);n&&Pe.metaKeyPressed(t)&&(t.preventDefault(),Ue(e,n))})),e.on("keydown",(t=>{if(!t.isDefaultPrevented()&&13===t.keyCode&&(e=>!0===e.altKey&&!1===e.shiftKey&&!1===e.ctrlKey&&!1===e.metaKey)(t)){const n=De(e);n&&(t.preventDefault(),Ue(e,n))}}))})(e),(e=>{e.addCommand("mceLink",((t,n)=>{!0!==(null==n?void 0:n.dialog)&&D(e)?e.dispatch("contexttoolbar-show",{toolbarKey:"quicklink"}):Re(e)}))})(e),(e=>{e.addShortcut("Meta+K","",(()=>{e.execCommand("mceLink")}))})(e)}))}()),e}export{n as __require};
|
2
|
+
//# sourceMappingURL=plugin.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"plugin.mjs","sources":["../../../../../../public/tinymce/plugins/link/plugin.js"],"sourcesContent":["/**\n * TinyMCE version 6.8.5 (TBD)\n */\n\n(function () {\n 'use strict';\n\n var global$5 = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n const hasProto = (v, constructor, predicate) => {\n var _a;\n if (predicate(v, constructor.prototype)) {\n return true;\n } else {\n return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;\n }\n };\n const typeOf = x => {\n const t = typeof x;\n if (x === null) {\n return 'null';\n } else if (t === 'object' && Array.isArray(x)) {\n return 'array';\n } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {\n return 'string';\n } else {\n return t;\n }\n };\n const isType = type => value => typeOf(value) === type;\n const isSimpleType = type => value => typeof value === type;\n const eq = t => a => t === a;\n const isString = isType('string');\n const isObject = isType('object');\n const isArray = isType('array');\n const isNull = eq(null);\n const isBoolean = isSimpleType('boolean');\n const isNullable = a => a === null || a === undefined;\n const isNonNullable = a => !isNullable(a);\n const isFunction = isSimpleType('function');\n const isArrayOf = (value, pred) => {\n if (isArray(value)) {\n for (let i = 0, len = value.length; i < len; ++i) {\n if (!pred(value[i])) {\n return false;\n }\n }\n return true;\n }\n return false;\n };\n\n const noop = () => {\n };\n const constant = value => {\n return () => {\n return value;\n };\n };\n const tripleEquals = (a, b) => {\n return a === b;\n };\n\n class Optional {\n constructor(tag, value) {\n this.tag = tag;\n this.value = value;\n }\n static some(value) {\n return new Optional(true, value);\n }\n static none() {\n return Optional.singletonNone;\n }\n fold(onNone, onSome) {\n if (this.tag) {\n return onSome(this.value);\n } else {\n return onNone();\n }\n }\n isSome() {\n return this.tag;\n }\n isNone() {\n return !this.tag;\n }\n map(mapper) {\n if (this.tag) {\n return Optional.some(mapper(this.value));\n } else {\n return Optional.none();\n }\n }\n bind(binder) {\n if (this.tag) {\n return binder(this.value);\n } else {\n return Optional.none();\n }\n }\n exists(predicate) {\n return this.tag && predicate(this.value);\n }\n forall(predicate) {\n return !this.tag || predicate(this.value);\n }\n filter(predicate) {\n if (!this.tag || predicate(this.value)) {\n return this;\n } else {\n return Optional.none();\n }\n }\n getOr(replacement) {\n return this.tag ? this.value : replacement;\n }\n or(replacement) {\n return this.tag ? this : replacement;\n }\n getOrThunk(thunk) {\n return this.tag ? this.value : thunk();\n }\n orThunk(thunk) {\n return this.tag ? this : thunk();\n }\n getOrDie(message) {\n if (!this.tag) {\n throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');\n } else {\n return this.value;\n }\n }\n static from(value) {\n return isNonNullable(value) ? Optional.some(value) : Optional.none();\n }\n getOrNull() {\n return this.tag ? this.value : null;\n }\n getOrUndefined() {\n return this.value;\n }\n each(worker) {\n if (this.tag) {\n worker(this.value);\n }\n }\n toArray() {\n return this.tag ? [this.value] : [];\n }\n toString() {\n return this.tag ? `some(${ this.value })` : 'none()';\n }\n }\n Optional.singletonNone = new Optional(false);\n\n const nativeIndexOf = Array.prototype.indexOf;\n const nativePush = Array.prototype.push;\n const rawIndexOf = (ts, t) => nativeIndexOf.call(ts, t);\n const contains = (xs, x) => rawIndexOf(xs, x) > -1;\n const map = (xs, f) => {\n const len = xs.length;\n const r = new Array(len);\n for (let i = 0; i < len; i++) {\n const x = xs[i];\n r[i] = f(x, i);\n }\n return r;\n };\n const each$1 = (xs, f) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n f(x, i);\n }\n };\n const foldl = (xs, f, acc) => {\n each$1(xs, (x, i) => {\n acc = f(acc, x, i);\n });\n return acc;\n };\n const flatten = xs => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n nativePush.apply(r, xs[i]);\n }\n return r;\n };\n const bind = (xs, f) => flatten(map(xs, f));\n const findMap = (arr, f) => {\n for (let i = 0; i < arr.length; i++) {\n const r = f(arr[i], i);\n if (r.isSome()) {\n return r;\n }\n }\n return Optional.none();\n };\n\n const is = (lhs, rhs, comparator = tripleEquals) => lhs.exists(left => comparator(left, rhs));\n const cat = arr => {\n const r = [];\n const push = x => {\n r.push(x);\n };\n for (let i = 0; i < arr.length; i++) {\n arr[i].each(push);\n }\n return r;\n };\n const someIf = (b, a) => b ? Optional.some(a) : Optional.none();\n\n const option = name => editor => editor.options.get(name);\n const register$1 = editor => {\n const registerOption = editor.options.register;\n registerOption('link_assume_external_targets', {\n processor: value => {\n const valid = isString(value) || isBoolean(value);\n if (valid) {\n if (value === true) {\n return {\n value: 1,\n valid\n };\n } else if (value === 'http' || value === 'https') {\n return {\n value,\n valid\n };\n } else {\n return {\n value: 0,\n valid\n };\n }\n } else {\n return {\n valid: false,\n message: 'Must be a string or a boolean.'\n };\n }\n },\n default: false\n });\n registerOption('link_context_toolbar', {\n processor: 'boolean',\n default: false\n });\n registerOption('link_list', { processor: value => isString(value) || isFunction(value) || isArrayOf(value, isObject) });\n registerOption('link_default_target', { processor: 'string' });\n registerOption('link_default_protocol', {\n processor: 'string',\n default: 'https'\n });\n registerOption('link_target_list', {\n processor: value => isBoolean(value) || isArrayOf(value, isObject),\n default: true\n });\n registerOption('link_rel_list', {\n processor: 'object[]',\n default: []\n });\n registerOption('link_class_list', {\n processor: 'object[]',\n default: []\n });\n registerOption('link_title', {\n processor: 'boolean',\n default: true\n });\n registerOption('allow_unsafe_link_target', {\n processor: 'boolean',\n default: false\n });\n registerOption('link_quicklink', {\n processor: 'boolean',\n default: false\n });\n };\n const assumeExternalTargets = option('link_assume_external_targets');\n const hasContextToolbar = option('link_context_toolbar');\n const getLinkList = option('link_list');\n const getDefaultLinkTarget = option('link_default_target');\n const getDefaultLinkProtocol = option('link_default_protocol');\n const getTargetList = option('link_target_list');\n const getRelList = option('link_rel_list');\n const getLinkClassList = option('link_class_list');\n const shouldShowLinkTitle = option('link_title');\n const allowUnsafeLinkTarget = option('allow_unsafe_link_target');\n const useQuickLink = option('link_quicklink');\n\n var global$4 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n const getValue = item => isString(item.value) ? item.value : '';\n const getText = item => {\n if (isString(item.text)) {\n return item.text;\n } else if (isString(item.title)) {\n return item.title;\n } else {\n return '';\n }\n };\n const sanitizeList = (list, extractValue) => {\n const out = [];\n global$4.each(list, item => {\n const text = getText(item);\n if (item.menu !== undefined) {\n const items = sanitizeList(item.menu, extractValue);\n out.push({\n text,\n items\n });\n } else {\n const value = extractValue(item);\n out.push({\n text,\n value\n });\n }\n });\n return out;\n };\n const sanitizeWith = (extracter = getValue) => list => Optional.from(list).map(list => sanitizeList(list, extracter));\n const sanitize = list => sanitizeWith(getValue)(list);\n const createUi = (name, label) => items => ({\n name,\n type: 'listbox',\n label,\n items\n });\n const ListOptions = {\n sanitize,\n sanitizeWith,\n createUi,\n getValue\n };\n\n const keys = Object.keys;\n const hasOwnProperty = Object.hasOwnProperty;\n const each = (obj, f) => {\n const props = keys(obj);\n for (let k = 0, len = props.length; k < len; k++) {\n const i = props[k];\n const x = obj[i];\n f(x, i);\n }\n };\n const objAcc = r => (x, i) => {\n r[i] = x;\n };\n const internalFilter = (obj, pred, onTrue, onFalse) => {\n each(obj, (x, i) => {\n (pred(x, i) ? onTrue : onFalse)(x, i);\n });\n };\n const filter = (obj, pred) => {\n const t = {};\n internalFilter(obj, pred, objAcc(t), noop);\n return t;\n };\n const has = (obj, key) => hasOwnProperty.call(obj, key);\n const hasNonNullableKey = (obj, key) => has(obj, key) && obj[key] !== undefined && obj[key] !== null;\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.dom.TreeWalker');\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.URI');\n\n const isAnchor = elm => isNonNullable(elm) && elm.nodeName.toLowerCase() === 'a';\n const isLink = elm => isAnchor(elm) && !!getHref(elm);\n const collectNodesInRange = (rng, predicate) => {\n if (rng.collapsed) {\n return [];\n } else {\n const contents = rng.cloneContents();\n const firstChild = contents.firstChild;\n const walker = new global$3(firstChild, contents);\n const elements = [];\n let current = firstChild;\n do {\n if (predicate(current)) {\n elements.push(current);\n }\n } while (current = walker.next());\n return elements;\n }\n };\n const hasProtocol = url => /^\\w+:/i.test(url);\n const getHref = elm => {\n var _a, _b;\n return (_b = (_a = elm.getAttribute('data-mce-href')) !== null && _a !== void 0 ? _a : elm.getAttribute('href')) !== null && _b !== void 0 ? _b : '';\n };\n const applyRelTargetRules = (rel, isUnsafe) => {\n const rules = ['noopener'];\n const rels = rel ? rel.split(/\\s+/) : [];\n const toString = rels => global$4.trim(rels.sort().join(' '));\n const addTargetRules = rels => {\n rels = removeTargetRules(rels);\n return rels.length > 0 ? rels.concat(rules) : rules;\n };\n const removeTargetRules = rels => rels.filter(val => global$4.inArray(rules, val) === -1);\n const newRels = isUnsafe ? addTargetRules(rels) : removeTargetRules(rels);\n return newRels.length > 0 ? toString(newRels) : '';\n };\n const trimCaretContainers = text => text.replace(/\\uFEFF/g, '');\n const getAnchorElement = (editor, selectedElm) => {\n selectedElm = selectedElm || getLinksInSelection(editor.selection.getRng())[0] || editor.selection.getNode();\n if (isImageFigure(selectedElm)) {\n return Optional.from(editor.dom.select('a[href]', selectedElm)[0]);\n } else {\n return Optional.from(editor.dom.getParent(selectedElm, 'a[href]'));\n }\n };\n const isInAnchor = (editor, selectedElm) => getAnchorElement(editor, selectedElm).isSome();\n const getAnchorText = (selection, anchorElm) => {\n const text = anchorElm.fold(() => selection.getContent({ format: 'text' }), anchorElm => anchorElm.innerText || anchorElm.textContent || '');\n return trimCaretContainers(text);\n };\n const getLinksInSelection = rng => collectNodesInRange(rng, isLink);\n const getLinks$1 = elements => global$4.grep(elements, isLink);\n const hasLinks = elements => getLinks$1(elements).length > 0;\n const hasLinksInSelection = rng => getLinksInSelection(rng).length > 0;\n const isOnlyTextSelected = editor => {\n const inlineTextElements = editor.schema.getTextInlineElements();\n const isElement = elm => elm.nodeType === 1 && !isAnchor(elm) && !has(inlineTextElements, elm.nodeName.toLowerCase());\n const isInBlockAnchor = getAnchorElement(editor).exists(anchor => anchor.hasAttribute('data-mce-block'));\n if (isInBlockAnchor) {\n return false;\n }\n const rng = editor.selection.getRng();\n if (!rng.collapsed) {\n const elements = collectNodesInRange(rng, isElement);\n return elements.length === 0;\n } else {\n return true;\n }\n };\n const isImageFigure = elm => isNonNullable(elm) && elm.nodeName === 'FIGURE' && /\\bimage\\b/i.test(elm.className);\n const getLinkAttrs = data => {\n const attrs = [\n 'title',\n 'rel',\n 'class',\n 'target'\n ];\n return foldl(attrs, (acc, key) => {\n data[key].each(value => {\n acc[key] = value.length > 0 ? value : null;\n });\n return acc;\n }, { href: data.href });\n };\n const handleExternalTargets = (href, assumeExternalTargets) => {\n if ((assumeExternalTargets === 'http' || assumeExternalTargets === 'https') && !hasProtocol(href)) {\n return assumeExternalTargets + '://' + href;\n }\n return href;\n };\n const applyLinkOverrides = (editor, linkAttrs) => {\n const newLinkAttrs = { ...linkAttrs };\n if (getRelList(editor).length === 0 && !allowUnsafeLinkTarget(editor)) {\n const newRel = applyRelTargetRules(newLinkAttrs.rel, newLinkAttrs.target === '_blank');\n newLinkAttrs.rel = newRel ? newRel : null;\n }\n if (Optional.from(newLinkAttrs.target).isNone() && getTargetList(editor) === false) {\n newLinkAttrs.target = getDefaultLinkTarget(editor);\n }\n newLinkAttrs.href = handleExternalTargets(newLinkAttrs.href, assumeExternalTargets(editor));\n return newLinkAttrs;\n };\n const updateLink = (editor, anchorElm, text, linkAttrs) => {\n text.each(text => {\n if (has(anchorElm, 'innerText')) {\n anchorElm.innerText = text;\n } else {\n anchorElm.textContent = text;\n }\n });\n editor.dom.setAttribs(anchorElm, linkAttrs);\n editor.selection.select(anchorElm);\n };\n const createLink = (editor, selectedElm, text, linkAttrs) => {\n const dom = editor.dom;\n if (isImageFigure(selectedElm)) {\n linkImageFigure(dom, selectedElm, linkAttrs);\n } else {\n text.fold(() => {\n editor.execCommand('mceInsertLink', false, linkAttrs);\n }, text => {\n editor.insertContent(dom.createHTML('a', linkAttrs, dom.encode(text)));\n });\n }\n };\n const linkDomMutation = (editor, attachState, data) => {\n const selectedElm = editor.selection.getNode();\n const anchorElm = getAnchorElement(editor, selectedElm);\n const linkAttrs = applyLinkOverrides(editor, getLinkAttrs(data));\n editor.undoManager.transact(() => {\n if (data.href === attachState.href) {\n attachState.attach();\n }\n anchorElm.fold(() => {\n createLink(editor, selectedElm, data.text, linkAttrs);\n }, elm => {\n editor.focus();\n updateLink(editor, elm, data.text, linkAttrs);\n });\n });\n };\n const unlinkSelection = editor => {\n const dom = editor.dom, selection = editor.selection;\n const bookmark = selection.getBookmark();\n const rng = selection.getRng().cloneRange();\n const startAnchorElm = dom.getParent(rng.startContainer, 'a[href]', editor.getBody());\n const endAnchorElm = dom.getParent(rng.endContainer, 'a[href]', editor.getBody());\n if (startAnchorElm) {\n rng.setStartBefore(startAnchorElm);\n }\n if (endAnchorElm) {\n rng.setEndAfter(endAnchorElm);\n }\n selection.setRng(rng);\n editor.execCommand('unlink');\n selection.moveToBookmark(bookmark);\n };\n const unlinkDomMutation = editor => {\n editor.undoManager.transact(() => {\n const node = editor.selection.getNode();\n if (isImageFigure(node)) {\n unlinkImageFigure(editor, node);\n } else {\n unlinkSelection(editor);\n }\n editor.focus();\n });\n };\n const unwrapOptions = data => {\n const {\n class: cls,\n href,\n rel,\n target,\n text,\n title\n } = data;\n return filter({\n class: cls.getOrNull(),\n href,\n rel: rel.getOrNull(),\n target: target.getOrNull(),\n text: text.getOrNull(),\n title: title.getOrNull()\n }, (v, _k) => isNull(v) === false);\n };\n const sanitizeData = (editor, data) => {\n const getOption = editor.options.get;\n const uriOptions = {\n allow_html_data_urls: getOption('allow_html_data_urls'),\n allow_script_urls: getOption('allow_script_urls'),\n allow_svg_data_urls: getOption('allow_svg_data_urls')\n };\n const href = data.href;\n return {\n ...data,\n href: global$2.isDomSafe(href, 'a', uriOptions) ? href : ''\n };\n };\n const link = (editor, attachState, data) => {\n const sanitizedData = sanitizeData(editor, data);\n editor.hasPlugin('rtc', true) ? editor.execCommand('createlink', false, unwrapOptions(sanitizedData)) : linkDomMutation(editor, attachState, sanitizedData);\n };\n const unlink = editor => {\n editor.hasPlugin('rtc', true) ? editor.execCommand('unlink') : unlinkDomMutation(editor);\n };\n const unlinkImageFigure = (editor, fig) => {\n var _a;\n const img = editor.dom.select('img', fig)[0];\n if (img) {\n const a = editor.dom.getParents(img, 'a[href]', fig)[0];\n if (a) {\n (_a = a.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(img, a);\n editor.dom.remove(a);\n }\n }\n };\n const linkImageFigure = (dom, fig, attrs) => {\n var _a;\n const img = dom.select('img', fig)[0];\n if (img) {\n const a = dom.create('a', attrs);\n (_a = img.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(a, img);\n a.appendChild(img);\n }\n };\n\n const isListGroup = item => hasNonNullableKey(item, 'items');\n const findTextByValue = (value, catalog) => findMap(catalog, item => {\n if (isListGroup(item)) {\n return findTextByValue(value, item.items);\n } else {\n return someIf(item.value === value, item);\n }\n });\n const getDelta = (persistentText, fieldName, catalog, data) => {\n const value = data[fieldName];\n const hasPersistentText = persistentText.length > 0;\n return value !== undefined ? findTextByValue(value, catalog).map(i => ({\n url: {\n value: i.value,\n meta: {\n text: hasPersistentText ? persistentText : i.text,\n attach: noop\n }\n },\n text: hasPersistentText ? persistentText : i.text\n })) : Optional.none();\n };\n const findCatalog = (catalogs, fieldName) => {\n if (fieldName === 'link') {\n return catalogs.link;\n } else if (fieldName === 'anchor') {\n return catalogs.anchor;\n } else {\n return Optional.none();\n }\n };\n const init = (initialData, linkCatalog) => {\n const persistentData = {\n text: initialData.text,\n title: initialData.title\n };\n const getTitleFromUrlChange = url => {\n var _a;\n return someIf(persistentData.title.length <= 0, Optional.from((_a = url.meta) === null || _a === void 0 ? void 0 : _a.title).getOr(''));\n };\n const getTextFromUrlChange = url => {\n var _a;\n return someIf(persistentData.text.length <= 0, Optional.from((_a = url.meta) === null || _a === void 0 ? void 0 : _a.text).getOr(url.value));\n };\n const onUrlChange = data => {\n const text = getTextFromUrlChange(data.url);\n const title = getTitleFromUrlChange(data.url);\n if (text.isSome() || title.isSome()) {\n return Optional.some({\n ...text.map(text => ({ text })).getOr({}),\n ...title.map(title => ({ title })).getOr({})\n });\n } else {\n return Optional.none();\n }\n };\n const onCatalogChange = (data, change) => {\n const catalog = findCatalog(linkCatalog, change).getOr([]);\n return getDelta(persistentData.text, change, catalog, data);\n };\n const onChange = (getData, change) => {\n const name = change.name;\n if (name === 'url') {\n return onUrlChange(getData());\n } else if (contains([\n 'anchor',\n 'link'\n ], name)) {\n return onCatalogChange(getData(), name);\n } else if (name === 'text' || name === 'title') {\n persistentData[name] = getData()[name];\n return Optional.none();\n } else {\n return Optional.none();\n }\n };\n return { onChange };\n };\n const DialogChanges = {\n init,\n getDelta\n };\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.Delay');\n\n const delayedConfirm = (editor, message, callback) => {\n const rng = editor.selection.getRng();\n global$1.setEditorTimeout(editor, () => {\n editor.windowManager.confirm(message, state => {\n editor.selection.setRng(rng);\n callback(state);\n });\n });\n };\n const tryEmailTransform = data => {\n const url = data.href;\n const suggestMailTo = url.indexOf('@') > 0 && url.indexOf('/') === -1 && url.indexOf('mailto:') === -1;\n return suggestMailTo ? Optional.some({\n message: 'The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?',\n preprocess: oldData => ({\n ...oldData,\n href: 'mailto:' + url\n })\n }) : Optional.none();\n };\n const tryProtocolTransform = (assumeExternalTargets, defaultLinkProtocol) => data => {\n const url = data.href;\n const suggestProtocol = assumeExternalTargets === 1 && !hasProtocol(url) || assumeExternalTargets === 0 && /^\\s*www(\\.|\\d\\.)/i.test(url);\n return suggestProtocol ? Optional.some({\n message: `The URL you entered seems to be an external link. Do you want to add the required ${ defaultLinkProtocol }:// prefix?`,\n preprocess: oldData => ({\n ...oldData,\n href: defaultLinkProtocol + '://' + url\n })\n }) : Optional.none();\n };\n const preprocess = (editor, data) => findMap([\n tryEmailTransform,\n tryProtocolTransform(assumeExternalTargets(editor), getDefaultLinkProtocol(editor))\n ], f => f(data)).fold(() => Promise.resolve(data), transform => new Promise(callback => {\n delayedConfirm(editor, transform.message, state => {\n callback(state ? transform.preprocess(data) : data);\n });\n }));\n const DialogConfirms = { preprocess };\n\n const getAnchors = editor => {\n const anchorNodes = editor.dom.select('a:not([href])');\n const anchors = bind(anchorNodes, anchor => {\n const id = anchor.name || anchor.id;\n return id ? [{\n text: id,\n value: '#' + id\n }] : [];\n });\n return anchors.length > 0 ? Optional.some([{\n text: 'None',\n value: ''\n }].concat(anchors)) : Optional.none();\n };\n const AnchorListOptions = { getAnchors };\n\n const getClasses = editor => {\n const list = getLinkClassList(editor);\n if (list.length > 0) {\n return ListOptions.sanitize(list);\n }\n return Optional.none();\n };\n const ClassListOptions = { getClasses };\n\n const parseJson = text => {\n try {\n return Optional.some(JSON.parse(text));\n } catch (err) {\n return Optional.none();\n }\n };\n const getLinks = editor => {\n const extractor = item => editor.convertURL(item.value || item.url || '', 'href');\n const linkList = getLinkList(editor);\n return new Promise(resolve => {\n if (isString(linkList)) {\n fetch(linkList).then(res => res.ok ? res.text().then(parseJson) : Promise.reject()).then(resolve, () => resolve(Optional.none()));\n } else if (isFunction(linkList)) {\n linkList(output => resolve(Optional.some(output)));\n } else {\n resolve(Optional.from(linkList));\n }\n }).then(optItems => optItems.bind(ListOptions.sanitizeWith(extractor)).map(items => {\n if (items.length > 0) {\n const noneItem = [{\n text: 'None',\n value: ''\n }];\n return noneItem.concat(items);\n } else {\n return items;\n }\n }));\n };\n const LinkListOptions = { getLinks };\n\n const getRels = (editor, initialTarget) => {\n const list = getRelList(editor);\n if (list.length > 0) {\n const isTargetBlank = is(initialTarget, '_blank');\n const enforceSafe = allowUnsafeLinkTarget(editor) === false;\n const safeRelExtractor = item => applyRelTargetRules(ListOptions.getValue(item), isTargetBlank);\n const sanitizer = enforceSafe ? ListOptions.sanitizeWith(safeRelExtractor) : ListOptions.sanitize;\n return sanitizer(list);\n }\n return Optional.none();\n };\n const RelOptions = { getRels };\n\n const fallbacks = [\n {\n text: 'Current window',\n value: ''\n },\n {\n text: 'New window',\n value: '_blank'\n }\n ];\n const getTargets = editor => {\n const list = getTargetList(editor);\n if (isArray(list)) {\n return ListOptions.sanitize(list).orThunk(() => Optional.some(fallbacks));\n } else if (list === false) {\n return Optional.none();\n }\n return Optional.some(fallbacks);\n };\n const TargetOptions = { getTargets };\n\n const nonEmptyAttr = (dom, elem, name) => {\n const val = dom.getAttrib(elem, name);\n return val !== null && val.length > 0 ? Optional.some(val) : Optional.none();\n };\n const extractFromAnchor = (editor, anchor) => {\n const dom = editor.dom;\n const onlyText = isOnlyTextSelected(editor);\n const text = onlyText ? Optional.some(getAnchorText(editor.selection, anchor)) : Optional.none();\n const url = anchor.bind(anchorElm => Optional.from(dom.getAttrib(anchorElm, 'href')));\n const target = anchor.bind(anchorElm => Optional.from(dom.getAttrib(anchorElm, 'target')));\n const rel = anchor.bind(anchorElm => nonEmptyAttr(dom, anchorElm, 'rel'));\n const linkClass = anchor.bind(anchorElm => nonEmptyAttr(dom, anchorElm, 'class'));\n const title = anchor.bind(anchorElm => nonEmptyAttr(dom, anchorElm, 'title'));\n return {\n url,\n text,\n title,\n target,\n rel,\n linkClass\n };\n };\n const collect = (editor, linkNode) => LinkListOptions.getLinks(editor).then(links => {\n const anchor = extractFromAnchor(editor, linkNode);\n return {\n anchor,\n catalogs: {\n targets: TargetOptions.getTargets(editor),\n rels: RelOptions.getRels(editor, anchor.target),\n classes: ClassListOptions.getClasses(editor),\n anchor: AnchorListOptions.getAnchors(editor),\n link: links\n },\n optNode: linkNode,\n flags: { titleEnabled: shouldShowLinkTitle(editor) }\n };\n });\n const DialogInfo = { collect };\n\n const handleSubmit = (editor, info) => api => {\n const data = api.getData();\n if (!data.url.value) {\n unlink(editor);\n api.close();\n return;\n }\n const getChangedValue = key => Optional.from(data[key]).filter(value => !is(info.anchor[key], value));\n const changedData = {\n href: data.url.value,\n text: getChangedValue('text'),\n target: getChangedValue('target'),\n rel: getChangedValue('rel'),\n class: getChangedValue('linkClass'),\n title: getChangedValue('title')\n };\n const attachState = {\n href: data.url.value,\n attach: data.url.meta !== undefined && data.url.meta.attach ? data.url.meta.attach : noop\n };\n DialogConfirms.preprocess(editor, changedData).then(pData => {\n link(editor, attachState, pData);\n });\n api.close();\n };\n const collectData = editor => {\n const anchorNode = getAnchorElement(editor);\n return DialogInfo.collect(editor, anchorNode);\n };\n const getInitialData = (info, defaultTarget) => {\n const anchor = info.anchor;\n const url = anchor.url.getOr('');\n return {\n url: {\n value: url,\n meta: { original: { value: url } }\n },\n text: anchor.text.getOr(''),\n title: anchor.title.getOr(''),\n anchor: url,\n link: url,\n rel: anchor.rel.getOr(''),\n target: anchor.target.or(defaultTarget).getOr(''),\n linkClass: anchor.linkClass.getOr('')\n };\n };\n const makeDialog = (settings, onSubmit, editor) => {\n const urlInput = [{\n name: 'url',\n type: 'urlinput',\n filetype: 'file',\n label: 'URL',\n picker_text: 'Browse links'\n }];\n const displayText = settings.anchor.text.map(() => ({\n name: 'text',\n type: 'input',\n label: 'Text to display'\n })).toArray();\n const titleText = settings.flags.titleEnabled ? [{\n name: 'title',\n type: 'input',\n label: 'Title'\n }] : [];\n const defaultTarget = Optional.from(getDefaultLinkTarget(editor));\n const initialData = getInitialData(settings, defaultTarget);\n const catalogs = settings.catalogs;\n const dialogDelta = DialogChanges.init(initialData, catalogs);\n const body = {\n type: 'panel',\n items: flatten([\n urlInput,\n displayText,\n titleText,\n cat([\n catalogs.anchor.map(ListOptions.createUi('anchor', 'Anchors')),\n catalogs.rels.map(ListOptions.createUi('rel', 'Rel')),\n catalogs.targets.map(ListOptions.createUi('target', 'Open link in...')),\n catalogs.link.map(ListOptions.createUi('link', 'Link list')),\n catalogs.classes.map(ListOptions.createUi('linkClass', 'Class'))\n ])\n ])\n };\n return {\n title: 'Insert/Edit Link',\n size: 'normal',\n body,\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n initialData,\n onChange: (api, {name}) => {\n dialogDelta.onChange(api.getData, { name }).each(newData => {\n api.setData(newData);\n });\n },\n onSubmit\n };\n };\n const open$1 = editor => {\n const data = collectData(editor);\n data.then(info => {\n const onSubmit = handleSubmit(editor, info);\n return makeDialog(info, onSubmit, editor);\n }).then(spec => {\n editor.windowManager.open(spec);\n });\n };\n\n const register = editor => {\n editor.addCommand('mceLink', (_ui, value) => {\n if ((value === null || value === void 0 ? void 0 : value.dialog) === true || !useQuickLink(editor)) {\n open$1(editor);\n } else {\n editor.dispatch('contexttoolbar-show', { toolbarKey: 'quicklink' });\n }\n });\n };\n\n var global = tinymce.util.Tools.resolve('tinymce.util.VK');\n\n const appendClickRemove = (link, evt) => {\n document.body.appendChild(link);\n link.dispatchEvent(evt);\n document.body.removeChild(link);\n };\n const open = url => {\n const link = document.createElement('a');\n link.target = '_blank';\n link.href = url;\n link.rel = 'noreferrer noopener';\n const evt = document.createEvent('MouseEvents');\n evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n appendClickRemove(link, evt);\n };\n\n const getLink = (editor, elm) => editor.dom.getParent(elm, 'a[href]');\n const getSelectedLink = editor => getLink(editor, editor.selection.getStart());\n const hasOnlyAltModifier = e => {\n return e.altKey === true && e.shiftKey === false && e.ctrlKey === false && e.metaKey === false;\n };\n const gotoLink = (editor, a) => {\n if (a) {\n const href = getHref(a);\n if (/^#/.test(href)) {\n const targetEl = editor.dom.select(href);\n if (targetEl.length) {\n editor.selection.scrollIntoView(targetEl[0], true);\n }\n } else {\n open(a.href);\n }\n }\n };\n const openDialog = editor => () => {\n editor.execCommand('mceLink', false, { dialog: true });\n };\n const gotoSelectedLink = editor => () => {\n gotoLink(editor, getSelectedLink(editor));\n };\n const setupGotoLinks = editor => {\n editor.on('click', e => {\n const link = getLink(editor, e.target);\n if (link && global.metaKeyPressed(e)) {\n e.preventDefault();\n gotoLink(editor, link);\n }\n });\n editor.on('keydown', e => {\n if (!e.isDefaultPrevented() && e.keyCode === 13 && hasOnlyAltModifier(e)) {\n const link = getSelectedLink(editor);\n if (link) {\n e.preventDefault();\n gotoLink(editor, link);\n }\n }\n });\n };\n const toggleState = (editor, toggler) => {\n editor.on('NodeChange', toggler);\n return () => editor.off('NodeChange', toggler);\n };\n const toggleLinkState = editor => api => {\n const updateState = () => {\n api.setActive(!editor.mode.isReadOnly() && isInAnchor(editor, editor.selection.getNode()));\n api.setEnabled(editor.selection.isEditable());\n };\n updateState();\n return toggleState(editor, updateState);\n };\n const toggleLinkMenuState = editor => api => {\n const updateState = () => {\n api.setEnabled(editor.selection.isEditable());\n };\n updateState();\n return toggleState(editor, updateState);\n };\n const hasExactlyOneLinkInSelection = editor => {\n const links = editor.selection.isCollapsed() ? getLinks$1(editor.dom.getParents(editor.selection.getStart())) : getLinksInSelection(editor.selection.getRng());\n return links.length === 1;\n };\n const toggleGotoLinkState = editor => api => {\n const updateState = () => api.setEnabled(hasExactlyOneLinkInSelection(editor));\n updateState();\n return toggleState(editor, updateState);\n };\n const toggleUnlinkState = editor => api => {\n const hasLinks$1 = parents => hasLinks(parents) || hasLinksInSelection(editor.selection.getRng());\n const parents = editor.dom.getParents(editor.selection.getStart());\n const updateEnabled = parents => {\n api.setEnabled(hasLinks$1(parents) && editor.selection.isEditable());\n };\n updateEnabled(parents);\n return toggleState(editor, e => updateEnabled(e.parents));\n };\n\n const setup = editor => {\n editor.addShortcut('Meta+K', '', () => {\n editor.execCommand('mceLink');\n });\n };\n\n const setupButtons = editor => {\n editor.ui.registry.addToggleButton('link', {\n icon: 'link',\n tooltip: 'Insert/edit link',\n onAction: openDialog(editor),\n onSetup: toggleLinkState(editor)\n });\n editor.ui.registry.addButton('openlink', {\n icon: 'new-tab',\n tooltip: 'Open link',\n onAction: gotoSelectedLink(editor),\n onSetup: toggleGotoLinkState(editor)\n });\n editor.ui.registry.addButton('unlink', {\n icon: 'unlink',\n tooltip: 'Remove link',\n onAction: () => unlink(editor),\n onSetup: toggleUnlinkState(editor)\n });\n };\n const setupMenuItems = editor => {\n editor.ui.registry.addMenuItem('openlink', {\n text: 'Open link',\n icon: 'new-tab',\n onAction: gotoSelectedLink(editor),\n onSetup: toggleGotoLinkState(editor)\n });\n editor.ui.registry.addMenuItem('link', {\n icon: 'link',\n text: 'Link...',\n shortcut: 'Meta+K',\n onSetup: toggleLinkMenuState(editor),\n onAction: openDialog(editor)\n });\n editor.ui.registry.addMenuItem('unlink', {\n icon: 'unlink',\n text: 'Remove link',\n onAction: () => unlink(editor),\n onSetup: toggleUnlinkState(editor)\n });\n };\n const setupContextMenu = editor => {\n const inLink = 'link unlink openlink';\n const noLink = 'link';\n editor.ui.registry.addContextMenu('link', {\n update: element => {\n const isEditable = editor.dom.isEditable(element);\n if (!isEditable) {\n return '';\n }\n return hasLinks(editor.dom.getParents(element, 'a')) ? inLink : noLink;\n }\n });\n };\n const setupContextToolbars = editor => {\n const collapseSelectionToEnd = editor => {\n editor.selection.collapse(false);\n };\n const onSetupLink = buttonApi => {\n const node = editor.selection.getNode();\n buttonApi.setEnabled(isInAnchor(editor, node));\n return noop;\n };\n const getLinkText = value => {\n const anchor = getAnchorElement(editor);\n const onlyText = isOnlyTextSelected(editor);\n if (anchor.isNone() && onlyText) {\n const text = getAnchorText(editor.selection, anchor);\n return someIf(text.length === 0, value);\n } else {\n return Optional.none();\n }\n };\n editor.ui.registry.addContextForm('quicklink', {\n launch: {\n type: 'contextformtogglebutton',\n icon: 'link',\n tooltip: 'Link',\n onSetup: toggleLinkState(editor)\n },\n label: 'Link',\n predicate: node => hasContextToolbar(editor) && isInAnchor(editor, node),\n initValue: () => {\n const elm = getAnchorElement(editor);\n return elm.fold(constant(''), getHref);\n },\n commands: [\n {\n type: 'contextformtogglebutton',\n icon: 'link',\n tooltip: 'Link',\n primary: true,\n onSetup: buttonApi => {\n const node = editor.selection.getNode();\n buttonApi.setActive(isInAnchor(editor, node));\n return toggleLinkState(editor)(buttonApi);\n },\n onAction: formApi => {\n const value = formApi.getValue();\n const text = getLinkText(value);\n const attachState = {\n href: value,\n attach: noop\n };\n link(editor, attachState, {\n href: value,\n text,\n title: Optional.none(),\n rel: Optional.none(),\n target: Optional.none(),\n class: Optional.none()\n });\n collapseSelectionToEnd(editor);\n formApi.hide();\n }\n },\n {\n type: 'contextformbutton',\n icon: 'unlink',\n tooltip: 'Remove link',\n onSetup: onSetupLink,\n onAction: formApi => {\n unlink(editor);\n formApi.hide();\n }\n },\n {\n type: 'contextformbutton',\n icon: 'new-tab',\n tooltip: 'Open link',\n onSetup: onSetupLink,\n onAction: formApi => {\n gotoSelectedLink(editor)();\n formApi.hide();\n }\n }\n ]\n });\n };\n\n var Plugin = () => {\n global$5.add('link', editor => {\n register$1(editor);\n setupButtons(editor);\n setupMenuItems(editor);\n setupContextMenu(editor);\n setupContextToolbars(editor);\n setupGotoLinks(editor);\n register(editor);\n setup(editor);\n });\n };\n\n Plugin();\n\n})();\n"],"names":["global$5","tinymce","util","Tools","resolve","isType","type","value","x","t","Array","isArray","o","v","proto","constructor","String","prototype","isPrototypeOf","_a","name","typeOf","isSimpleType","isString","isObject","isNull","a","isBoolean","isNonNullable","isNullable","isFunction","isArrayOf","pred","i","len","length","noop","tripleEquals","b","Optional","tag","this","some","none","singletonNone","fold","onNone","onSome","isSome","isNone","map","mapper","bind","binder","exists","predicate","forall","filter","getOr","replacement","or","getOrThunk","thunk","orThunk","getOrDie","message","Error","from","getOrNull","getOrUndefined","each","worker","toArray","toString","nativeIndexOf","indexOf","nativePush","push","contains","xs","ts","call","rawIndexOf","flatten","r","apply","f","findMap","arr","is","lhs","rhs","comparator","left","cat","someIf","option","editor","options","get","assumeExternalTargets","hasContextToolbar","getLinkList","getDefaultLinkTarget","getDefaultLinkProtocol","getTargetList","getRelList","getLinkClassList","shouldShowLinkTitle","allowUnsafeLinkTarget","useQuickLink","global$4","getValue","item","sanitizeList","list","extractValue","out","text","title","getText","undefined","menu","items","sanitizeWith","extracter","ListOptions","sanitize","createUi","label","keys","Object","hasOwnProperty","internalFilter","obj","onTrue","onFalse","props","k","has","key","global$3","global$2","isAnchor","elm","nodeName","toLowerCase","isLink","getHref","collectNodesInRange","rng","collapsed","contents","cloneContents","firstChild","walker","elements","current","next","hasProtocol","url","test","_b","getAttribute","applyRelTargetRules","rel","isUnsafe","rules","rels","split","removeTargetRules","val","inArray","newRels","concat","addTargetRules","trim","sort","join","getAnchorElement","selectedElm","getLinksInSelection","selection","getRng","getNode","isImageFigure","dom","select","getParent","isInAnchor","getAnchorText","anchorElm","replace","trimCaretContainers","getContent","format","innerText","textContent","getLinks$1","grep","hasLinks","isOnlyTextSelected","inlineTextElements","schema","getTextInlineElements","isElement","nodeType","anchor","hasAttribute","className","applyLinkOverrides","linkAttrs","newLinkAttrs","newRel","target","href","handleExternalTargets","linkDomMutation","attachState","data","acc","each$1","getLinkAttrs","undoManager","transact","attach","linkImageFigure","execCommand","insertContent","createHTML","encode","createLink","focus","setAttribs","updateLink","unwrapOptions","class","cls","_k","link","sanitizedData","getOption","uriOptions","allow_html_data_urls","allow_script_urls","allow_svg_data_urls","isDomSafe","sanitizeData","hasPlugin","unlink","node","unlinkImageFigure","bookmark","getBookmark","cloneRange","startAnchorElm","startContainer","getBody","endAnchorElm","endContainer","setStartBefore","setEndAfter","setRng","moveToBookmark","unlinkSelection","unlinkDomMutation","fig","img","getParents","parentNode","insertBefore","remove","attrs","create","appendChild","isListGroup","hasNonNullableKey","findTextByValue","catalog","getDelta","persistentText","fieldName","hasPersistentText","meta","DialogChanges","initialData","linkCatalog","persistentData","onUrlChange","getTitleFromUrlChange","onCatalogChange","change","catalogs","onChange","getData","global$1","tryEmailTransform","preprocess","oldData","tryProtocolTransform","defaultLinkProtocol","DialogConfirms","Promise","transform","callback","setEditorTimeout","windowManager","confirm","state","delayedConfirm","AnchorListOptions","anchorNodes","anchors","id","ClassListOptions","parseJson","JSON","parse","err","LinkListOptions","extractor","convertURL","linkList","fetch","then","res","ok","reject","output","optItems","RelOptions","initialTarget","isTargetBlank","safeRelExtractor","fallbacks","TargetOptions","nonEmptyAttr","elem","getAttrib","DialogInfo","linkNode","links","linkClass","extractFromAnchor","targets","classes","optNode","flags","titleEnabled","open$1","anchorNode","collectData","info","onSubmit","api","close","getChangedValue","changedData","pData","handleSubmit","settings","displayText","titleText","defaultTarget","original","getInitialData","dialogDelta","size","body","filetype","picker_text","buttons","primary","newData","setData","makeDialog","spec","open","global","document","createElement","evt","createEvent","initMouseEvent","window","dispatchEvent","removeChild","appendClickRemove","getLink","getSelectedLink","getStart","gotoLink","targetEl","scrollIntoView","openDialog","dialog","gotoSelectedLink","toggleState","toggler","on","off","toggleLinkState","updateState","setActive","mode","isReadOnly","setEnabled","isEditable","toggleLinkMenuState","toggleGotoLinkState","isCollapsed","hasExactlyOneLinkInSelection","toggleUnlinkState","hasLinks$1","parents","updateEnabled","e","setupContextToolbars","onSetupLink","buttonApi","ui","registry","addContextForm","launch","icon","tooltip","onSetup","initValue","commands","onAction","formApi","onlyText","getLinkText","collapse","collapseSelectionToEnd","hide","add","registerOption","register","processor","valid","default","register$1","addToggleButton","addButton","setupButtons","addMenuItem","shortcut","setupMenuItems","addContextMenu","update","element","setupContextMenu","metaKeyPressed","preventDefault","isDefaultPrevented","keyCode","altKey","shiftKey","ctrlKey","metaKey","hasOnlyAltModifier","setupGotoLinks","addCommand","_ui","dispatch","toolbarKey","addShortcut","setup"],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../../public/tinymce/plugins/lists/index.js"],"sourcesContent":["// Exports the \"lists\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/lists')\n// ES2015:\n// import 'tinymce/plugins/lists'\nrequire('./plugin.js');"],"names":["require$$0"],"mappings":"wIAMsBA"}
|