fhrons-pc-next 25.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.
- package/README.md +803 -0
- package/dist/assets/css/app~e2e93592.0614dcf9.css +1 -0
- package/dist/assets/css/app~e2e93592.0614dcf9.css.gz +0 -0
- package/dist/assets/css/chunk-2270175d.e0a049f6.css +1 -0
- package/dist/assets/css/chunk-383dbbbe.6b0d07dc.css +1 -0
- package/dist/assets/css/chunk-383dbbbe.6b0d07dc.css.gz +0 -0
- package/dist/assets/css/chunk-4498a787.03dd36cb.css +1 -0
- package/dist/assets/css/chunk-4498a787.03dd36cb.css.gz +0 -0
- package/dist/assets/css/chunk-libs~203e0718.9b00eb86.css +1 -0
- package/dist/assets/img/PDFView.1579d70c.png +0 -0
- package/dist/assets/img/app_router_i18n.68b2d569.jpg +0 -0
- package/dist/assets/img/changeVantLang.d31e8ca2.jpg +0 -0
- package/dist/assets/img/dataLang.4de8009a.jpg +0 -0
- package/dist/assets/img/i18n-lang.0c1ab834.jpg +0 -0
- package/dist/assets/img/i18n.b1e44d7c.jpg +0 -0
- package/dist/assets/img/noSettle.7822c351.png +0 -0
- package/dist/assets/img/storageLang.9e797011.jpg +0 -0
- package/dist/assets/img/sz_qyy.7e65edd7.jpg +0 -0
- package/dist/assets/js/app~e2e93592.9548d7e1.js +1 -0
- package/dist/assets/js/app~e2e93592.9548d7e1.js.gz +0 -0
- package/dist/assets/js/chunk-2270175d.22113494.js +9 -0
- package/dist/assets/js/chunk-2270175d.22113494.js.gz +0 -0
- package/dist/assets/js/chunk-2d0d6351.fbede520.js +1 -0
- package/dist/assets/js/chunk-383dbbbe.8a9f98f1.js +1 -0
- package/dist/assets/js/chunk-383dbbbe.8a9f98f1.js.gz +0 -0
- package/dist/assets/js/chunk-4498a787.ff39f59f.js +1 -0
- package/dist/assets/js/chunk-4498a787.ff39f59f.js.gz +0 -0
- package/dist/assets/js/chunk-libs~203e0718.3bbae965.js +13 -0
- package/dist/assets/js/chunk-libs~203e0718.3bbae965.js.gz +0 -0
- package/dist/assets/js/chunk-libs~253ae210.1cb0711c.js +34 -0
- package/dist/assets/js/chunk-libs~253ae210.1cb0711c.js.gz +0 -0
- package/dist/favicon.ico +0 -0
- package/dist/icon.css +1100 -0
- package/dist/icon.css.gz +0 -0
- package/dist/index.html +198 -0
- package/dist/index.html.gz +0 -0
- package/dist/loading-spin.svg +6 -0
- package/dist/logo.svg +10 -0
- package/dist/logo.svg.gz +0 -0
- package/dist/static/backup/axios.js +2 -0
- package/dist/static/backup/axios.js.gz +0 -0
- package/dist/static/backup/echarts.min.js +22 -0
- package/dist/static/backup/echarts.min.js.gz +0 -0
- package/dist/static/backup/lodash.min.js +140 -0
- package/dist/static/backup/lodash.min.js.gz +0 -0
- package/dist/static/backup/pdf.min.js +22 -0
- package/dist/static/backup/pdf.min.js.gz +0 -0
- package/dist/static/backup/sensorsdata.min.js +5 -0
- package/dist/static/backup/sensorsdata.min.js.gz +0 -0
- package/dist/static/backup/tinymce/icons/default/icons.min.js +1 -0
- package/dist/static/backup/tinymce/icons/default/icons.min.js.gz +0 -0
- package/dist/static/backup/tinymce/jquery.tinymce.min.js +91 -0
- package/dist/static/backup/tinymce/langs/README.md +3 -0
- package/dist/static/backup/tinymce/langs/zh-Hans.js +1 -0
- package/dist/static/backup/tinymce/langs/zh-Hans.js.gz +0 -0
- package/dist/static/backup/tinymce/license.txt +504 -0
- package/dist/static/backup/tinymce/plugins/advlist/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/anchor/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/autolink/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/autoresize/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/autosave/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/bbcode/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/charmap/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/charmap/plugin.min.js.gz +0 -0
- package/dist/static/backup/tinymce/plugins/code/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/codesample/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/codesample/plugin.min.js.gz +0 -0
- package/dist/static/backup/tinymce/plugins/colorpicker/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/contextmenu/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/directionality/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/emoticons/js/emojiimages.js +9424 -0
- package/dist/static/backup/tinymce/plugins/emoticons/js/emojiimages.js.gz +0 -0
- package/dist/static/backup/tinymce/plugins/emoticons/js/emojiimages.min.js +3 -0
- package/dist/static/backup/tinymce/plugins/emoticons/js/emojiimages.min.js.gz +0 -0
- package/dist/static/backup/tinymce/plugins/emoticons/js/emojis.js +9423 -0
- package/dist/static/backup/tinymce/plugins/emoticons/js/emojis.js.gz +0 -0
- package/dist/static/backup/tinymce/plugins/emoticons/js/emojis.min.js +2 -0
- package/dist/static/backup/tinymce/plugins/emoticons/js/emojis.min.js.gz +0 -0
- package/dist/static/backup/tinymce/plugins/emoticons/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/formatpainter/plugin.js +156 -0
- package/dist/static/backup/tinymce/plugins/formatpainter/plugin.min.js +971 -0
- package/dist/static/backup/tinymce/plugins/formatpainter/plugin.min.js.gz +0 -0
- package/dist/static/backup/tinymce/plugins/fullpage/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/fullscreen/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/fullscreen/plugin.min.js.gz +0 -0
- package/dist/static/backup/tinymce/plugins/help/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/help/plugin.min.js.gz +0 -0
- package/dist/static/backup/tinymce/plugins/hr/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/image/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/image/plugin.min.js.gz +0 -0
- package/dist/static/backup/tinymce/plugins/imagetools/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/imagetools/plugin.min.js.gz +0 -0
- package/dist/static/backup/tinymce/plugins/importcss/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/insertdatetime/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/legacyoutput/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/link/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/link/plugin.min.js.gz +0 -0
- package/dist/static/backup/tinymce/plugins/lists/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/lists/plugin.min.js.gz +0 -0
- package/dist/static/backup/tinymce/plugins/media/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/media/plugin.min.js.gz +0 -0
- package/dist/static/backup/tinymce/plugins/nonbreaking/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/noneditable/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/pagebreak/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/paste/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/paste/plugin.min.js.gz +0 -0
- package/dist/static/backup/tinymce/plugins/powerpaste/img/spinner_96.gif +0 -0
- package/dist/static/backup/tinymce/plugins/powerpaste/js/wordimport.js +9098 -0
- package/dist/static/backup/tinymce/plugins/powerpaste/js/wordimport.js.gz +0 -0
- package/dist/static/backup/tinymce/plugins/powerpaste/langs/zh_CN.js +18 -0
- package/dist/static/backup/tinymce/plugins/powerpaste/plugin.min.js +7 -0
- package/dist/static/backup/tinymce/plugins/powerpaste/plugin.min.js.gz +0 -0
- package/dist/static/backup/tinymce/plugins/preview/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/print/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/quickbars/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/save/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/searchreplace/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/searchreplace/plugin.min.js.gz +0 -0
- package/dist/static/backup/tinymce/plugins/spellchecker/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/tabfocus/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/table/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/table/plugin.min.js.gz +0 -0
- package/dist/static/backup/tinymce/plugins/template/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/textcolor/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/textpattern/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/textpattern/plugin.min.js.gz +0 -0
- package/dist/static/backup/tinymce/plugins/toc/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/visualblocks/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/visualchars/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/wordcount/plugin.min.js +9 -0
- package/dist/static/backup/tinymce/plugins/wordcount/plugin.min.js.gz +0 -0
- package/dist/static/backup/tinymce/skins/content/dark/content.min.css +7 -0
- package/dist/static/backup/tinymce/skins/content/default/content.min.css +7 -0
- package/dist/static/backup/tinymce/skins/content/document/content.min.css +7 -0
- package/dist/static/backup/tinymce/skins/content/writer/content.min.css +7 -0
- package/dist/static/backup/tinymce/skins/ui/oxide/content.inline.min.css +7 -0
- package/dist/static/backup/tinymce/skins/ui/oxide/content.inline.min.css.gz +0 -0
- package/dist/static/backup/tinymce/skins/ui/oxide/content.min.css +7 -0
- package/dist/static/backup/tinymce/skins/ui/oxide/content.min.css.gz +0 -0
- package/dist/static/backup/tinymce/skins/ui/oxide/content.mobile.min.css +7 -0
- package/dist/static/backup/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff +0 -0
- package/dist/static/backup/tinymce/skins/ui/oxide/skin.min.css +7 -0
- package/dist/static/backup/tinymce/skins/ui/oxide/skin.min.css.gz +0 -0
- package/dist/static/backup/tinymce/skins/ui/oxide/skin.mobile.min.css +7 -0
- package/dist/static/backup/tinymce/skins/ui/oxide/skin.mobile.min.css.gz +0 -0
- package/dist/static/backup/tinymce/skins/ui/oxide/skin.shadowdom.min.css +7 -0
- package/dist/static/backup/tinymce/skins/ui/oxide-dark/content.inline.min.css +7 -0
- package/dist/static/backup/tinymce/skins/ui/oxide-dark/content.inline.min.css.gz +0 -0
- package/dist/static/backup/tinymce/skins/ui/oxide-dark/content.min.css +7 -0
- package/dist/static/backup/tinymce/skins/ui/oxide-dark/content.min.css.gz +0 -0
- package/dist/static/backup/tinymce/skins/ui/oxide-dark/content.mobile.min.css +7 -0
- package/dist/static/backup/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff +0 -0
- package/dist/static/backup/tinymce/skins/ui/oxide-dark/skin.min.css +7 -0
- package/dist/static/backup/tinymce/skins/ui/oxide-dark/skin.min.css.gz +0 -0
- package/dist/static/backup/tinymce/skins/ui/oxide-dark/skin.mobile.min.css +7 -0
- package/dist/static/backup/tinymce/skins/ui/oxide-dark/skin.mobile.min.css.gz +0 -0
- package/dist/static/backup/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +7 -0
- package/dist/static/backup/tinymce/themes/mobile/theme.min.js +9 -0
- package/dist/static/backup/tinymce/themes/mobile/theme.min.js.gz +0 -0
- package/dist/static/backup/tinymce/themes/silver/theme.min.js +9 -0
- package/dist/static/backup/tinymce/themes/silver/theme.min.js.gz +0 -0
- package/dist/static/backup/tinymce/tinymce.d.ts +3036 -0
- package/dist/static/backup/tinymce/tinymce.min.js +9 -0
- package/dist/static/backup/tinymce/tinymce.min.js.gz +0 -0
- package/dist/static/backup/vue-router.min.js +11 -0
- package/dist/static/backup/vue-router.min.js.gz +0 -0
- package/dist/static/backup/vue.js +12014 -0
- package/dist/static/backup/vue.js.gz +0 -0
- package/dist/static/backup/vue.min.js +6 -0
- package/dist/static/backup/vue.min.js.gz +0 -0
- package/dist/static/backup/vuex.min.js +6 -0
- package/dist/static/backup/vuex.min.js.gz +0 -0
- package/dist/static/css/font-family.css +110 -0
- package/dist/static/ttf/Times New Roman.ttf +0 -0
- package/dist/static/ttf/Times%20New%20Roman.ttf.gz +0 -0
- package/dist/static/ttf/heiTi/FZZHJW.TTF +0 -0
- package/dist/static/ttf/songti/STSongti-SC-Black-01.ttf +0 -0
- package/dist/static/ttf/songti/STSongti-SC-Black-01.ttf.gz +0 -0
- package/dist/static/ttf//344/273/277/345/256/213.ttf +0 -0
- package/dist/static/ttf//344/273/277/345/256/213.ttf.gz +0 -0
- package/dist/static/ttf//346/245/267/344/275/223.ttf +0 -0
- package/dist/static/ttf//346/245/267/344/275/223.ttf.gz +0 -0
- package/package.json +77 -0
|
Binary file
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
|
3
|
+
* Licensed under the LGPL or a commercial license.
|
|
4
|
+
* For LGPL see License.txt in the project root for license information.
|
|
5
|
+
* For commercial licenses see https://www.tiny.cloud/
|
|
6
|
+
*
|
|
7
|
+
* Version: 5.10.0 (2021-10-11)
|
|
8
|
+
*/
|
|
9
|
+
!function(){"use strict";function r(){}function i(t){return function(){return t}}function t(t){return t}function n(){return c}var m,e=tinymce.util.Tools.resolve("tinymce.PluginManager"),l=i(!1),a=i(!(m=null)),c={fold:function(t,n){return t()},isSome:l,isNone:a,getOr:t,getOrThunk:o,getOrDie:function(t){throw new Error(t||"error: getOrDie called on none.")},getOrNull:i(null),getOrUndefined:i(void 0),or:t,orThunk:o,map:n,each:r,bind:n,exists:l,forall:a,filter:function(){return c},toArray:function(){return[]},toString:i("none()")};function o(t){return t()}function g(t){var n=t;return{get:function(){return n},set:function(t){n=t}}}function d(t,n){for(var e=k(t),o=0,r=e.length;o<r;o++){var i=e[o];n(t[i],i)}}function h(t,n){return j.call(t,n)}function s(){var t,n,e=(t=r,n=g(O.none()),{clear:function(){o(),n.set(O.none())},isSet:function(){return n.get().isSome()},get:function(){return n.get()},set:function(t){o(),n.set(O.some(t))}});function o(){return n.get().each(t)}return C(C({},e),{on:function(t){return e.get().each(t)}})}function f(t,n){return-1!==t.indexOf(n)}function v(i,r,t){var a=s(),c=s(),f=i.getParam("emoticons_images_url","https://twemoji.maxcdn.com/v/13.0.1/72x72/","string");i.on("init",function(){_.load(t,r).then(function(t){var n,e,o,l,s,r=(n=i.getParam("emoticons_append",{},"object"),e=function(t){return C({keywords:[],category:"user"},t)},A(n,function(t,n){return{k:n,v:e(t)}}));o=w(t,r),l={},s=[],d(o,function(t,n){var e,o,r,i,a,c={title:n,keywords:t.keywords,char:(i=(r=t).char).length>=(a="<img").length&&i.substr(0,0+a.length)===a?r.char.replace(/src="([^"]+)"/,function(t,n){return'src="'+f+n+'"'}):r.char,category:h(e=D,o=t.category)?e[o]:o},u=void 0!==l[c.category]?l[c.category]:[];l[c.category]=u.concat([c]),s.push(c)}),a.set(l),c.set(s)},function(t){console.log("Failed to load emoticons: "+t),a.set({}),c.set([])})});function e(){return c.get().getOr([])}function u(){return a.isSet()&&c.isSet()}return{listCategories:function(){return[P].concat(k(a.get().getOr({})))},hasLoaded:u,waitForLoad:function(){return u()?x.resolve(!0):new x(function(t,n){var e=15,o=T.setInterval(function(){u()?(T.clearInterval(o),t(!0)):--e<0&&(console.log("Could not load emojis from url: "+r),T.clearInterval(o),n(!1))},100)})},listAll:e,listCategory:function(n){return n===P?e():a.get().bind(function(t){return O.from(t[n])}).getOr([])}}}function y(t,n,e){for(var o,r,i=[],a=n.toLowerCase(),c=e.fold(function(){return l},function(n){return function(t){return n<=t}}),u=0;u<t.length&&(0!==n.length&&(o=t[u],r=a,!f(o.title.toLowerCase(),r)&&!function(t){for(var n=0,e=t.length;n<e;n++)if(f(t[n].toLowerCase(),r))return 1}(o.keywords))||(i.push({value:t[u].char,text:t[u].title,icon:t[u].char}),!c(i.length)));u++);return i}function p(o,i){var e,r,t={pattern:"",results:y(i.listAll(),"",O.some(300))},a=g(P),c=(e=function(t){var n,e=(n=t).getData(),o=a.get(),r=y(i.listCategory(o),e[S],o===P?O.some(300):O.none());n.setData({results:r})},r=null,{cancel:u,throttle:function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];u(),r=setTimeout(function(){r=null,e.apply(null,t)},200)}});function u(){m===r||(clearTimeout(r),r=null)}function n(){return{title:"Emoticons",size:"normal",body:{type:"tabpanel",tabs:function(t){for(var n=t.length,e=new Array(n),o=0;o<n;o++){var r=t[o];e[o]={title:r,name:r,items:[l,s]}}return e}(i.listCategories())},initialData:t,onTabChange:function(t,n){a.set(n.newTabName),c.throttle(t)},onChange:c.throttle,onAction:function(t,n){var e;"results"===n.name&&(e=n.value,o.insertContent(e),t.close())},buttons:[{type:"cancel",text:"Close",primary:!0}]}}var l={label:"Search",type:"input",name:S},s={type:"collection",name:"results"},f=o.windowManager.open(n());f.focus(S),i.hasLoaded()||(f.block("Loading emoticons..."),i.waitForLoad().then(function(){f.redial(n()),c.throttle(f),f.focus(S),f.unblock()}).catch(function(t){f.redial({title:"Emoticons",body:{type:"panel",items:[{type:"alertbanner",level:"error",icon:"warning",text:"<p>Could not load emoticons</p>"}]},buttons:[{type:"cancel",text:"Close",primary:!0}],initialData:{pattern:"",results:[]}}),f.focus(S),f.unblock()}))}function b(t){t.on("PreInit",function(){t.parser.addAttributeFilter("data-emoticon",function(t){!function(t){for(var n,e=0,o=t.length;e<o;e++)(n=t[e]).attr("data-mce-resize","false"),n.attr("data-mce-placeholder","1")}(t)})})}function w(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];if(0===t.length)throw new Error("Can't merge zero objects");for(var e={},o=0;o<t.length;o++){var r,i=t[o];for(r in i)h(i,r)&&(e[r]=(e[r],i[r]))}return e}var u=function(e){function t(){return r}function n(t){return t(e)}var o=i(e),r={fold:function(t,n){return n(e)},isSome:a,isNone:l,getOr:o,getOrThunk:o,getOrDie:o,getOrNull:o,getOrUndefined:o,or:t,orThunk:t,map:function(t){return u(t(e))},each:function(t){t(e)},bind:n,exists:n,forall:n,filter:function(t){return t(e)?r:c},toArray:function(){return[e]},toString:function(){return"some("+e+")"}};return r},O={some:u,none:n,from:function(t){return null==t?c:u(t)}},C=function(){return(C=Object.assign||function(t){for(var n,e=1,o=arguments.length;e<o;e++)for(var r in n=arguments[e])Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r]);return t}).apply(this,arguments)},k=Object.keys,j=Object.hasOwnProperty,A=function(t,o){var r={};return d(t,function(t,n){var e=o(t,n);r[e.k]=e.v}),r},_=tinymce.util.Tools.resolve("tinymce.Resource"),T=tinymce.util.Tools.resolve("tinymce.util.Delay"),x=tinymce.util.Tools.resolve("tinymce.util.Promise"),P="All",D={symbols:"Symbols",people:"People",animals_and_nature:"Animals and Nature",food_and_drink:"Food and Drink",activity:"Activity",travel_and_places:"Travel and Places",objects:"Objects",flags:"Flags",user:"User Defined"},S="pattern";e.add("emoticons",function(t,n){var e,o,r,i,a,c,u,l,s=(o=n,r=(e=t).getParam("emoticons_database","emojis","string"),e.getParam("emoticons_database_url",o+"/js/"+r+e.suffix+".js","string")),f=t.getParam("emoticons_database_id","tinymce.plugins.emoticons","string"),m=v(t,s,f);function g(){return c.execCommand("mceEmoticons")}a=m,(i=t).addCommand("mceEmoticons",function(){return p(i,a)}),(c=t).ui.registry.addButton("emoticons",{tooltip:"Emoticons",icon:"emoji",onAction:g}),c.ui.registry.addMenuItem("emoticons",{text:"Emoticons...",icon:"emoji",onAction:g}),l=m,(u=t).ui.registry.addAutocompleter("emoticons",{ch:":",columns:"auto",minChars:2,fetch:function(t,n){return l.waitForLoad().then(function(){return y(l.listAll(),t,O.some(n))})},onAction:function(t,n,e){u.selection.setRng(n),u.insertContent(e),t.hide()}}),b(t)})}();
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A free formatpainter plugin for tinymce
|
|
3
|
+
* @author:sk-wang
|
|
4
|
+
* @page:https://github.com/sk-wang
|
|
5
|
+
* @email:skvdhsh@gmail.com
|
|
6
|
+
*/
|
|
7
|
+
tinymce.PluginManager.add("formatpainter", function (editor, url) {
|
|
8
|
+
var pluginName='格式刷(Beta)';
|
|
9
|
+
var currentBlockStyle = "";
|
|
10
|
+
var currentNodeStyle = "";
|
|
11
|
+
var currentStrong = false;
|
|
12
|
+
var currentEm = false;
|
|
13
|
+
var toggleState = false;
|
|
14
|
+
var strip_tags = function (string) {
|
|
15
|
+
return string.replace(/(<([^>]+)>)/gi, "");
|
|
16
|
+
}
|
|
17
|
+
editor.ui.registry.addIcon('brushes', '<svg t="1614665382680" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1129" width="19" height="19"><path d="M960 448H512v192h32v320a64 64 0 1 1-128 0V640h32v-192a64 64 0 0 1 64-64h448V192h-64V128h64a64 64 0 0 1 64 64v192a64 64 0 0 1-64 64zM64 192H32a32 32 0 1 1 0-64h32V0h832v320H64V192z m64 64h704V64H128v192z" p-id="1130"></path></svg>');
|
|
18
|
+
function _onAction() {
|
|
19
|
+
var dom = editor.dom;
|
|
20
|
+
//这里主要为了获取样式
|
|
21
|
+
if(toggleState === false) {
|
|
22
|
+
var currentContainer = editor.selection.getRng().startContainer;
|
|
23
|
+
currentBlockStyle = "";
|
|
24
|
+
currentNodeStyle = "";
|
|
25
|
+
currentStrong = false;
|
|
26
|
+
currentEm = false;
|
|
27
|
+
while(true) {
|
|
28
|
+
currentContainer = currentContainer.parentNode
|
|
29
|
+
if ("P" === currentContainer.nodeName) {
|
|
30
|
+
currentBlockStyle = dom.getAttrib(currentContainer, 'style');
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
if ("SPAN" === currentContainer.nodeName) {
|
|
34
|
+
currentNodeStyle = dom.getAttrib(currentContainer, 'style');
|
|
35
|
+
}
|
|
36
|
+
if ("EM" === currentContainer.nodeName) {
|
|
37
|
+
currentEm = true;
|
|
38
|
+
}
|
|
39
|
+
if ("STRONG" === currentContainer.nodeName) {
|
|
40
|
+
currentStrong = true;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
toggleState = !toggleState;
|
|
45
|
+
}
|
|
46
|
+
// Define the Toolbar button
|
|
47
|
+
editor.ui.registry.addButton('formatpainter', {
|
|
48
|
+
icon: 'brushes',
|
|
49
|
+
onAction: _onAction
|
|
50
|
+
});
|
|
51
|
+
editor.ui.registry.addToggleButton('formatpainter', {
|
|
52
|
+
icon: 'brushes',
|
|
53
|
+
tooltip: pluginName,
|
|
54
|
+
onAction: _onAction,
|
|
55
|
+
onSetup: function (api) {
|
|
56
|
+
var selectionchange = function () {
|
|
57
|
+
console.log(currentBlockStyle,currentNodeStyle,currentEm,currentStrong)
|
|
58
|
+
console.log(editor.selection.getRng());
|
|
59
|
+
var range = editor.selection.getRng();
|
|
60
|
+
var setStyle = function (text) {
|
|
61
|
+
//粗体
|
|
62
|
+
if (currentStrong) {
|
|
63
|
+
text = "<strong>" + text + "</stong>"
|
|
64
|
+
}
|
|
65
|
+
//斜体
|
|
66
|
+
if (currentEm) {
|
|
67
|
+
text = "<em>" + text + "</em>"
|
|
68
|
+
}
|
|
69
|
+
if (currentNodeStyle) {
|
|
70
|
+
text = "<span style='" + currentNodeStyle + "'>" + text + "</span>"
|
|
71
|
+
}
|
|
72
|
+
return text
|
|
73
|
+
}
|
|
74
|
+
if(toggleState === true) {
|
|
75
|
+
//应用样式到选中的range中
|
|
76
|
+
var blocks = editor.selection.getSelectedBlocks()
|
|
77
|
+
for (var i = 0 ; i < blocks.length ; i++) {
|
|
78
|
+
//先应用段落的样式
|
|
79
|
+
editor.dom.setAttrib(blocks[i], "style", currentBlockStyle);
|
|
80
|
+
//如果是第一个
|
|
81
|
+
if(0 === i) {
|
|
82
|
+
//如果同一个container
|
|
83
|
+
if(range.startContainer === range.endContainer) {
|
|
84
|
+
var text = editor.selection.getContent({format:"text"})
|
|
85
|
+
editor.selection.setContent(setStyle(text));
|
|
86
|
+
} else {
|
|
87
|
+
//否则构造一个select让其选中当前block的最后一个
|
|
88
|
+
var currentRange = range.cloneRange();
|
|
89
|
+
var lastNode = range.startContainer;
|
|
90
|
+
while (true) {
|
|
91
|
+
var nextNode = editor.dom.getNext(lastNode,function (node) { return true });
|
|
92
|
+
console.log(nextNode)
|
|
93
|
+
if(editor.dom.isChildOf(nextNode,blocks[i])) {
|
|
94
|
+
lastNode = nextNode;
|
|
95
|
+
} else {
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
currentRange.setEnd(lastNode,lastNode.length);
|
|
100
|
+
console.log(currentRange);
|
|
101
|
+
editor.selection.setRng(currentRange)
|
|
102
|
+
var text = editor.selection.getContent({format:"text"})
|
|
103
|
+
editor.selection.setContent(setStyle(text));
|
|
104
|
+
//把范围设置回去
|
|
105
|
+
editor.selection.setRng(range)
|
|
106
|
+
}
|
|
107
|
+
} else if (blocks.length - 1 === i && blocks.length > 1) {
|
|
108
|
+
//否则构造一个select让其选中当前block的最开始那个
|
|
109
|
+
var currentRange = range.cloneRange();
|
|
110
|
+
var startNode = range.endContainer;
|
|
111
|
+
while (true) {
|
|
112
|
+
var prevNode = editor.dom.getPrev(startNode,function (node) { return true });
|
|
113
|
+
if(editor.dom.isChildOf(prevNode,blocks[i])) {
|
|
114
|
+
startNode = prevNode;
|
|
115
|
+
} else {
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
currentRange.setStart(startNode,0);
|
|
120
|
+
editor.selection.setRng(currentRange)
|
|
121
|
+
var text = editor.selection.getContent({format:"text"})
|
|
122
|
+
editor.selection.setContent(setStyle(text));
|
|
123
|
+
//把范围设置回去
|
|
124
|
+
editor.selection.setRng(range)
|
|
125
|
+
} else {
|
|
126
|
+
//如果是夹在中间的则所有文字应用样式
|
|
127
|
+
var text = strip_tags(blocks[i].innerHTML);
|
|
128
|
+
blocks[i].innerHTML = setStyle(text);
|
|
129
|
+
//如果已经有span标签了
|
|
130
|
+
//如果是最后一个,且不是只选中了一个
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
toggleState = false;
|
|
134
|
+
currentBlockStyle = "";
|
|
135
|
+
currentNodeStyle = "";
|
|
136
|
+
currentStrong = false;
|
|
137
|
+
currentEm = false;
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
api.setActive(toggleState);
|
|
141
|
+
editor.on("mouseup",selectionchange);
|
|
142
|
+
return function() {
|
|
143
|
+
editor.off("mouseup",selectionchange);
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
// Return details to be displayed in TinyMCE's "Help" plugin, if you use it
|
|
148
|
+
// This is optional.
|
|
149
|
+
return {
|
|
150
|
+
getMetadata: function () {
|
|
151
|
+
return {
|
|
152
|
+
name: "formatpainter",
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
});
|