wax_theme 0.1.0.beta

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.
Files changed (245) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +50 -0
  4. data/_includes/wax/collection/gallery.html +33 -0
  5. data/_includes/wax/collection/interactive_metadata.html +53 -0
  6. data/_includes/wax/footer.html +35 -0
  7. data/_includes/wax/head.html +16 -0
  8. data/_includes/wax/header.html +35 -0
  9. data/_includes/wax/image_viewer/leaflet.html +11 -0
  10. data/_includes/wax/image_viewer/mirador.html +8 -0
  11. data/_includes/wax/image_viewer/simple.html +5 -0
  12. data/_includes/wax/inline_image.html +12 -0
  13. data/_includes/wax/item/metadata.html +23 -0
  14. data/_includes/wax/item/pagination.html +23 -0
  15. data/_includes/wax/mirador_compare.html +11 -0
  16. data/_includes/wax/parallax.html +23 -0
  17. data/_includes/wax/search.html +12 -0
  18. data/_layouts/wax/collection_item.html +41 -0
  19. data/_layouts/wax/default.html +20 -0
  20. data/_layouts/wax/exhibit.html +15 -0
  21. data/_layouts/wax/page.html +13 -0
  22. data/_layouts/wax/reuse_page.html +7 -0
  23. data/_sass/_bootstrap.scss +9030 -0
  24. data/_sass/_syntax.scss +129 -0
  25. data/_sass/_wax.scss +482 -0
  26. data/assets/css/datatables.css +24 -0
  27. data/assets/css/leaflet.css +636 -0
  28. data/assets/js/bootstrap.min.js +7 -0
  29. data/assets/js/datatables.min.js +325 -0
  30. data/assets/js/elasticlunr.min.js +10 -0
  31. data/assets/js/jquery-3.2.1.min.js +4 -0
  32. data/assets/js/leaflet-iiif.min.js +8 -0
  33. data/assets/js/leaflet.js +5 -0
  34. data/assets/js/popper.min.js +5 -0
  35. data/assets/js/wax.js +91 -0
  36. data/assets/logo.png +0 -0
  37. data/assets/mirador/css/mirador-combined.css +4107 -0
  38. data/assets/mirador/fonts/FontAwesome.otf +0 -0
  39. data/assets/mirador/fonts/MaterialIcons-Regular.eot +0 -0
  40. data/assets/mirador/fonts/MaterialIcons-Regular.ijmap +1 -0
  41. data/assets/mirador/fonts/MaterialIcons-Regular.svg +2373 -0
  42. data/assets/mirador/fonts/MaterialIcons-Regular.ttf +0 -0
  43. data/assets/mirador/fonts/MaterialIcons-Regular.woff +0 -0
  44. data/assets/mirador/fonts/MaterialIcons-Regular.woff2 +0 -0
  45. data/assets/mirador/fonts/fontawesome-webfont.eot +0 -0
  46. data/assets/mirador/fonts/fontawesome-webfont.svg +2671 -0
  47. data/assets/mirador/fonts/fontawesome-webfont.ttf +0 -0
  48. data/assets/mirador/fonts/fontawesome-webfont.woff +0 -0
  49. data/assets/mirador/fonts/fontawesome-webfont.woff2 +0 -0
  50. data/assets/mirador/images/border_type_1.png +0 -0
  51. data/assets/mirador/images/border_type_2.png +0 -0
  52. data/assets/mirador/images/border_type_3.png +0 -0
  53. data/assets/mirador/images/border_type_4.png +0 -0
  54. data/assets/mirador/images/border_type_5.png +0 -0
  55. data/assets/mirador/images/debut_dark.png +0 -0
  56. data/assets/mirador/locales/ar/translation.json +42 -0
  57. data/assets/mirador/locales/de/translation.json +103 -0
  58. data/assets/mirador/locales/en/translation.json +106 -0
  59. data/assets/mirador/locales/es/translation.json +86 -0
  60. data/assets/mirador/locales/fr/translation.json +103 -0
  61. data/assets/mirador/locales/ga/translation.json +97 -0
  62. data/assets/mirador/locales/ja/translation.json +82 -0
  63. data/assets/mirador/locales/ko/translation.json +83 -0
  64. data/assets/mirador/locales/nl/translation.json +39 -0
  65. data/assets/mirador/locales/zh-CN/translation.json +76 -0
  66. data/assets/mirador/locales/zh-TW/translation.json +76 -0
  67. data/assets/mirador/locales/zh/translation.json +74 -0
  68. data/assets/mirador/mirador.js +49145 -0
  69. data/assets/mirador/plugins/advlist/index.js +7 -0
  70. data/assets/mirador/plugins/advlist/plugin.js +160 -0
  71. data/assets/mirador/plugins/advlist/plugin.min.js +1 -0
  72. data/assets/mirador/plugins/anchor/index.js +7 -0
  73. data/assets/mirador/plugins/anchor/plugin.js +118 -0
  74. data/assets/mirador/plugins/anchor/plugin.min.js +1 -0
  75. data/assets/mirador/plugins/autolink/index.js +7 -0
  76. data/assets/mirador/plugins/autolink/plugin.js +180 -0
  77. data/assets/mirador/plugins/autolink/plugin.min.js +1 -0
  78. data/assets/mirador/plugins/autoresize/index.js +7 -0
  79. data/assets/mirador/plugins/autoresize/plugin.js +169 -0
  80. data/assets/mirador/plugins/autoresize/plugin.min.js +1 -0
  81. data/assets/mirador/plugins/autosave/index.js +7 -0
  82. data/assets/mirador/plugins/autosave/plugin.js +226 -0
  83. data/assets/mirador/plugins/autosave/plugin.min.js +1 -0
  84. data/assets/mirador/plugins/bbcode/index.js +7 -0
  85. data/assets/mirador/plugins/bbcode/plugin.js +101 -0
  86. data/assets/mirador/plugins/bbcode/plugin.min.js +1 -0
  87. data/assets/mirador/plugins/charmap/index.js +7 -0
  88. data/assets/mirador/plugins/charmap/plugin.js +1275 -0
  89. data/assets/mirador/plugins/charmap/plugin.min.js +1 -0
  90. data/assets/mirador/plugins/code/index.js +7 -0
  91. data/assets/mirador/plugins/code/plugin.js +94 -0
  92. data/assets/mirador/plugins/code/plugin.min.js +1 -0
  93. data/assets/mirador/plugins/codesample/css/prism.css +138 -0
  94. data/assets/mirador/plugins/codesample/index.js +7 -0
  95. data/assets/mirador/plugins/codesample/plugin.js +967 -0
  96. data/assets/mirador/plugins/codesample/plugin.min.js +1 -0
  97. data/assets/mirador/plugins/colorpicker/index.js +7 -0
  98. data/assets/mirador/plugins/colorpicker/plugin.js +126 -0
  99. data/assets/mirador/plugins/colorpicker/plugin.min.js +1 -0
  100. data/assets/mirador/plugins/contextmenu/index.js +7 -0
  101. data/assets/mirador/plugins/contextmenu/plugin.js +168 -0
  102. data/assets/mirador/plugins/contextmenu/plugin.min.js +1 -0
  103. data/assets/mirador/plugins/directionality/index.js +7 -0
  104. data/assets/mirador/plugins/directionality/plugin.js +66 -0
  105. data/assets/mirador/plugins/directionality/plugin.min.js +1 -0
  106. data/assets/mirador/plugins/emoticons/img/smiley-cool.gif +0 -0
  107. data/assets/mirador/plugins/emoticons/img/smiley-cry.gif +0 -0
  108. data/assets/mirador/plugins/emoticons/img/smiley-embarassed.gif +0 -0
  109. data/assets/mirador/plugins/emoticons/img/smiley-foot-in-mouth.gif +0 -0
  110. data/assets/mirador/plugins/emoticons/img/smiley-frown.gif +0 -0
  111. data/assets/mirador/plugins/emoticons/img/smiley-innocent.gif +0 -0
  112. data/assets/mirador/plugins/emoticons/img/smiley-kiss.gif +0 -0
  113. data/assets/mirador/plugins/emoticons/img/smiley-laughing.gif +0 -0
  114. data/assets/mirador/plugins/emoticons/img/smiley-money-mouth.gif +0 -0
  115. data/assets/mirador/plugins/emoticons/img/smiley-sealed.gif +0 -0
  116. data/assets/mirador/plugins/emoticons/img/smiley-smile.gif +0 -0
  117. data/assets/mirador/plugins/emoticons/img/smiley-surprised.gif +0 -0
  118. data/assets/mirador/plugins/emoticons/img/smiley-tongue-out.gif +0 -0
  119. data/assets/mirador/plugins/emoticons/img/smiley-undecided.gif +0 -0
  120. data/assets/mirador/plugins/emoticons/img/smiley-wink.gif +0 -0
  121. data/assets/mirador/plugins/emoticons/img/smiley-yell.gif +0 -0
  122. data/assets/mirador/plugins/emoticons/index.js +7 -0
  123. data/assets/mirador/plugins/emoticons/plugin.js +87 -0
  124. data/assets/mirador/plugins/emoticons/plugin.min.js +1 -0
  125. data/assets/mirador/plugins/fullpage/index.js +7 -0
  126. data/assets/mirador/plugins/fullpage/plugin.js +519 -0
  127. data/assets/mirador/plugins/fullpage/plugin.min.js +1 -0
  128. data/assets/mirador/plugins/fullscreen/index.js +7 -0
  129. data/assets/mirador/plugins/fullscreen/plugin.js +177 -0
  130. data/assets/mirador/plugins/fullscreen/plugin.min.js +1 -0
  131. data/assets/mirador/plugins/help/img/logo.png +0 -0
  132. data/assets/mirador/plugins/help/index.js +7 -0
  133. data/assets/mirador/plugins/help/plugin.js +727 -0
  134. data/assets/mirador/plugins/help/plugin.min.js +1 -0
  135. data/assets/mirador/plugins/hr/index.js +7 -0
  136. data/assets/mirador/plugins/hr/plugin.js +39 -0
  137. data/assets/mirador/plugins/hr/plugin.min.js +1 -0
  138. data/assets/mirador/plugins/image/index.js +7 -0
  139. data/assets/mirador/plugins/image/plugin.js +1211 -0
  140. data/assets/mirador/plugins/image/plugin.min.js +1 -0
  141. data/assets/mirador/plugins/imagetools/index.js +7 -0
  142. data/assets/mirador/plugins/imagetools/plugin.js +3684 -0
  143. data/assets/mirador/plugins/imagetools/plugin.min.js +1 -0
  144. data/assets/mirador/plugins/importcss/index.js +7 -0
  145. data/assets/mirador/plugins/importcss/plugin.js +264 -0
  146. data/assets/mirador/plugins/importcss/plugin.min.js +1 -0
  147. data/assets/mirador/plugins/insertdatetime/index.js +7 -0
  148. data/assets/mirador/plugins/insertdatetime/plugin.js +173 -0
  149. data/assets/mirador/plugins/insertdatetime/plugin.min.js +1 -0
  150. data/assets/mirador/plugins/legacyoutput/index.js +7 -0
  151. data/assets/mirador/plugins/legacyoutput/plugin.js +220 -0
  152. data/assets/mirador/plugins/legacyoutput/plugin.min.js +1 -0
  153. data/assets/mirador/plugins/link/index.js +7 -0
  154. data/assets/mirador/plugins/link/plugin.js +713 -0
  155. data/assets/mirador/plugins/link/plugin.min.js +1 -0
  156. data/assets/mirador/plugins/lists/index.js +7 -0
  157. data/assets/mirador/plugins/lists/plugin.js +1115 -0
  158. data/assets/mirador/plugins/lists/plugin.min.js +1 -0
  159. data/assets/mirador/plugins/media/index.js +7 -0
  160. data/assets/mirador/plugins/media/plugin.js +1166 -0
  161. data/assets/mirador/plugins/media/plugin.min.js +1 -0
  162. data/assets/mirador/plugins/nonbreaking/index.js +7 -0
  163. data/assets/mirador/plugins/nonbreaking/plugin.js +85 -0
  164. data/assets/mirador/plugins/nonbreaking/plugin.min.js +1 -0
  165. data/assets/mirador/plugins/noneditable/index.js +7 -0
  166. data/assets/mirador/plugins/noneditable/plugin.js +118 -0
  167. data/assets/mirador/plugins/noneditable/plugin.min.js +1 -0
  168. data/assets/mirador/plugins/pagebreak/index.js +7 -0
  169. data/assets/mirador/plugins/pagebreak/plugin.js +109 -0
  170. data/assets/mirador/plugins/pagebreak/plugin.min.js +1 -0
  171. data/assets/mirador/plugins/paste/index.js +7 -0
  172. data/assets/mirador/plugins/paste/plugin.js +1497 -0
  173. data/assets/mirador/plugins/paste/plugin.min.js +1 -0
  174. data/assets/mirador/plugins/preview/index.js +7 -0
  175. data/assets/mirador/plugins/preview/plugin.js +123 -0
  176. data/assets/mirador/plugins/preview/plugin.min.js +1 -0
  177. data/assets/mirador/plugins/print/index.js +7 -0
  178. data/assets/mirador/plugins/print/plugin.js +38 -0
  179. data/assets/mirador/plugins/print/plugin.min.js +1 -0
  180. data/assets/mirador/plugins/save/index.js +7 -0
  181. data/assets/mirador/plugins/save/plugin.js +120 -0
  182. data/assets/mirador/plugins/save/plugin.min.js +1 -0
  183. data/assets/mirador/plugins/searchreplace/index.js +7 -0
  184. data/assets/mirador/plugins/searchreplace/plugin.js +603 -0
  185. data/assets/mirador/plugins/searchreplace/plugin.min.js +1 -0
  186. data/assets/mirador/plugins/spellchecker/index.js +7 -0
  187. data/assets/mirador/plugins/spellchecker/plugin.js +757 -0
  188. data/assets/mirador/plugins/spellchecker/plugin.min.js +1 -0
  189. data/assets/mirador/plugins/tabfocus/index.js +7 -0
  190. data/assets/mirador/plugins/tabfocus/plugin.js +124 -0
  191. data/assets/mirador/plugins/tabfocus/plugin.min.js +1 -0
  192. data/assets/mirador/plugins/table/index.js +7 -0
  193. data/assets/mirador/plugins/table/plugin.js +10144 -0
  194. data/assets/mirador/plugins/table/plugin.min.js +1 -0
  195. data/assets/mirador/plugins/template/index.js +7 -0
  196. data/assets/mirador/plugins/template/plugin.js +345 -0
  197. data/assets/mirador/plugins/template/plugin.min.js +1 -0
  198. data/assets/mirador/plugins/textcolor/index.js +7 -0
  199. data/assets/mirador/plugins/textcolor/plugin.js +346 -0
  200. data/assets/mirador/plugins/textcolor/plugin.min.js +1 -0
  201. data/assets/mirador/plugins/textpattern/index.js +7 -0
  202. data/assets/mirador/plugins/textpattern/plugin.js +370 -0
  203. data/assets/mirador/plugins/textpattern/plugin.min.js +1 -0
  204. data/assets/mirador/plugins/toc/index.js +7 -0
  205. data/assets/mirador/plugins/toc/plugin.js +228 -0
  206. data/assets/mirador/plugins/toc/plugin.min.js +1 -0
  207. data/assets/mirador/plugins/visualblocks/css/visualblocks.css +154 -0
  208. data/assets/mirador/plugins/visualblocks/index.js +7 -0
  209. data/assets/mirador/plugins/visualblocks/plugin.js +135 -0
  210. data/assets/mirador/plugins/visualblocks/plugin.min.js +1 -0
  211. data/assets/mirador/plugins/visualchars/index.js +7 -0
  212. data/assets/mirador/plugins/visualchars/plugin.js +505 -0
  213. data/assets/mirador/plugins/visualchars/plugin.min.js +1 -0
  214. data/assets/mirador/plugins/wordcount/index.js +7 -0
  215. data/assets/mirador/plugins/wordcount/plugin.js +343 -0
  216. data/assets/mirador/plugins/wordcount/plugin.min.js +1 -0
  217. data/assets/mirador/skins/lightgray/content.inline.min.css +1 -0
  218. data/assets/mirador/skins/lightgray/content.min.css +1 -0
  219. data/assets/mirador/skins/lightgray/content.mobile.min.css +1 -0
  220. data/assets/mirador/skins/lightgray/fonts/tinymce-mobile.woff +0 -0
  221. data/assets/mirador/skins/lightgray/fonts/tinymce-small.eot +0 -0
  222. data/assets/mirador/skins/lightgray/fonts/tinymce-small.svg +63 -0
  223. data/assets/mirador/skins/lightgray/fonts/tinymce-small.ttf +0 -0
  224. data/assets/mirador/skins/lightgray/fonts/tinymce-small.woff +0 -0
  225. data/assets/mirador/skins/lightgray/fonts/tinymce.eot +0 -0
  226. data/assets/mirador/skins/lightgray/fonts/tinymce.svg +131 -0
  227. data/assets/mirador/skins/lightgray/fonts/tinymce.ttf +0 -0
  228. data/assets/mirador/skins/lightgray/fonts/tinymce.woff +0 -0
  229. data/assets/mirador/skins/lightgray/img/anchor.gif +0 -0
  230. data/assets/mirador/skins/lightgray/img/loader.gif +0 -0
  231. data/assets/mirador/skins/lightgray/img/object.gif +0 -0
  232. data/assets/mirador/skins/lightgray/img/trans.gif +0 -0
  233. data/assets/mirador/skins/lightgray/skin.min.css +1 -0
  234. data/assets/mirador/skins/lightgray/skin.mobile.min.css +2 -0
  235. data/assets/mirador/themes/inlite/index.js +7 -0
  236. data/assets/mirador/themes/inlite/theme.js +10235 -0
  237. data/assets/mirador/themes/inlite/theme.min.js +1 -0
  238. data/assets/mirador/themes/mobile/index.js +7 -0
  239. data/assets/mirador/themes/mobile/theme.js +13546 -0
  240. data/assets/mirador/themes/mobile/theme.min.js +1 -0
  241. data/assets/mirador/themes/modern/index.js +7 -0
  242. data/assets/mirador/themes/modern/theme.js +10041 -0
  243. data/assets/mirador/themes/modern/theme.min.js +1 -0
  244. data/assets/styles.scss +51 -0
  245. metadata +343 -0
@@ -0,0 +1 @@
1
+ !function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),d=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),l=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),n=tinymce.util.Tools.resolve("tinymce.util.VK"),p=tinymce.util.Tools.resolve("tinymce.dom.BookmarkManager"),v=tinymce.util.Tools.resolve("tinymce.util.Tools"),t=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),o=function(e){return e&&"BR"===e.nodeName},r=function(e){return e&&3===e.nodeType},h=function(e){return e&&/^(OL|UL|DL)$/.test(e.nodeName)},i=function(e){return e&&/^(LI|DT|DD)$/.test(e.nodeName)},a=function(e){return e&&/^(TH|TD)$/.test(e.nodeName)},C=o,s=function(e){return e.parentNode.firstChild===e},c=function(e){return e.parentNode.lastChild===e},y=function(e,t){return t&&!!e.schema.getTextBlockElements()[t.nodeName]},f=function(e,t){return e&&e.nodeName in t},u=function(e,t){return!!o(t)&&!(!e.isBlock(t.nextSibling)||o(t.previousSibling))},m=function(e,t,n){var o=e.isEmpty(t);return!(n&&0<e.select("span[data-mce-type=bookmark]",t).length)&&o},g=function(e,t){return e.isChildOf(t,e.getRoot())},N=function(e,t){var n=d.getNode(e,t);return i(e)&&r(n)?{container:n,offset:t>=e.childNodes.length?n.data.length:0}:{container:e,offset:t}},L=function(e){var t=e.cloneRange(),n=N(e.startContainer,e.startOffset);t.setStart(n.container,n.offset);var o=N(e.endContainer,e.endOffset);return t.setEnd(o.container,o.offset),t},S=t.DOM,b=function(r){var i={},e=function(e){var t,n,o;n=r[e?"startContainer":"endContainer"],o=r[e?"startOffset":"endOffset"],1===n.nodeType&&(t=S.create("span",{"data-mce-type":"bookmark"}),n.hasChildNodes()?(o=Math.min(o,n.childNodes.length-1),e?n.insertBefore(t,n.childNodes[o]):S.insertAfter(t,n.childNodes[o])):n.appendChild(t),n=t,o=0),i[e?"startContainer":"endContainer"]=n,i[e?"startOffset":"endOffset"]=o};return e(!0),r.collapsed||e(),i},D=function(r){function e(e){var t,n,o;t=o=r[e?"startContainer":"endContainer"],n=r[e?"startOffset":"endOffset"],t&&(1===t.nodeType&&(n=function(e){for(var t=e.parentNode.firstChild,n=0;t;){if(t===e)return n;1===t.nodeType&&"bookmark"===t.getAttribute("data-mce-type")||n++,t=t.nextSibling}return-1}(t),t=t.parentNode,S.remove(o),!t.hasChildNodes()&&S.isBlock(t)&&t.appendChild(S.create("br"))),r[e?"startContainer":"endContainer"]=t,r[e?"startOffset":"endOffset"]=n)}e(!0),e();var t=S.createRng();return t.setStart(r.startContainer,r.startOffset),r.endContainer&&t.setEnd(r.endContainer,r.endOffset),L(t)},k=t.DOM,T=function(e,t){var n,o=t.parentNode;"LI"===o.nodeName&&o.firstChild===t&&((n=o.previousSibling)&&"LI"===n.nodeName?(n.appendChild(t),m(e,o)&&k.remove(o)):k.setStyle(o,"listStyleType","none")),h(o)&&(n=o.previousSibling)&&"LI"===n.nodeName&&n.appendChild(t)},I=function(t,e){v.each(v.grep(t.select("ol,ul",e)),function(e){T(t,e)})},B=tinymce.util.Tools.resolve("tinymce.dom.DomQuery"),R=function(e){var t=e.selection.getStart(!0);return e.dom.getParent(t,"OL,UL,DL",O(e,t))},O=function(e,t){var n=e.dom.getParents(t,"TD,TH");return 0<n.length?n[0]:e.getBody()},E={getParentList:R,getSelectedSubLists:function(e){var t,n,o,r=R(e),i=e.selection.getSelectedBlocks();return o=i,(n=r)&&1===o.length&&o[0]===n?(t=r,v.grep(t.querySelectorAll("ol,ul,dl"),function(e){return h(e)})):v.grep(i,function(e){return h(e)&&r!==e})},getSelectedListItems:function(e){var n,t,o,r=e.selection.getSelectedBlocks();return v.grep((n=e,t=r,o=v.map(t,function(e){var t=n.dom.getParent(e,"li,dd,dt",O(n,e));return t||e}),B.unique(o)),function(e){return i(e)})},getClosestListRootElm:O},A=tinymce.util.Tools.resolve("tinymce.Env"),P=t.DOM,x=function(e,t,n){var o,r,i,a=P.createFragment(),s=e.schema.getBlockElements();if(e.settings.forced_root_block&&(n=n||e.settings.forced_root_block),n&&((r=P.create(n)).tagName===e.settings.forced_root_block&&P.setAttribs(r,e.settings.forced_root_block_attrs),f(t.firstChild,s)||a.appendChild(r)),t)for(;o=t.firstChild;){var d=o.nodeName;i||"SPAN"===d&&"bookmark"===o.getAttribute("data-mce-type")||(i=!0),f(o,s)?(a.appendChild(o),r=null):n?(r||(r=P.create(n),a.appendChild(r)),r.appendChild(o)):a.appendChild(o)}return e.settings.forced_root_block?i||A.ie&&!(10<A.ie)||r.appendChild(P.create("br",{"data-mce-bogus":"1"})):a.appendChild(P.create("br")),a},_=t.DOM,M=function(e,t,n,o){var r,i,a,s,d;for(a=_.select('span[data-mce-type="bookmark"]',t),o=o||x(e,n),(r=_.createRng()).setStartAfter(n),r.setEndAfter(t),s=(i=r.extractContents()).firstChild;s;s=s.firstChild)if("LI"===s.nodeName&&e.dom.isEmpty(s)){_.remove(s);break}e.dom.isEmpty(i)||_.insertAfter(i,t),_.insertAfter(o,t),m(e.dom,n.parentNode)&&(d=n.parentNode,v.each(a,function(e){d.parentNode.insertBefore(e,n.parentNode)}),_.remove(d)),_.remove(n),m(e.dom,t)&&_.remove(t)},U=t.DOM,H=function(e,t){m(e,t)&&U.remove(t)},$=function(e,t){var n,o,r=t.parentNode;return r?(n=r.parentNode,r===e.getBody()||("DD"===t.nodeName?U.rename(t,"DT"):s(t)&&c(t)?"LI"===n.nodeName?(U.insertAfter(t,n),H(e.dom,n),U.remove(r)):h(n)?U.remove(r,!0):(n.insertBefore(x(e,t),r),U.remove(r)):s(t)?"LI"===n.nodeName?(U.insertAfter(t,n),t.appendChild(r),H(e.dom,n)):h(n)?n.insertBefore(t,r):(n.insertBefore(x(e,t),r),U.remove(t)):c(t)?"LI"===n.nodeName?U.insertAfter(t,n):h(n)?U.insertAfter(t,r):(U.insertAfter(x(e,t),r),U.remove(t)):("LI"===n.nodeName?(r=n,o=x(e,t,"LI")):o=h(n)?x(e,t,"LI"):x(e,t),M(e,r,t,o),I(e.dom,r.parentNode)))):H(e.dom,t),!0},w=$,K=function(e){var t=E.getSelectedListItems(e);if(t.length){var n=b(e.selection.getRng()),o=void 0,r=void 0,i=E.getClosestListRootElm(e,e.selection.getStart(!0));for(o=t.length;o--;)for(var a=t[o].parentNode;a&&a!==i;){for(r=t.length;r--;)if(t[r]===a){t.splice(o,1);break}a=a.parentNode}for(o=0;o<t.length&&($(e,t[o])||0!==o);o++);return e.selection.setRng(D(n)),e.nodeChanged(),!0}},Q=function(n,e){v.each(e,function(e,t){n.setAttribute(t,e)})},W=function(e,t,n){var o,r,i,a,s,d,l;o=e,r=t,a=(i=n)["list-style-type"]?i["list-style-type"]:null,o.setStyle(r,"list-style-type",a),s=e,Q(d=t,(l=n)["list-attributes"]),v.each(s.select("li",d),function(e){Q(e,l["list-item-attributes"])})},j=function(e,t,n,o){var r,i;for(r=t[n?"startContainer":"endContainer"],i=t[n?"startOffset":"endOffset"],1===r.nodeType&&(r=r.childNodes[Math.min(i,r.childNodes.length-1)]||r),!n&&C(r.nextSibling)&&(r=r.nextSibling);r.parentNode!==o;){if(y(e,r))return r;if(/^(TD|TH)$/.test(r.parentNode.nodeName))return r;r=r.parentNode}return r},q=function(c,f,u){void 0===u&&(u={});var e,t=c.selection.getRng(!0),m="LI",n=E.getClosestListRootElm(c,c.selection.getStart(!0)),g=c.dom;"false"!==g.getContentEditable(c.selection.getNode())&&("DL"===(f=f.toUpperCase())&&(m="DT"),e=b(t),v.each(function(n,e,o){for(var r,i=[],a=n.dom,t=j(n,e,!0,o),s=j(n,e,!1,o),d=[],l=t;l&&(d.push(l),l!==s);l=l.nextSibling);return v.each(d,function(e){if(y(n,e))return i.push(e),void(r=null);if(a.isBlock(e)||C(e))return C(e)&&a.remove(e),void(r=null);var t=e.nextSibling;p.isBookmarkNode(e)&&(y(n,t)||!t&&e.parentNode===o)?r=null:(r||(r=a.create("p"),e.parentNode.insertBefore(r,e),i.push(r)),r.appendChild(e))}),i}(c,t,n),function(e){var t,n,o,r,i,a,s,d,l;(n=e.previousSibling)&&h(n)&&n.nodeName===f&&(o=n,r=u,i=g.getStyle(o,"list-style-type"),a=r?r["list-style-type"]:"",i===(a=null===a?"":a))?(t=n,e=g.rename(e,m),n.appendChild(e)):(t=g.create(f),e.parentNode.insertBefore(t,e),t.appendChild(e),e=g.rename(e,m)),s=g,d=e,l=["margin","margin-right","margin-bottom","margin-left","margin-top","padding","padding-right","padding-bottom","padding-left","padding-top"],v.each(l,function(e){var t;return s.setStyle(d,((t={})[e]="",t))}),W(g,t,u),z(c.dom,t)}),c.selection.setRng(D(e)))},F=function(o){var e=b(o.selection.getRng(!0)),r=E.getClosestListRootElm(o,o.selection.getStart(!0)),t=E.getSelectedListItems(o),n=v.grep(t,function(e){return o.dom.isEmpty(e)});t=v.grep(t,function(e){return!o.dom.isEmpty(e)}),v.each(n,function(e){m(o.dom,e)&&w(o,e)}),v.each(t,function(e){var t,n;if(e.parentNode!==o.getBody()){for(t=e;t&&t!==r;t=t.parentNode)h(t)&&(n=t);M(o,n,e),I(o.dom,n.parentNode)}}),o.selection.setRng(D(e))},V=function(e,t,n){return d=n,(s=t)&&d&&h(s)&&s.nodeName===d.nodeName&&(i=t,a=n,(r=e).getStyle(i,"list-style-type",!0)===r.getStyle(a,"list-style-type",!0))&&(o=n,t.className===o.className);var o,r,i,a,s,d},z=function(e,t){var n,o;if(n=t.nextSibling,V(e,t,n)){for(;o=n.firstChild;)t.appendChild(o);e.remove(n)}if(n=t.previousSibling,V(e,t,n)){for(;o=n.lastChild;)t.insertBefore(o,t.firstChild);e.remove(n)}},G=function(t,e,n,o,r){if(e.nodeName!==o||J(r)){var i=b(t.selection.getRng(!0));v.each([e].concat(n),function(e){!function(e,t,n,o){if(t.nodeName!==n){var r=e.rename(t,n);W(e,r,o)}else W(e,t,o)}(t.dom,e,o,r)}),t.selection.setRng(D(i))}else F(t)},J=function(e){return"list-style-type"in e},X={toggleList:function(e,t,n){var o=E.getParentList(e),r=E.getSelectedSubLists(e);n=n||{},o&&0<r.length?G(e,o,r,t,n):function(e,t,n,o){if(t!==e.getBody())if(t)if(t.nodeName!==n||J(o)){var r=b(e.selection.getRng(!0));W(e.dom,t,o),z(e.dom,e.dom.rename(t,n)),e.selection.setRng(D(r))}else F(e);else q(e,n,o)}(e,o,t,n)},removeList:F,mergeWithAdjacentLists:z},Y=function(e,t,n,o){var r,i,a=t.startContainer,s=t.startOffset;if(3===a.nodeType&&(n?s<a.data.length:0<s))return a;for(r=e.schema.getNonEmptyElements(),1===a.nodeType&&(a=d.getNode(a,s)),i=new l(a,o),n&&u(e.dom,a)&&i.next();a=i[n?"next":"prev2"]();){if("LI"===a.nodeName&&!a.hasChildNodes())return a;if(r[a.nodeName])return a;if(3===a.nodeType&&0<a.data.length)return a}},Z=function(e,t){var n=t.childNodes;return 1===n.length&&!h(n[0])&&e.isBlock(n[0])},ee=function(e,t,n){var o,r,i,a;if(r=Z(e,n)?n.firstChild:n,Z(i=e,a=t)&&i.remove(a.firstChild,!0),!m(e,t,!0))for(;o=t.firstChild;)r.appendChild(o)},te=function(e,t,n){var o,r,i=t.parentNode;g(e,t)&&g(e,n)&&(h(n.lastChild)&&(r=n.lastChild),i===n.lastChild&&C(i.previousSibling)&&e.remove(i.previousSibling),(o=n.lastChild)&&C(o)&&t.hasChildNodes()&&e.remove(o),m(e,n,!0)&&e.$(n).empty(),ee(e,t,n),r&&n.appendChild(r),e.remove(t),m(e,i)&&i!==e.getRoot()&&e.remove(i))},ne=function(e,t,n,o){var r,i,a,s=e.dom;if(s.isEmpty(o))i=n,a=o,(r=e).dom.$(a).empty(),te(r.dom,i,a),r.selection.setCursorLocation(a);else{var d=b(t);te(s,n,o),e.selection.setRng(D(d))}},oe=function(e,t){var n,o,r,i=e.dom,a=e.selection,s=a.getStart(),d=E.getClosestListRootElm(e,s),l=i.getParent(a.getStart(),"LI",d);if(l){if((n=l.parentNode)===e.getBody()&&m(i,n))return!0;if(o=L(a.getRng(!0)),(r=i.getParent(Y(e,o,t,d),"LI",d))&&r!==l)return t?ne(e,o,r,l):function(e,t,n,o){var r=b(t);te(e.dom,n,o);var i=D(r);e.selection.setRng(i)}(e,o,l,r),!0;if(!r&&!t)return X.removeList(e),!0}return!1},re=function(e,t){return oe(e,t)||function(r,i){var a=r.dom,e=r.selection.getStart(),s=E.getClosestListRootElm(r,e),d=a.getParent(e,a.isBlock,s);if(d&&a.isEmpty(d)){var t=L(r.selection.getRng(!0)),l=a.getParent(Y(r,t,i,s),"LI",s);if(l)return r.undoManager.transact(function(){var e,t,n,o;t=d,n=s,o=(e=a).getParent(t.parentNode,e.isBlock,n),e.remove(t),o&&e.isEmpty(o)&&e.remove(o),X.mergeWithAdjacentLists(a,l.parentNode),r.selection.select(l,!0),r.selection.collapse(i)}),!0}return!1}(e,t)},ie=function(e,t){return e.selection.isCollapsed()?re(e,t):(o=(n=e).selection.getStart(),r=E.getClosestListRootElm(n,o),!!(n.dom.getParent(o,"LI,DT,DD",r)||0<E.getSelectedListItems(n).length)&&(n.undoManager.transact(function(){n.execCommand("Delete"),I(n.dom,n.getBody())}),!0));var n,o,r},ae=function(t){t.on("keydown",function(e){e.keyCode===n.BACKSPACE?ie(t,!1)&&e.preventDefault():e.keyCode===n.DELETE&&ie(t,!0)&&e.preventDefault()})},se=ie,de=function(t){return{backspaceDelete:function(e){se(t,e)}}},le=t.DOM,ce=function(e,t){var n;if(h(e)){for(;n=e.firstChild;)t.appendChild(n);le.remove(e)}},fe=function(e){var t,n,o,r,i=E.getSelectedListItems(e);if(i.length){for(var a=b(e.selection.getRng(!0)),s=0;s<i.length&&(t=i[s],r=o=n=void 0,("DT"===t.nodeName?(le.rename(t,"DD"),1):(n=t.previousSibling)&&h(n)?(n.appendChild(t),1):n&&"LI"===n.nodeName&&h(n.lastChild)?(n.lastChild.appendChild(t),ce(t.lastChild,n.lastChild),1):(n=t.nextSibling)&&h(n)?(n.insertBefore(t,n.firstChild),1):(n=t.previousSibling)&&"LI"===n.nodeName&&(o=le.create(t.parentNode.nodeName),(r=le.getStyle(t.parentNode,"listStyleType"))&&le.setStyle(o,"listStyleType",r),n.appendChild(o),o.appendChild(t),ce(t.lastChild,o),1))||0!==s);s++);return e.selection.setRng(D(a)),e.nodeChanged(),!0}},ue=function(t,n){return function(){var e=t.dom.getParent(t.selection.getStart(),"UL,OL,DL");return e&&e.nodeName===n}},me=function(o){o.on("BeforeExecCommand",function(e){var t,n=e.command.toLowerCase();if("indent"===n?fe(o)&&(t=!0):"outdent"===n&&K(o)&&(t=!0),t)return o.fire("ExecCommand",{command:e.command}),e.preventDefault(),!0}),o.addCommand("InsertUnorderedList",function(e,t){X.toggleList(o,"UL",t)}),o.addCommand("InsertOrderedList",function(e,t){X.toggleList(o,"OL",t)}),o.addCommand("InsertDefinitionList",function(e,t){X.toggleList(o,"DL",t)}),o.addQueryStateHandler("InsertUnorderedList",ue(o,"UL")),o.addQueryStateHandler("InsertOrderedList",ue(o,"OL")),o.addQueryStateHandler("InsertDefinitionList",ue(o,"DL"))},ge=function(e){return e.getParam("lists_indent_on_tab",!0)},pe=function(e){var t;ge(e)&&(t=e).on("keydown",function(e){e.keyCode!==n.TAB||n.metaKeyPressed(e)||t.dom.getParent(t.selection.getStart(),"LI,DT,DD")&&(e.preventDefault(),e.shiftKey?K(t):fe(t))}),ae(e)},ve=function(t,i){return function(e){var r=e.control;t.on("NodeChange",function(e){var t=function(e,t){for(var n=0;n<e.length;n++)if(t(e[n]))return n;return-1}(e.parents,a),n=-1!==t?e.parents.slice(0,t):e.parents,o=v.grep(n,h);r.active(0<o.length&&o[0].nodeName===i)})}},he=function(e){var t,n,o,r;n="advlist",o=(t=e).settings.plugins?t.settings.plugins:"",-1===v.inArray(o.split(/[ ,]/),n)&&(e.addButton("numlist",{active:!1,title:"Numbered list",cmd:"InsertOrderedList",onPostRender:ve(e,"OL")}),e.addButton("bullist",{active:!1,title:"Bullet list",cmd:"InsertUnorderedList",onPostRender:ve(e,"UL")})),e.addButton("indent",{icon:"indent",title:"Increase indent",cmd:"Indent",onPostRender:(r=e,function(e){var n=e.control;r.on("nodechange",function(){var e=E.getSelectedListItems(r),t=0<e.length&&s(e[0]);n.disabled(t)})})})};e.add("lists",function(e){return pe(e),he(e),me(e),de(e)})}();
@@ -0,0 +1,7 @@
1
+ // Exports the "media" plugin for usage with module loaders
2
+ // Usage:
3
+ // CommonJS:
4
+ // require('tinymce/plugins/media')
5
+ // ES2015:
6
+ // import 'tinymce/plugins/media'
7
+ require('./plugin.js');
@@ -0,0 +1,1166 @@
1
+ (function () {
2
+ var media = (function () {
3
+ 'use strict';
4
+
5
+ var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
6
+
7
+ var global$1 = tinymce.util.Tools.resolve('tinymce.Env');
8
+
9
+ var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools');
10
+
11
+ var getScripts = function (editor) {
12
+ return editor.getParam('media_scripts');
13
+ };
14
+ var getAudioTemplateCallback = function (editor) {
15
+ return editor.getParam('audio_template_callback');
16
+ };
17
+ var getVideoTemplateCallback = function (editor) {
18
+ return editor.getParam('video_template_callback');
19
+ };
20
+ var hasLiveEmbeds = function (editor) {
21
+ return editor.getParam('media_live_embeds', true);
22
+ };
23
+ var shouldFilterHtml = function (editor) {
24
+ return editor.getParam('media_filter_html', true);
25
+ };
26
+ var getUrlResolver = function (editor) {
27
+ return editor.getParam('media_url_resolver');
28
+ };
29
+ var hasAltSource = function (editor) {
30
+ return editor.getParam('media_alt_source', true);
31
+ };
32
+ var hasPoster = function (editor) {
33
+ return editor.getParam('media_poster', true);
34
+ };
35
+ var hasDimensions = function (editor) {
36
+ return editor.getParam('media_dimensions', true);
37
+ };
38
+ var $_5hjeirh2jm0ofzj6 = {
39
+ getScripts: getScripts,
40
+ getAudioTemplateCallback: getAudioTemplateCallback,
41
+ getVideoTemplateCallback: getVideoTemplateCallback,
42
+ hasLiveEmbeds: hasLiveEmbeds,
43
+ shouldFilterHtml: shouldFilterHtml,
44
+ getUrlResolver: getUrlResolver,
45
+ hasAltSource: hasAltSource,
46
+ hasPoster: hasPoster,
47
+ hasDimensions: hasDimensions
48
+ };
49
+
50
+ var global$3 = tinymce.util.Tools.resolve('tinymce.html.SaxParser');
51
+
52
+ var global$4 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
53
+
54
+ var getVideoScriptMatch = function (prefixes, src) {
55
+ if (prefixes) {
56
+ for (var i = 0; i < prefixes.length; i++) {
57
+ if (src.indexOf(prefixes[i].filter) !== -1) {
58
+ return prefixes[i];
59
+ }
60
+ }
61
+ }
62
+ };
63
+ var $_545y8yh6jm0ofzjb = { getVideoScriptMatch: getVideoScriptMatch };
64
+
65
+ var trimPx = function (value) {
66
+ return value.replace(/px$/, '');
67
+ };
68
+ var addPx = function (value) {
69
+ return /^[0-9.]+$/.test(value) ? value + 'px' : value;
70
+ };
71
+ var getSize = function (name) {
72
+ return function (elm) {
73
+ return elm ? trimPx(elm.style[name]) : '';
74
+ };
75
+ };
76
+ var setSize = function (name) {
77
+ return function (elm, value) {
78
+ if (elm) {
79
+ elm.style[name] = addPx(value);
80
+ }
81
+ };
82
+ };
83
+ var $_am85wh7jm0ofzjc = {
84
+ getMaxWidth: getSize('maxWidth'),
85
+ getMaxHeight: getSize('maxHeight'),
86
+ setMaxWidth: setSize('maxWidth'),
87
+ setMaxHeight: setSize('maxHeight')
88
+ };
89
+
90
+ var DOM = global$4.DOM;
91
+ var getEphoxEmbedIri = function (elm) {
92
+ return DOM.getAttrib(elm, 'data-ephox-embed-iri');
93
+ };
94
+ var isEphoxEmbed = function (html) {
95
+ var fragment = DOM.createFragment(html);
96
+ return getEphoxEmbedIri(fragment.firstChild) !== '';
97
+ };
98
+ var htmlToDataSax = function (prefixes, html) {
99
+ var data = {};
100
+ global$3({
101
+ validate: false,
102
+ allow_conditional_comments: true,
103
+ special: 'script,noscript',
104
+ start: function (name, attrs) {
105
+ if (!data.source1 && name === 'param') {
106
+ data.source1 = attrs.map.movie;
107
+ }
108
+ if (name === 'iframe' || name === 'object' || name === 'embed' || name === 'video' || name === 'audio') {
109
+ if (!data.type) {
110
+ data.type = name;
111
+ }
112
+ data = global$2.extend(attrs.map, data);
113
+ }
114
+ if (name === 'script') {
115
+ var videoScript = $_545y8yh6jm0ofzjb.getVideoScriptMatch(prefixes, attrs.map.src);
116
+ if (!videoScript) {
117
+ return;
118
+ }
119
+ data = {
120
+ type: 'script',
121
+ source1: attrs.map.src,
122
+ width: videoScript.width,
123
+ height: videoScript.height
124
+ };
125
+ }
126
+ if (name === 'source') {
127
+ if (!data.source1) {
128
+ data.source1 = attrs.map.src;
129
+ } else if (!data.source2) {
130
+ data.source2 = attrs.map.src;
131
+ }
132
+ }
133
+ if (name === 'img' && !data.poster) {
134
+ data.poster = attrs.map.src;
135
+ }
136
+ }
137
+ }).parse(html);
138
+ data.source1 = data.source1 || data.src || data.data;
139
+ data.source2 = data.source2 || '';
140
+ data.poster = data.poster || '';
141
+ return data;
142
+ };
143
+ var ephoxEmbedHtmlToData = function (html) {
144
+ var fragment = DOM.createFragment(html);
145
+ var div = fragment.firstChild;
146
+ return {
147
+ type: 'ephox-embed-iri',
148
+ source1: getEphoxEmbedIri(div),
149
+ source2: '',
150
+ poster: '',
151
+ width: $_am85wh7jm0ofzjc.getMaxWidth(div),
152
+ height: $_am85wh7jm0ofzjc.getMaxHeight(div)
153
+ };
154
+ };
155
+ var htmlToData = function (prefixes, html) {
156
+ return isEphoxEmbed(html) ? ephoxEmbedHtmlToData(html) : htmlToDataSax(prefixes, html);
157
+ };
158
+ var $_5d5iuvh3jm0ofzj8 = { htmlToData: htmlToData };
159
+
160
+ var global$5 = tinymce.util.Tools.resolve('tinymce.util.Promise');
161
+
162
+ var guess = function (url) {
163
+ var mimes = {
164
+ mp3: 'audio/mpeg',
165
+ wav: 'audio/wav',
166
+ mp4: 'video/mp4',
167
+ webm: 'video/webm',
168
+ ogg: 'video/ogg',
169
+ swf: 'application/x-shockwave-flash'
170
+ };
171
+ var fileEnd = url.toLowerCase().split('.').pop();
172
+ var mime = mimes[fileEnd];
173
+ return mime ? mime : '';
174
+ };
175
+ var $_1qa9r9hbjm0ofzjk = { guess: guess };
176
+
177
+ var global$6 = tinymce.util.Tools.resolve('tinymce.html.Writer');
178
+
179
+ var global$7 = tinymce.util.Tools.resolve('tinymce.html.Schema');
180
+
181
+ var DOM$1 = global$4.DOM;
182
+ var setAttributes = function (attrs, updatedAttrs) {
183
+ var name;
184
+ var i;
185
+ var value;
186
+ var attr;
187
+ for (name in updatedAttrs) {
188
+ value = '' + updatedAttrs[name];
189
+ if (attrs.map[name]) {
190
+ i = attrs.length;
191
+ while (i--) {
192
+ attr = attrs[i];
193
+ if (attr.name === name) {
194
+ if (value) {
195
+ attrs.map[name] = value;
196
+ attr.value = value;
197
+ } else {
198
+ delete attrs.map[name];
199
+ attrs.splice(i, 1);
200
+ }
201
+ }
202
+ }
203
+ } else if (value) {
204
+ attrs.push({
205
+ name: name,
206
+ value: value
207
+ });
208
+ attrs.map[name] = value;
209
+ }
210
+ }
211
+ };
212
+ var normalizeHtml = function (html) {
213
+ var writer = global$6();
214
+ var parser = global$3(writer);
215
+ parser.parse(html);
216
+ return writer.getContent();
217
+ };
218
+ var updateHtmlSax = function (html, data, updateAll) {
219
+ var writer = global$6();
220
+ var sourceCount = 0;
221
+ var hasImage;
222
+ global$3({
223
+ validate: false,
224
+ allow_conditional_comments: true,
225
+ special: 'script,noscript',
226
+ comment: function (text) {
227
+ writer.comment(text);
228
+ },
229
+ cdata: function (text) {
230
+ writer.cdata(text);
231
+ },
232
+ text: function (text, raw) {
233
+ writer.text(text, raw);
234
+ },
235
+ start: function (name, attrs, empty) {
236
+ switch (name) {
237
+ case 'video':
238
+ case 'object':
239
+ case 'embed':
240
+ case 'img':
241
+ case 'iframe':
242
+ if (data.height !== undefined && data.width !== undefined) {
243
+ setAttributes(attrs, {
244
+ width: data.width,
245
+ height: data.height
246
+ });
247
+ }
248
+ break;
249
+ }
250
+ if (updateAll) {
251
+ switch (name) {
252
+ case 'video':
253
+ setAttributes(attrs, {
254
+ poster: data.poster,
255
+ src: ''
256
+ });
257
+ if (data.source2) {
258
+ setAttributes(attrs, { src: '' });
259
+ }
260
+ break;
261
+ case 'iframe':
262
+ setAttributes(attrs, { src: data.source1 });
263
+ break;
264
+ case 'source':
265
+ sourceCount++;
266
+ if (sourceCount <= 2) {
267
+ setAttributes(attrs, {
268
+ src: data['source' + sourceCount],
269
+ type: data['source' + sourceCount + 'mime']
270
+ });
271
+ if (!data['source' + sourceCount]) {
272
+ return;
273
+ }
274
+ }
275
+ break;
276
+ case 'img':
277
+ if (!data.poster) {
278
+ return;
279
+ }
280
+ hasImage = true;
281
+ break;
282
+ }
283
+ }
284
+ writer.start(name, attrs, empty);
285
+ },
286
+ end: function (name) {
287
+ if (name === 'video' && updateAll) {
288
+ for (var index = 1; index <= 2; index++) {
289
+ if (data['source' + index]) {
290
+ var attrs = [];
291
+ attrs.map = {};
292
+ if (sourceCount < index) {
293
+ setAttributes(attrs, {
294
+ src: data['source' + index],
295
+ type: data['source' + index + 'mime']
296
+ });
297
+ writer.start('source', attrs, true);
298
+ }
299
+ }
300
+ }
301
+ }
302
+ if (data.poster && name === 'object' && updateAll && !hasImage) {
303
+ var imgAttrs = [];
304
+ imgAttrs.map = {};
305
+ setAttributes(imgAttrs, {
306
+ src: data.poster,
307
+ width: data.width,
308
+ height: data.height
309
+ });
310
+ writer.start('img', imgAttrs, true);
311
+ }
312
+ writer.end(name);
313
+ }
314
+ }, global$7({})).parse(html);
315
+ return writer.getContent();
316
+ };
317
+ var isEphoxEmbed$1 = function (html) {
318
+ var fragment = DOM$1.createFragment(html);
319
+ return DOM$1.getAttrib(fragment.firstChild, 'data-ephox-embed-iri') !== '';
320
+ };
321
+ var updateEphoxEmbed = function (html, data) {
322
+ var fragment = DOM$1.createFragment(html);
323
+ var div = fragment.firstChild;
324
+ $_am85wh7jm0ofzjc.setMaxWidth(div, data.width);
325
+ $_am85wh7jm0ofzjc.setMaxHeight(div, data.height);
326
+ return normalizeHtml(div.outerHTML);
327
+ };
328
+ var updateHtml = function (html, data, updateAll) {
329
+ return isEphoxEmbed$1(html) ? updateEphoxEmbed(html, data) : updateHtmlSax(html, data, updateAll);
330
+ };
331
+ var $_cok7l6hcjm0ofzjm = { updateHtml: updateHtml };
332
+
333
+ var urlPatterns = [
334
+ {
335
+ regex: /youtu\.be\/([\w\-_\?&=.]+)/i,
336
+ type: 'iframe',
337
+ w: 560,
338
+ h: 314,
339
+ url: '//www.youtube.com/embed/$1',
340
+ allowFullscreen: true
341
+ },
342
+ {
343
+ regex: /youtube\.com(.+)v=([^&]+)(&([a-z0-9&=\-_]+))?/i,
344
+ type: 'iframe',
345
+ w: 560,
346
+ h: 314,
347
+ url: '//www.youtube.com/embed/$2?$4',
348
+ allowFullscreen: true
349
+ },
350
+ {
351
+ regex: /youtube.com\/embed\/([a-z0-9\?&=\-_]+)/i,
352
+ type: 'iframe',
353
+ w: 560,
354
+ h: 314,
355
+ url: '//www.youtube.com/embed/$1',
356
+ allowFullscreen: true
357
+ },
358
+ {
359
+ regex: /vimeo\.com\/([0-9]+)/,
360
+ type: 'iframe',
361
+ w: 425,
362
+ h: 350,
363
+ url: '//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc',
364
+ allowFullscreen: true
365
+ },
366
+ {
367
+ regex: /vimeo\.com\/(.*)\/([0-9]+)/,
368
+ type: 'iframe',
369
+ w: 425,
370
+ h: 350,
371
+ url: '//player.vimeo.com/video/$2?title=0&amp;byline=0',
372
+ allowFullscreen: true
373
+ },
374
+ {
375
+ regex: /maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,
376
+ type: 'iframe',
377
+ w: 425,
378
+ h: 350,
379
+ url: '//maps.google.com/maps/ms?msid=$2&output=embed"',
380
+ allowFullscreen: false
381
+ },
382
+ {
383
+ regex: /dailymotion\.com\/video\/([^_]+)/,
384
+ type: 'iframe',
385
+ w: 480,
386
+ h: 270,
387
+ url: '//www.dailymotion.com/embed/video/$1',
388
+ allowFullscreen: true
389
+ },
390
+ {
391
+ regex: /dai\.ly\/([^_]+)/,
392
+ type: 'iframe',
393
+ w: 480,
394
+ h: 270,
395
+ url: '//www.dailymotion.com/embed/video/$1',
396
+ allowFullscreen: true
397
+ }
398
+ ];
399
+ var getUrl = function (pattern, url) {
400
+ var match = pattern.regex.exec(url);
401
+ var newUrl = pattern.url;
402
+ var _loop_1 = function (i) {
403
+ newUrl = newUrl.replace('$' + i, function () {
404
+ return match[i] ? match[i] : '';
405
+ });
406
+ };
407
+ for (var i = 0; i < match.length; i++) {
408
+ _loop_1(i);
409
+ }
410
+ return newUrl.replace(/\?$/, '');
411
+ };
412
+ var matchPattern = function (url) {
413
+ var pattern = urlPatterns.filter(function (pattern) {
414
+ return pattern.regex.test(url);
415
+ });
416
+ if (pattern.length > 0) {
417
+ return global$2.extend({}, pattern[0], { url: getUrl(pattern[0], url) });
418
+ } else {
419
+ return null;
420
+ }
421
+ };
422
+
423
+ var getIframeHtml = function (data) {
424
+ var allowFullscreen = data.allowFullscreen ? ' allowFullscreen="1"' : '';
425
+ return '<iframe src="' + data.source1 + '" width="' + data.width + '" height="' + data.height + '"' + allowFullscreen + '></iframe>';
426
+ };
427
+ var getFlashHtml = function (data) {
428
+ var html = '<object data="' + data.source1 + '" width="' + data.width + '" height="' + data.height + '" type="application/x-shockwave-flash">';
429
+ if (data.poster) {
430
+ html += '<img src="' + data.poster + '" width="' + data.width + '" height="' + data.height + '" />';
431
+ }
432
+ html += '</object>';
433
+ return html;
434
+ };
435
+ var getAudioHtml = function (data, audioTemplateCallback) {
436
+ if (audioTemplateCallback) {
437
+ return audioTemplateCallback(data);
438
+ } else {
439
+ return '<audio controls="controls" src="' + data.source1 + '">' + (data.source2 ? '\n<source src="' + data.source2 + '"' + (data.source2mime ? ' type="' + data.source2mime + '"' : '') + ' />\n' : '') + '</audio>';
440
+ }
441
+ };
442
+ var getVideoHtml = function (data, videoTemplateCallback) {
443
+ if (videoTemplateCallback) {
444
+ return videoTemplateCallback(data);
445
+ } else {
446
+ return '<video width="' + data.width + '" height="' + data.height + '"' + (data.poster ? ' poster="' + data.poster + '"' : '') + ' controls="controls">\n' + '<source src="' + data.source1 + '"' + (data.source1mime ? ' type="' + data.source1mime + '"' : '') + ' />\n' + (data.source2 ? '<source src="' + data.source2 + '"' + (data.source2mime ? ' type="' + data.source2mime + '"' : '') + ' />\n' : '') + '</video>';
447
+ }
448
+ };
449
+ var getScriptHtml = function (data) {
450
+ return '<script src="' + data.source1 + '"></script>';
451
+ };
452
+ var dataToHtml = function (editor, dataIn) {
453
+ var data = global$2.extend({}, dataIn);
454
+ if (!data.source1) {
455
+ global$2.extend(data, $_5d5iuvh3jm0ofzj8.htmlToData($_5hjeirh2jm0ofzj6.getScripts(editor), data.embed));
456
+ if (!data.source1) {
457
+ return '';
458
+ }
459
+ }
460
+ if (!data.source2) {
461
+ data.source2 = '';
462
+ }
463
+ if (!data.poster) {
464
+ data.poster = '';
465
+ }
466
+ data.source1 = editor.convertURL(data.source1, 'source');
467
+ data.source2 = editor.convertURL(data.source2, 'source');
468
+ data.source1mime = $_1qa9r9hbjm0ofzjk.guess(data.source1);
469
+ data.source2mime = $_1qa9r9hbjm0ofzjk.guess(data.source2);
470
+ data.poster = editor.convertURL(data.poster, 'poster');
471
+ var pattern = matchPattern(data.source1);
472
+ if (pattern) {
473
+ data.source1 = pattern.url;
474
+ data.type = pattern.type;
475
+ data.allowFullscreen = pattern.allowFullscreen;
476
+ data.width = data.width || pattern.w;
477
+ data.height = data.height || pattern.h;
478
+ }
479
+ if (data.embed) {
480
+ return $_cok7l6hcjm0ofzjm.updateHtml(data.embed, data, true);
481
+ } else {
482
+ var videoScript = $_545y8yh6jm0ofzjb.getVideoScriptMatch($_5hjeirh2jm0ofzj6.getScripts(editor), data.source1);
483
+ if (videoScript) {
484
+ data.type = 'script';
485
+ data.width = videoScript.width;
486
+ data.height = videoScript.height;
487
+ }
488
+ var audioTemplateCallback = $_5hjeirh2jm0ofzj6.getAudioTemplateCallback(editor);
489
+ var videoTemplateCallback = $_5hjeirh2jm0ofzj6.getVideoTemplateCallback(editor);
490
+ data.width = data.width || 300;
491
+ data.height = data.height || 150;
492
+ global$2.each(data, function (value, key) {
493
+ data[key] = editor.dom.encode(value);
494
+ });
495
+ if (data.type === 'iframe') {
496
+ return getIframeHtml(data);
497
+ } else if (data.source1mime === 'application/x-shockwave-flash') {
498
+ return getFlashHtml(data);
499
+ } else if (data.source1mime.indexOf('audio') !== -1) {
500
+ return getAudioHtml(data, audioTemplateCallback);
501
+ } else if (data.type === 'script') {
502
+ return getScriptHtml(data);
503
+ } else {
504
+ return getVideoHtml(data, videoTemplateCallback);
505
+ }
506
+ }
507
+ };
508
+ var $_32etinhajm0ofzjg = { dataToHtml: dataToHtml };
509
+
510
+ var cache = {};
511
+ var embedPromise = function (data, dataToHtml, handler) {
512
+ return new global$5(function (res, rej) {
513
+ var wrappedResolve = function (response) {
514
+ if (response.html) {
515
+ cache[data.source1] = response;
516
+ }
517
+ return res({
518
+ url: data.source1,
519
+ html: response.html ? response.html : dataToHtml(data)
520
+ });
521
+ };
522
+ if (cache[data.source1]) {
523
+ wrappedResolve(cache[data.source1]);
524
+ } else {
525
+ handler({ url: data.source1 }, wrappedResolve, rej);
526
+ }
527
+ });
528
+ };
529
+ var defaultPromise = function (data, dataToHtml) {
530
+ return new global$5(function (res) {
531
+ res({
532
+ html: dataToHtml(data),
533
+ url: data.source1
534
+ });
535
+ });
536
+ };
537
+ var loadedData = function (editor) {
538
+ return function (data) {
539
+ return $_32etinhajm0ofzjg.dataToHtml(editor, data);
540
+ };
541
+ };
542
+ var getEmbedHtml = function (editor, data) {
543
+ var embedHandler = $_5hjeirh2jm0ofzj6.getUrlResolver(editor);
544
+ return embedHandler ? embedPromise(data, loadedData(editor), embedHandler) : defaultPromise(data, loadedData(editor));
545
+ };
546
+ var isCached = function (url) {
547
+ return cache.hasOwnProperty(url);
548
+ };
549
+ var $_bs9hzwh8jm0ofzje = {
550
+ getEmbedHtml: getEmbedHtml,
551
+ isCached: isCached
552
+ };
553
+
554
+ var doSyncSize = function (widthCtrl, heightCtrl) {
555
+ widthCtrl.state.set('oldVal', widthCtrl.value());
556
+ heightCtrl.state.set('oldVal', heightCtrl.value());
557
+ };
558
+ var doSizeControls = function (win, f) {
559
+ var widthCtrl = win.find('#width')[0];
560
+ var heightCtrl = win.find('#height')[0];
561
+ var constrained = win.find('#constrain')[0];
562
+ if (widthCtrl && heightCtrl && constrained) {
563
+ f(widthCtrl, heightCtrl, constrained.checked());
564
+ }
565
+ };
566
+ var doUpdateSize = function (widthCtrl, heightCtrl, isContrained) {
567
+ var oldWidth = widthCtrl.state.get('oldVal');
568
+ var oldHeight = heightCtrl.state.get('oldVal');
569
+ var newWidth = widthCtrl.value();
570
+ var newHeight = heightCtrl.value();
571
+ if (isContrained && oldWidth && oldHeight && newWidth && newHeight) {
572
+ if (newWidth !== oldWidth) {
573
+ newHeight = Math.round(newWidth / oldWidth * newHeight);
574
+ if (!isNaN(newHeight)) {
575
+ heightCtrl.value(newHeight);
576
+ }
577
+ } else {
578
+ newWidth = Math.round(newHeight / oldHeight * newWidth);
579
+ if (!isNaN(newWidth)) {
580
+ widthCtrl.value(newWidth);
581
+ }
582
+ }
583
+ }
584
+ doSyncSize(widthCtrl, heightCtrl);
585
+ };
586
+ var syncSize = function (win) {
587
+ doSizeControls(win, doSyncSize);
588
+ };
589
+ var updateSize = function (win) {
590
+ doSizeControls(win, doUpdateSize);
591
+ };
592
+ var createUi = function (onChange) {
593
+ var recalcSize = function () {
594
+ onChange(function (win) {
595
+ updateSize(win);
596
+ });
597
+ };
598
+ return {
599
+ type: 'container',
600
+ label: 'Dimensions',
601
+ layout: 'flex',
602
+ align: 'center',
603
+ spacing: 5,
604
+ items: [
605
+ {
606
+ name: 'width',
607
+ type: 'textbox',
608
+ maxLength: 5,
609
+ size: 5,
610
+ onchange: recalcSize,
611
+ ariaLabel: 'Width'
612
+ },
613
+ {
614
+ type: 'label',
615
+ text: 'x'
616
+ },
617
+ {
618
+ name: 'height',
619
+ type: 'textbox',
620
+ maxLength: 5,
621
+ size: 5,
622
+ onchange: recalcSize,
623
+ ariaLabel: 'Height'
624
+ },
625
+ {
626
+ name: 'constrain',
627
+ type: 'checkbox',
628
+ checked: true,
629
+ text: 'Constrain proportions'
630
+ }
631
+ ]
632
+ };
633
+ };
634
+ var $_3pmnovhgjm0ofzju = {
635
+ createUi: createUi,
636
+ syncSize: syncSize,
637
+ updateSize: updateSize
638
+ };
639
+
640
+ var embedChange = global$1.ie && global$1.ie <= 8 ? 'onChange' : 'onInput';
641
+ var handleError = function (editor) {
642
+ return function (error) {
643
+ var errorMessage = error && error.msg ? 'Media embed handler error: ' + error.msg : 'Media embed handler threw unknown error.';
644
+ editor.notificationManager.open({
645
+ type: 'error',
646
+ text: errorMessage
647
+ });
648
+ };
649
+ };
650
+ var getData = function (editor) {
651
+ var element = editor.selection.getNode();
652
+ var dataEmbed = element.getAttribute('data-ephox-embed-iri');
653
+ if (dataEmbed) {
654
+ return {
655
+ 'source1': dataEmbed,
656
+ 'data-ephox-embed-iri': dataEmbed,
657
+ 'width': $_am85wh7jm0ofzjc.getMaxWidth(element),
658
+ 'height': $_am85wh7jm0ofzjc.getMaxHeight(element)
659
+ };
660
+ }
661
+ return element.getAttribute('data-mce-object') ? $_5d5iuvh3jm0ofzj8.htmlToData($_5hjeirh2jm0ofzj6.getScripts(editor), editor.serializer.serialize(element, { selection: true })) : {};
662
+ };
663
+ var getSource = function (editor) {
664
+ var elm = editor.selection.getNode();
665
+ if (elm.getAttribute('data-mce-object') || elm.getAttribute('data-ephox-embed-iri')) {
666
+ return editor.selection.getContent();
667
+ }
668
+ };
669
+ var addEmbedHtml = function (win, editor) {
670
+ return function (response) {
671
+ var html = response.html;
672
+ var embed = win.find('#embed')[0];
673
+ var data = global$2.extend($_5d5iuvh3jm0ofzj8.htmlToData($_5hjeirh2jm0ofzj6.getScripts(editor), html), { source1: response.url });
674
+ win.fromJSON(data);
675
+ if (embed) {
676
+ embed.value(html);
677
+ $_3pmnovhgjm0ofzju.updateSize(win);
678
+ }
679
+ };
680
+ };
681
+ var selectPlaceholder = function (editor, beforeObjects) {
682
+ var i;
683
+ var y;
684
+ var afterObjects = editor.dom.select('img[data-mce-object]');
685
+ for (i = 0; i < beforeObjects.length; i++) {
686
+ for (y = afterObjects.length - 1; y >= 0; y--) {
687
+ if (beforeObjects[i] === afterObjects[y]) {
688
+ afterObjects.splice(y, 1);
689
+ }
690
+ }
691
+ }
692
+ editor.selection.select(afterObjects[0]);
693
+ };
694
+ var handleInsert = function (editor, html) {
695
+ var beforeObjects = editor.dom.select('img[data-mce-object]');
696
+ editor.insertContent(html);
697
+ selectPlaceholder(editor, beforeObjects);
698
+ editor.nodeChanged();
699
+ };
700
+ var submitForm = function (win, editor) {
701
+ var data = win.toJSON();
702
+ data.embed = $_cok7l6hcjm0ofzjm.updateHtml(data.embed, data);
703
+ if (data.embed && $_bs9hzwh8jm0ofzje.isCached(data.source1)) {
704
+ handleInsert(editor, data.embed);
705
+ } else {
706
+ $_bs9hzwh8jm0ofzje.getEmbedHtml(editor, data).then(function (response) {
707
+ handleInsert(editor, response.html);
708
+ }).catch(handleError(editor));
709
+ }
710
+ };
711
+ var populateMeta = function (win, meta) {
712
+ global$2.each(meta, function (value, key) {
713
+ win.find('#' + key).value(value);
714
+ });
715
+ };
716
+ var showDialog = function (editor) {
717
+ var win;
718
+ var data;
719
+ var generalFormItems = [{
720
+ name: 'source1',
721
+ type: 'filepicker',
722
+ filetype: 'media',
723
+ size: 40,
724
+ autofocus: true,
725
+ label: 'Source',
726
+ onpaste: function () {
727
+ setTimeout(function () {
728
+ $_bs9hzwh8jm0ofzje.getEmbedHtml(editor, win.toJSON()).then(addEmbedHtml(win, editor)).catch(handleError(editor));
729
+ }, 1);
730
+ },
731
+ onchange: function (e) {
732
+ $_bs9hzwh8jm0ofzje.getEmbedHtml(editor, win.toJSON()).then(addEmbedHtml(win, editor)).catch(handleError(editor));
733
+ populateMeta(win, e.meta);
734
+ },
735
+ onbeforecall: function (e) {
736
+ e.meta = win.toJSON();
737
+ }
738
+ }];
739
+ var advancedFormItems = [];
740
+ var reserialise = function (update) {
741
+ update(win);
742
+ data = win.toJSON();
743
+ win.find('#embed').value($_cok7l6hcjm0ofzjm.updateHtml(data.embed, data));
744
+ };
745
+ if ($_5hjeirh2jm0ofzj6.hasAltSource(editor)) {
746
+ advancedFormItems.push({
747
+ name: 'source2',
748
+ type: 'filepicker',
749
+ filetype: 'media',
750
+ size: 40,
751
+ label: 'Alternative source'
752
+ });
753
+ }
754
+ if ($_5hjeirh2jm0ofzj6.hasPoster(editor)) {
755
+ advancedFormItems.push({
756
+ name: 'poster',
757
+ type: 'filepicker',
758
+ filetype: 'image',
759
+ size: 40,
760
+ label: 'Poster'
761
+ });
762
+ }
763
+ if ($_5hjeirh2jm0ofzj6.hasDimensions(editor)) {
764
+ var control = $_3pmnovhgjm0ofzju.createUi(reserialise);
765
+ generalFormItems.push(control);
766
+ }
767
+ data = getData(editor);
768
+ var embedTextBox = {
769
+ id: 'mcemediasource',
770
+ type: 'textbox',
771
+ flex: 1,
772
+ name: 'embed',
773
+ value: getSource(editor),
774
+ multiline: true,
775
+ rows: 5,
776
+ label: 'Source'
777
+ };
778
+ var updateValueOnChange = function () {
779
+ data = global$2.extend({}, $_5d5iuvh3jm0ofzj8.htmlToData($_5hjeirh2jm0ofzj6.getScripts(editor), this.value()));
780
+ this.parent().parent().fromJSON(data);
781
+ };
782
+ embedTextBox[embedChange] = updateValueOnChange;
783
+ var body = [
784
+ {
785
+ title: 'General',
786
+ type: 'form',
787
+ items: generalFormItems
788
+ },
789
+ {
790
+ title: 'Embed',
791
+ type: 'container',
792
+ layout: 'flex',
793
+ direction: 'column',
794
+ align: 'stretch',
795
+ padding: 10,
796
+ spacing: 10,
797
+ items: [
798
+ {
799
+ type: 'label',
800
+ text: 'Paste your embed code below:',
801
+ forId: 'mcemediasource'
802
+ },
803
+ embedTextBox
804
+ ]
805
+ }
806
+ ];
807
+ if (advancedFormItems.length > 0) {
808
+ body.push({
809
+ title: 'Advanced',
810
+ type: 'form',
811
+ items: advancedFormItems
812
+ });
813
+ }
814
+ win = editor.windowManager.open({
815
+ title: 'Insert/edit media',
816
+ data: data,
817
+ bodyType: 'tabpanel',
818
+ body: body,
819
+ onSubmit: function () {
820
+ $_3pmnovhgjm0ofzju.updateSize(win);
821
+ submitForm(win, editor);
822
+ }
823
+ });
824
+ $_3pmnovhgjm0ofzju.syncSize(win);
825
+ };
826
+ var $_7xmmdxgzjm0ofzj1 = { showDialog: showDialog };
827
+
828
+ var get = function (editor) {
829
+ var showDialog = function () {
830
+ $_7xmmdxgzjm0ofzj1.showDialog(editor);
831
+ };
832
+ return { showDialog: showDialog };
833
+ };
834
+ var $_75in9sgyjm0ofziz = { get: get };
835
+
836
+ var register = function (editor) {
837
+ var showDialog = function () {
838
+ $_7xmmdxgzjm0ofzj1.showDialog(editor);
839
+ };
840
+ editor.addCommand('mceMedia', showDialog);
841
+ };
842
+ var $_dhpuelhhjm0ofzjw = { register: register };
843
+
844
+ var global$8 = tinymce.util.Tools.resolve('tinymce.html.Node');
845
+
846
+ var sanitize = function (editor, html) {
847
+ if ($_5hjeirh2jm0ofzj6.shouldFilterHtml(editor) === false) {
848
+ return html;
849
+ }
850
+ var writer = global$6();
851
+ var blocked;
852
+ global$3({
853
+ validate: false,
854
+ allow_conditional_comments: false,
855
+ special: 'script,noscript',
856
+ comment: function (text) {
857
+ writer.comment(text);
858
+ },
859
+ cdata: function (text) {
860
+ writer.cdata(text);
861
+ },
862
+ text: function (text, raw) {
863
+ writer.text(text, raw);
864
+ },
865
+ start: function (name, attrs, empty) {
866
+ blocked = true;
867
+ if (name === 'script' || name === 'noscript') {
868
+ return;
869
+ }
870
+ for (var i = 0; i < attrs.length; i++) {
871
+ if (attrs[i].name.indexOf('on') === 0) {
872
+ return;
873
+ }
874
+ if (attrs[i].name === 'style') {
875
+ attrs[i].value = editor.dom.serializeStyle(editor.dom.parseStyle(attrs[i].value), name);
876
+ }
877
+ }
878
+ writer.start(name, attrs, empty);
879
+ blocked = false;
880
+ },
881
+ end: function (name) {
882
+ if (blocked) {
883
+ return;
884
+ }
885
+ writer.end(name);
886
+ }
887
+ }, global$7({})).parse(html);
888
+ return writer.getContent();
889
+ };
890
+ var $_5ympa3hljm0ofzkb = { sanitize: sanitize };
891
+
892
+ var createPlaceholderNode = function (editor, node) {
893
+ var placeHolder;
894
+ var name = node.name;
895
+ placeHolder = new global$8('img', 1);
896
+ placeHolder.shortEnded = true;
897
+ retainAttributesAndInnerHtml(editor, node, placeHolder);
898
+ placeHolder.attr({
899
+ 'width': node.attr('width') || '300',
900
+ 'height': node.attr('height') || (name === 'audio' ? '30' : '150'),
901
+ 'style': node.attr('style'),
902
+ 'src': global$1.transparentSrc,
903
+ 'data-mce-object': name,
904
+ 'class': 'mce-object mce-object-' + name
905
+ });
906
+ return placeHolder;
907
+ };
908
+ var createPreviewIframeNode = function (editor, node) {
909
+ var previewWrapper;
910
+ var previewNode;
911
+ var shimNode;
912
+ var name = node.name;
913
+ previewWrapper = new global$8('span', 1);
914
+ previewWrapper.attr({
915
+ 'contentEditable': 'false',
916
+ 'style': node.attr('style'),
917
+ 'data-mce-object': name,
918
+ 'class': 'mce-preview-object mce-object-' + name
919
+ });
920
+ retainAttributesAndInnerHtml(editor, node, previewWrapper);
921
+ previewNode = new global$8(name, 1);
922
+ previewNode.attr({
923
+ src: node.attr('src'),
924
+ allowfullscreen: node.attr('allowfullscreen'),
925
+ style: node.attr('style'),
926
+ class: node.attr('class'),
927
+ width: node.attr('width'),
928
+ height: node.attr('height'),
929
+ frameborder: '0'
930
+ });
931
+ shimNode = new global$8('span', 1);
932
+ shimNode.attr('class', 'mce-shim');
933
+ previewWrapper.append(previewNode);
934
+ previewWrapper.append(shimNode);
935
+ return previewWrapper;
936
+ };
937
+ var retainAttributesAndInnerHtml = function (editor, sourceNode, targetNode) {
938
+ var attrName;
939
+ var attrValue;
940
+ var attribs;
941
+ var ai;
942
+ var innerHtml;
943
+ attribs = sourceNode.attributes;
944
+ ai = attribs.length;
945
+ while (ai--) {
946
+ attrName = attribs[ai].name;
947
+ attrValue = attribs[ai].value;
948
+ if (attrName !== 'width' && attrName !== 'height' && attrName !== 'style') {
949
+ if (attrName === 'data' || attrName === 'src') {
950
+ attrValue = editor.convertURL(attrValue, attrName);
951
+ }
952
+ targetNode.attr('data-mce-p-' + attrName, attrValue);
953
+ }
954
+ }
955
+ innerHtml = sourceNode.firstChild && sourceNode.firstChild.value;
956
+ if (innerHtml) {
957
+ targetNode.attr('data-mce-html', escape($_5ympa3hljm0ofzkb.sanitize(editor, innerHtml)));
958
+ targetNode.firstChild = null;
959
+ }
960
+ };
961
+ var isWithinEphoxEmbed = function (node) {
962
+ while (node = node.parent) {
963
+ if (node.attr('data-ephox-embed-iri')) {
964
+ return true;
965
+ }
966
+ }
967
+ return false;
968
+ };
969
+ var placeHolderConverter = function (editor) {
970
+ return function (nodes) {
971
+ var i = nodes.length;
972
+ var node;
973
+ var videoScript;
974
+ while (i--) {
975
+ node = nodes[i];
976
+ if (!node.parent) {
977
+ continue;
978
+ }
979
+ if (node.parent.attr('data-mce-object')) {
980
+ continue;
981
+ }
982
+ if (node.name === 'script') {
983
+ videoScript = $_545y8yh6jm0ofzjb.getVideoScriptMatch($_5hjeirh2jm0ofzj6.getScripts(editor), node.attr('src'));
984
+ if (!videoScript) {
985
+ continue;
986
+ }
987
+ }
988
+ if (videoScript) {
989
+ if (videoScript.width) {
990
+ node.attr('width', videoScript.width.toString());
991
+ }
992
+ if (videoScript.height) {
993
+ node.attr('height', videoScript.height.toString());
994
+ }
995
+ }
996
+ if (node.name === 'iframe' && $_5hjeirh2jm0ofzj6.hasLiveEmbeds(editor) && global$1.ceFalse) {
997
+ if (!isWithinEphoxEmbed(node)) {
998
+ node.replace(createPreviewIframeNode(editor, node));
999
+ }
1000
+ } else {
1001
+ if (!isWithinEphoxEmbed(node)) {
1002
+ node.replace(createPlaceholderNode(editor, node));
1003
+ }
1004
+ }
1005
+ }
1006
+ };
1007
+ };
1008
+ var $_11usglhkjm0ofzk7 = {
1009
+ createPreviewIframeNode: createPreviewIframeNode,
1010
+ createPlaceholderNode: createPlaceholderNode,
1011
+ placeHolderConverter: placeHolderConverter
1012
+ };
1013
+
1014
+ var setup = function (editor) {
1015
+ editor.on('preInit', function () {
1016
+ var specialElements = editor.schema.getSpecialElements();
1017
+ global$2.each('video audio iframe object'.split(' '), function (name) {
1018
+ specialElements[name] = new RegExp('</' + name + '[^>]*>', 'gi');
1019
+ });
1020
+ var boolAttrs = editor.schema.getBoolAttrs();
1021
+ global$2.each('webkitallowfullscreen mozallowfullscreen allowfullscreen'.split(' '), function (name) {
1022
+ boolAttrs[name] = {};
1023
+ });
1024
+ editor.parser.addNodeFilter('iframe,video,audio,object,embed,script', $_11usglhkjm0ofzk7.placeHolderConverter(editor));
1025
+ editor.serializer.addAttributeFilter('data-mce-object', function (nodes, name) {
1026
+ var i = nodes.length;
1027
+ var node;
1028
+ var realElm;
1029
+ var ai;
1030
+ var attribs;
1031
+ var innerHtml;
1032
+ var innerNode;
1033
+ var realElmName;
1034
+ var className;
1035
+ while (i--) {
1036
+ node = nodes[i];
1037
+ if (!node.parent) {
1038
+ continue;
1039
+ }
1040
+ realElmName = node.attr(name);
1041
+ realElm = new global$8(realElmName, 1);
1042
+ if (realElmName !== 'audio' && realElmName !== 'script') {
1043
+ className = node.attr('class');
1044
+ if (className && className.indexOf('mce-preview-object') !== -1) {
1045
+ realElm.attr({
1046
+ width: node.firstChild.attr('width'),
1047
+ height: node.firstChild.attr('height')
1048
+ });
1049
+ } else {
1050
+ realElm.attr({
1051
+ width: node.attr('width'),
1052
+ height: node.attr('height')
1053
+ });
1054
+ }
1055
+ }
1056
+ realElm.attr({ style: node.attr('style') });
1057
+ attribs = node.attributes;
1058
+ ai = attribs.length;
1059
+ while (ai--) {
1060
+ var attrName = attribs[ai].name;
1061
+ if (attrName.indexOf('data-mce-p-') === 0) {
1062
+ realElm.attr(attrName.substr(11), attribs[ai].value);
1063
+ }
1064
+ }
1065
+ if (realElmName === 'script') {
1066
+ realElm.attr('type', 'text/javascript');
1067
+ }
1068
+ innerHtml = node.attr('data-mce-html');
1069
+ if (innerHtml) {
1070
+ innerNode = new global$8('#text', 3);
1071
+ innerNode.raw = true;
1072
+ innerNode.value = $_5ympa3hljm0ofzkb.sanitize(editor, unescape(innerHtml));
1073
+ realElm.append(innerNode);
1074
+ }
1075
+ node.replace(realElm);
1076
+ }
1077
+ });
1078
+ });
1079
+ editor.on('setContent', function () {
1080
+ editor.$('span.mce-preview-object').each(function (index, elm) {
1081
+ var $elm = editor.$(elm);
1082
+ if ($elm.find('span.mce-shim', elm).length === 0) {
1083
+ $elm.append('<span class="mce-shim"></span>');
1084
+ }
1085
+ });
1086
+ });
1087
+ };
1088
+ var $_fbo9b6hijm0ofzjy = { setup: setup };
1089
+
1090
+ var setup$1 = function (editor) {
1091
+ editor.on('ResolveName', function (e) {
1092
+ var name;
1093
+ if (e.target.nodeType === 1 && (name = e.target.getAttribute('data-mce-object'))) {
1094
+ e.name = name;
1095
+ }
1096
+ });
1097
+ };
1098
+ var $_cuj39fhmjm0ofzkd = { setup: setup$1 };
1099
+
1100
+ var setup$2 = function (editor) {
1101
+ editor.on('click keyup', function () {
1102
+ var selectedNode = editor.selection.getNode();
1103
+ if (selectedNode && editor.dom.hasClass(selectedNode, 'mce-preview-object')) {
1104
+ if (editor.dom.getAttrib(selectedNode, 'data-mce-selected')) {
1105
+ selectedNode.setAttribute('data-mce-selected', '2');
1106
+ }
1107
+ }
1108
+ });
1109
+ editor.on('ObjectSelected', function (e) {
1110
+ var objectType = e.target.getAttribute('data-mce-object');
1111
+ if (objectType === 'audio' || objectType === 'script') {
1112
+ e.preventDefault();
1113
+ }
1114
+ });
1115
+ editor.on('objectResized', function (e) {
1116
+ var target = e.target;
1117
+ var html;
1118
+ if (target.getAttribute('data-mce-object')) {
1119
+ html = target.getAttribute('data-mce-html');
1120
+ if (html) {
1121
+ html = unescape(html);
1122
+ target.setAttribute('data-mce-html', escape($_cok7l6hcjm0ofzjm.updateHtml(html, {
1123
+ width: e.width,
1124
+ height: e.height
1125
+ })));
1126
+ }
1127
+ }
1128
+ });
1129
+ };
1130
+ var $_fg8hp3hnjm0ofzke = { setup: setup$2 };
1131
+
1132
+ var register$1 = function (editor) {
1133
+ editor.addButton('media', {
1134
+ tooltip: 'Insert/edit media',
1135
+ cmd: 'mceMedia',
1136
+ stateSelector: [
1137
+ 'img[data-mce-object]',
1138
+ 'span[data-mce-object]',
1139
+ 'div[data-ephox-embed-iri]'
1140
+ ]
1141
+ });
1142
+ editor.addMenuItem('media', {
1143
+ icon: 'media',
1144
+ text: 'Media',
1145
+ cmd: 'mceMedia',
1146
+ context: 'insert',
1147
+ prependToContext: true
1148
+ });
1149
+ };
1150
+ var $_am75nxhojm0ofzkh = { register: register$1 };
1151
+
1152
+ global.add('media', function (editor) {
1153
+ $_dhpuelhhjm0ofzjw.register(editor);
1154
+ $_am75nxhojm0ofzkh.register(editor);
1155
+ $_cuj39fhmjm0ofzkd.setup(editor);
1156
+ $_fbo9b6hijm0ofzjy.setup(editor);
1157
+ $_fg8hp3hnjm0ofzke.setup(editor);
1158
+ return $_75in9sgyjm0ofziz.get(editor);
1159
+ });
1160
+ function Plugin () {
1161
+ }
1162
+
1163
+ return Plugin;
1164
+
1165
+ }());
1166
+ })();