wysiwyg-rails 4.7.1 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/javascripts/froala_editor.min.js +3 -3
- data/app/assets/javascripts/froala_editor.pkgd.min.js +3 -3
- data/app/assets/javascripts/languages/ar.js +24 -8
- data/app/assets/javascripts/languages/bs.js +24 -8
- data/app/assets/javascripts/languages/cs.js +24 -8
- data/app/assets/javascripts/languages/da.js +24 -8
- data/app/assets/javascripts/languages/de.js +23 -8
- data/app/assets/javascripts/languages/el.js +24 -8
- data/app/assets/javascripts/languages/en_ca.js +24 -8
- data/app/assets/javascripts/languages/en_gb.js +24 -8
- data/app/assets/javascripts/languages/es.js +24 -8
- data/app/assets/javascripts/languages/et.js +24 -8
- data/app/assets/javascripts/languages/fa.js +24 -8
- data/app/assets/javascripts/languages/fi.js +24 -8
- data/app/assets/javascripts/languages/fr.js +26 -9
- data/app/assets/javascripts/languages/he.js +18 -12
- data/app/assets/javascripts/languages/hr.js +24 -8
- data/app/assets/javascripts/languages/hu.js +24 -8
- data/app/assets/javascripts/languages/id.js +24 -8
- data/app/assets/javascripts/languages/it.js +24 -8
- data/app/assets/javascripts/languages/ja.js +24 -8
- data/app/assets/javascripts/languages/ko.js +24 -8
- data/app/assets/javascripts/languages/ku.js +24 -8
- data/app/assets/javascripts/languages/me.js +24 -8
- data/app/assets/javascripts/languages/nb.js +24 -8
- data/app/assets/javascripts/languages/nl.js +24 -8
- data/app/assets/javascripts/languages/pl.js +24 -8
- data/app/assets/javascripts/languages/pt_br.js +24 -8
- data/app/assets/javascripts/languages/pt_pt.js +24 -8
- data/app/assets/javascripts/languages/ro.js +24 -8
- data/app/assets/javascripts/languages/ru.js +24 -8
- data/app/assets/javascripts/languages/sk.js +24 -8
- data/app/assets/javascripts/languages/sl.js +23 -8
- data/app/assets/javascripts/languages/sr.js +24 -8
- data/app/assets/javascripts/languages/sv.js +24 -8
- data/app/assets/javascripts/languages/th.js +24 -8
- data/app/assets/javascripts/languages/tr.js +24 -8
- data/app/assets/javascripts/languages/uk.js +24 -8
- data/app/assets/javascripts/languages/vi.js +23 -8
- data/app/assets/javascripts/languages/zh_cn.js +10 -12
- data/app/assets/javascripts/languages/zh_tw.js +24 -8
- data/app/assets/javascripts/plugins/align.min.js +3 -3
- data/app/assets/javascripts/plugins/char_counter.min.js +3 -3
- data/app/assets/javascripts/plugins/code_beautifier.min.js +3 -3
- data/app/assets/javascripts/plugins/code_snippet.min.js +7 -0
- data/app/assets/javascripts/plugins/code_view.min.js +3 -3
- data/app/assets/javascripts/plugins/colors.min.js +3 -3
- data/app/assets/javascripts/plugins/cryptojs.min.js +3 -3
- data/app/assets/javascripts/plugins/draggable.min.js +3 -3
- data/app/assets/javascripts/plugins/edit_in_popup.min.js +3 -3
- data/app/assets/javascripts/plugins/emoticons.min.js +3 -3
- data/app/assets/javascripts/plugins/entities.min.js +3 -3
- data/app/assets/javascripts/plugins/export_to_word.min.js +3 -3
- data/app/assets/javascripts/plugins/file.min.js +3 -3
- data/app/assets/javascripts/plugins/files_manager.min.js +3 -3
- data/app/assets/javascripts/plugins/filestack.min.js +3 -3
- data/app/assets/javascripts/plugins/find_and_replace.min.js +3 -3
- data/app/assets/javascripts/plugins/font_family.min.js +3 -3
- data/app/assets/javascripts/plugins/font_size.min.js +3 -3
- data/app/assets/javascripts/plugins/forms.min.js +3 -3
- data/app/assets/javascripts/plugins/fullscreen.min.js +3 -3
- data/app/assets/javascripts/plugins/help.min.js +3 -3
- data/app/assets/javascripts/plugins/image.min.js +3 -3
- data/app/assets/javascripts/plugins/image_manager.min.js +3 -3
- data/app/assets/javascripts/plugins/import_from_word.min.js +7 -0
- data/app/assets/javascripts/plugins/inline_class.min.js +3 -3
- data/app/assets/javascripts/plugins/inline_style.min.js +3 -3
- data/app/assets/javascripts/plugins/line_breaker.min.js +3 -3
- data/app/assets/javascripts/plugins/line_height.min.js +3 -3
- data/app/assets/javascripts/plugins/link.min.js +3 -3
- data/app/assets/javascripts/plugins/link_to_anchor.min.js +3 -3
- data/app/assets/javascripts/plugins/lists.min.js +3 -3
- data/app/assets/javascripts/plugins/markdown.min.js +3 -3
- data/app/assets/javascripts/plugins/page_break.min.js +3 -3
- data/app/assets/javascripts/plugins/paragraph_format.min.js +3 -3
- data/app/assets/javascripts/plugins/paragraph_style.min.js +3 -3
- data/app/assets/javascripts/plugins/print.min.js +3 -3
- data/app/assets/javascripts/plugins/quick_insert.min.js +3 -3
- data/app/assets/javascripts/plugins/quote.min.js +3 -3
- data/app/assets/javascripts/plugins/save.min.js +3 -3
- data/app/assets/javascripts/plugins/special_characters.min.js +3 -3
- data/app/assets/javascripts/plugins/table.min.js +3 -3
- data/app/assets/javascripts/plugins/track_changes.min.js +3 -3
- data/app/assets/javascripts/plugins/trim_video.min.js +3 -3
- data/app/assets/javascripts/plugins/url.min.js +3 -3
- data/app/assets/javascripts/plugins/video.min.js +3 -3
- data/app/assets/javascripts/plugins/word_counter.min.js +3 -3
- data/app/assets/javascripts/plugins/word_paste.min.js +3 -3
- data/app/assets/javascripts/plugins.pkgd.min.js +3 -3
- data/app/assets/javascripts/third_party/embedly.min.js +3 -3
- data/app/assets/javascripts/third_party/font_awesome.min.js +3 -3
- data/app/assets/javascripts/third_party/image_tui.min.js +3 -3
- data/app/assets/javascripts/third_party/showdown.min.js +3 -3
- data/app/assets/javascripts/third_party/spell_checker.min.js +3 -3
- data/app/assets/stylesheets/froala_editor.css +2 -2
- data/app/assets/stylesheets/froala_editor.min.css +2 -2
- data/app/assets/stylesheets/froala_editor.pkgd.css +111 -4
- data/app/assets/stylesheets/froala_editor.pkgd.min.css +3 -3
- data/app/assets/stylesheets/froala_style.css +2 -2
- data/app/assets/stylesheets/froala_style.min.css +2 -2
- data/app/assets/stylesheets/plugins/char_counter.css +2 -2
- data/app/assets/stylesheets/plugins/char_counter.min.css +2 -2
- data/app/assets/stylesheets/plugins/code_snippet.css +111 -0
- data/app/assets/stylesheets/plugins/code_snippet.min.css +7 -0
- data/app/assets/stylesheets/plugins/code_view.css +2 -2
- data/app/assets/stylesheets/plugins/code_view.min.css +2 -2
- data/app/assets/stylesheets/plugins/colors.css +2 -2
- data/app/assets/stylesheets/plugins/colors.min.css +2 -2
- data/app/assets/stylesheets/plugins/draggable.css +2 -2
- data/app/assets/stylesheets/plugins/draggable.min.css +2 -2
- data/app/assets/stylesheets/plugins/emoticons.css +2 -2
- data/app/assets/stylesheets/plugins/emoticons.min.css +2 -2
- data/app/assets/stylesheets/plugins/file.css +2 -2
- data/app/assets/stylesheets/plugins/file.min.css +2 -2
- data/app/assets/stylesheets/plugins/files_manager.css +2 -2
- data/app/assets/stylesheets/plugins/files_manager.min.css +2 -2
- data/app/assets/stylesheets/plugins/filestack.css +2 -2
- data/app/assets/stylesheets/plugins/filestack.min.css +2 -2
- data/app/assets/stylesheets/plugins/find_and_replace.css +2 -2
- data/app/assets/stylesheets/plugins/find_and_replace.min.css +2 -2
- data/app/assets/stylesheets/plugins/fullscreen.css +2 -2
- data/app/assets/stylesheets/plugins/fullscreen.min.css +2 -2
- data/app/assets/stylesheets/plugins/help.css +2 -2
- data/app/assets/stylesheets/plugins/help.min.css +2 -2
- data/app/assets/stylesheets/plugins/image.css +2 -2
- data/app/assets/stylesheets/plugins/image.min.css +2 -2
- data/app/assets/stylesheets/plugins/image_manager.css +2 -2
- data/app/assets/stylesheets/plugins/image_manager.min.css +2 -2
- data/app/assets/stylesheets/plugins/line_breaker.css +2 -2
- data/app/assets/stylesheets/plugins/line_breaker.min.css +2 -2
- data/app/assets/stylesheets/plugins/link_to_anchor.css +2 -2
- data/app/assets/stylesheets/plugins/link_to_anchor.min.css +2 -2
- data/app/assets/stylesheets/plugins/markdown.css +2 -2
- data/app/assets/stylesheets/plugins/markdown.min.css +2 -2
- data/app/assets/stylesheets/plugins/page_break.css +3 -3
- data/app/assets/stylesheets/plugins/page_break.min.css +3 -3
- data/app/assets/stylesheets/plugins/quick_insert.css +2 -2
- data/app/assets/stylesheets/plugins/quick_insert.min.css +2 -2
- data/app/assets/stylesheets/plugins/special_characters.css +2 -2
- data/app/assets/stylesheets/plugins/special_characters.min.css +2 -2
- data/app/assets/stylesheets/plugins/table.css +4 -3
- data/app/assets/stylesheets/plugins/table.min.css +3 -3
- data/app/assets/stylesheets/plugins/trim_video.css +2 -2
- data/app/assets/stylesheets/plugins/trim_video.min.css +2 -2
- data/app/assets/stylesheets/plugins/video.css +2 -2
- data/app/assets/stylesheets/plugins/video.min.css +2 -2
- data/app/assets/stylesheets/plugins.pkgd.css +111 -4
- data/app/assets/stylesheets/plugins.pkgd.min.css +3 -3
- data/app/assets/stylesheets/themes/dark.css +28 -2
- data/app/assets/stylesheets/themes/dark.min.css +3 -3
- data/app/assets/stylesheets/themes/gray.css +28 -2
- data/app/assets/stylesheets/themes/gray.min.css +3 -3
- data/app/assets/stylesheets/themes/royal.css +28 -2
- data/app/assets/stylesheets/themes/royal.min.css +3 -3
- data/app/assets/stylesheets/third_party/embedly.css +2 -2
- data/app/assets/stylesheets/third_party/embedly.min.css +2 -2
- data/app/assets/stylesheets/third_party/font_awesome.css +2 -2
- data/app/assets/stylesheets/third_party/font_awesome.min.css +2 -2
- data/app/assets/stylesheets/third_party/image_tui.css +2 -2
- data/app/assets/stylesheets/third_party/image_tui.min.css +2 -2
- data/app/assets/stylesheets/third_party/spell_checker.css +2 -2
- data/app/assets/stylesheets/third_party/spell_checker.min.css +2 -2
- data/lib/wysiwyg-rails/version.rb +1 -1
- metadata +6 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* froala_editor
|
|
2
|
+
* froala_editor v5.0.0 (https://www.froala.com/wysiwyg-editor)
|
|
3
3
|
* License https://froala.com/wysiwyg-editor/terms/
|
|
4
|
-
* Copyright 2014-
|
|
4
|
+
* Copyright 2014-2026 Froala Labs
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("froala-editor")):"function"==typeof define&&define.amd?define(["froala-editor"],t):t(e.FroalaEditor)}(this,function(
|
|
7
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("froala-editor")):"function"==typeof define&&define.amd?define(["froala-editor"],t):t(("undefined"!=typeof globalThis?globalThis:e||self).FroalaEditor)}(this,function(i){"use strict";Object.assign(i.DEFAULTS,{lineHeights:{Default:"",Single:"1",1.15:"1.15",1.5:"1.5",Double:"2"}}),i.PLUGINS.lineHeight=function(a){var l=a.$;return{_init:function(){},apply:function(e){a.selection.save(),a.html.wrap(!0,!0,!0,!0),a.selection.restore();var t=a.helpers.selectionBlocks([".fr-code-snippet"]);t.length&&l(t[0]).parent().is("td")&&a.format.applyStyle("line-height",e.toString()),a.selection.save();for(var n=0;n<t.length;n++)l(t[n]).css("line-height",e),a.opts.enter!==i.ENTER_BR||t.length&&l(t[0]).parent().is("td")||(l(t[n]).hasClass("fr-temp-div")&&l(t[n]).removeClass("fr-temp-div"),""===l(t[n]).attr("class")&&l(t[n]).removeAttr("class")),""===l(t[n]).attr("style")&&l(t[n]).removeAttr("style");a.html.unwrap(),a.selection.restore()},refreshOnShow:function(e,t){var i,n=a.selection.blocks();n.length&&(i=l(n[0]),t.find(".fr-command").each(function(){var e,t=l(this).data("param1"),n=i.attr("style"),a=0<=(n||"").indexOf("line-height: "+t+";");!n||(e=(e=(e=n.substring(n.indexOf("line-height"))).substr(0,e.indexOf(";")))&&e.split(":")[1])&&e.length||"Default"!==i.text()||(a=!0),n&&-1!==n.indexOf("line-height")||""!==t||(a=!0),l(this).toggleClass("fr-active",a).attr("aria-selected",a)}))}}},i.RegisterCommand("lineHeight",{type:"dropdown",html:function(){var e='<ul class="fr-dropdown-list" role="presentation">',t=this.opts.lineHeights;if(t instanceof Array)for(var n=0;n<t.length;n++)e+='<li role="presentation"><a class="fr-command '.concat(t[n].label,'" tabIndex="-1" role="option" data-cmd="lineHeight" data-param1="').concat(t[n].value,'" title="').concat(this.language.translate(t[n].label),'">').concat(this.language.translate(t[n].label),"</a></li>");else if(t instanceof Object)for(var a in t)t.hasOwnProperty(a)&&(e+='<li role="presentation"><a class="fr-command '.concat(a,'" tabIndex="-1" role="option" data-cmd="lineHeight" data-param1="').concat(t[a],'" title="').concat(this.language.translate(a),'">').concat(this.language.translate(a),"</a></li>"));return e+="</ul>"},title:"Line Height",callback:function(e,t){this.lineHeight.apply(t)},refreshOnShow:function(e,t){this.lineHeight.refreshOnShow(e,t)},plugin:"lineHeight"}),i.DefineIcon("lineHeight",{NAME:"arrows-v",FA5NAME:"arrows-alt-v",SVG_KEY:"lineHeight"})});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* froala_editor
|
|
2
|
+
* froala_editor v5.0.0 (https://www.froala.com/wysiwyg-editor)
|
|
3
3
|
* License https://froala.com/wysiwyg-editor/terms/
|
|
4
|
-
* Copyright 2014-
|
|
4
|
+
* Copyright 2014-2026 Froala Labs
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("froala-editor")):"function"==typeof define&&define.amd?define(["froala-editor"],t):t(e.FroalaEditor)}(this,function(y){"use strict";y=y&&y.hasOwnProperty("default")?y["default"]:y,Object.assign(y.POPUP_TEMPLATES,{"link.edit":"[_BUTTONS_]","link.insert":"[_BUTTONS_][_INPUT_LAYER_]"}),Object.assign(y.DEFAULTS,{linkEditButtons:["linkOpen","linkStyle","linkEdit","linkRemove"],linkInsertButtons:["linkBack","|","linkList"],linkAttributes:{},linkAutoPrefix:"http://",linkStyles:{"fr-green":"Green","fr-strong":"Thick"},linkMultipleStyles:!0,linkConvertEmailAddress:!0,linkAlwaysBlank:!1,linkAlwaysNoFollow:!1,linkNoOpener:!0,linkNoReferrer:!0,linkList:[{text:"Froala",href:"https://froala.com",target:"_blank"},{text:"Google",href:"https://google.com",target:"_blank"},{displayText:"Facebook",href:"https://facebook.com"}],linkText:!0}),y.PLUGINS.link=function(k){var m=k.$;function v(){var e=k.image?k.image.get():null;if(e||!k.$wp)return"A"==k.el.tagName?k.el:e&&e.get(0).parentNode&&"A"==e.get(0).parentNode.tagName?e.get(0).parentNode:void 0;var t=k.selection.ranges(0).commonAncestorContainer;try{t&&(t.contains&&t.contains(k.el)||!k.el.contains(t)||k.el==t)&&(t=null)}catch(l){t=null}if(t&&"A"===t.tagName)return t;var n,i,r=k.selection.element(),a=k.selection.endElement();"A"==r.tagName||k.node.isElement(r)||(r=k.opts.iframe&&null!==(n=k.markdown)&&void 0!==n&&n.isEnabled()?null:m(r).parentsUntil(k.$el,"a").first().get(0));"A"==a.tagName||k.node.isElement(a)||(a=k.opts.iframe&&null!==(i=k.markdown)&&void 0!==i&&i.isEnabled()?null:m(a).parentsUntil(k.$el,"a").first().get(0));try{a&&(a.contains&&a.contains(k.el)||!k.el.contains(a)||k.el==a)&&(a=null)}catch(l){a=null}try{r&&(r.contains&&r.contains(k.el)||!k.el.contains(r)||k.el==r)&&(r=null)}catch(l){r=null}return a&&a==r&&"A"==a.tagName?(k.browser.msie||k.helpers.isMobile())&&(k.selection.info(r).atEnd||k.selection.info(r).atStart)?null:r:null}function b(){var e,t,n,i,r=k.image?k.image.get():null,a=[];if(r)"A"==r.get(0).parentNode.tagName&&a.push(r.get(0).parentNode);else if(k.win.getSelection){var l=k.win.getSelection();if(l.getRangeAt&&l.rangeCount){i=k.doc.createRange();for(var o=0;o<l.rangeCount;++o)if((t=(e=l.getRangeAt(o)).commonAncestorContainer)&&1!=t.nodeType&&(t=t.parentNode),t&&"a"==t.nodeName.toLowerCase())a.push(t);else{n=t.getElementsByTagName("a");for(var s=0;s<n.length;++s)i.selectNodeContents(n[s]),i.compareBoundaryPoints(e.END_TO_START,e)<1&&-1<i.compareBoundaryPoints(e.START_TO_END,e)&&a.push(n[s])}}}else if(k.doc.selection&&"Control"!=k.doc.selection.type)if("a"==(t=(e=k.doc.selection.createRange()).parentElement()).nodeName.toLowerCase())a.push(t);else{n=t.getElementsByTagName("a"),i=k.doc.body.createTextRange();for(var c=0;c<n.length;++c)i.moveToElementText(n[c]),-1<i.compareEndPoints("StartToEnd",e)&&i.compareEndPoints("EndToStart",e)<1&&a.push(n[c])}return a}function A(r){if(k.core.hasFocus()||k.opts.iframe&&(!document.hasFocus||document.hasFocus())){if(a(),r&&"keyup"===r.type&&(r.altKey||r.which==y.KEYCODE.ALT))return!0;setTimeout(function(){if(!r||r&&(1==r.which||"mouseup"!=r.type)){var e=v(),t=k.image?k.image.get():null;if(e&&!t){if(k.image){var n=k.node.contents(e);if(1==n.length&&"IMG"==n[0].tagName){var i=k.selection.ranges(0);return 0===i.startOffset&&0===i.endOffset?m(e).before(y.INVISIBLE_SPACE+y.MARKERS):m(e).after(y.INVISIBLE_SPACE+y.MARKERS),k.selection.restore(),!1}}r&&r.stopPropagation(),m(e).hasClass("fr-anchor")||l(e)}}},k.helpers.isIOS()?100:0)}}function l(e){var t=k.popups.get("link.edit");t||(t=function a(){var e="";1<=k.opts.linkEditButtons.length&&("A"==k.el.tagName&&0<=k.opts.linkEditButtons.indexOf("linkRemove")&&k.opts.linkEditButtons.splice(k.opts.linkEditButtons.indexOf("linkRemove"),1),e='<div class="fr-buttons">'.concat(k.button.buildList(k.opts.linkEditButtons),"</div>"));var t={buttons:e},n=k.popups.create("link.edit",t);k.$wp&&k.events.$on(k.$wp,"scroll.link-edit",function(){var e=v();e&&k.popups.isVisible("link.edit")&&(m(e).hasClass("fr-anchor")||l(e))});return n}());var n=m(e);k.popups.isVisible("link.edit")||k.popups.refresh("link.edit"),k.popups.setContainer("link.edit",k.$sc);var i=n.offset().left+n.outerWidth()/2,r=n.offset().top+n.outerHeight();k.popups.show("link.edit",i,r,n.outerHeight(),!0)}function a(){k.popups.hide("link.edit")}function c(){var e=k.popups.get("link.insert"),t=v();if(t){var n,i,r=m(t),a=e.find('input.fr-link-attr[type="text"]'),l=e.find('input.fr-link-attr[type="checkbox"]');for(n=0;n<a.length;n++){var o=(i=m(a[n])).attr("name")||"",s="href"===o?decodeURI(r.attr(o)):r.attr(o);i.val(s)}for(l.attr("checked",!1),n=0;n<l.length;n++)i=m(l[n]),r.attr(i.attr("name"))==i.data("checked")&&i.attr("checked",!0);e.find('input.fr-link-attr[type="text"][name="text"]').val(r.text())}else e.find('input.fr-link-attr[type="text"]').val(""),e.find('input.fr-link-attr[type="checkbox"]').attr("checked",!1),e.find('input.fr-link-attr[type="text"][name="text"]').val(k.selection.text());e.find("input.fr-link-attr").trigger("change"),(k.image?k.image.get():null)?e.find('.fr-link-attr[name="text"]').parent().hide():e.find('.fr-link-attr[name="text"]').parent().show()}function o(e){if(e)return k.popups.onRefresh("link.insert",c),!0;var t="";1<=k.opts.linkInsertButtons.length&&(t='<div class="fr-buttons fr-tabs">'.concat(k.button.buildList(k.opts.linkInsertButtons),"</div>"));var n="",i=0,r=k.button.buildList(["anchorList"]);for(var a in n='<div class="fr-link-insert-layer fr-layer fr-active" id="fr-link-insert-layer-'.concat(k.id,'">'),n+='<div class="fr-link-input-layer"><div class="fr-input-line"><input id="fr-link-insert-layer-url-'.concat(k.id,'" name="href" type="text" class="fr-link-attr" placeholder="').concat(k.language.translate("URL"),'" tabIndex="').concat(++i,'"></div><div class="fr-buttons">').concat(r,"</div></div>"),k.opts.linkText&&(n+='<div class="fr-input-line"><input id="fr-link-insert-layer-text-'.concat(k.id,'" name="text" type="text" class="fr-link-attr" placeholder="').concat(k.language.translate("Text"),'" tabIndex="').concat(++i,'"></div>')),k.opts.linkAttributes)if(k.opts.linkAttributes.hasOwnProperty(a)){var l=k.opts.linkAttributes[a];n+='<div class="fr-input-line"><input name="'.concat(a,'" type="text" class="fr-link-attr" placeholder="').concat(k.language.translate(l),'" tabIndex="').concat(++i,'"></div>')}k.opts.linkAlwaysBlank||(n+='<div class="fr-checkbox-line"><span class="fr-checkbox"><input name="target" class="fr-link-attr" data-checked="_blank" type="checkbox" id="fr-link-target-'.concat(k.id,'" tabIndex="').concat(++i,'"><span>').concat('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="10" height="10" viewBox="0 0 32 32"><path d="M27 4l-15 15-7-7-5 5 12 12 20-20z" fill="#FFF"></path></svg>','</span></span><label id="fr-label-target-').concat(k.id,'">').concat(k.language.translate("Open in new tab"),"</label></div>"));var o={buttons:t,input_layer:n+='<div class="fr-action-buttons"><button class="fr-command fr-submit" role="button" data-cmd="linkInsert" href="#" tabIndex="'.concat(++i,'" type="button">').concat(k.language.translate("Insert"),"</button></div></div>")},s=k.popups.create("link.insert",o);return k.$wp&&k.events.$on(k.$wp,"scroll.link-insert",function(){(k.image?k.image.get():null)&&k.popups.isVisible("link.insert")&&d(),k.popups.isVisible("link.insert")&&f()}),s}function p(e,t,n){if(k.opts.trackChangesEnabled){if(k.edit.on(),k.events.focus(!0),k.undo.saveStep(),k.markers.insert(),k.html.wrap(),!k.$el.find(".fr-marker").length)return void k.popups.hide("link.insert");k.markers.remove()}if(void 0===n&&(n={}),!1===k.events.trigger("link.beforeInsert",[e,t,n]))return!1;var i=k.image?k.image.get():null;i||"A"==k.el.tagName?"A"==k.el.tagName&&k.$el.focus():(k.selection.restore(),k.popups.hide("link.insert"));var r=e;k.opts.linkConvertEmailAddress&&k.helpers.isEmail(e)&&!/^mailto:.*/i.test(e)&&(e="mailto:".concat(e));if(""===k.opts.linkAutoPrefix||new RegExp("^("+y.LinkProtocols.join("|")+"):.","i").test(e)||/^data:image.*/i.test(e)||/^(https?:|ftps?:|file:|)\/\//i.test(e)||/^([A-Za-z]:(\\){1,2}|[A-Za-z]:((\\){1,2}[^\\]+)+)(\\)?$/i.test(e)||["/","{","[","#","(",".",'"',"\\"].indexOf((e||"")[0])<0&&(e=k.opts.linkAutoPrefix+e),(e=k.helpers.sanitizeURL(e))===decodeURIComponent(e)&&(e=encodeURI(e)),k.opts.linkAlwaysBlank&&(n.target="_blank"),k.opts.linkAlwaysNoFollow&&(n.rel="nofollow"),k.helpers.isEmail(r)&&(n.target=null,n.rel=null),"_blank"==n.target?(k.opts.linkNoOpener&&(n.rel?n.rel+=" noopener":n.rel="noopener"),k.opts.linkNoReferrer&&(n.rel?n.rel+=" noreferrer":n.rel="noreferrer")):null==n.target&&(n.rel?n.rel=n.rel.replace(/noopener/,"").replace(/noreferrer/,""):n.rel=null),t=t||"",e===k.opts.linkAutoPrefix)return k.popups.get("link.insert").find('input[name="href"]').addClass("fr-error"),k.events.trigger("link.bad",[r]),!1;var a,l=v();if(l){if((a=m(l)).attr("href",e),0<t.length&&a.text()!=t&&!i){if(k.opts.trackChangesEnabled){var o=m(a.get(0).outerHTML);o.insertBefore(a.parent());var s=k.track_changes.wrapLinkInTracking(o,k.track_changes.getPendingChanges().length-1),c=k.track_changes.wrapInDelete(s);a.parent().append(c)}for(var p=a.get(0);1===p.childNodes.length&&p.childNodes[0].nodeType==Node.ELEMENT_NODE;)p=p.childNodes[0];m(p).text(t)}for(var f in i||a.prepend(y.START_MARKER).append(y.END_MARKER),n)n[f]?a.attr(f,n[f]):a.removeAttr(f);i||k.selection.restore()}else{i?(i.wrap('<a href="'.concat(e,'"></a>')),k.image.hasCaption()&&i.parent().append(i.parents(".fr-img-caption").find(".fr-inner"))):(k.format.remove("a"),k.selection.isCollapsed()?(t=0===t.length?r:t,k.html.insert('<a href="'.concat(e,'">').concat(y.START_MARKER).concat(t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")).concat(y.END_MARKER,"</a>")),k.selection.restore()):0<t.length&&t!=k.selection.text().replace(/\n/g,"")?(k.selection.remove(),k.html.insert('<a href="'.concat(e,'">').concat(y.START_MARKER).concat(t.replace(/&/g,"&")).concat(y.END_MARKER,"</a>")),k.selection.restore()):(!function g(){if(!k.selection.isCollapsed()){k.selection.save();for(var e=k.$el.find(".fr-marker").addClass("fr-unprocessed").toArray();e.length;){var t=m(e.pop());t.removeClass("fr-unprocessed");var n=k.node.deepestParent(t.get(0));if(n){for(var i=t.get(0),r="",a="";i=i.parentNode,k.node.isBlock(i)||(r+=k.node.closeTagString(i),a=k.node.openTagString(i)+a),i!=n;);var l=k.node.openTagString(t.get(0))+t.html()+k.node.closeTagString(t.get(0));t.replaceWith('<span id="fr-break"></span>');var o=n.outerHTML;o=(o=o.replace(/<span id="fr-break"><\/span>/g,r+l+a)).replace(a+r,""),n.outerHTML=o}e=k.$el.find(".fr-marker.fr-unprocessed").toArray()}k.html.cleanEmptyTags(),k.selection.restore()}}(),k.format.apply("a",{href:e})));for(var d=b(),u=0;u<d.length;u++)(a=m(d[u])).attr(n),a.removeAttr("_moz_dirty");1==d.length&&k.$wp&&!i&&(m(d[0]).prepend(y.START_MARKER).append(y.END_MARKER),k.selection.restore())}if(i){var h=k.popups.get("link.insert");h&&h.find("input:focus").blur(),k.image.edit(i)}else A()}function f(){a();var e=v();if(e){var t=k.popups.get("link.insert");t||(t=o()),k.popups.isVisible("link.insert")||(k.popups.refresh("link.insert"),k.selection.save(),k.helpers.isMobile()&&(k.events.disableBlur(),k.$el.blur(),k.events.enableBlur())),k.popups.setContainer("link.insert",k.$sc);var n=(k.image?k.image.get():null)||m(e),i=n.offset().left+n.outerWidth()/2,r=n.offset().top+n.outerHeight();k.popups.show("link.insert",i,r,n.outerHeight(),!0)}}function d(){var e=k.image?k.image.getEl():null;if(e){var t=k.popups.get("link.insert"),n=e.outerWidth()/2;k.image.hasCaption()&&(e=e.find(".fr-img-wrap"),m(e)&&m(e).find("img")&&(n=m(e).find("img").outerWidth()/2)),t||(t=o()),c(),k.popups.setContainer("link.insert",k.$sc);var i=e.offset().left+n,r=e.offset().top+e.outerHeight(),a=e.outerHeight();k.opts.iframe&&k.image.hasCaption()&&m(e)&&m(e).find("img")&&(a=m(e).find("img").outerHeight()),k.popups.show("link.insert",i,r,a,!0)}}return{_init:function e(){k.events.on("keyup",function(e){e.which!=y.KEYCODE.ESC&&A(e)}),k.events.on("window.mouseup",A),k.events.$on(k.$el,"click","a",function(e){k.edit.isDisabled()&&e.preventDefault()}),k.helpers.isMobile()&&k.events.$on(k.$doc,"selectionchange",A),o(!0),"A"==k.el.tagName&&k.$el.addClass("fr-view"),k.events.on("toolbar.esc",function(){if(k.popups.isVisible("link.edit"))return k.events.disableBlur(),k.events.focus(),!1},!0)},remove:function i(){var e=v(),t=k.image?k.image.get():null;if(!1===k.events.trigger("link.beforeRemove",[e]))return!1;if(t&&e)if(k.image.hasCaption()){t.addClass("img-link-caption"),m(e).replaceWith(m(e).html());var n=document.querySelectorAll("img.img-link-caption");k.image.edit(m(n[0])),m(n[0]).removeClass("img-link-caption")}else t.unwrap(),k.image.edit(t);else e&&(k.selection.save(),m(e).replaceWith(m(e).html()),k.selection.restore(),a())},showInsertPopup:function s(){var e=k.$tb.find('.fr-command[data-cmd="insertLink"]'),t=k.popups.get("link.insert");if(t||(t=o()),!t.hasClass("fr-active")){if(k.popups.refresh("link.insert"),k.popups.setContainer("link.insert",k.$tb||k.$sc),e.isVisible()){var n=k.button.getPosition(e),i=n.left,r=n.top;k.popups.show("link.insert",i,r,e.outerHeight())}else k.position.forSelection(t),k.popups.show("link.insert");var a=t.find('button[data-cmd="anchorList"]');a.isVisible()&&k.button.click(a)}},usePredefined:function u(e,t){var n,i,r=k.opts.linkList[e]||t,a=k.popups.get("link.insert"),l=a.find('input.fr-link-attr[type="text"]'),o=a.find('input.fr-link-attr[type="checkbox"]');for(r.rel&&(a.rel=r.rel),i=0;i<l.length;i++)r[(n=m(l[i])).attr("name")]?(n.val(r[n.attr("name")]),n.toggleClass("fr-not-empty",!0)):"text"!=n.attr("name")&&n.val("");for(i=0;i<o.length;i++)(n=m(o[i])).attr("checked",n.data("checked")==r[n.attr("name")]);k.accessibility.focusPopup(a)},insertCallback:function h(){var e,t,n=k.popups.get("link.insert"),i=n.find('input.fr-link-attr[type="text"]'),r=n.find('input.fr-link-attr[type="checkbox"]'),a=(i.filter('[name="href"]').val()||"").trim(),l=k.opts.linkText?i.filter('[name="text"]').val():"",o={};for(t=0;t<i.length;t++)e=m(i[t]),["href","text"].indexOf(e.attr("name"))<0&&(o[e.attr("name")]=e.val());for(t=0;t<r.length;t++)(e=m(r[t])).is(":checked")?o[e.attr("name")]=e.data("checked"):o[e.attr("name")]=e.data("unchecked")||null;n.rel&&(o.rel=n.rel);var s=k.helpers.scrollTop();p(a,l,o),m(k.o_win).scrollTop(s)},insert:p,update:f,get:v,allSelected:b,back:function t(){k.image&&k.image.get()?k.image.back():(k.events.disableBlur(),k.selection.restore(),k.events.enableBlur(),v()&&k.$wp?(k.selection.restore(),a(),A()):"A"==k.el.tagName?(k.$el.focus(),A()):(k.popups.hide("link.insert"),k.toolbar.showInline()))},imageLink:d,applyStyle:function g(e,t,n){void 0===n&&(n=k.opts.linkMultipleStyles),void 0===t&&(t=k.opts.linkStyles);var i=v();if(!i)return!1;if(!n){var r=Object.keys(t);r.splice(r.indexOf(e),1),m(i).removeClass(r.join(" "))}m(i).toggleClass(e),A()},getAllAnchorList:function r(){var e=k.$el.find('[data-cmd="anchor"]').get().map(function(e){return e.name}),t='<ul class="fr-dropdown-list" role="presentation">';if(!e.length)return!1;var n=k.icon.create("anchorListIcon");m(n).find("path").css("fill","dimgray");for(var i=0;i<e.length;i++)t+='<li role="presentation"><a class="fr-command" tabIndex="-1" role="option" data-cmd="anchorList" data-param1="#'.concat(e[i],'">').concat(n).concat(e[i],"</a></li>");return t+="</ul>"},scrollToAnchor:function E(e){var t=e.startsWith("#")?e.slice(1):e,n=k.$el.get(0).querySelector('[name="'.concat(t,'"]'));if(!n)return!1;if(n.scrollIntoView({behavior:"smooth",block:"center"}),k.linkToAnchor)k.linkToAnchor.focusOnAnchor(n);else{var i=k.doc.createRange();k.selection.get().removeAllRanges(),i.selectNode(n),k.selection.get().addRange(i),$anchor.trigger("mousedown"),$anchor.trigger("mouseup")}return!0}}},y.DefineIcon("insertLink",{NAME:"link",SVG_KEY:"insertLink"}),y.RegisterShortcut(y.KEYCODE.K,"insertLink",null,"K"),y.RegisterCommand("insertLink",{title:"Insert Link",undo:!1,focus:!0,refreshOnCallback:!1,popup:!0,callback:function(){this.popups.isVisible("link.insert")?(this.$el.find(".fr-marker").length&&(this.events.disableBlur(),this.selection.restore()),this.popups.hide("link.insert")):this.link.showInsertPopup()},plugin:"link"}),y.DefineIcon("linkOpen",{NAME:"external-link",FA5NAME:"external-link-alt",SVG_KEY:"openLink"}),y.RegisterCommand("linkOpen",{title:"Open Link",undo:!1,refresh:function(e){var t=this.link.get();if(t){e.removeClass("fr-hidden");var n="Open Link";t.href.includes("#")&&(n="Scroll to target"),e.attr("title",this.language.translate(n))}else e.addClass("fr-hidden")},callback:function(){var e=this.link.get();if(e){var t=e.getAttribute("href");if(t&&t.startsWith("#_mso")){var n='a[href="#'.concat(e.name,'"]'),i=this.$el.find(n);i.length&&i.get(0).scrollIntoView({behavior:"smooth",block:"center"})}else t&&t.startsWith("#")?this.link.scrollToAnchor(t):-1!==e.href.indexOf("mailto:")?this.o_win.open(e.href).close():(e.target||(e.target="_self"),this.browser.msie||this.browser.edge?this.o_win.open(e.href,e.target):this.o_win.open(e.href,e.target,"noopener"));this.popups.hide("link.edit")}},plugin:"link"}),y.DefineIcon("linkEdit",{NAME:"edit",SVG_KEY:"edit"}),y.RegisterCommand("linkEdit",{title:"Edit Link",undo:!1,refreshAfterCallback:!1,popup:!0,callback:function(){this.link.update()},refresh:function(e){this.link.get()?e.removeClass("fr-hidden"):e.addClass("fr-hidden")},plugin:"link"}),y.DefineIcon("linkRemove",{NAME:"unlink",SVG_KEY:"unlink"}),y.RegisterCommand("linkRemove",{title:"Unlink",callback:function(){this.link.remove()},refresh:function(e){this.link.get()?e.removeClass("fr-hidden"):e.addClass("fr-hidden")},plugin:"link"}),y.DefineIcon("linkBack",{NAME:"arrow-left",SVG_KEY:"back"}),y.RegisterCommand("linkBack",{title:"Back",undo:!1,focus:!1,back:!0,refreshAfterCallback:!1,callback:function(){this.link.back()},refresh:function(e){var t=this.link.get()&&this.doc.hasFocus();(this.image?this.image.get():null)||t||this.opts.toolbarInline?(e.removeClass("fr-hidden"),e.next(".fr-separator").removeClass("fr-hidden")):(e.addClass("fr-hidden"),e.next(".fr-separator").addClass("fr-hidden"))},plugin:"link"}),y.DefineIcon("linkList",{NAME:"search",SVG_KEY:"search"}),y.RegisterCommand("linkList",{title:"Choose Link",type:"dropdown",focus:!1,undo:!1,refreshAfterCallback:!1,html:function(){for(var e='<ul class="fr-dropdown-list" role="presentation">',t=this.opts.linkList,n=0;n<t.length;n++)e+='<li role="presentation"><a class="fr-command" tabIndex="-1" role="option" data-cmd="linkList" data-param1="'.concat(n,'">').concat(t[n].displayText||t[n].text,"</a></li>");return e+="</ul>"},callback:function(e,t){this.link.usePredefined(t)},plugin:"link"}),y.RegisterCommand("linkInsert",{focus:!1,refreshAfterCallback:!1,callback:function(){this.link.insertCallback()},refresh:function(e){this.link.get()?e.text(this.language.translate("Update")):e.text(this.language.translate("Insert"))},plugin:"link"}),y.DefineIcon("imageLink",{NAME:"link",SVG_KEY:"insertLink"}),y.RegisterCommand("imageLink",{title:"Insert Link",undo:!1,focus:!1,popup:!0,callback:function(){this.link.imageLink()},refresh:function(e){var t;this.link.get()?((t=e.prev()).hasClass("fr-separator")&&t.removeClass("fr-hidden"),e.addClass("fr-hidden")):((t=e.prev()).hasClass("fr-separator")&&t.addClass("fr-hidden"),e.removeClass("fr-hidden"))},plugin:"link"}),y.DefineIcon("linkStyle",{NAME:"magic",SVG_KEY:"linkStyles"}),y.RegisterCommand("linkStyle",{title:"Style",type:"dropdown",html:function(){var e='<ul class="fr-dropdown-list" role="presentation">',t=this.opts.linkStyles;for(var n in t)t.hasOwnProperty(n)&&(e+='<li role="presentation"><a class="fr-command" tabIndex="-1" role="option" data-cmd="linkStyle" data-param1="'.concat(n,'">').concat(this.language.translate(t[n]),"</a></li>"));return e+="</ul>"},callback:function(e,t){this.link.applyStyle(t)},refreshOnShow:function(e,t){var n=this.$,i=this.link.get();if(i){var r=n(i);t.find(".fr-command").each(function(){var e=n(this).data("param1"),t=r.hasClass(e);n(this).toggleClass("fr-active",t).attr("aria-selected",t)})}},refresh:function(e){this.link.get()?e.removeClass("fr-hidden"):e.addClass("fr-hidden")},plugin:"link"}),y.DefineIcon("anchorList",{}),y.RegisterCommand("anchorList",{title:"Anchor Link",type:"dropdown",focus:!0,undo:!1,icon:"",refreshAfterCallback:!0,html:function(){return this.link.getAllAnchorList()},callback:function(e,t){var n={href:t,target:"_self",text:""};this.link.usePredefined(!1,n)},refresh:function(e){this.link.getAllAnchorList()?e.show():e.hide()},refreshOnShow:function(e,t){t.find(".fr-dropdown-content")[0].innerHTML=this.link.getAllAnchorList();var n=t.parents(".fr-link-input-layer"),i=n.find(".fr-input-line");setTimeout(function(){t.css("top",i.height()-parseInt(i.css("padding-bottom"))),t.css("left",0),t.css("margin-left",0),t.css("width",n.width()),t.css("bottom","auto")},10)},plugin:"link"}),y.DefineIcon("anchorListIcon",{NAME:"bookmark",SVG_KEY:"bookmark",VIEWBOX:"-10 -10 35 35"})});
|
|
7
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("froala-editor")):"function"==typeof define&&define.amd?define(["froala-editor"],t):t(("undefined"!=typeof globalThis?globalThis:e||self).FroalaEditor)}(this,function(C){"use strict";Object.assign(C.POPUP_TEMPLATES,{"link.edit":"[_BUTTONS_]","link.insert":"[_BUTTONS_][_INPUT_LAYER_]"}),Object.assign(C.DEFAULTS,{linkEditButtons:["linkOpen","linkStyle","linkEdit","linkRemove"],linkInsertButtons:["linkBack","|","linkList"],linkAttributes:{},linkAutoPrefix:"http://",linkStyles:{"fr-green":"Green","fr-strong":"Thick"},linkMultipleStyles:!0,linkConvertEmailAddress:!0,linkAlwaysBlank:!1,linkAlwaysNoFollow:!1,linkNoOpener:!0,linkNoReferrer:!0,linkList:[{text:"Froala",href:"https://froala.com",target:"_blank"},{text:"Google",href:"https://google.com",target:"_blank"},{displayText:"Facebook",href:"https://facebook.com"}],linkText:!0}),C.PLUGINS.link=function(v){var b=v.$;function A(){var e=v.image?v.image.get():null;if(e||!v.$wp)return"A"==v.el.tagName?v.el:e&&e.get(0).parentNode&&"A"==e.get(0).parentNode.tagName?e.get(0).parentNode:void 0;e=v.selection.ranges(0).commonAncestorContainer;try{e&&(e.contains&&e.contains(v.el)||!v.el.contains(e)||v.el==e)&&(e=null)}catch(i){e=null}if(e&&"A"===e.tagName)return e;var t,e=v.selection.element(),n=v.selection.endElement();"A"==e.tagName||v.node.isElement(e)||(e=v.opts.iframe&&null!=(t=v.markdown)&&t.isEnabled()?null:b(e).parentsUntil(v.$el,"a").first().get(0)),"A"==n.tagName||v.node.isElement(n)||(n=v.opts.iframe&&null!=(t=v.markdown)&&t.isEnabled()?null:b(n).parentsUntil(v.$el,"a").first().get(0));try{n&&(n.contains&&n.contains(v.el)||!v.el.contains(n)||v.el==n)&&(n=null)}catch(i){n=null}try{e&&(e.contains&&e.contains(v.el)||!v.el.contains(e)||v.el==e)&&(e=null)}catch(i){e=null}return!n||n!=e||"A"!=n.tagName||(v.browser.msie||v.helpers.isMobile())&&(v.selection.info(e).atEnd||v.selection.info(e).atStart)?null:e}function E(){var e,t,n=v.image?v.image.get():null,i=[];if(n)"A"==n.get(0).parentNode.tagName&&i.push(n.get(0).parentNode);else if(v.win.getSelection){var r=v.win.getSelection();if(r.getRangeAt&&r.rangeCount)for(var a=v.doc.createRange(),l=0;l<r.rangeCount;++l)if((t=(t=(e=r.getRangeAt(l)).commonAncestorContainer)&&1!=t.nodeType?t.parentNode:t)&&"a"==t.nodeName.toLowerCase())i.push(t);else for(var o=t.getElementsByTagName("a"),s=0;s<o.length;++s)a.selectNodeContents(o[s]),a.compareBoundaryPoints(e.END_TO_START,e)<1&&-1<a.compareBoundaryPoints(e.START_TO_END,e)&&i.push(o[s])}else if(v.doc.selection&&"Control"!=v.doc.selection.type)if("a"==(t=(e=v.doc.selection.createRange()).parentElement()).nodeName.toLowerCase())i.push(t);else{o=t.getElementsByTagName("a"),a=v.doc.body.createTextRange();for(var c=0;c<o.length;++c)a.moveToElementText(o[c]),-1<a.compareEndPoints("StartToEnd",e)&&a.compareEndPoints("EndToStart",e)<1&&i.push(o[c])}return i}function y(n){if(v.core.hasFocus()||v.opts.iframe&&(!document.hasFocus||document.hasFocus())){if(r(),n&&"keyup"===n.type&&(n.altKey||n.which==C.KEYCODE.ALT))return!0;setTimeout(function(){if(!n||1==n.which||"mouseup"!=n.type){var e=A(),t=v.image?v.image.get():null;if(e&&!t){if(v.image){var t=v.node.contents(e);if(1==t.length&&"IMG"==t[0].tagName)return 0===(t=v.selection.ranges(0)).startOffset&&0===t.endOffset?b(e).before(C.INVISIBLE_SPACE+C.MARKERS):b(e).after(C.INVISIBLE_SPACE+C.MARKERS),v.selection.restore(),!1}n&&n.stopPropagation(),b(e).hasClass("fr-anchor")||i(e)}}},v.helpers.isIOS()?100:0)}}function i(e){v.popups.get("link.edit")||function(){var e="";1<=v.opts.linkEditButtons.length&&("A"==v.el.tagName&&0<=v.opts.linkEditButtons.indexOf("linkRemove")&&v.opts.linkEditButtons.splice(v.opts.linkEditButtons.indexOf("linkRemove"),1),e='<div class="fr-buttons">'.concat(v.button.buildList(v.opts.linkEditButtons),"</div>"));e={buttons:e},e=v.popups.create("link.edit",e);v.$wp&&v.events.$on(v.$wp,"scroll.link-edit",function(){var e=A();e&&v.popups.isVisible("link.edit")&&(b(e).hasClass("fr-anchor")||i(e))})}();var e=b(e),t=(v.popups.isVisible("link.edit")||v.popups.refresh("link.edit"),v.popups.setContainer("link.edit",v.$sc),e.offset().left+e.outerWidth()/2),n=e.offset().top+e.outerHeight();v.popups.show("link.edit",t,n,e.outerHeight(),!0)}function r(){v.popups.hide("link.edit")}function l(){var e=v.popups.get("link.insert"),t=A();if(t){for(var n=b(t),i=e.find('input.fr-link-attr[type="text"]'),r=e.find('input.fr-link-attr[type="checkbox"]'),a=0;a<i.length;a++){var l,o=(l=b(i[a])).attr("name")||"",o="href"===o?decodeURI(n.attr(o)):n.attr(o);l.val(o)}for(r.attr("checked",!1),a=0;a<r.length;a++)l=b(r[a]),n.attr(l.attr("name"))==l.data("checked")&&l.attr("checked",!0);e.find('input.fr-link-attr[type="text"][name="text"]').val(n.text())}else e.find('input.fr-link-attr[type="text"]').val(""),e.find('input.fr-link-attr[type="checkbox"]').attr("checked",!1),e.find('input.fr-link-attr[type="text"][name="text"]').val(v.selection.text());e.find("input.fr-link-attr").trigger("change"),(v.image?v.image.get():null)?e.find('.fr-link-attr[name="text"]').parent().hide():e.find('.fr-link-attr[name="text"]').parent().show()}function a(e){if(e)return v.popups.onRefresh("link.insert",l),!0;var t,n,e="",i=(1<=v.opts.linkInsertButtons.length&&(e='<div class="fr-buttons fr-tabs">'.concat(v.button.buildList(v.opts.linkInsertButtons),"</div>")),""),r=0,a=v.button.buildList(["anchorList"]),i='<div class="fr-link-insert-layer fr-layer fr-active" id="fr-link-insert-layer-'.concat(v.id,'">');for(t in i+='<div class="fr-link-input-layer"><div class="fr-input-line"><input id="fr-link-insert-layer-url-'.concat(v.id,'" name="href" type="text" class="fr-link-attr" placeholder="').concat(v.language.translate("URL"),'" tabIndex="').concat(++r,'"></div><div class="fr-buttons">').concat(a,"</div></div>"),v.opts.linkText&&(i+='<div class="fr-input-line"><input id="fr-link-insert-layer-text-'.concat(v.id,'" name="text" type="text" class="fr-link-attr" placeholder="').concat(v.language.translate("Text"),'" tabIndex="').concat(++r,'"></div>')),v.opts.linkAttributes)v.opts.linkAttributes.hasOwnProperty(t)&&(n=v.opts.linkAttributes[t],i+='<div class="fr-input-line"><input name="'.concat(t,'" type="text" class="fr-link-attr" placeholder="').concat(v.language.translate(n),'" tabIndex="').concat(++r,'"></div>'));v.opts.linkAlwaysBlank||(i+='<div class="fr-checkbox-line"><span class="fr-checkbox"><input name="target" class="fr-link-attr" data-checked="_blank" type="checkbox" id="fr-link-target-'.concat(v.id,'" tabIndex="').concat(++r,'"><span>').concat('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="10" height="10" viewBox="0 0 32 32"><path d="M27 4l-15 15-7-7-5 5 12 12 20-20z" fill="#FFF"></path></svg>','</span></span><label id="fr-label-target-').concat(v.id,'">').concat(v.language.translate("Open in new tab"),"</label></div>")),i+='<div class="fr-action-buttons"><button class="fr-command fr-submit" role="button" data-cmd="linkInsert" href="#" tabIndex="'.concat(++r,'" type="button">').concat(v.language.translate("Insert"),"</button></div></div>");a=v.popups.create("link.insert",{buttons:e,input_layer:i});return v.$wp&&v.events.$on(v.$wp,"scroll.link-insert",function(){(v.image?v.image.get():null)&&v.popups.isVisible("link.insert")&&c(),v.popups.isVisible("link.insert")&&o()}),a}function s(e,t,n){if(v.opts.trackChangesEnabled){if(v.edit.on(),v.events.focus(!0),v.undo.saveStep(),v.markers.insert(),v.html.wrap(),!v.$el.find(".fr-marker").length)return void v.popups.hide("link.insert");v.markers.remove()}if(!1===v.events.trigger("link.beforeInsert",[e,t,n=void 0===n?{}:n]))return!1;var i=v.image?v.image.get():null,r=(i||"A"==v.el.tagName?"A"==v.el.tagName&&v.$el.focus():(v.selection.restore(),v.popups.hide("link.insert")),e);v.opts.linkConvertEmailAddress&&v.helpers.isEmail(e)&&!/^mailto:.*/i.test(e)&&(e="mailto:".concat(e));if(""===v.opts.linkAutoPrefix||new RegExp("^("+C.LinkProtocols.join("|")+"):.","i").test(e)||/^data:image.*/i.test(e)||/^(https?:|ftps?:|file:|)\/\//i.test(e)||/^([A-Za-z]:(\\){1,2}|[A-Za-z]:((\\){1,2}[^\\]+)+)(\\)?$/i.test(e)||["/","{","[","#","(",".",'"',"\\"].indexOf((e||"")[0])<0&&(e=v.opts.linkAutoPrefix+e),(e=v.helpers.sanitizeURL(e))===decodeURIComponent(e)&&(e=encodeURI(e)),v.opts.linkAlwaysBlank&&(n.target="_blank"),v.opts.linkAlwaysNoFollow&&(n.rel="nofollow"),v.helpers.isEmail(r)&&(n.target=null,n.rel=null),"_blank"==n.target?(v.opts.linkNoOpener&&(n.rel?n.rel+=" noopener":n.rel="noopener"),v.opts.linkNoReferrer&&(n.rel?n.rel+=" noreferrer":n.rel="noreferrer")):null==n.target&&(n.rel?n.rel=n.rel.replace(/noopener/,"").replace(/noreferrer/,""):n.rel=null),t=t||"",e===v.opts.linkAutoPrefix)return v.popups.get("link.insert").find('input[name="href"]').addClass("fr-error"),v.events.trigger("link.bad",[r]),!1;var a,l=A();if(l){if((a=b(l)).attr("href",e),0<t.length&&a.text()!=t&&!i){v.opts.trackChangesEnabled&&((l=b(a.get(0).outerHTML)).insertBefore(a.parent()),l=v.track_changes.wrapLinkInTracking(l,v.track_changes.getPendingChanges().length-1),l=v.track_changes.wrapInDelete(l),a.parent().append(l));for(var o=a.get(0);1===o.childNodes.length&&o.childNodes[0].nodeType==Node.ELEMENT_NODE;)o=o.childNodes[0];b(o).text(t)}for(var s in i||a.prepend(C.START_MARKER).append(C.END_MARKER),n)n[s]?a.attr(s,n[s]):a.removeAttr(s);i||v.selection.restore()}else{if(i)i.wrap('<a href="'.concat(e,'"></a>')),v.image.hasCaption()&&i.parent().append(i.parents(".fr-img-caption").find(".fr-inner"));else if(v.format.remove("a"),v.selection.isCollapsed())t=0===t.length?r:t,v.html.insert('<a href="'.concat(e,'">').concat(C.START_MARKER).concat(t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")).concat(C.END_MARKER,"</a>")),v.selection.restore();else if(0<t.length&&t!=v.selection.text().replace(/\n/g,""))v.selection.remove(),v.html.insert('<a href="'.concat(e,'">').concat(C.START_MARKER).concat(t.replace(/&/g,"&")).concat(C.END_MARKER,"</a>")),v.selection.restore();else{if(!v.selection.isCollapsed()){v.selection.save();for(var c=v.$el.find(".fr-marker").addClass("fr-unprocessed").toArray();c.length;){var p=b(c.pop()),d=(p.removeClass("fr-unprocessed"),v.node.deepestParent(p.get(0)));if(d){for(var f=p.get(0),u="",h="";f=f.parentNode,v.node.isBlock(f)||(u+=v.node.closeTagString(f),h=v.node.openTagString(f)+h),f!=d;);var g=v.node.openTagString(p.get(0))+p.html()+v.node.closeTagString(p.get(0)),p=(p.replaceWith('<span id="fr-break"></span>'),d.outerHTML);p=(p=p.replace(/<span id="fr-break"><\/span>/g,u+g+h)).replace(h+u,""),d.outerHTML=p}c=v.$el.find(".fr-marker.fr-unprocessed").toArray()}v.html.cleanEmptyTags(),v.selection.restore()}v.format.apply("a",{href:e})}for(var k=E(),m=0;m<k.length;m++)(a=b(k[m])).attr(n),a.removeAttr("_moz_dirty");1==k.length&&v.$wp&&!i&&(b(k[0]).prepend(C.START_MARKER).append(C.END_MARKER),v.selection.restore())}i?((l=v.popups.get("link.insert"))&&l.find("input:focus").blur(),v.image.edit(i)):y()}function o(){r();var e,t,n=A();n&&(v.popups.get("link.insert")||a(),v.popups.isVisible("link.insert")||(v.popups.refresh("link.insert"),v.selection.save(),v.helpers.isMobile()&&(v.events.disableBlur(),v.$el.blur(),v.events.enableBlur())),v.popups.setContainer("link.insert",v.$sc),e=(n=(v.image?v.image.get():null)||b(n)).offset().left+n.outerWidth()/2,t=n.offset().top+n.outerHeight(),v.popups.show("link.insert",e,t,n.outerHeight(),!0))}function c(){var e,t,n,i=v.image?v.image.getEl():null;i&&(t=v.popups.get("link.insert"),i.outerWidth(),v.image.hasCaption()&&(i=i.find(".fr-img-wrap"),b(i))&&b(i).find("img")&&b(i).find("img").outerWidth(),t=t||a(),l(),v.popups.setContainer("link.insert",v.$sc),e=(t=v.helpers.getImagePopupPosition(i)).top,t=t.left,n=i.outerHeight(),v.opts.iframe&&v.image.hasCaption()&&b(i)&&b(i).find("img")&&(n=b(i).find("img").outerHeight()),v.popups.show("link.insert",t,e,n,!0))}return{_init:function(){v.events.on("keyup",function(e){e.which!=C.KEYCODE.ESC&&y(e)}),v.events.on("window.mouseup",y),v.events.$on(v.$el,"click","a",function(e){v.edit.isDisabled()&&e.preventDefault()}),v.helpers.isMobile()&&v.events.$on(v.$doc,"selectionchange",y),a(!0),v.events.on("popups.show.link.insert",function(){var e=v.popups.get("link.insert").find('input.fr-link-attr[name="href"]');e.length&&e.trigger("focus")}),"A"==v.el.tagName&&v.$el.addClass("fr-view"),v.events.on("toolbar.esc",function(){if(v.popups.isVisible("link.edit"))return v.events.disableBlur(),v.events.focus(),!1},!0)},remove:function(){var e,t=A(),n=v.image?v.image.get():null;if(!1===v.events.trigger("link.beforeRemove",[t]))return!1;n&&t?v.image.hasCaption()?(n.addClass("img-link-caption"),b(t).replaceWith(b(t).html()),e=document.querySelectorAll("img.img-link-caption"),v.image.edit(b(e[0])),b(e[0]).removeClass("img-link-caption")):(n.unwrap(),v.image.edit(n)):t&&(v.selection.save(),b(t).replaceWith(b(t).html()),v.selection.restore(),r())},showInsertPopup:function(){var e,t,n=v.$tb.find('.fr-command[data-cmd="insertLink"]'),i=v.popups.get("link.insert");(i=i||a()).hasClass("fr-active")||(v.popups.refresh("link.insert"),v.popups.setContainer("link.insert",v.$tb||v.$sc),v.selection.save(),n.isVisible()?(t=(e=v.button.getPosition(n)).left,v.popups.show("link.insert",t,e.top,n.outerHeight())):(v.position.forSelection(i),v.popups.show("link.insert")),(t=i.find('button[data-cmd="anchorList"]')).isVisible()&&v.button.click(t))},usePredefined:function(e,t){var n,i,r=v.opts.linkList[e]||t,a=(e=v.popups.get("link.insert")).find('input.fr-link-attr[type="text"]'),l=e.find('input.fr-link-attr[type="checkbox"]');for(r.rel&&(e.rel=r.rel),i=0;i<a.length;i++)r[(n=b(a[i])).attr("name")]?(n.val(r[n.attr("name")]),n.toggleClass("fr-not-empty",!0)):"text"!=n.attr("name")&&n.val("");for(i=0;i<l.length;i++)(n=b(l[i])).attr("checked",n.data("checked")==r[n.attr("name")]);v.accessibility.focusPopup(e)},insertCallback:function(){for(var e,t=v.popups.get("link.insert"),n=t.find('input.fr-link-attr[type="text"]'),i=t.find('input.fr-link-attr[type="checkbox"]'),r=(n.filter('[name="href"]').val()||"").trim(),a=v.opts.linkText?n.filter('[name="text"]').val():"",l={},o=0;o<n.length;o++)e=b(n[o]),["href","text"].indexOf(e.attr("name"))<0&&(l[e.attr("name")]=e.val());for(o=0;o<i.length;o++)(e=b(i[o])).is(":checked")?l[e.attr("name")]=e.data("checked"):l[e.attr("name")]=e.data("unchecked")||null;t.rel&&(l.rel=t.rel),t=v.helpers.scrollTop(),s(r,a,l),b(v.o_win).scrollTop(t)},insert:s,update:o,get:A,allSelected:E,back:function(){(v.image?v.image.get():null)?v.image.back():(v.events.disableBlur(),v.selection.restore(),v.events.enableBlur(),A()&&v.$wp?(v.selection.restore(),r(),y()):"A"==v.el.tagName?(v.$el.focus(),y()):(v.popups.hide("link.insert"),v.toolbar.showInline()))},imageLink:c,applyStyle:function(e,t,n){void 0===n&&(n=v.opts.linkMultipleStyles),void 0===t&&(t=v.opts.linkStyles);var i=A();if(!i)return!1;n||((n=Object.keys(t)).splice(n.indexOf(e),1),b(i).removeClass(n.join(" "))),b(i).toggleClass(e),y()},getAllAnchorList:function(){var e=v.$el.find('[data-cmd="anchor"]').get().map(function(e){return e.name}),t='<ul class="fr-dropdown-list" role="presentation">';if(!e.length)return!1;var n=v.icon.create("anchorListIcon");b(n).find("path").css("fill","dimgray");for(var i=0;i<e.length;i++)t+='<li role="presentation"><a class="fr-command" tabIndex="-1" role="option" data-cmd="anchorList" data-param1="#'.concat(e[i],'">').concat(n).concat(e[i],"</a></li>");return t+="</ul>"},scrollToAnchor:function(e){var t,e=e.startsWith("#")?e.slice(1):e;return!!(e=v.$el.get(0).querySelector('[name="'.concat(e,'"]')))&&(e.scrollIntoView({behavior:"smooth",block:"center"}),v.linkToAnchor?v.linkToAnchor.focusOnAnchor(e):(t=v.doc.createRange(),v.selection.get().removeAllRanges(),t.selectNode(e),v.selection.get().addRange(t),$anchor.trigger("mousedown"),$anchor.trigger("mouseup")),!0)}}},C.DefineIcon("insertLink",{NAME:"link",SVG_KEY:"insertLink"}),C.RegisterShortcut(C.KEYCODE.K,"insertLink",null,"K"),C.RegisterCommand("insertLink",{title:"Insert Link",undo:!1,focus:!0,refreshOnCallback:!1,popup:!0,callback:function(){this.popups.isVisible("link.insert")?(this.$el.find(".fr-marker").length&&(this.events.disableBlur(),this.selection.restore()),this.popups.hide("link.insert")):this.link.showInsertPopup()},plugin:"link"}),C.DefineIcon("linkOpen",{NAME:"external-link",FA5NAME:"external-link-alt",SVG_KEY:"openLink"}),C.RegisterCommand("linkOpen",{title:"Open Link",undo:!1,refresh:function(e){var t,n=this.link.get();n?(e.removeClass("fr-hidden"),t="Open Link",n.href.includes("#")&&(t="Scroll to target"),e.attr("title",this.language.translate(t))):e.addClass("fr-hidden")},callback:function(){var e,t,n=this.link.get();n&&((e=n.getAttribute("href"))&&e.startsWith("#_mso")?(t='a[href="#'.concat(n.name,'"]'),(t=this.$el.find(t)).length&&t.get(0).scrollIntoView({behavior:"smooth",block:"center"})):e&&e.startsWith("#")?this.link.scrollToAnchor(e):-1!==n.href.indexOf("mailto:")?this.o_win.open(n.href).close():(n.target||(n.target="_self"),this.browser.msie||this.browser.edge?this.o_win.open(n.href,n.target):this.o_win.open(n.href,n.target,"noopener")),this.popups.hide("link.edit"))},plugin:"link"}),C.DefineIcon("linkEdit",{NAME:"edit",SVG_KEY:"edit"}),C.RegisterCommand("linkEdit",{title:"Edit Link",undo:!1,refreshAfterCallback:!1,popup:!0,callback:function(){this.link.update()},refresh:function(e){this.link.get()?e.removeClass("fr-hidden"):e.addClass("fr-hidden")},plugin:"link"}),C.DefineIcon("linkRemove",{NAME:"unlink",SVG_KEY:"unlink"}),C.RegisterCommand("linkRemove",{title:"Unlink",callback:function(){this.link.remove()},refresh:function(e){this.link.get()?e.removeClass("fr-hidden"):e.addClass("fr-hidden")},plugin:"link"}),C.DefineIcon("linkBack",{NAME:"arrow-left",SVG_KEY:"back"}),C.RegisterCommand("linkBack",{title:"Back",undo:!1,focus:!1,back:!0,refreshAfterCallback:!1,callback:function(){this.link.back()},refresh:function(e){var t=this.link.get()&&this.doc.hasFocus();(this.image?this.image.get():null)||t||this.opts.toolbarInline?(e.removeClass("fr-hidden"),e.next(".fr-separator").removeClass("fr-hidden")):(e.addClass("fr-hidden"),e.next(".fr-separator").addClass("fr-hidden"))},plugin:"link"}),C.DefineIcon("linkList",{NAME:"search",SVG_KEY:"search"}),C.RegisterCommand("linkList",{title:"Choose Link",type:"dropdown",focus:!1,undo:!1,refreshAfterCallback:!1,html:function(){for(var e='<ul class="fr-dropdown-list" role="presentation">',t=this.opts.linkList,n=0;n<t.length;n++)e+='<li role="presentation"><a class="fr-command" tabIndex="-1" role="option" data-cmd="linkList" data-param1="'.concat(n,'">').concat(t[n].displayText||t[n].text,"</a></li>");return e+="</ul>"},callback:function(e,t){this.link.usePredefined(t)},plugin:"link"}),C.RegisterCommand("linkInsert",{focus:!1,refreshAfterCallback:!1,callback:function(){this.link.insertCallback()},refresh:function(e){this.link.get()?e.text(this.language.translate("Update")):e.text(this.language.translate("Insert"))},plugin:"link"}),C.DefineIcon("imageLink",{NAME:"link",SVG_KEY:"insertLink"}),C.RegisterCommand("imageLink",{title:"Insert Link",undo:!1,focus:!1,popup:!0,callback:function(){this.link.imageLink()},refresh:function(e){var t;this.link.get()?((t=e.prev()).hasClass("fr-separator")&&t.removeClass("fr-hidden"),e.addClass("fr-hidden")):((t=e.prev()).hasClass("fr-separator")&&t.addClass("fr-hidden"),e.removeClass("fr-hidden"))},plugin:"link"}),C.DefineIcon("linkStyle",{NAME:"magic",SVG_KEY:"linkStyles"}),C.RegisterCommand("linkStyle",{title:"Style",type:"dropdown",html:function(){var e,t='<ul class="fr-dropdown-list" role="presentation">',n=this.opts.linkStyles;for(e in n)n.hasOwnProperty(e)&&(t+='<li role="presentation"><a class="fr-command" tabIndex="-1" role="option" data-cmd="linkStyle" data-param1="'.concat(e,'">').concat(this.language.translate(n[e]),"</a></li>"));return t+="</ul>"},callback:function(e,t){this.link.applyStyle(t)},refreshOnShow:function(e,t){var n,i=this.$,r=this.link.get();r&&(n=i(r),t.find(".fr-command").each(function(){var e=i(this).data("param1"),e=n.hasClass(e);i(this).toggleClass("fr-active",e).attr("aria-selected",e)}))},refresh:function(e){this.link.get()?e.removeClass("fr-hidden"):e.addClass("fr-hidden")},plugin:"link"}),C.DefineIcon("anchorList",{}),C.RegisterCommand("anchorList",{title:"Anchor Link",type:"dropdown",focus:!0,undo:!1,icon:"",refreshAfterCallback:!0,html:function(){return this.link.getAllAnchorList()},callback:function(e,t){this.link.usePredefined(!1,{href:t,target:"_self",text:""})},refresh:function(e){this.link.getAllAnchorList()?e.show():e.hide()},refreshOnShow:function(e,t){t.find(".fr-dropdown-content")[0].innerHTML=this.link.getAllAnchorList();var n=t.parents(".fr-link-input-layer"),i=n.find(".fr-input-line");setTimeout(function(){t.css("top",i.height()-parseInt(i.css("padding-bottom"))),t.css("left",0),t.css("margin-left",0),t.css("width",n.width()),t.css("bottom","auto")},10)},plugin:"link"}),C.DefineIcon("anchorListIcon",{NAME:"bookmark",SVG_KEY:"bookmark",VIEWBOX:"-10 -10 35 35"})});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* froala_editor
|
|
2
|
+
* froala_editor v5.0.0 (https://www.froala.com/wysiwyg-editor)
|
|
3
3
|
* License https://froala.com/wysiwyg-editor/terms/
|
|
4
|
-
* Copyright 2014-
|
|
4
|
+
* Copyright 2014-2026 Froala Labs
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(require("froala-editor")):"function"==typeof define&&define.amd?define(["froala-editor"],n):n(e.FroalaEditor)}(this,function(
|
|
7
|
+
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(require("froala-editor")):"function"==typeof define&&define.amd?define(["froala-editor"],n):n(("undefined"!=typeof globalThis?globalThis:e||self).FroalaEditor)}(this,function(v){"use strict";Object.assign(v.POPUP_TEMPLATES,{"editAnchor.popup":"[_BUTTONS_]","insertAnchor.popup":"[_BUTTONS_][_LINK_TO_ANCHOR_LAYER_]"}),Object.assign(v.DEFAULTS,{anchorEditButtons:["anchorEdit","anchorRemove"]}),v.PLUGINS.linkToAnchor=function(p){var r,d,f=p.$;function o(){var e=p.button.buildList(["closeAnchorInsert"]),e={buttons:'<div class="fr-buttons fr-link-to-anchor-header"><span>'.concat(p.language.translate("Insert Anchor"),'</span><span class="fr-align-right">').concat(e,"</span></div>"),link_to_anchor_layer:"\n <div class='fr-layer fr-active fr-link-to-anchor-layer' tabindex=\"-1\">\n <div class='fr-input-container'>\n <div class='fr-input-line fr-link-to-anchor-field'>\n <input type='text' id=\"fr-link-to-anchor-".concat(p.id,"\" placeholder='").concat(p.language.translate("Anchor Name"),"' tabIndex='1'>\n </div>\n <div class=\"fr-input-text\">").concat(p.language.translate("Enter the anchor name without space"),'</div>\n </div>\n\n <div class="fr-action-buttons">\n <button type="button" class="fr-command fr-submit" data-cmd="anchorInsert" tabIndex="2" role="button">').concat(p.language.translate("Insert"),"</button>\n </div>\n </div>\n ")};r=p.popups.create("insertAnchor.popup",e),p.events.$on(r,".fr-link-to-anchor-field input","input",function(){a(!1)}),p.events.on("popups.show.insertAnchor.popup",function(){r&&r.find(".fr-link-to-anchor-field input").trigger("focus")})}function u(e){if(!1===p.events.trigger("anchor.beforeRemove",[e]))return!1;e&&(p.selection.save(),f(e).remove(),p.selection.restore(),h())}function a(e){var n=r.find(".fr-link-to-anchor-field input, .fr-input-text");e?(n.addClass("fr-error-text"),n.focus()):(n.removeClass("fr-error-text"),r.find(".fr-input-text").text(p.language.translate("Enter the anchor name without space")))}function i(){var e=r.data("data-update-ancher");r.removeData("data-update-ancher"),p.popups.hide("insertAnchor.popup"),g(e)}function h(){p.$el.find(".fr-anchor").removeClass("fr-active"),d&&d.removeData("data-update-ancher"),p.popups.hide("editAnchor.popup")}function t(e){var n,t,r;e&&(d||(n=p.button.buildList(p.opts.anchorEditButtons),n={buttons:'<div class="fr-buttons fr-edit-anchor"><label class="fr-edit-anchor-label"></label><span class="fr-align-right">'.concat(n,"</span></div>")},d=p.popups.create("editAnchor.popup",n),p.events.on("popups.hide.editAnchor.popup",function(){p.$el.find(".fr-anchor").removeClass("fr-active fr-anchor-selected")}),p.events.on("commands.undo commands.redo",function(){g(p.$el.find('a[data-cmd="anchor"].fr-active').get(0)),p.$el.find(".fr-marker-helper").remove()})),(n=f(e)).addClass("fr-active"),d.find("label.fr-edit-anchor-label").text("#"+n.attr("name")),p.popups.isVisible("editAnchor.popup")||p.popups.refresh("editAnchor.popup"),p.popups.setContainer("editAnchor.popup",p.$sc),t=n.offset().left+n.outerWidth()/2,r=n.offset().top+n.outerHeight(),d.data("data-update-ancher",e),p.popups.show("editAnchor.popup",t,r,n.outerHeight(),!0))}function g(e){if(p.$el.find(".fr-anchor").removeClass("fr-active fr-anchor-selected"),!e)return!1;f(e).addClass("fr-active");var n=p.doc.createRange();p.selection.get().removeAllRanges(),n.selectNode(e),p.selection.get().addRange(n),t(e)}function e(e){var n=e.which,t=n===v.KEYCODE.DELETE,r=n===v.KEYCODE.BACKSPACE;if(e&&p.keys.isArrow(n)||r||t){var o=n===v.KEYCODE.ARROW_LEFT||r,a=n===v.KEYCODE.ARROW_RIGHT||t;if(d&&d.isVisible()&&!r&&!t)return c=d.data("data-update-ancher"),l=f(c),c?(i=c.nextSibling,c=c.previousSibling,void(a?i&&i.length&&i.nodeType!==Node.ELEMENT_NODE||(l.after(v.INVISIBLE_SPACE),l.attr("data-anchor-marker","after")):c&&c.length&&c.nodeType!==Node.ELEMENT_NODE||(l.before(v.INVISIBLE_SPACE),l.attr("data-anchor-marker","before")))):void 0;var i=p.selection.get();if(!i||!i.anchorNode)return;var s=i.anchorNode,c=i.anchorOffset;if(s.nodeType===Node.TEXT_NODE)if(o&&0===c)s=s.previousSibling;else{if(!a||c!==s.textContent.length)return;s=s.nextSibling}else s=r?(l=s.childNodes[c]||s.childNodes[c-1])&&l.previousElementSibling:n===v.KEYCODE.ARROW_LEFT?s.previousSibling:s.nextSibling;s&&s.nodeType===Node.ELEMENT_NODE&&s.classList.contains("fr-anchor")&&(r||t?u(s):setTimeout(function(){g(s)},30));var l,i=p.$el.find(".fr-anchor[data-anchor-marker]");i.length&&(o=i.attr("data-anchor-marker"),c=(a=i.get(0)).previousSibling,l=a.nextSibling,"before"===o&&c&&c.nodeType===Node.TEXT_NODE&&"\u200b"===c.textContent&&c.remove(),"after"===o&&l&&l.nodeType===Node.TEXT_NODE&&"\u200b"===l.textContent&&l.remove(),i.removeAttr("data-anchor-marker"))}p.keys.ctrlKey(e)&&n==v.KEYCODE.A&&h()}function n(){p.$el.find('a[data-cmd="anchor"]').addClass("fr-anchor")}return{_init:function(){p.$wp&&(p.events.$on(p.$doc,"selectionchange",function(){p.$el.find("a.fr-anchor").each(function(e,n){var t=f(n),r=d&&d.isVisible();!function(e){var n,t,r,o=(p.opts.iframe?p.iframe_document:p.doc).getSelection(),a=p.selection.element();if(o&&0!==o.rangeCount&&!p.selection.isCollapsed()&&!a.classList.contains("fr-view"))try{return"function"==typeof o.containsNode?o.containsNode(e,!0):"function"==typeof(n=o.getRangeAt(0)).intersectsNode?n.intersectsNode(e):(t=n.startContainer,r=n.endContainer,e.contains(t)||e.contains(r))}catch(i){}}(n)||r?t.removeClass("fr-anchor-selected"):t.addClass("fr-anchor-selected")})}),p.events.on("keydown",e),p.events.on("paste.after",n),p.events.bindClick(p.$el,".fr-anchor",function(e){e.preventDefault(),e.stopPropagation();e=e.currentTarget;return e&&g(e),!1}))},insert:function(){var e,n=r.find(".fr-link-to-anchor-field input").val(),t=r.data("data-update-ancher");if(!n.length||n.includes(" "))a(!0);else if(t&&(e=f(t)).attr("name")===n)i();else if(p.$el.find('[data-cmd="anchor"]').filter(function(e){return e.name===n}).length)r.find(".fr-input-text").text(p.language.translate("Anchor name already exists.")),a(!0);else{if(!1===p.events.trigger("anchor.beforeInsert",[t,n]))return!1;t?(e.attr("name",n),i()):(t=p.$el.find(".fr-marker-helper").get(0)||p.markers.insert(),e='<a name="'.concat(n,'" class="fr-anchor" data-cmd="anchor" contenteditable="false"></a>'),t&&(t.outerHTML=e,t=p.$el.find('a[name="'.concat(n,'"]')),r.data("data-update-ancher",t.get(0)),t[0].previousSibling||t.before(v.INVISIBLE_SPACE),t[0].nextSibling||t.after(v.INVISIBLE_SPACE),t.attr("data-anchor-marker","after"),i()))}},update:function(e){var n,t;h(),e&&(r||o(),r.data("data-update-ancher",e),p.popups.isVisible("insertAnchor.popup")||(p.popups.refresh("insertAnchor.popup"),p.selection.save(),p.helpers.isMobile()&&(p.events.disableBlur(),p.$el.blur(),p.events.enableBlur())),p.popups.setContainer("insertAnchor.popup",p.$sc),n=(e=f(e)).offset().left+e.outerWidth()/2,t=e.offset().top+e.outerHeight(),r.find(".fr-link-to-anchor-field input").val(e.attr("name")),p.popups.show("insertAnchor.popup",n,t,e.outerHeight(),!0))},remove:u,showPopup:function(){var e,n,t=p.$tb.find('.fr-command[data-cmd="insertAnchor"]');r||o(),r.hasClass("fr-active")||(p.selection.save(),p.popups.refresh("insertAnchor.popup"),p.popups.setContainer("insertAnchor.popup",p.$tb),r.find(".fr-link-to-anchor-field input").val(""),a(!1),p.$el.find(".fr-marker-helper").remove(),t.isVisible()?(e=(n=p.button.getPosition(t)).left,p.popups.show("insertAnchor.popup",e,n.top,t.outerHeight())):(p.position.forSelection(r),p.popups.show("insertAnchor.popup")),(e=p.$el.find(".fr-marker")).length&&((t=(n=e.first()).get(0).nextSibling)&&t.nodeType===Node.ELEMENT_NODE&&"COLGROUP"===t.tagName?((t=e.parents("table")).before(v.START_MARKER),t):(n.before(v.START_MARKER),e)).prev().removeClass("fr-marker").addClass("fr-marker-helper"))},closeAnchorInsert:i,focusOnAnchor:g}},v.RegisterShortcut(v.KEYCODE.D,"insertAnchor",null,"D"),v.DefineIcon("insertAnchor",{NAME:"bookmark",SVG_KEY:"bookmark",VIEWBOX:"-5 -4 26 26"}),v.RegisterCommand("insertAnchor",{title:"Insert Anchor",icon:"insertAnchor",plugin:"linkToAnchor",type:"button",undo:!0,focus:!0,popup:!0,showOnMobile:!0,refreshAfterCallback:!0,callback:function(){this.linkToAnchor.showPopup()}}),v.RegisterCommand("anchorInsert",{undo:!0,focus:!0,plugin:"linkToAnchor",callback:function(){this.linkToAnchor.insert()},refresh:function(e){var n=this.popups.get("insertAnchor.popup"),t=n.data("data-update-ancher"),n=n.find(".fr-link-to-anchor-header span").first();t?(e.text(this.language.translate("Update")),n.text(this.language.translate("Update Anchor"))):(e.text(this.language.translate("Insert")),n.text(this.language.translate("Insert Anchor")))}}),v.DefineIcon("closeAnchorInsert",{NAME:"cancel",SVG_KEY:"cancel"}),v.RegisterCommand("closeAnchorInsert",{title:"Cancel",undo:!1,focus:!1,plugin:"linkToAnchor",callback:function(){this.linkToAnchor.closeAnchorInsert()}}),v.DefineIcon("anchorEdit",{NAME:"edit",SVG_KEY:"edit"}),v.RegisterCommand("anchorEdit",{title:"Edit Anchor",undo:!0,popup:!0,plugin:"linkToAnchor",refreshAfterCallback:!1,callback:function(){var e=this.popups.get("editAnchor.popup");this.linkToAnchor.update(e.data("data-update-ancher"))}}),v.DefineIcon("anchorRemove",{NAME:"trash",SVG_KEY:"remove"}),v.RegisterCommand("anchorRemove",{title:"Delete",undo:!0,popup:!0,plugin:"linkToAnchor",refreshAfterCallback:!1,callback:function(){var e=this.popups.get("editAnchor.popup");this.linkToAnchor.remove(e.data("data-update-ancher"))}})});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* froala_editor
|
|
2
|
+
* froala_editor v5.0.0 (https://www.froala.com/wysiwyg-editor)
|
|
3
3
|
* License https://froala.com/wysiwyg-editor/terms/
|
|
4
|
-
* Copyright 2014-
|
|
4
|
+
* Copyright 2014-2026 Froala Labs
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("froala-editor")):"function"==typeof define&&define.amd?define(["froala-editor"],t):t(e.FroalaEditor)}(this,function(o){"use strict";function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function w(e){return function t(e){if(Array.isArray(e))return i(e)}(e)||function n(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function a(e,t){if(e){if("string"==typeof e)return i(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}(e)||function r(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}o=o&&o.hasOwnProperty("default")?o["default"]:o,Object.assign(o.DEFAULTS,{listAdvancedTypes:!0}),o.PLUGINS.lists=function(E){var T=E.$;function v(e){return'<span class="fr-open-'.concat(e.toLowerCase(),'"></span>')}function L(e){return'<span class="fr-close-'.concat(e.toLowerCase(),'"></span>')}function c(e,t){!function S(e,t){for(var n=[],a=0;a<e.length;a++){var r=e[a].parentNode;"LI"==e[a].tagName&&r.tagName!=t&&n.indexOf(r)<0&&n.push(r)}for(var i=n.length-1;0<=i;i--){var o=T(n[i]);o.replaceWith("<".concat(t.toLowerCase()," ").concat(E.node.attributes(o.get(0)),">").concat(o.html(),"</").concat(t.toLowerCase(),">"))}}(e,t);var n,a=E.html.defaultTag(),r=null;e.length&&(n="rtl"==E.opts.direction||"rtl"==T(e[0]).css("direction")?"margin-right":"margin-left");for(var i=0;i<e.length;i++){var o=E.helpers.getPX(T(e[i]).css(n))||0;(e[i].style.marginLeft=null)===r&&(r=o);var l=0<r?"<".concat(t,' style="').concat(n,": ").concat(r,'px ">'):"<".concat(t,">"),s="</".concat(t,">");if("TD"!=e[i].tagName&&"TH"!=e[i].tagName){if("LI"!=e[i].tagName){for(o-=r;0<o/E.opts.indentMargin;)l+="</".concat(t,">"),s+=s,o-=E.opts.indentMargin;var c=function c(e){for(var t=1<arguments.length&&arguments[1]!==undefined?arguments[1]:"next",n="next"===t?e.nextSibling:e.previousSibling;n;){if(n.nodeType!==Node.ELEMENT_NODE||"SPAN"!==n.tagName||!n.classList.contains("fr-marker"))return!0;n="next"===t?n.nextSibling:n.previousSibling}return!1},d=T(e[i]),f=d.find("strong");if(a&&e[i].tagName.toLowerCase()==a){var p=E.node.attributes(e[i]);if(0<f.length&&E.node.blockParent(f[0])===d[0]){for(var g=f[0].previousSibling,m=f[0].nextSibling,u=!g&&!m,h=Array.from(d[0].childNodes).every(function(e){return e.nodeType===Node.ELEMENT_NODE&&("STRONG"===e.tagName||"BR"===e.tagName)||e.nodeType===Node.TEXT_NODE&&!e.nodeValue.trim()}),N=f.parent();N.is("u")||N.is("em");)N=N.parent();var v=u&&!N.is("span")||m&&"BR"===m.tagName&&!m.nextSibling||h,L=u&&N.is("span")&&!c(N[0],"next")&&!c(N[0],"prev"),y=g&&!c(f[0],"prev"),b=m&&!c(f[0],"next");(v||L||y&&b||y&&!m||b&&!g)&&(p.includes("style=")?p=p.replace(/style="([^"]*)"/,function(e,t){if(t.includes("font-weight:")){var n=t.replace(/font-weight:\s*[^;]+/,"font-weight: bold");return'style="'.concat(n,'"')}var a=t.trim().endsWith(";")?" ":"; ";return'style="'.concat(t).concat(a,'font-weight: bold;"')}):p+=' style="font-weight: bold;"',f.each(function(){this.replaceWith.apply(this,w(this.childNodes))}))}d.replaceWith("".concat(l,"<li").concat(p,">").concat(d[0].innerHTML,"</li>").concat(s))}else"STRONG"!==d.parent()[0].tagName||c(d[0],"next")||c(d[0],"prev")?1!=f.length||c(f[0],"next")||c(f[0],"prev")?d.wrap("".concat(l,"<li></li>").concat(s)):(f[0].outerHTML=f[0].innerHTML,d.wrap("".concat(l,'<li style="font-weight: bold;"></li>').concat(s))):(d.unwrap(),d.wrap("".concat(l,'<li style="font-weight: bold;"></li>').concat(s)))}}else e[i].firstChild||T(e[i]).append("".concat(l,"<li>\u200b</li>").concat(s))}E.clean.lists()}function d(g){var m,e,t=[];for(m=g.length-1;0<=m;m--)for(e=m-1;0<=e;e--){if(T(g[e]).find(g[m]).length||g[e]==g[m]){T(g[m]).addClass("fr-removed-block-".concat(m)),t.push(m),g.splice(m,1);break}if(T(g[e]).contains(g[m])){T(g[e]).addClass("fr-removed-block-".concat(e)),t.push(e),g.splice(e,1);break}}var u=[],h=!1,N=function N(){var e=T(g[m]),t=g[m].parentNode,n=e.attr("class"),a=e.attr("style");if(e.is(":first-child")&&(h=!0,T(t.parentNode).removeAttr("start")),e.before(L(t.tagName)),"LI"==t.parentNode.tagName){if(e.is(":last-child")){var r=e.find("> ul, > ol").last();r.length&&r.wrap("<".concat(t.tagName,">"))}e.before(L("LI")),e.after(v("LI"))}else if("OL"==t.parentNode.tagName)h||(e.before(L("OL")),e.after(v("OL")));else if("UL"==t.parentNode.tagName)h||(e.before(L("UL")),e.after(v("UL")));else{var i="",o=!1,l=!1;a&&(i+=a.trim().replace(/;?$/,";"));var s="rtl"===E.opts.direction||"rtl"===e.css("direction")?"margin-right":"margin-left",c=E.helpers.getPX(T(t).css(s));c&&(T(t).attr("style")||"").includes("".concat(s,":"))&&(i+="".concat(s,":").concat(c,"px;")),i=(i=(i=i.replace(/font-weight\s*:\s*bold\s*;?/i,function(){return o=!0,""})).replace(/font-style\s*:\s*italic\s*;?/i,function(){return l=!0,""})).trim().length?i.trim().replace(/;{2,}/g,";").replace(/;$/,"")+";":"";var d=function d(e,t,n){e.prepend(v(n)),e.append(L(n)),t.each(function(){var e=T(this);e.before(L(n)),e.prepend(v(n)),e.append(L(n)),e.after(v(n))})},f=e.find(E.html.blockTagsQuery());if(o&&d(e,f,"STRONG"),l&&d(e,f,"EM"),E.html.defaultTag()&&0===e.find(E.html.blockTagsQuery()).length){var p=T(document.createElement(E.html.defaultTag()));p.attr(i?{style:i}:null),n&&p.addClass(n),p.append(e.contents()),e[0].innerHTML=p[0].outerHTML}E.node.isEmpty(e.get(0),!0)||0!==e.find(E.html.blockTagsQuery()).length||("DIV"==t.parentNode.tagName&&E.html.defaultTag()?(e.prepend(v(E.html.defaultTag())),e.append(L(E.html.defaultTag()))):e.append("<br>")),e.append(v("LI")),e.prepend(L("LI"))}e.after(v(t.tagName)),"LI"==t.parentNode.tagName&&(t=t.parentNode.parentNode),u.indexOf(t)<0&&u.push(t)};for(m=0;m<g.length;m++)N();var a=function a(){var e=T(u[m]),t=e.html(),n=E.helpers.getPX(e.css("margin-left"))||0;t=(t=t.replace(/<span class="fr-open-([a-z]*)"><\/span>/g,function(e,t){return 0<n?"<".concat(t,' style="margin-left:').concat(n,'px;">'):"<".concat(t,">")})).replace(/<span class="fr-close-([a-z]*)"><\/span>/g,"</$1>"),e.replaceWith(E.node.openTagString(e.get(0))+t+E.node.closeTagString(e.get(0)))};for(m=0;m<u.length;m++)a();return E.$el.find("li:empty").remove(),E.$el.find("ul:empty, ol:empty").remove(),E.$el.find("strong:empty, em:empty").remove(),E.clean.lists(),E.$el.find("ul:empty, ol:empty").remove(),E.html.wrap(),t}function g(e,t){var n=T(document.createElement("li"));if(e.childNodes.length)for(var a=e.childNodes[0].attributes,r=0;r<a.length;r++){var i=a[r];"style"===i.name&&(n[0].style.cssText+=i.value)}T(e).prepend(n),T(e).removeAttr("start");for(var o=E.node.contents(t)[0];o&&!E.node.isList(o);){var l=o.nextSibling;n.append(o),o=l}}function e(e){if("indent"==e||"outdent"==e){var t=!1,n=E.selection.blocks(!1,!0),a=[],r=n[0].previousSibling||n[0].parentElement;if("outdent"==e){if("UL"!=n[0].parentNode.tagName&&"UL"!=r.parentNode.tagName&&"OL"!=r.parentNode.tagName&&"LI"!=r.parentNode.tagName)return;if(!n[0].previousSibling&&"none"==r.parentNode.style.listStyleType)return void function o(e){for(E.selection.save();0<e.childNodes.length;)e.parentNode.parentNode.append(e.childNodes[0]);E.clean.lists(),E.selection.restore()}(r)}else{if("UL"!=n[0].parentElement.tagName&&"OL"!=n[0].parentElement.tagName&&"LI"!=n[0].parentElement.tagName)return;if(E.node.isBlock(n[0])&&"LI"!==n[0].tagName&&0<T(n[0]).parentsUntil(E.$el,"LI").length&&(n[0]=n[0].parentElement,r=n[0].parentElement),!n[0].previousSibling||"LI"!=n[0].previousSibling.tagName){if(r&&["UL","OL"].includes(r.tagName))return void function l(e){E.selection.save();var t="OL"==e.tagName?document.createElement("ol"):document.createElement("ul");for(T(t).css("list-style-type",T(e).css("list-style-type"));0<e.childNodes.length;)t.append(e.childNodes[0]);var n=T(document.createElement("li"));n.css("list-style-type","none"),n.append(t),e.append(n.get(0)),E.clean.lists(),E.selection.restore()}(r);t=!0}}for(var i=0;i<n.length;i++)"LI"==n[i].tagName?(t=!0,a.push(n[i])):"LI"==n[i].parentNode.tagName&&a.indexOf(n[i].parentNode)<0&&(t=!0,a.push(n[i].parentNode));t&&("indent"==e?function p(e){E.selection.save();for(var t=!1,n=0;n<e.length;n++){var a=e[n].previousSibling;if(a&&"LI"==a.tagName&&!t){var r=T(e[n]).find("> ul, > ol").last().get(0);if(r)g(r,e[n]),T(a).append(T(r)),T(e[n]).remove();else{var i=T(a).find("> ul, > ol").last().get(0);if(i)T(i).append(T(e[n]));else{var o=T("<".concat(e[n].parentNode.tagName,">"));T(a).append(o),o.append(T(e[n]))}}}else if(!a||"OL"!=a.tagName&&"UL"!=a.tagName){var l=e[n].parentNode;if(t=!0,"UL"==l.tagName||"OL"==l.tagName){var s=T(e[n]).find("> ol, > ul"),c=null==e[n].previousSibling;if(s.length){var d=s.first().get(0);g(d,e[n]),c?T(l).prepend(T(d)):T(l).append(T(d)),T(e[n]).remove()}else T(e[n]).wrap("<".concat(l.tagName,">"));c&&0<T(l).find("> li").length&&T(l).attr("start","2")}}else{var f=T(e[n]).find("> ol, > ul").first().get(0);f?(g(f,e[n]),T(a).append(T(f).children()),T(e[n]).remove(),T(f).remove()):T(a).append(T(e[n]))}}E.clean.lists(),E.selection.restore()}(a):function s(e){E.selection.save();var t=[];do{t=d(e),e=[];for(var n=0;n<t.length;n++){var a=E.$el.find(".fr-removed-block-".concat(t[n])).first().get(0);T(a).removeClass("fr-removed-block-".concat(t[n])),""==T(a).attr("class")&&T(a).removeAttr("class"),e.push(a)}}while(0<t.length);E.selection.restore()}(a))}}return{_init:function t(){E.events.on("commands.after",e),E.events.on("keydown",function(e){if(e.which==o.KEYCODE.TAB||(e.ctrlKey||e.metaKey)&&"]"===e.key){if(!e.shiftKey&&E.$tb.find('[data-cmd="indent"]').hasClass("fr-disabled"))return e.preventDefault(),e.stopPropagation(),!1;for(var t=E.selection.blocks(),n=[],a=0;a<t.length;a++)"LI"==t[a].tagName?n.push(t[a]):"LI"==t[a].parentNode.tagName&&n.push(t[a].parentNode);if(1<=n.length||n.length&&(E.selection.info(n[0]).atStart||E.node.isEmpty(n[0])))return e.preventDefault(),e.stopPropagation(),e.shiftKey?E.commands.outdent():E.commands.indent(),!1}},!0),E.events.on("keydown",function(e){if(e.which==o.KEYCODE.ENTER&&!e.ctrlKey&&!e.metaKey){var t=E.markers.insert();if(!t)return!0;var n=t.parentNode,a="STRONG"===n.tagName,r=n.parentNode,i="LI"===r.tagName;a&&i&&!n.previousSibling&&(!n.nextSibling||n.nextSibling&&"BR"===n.nextSibling.tagName&&!n.nextSibling.nextSibling)&&(n.outerHTML=n.innerHTML,T(r).css("font-weight","bold")),T(t).remove()}})},format:function f(e,t){var n,a,r=1<(a=E.selection.blocks(!0)).length&&a[a.length-1],i=E.selection.ranges();if(r&&r.firstChild&&i.length&&E.node.isEmpty(r)&&!i[0].endOffset&&i[0].setEndAfter(r.firstChild,1),E.html.syncInputs(),E.selection.save(),E.browser.safari&&E.helpers.getSafariVersion()<17){var o=E.selection.ranges();if(i&&i[0].endContainer&&o&&o[0].endContainer&&!i[0].endContainer.isSameNode(o[0].endContainer)&&i[0].endContainer.previousSibling&&i[0].endContainer.previousSibling.isSameNode(o[0].endContainer)){var l=T(o[0].endContainer).find('.fr-marker[data-type="false"]');T(i[0].endContainer).append(l[0])}}for(E.html.wrap(!0,!0,!0,!0),E.selection.restore(),a=E.selection.blocks(!0),n=0;n<a.length;n++)"LI"!=a[n].tagName&&"LI"==a[n].parentNode.tagName&&(a[n]=a[n].parentNode);if(E.selection.save(),function s(e,t){for(var n=!0,a=0;a<e.length;a++){if("LI"!=e[a].tagName)return!1;e[a].parentNode.tagName!=t&&(n=!1)}return n}(a,e)?t||d(a):c(a,e),E.html.unwrap(),E.selection.restore(),t=t||"default"){for(a=E.selection.blocks(),n=0;n<a.length;n++)"LI"!=a[n].tagName&&"LI"==a[n].parentNode.tagName&&(a[n]=a[n].parentNode);for(n=0;n<a.length;n++)"LI"==a[n].tagName&&(T(a[n].parentNode).css("list-style-type","default"===t?"":t),0===(T(a[n].parentNode).attr("style")||"").length&&T(a[n].parentNode).removeAttr("style"))}},refresh:function r(e,t){var n=T(E.selection.element());if(n.get(0)!=E.el){var a=n.get(0);(a="LI"!=a.tagName&&a.firstElementChild&&"LI"!=a.firstElementChild.tagName?n.parents("li").get(0):"LI"==a.tagName||a.firstElementChild?a.firstElementChild&&"LI"==a.firstElementChild.tagName?n.get(0).firstChild:n.get(0):n.parents("li").get(0))&&a.parentNode.tagName==t&&E.el.contains(a.parentNode)&&e.addClass("fr-active")}}}},o.DefineIcon("formatOLSimple",{NAME:"list-ol",SVG_KEY:"orderedList"}),o.RegisterCommand("formatOLSimple",{title:"Ordered List",type:"button",options:{"default":"Default",circle:"Circle",disc:"Disc",square:"Square"},refresh:function(e){this.lists.refresh(e,"OL")},callback:function(e,t){this.lists.format("OL",t)},plugin:"lists"}),o.RegisterCommand("formatUL",{title:"Unordered List",type:"button",hasOptions:function(){return this.opts.listAdvancedTypes},options:{"default":"Default",circle:"Circle",disc:"Disc",square:"Square"},refresh:function(e){this.lists.refresh(e,"UL")},callback:function(e,t){this.lists.format("UL",t)},plugin:"lists"}),o.RegisterCommand("formatOL",{title:"Ordered List",hasOptions:function(){return this.opts.listAdvancedTypes},options:{"default":"Default","lower-alpha":"Lower Alpha","lower-greek":"Lower Greek","lower-roman":"Lower Roman","upper-alpha":"Upper Alpha","upper-roman":"Upper Roman"},refresh:function(e){this.lists.refresh(e,"OL")},callback:function(e,t){this.lists.format("OL",t)},plugin:"lists"}),o.DefineIcon("formatUL",{NAME:"list-ul",SVG_KEY:"unorderedList"}),o.DefineIcon("formatOL",{NAME:"list-ol",SVG_KEY:"orderedList"})});
|
|
7
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("froala-editor")):"function"==typeof define&&define.amd?define(["froala-editor"],t):t(("undefined"!=typeof globalThis?globalThis:e||self).FroalaEditor)}(this,function(o){"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function k(e){return function(e){if(Array.isArray(e))return r(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||l(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){var n;if(e)return"string"==typeof e?r(e,t):"Map"===(n="Object"===(n={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:n)||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}Object.assign(o.DEFAULTS,{listAdvancedTypes:!0}),o.PLUGINS.lists=function(C){var O=C.$;function g(e){return'<span class="fr-open-'.concat(e.toLowerCase(),'"></span>')}function m(e){return'<span class="fr-close-'.concat(e.toLowerCase(),'"></span>')}function i(e,t){for(var n=e,r=t,a=[],o=0;o<n.length;o++){var i=n[o].parentNode;"LI"==n[o].tagName&&i.tagName!=r&&a.indexOf(i)<0&&a.push(i)}for(var l=a.length-1;0<=l;l--){var s=O(a[l]);s.replaceWith("<".concat(r.toLowerCase()," ").concat(C.node.attributes(s.get(0)),">").concat(s.html(),"</").concat(r.toLowerCase(),">"))}var c,d=C.html.defaultTag(),f=null;e.length&&(c="rtl"==C.opts.direction||"rtl"==O(e[0]).css("direction")?"margin-right":"margin-left");for(var p=0;p<e.length;p++){var u=C.helpers.getPX(O(e[p]).css(c))||0,g=0<(f=(e[p].style.marginLeft=null)===f?u:f)?"<".concat(t,' style="').concat(c,": ").concat(f,'px ">'):"<".concat(t,">"),m="</".concat(t,">");if("TD"==e[p].tagName||"TH"==e[p].tagName)e[p].firstChild||O(e[p]).append("".concat(g,"<li>\u200b</li>").concat(m));else if("LI"!=e[p].tagName){for(u-=f;0<u/C.opts.indentMargin;)g+="</".concat(t,">"),m+=m,u-=C.opts.indentMargin;var h=function h(e){for(var t=1<arguments.length&&arguments[1]!==undefined?arguments[1]:"next",n="next"===t?e.nextSibling:e.previousSibling;n;){if(n.nodeType!==Node.ELEMENT_NODE||"SPAN"!==n.tagName||!n.classList.contains("fr-marker"))return!0;n="next"===t?n.nextSibling:n.previousSibling}return!1},N=O(e[p]),v=N.find("strong");if(d&&e[p].tagName.toLowerCase()==d){var y=C.node.attributes(e[p]);if(0<v.length&&C.node.blockParent(v[0])===N[0]){for(var L=v[0].previousSibling,b=v[0].nextSibling,S=!L&&!b,E=Array.from(N[0].childNodes).every(function(e){return e.nodeType===Node.ELEMENT_NODE&&("STRONG"===e.tagName||"BR"===e.tagName)||e.nodeType===Node.TEXT_NODE&&!e.nodeValue.trim()}),T=v.parent();T.is("u")||T.is("em");)T=T.parent();var E=S&&!T.is("span")||b&&"BR"===b.tagName&&!b.nextSibling||E,S=S&&T.is("span")&&!h(T[0],"next")&&!h(T[0],"prev"),w=L&&!h(v[0],"prev"),I=b&&!h(v[0],"next");(E||S||w&&I||w&&!b||I&&!L)&&(y.includes("style=")?y=y.replace(/style="([^"]*)"/,function(e,t){var n;return t.includes("font-weight:")?(n=t.replace(/font-weight:\s*[^;]+/,"font-weight: bold"),'style="'.concat(n,'"')):(n=t.trim().endsWith(";")?" ":"; ",'style="'.concat(t).concat(n,'font-weight: bold;"'))}):y+=' style="font-weight: bold;"',v.each(function(){this.replaceWith.apply(this,k(this.childNodes))}))}N.replaceWith("".concat(g,"<li").concat(y,">").concat(N[0].innerHTML,"</li>").concat(m))}else"STRONG"!==N.parent()[0].tagName||h(N[0],"next")||h(N[0],"prev")?1!=v.length||h(v[0],"next")||h(v[0],"prev")?N.wrap("".concat(g,"<li></li>").concat(m)):(v[0].outerHTML=v[0].innerHTML,N.wrap("".concat(g,'<li style="font-weight: bold;"></li>').concat(m))):(N.unwrap(),N.wrap("".concat(g,'<li style="font-weight: bold;"></li>').concat(m)))}}C.clean.lists()}function L(c){for(var e,t=[],d=c.length-1;0<=d;d--)for(e=d-1;0<=e;e--){if(O(c[e]).find(c[d]).length||c[e]==c[d]){O(c[d]).addClass("fr-removed-block-".concat(d)),t.push(d),c.splice(d,1);break}if(O(c[e]).contains(c[d])){O(c[e]).addClass("fr-removed-block-".concat(e)),t.push(e),c.splice(e,1);break}}var f=[],p=!1,u=function u(){var e,t,n,r,a,o=O(c[d]),i=c[d].parentNode,l=o.attr("class"),s=o.attr("style");o.is(":first-child")&&(p=!0,O(i.parentNode).removeAttr("start")),o.before(m(i.tagName)),"LI"==i.parentNode.tagName?(o.is(":last-child")&&(e=o.find("> ul, > ol").last()).length&&e.wrap("<".concat(i.tagName,">")),o.before(m("LI")),o.after(g("LI"))):"OL"==i.parentNode.tagName?p||(o.before(m("OL")),o.after(g("OL"))):"UL"==i.parentNode.tagName?p||(o.before(m("UL")),o.after(g("UL"))):(e="",n=t=!1,s&&(e+=s.trim().replace(/;?$/,";")),s="rtl"===C.opts.direction||"rtl"===o.css("direction")?"margin-right":"margin-left",(a=C.helpers.getPX(O(i).css(s)))&&(O(i).attr("style")||"").includes("".concat(s,":"))&&(e+="".concat(s,":").concat(a,"px;")),e=(e=(e=e.replace(/font-weight\s*:\s*bold\s*;?/i,function(){return t=!0,""})).replace(/font-style\s*:\s*italic\s*;?/i,function(){return n=!0,""})).trim().length?e.trim().replace(/;{2,}/g,";").replace(/;$/,"")+";":"",r=function r(e,t,n){e.prepend(g(n)),e.append(m(n)),t.each(function(){var e=O(this);e.before(m(n)),e.prepend(g(n)),e.append(m(n)),e.after(g(n))})},s=o.find(C.html.blockTagsQuery()),t&&r(o,s,"STRONG"),n&&r(o,s,"EM"),C.html.defaultTag()&&0===o.find(C.html.blockTagsQuery()).length&&((a=O(document.createElement(C.html.defaultTag()))).attr(e?{style:e}:null),l&&a.addClass(l),a.append(o.contents()),o[0].innerHTML=a[0].outerHTML),C.node.isEmpty(o.get(0),!0)||0!==o.find(C.html.blockTagsQuery()).length||("DIV"==i.parentNode.tagName&&C.html.defaultTag()?(o.prepend(g(C.html.defaultTag())),o.append(m(C.html.defaultTag()))):o.append("<br>")),o.append(g("LI")),o.prepend(m("LI"))),o.after(g(i.tagName)),"LI"==i.parentNode.tagName&&(i=i.parentNode.parentNode),f.indexOf(i)<0&&f.push(i)};for(d=0;d<c.length;d++)u();var r=function r(){var e=O(f[d]),t=e.html(),n=C.helpers.getPX(e.css("margin-left"))||0;t=(t=t.replace(/<span class="fr-open-([a-z]*)"><\/span>/g,function(e,t){return 0<n?"<".concat(t,' style="margin-left:').concat(n,'px;">'):"<".concat(t,">")})).replace(/<span class="fr-close-([a-z]*)"><\/span>/g,"</$1>"),e.replaceWith(C.node.openTagString(e.get(0))+t+C.node.closeTagString(e.get(0)))};for(d=0;d<f.length;d++)r();return C.$el.find("li").filter(function(){if(0<this.children.length)return!1;var e,t=function(e,t){var n,r,a,o,i="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(i)return a=!(r=!0),{s:function(){i=i.call(e)},n:function(){var e=i.next();return r=e.done,e},e:function(e){a=!0,n=e},f:function(){try{r||null==i["return"]||i["return"]()}finally{if(a)throw n}}};if(Array.isArray(e)||(i=l(e))||t)return i&&(e=i),o=0,{s:t=function(){},n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:t};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(this.childNodes);try{for(t.s();!(e=t.n()).done;){var n=e.value;if(n.nodeType===Node.TEXT_NODE&&""!==n.textContent.trim())return!1}}catch(r){t.e(r)}finally{t.f()}return!0}).remove(),C.$el.find("ul:empty, ol:empty").remove(),C.$el.find("strong:empty, em:empty").remove(),C.clean.lists(),C.$el.find("ul:empty, ol:empty").remove(),C.html.wrap(),t}function b(e,t){var n=O(document.createElement("li"));if(e.childNodes.length)for(var r=e.childNodes[0].attributes,a=0;a<r.length;a++){var o=r[a];"style"===o.name&&(n[0].style.cssText+=o.value)}O(e).prepend(n),O(e).removeAttr("start");for(var i=C.node.contents(t)[0];i&&!C.node.isList(i);){var l=i.nextSibling;n.append(i),i=l}}function e(e){if("indent"==e||"outdent"==e){var t=!1,n=C.selection.blocks(!1,!0),r=[],a=n[0].previousSibling||n[0].parentElement;if("outdent"==e){if("UL"!=n[0].parentNode.tagName&&"UL"!=a.parentNode.tagName&&"OL"!=a.parentNode.tagName&&"LI"!=a.parentNode.tagName)return;if(!n[0].previousSibling&&"none"==a.parentNode.style.listStyleType){var o=a;for(C.selection.save();0<o.childNodes.length;)o.parentNode.parentNode.append(o.childNodes[0]);return C.clean.lists(),void C.selection.restore()}}else{if("UL"!=n[0].parentElement.tagName&&"OL"!=n[0].parentElement.tagName&&"LI"!=n[0].parentElement.tagName)return;if(C.node.isBlock(n[0])&&"LI"!==n[0].tagName&&0<O(n[0]).parentsUntil(C.$el,"LI").length&&(n[0]=n[0].parentElement,a=n[0].parentElement),!n[0].previousSibling||"LI"!=n[0].previousSibling.tagName){if(a&&["UL","OL"].includes(a.tagName)){var i=a,l=(C.selection.save(),"OL"==i.tagName?document.createElement("ol"):document.createElement("ul"));for(O(l).css("list-style-type",O(i).css("list-style-type"));0<i.childNodes.length;)l.append(i.childNodes[0]);a=O(document.createElement("li"));return a.css("list-style-type","none"),a.append(l),i.append(a.get(0)),C.clean.lists(),void C.selection.restore()}t=!0}}for(var s=0;s<n.length;s++)"LI"==n[s].tagName?(t=!0,r.push(n[s])):"LI"==n[s].parentNode.tagName&&r.indexOf(n[s].parentNode)<0&&(t=!0,r.push(n[s].parentNode));if(t){if("indent"==e){var c=r;C.selection.save();for(var d=!1,f=0;f<c.length;f++){var p,u,g,m=c[f].previousElementSibling;m&&"LI"==m.tagName&&!d?(p=O(c[f]).find("> ul, > ol").last().get(0))?(b(p,c[f]),O(m).append(O(p)),O(c[f]).remove()):((p=O(m).find("> ul, > ol").last().get(0))?O(p):(p=O("<".concat(c[f].parentNode.tagName,">")),O(m).append(p),p)).append(O(c[f])):!m||"OL"!=m.tagName&&"UL"!=m.tagName?(d=!0,"UL"!=(p=c[f].parentNode).tagName&&"OL"!=p.tagName||(g=O(c[f]).find("> ol, > ul"),u=null==c[f].previousSibling,g.length?(b(g=g.first().get(0),c[f]),u?O(p).prepend(O(g)):O(p).append(O(g)),O(c[f]).remove()):O(c[f]).wrap("<".concat(p.tagName,">")),u&&0<O(p).find("> li").length&&O(p).attr("start","2"))):(g=O(c[f]).find("> ol, > ul").first().get(0))?(b(g,c[f]),O(m).append(O(g).children()),O(c[f]).remove(),O(g).remove()):O(m).append(O(c[f]))}C.clean.lists()}else{var h,N=r;C.selection.save();do{h=L(N),N=[];for(var v=0;v<h.length;v++){var y=C.$el.find(".fr-removed-block-".concat(h[v])).first().get(0);O(y).removeClass("fr-removed-block-".concat(h[v])),""==O(y).attr("class")&&O(y).removeAttr("class"),N.push(y)}}while(0<h.length)}C.selection.restore()}}}return{_init:function(){C.events.on("commands.after",e),C.events.on("keydown",function(e){if(e.which==o.KEYCODE.TAB||(e.ctrlKey||e.metaKey)&&"]"===e.key){if(!e.shiftKey&&C.$tb.find('[data-cmd="indent"]').hasClass("fr-disabled"))return e.preventDefault(),e.stopPropagation(),!1;for(var t=C.selection.blocks(),n=[],r=0;r<t.length;r++)"LI"==t[r].tagName?n.push(t[r]):"LI"==t[r].parentNode.tagName&&n.push(t[r].parentNode);return 1<=n.length||n.length&&(C.selection.info(n[0]).atStart||C.node.isEmpty(n[0]))?(e.preventDefault(),e.stopPropagation(),e.shiftKey?C.commands.outdent():C.commands.indent(),!1):void 0}},!0),C.events.on("keydown",function(e){if(e.which==o.KEYCODE.ENTER&&!e.ctrlKey&&!e.metaKey){e=C.markers.insert();if(!e)return!0;var t=e.parentNode,n="STRONG"===t.tagName,r=t.parentNode,a="LI"===r.tagName;!n||!a||t.previousSibling||t.nextSibling&&(t.nextSibling,"BR"!==t.nextSibling.tagName||t.nextSibling.nextSibling)||(t.outerHTML=t.innerHTML,O(r).css("font-weight","bold")),O(e).remove()}})},format:function(e,t){var n,r=C.selection.blocks(!0),a=1<r.length&&r[r.length-1],o=C.selection.ranges();for(a&&a.firstChild&&o.length&&C.node.isEmpty(a)&&!o[0].endOffset&&o[0].setEndAfter(a.firstChild,1),C.html.syncInputs(),C.selection.save(),C.browser.safari&&C.helpers.getSafariVersion()<17&&(a=C.selection.ranges(),o)&&o[0].endContainer&&a&&a[0].endContainer&&!o[0].endContainer.isSameNode(a[0].endContainer)&&o[0].endContainer.previousSibling&&o[0].endContainer.previousSibling.isSameNode(a[0].endContainer)&&(a=O(a[0].endContainer).find('.fr-marker[data-type="false"]'),O(o[0].endContainer).append(a[0])),C.html.wrap(!0,!0,!0,!0),C.selection.restore(),r=C.selection.blocks(!0),n=0;n<r.length;n++)"LI"!=r[n].tagName&&"LI"==r[n].parentNode.tagName&&(r[n]=r[n].parentNode);if(C.selection.save(),!function(e,t){for(var n=!0,r=0;r<e.length;r++){if("LI"!=e[r].tagName)return;e[r].parentNode.tagName!=t&&(n=!1)}return n}(r=r.filter(function(e){return!O(e).closest(".fr-code-snippet").length}),e)?i(r,e):t||L(r),C.html.unwrap(),C.selection.restore(),t=t||"default"){for(r=C.selection.blocks(),n=0;n<r.length;n++)"LI"!=r[n].tagName&&"LI"==r[n].parentNode.tagName&&(r[n]=r[n].parentNode);for(n=0;n<r.length;n++)"LI"==r[n].tagName&&(O(r[n].parentNode).css("list-style-type","default"===t?"":t),0===(O(r[n].parentNode).attr("style")||"").length)&&O(r[n].parentNode).removeAttr("style")}},refresh:function(e,t){var n,r=O(C.selection.element());r.get(0)!=C.el&&(n=("LI"==(n=r.get(0)).tagName||!n.firstElementChild||"LI"==n.firstElementChild.tagName)&&("LI"==n.tagName||n.firstElementChild)?n.firstElementChild&&"LI"==n.firstElementChild.tagName?r.get(0).firstChild:r.get(0):r.parents("li").get(0))&&n.parentNode.tagName==t&&C.el.contains(n.parentNode)&&e.addClass("fr-active")}}},o.DefineIcon("formatOLSimple",{NAME:"list-ol",SVG_KEY:"orderedList"}),o.RegisterCommand("formatOLSimple",{title:"Ordered List",type:"button",options:{"default":"Default",circle:"Circle",disc:"Disc",square:"Square"},refresh:function(e){this.lists.refresh(e,"OL")},callback:function(e,t){this.lists.format("OL",t)},plugin:"lists"}),o.RegisterCommand("formatUL",{title:"Unordered List",type:"button",hasOptions:function(){return this.opts.listAdvancedTypes},options:{"default":"Default",circle:"Circle",disc:"Disc",square:"Square"},refresh:function(e){this.lists.refresh(e,"UL")},callback:function(e,t){this.lists.format("UL",t)},plugin:"lists"}),o.RegisterCommand("formatOL",{title:"Ordered List",hasOptions:function(){return this.opts.listAdvancedTypes},options:{"default":"Default","lower-alpha":"Lower Alpha","lower-greek":"Lower Greek","lower-roman":"Lower Roman","upper-alpha":"Upper Alpha","upper-roman":"Upper Roman"},refresh:function(e){this.lists.refresh(e,"OL")},callback:function(e,t){this.lists.format("OL",t)},plugin:"lists"}),o.DefineIcon("formatUL",{NAME:"list-ul",SVG_KEY:"unorderedList"}),o.DefineIcon("formatOL",{NAME:"list-ol",SVG_KEY:"orderedList"})});
|