Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F9788132
editor_plugin.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
13 KB
Referenced Files
None
Subscribers
None
editor_plugin.js
View Options
(
function
(){
var
c
=
tinymce
.
each
,
a
=
{
paste_auto_cleanup_on_paste
:
true
,
paste_enable_default_filters
:
true
,
paste_block_drop
:
false
,
paste_retain_style_properties
:
"none"
,
paste_strip_class_attributes
:
"mso"
,
paste_remove_spans
:
false
,
paste_remove_styles
:
false
,
paste_remove_styles_if_webkit
:
true
,
paste_convert_middot_lists
:
true
,
paste_convert_headers_to_strong
:
false
,
paste_dialog_width
:
"450"
,
paste_dialog_height
:
"400"
,
paste_text_use_dialog
:
false
,
paste_text_sticky
:
false
,
paste_text_sticky_default
:
false
,
paste_text_notifyalways
:
false
,
paste_text_linebreaktype
:
"combined"
,
paste_text_replacements
:
[[
/\u2026/g
,
"..."
],[
/[\x93\x94\u201c\u201d]/g
,
'"'
],[
/[\x60\x91\x92\u2018\u2019]/g
,
"'"
]]};
function
b
(
d
,
e
){
return
d
.
getParam
(
e
,
a
[
e
])}
tinymce
.
create
(
"tinymce.plugins.PastePlugin"
,{
init
:
function
(
d
,
e
){
var
f
=
this
;
f
.
editor
=
d
;
f
.
url
=
e
;
f
.
onPreProcess
=
new
tinymce
.
util
.
Dispatcher
(
f
);
f
.
onPostProcess
=
new
tinymce
.
util
.
Dispatcher
(
f
);
f
.
onPreProcess
.
add
(
f
.
_preProcess
);
f
.
onPostProcess
.
add
(
f
.
_postProcess
);
f
.
onPreProcess
.
add
(
function
(
i
,
j
){
d
.
execCallback
(
"paste_preprocess"
,
i
,
j
)});
f
.
onPostProcess
.
add
(
function
(
i
,
j
){
d
.
execCallback
(
"paste_postprocess"
,
i
,
j
)});
d
.
onKeyDown
.
addToTop
(
function
(
i
,
j
){
if
(((
tinymce
.
isMac
?
j
.
metaKey
:
j
.
ctrlKey
)
&&
j
.
keyCode
==
86
)
||
(
j
.
shiftKey
&&
j
.
keyCode
==
45
)){
return
false
}});
d
.
pasteAsPlainText
=
b
(
d
,
"paste_text_sticky_default"
);
function
h
(
l
,
j
){
var
k
=
d
.
dom
,
i
;
f
.
onPreProcess
.
dispatch
(
f
,
l
);
l
.
node
=
k
.
create
(
"div"
,
0
,
l
.
content
);
if
(
tinymce
.
isGecko
){
i
=
d
.
selection
.
getRng
(
true
);
if
(
i
.
startContainer
==
i
.
endContainer
&&
i
.
startContainer
.
nodeType
==
3
){
if
(
l
.
node
.
childNodes
.
length
===
1
&&
/^(p|h[1-6]|pre)$/i
.
test
(
l
.
node
.
firstChild
.
nodeName
)
&&
l
.
content
.
indexOf
(
"__MCE_ITEM__"
)
===-
1
){
k
.
remove
(
l
.
node
.
firstChild
,
true
)}}}
f
.
onPostProcess
.
dispatch
(
f
,
l
);
l
.
content
=
d
.
serializer
.
serialize
(
l
.
node
,{
getInner
:
1
,
forced_root_block
:
""
});
if
((
!
j
)
&&
(
d
.
pasteAsPlainText
)){
f
.
_insertPlainText
(
l
.
content
);
if
(
!
b
(
d
,
"paste_text_sticky"
)){
d
.
pasteAsPlainText
=
false
;
d
.
controlManager
.
setActive
(
"pastetext"
,
false
)}}
else
{
f
.
_insert
(
l
.
content
)}}
d
.
addCommand
(
"mceInsertClipboardContent"
,
function
(
i
,
j
){
h
(
j
,
true
)});
if
(
!
b
(
d
,
"paste_text_use_dialog"
)){
d
.
addCommand
(
"mcePasteText"
,
function
(
j
,
i
){
var
k
=
tinymce
.
util
.
Cookie
;
d
.
pasteAsPlainText
=!
d
.
pasteAsPlainText
;
d
.
controlManager
.
setActive
(
"pastetext"
,
d
.
pasteAsPlainText
);
if
((
d
.
pasteAsPlainText
)
&&
(
!
k
.
get
(
"tinymcePasteText"
))){
if
(
b
(
d
,
"paste_text_sticky"
)){
d
.
windowManager
.
alert
(
d
.
translate
(
"paste.plaintext_mode_sticky"
))}
else
{
d
.
windowManager
.
alert
(
d
.
translate
(
"paste.plaintext_mode"
))}
if
(
!
b
(
d
,
"paste_text_notifyalways"
)){
k
.
set
(
"tinymcePasteText"
,
"1"
,
new
Date
(
new
Date
().
getFullYear
()
+
1
,
12
,
31
))}}})}
d
.
addButton
(
"pastetext"
,{
title
:
"paste.paste_text_desc"
,
cmd
:
"mcePasteText"
});
d
.
addButton
(
"selectall"
,{
title
:
"paste.selectall_desc"
,
cmd
:
"selectall"
});
function
g
(
s
){
var
l
,
p
,
j
,
t
,
k
=
d
.
selection
,
o
=
d
.
dom
,
q
=
d
.
getBody
(),
i
,
r
;
if
(
s
.
clipboardData
||
o
.
doc
.
dataTransfer
){
r
=
(
s
.
clipboardData
||
o
.
doc
.
dataTransfer
).
getData
(
"Text"
);
if
(
d
.
pasteAsPlainText
){
s
.
preventDefault
();
h
({
content
:
o
.
encode
(
r
).
replace
(
/\r?\n/g
,
"<br />"
)});
return
}}
if
(
o
.
get
(
"_mcePaste"
)){
return
}
l
=
o
.
add
(
q
,
"div"
,{
id
:
"_mcePaste"
,
"class"
:
"mcePaste"
,
"data-mce-bogus"
:
"1"
},
"\uFEFF\uFEFF"
);
if
(
q
!=
d
.
getDoc
().
body
){
i
=
o
.
getPos
(
d
.
selection
.
getStart
(),
q
).
y
}
else
{
i
=
q
.
scrollTop
+
o
.
getViewPort
(
d
.
getWin
()).
y
}
o
.
setStyles
(
l
,{
position
:
"absolute"
,
left
:
tinymce
.
isGecko
?-
40
:
0
,
top
:
i
-
25
,
width
:
1
,
height
:
1
,
overflow
:
"hidden"
});
if
(
tinymce
.
isIE
){
t
=
k
.
getRng
();
j
=
o
.
doc
.
body
.
createTextRange
();
j
.
moveToElementText
(
l
);
j
.
execCommand
(
"Paste"
);
o
.
remove
(
l
);
if
(
l
.
innerHTML
===
"\uFEFF\uFEFF"
){
d
.
execCommand
(
"mcePasteWord"
);
s
.
preventDefault
();
return
}
k
.
setRng
(
t
);
k
.
setContent
(
""
);
setTimeout
(
function
(){
h
({
content
:
l
.
innerHTML
})},
0
);
return
tinymce
.
dom
.
Event
.
cancel
(
s
)}
else
{
function
m
(
n
){
n
.
preventDefault
()}
o
.
bind
(
d
.
getDoc
(),
"mousedown"
,
m
);
o
.
bind
(
d
.
getDoc
(),
"keydown"
,
m
);
p
=
d
.
selection
.
getRng
();
l
=
l
.
firstChild
;
j
=
d
.
getDoc
().
createRange
();
j
.
setStart
(
l
,
0
);
j
.
setEnd
(
l
,
2
);
k
.
setRng
(
j
);
window
.
setTimeout
(
function
(){
var
u
=
""
,
n
;
if
(
!
o
.
select
(
"div.mcePaste > div.mcePaste"
).
length
){
n
=
o
.
select
(
"div.mcePaste"
);
c
(
n
,
function
(
w
){
var
v
=
w
.
firstChild
;
if
(
v
&&
v
.
nodeName
==
"DIV"
&&
v
.
style
.
marginTop
&&
v
.
style
.
backgroundColor
){
o
.
remove
(
v
,
1
)}
c
(
o
.
select
(
"span.Apple-style-span"
,
w
),
function
(
x
){
o
.
remove
(
x
,
1
)});
c
(
o
.
select
(
"br[data-mce-bogus]"
,
w
),
function
(
x
){
o
.
remove
(
x
)});
if
(
w
.
parentNode
.
className
!=
"mcePaste"
){
u
+=
w
.
innerHTML
}})}
else
{
u
=
"<p>"
+
o
.
encode
(
r
).
replace
(
/\r?\n\r?\n/g
,
"</p><p>"
).
replace
(
/\r?\n/g
,
"<br />"
)
+
"</p>"
}
c
(
o
.
select
(
"div.mcePaste"
),
function
(
v
){
o
.
remove
(
v
)});
if
(
p
){
k
.
setRng
(
p
)}
h
({
content
:
u
});
o
.
unbind
(
d
.
getDoc
(),
"mousedown"
,
m
);
o
.
unbind
(
d
.
getDoc
(),
"keydown"
,
m
)},
0
)}}
if
(
b
(
d
,
"paste_auto_cleanup_on_paste"
)){
if
(
tinymce
.
isOpera
||
/Firefox\/2/
.
test
(
navigator
.
userAgent
)){
d
.
onKeyDown
.
addToTop
(
function
(
i
,
j
){
if
(((
tinymce
.
isMac
?
j
.
metaKey
:
j
.
ctrlKey
)
&&
j
.
keyCode
==
86
)
||
(
j
.
shiftKey
&&
j
.
keyCode
==
45
)){
g
(
j
)}})}
else
{
d
.
onPaste
.
addToTop
(
function
(
i
,
j
){
return
g
(
j
)})}}
d
.
onInit
.
add
(
function
(){
d
.
controlManager
.
setActive
(
"pastetext"
,
d
.
pasteAsPlainText
);
if
(
b
(
d
,
"paste_block_drop"
)){
d
.
dom
.
bind
(
d
.
getBody
(),[
"dragend"
,
"dragover"
,
"draggesture"
,
"dragdrop"
,
"drop"
,
"drag"
],
function
(
i
){
i
.
preventDefault
();
i
.
stopPropagation
();
return
false
})}});
f
.
_legacySupport
()},
getInfo
:
function
(){
return
{
longname
:
"Paste text/word"
,
author
:
"Moxiecode Systems AB"
,
authorurl
:
"http://tinymce.moxiecode.com"
,
infourl
:
"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste"
,
version
:
tinymce
.
majorVersion
+
"."
+
tinymce
.
minorVersion
}},
_preProcess
:
function
(
g
,
e
){
var
k
=
this
.
editor
,
j
=
e
.
content
,
p
=
tinymce
.
grep
,
n
=
tinymce
.
explode
,
f
=
tinymce
.
trim
,
l
,
i
;
function
d
(
h
){
c
(
h
,
function
(
o
){
if
(
o
.
constructor
==
RegExp
){
j
=
j
.
replace
(
o
,
""
)}
else
{
j
=
j
.
replace
(
o
[
0
],
o
[
1
])}})}
if
(
k
.
settings
.
paste_enable_default_filters
==
false
){
return
}
if
(
tinymce
.
isIE
&&
document
.
documentMode
>=
9
&&
/<(h[1-6r]|p|div|address|pre|form|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|blockquote|center|dl|dt|dd|dir|fieldset)/
.
test
(
e
.
content
)){
d
([[
/(?:<br> [\s\r\n]+|<br>)*(<\/?(h[1-6r]|p|div|address|pre|form|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|blockquote|center|dl|dt|dd|dir|fieldset)[^>]*>)(?:<br> [\s\r\n]+|<br>)*/g
,
"$1"
]]);
d
([[
/<br><br>/g
,
"<BR><BR>"
],[
/<br>/g
,
" "
],[
/<BR><BR>/g
,
"<br>"
]])}
if
(
/class="?Mso|style="[^"]*\bmso-|w:WordDocument/i
.
test
(
j
)
||
e
.
wordContent
){
e
.
wordContent
=
true
;
d
([
/^\s*( )+/gi
,
/( |<br[^>]*>)+\s*$/gi
]);
if
(
b
(
k
,
"paste_convert_headers_to_strong"
)){
j
=
j
.
replace
(
/<p [^>]*class="?MsoHeading"?[^>]*>(.*?)<\/p>/gi
,
"<p><strong>$1</strong></p>"
)}
if
(
b
(
k
,
"paste_convert_middot_lists"
)){
d
([[
/<!--\[if !supportLists\]-->/gi
,
"$&__MCE_ITEM__"
],[
/(<span[^>]+(?:mso-list:|:\s*symbol)[^>]+>)/gi
,
"$1__MCE_ITEM__"
],[
/(<p[^>]+(?:MsoListParagraph)[^>]+>)/gi
,
"$1__MCE_ITEM__"
]])}
d
([
/<!--[\s\S]+?-->/gi
,
/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi
,[
/<(\/?)s>/gi
,
"<$1strike>"
],[
/ /gi
,
"\u00a0"
]]);
do
{
l
=
j
.
length
;
j
=
j
.
replace
(
/(<[a-z][^>]*\s)(?:id|name|language|type|on\w+|\w+:\w+)=(?:"[^"]*"|\w+)\s?/gi
,
"$1"
)}
while
(
l
!=
j
.
length
);
if
(
b
(
k
,
"paste_retain_style_properties"
).
replace
(
/^none$/i
,
""
).
length
==
0
){
j
=
j
.
replace
(
/<\/?span[^>]*>/gi
,
""
)}
else
{
d
([[
/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi
,
function
(
o
,
h
){
return
(
h
.
length
>
0
)
?
h
.
replace
(
/./
,
" "
).
slice
(
Math
.
floor
(
h
.
length
/
2
)).
split
(
""
).
join
(
"\u00a0"
)
:
""
}],[
/(<[a-z][^>]*)\sstyle="([^"]*)"/gi
,
function
(
t
,
h
,
r
){
var
u
=
[],
o
=
0
,
q
=
n
(
f
(
r
).
replace
(
/"/gi
,
"'"
),
";"
);
c
(
q
,
function
(
s
){
var
w
,
y
,
z
=
n
(
s
,
":"
);
function
x
(
A
){
return
A
+
((
A
!==
"0"
)
&&
(
/\d$/
.
test
(
A
)))
?
"px"
:
""
}
if
(
z
.
length
==
2
){
w
=
z
[
0
].
toLowerCase
();
y
=
z
[
1
].
toLowerCase
();
switch
(
w
){
case
"mso-padding-alt"
:
case
"mso-padding-top-alt"
:
case
"mso-padding-right-alt"
:
case
"mso-padding-bottom-alt"
:
case
"mso-padding-left-alt"
:
case
"mso-margin-alt"
:
case
"mso-margin-top-alt"
:
case
"mso-margin-right-alt"
:
case
"mso-margin-bottom-alt"
:
case
"mso-margin-left-alt"
:
case
"mso-table-layout-alt"
:
case
"mso-height"
:
case
"mso-width"
:
case
"mso-vertical-align-alt"
:
u
[
o
++
]
=
w
.
replace
(
/^mso-|-alt$/g
,
""
)
+
":"
+
x
(
y
);
return
;
case
"horiz-align"
:
u
[
o
++
]
=
"text-align:"
+
y
;
return
;
case
"vert-align"
:
u
[
o
++
]
=
"vertical-align:"
+
y
;
return
;
case
"font-color"
:
case
"mso-foreground"
:
u
[
o
++
]
=
"color:"
+
y
;
return
;
case
"mso-background"
:
case
"mso-highlight"
:
u
[
o
++
]
=
"background:"
+
y
;
return
;
case
"mso-default-height"
:
u
[
o
++
]
=
"min-height:"
+
x
(
y
);
return
;
case
"mso-default-width"
:
u
[
o
++
]
=
"min-width:"
+
x
(
y
);
return
;
case
"mso-padding-between-alt"
:
u
[
o
++
]
=
"border-collapse:separate;border-spacing:"
+
x
(
y
);
return
;
case
"text-line-through"
:
if
((
y
==
"single"
)
||
(
y
==
"double"
)){
u
[
o
++
]
=
"text-decoration:line-through"
}
return
;
case
"mso-zero-height"
:
if
(
y
==
"yes"
){
u
[
o
++
]
=
"display:none"
}
return
}
if
(
/^(mso|column|font-emph|lang|layout|line-break|list-image|nav|panose|punct|row|ruby|sep|size|src|tab-|table-border|text-(?!align|decor|indent|trans)|top-bar|version|vnd|word-break)/
.
test
(
w
)){
return
}
u
[
o
++
]
=
w
+
":"
+
z
[
1
]}});
if
(
o
>
0
){
return
h
+
' style="'
+
u
.
join
(
";"
)
+
'"'
}
else
{
return
h
}}]])}}
if
(
b
(
k
,
"paste_convert_headers_to_strong"
)){
d
([[
/<h[1-6][^>]*>/gi
,
"<p><strong>"
],[
/<\/h[1-6][^>]*>/gi
,
"</strong></p>"
]])}
d
([[
/Version:[\d.]+\nStartHTML:\d+\nEndHTML:\d+\nStartFragment:\d+\nEndFragment:\d+/gi
,
""
]]);
i
=
b
(
k
,
"paste_strip_class_attributes"
);
if
(
i
!==
"none"
){
function
m
(
q
,
o
){
if
(
i
===
"all"
){
return
""
}
var
h
=
p
(
n
(
o
.
replace
(
/^(["'])(.*)\1$/
,
"$2"
),
" "
),
function
(
r
){
return
(
/^(?!mso)/i
.
test
(
r
))});
return
h
.
length
?
' class="'
+
h
.
join
(
" "
)
+
'"'
:
""
}
j
=
j
.
replace
(
/ class="([^"]+)"/gi
,
m
);
j
=
j
.
replace
(
/ class=([\-\w]+)/gi
,
m
)}
if
(
b
(
k
,
"paste_remove_spans"
)){
j
=
j
.
replace
(
/<\/?span[^>]*>/gi
,
""
)}
e
.
content
=
j
},
_postProcess
:
function
(
g
,
i
){
var
f
=
this
,
e
=
f
.
editor
,
h
=
e
.
dom
,
d
;
if
(
e
.
settings
.
paste_enable_default_filters
==
false
){
return
}
if
(
i
.
wordContent
){
c
(
h
.
select
(
"a"
,
i
.
node
),
function
(
j
){
if
(
!
j
.
href
||
j
.
href
.
indexOf
(
"#_Toc"
)
!=-
1
){
h
.
remove
(
j
,
1
)}});
if
(
b
(
e
,
"paste_convert_middot_lists"
)){
f
.
_convertLists
(
g
,
i
)}
d
=
b
(
e
,
"paste_retain_style_properties"
);
if
((
tinymce
.
is
(
d
,
"string"
))
&&
(
d
!==
"all"
)
&&
(
d
!==
"*"
)){
d
=
tinymce
.
explode
(
d
.
replace
(
/^none$/i
,
""
));
c
(
h
.
select
(
"*"
,
i
.
node
),
function
(
m
){
var
n
=
{},
k
=
0
,
l
,
o
,
j
;
if
(
d
){
for
(
l
=
0
;
l
<
d
.
length
;
l
++
){
o
=
d
[
l
];
j
=
h
.
getStyle
(
m
,
o
);
if
(
j
){
n
[
o
]
=
j
;
k
++
}}}
h
.
setAttrib
(
m
,
"style"
,
""
);
if
(
d
&&
k
>
0
){
h
.
setStyles
(
m
,
n
)}
else
{
if
(
m
.
nodeName
==
"SPAN"
&&!
m
.
className
){
h
.
remove
(
m
,
true
)}}})}}
if
(
b
(
e
,
"paste_remove_styles"
)
||
(
b
(
e
,
"paste_remove_styles_if_webkit"
)
&&
tinymce
.
isWebKit
)){
c
(
h
.
select
(
"*[style]"
,
i
.
node
),
function
(
j
){
j
.
removeAttribute
(
"style"
);
j
.
removeAttribute
(
"data-mce-style"
)})}
else
{
if
(
tinymce
.
isWebKit
){
c
(
h
.
select
(
"*"
,
i
.
node
),
function
(
j
){
j
.
removeAttribute
(
"data-mce-style"
)})}}},
_convertLists
:
function
(
g
,
e
){
var
i
=
g
.
editor
.
dom
,
h
,
l
,
d
=-
1
,
f
,
m
=
[],
k
,
j
;
c
(
i
.
select
(
"p"
,
e
.
node
),
function
(
t
){
var
q
,
u
=
""
,
s
,
r
,
n
,
o
;
for
(
q
=
t
.
firstChild
;
q
&&
q
.
nodeType
==
3
;
q
=
q
.
nextSibling
){
u
+=
q
.
nodeValue
}
u
=
t
.
innerHTML
.
replace
(
/<\/?\w+[^>]*>/gi
,
""
).
replace
(
/ /g
,
"\u00a0"
);
if
(
/^(__MCE_ITEM__)+[\u2022\u00b7\u00a7\u00d8o\u25CF]\s*\u00a0*/
.
test
(
u
)){
s
=
"ul"
}
if
(
/^__MCE_ITEM__\s*\w+\.\s*\u00a0+/
.
test
(
u
)){
s
=
"ol"
}
if
(
s
){
f
=
parseFloat
(
t
.
style
.
marginLeft
||
0
);
if
(
f
>
d
){
m
.
push
(
f
)}
if
(
!
h
||
s
!=
k
){
h
=
i
.
create
(
s
);
i
.
insertAfter
(
h
,
t
)}
else
{
if
(
f
>
d
){
h
=
l
.
appendChild
(
i
.
create
(
s
))}
else
{
if
(
f
<
d
){
n
=
tinymce
.
inArray
(
m
,
f
);
o
=
i
.
getParents
(
h
.
parentNode
,
s
);
h
=
o
[
o
.
length
-
1
-
n
]
||
h
}}}
c
(
i
.
select
(
"span"
,
t
),
function
(
v
){
var
p
=
v
.
innerHTML
.
replace
(
/<\/?\w+[^>]*>/gi
,
""
);
if
(
s
==
"ul"
&&
/^__MCE_ITEM__[\u2022\u00b7\u00a7\u00d8o\u25CF]/
.
test
(
p
)){
i
.
remove
(
v
)}
else
{
if
(
/^__MCE_ITEM__[\s\S]*\w+\.( |\u00a0)*\s*/
.
test
(
p
)){
i
.
remove
(
v
)}}});
r
=
t
.
innerHTML
;
if
(
s
==
"ul"
){
r
=
t
.
innerHTML
.
replace
(
/__MCE_ITEM__/g
,
""
).
replace
(
/^[\u2022\u00b7\u00a7\u00d8o\u25CF]\s*( |\u00a0)+\s*/
,
""
)}
else
{
r
=
t
.
innerHTML
.
replace
(
/__MCE_ITEM__/g
,
""
).
replace
(
/^\s*\w+\.( |\u00a0)+\s*/
,
""
)}
l
=
h
.
appendChild
(
i
.
create
(
"li"
,
0
,
r
));
i
.
remove
(
t
);
d
=
f
;
k
=
s
}
else
{
h
=
d
=
0
}});
j
=
e
.
node
.
innerHTML
;
if
(
j
.
indexOf
(
"__MCE_ITEM__"
)
!=-
1
){
e
.
node
.
innerHTML
=
j
.
replace
(
/__MCE_ITEM__/g
,
""
)}},
_insert
:
function
(
f
,
d
){
var
e
=
this
.
editor
,
g
=
e
.
selection
.
getRng
();
if
(
!
e
.
selection
.
isCollapsed
()
&&
g
.
startContainer
!=
g
.
endContainer
){
e
.
getDoc
().
execCommand
(
"Delete"
,
false
,
null
)}
e
.
execCommand
(
"mceInsertContent"
,
false
,
f
,{
skip_undo
:
d
})},
_insertPlainText
:
function
(
g
){
var
d
=
this
.
editor
,
e
=
b
(
d
,
"paste_text_linebreaktype"
),
i
=
b
(
d
,
"paste_text_replacements"
),
f
=
tinymce
.
is
;
function
h
(
j
){
c
(
j
,
function
(
k
){
if
(
k
.
constructor
==
RegExp
){
g
=
g
.
replace
(
k
,
""
)}
else
{
g
=
g
.
replace
(
k
[
0
],
k
[
1
])}})}
if
((
typeof
(
g
)
===
"string"
)
&&
(
g
.
length
>
0
)){
if
(
/<(?:p|br|h[1-6]|ul|ol|dl|table|t[rdh]|div|blockquote|fieldset|pre|address|center)[^>]*>/i
.
test
(
g
)){
h
([
/[\n\r]+/g
])}
else
{
h
([
/\r+/g
])}
h
([[
/<\/(?:p|h[1-6]|ul|ol|dl|table|div|blockquote|fieldset|pre|address|center)>/gi
,
"\n\n"
],[
/<br[^>]*>|<\/tr>/gi
,
"\n"
],[
/<\/t[dh]>\s*<t[dh][^>]*>/gi
,
"\t"
],
/<[a-z!\/?][^>]*>/gi
,[
/ /gi
,
" "
],[
/(?:(?!\n)\s)*(\n+)(?:(?!\n)\s)*/gi
,
"$1"
],[
/\n{3,}/g
,
"\n\n"
]]);
g
=
d
.
dom
.
decode
(
tinymce
.
html
.
Entities
.
encodeRaw
(
g
));
if
(
f
(
i
,
"array"
)){
h
(
i
)}
else
{
if
(
f
(
i
,
"string"
)){
h
(
new
RegExp
(
i
,
"gi"
))}}
if
(
e
==
"none"
){
h
([[
/\n+/g
,
" "
]])}
else
{
if
(
e
==
"br"
){
h
([[
/\n/g
,
"<br />"
]])}
else
{
if
(
e
==
"p"
){
h
([[
/\n+/g
,
"</p><p>"
],[
/^(.*<\/p>)(<p>)$/
,
"<p>$1"
]])}
else
{
h
([[
/\n\n/g
,
"</p><p>"
],[
/^(.*<\/p>)(<p>)$/
,
"<p>$1"
],[
/\n/g
,
"<br />"
]])}}}
d
.
execCommand
(
"mceInsertContent"
,
false
,
g
)}},
_legacySupport
:
function
(){
var
e
=
this
,
d
=
e
.
editor
;
d
.
addCommand
(
"mcePasteWord"
,
function
(){
d
.
windowManager
.
open
({
file
:
e
.
url
+
"/pasteword.htm"
,
width
:
parseInt
(
b
(
d
,
"paste_dialog_width"
)),
height
:
parseInt
(
b
(
d
,
"paste_dialog_height"
)),
inline
:
1
})});
if
(
b
(
d
,
"paste_text_use_dialog"
)){
d
.
addCommand
(
"mcePasteText"
,
function
(){
d
.
windowManager
.
open
({
file
:
e
.
url
+
"/pastetext.htm"
,
width
:
parseInt
(
b
(
d
,
"paste_dialog_width"
)),
height
:
parseInt
(
b
(
d
,
"paste_dialog_height"
)),
inline
:
1
})})}
d
.
addButton
(
"pasteword"
,{
title
:
"paste.paste_word_desc"
,
cmd
:
"mcePasteWord"
})}});
tinymce
.
PluginManager
.
add
(
"paste"
,
tinymce
.
plugins
.
PastePlugin
)})();
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Aug 18, 7:30 AM (21 h, 52 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1241442
Default Alt Text
editor_plugin.js (13 KB)
Attached To
Mode
R3 roundcubemail
Attached
Detach File
Event Timeline
Log In to Comment